@bravobit/bb-foundation 0.22.0 → 0.22.3

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 (186) hide show
  1. package/controls/lib/checkbox/checkbox-group/checkbox-group.component.d.ts +3 -2
  2. package/controls/lib/checkbox/checkbox.module.d.ts +2 -1
  3. package/controls/lib/form-control/form-control/form-control.component.d.ts +5 -5
  4. package/controls/lib/form-control/form-control.module.d.ts +2 -1
  5. package/dialog/lib/dialog-confirm/dialog-confirm.component.d.ts +4 -2
  6. package/dialog/lib/dialog.interfaces.d.ts +7 -0
  7. package/dialog/lib/dialog.service.d.ts +5 -9
  8. package/elements/lib/elements.module.d.ts +25 -28
  9. package/elements/public_api.d.ts +0 -4
  10. package/esm2020/auth/lib/auth.interceptor.mjs +3 -3
  11. package/esm2020/auth/lib/auth.module.mjs +4 -4
  12. package/esm2020/auth/lib/auth.service.mjs +3 -3
  13. package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
  14. package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
  15. package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
  16. package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
  17. package/esm2020/auth/lib/guards/permission.guard.mjs +3 -3
  18. package/esm2020/auth/lib/permissions/permissions.service.mjs +3 -3
  19. package/esm2020/collections/lib/collections.module.mjs +4 -4
  20. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
  21. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
  22. package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
  23. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +3 -3
  24. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +7 -6
  25. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +7 -6
  26. package/esm2020/controls/lib/control-error/control-error/control-error.component.mjs +3 -3
  27. package/esm2020/controls/lib/control-error/control-error-submit.directive.mjs +3 -3
  28. package/esm2020/controls/lib/control-error/control-error.module.mjs +4 -4
  29. package/esm2020/controls/lib/controls.module.mjs +4 -4
  30. package/esm2020/controls/lib/form-control/form-control/form-control.component.mjs +6 -5
  31. package/esm2020/controls/lib/form-control/form-control-addon/form-control-addon.component.mjs +3 -3
  32. package/esm2020/controls/lib/form-control/form-control-input.directive.mjs +3 -3
  33. package/esm2020/controls/lib/form-control/form-control.module.mjs +8 -7
  34. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
  35. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  36. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  37. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
  38. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  39. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
  40. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  41. package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
  42. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  43. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +15 -12
  44. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +5 -5
  45. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
  46. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
  47. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +5 -5
  48. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
  49. package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
  50. package/esm2020/dialog/lib/dialog.interfaces.mjs +1 -1
  51. package/esm2020/dialog/lib/dialog.module.mjs +4 -4
  52. package/esm2020/dialog/lib/dialog.service.mjs +15 -27
  53. package/esm2020/elements/lib/avatar/avatar.component.mjs +7 -7
  54. package/esm2020/elements/lib/button/button.component.mjs +6 -6
  55. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
  56. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +4 -4
  57. package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
  58. package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
  59. package/esm2020/elements/lib/directives/form-submitter.directive.mjs +3 -3
  60. package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
  61. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +6 -6
  62. package/esm2020/elements/lib/elements.module.mjs +21 -25
  63. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +4 -4
  64. package/esm2020/elements/lib/form-control/form-control.component.mjs +4 -4
  65. package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
  66. package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
  67. package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
  68. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
  69. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
  70. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
  71. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
  72. package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
  73. package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
  74. package/esm2020/elements/public_api.mjs +1 -5
  75. package/esm2020/http/lib/classes/http.config.mjs +2 -3
  76. package/esm2020/http/lib/http.module.mjs +4 -4
  77. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +6 -6
  78. package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
  79. package/esm2020/lib/core/services/clipboard.service.mjs +3 -3
  80. package/esm2020/lib/core/services/exif.service.mjs +3 -3
  81. package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
  82. package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
  83. package/esm2020/lib/core/services/languages.service.mjs +3 -3
  84. package/esm2020/lib/core/services/network.service.mjs +3 -3
  85. package/esm2020/lib/core/services/patch.service.mjs +3 -3
  86. package/esm2020/localize/lib/localize.dictionary.mjs +2 -4
  87. package/esm2020/localize/lib/localize.module.mjs +9 -11
  88. package/esm2020/localize/lib/localize.pipe.mjs +3 -3
  89. package/esm2020/localize/lib/localize.service.mjs +3 -3
  90. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +6 -6
  91. package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
  92. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +3 -3
  93. package/esm2020/masking/lib/directives/date-mask.directive.mjs +3 -3
  94. package/esm2020/masking/lib/directives/input-mask.directive.mjs +3 -3
  95. package/esm2020/masking/lib/masking.module.mjs +4 -4
  96. package/esm2020/masking/lib/masking.service.mjs +3 -3
  97. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
  98. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
  99. package/esm2020/notifications/lib/notifications.module.mjs +4 -4
  100. package/esm2020/notifications/lib/notifications.service.mjs +22 -26
  101. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  102. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
  103. package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
  104. package/esm2020/storage/lib/storage.service.mjs +7 -7
  105. package/esm2020/table/lib/components/table/table.component.mjs +9 -9
  106. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  107. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
  108. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
  109. package/esm2020/table/lib/table.module.mjs +4 -4
  110. package/esm2020/theming/lib/theming.directive.mjs +3 -3
  111. package/esm2020/theming/lib/theming.module.mjs +4 -4
  112. package/esm2020/utils/bravobit-bb-foundation-utils.mjs +5 -0
  113. package/esm2020/utils/lib/directives/autosize.directive.mjs +72 -0
  114. package/esm2020/utils/lib/directives/focus-trap.directive.mjs +77 -0
  115. package/esm2020/utils/lib/directives/focus.directive.mjs +37 -0
  116. package/esm2020/utils/lib/directives/template.directive.mjs +28 -0
  117. package/esm2020/utils/lib/utils.module.mjs +35 -0
  118. package/esm2020/utils/public_api.mjs +6 -0
  119. package/fesm2015/bravobit-bb-foundation-auth.mjs +28 -28
  120. package/fesm2015/bravobit-bb-foundation-collections.mjs +22 -22
  121. package/fesm2015/bravobit-bb-foundation-controls.mjs +47 -45
  122. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  123. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +25 -25
  124. package/fesm2015/bravobit-bb-foundation-dialog.mjs +55 -82
  125. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  126. package/fesm2015/bravobit-bb-foundation-elements.mjs +100 -306
  127. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  128. package/fesm2015/bravobit-bb-foundation-http.mjs +14 -14
  129. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
  130. package/fesm2015/bravobit-bb-foundation-localize.mjs +26 -53
  131. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  132. package/fesm2015/bravobit-bb-foundation-masking.mjs +16 -16
  133. package/fesm2015/bravobit-bb-foundation-notifications.mjs +31 -52
  134. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  135. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +10 -10
  136. package/fesm2015/bravobit-bb-foundation-storage.mjs +6 -6
  137. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  138. package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
  139. package/fesm2015/bravobit-bb-foundation-theming.mjs +7 -7
  140. package/fesm2015/bravobit-bb-foundation-utils.mjs +246 -0
  141. package/fesm2015/bravobit-bb-foundation-utils.mjs.map +1 -0
  142. package/fesm2015/bravobit-bb-foundation.mjs +21 -21
  143. package/fesm2020/bravobit-bb-foundation-auth.mjs +28 -28
  144. package/fesm2020/bravobit-bb-foundation-collections.mjs +22 -22
  145. package/fesm2020/bravobit-bb-foundation-controls.mjs +47 -45
  146. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  147. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +25 -25
  148. package/fesm2020/bravobit-bb-foundation-dialog.mjs +54 -80
  149. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  150. package/fesm2020/bravobit-bb-foundation-elements.mjs +100 -304
  151. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  152. package/fesm2020/bravobit-bb-foundation-http.mjs +14 -14
  153. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
  154. package/fesm2020/bravobit-bb-foundation-localize.mjs +26 -53
  155. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  156. package/fesm2020/bravobit-bb-foundation-masking.mjs +16 -16
  157. package/fesm2020/bravobit-bb-foundation-notifications.mjs +31 -52
  158. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  159. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +10 -10
  160. package/fesm2020/bravobit-bb-foundation-storage.mjs +6 -6
  161. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  162. package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
  163. package/fesm2020/bravobit-bb-foundation-theming.mjs +7 -7
  164. package/fesm2020/bravobit-bb-foundation-utils.mjs +244 -0
  165. package/fesm2020/bravobit-bb-foundation-utils.mjs.map +1 -0
  166. package/fesm2020/bravobit-bb-foundation.mjs +21 -21
  167. package/localize/lib/localize.module.d.ts +3 -3
  168. package/notifications/lib/notifications.service.d.ts +6 -7
  169. package/package.json +9 -1
  170. package/utils/index.d.ts +5 -0
  171. package/{elements → utils}/lib/directives/autosize.directive.d.ts +0 -0
  172. package/{elements → utils}/lib/directives/focus-trap.directive.d.ts +0 -0
  173. package/{elements → utils}/lib/directives/focus.directive.d.ts +0 -0
  174. package/{elements → utils}/lib/directives/template.directive.d.ts +1 -0
  175. package/utils/lib/utils.module.d.ts +10 -0
  176. package/utils/public_api.d.ts +5 -0
  177. package/dialog/lib/dialog.injector.d.ts +0 -8
  178. package/esm2020/dialog/lib/dialog.injector.mjs +0 -18
  179. package/esm2020/elements/lib/directives/autosize.directive.mjs +0 -72
  180. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +0 -77
  181. package/esm2020/elements/lib/directives/focus.directive.mjs +0 -37
  182. package/esm2020/elements/lib/directives/template.directive.mjs +0 -28
  183. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +0 -28
  184. package/esm2020/notifications/lib/notifications.injector.mjs +0 -18
  185. package/localize/lib/views/localize-template-or-string.directive.d.ts +0 -10
  186. package/notifications/lib/notifications.injector.d.ts +0 -8
@@ -57,9 +57,9 @@ export class BbAvatar {
57
57
  // Hex 6 values.
58
58
  match = value.match(/^#([0-9a-f]{6})$/i);
59
59
  if (match && match[1]) {
60
- const r = parseInt(match[1].substr(0, 2), 16);
61
- const g = parseInt(match[1].substr(2, 2), 16);
62
- const b = parseInt(match[1].substr(4, 2), 16);
60
+ const r = parseInt(match[1].substring(0, 2), 16);
61
+ const g = parseInt(match[1].substring(2, 4), 16);
62
+ const b = parseInt(match[1].substring(4, 6), 16);
63
63
  return { r, g, b };
64
64
  }
65
65
  // Rgb values.
@@ -117,9 +117,9 @@ export class BbAvatar {
117
117
  this._backgroundColor = `rgba(${red},${green},${blue}, 0.25)`;
118
118
  }
119
119
  }
120
- BbAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
121
- BbAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbAvatar, selector: "bb-avatar", inputs: { size: "size", src: "src", title: "title", tintColor: "tintColor" }, host: { attributes: { "role": "img" }, properties: { "style.width.px": "size", "style.min-width.px": "size", "style.height.px": "size", "style.min-height.px": "size", "style.font-size.px": "size * 0.42", "style.color": "color", "style.background-color": "backgroundColor", "attr.title": "this.title" }, classAttribute: "bb-avatar" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"state$ | async\">\n <!-- Image. -->\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"src\"\n [alt]=\"initials\"\n (error)=\"state$?.next('initials')\"\n class=\"bb-avatar-image\">\n </ng-container>\n\n <!-- Default initials fallback. -->\n <ng-container *ngSwitchDefault>\n {{ initials }}\n </ng-container>\n</ng-container>\n", styles: [".bb-avatar{line-height:1;overflow:hidden;font-weight:500;-webkit-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;display:inline-flex;justify-content:center}.bb-avatar.rounded{border-radius:4px}.bb-avatar.square{border-radius:0}.bb-avatar-image{width:100%;height:100%;object-fit:cover;position:absolute}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
122
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbAvatar, decorators: [{
120
+ BbAvatar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbAvatar, deps: [], target: i0.ɵɵFactoryTarget.Component });
121
+ BbAvatar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: BbAvatar, selector: "bb-avatar", inputs: { size: "size", src: "src", title: "title", tintColor: "tintColor" }, host: { attributes: { "role": "img" }, properties: { "style.width.px": "size", "style.min-width.px": "size", "style.height.px": "size", "style.min-height.px": "size", "style.font-size.px": "size * 0.42", "style.color": "color", "style.background-color": "backgroundColor", "attr.title": "this.title" }, classAttribute: "bb-avatar" }, ngImport: i0, template: "<ng-container [ngSwitch]=\"state$ | async\">\n <!-- Image. -->\n <ng-container *ngSwitchCase=\"'image'\">\n <img [src]=\"src\"\n [alt]=\"initials\"\n (error)=\"state$?.next('initials')\"\n class=\"bb-avatar-image\">\n </ng-container>\n\n <!-- Default initials fallback. -->\n <ng-container *ngSwitchDefault>\n {{ initials }}\n </ng-container>\n</ng-container>\n", styles: [".bb-avatar{line-height:1;overflow:hidden;font-weight:500;-webkit-user-select:none;user-select:none;position:relative;border-radius:50%;align-items:center;display:inline-flex;justify-content:center}.bb-avatar.rounded{border-radius:4px}.bb-avatar.square{border-radius:0}.bb-avatar-image{width:100%;height:100%;object-fit:cover;position:absolute}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbAvatar, decorators: [{
123
123
  type: Component,
124
124
  args: [{ selector: 'bb-avatar', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
125
125
  'class': 'bb-avatar',
@@ -144,4 +144,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
144
144
  }], tintColor: [{
145
145
  type: Input
146
146
  }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFxQnJDLE1BQU0sT0FBTyxRQUFRO0lBbkJyQjtRQXFCSSxVQUFVO1FBQ0QsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUUzQixTQUFTO1FBQ1QsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFTLFVBQVUsQ0FBQyxDQUFDO1FBRWpELFFBQVE7UUFDQSxTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQVcsR0FBRyxDQUFDO1FBQ3hCLFdBQU0sR0FBVyxvQkFBb0IsQ0FBQztRQUN0QyxxQkFBZ0IsR0FBVyxpQkFBaUIsQ0FBQztRQTJEN0MsVUFBSyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDO1lBQ3BCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUN0QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFFckIsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sTUFB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O0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFTyxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxJQUFZO1FBQ3RELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxHQUFHLElBQUksS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLEdBQUcsSUFBSSxLQUFLLElBQUksSUFBSSxTQUFTLENBQUM7SUFDbEUsQ0FBQzs7cUdBdEVRLFFBQVE7eUZBQVIsUUFBUSw2Y0N0QnJCLCthQWNBOzJGRFFhLFFBQVE7a0JBbkJwQixTQUFTOytCQUNJLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxRQUNwQjt3QkFDRixPQUFPLEVBQUUsV0FBVzt3QkFDcEIsTUFBTSxFQUFFLEtBQUs7d0JBQ2Isa0JBQWtCLEVBQUUsTUFBTTt3QkFDMUIsc0JBQXNCLEVBQUUsTUFBTTt3QkFDOUIsbUJBQW1CLEVBQUUsTUFBTTt3QkFDM0IsdUJBQXVCLEVBQUUsTUFBTTt3QkFDL0Isc0JBQXNCLEVBQUUsYUFBYTt3QkFDckMsZUFBZSxFQUFFLE9BQU87d0JBQ3hCLDBCQUEwQixFQUFFLGlCQUFpQjtxQkFDaEQ7OEJBS1EsSUFBSTtzQkFBWixLQUFLO2dCQWFGLEdBQUc7c0JBRE4sS0FBSztnQkFXRixLQUFLO3NCQUZSLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsWUFBWTtnQkFZckIsU0FBUztzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1hdmF0YXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItYXZhdGFyJyxcbiAgICAgICAgJ3JvbGUnOiAnaW1nJyxcbiAgICAgICAgJ1tzdHlsZS53aWR0aC5weF0nOiAnc2l6ZScsXG4gICAgICAgICdbc3R5bGUubWluLXdpZHRoLnB4XSc6ICdzaXplJyxcbiAgICAgICAgJ1tzdHlsZS5oZWlnaHQucHhdJzogJ3NpemUnLFxuICAgICAgICAnW3N0eWxlLm1pbi1oZWlnaHQucHhdJzogJ3NpemUnLFxuICAgICAgICAnW3N0eWxlLmZvbnQtc2l6ZS5weF0nOiAnc2l6ZSAqIDAuNDInLFxuICAgICAgICAnW3N0eWxlLmNvbG9yXSc6ICdjb2xvcicsXG4gICAgICAgICdbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl0nOiAnYmFja2dyb3VuZENvbG9yJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQmJBdmF0YXIge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIHNpemU6IG51bWJlciA9IDQwO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdpbml0aWFscycpO1xuXG4gICAgLy8gRGF0YS5cbiAgICBwcml2YXRlIF9zcmM6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX3RpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9pbml0aWFsczogc3RyaW5nID0gJyEnO1xuICAgIHByaXZhdGUgX2NvbG9yOiBzdHJpbmcgPSAncmdiKDI1NSwgMjU1LCAyNTUpJztcbiAgICBwcml2YXRlIF9iYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9ICdyZ2IoNjYsIDY2LCA2NiknO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgc3JjKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc3JjID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX3NyYykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSQubmV4dCgnaW1hZ2UnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRpdGxlJylcbiAgICBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICAvLyBTZXQgdGhlIHRpdGxlIGFuZCB0aGUgaW5pdGlhbHMuXG4gICAgICAgIHRoaXMuX3RpdGxlID0gdmFsdWUgfHwgJyEnO1xuICAgICAgICB0aGlzLl9pbml0aWFscyA9IHRoaXMuZ2V0SW5pdGlhbHModGhpcy5fdGl0bGUpO1xuXG4gICAgICAgIC8vIEdlbmVyYXRlIHRoZSBjb2xvcnMgYmFzZWQgb24gdGhlIG5hbWUuXG4gICAgICAgIGNvbnN0IHtyLCBnLCBifSA9IHRoaXMudG9SR2IodGhpcy5fdGl0bGUpO1xuICAgICAgICB0aGlzLnNldENvbG9ycyhyLCBnLCBiKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aW50Q29sb3IodmFsdWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnBhcnNlQ29sb3JGb3JtYXQodmFsdWUpO1xuICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3IsIGcsIGJ9ID0gcmVzdWx0O1xuICAgICAgICB0aGlzLnNldENvbG9ycyhyLCBnLCBiKTtcbiAgICB9XG5cbiAgICBnZXQgc3JjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3JjO1xuICAgIH1cblxuICAgIGdldCBjb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICAgIH1cblxuICAgIGdldCBiYWNrZ3JvdW5kQ29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9iYWNrZ3JvdW5kQ29sb3I7XG4gICAgfVxuXG4gICAgZ2V0IHRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGU7XG4gICAgfVxuXG4gICAgZ2V0IGluaXRpYWxzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5pdGlhbHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDb2xvcnMocmVkOiBudW1iZXIsIGdyZWVuOiBudW1iZXIsIGJsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9jb2xvciA9IGByZ2IoJHtyZWR9LCR7Z3JlZW59LCR7Ymx1ZX0pYDtcbiAgICAgICAgdGhpcy5fYmFja2dyb3VuZENvbG9yID0gYHJnYmEoJHtyZWR9LCR7Z3JlZW59LCR7Ymx1ZX0sIDAuMjUpYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvUkdiID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZVJlZCA9IDEyODtcbiAgICAgICAgY29uc3QgYmFzZUdyZWVuID0gMTI4O1xuICAgICAgICBjb25zdCBiYXNlQmx1ZSA9IDEyODtcblxuICAgICAgICBsZXQgc2VlZCA9IHZhbHVlLmNoYXJDb2RlQXQoMCkgXiB2YWx1ZS5jaGFyQ29kZUF0KDEpO1xuICAgICAgICBjb25zdCByYW5kXzEgPSBNYXRoLmFicygoTWF0aC5zaW4oc2VlZCsrKSAqIDEwMDAwKSkgJSAyNTY7XG4gICAgICAgIGNvbnN0IHJhbmRfMiA9IE1hdGguYWJzKChNYXRoLnNpbihzZWVkKyspICogMTAwMDApKSAlIDI1NjtcbiAgICAgICAgY29uc3QgcmFuZF8zID0gTWF0aC5hYnMoKE1hdGguc2luKHNlZWQrKykgKiAxMDAwMCkpICUgMjU2O1xuXG4gICAgICAgIGNvbnN0IHIgPSBNYXRoLnJvdW5kKChyYW5kXzEgKyBiYXNlUmVkKSAvIDIpO1xuICAgICAgICBjb25zdCBnID0gTWF0aC5yb3VuZCgocmFuZF8yICsgYmFzZUdyZWVuKSAvIDIpO1xuICAgICAgICBjb25zdCBiID0gTWF0aC5yb3VuZCgocmFuZF8zICsgYmFzZUJsdWUpIC8gMik7XG5cbiAgICAgICAgcmV0dXJuIHtyLCBnLCBifTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnZXRJbml0aWFscyA9IChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgLy8gR2V0IGFsbCB0aGUgaW5pdGlhbHMuXG4gICAgICAgIGNvbnN0IG5hbWVzID0gKG5hbWUgfHwgJycpLnNwbGl0KCcgJyk7XG4gICAgICAgIGNvbnN0IGluaXRpYWxzID0gbmFtZXMubWFwKG5hbWUgPT4gbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBpbml0aWFscy5cbiAgICAgICAgaWYgKGluaXRpYWxzLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCB0aGUgZmlyc3QgYW5kIGxhc3QgaW5pdGlhbHMuXG4gICAgICAgIGlmIChpbml0aWFscy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7aW5pdGlhbHNbMF19JHtpbml0aWFsc1tpbml0aWFscy5sZW5ndGggLSAxXX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IG9ubHkgdGhlIGZpcnN0IGluaXRpYWwuXG4gICAgICAgIHJldHVybiBpbml0aWFsc1swXTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBwYXJzZUNvbG9yRm9ybWF0ID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIZXggMyB2YWx1ZXMuXG4gICAgICAgIGxldCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9eIyhbMC05YS1mXXszfSkkL2kpO1xuICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0pIHtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludChtYXRjaFsxXS5jaGFyQXQoMCksIDE2KSAqIDB4MTE7XG4gICAgICAgICAgICBjb25zdCBnID0gcGFyc2VJbnQobWF0Y2hbMV0uY2hhckF0KDEpLCAxNikgKiAweDExO1xuICAgICAgICAgICAgY29uc3QgYiA9IHBhcnNlSW50KG1hdGNoWzFdLmNoYXJBdCgyKSwgMTYpICogMHgxMTtcblxuICAgICAgICAgICAgcmV0dXJuIHtyLCBnLCBifTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhleCA2IHZhbHVlcy5cbiAgICAgICAgbWF0Y2ggPSB2YWx1ZS5tYXRjaCgvXiMoWzAtOWEtZl17Nn0pJC9pKTtcbiAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoWzFdKSB7XG4gICAgICAgICAgICBjb25zdCByID0gcGFyc2VJbnQobWF0Y2hbMV0uc3Vic3RyKDAsIDIpLCAxNik7XG4gICAgICAgICAgICBjb25zdCBnID0gcGFyc2VJbnQobWF0Y2hbMV0uc3Vic3RyKDIsIDIpLCAxNik7XG4gICAgICAgICAgICBjb25zdCBiID0gcGFyc2VJbnQobWF0Y2hbMV0uc3Vic3RyKDQsIDIpLCAxNik7XG5cbiAgICAgICAgICAgIHJldHVybiB7ciwgZywgYn07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZ2IgdmFsdWVzLlxuICAgICAgICBtYXRjaCA9IHZhbHVlLm1hdGNoKC9ecmdiXFxzKlxcKFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqXFwpJC9pKTtcbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICBjb25zdCByID0gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgICAgICAgICAgIGNvbnN0IGcgPSBwYXJzZUludChtYXRjaFsyXSwgMTApO1xuICAgICAgICAgICAgY29uc3QgYiA9IHBhcnNlSW50KG1hdGNoWzNdLCAxMCk7XG5cbiAgICAgICAgICAgIHJldHVybiB7ciwgZywgYn07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBOb3QgYSBzdXBwb3J0ZWQgY29sb3IgZm9ybWF0LlxuICAgICAgICBjb25zb2xlPy53YXJuPy4oYEJiQXZhdGFyOiBVbnN1cHBvcnRlZCB0aW50Q29sb3IgXCIke3ZhbHVlfVwiIHdhcyB1c2VkLmApO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzdGF0ZSQgfCBhc3luY1wiPlxuICAgIDwhLS0gSW1hZ2UuIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZSdcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cInNyY1wiXG4gICAgICAgICAgICAgW2FsdF09XCJpbml0aWFsc1wiXG4gICAgICAgICAgICAgKGVycm9yKT1cInN0YXRlJD8ubmV4dCgnaW5pdGlhbHMnKVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJiYi1hdmF0YXItaW1hZ2VcIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gRGVmYXVsdCBpbml0aWFscyBmYWxsYmFjay4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICB7eyBpbml0aWFscyB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFxQnJDLE1BQU0sT0FBTyxRQUFRO0lBbkJyQjtRQXFCSSxVQUFVO1FBQ0QsU0FBSSxHQUFXLEVBQUUsQ0FBQztRQUUzQixTQUFTO1FBQ1QsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFTLFVBQVUsQ0FBQyxDQUFDO1FBRWpELFFBQVE7UUFDQSxTQUFJLEdBQWtCLElBQUksQ0FBQztRQUMzQixXQUFNLEdBQWtCLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQVcsR0FBRyxDQUFDO1FBQ3hCLFdBQU0sR0FBVyxvQkFBb0IsQ0FBQztRQUN0QyxxQkFBZ0IsR0FBVyxpQkFBaUIsQ0FBQztRQTJEN0MsVUFBSyxHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7WUFDOUIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDO1lBQ3BCLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQztZQUN0QixNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7WUFFckIsSUFBSSxJQUFJLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JELE1BQU0sTUFB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O0lBRUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFTyxTQUFTLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBRSxJQUFZO1FBQ3RELElBQUksQ0FBQyxNQUFNLEdBQUcsT0FBTyxHQUFHLElBQUksS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxRQUFRLEdBQUcsSUFBSSxLQUFLLElBQUksSUFBSSxTQUFTLENBQUM7SUFDbEUsQ0FBQzs7cUdBdEVRLFFBQVE7eUZBQVIsUUFBUSw2Y0N0QnJCLCthQWNBOzJGRFFhLFFBQVE7a0JBbkJwQixTQUFTOytCQUNJLFdBQVcsbUJBR0osdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSyxRQUNwQjt3QkFDRixPQUFPLEVBQUUsV0FBVzt3QkFDcEIsTUFBTSxFQUFFLEtBQUs7d0JBQ2Isa0JBQWtCLEVBQUUsTUFBTTt3QkFDMUIsc0JBQXNCLEVBQUUsTUFBTTt3QkFDOUIsbUJBQW1CLEVBQUUsTUFBTTt3QkFDM0IsdUJBQXVCLEVBQUUsTUFBTTt3QkFDL0Isc0JBQXNCLEVBQUUsYUFBYTt3QkFDckMsZUFBZSxFQUFFLE9BQU87d0JBQ3hCLDBCQUEwQixFQUFFLGlCQUFpQjtxQkFDaEQ7OEJBS1EsSUFBSTtzQkFBWixLQUFLO2dCQWFGLEdBQUc7c0JBRE4sS0FBSztnQkFXRixLQUFLO3NCQUZSLEtBQUs7O3NCQUNMLFdBQVc7dUJBQUMsWUFBWTtnQkFZckIsU0FBUztzQkFEWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9ufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdiYi1hdmF0YXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hdmF0YXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnYmItYXZhdGFyJyxcbiAgICAgICAgJ3JvbGUnOiAnaW1nJyxcbiAgICAgICAgJ1tzdHlsZS53aWR0aC5weF0nOiAnc2l6ZScsXG4gICAgICAgICdbc3R5bGUubWluLXdpZHRoLnB4XSc6ICdzaXplJyxcbiAgICAgICAgJ1tzdHlsZS5oZWlnaHQucHhdJzogJ3NpemUnLFxuICAgICAgICAnW3N0eWxlLm1pbi1oZWlnaHQucHhdJzogJ3NpemUnLFxuICAgICAgICAnW3N0eWxlLmZvbnQtc2l6ZS5weF0nOiAnc2l6ZSAqIDAuNDInLFxuICAgICAgICAnW3N0eWxlLmNvbG9yXSc6ICdjb2xvcicsXG4gICAgICAgICdbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl0nOiAnYmFja2dyb3VuZENvbG9yJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQmJBdmF0YXIge1xuXG4gICAgLy8gSW5wdXRzLlxuICAgIEBJbnB1dCgpIHNpemU6IG51bWJlciA9IDQwO1xuXG4gICAgLy8gU3RhdGUuXG4gICAgc3RhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCdpbml0aWFscycpO1xuXG4gICAgLy8gRGF0YS5cbiAgICBwcml2YXRlIF9zcmM6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX3RpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBwcml2YXRlIF9pbml0aWFsczogc3RyaW5nID0gJyEnO1xuICAgIHByaXZhdGUgX2NvbG9yOiBzdHJpbmcgPSAncmdiKDI1NSwgMjU1LCAyNTUpJztcbiAgICBwcml2YXRlIF9iYWNrZ3JvdW5kQ29sb3I6IHN0cmluZyA9ICdyZ2IoNjYsIDY2LCA2NiknO1xuXG4gICAgQElucHV0KClcbiAgICBzZXQgc3JjKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc3JjID0gdmFsdWU7XG5cbiAgICAgICAgaWYgKHRoaXMuX3NyYykge1xuICAgICAgICAgICAgdGhpcy5zdGF0ZSQubmV4dCgnaW1hZ2UnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLnRpdGxlJylcbiAgICBzZXQgdGl0bGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICAvLyBTZXQgdGhlIHRpdGxlIGFuZCB0aGUgaW5pdGlhbHMuXG4gICAgICAgIHRoaXMuX3RpdGxlID0gdmFsdWUgfHwgJyEnO1xuICAgICAgICB0aGlzLl9pbml0aWFscyA9IHRoaXMuZ2V0SW5pdGlhbHModGhpcy5fdGl0bGUpO1xuXG4gICAgICAgIC8vIEdlbmVyYXRlIHRoZSBjb2xvcnMgYmFzZWQgb24gdGhlIG5hbWUuXG4gICAgICAgIGNvbnN0IHtyLCBnLCBifSA9IHRoaXMudG9SR2IodGhpcy5fdGl0bGUpO1xuICAgICAgICB0aGlzLnNldENvbG9ycyhyLCBnLCBiKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHNldCB0aW50Q29sb3IodmFsdWU6IHN0cmluZykge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnBhcnNlQ29sb3JGb3JtYXQodmFsdWUpO1xuICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qge3IsIGcsIGJ9ID0gcmVzdWx0O1xuICAgICAgICB0aGlzLnNldENvbG9ycyhyLCBnLCBiKTtcbiAgICB9XG5cbiAgICBnZXQgc3JjKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fc3JjO1xuICAgIH1cblxuICAgIGdldCBjb2xvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xuICAgIH1cblxuICAgIGdldCBiYWNrZ3JvdW5kQ29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9iYWNrZ3JvdW5kQ29sb3I7XG4gICAgfVxuXG4gICAgZ2V0IHRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdGl0bGU7XG4gICAgfVxuXG4gICAgZ2V0IGluaXRpYWxzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5pdGlhbHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRDb2xvcnMocmVkOiBudW1iZXIsIGdyZWVuOiBudW1iZXIsIGJsdWU6IG51bWJlcikge1xuICAgICAgICB0aGlzLl9jb2xvciA9IGByZ2IoJHtyZWR9LCR7Z3JlZW59LCR7Ymx1ZX0pYDtcbiAgICAgICAgdGhpcy5fYmFja2dyb3VuZENvbG9yID0gYHJnYmEoJHtyZWR9LCR7Z3JlZW59LCR7Ymx1ZX0sIDAuMjUpYDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRvUkdiID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgY29uc3QgYmFzZVJlZCA9IDEyODtcbiAgICAgICAgY29uc3QgYmFzZUdyZWVuID0gMTI4O1xuICAgICAgICBjb25zdCBiYXNlQmx1ZSA9IDEyODtcblxuICAgICAgICBsZXQgc2VlZCA9IHZhbHVlLmNoYXJDb2RlQXQoMCkgXiB2YWx1ZS5jaGFyQ29kZUF0KDEpO1xuICAgICAgICBjb25zdCByYW5kXzEgPSBNYXRoLmFicygoTWF0aC5zaW4oc2VlZCsrKSAqIDEwMDAwKSkgJSAyNTY7XG4gICAgICAgIGNvbnN0IHJhbmRfMiA9IE1hdGguYWJzKChNYXRoLnNpbihzZWVkKyspICogMTAwMDApKSAlIDI1NjtcbiAgICAgICAgY29uc3QgcmFuZF8zID0gTWF0aC5hYnMoKE1hdGguc2luKHNlZWQrKykgKiAxMDAwMCkpICUgMjU2O1xuXG4gICAgICAgIGNvbnN0IHIgPSBNYXRoLnJvdW5kKChyYW5kXzEgKyBiYXNlUmVkKSAvIDIpO1xuICAgICAgICBjb25zdCBnID0gTWF0aC5yb3VuZCgocmFuZF8yICsgYmFzZUdyZWVuKSAvIDIpO1xuICAgICAgICBjb25zdCBiID0gTWF0aC5yb3VuZCgocmFuZF8zICsgYmFzZUJsdWUpIC8gMik7XG5cbiAgICAgICAgcmV0dXJuIHtyLCBnLCBifTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBnZXRJbml0aWFscyA9IChuYW1lOiBzdHJpbmcpID0+IHtcbiAgICAgICAgLy8gR2V0IGFsbCB0aGUgaW5pdGlhbHMuXG4gICAgICAgIGNvbnN0IG5hbWVzID0gKG5hbWUgfHwgJycpLnNwbGl0KCcgJyk7XG4gICAgICAgIGNvbnN0IGluaXRpYWxzID0gbmFtZXMubWFwKG5hbWUgPT4gbmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSk7XG5cbiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUgYXJlIGFueSBpbml0aWFscy5cbiAgICAgICAgaWYgKGluaXRpYWxzLmxlbmd0aCA8PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEdldCB0aGUgZmlyc3QgYW5kIGxhc3QgaW5pdGlhbHMuXG4gICAgICAgIGlmIChpbml0aWFscy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICByZXR1cm4gYCR7aW5pdGlhbHNbMF19JHtpbml0aWFsc1tpbml0aWFscy5sZW5ndGggLSAxXX1gO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2V0IG9ubHkgdGhlIGZpcnN0IGluaXRpYWwuXG4gICAgICAgIHJldHVybiBpbml0aWFsc1swXTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBwYXJzZUNvbG9yRm9ybWF0ID0gKHZhbHVlOiBzdHJpbmcpID0+IHtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBIZXggMyB2YWx1ZXMuXG4gICAgICAgIGxldCBtYXRjaCA9IHZhbHVlLm1hdGNoKC9eIyhbMC05YS1mXXszfSkkL2kpO1xuICAgICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0pIHtcbiAgICAgICAgICAgIGNvbnN0IHIgPSBwYXJzZUludChtYXRjaFsxXS5jaGFyQXQoMCksIDE2KSAqIDB4MTE7XG4gICAgICAgICAgICBjb25zdCBnID0gcGFyc2VJbnQobWF0Y2hbMV0uY2hhckF0KDEpLCAxNikgKiAweDExO1xuICAgICAgICAgICAgY29uc3QgYiA9IHBhcnNlSW50KG1hdGNoWzFdLmNoYXJBdCgyKSwgMTYpICogMHgxMTtcblxuICAgICAgICAgICAgcmV0dXJuIHtyLCBnLCBifTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEhleCA2IHZhbHVlcy5cbiAgICAgICAgbWF0Y2ggPSB2YWx1ZS5tYXRjaCgvXiMoWzAtOWEtZl17Nn0pJC9pKTtcbiAgICAgICAgaWYgKG1hdGNoICYmIG1hdGNoWzFdKSB7XG4gICAgICAgICAgICBjb25zdCByID0gcGFyc2VJbnQobWF0Y2hbMV0uc3Vic3RyaW5nKDAsIDIpLCAxNik7XG4gICAgICAgICAgICBjb25zdCBnID0gcGFyc2VJbnQobWF0Y2hbMV0uc3Vic3RyaW5nKDIsIDQpLCAxNik7XG4gICAgICAgICAgICBjb25zdCBiID0gcGFyc2VJbnQobWF0Y2hbMV0uc3Vic3RyaW5nKDQsIDYpLCAxNik7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIHJldHVybiB7ciwgZywgYn07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZ2IgdmFsdWVzLlxuICAgICAgICBtYXRjaCA9IHZhbHVlLm1hdGNoKC9ecmdiXFxzKlxcKFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqLFxccyooXFxkKylcXHMqXFwpJC9pKTtcbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICBjb25zdCByID0gcGFyc2VJbnQobWF0Y2hbMV0sIDEwKTtcbiAgICAgICAgICAgIGNvbnN0IGcgPSBwYXJzZUludChtYXRjaFsyXSwgMTApO1xuICAgICAgICAgICAgY29uc3QgYiA9IHBhcnNlSW50KG1hdGNoWzNdLCAxMCk7XG5cbiAgICAgICAgICAgIHJldHVybiB7ciwgZywgYn07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBOb3QgYSBzdXBwb3J0ZWQgY29sb3IgZm9ybWF0LlxuICAgICAgICBjb25zb2xlPy53YXJuPy4oYEJiQXZhdGFyOiBVbnN1cHBvcnRlZCB0aW50Q29sb3IgXCIke3ZhbHVlfVwiIHdhcyB1c2VkLmApO1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJzdGF0ZSQgfCBhc3luY1wiPlxuICAgIDwhLS0gSW1hZ2UuIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZSdcIj5cbiAgICAgICAgPGltZyBbc3JjXT1cInNyY1wiXG4gICAgICAgICAgICAgW2FsdF09XCJpbml0aWFsc1wiXG4gICAgICAgICAgICAgKGVycm9yKT1cInN0YXRlJD8ubmV4dCgnaW5pdGlhbHMnKVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJiYi1hdmF0YXItaW1hZ2VcIj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwhLS0gRGVmYXVsdCBpbml0aWFscyBmYWxsYmFjay4gLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgICB7eyBpbml0aWFscyB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -19,9 +19,9 @@ export class BbButton extends BbButtonMixinBase {
19
19
  this.nativeElement && this.nativeElement.focus();
20
20
  }
21
21
  }
22
- BbButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbButton, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
23
- BbButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbButton, selector: "button[bb-button]", inputs: { disabled: "disabled", loading: "loading" }, host: { properties: { "class.loading": "loading", "attr.disabled": "disabled || loading || null" }, classAttribute: "bb-button" }, exportAs: ["bbButton"], usesInheritance: true, ngImport: i0, template: "<bb-spinner [class.visible]=\"loading\"\n class=\"bb-button-spinner small\">\n</bb-spinner>\n\n<ng-content></ng-content>\n", styles: [".bb-button{height:38px;padding:0 8px;cursor:pointer;font-size:16px;font-weight:500;-webkit-user-select:none;user-select:none;position:relative;font-style:normal;border-radius:4px;text-align:center;align-items:center;display:inline-flex;text-decoration:none;justify-content:center;background-color:#fff;color:#2d3c4d!important;border:1px solid #d4d8e1;transition-duration:.2s;box-shadow:0 6px 6px -6px #0000001a;transition-timing-function:cubic-bezier(0,0,.2,1);transition-property:padding-left,background-color,box-shadow}.bb-button:hover{background-color:#fcfcfb}.bb-button:focus,.bb-button:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #dce0e980}.bb-button.full{width:100%}.bb-button.full.loading{padding-left:42px}.bb-button.primary{border-color:#2f2b85;color:#fff!important;background-color:#5b53ff}.bb-button.primary:hover{background-color:#564ee6}.bb-button.primary:focus,.bb-button.primary:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #5b53ff80}.bb-button.destructive{border-color:#8f2020;color:#fff!important;background-color:#d32f2f}.bb-button.destructive:hover{background-color:#c32929}.bb-button.destructive:focus,.bb-button.destructive:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #d32f2f80}.bb-button:disabled,.bb-button:disabled:focus,.bb-button:disabled:hover,.bb-button:disabled:active,.bb-button[disabled],.bb-button[disabled]:focus,.bb-button[disabled]:hover,.bb-button[disabled]:active,.bb-button.loading,.bb-button.loading:focus,.bb-button.loading:hover,.bb-button.loading:active{opacity:.4;cursor:default;box-shadow:none}.bb-button-spinner{width:0;opacity:0;overflow:hidden;visibility:hidden;padding:0!important;transition:width .2s cubic-bezier(0,0,.2,1),opacity .1s cubic-bezier(0,0,.2,1)}.bb-button-spinner.visible{opacity:1;width:20px;margin-right:8px;visibility:visible}.bb-button.loading.full>.bb-button-spinner{left:8px;margin-right:0;position:absolute}\n"], dependencies: [{ kind: "component", type: i1.BbSpinner, selector: "bb-spinner", inputs: ["color", "alt", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbButton, decorators: [{
22
+ BbButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbButton, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
23
+ BbButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: BbButton, selector: "button[bb-button]", inputs: { disabled: "disabled", loading: "loading" }, host: { properties: { "class.loading": "loading", "attr.disabled": "disabled || loading || null" }, classAttribute: "bb-button" }, exportAs: ["bbButton"], usesInheritance: true, ngImport: i0, template: "<bb-spinner [class.visible]=\"loading\"\n class=\"bb-button-spinner small\">\n</bb-spinner>\n\n<ng-content></ng-content>\n", styles: [".bb-button{height:38px;padding:0 8px;cursor:pointer;font-size:16px;font-weight:500;-webkit-user-select:none;user-select:none;position:relative;font-style:normal;border-radius:4px;text-align:center;align-items:center;display:inline-flex;text-decoration:none;justify-content:center;background-color:#fff;color:#2d3c4d!important;border:1px solid #d4d8e1;transition-duration:.2s;box-shadow:0 6px 6px -6px #0000001a;transition-timing-function:cubic-bezier(0,0,.2,1);transition-property:padding-left,background-color,box-shadow}.bb-button:hover{background-color:#fcfcfb}.bb-button:focus,.bb-button:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #dce0e980}.bb-button.full{width:100%}.bb-button.full.loading{padding-left:42px}.bb-button.primary{border-color:#2f2b85;color:#fff!important;background-color:#5b53ff}.bb-button.primary:hover{background-color:#564ee6}.bb-button.primary:focus,.bb-button.primary:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #5b53ff80}.bb-button.destructive{border-color:#8f2020;color:#fff!important;background-color:#d32f2f}.bb-button.destructive:hover{background-color:#c32929}.bb-button.destructive:focus,.bb-button.destructive:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #d32f2f80}.bb-button:disabled,.bb-button:disabled:focus,.bb-button:disabled:hover,.bb-button:disabled:active,.bb-button[disabled],.bb-button[disabled]:focus,.bb-button[disabled]:hover,.bb-button[disabled]:active,.bb-button.loading,.bb-button.loading:focus,.bb-button.loading:hover,.bb-button.loading:active{opacity:.4;cursor:default;box-shadow:none}.bb-button-spinner{width:0;opacity:0;overflow:hidden;visibility:hidden;padding:0!important;transition:width .2s cubic-bezier(0,0,.2,1),opacity .1s cubic-bezier(0,0,.2,1)}.bb-button-spinner.visible{opacity:1;width:20px;margin-right:8px;visibility:visible}.bb-button.loading.full>.bb-button-spinner{left:8px;margin-right:0;position:absolute}\n"], dependencies: [{ kind: "component", type: i1.BbSpinner, selector: "bb-spinner", inputs: ["color", "alt", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbButton, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: 'button[bb-button]', exportAs: 'bbButton', host: {
27
27
  'class': 'bb-button',
@@ -44,9 +44,9 @@ export class BbAnchor extends BbButton {
44
44
  event.stopImmediatePropagation();
45
45
  }
46
46
  }
47
- BbAnchor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbAnchor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
48
- BbAnchor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbAnchor, selector: "a[bb-button]", inputs: { disabled: "disabled", loading: "loading", tabIndex: "tabIndex" }, host: { listeners: { "click": "stopDisabledEvents($event)" }, properties: { "attr.tabindex": "(disabled || loading) ? -1 : (tabIndex || 0)", "attr.disabled": "disabled || loading || null", "attr.aria-disabled": "(disabled || loading).toString()" }, classAttribute: "bb-button" }, exportAs: ["bbButton", "bbAnchor"], usesInheritance: true, ngImport: i0, template: "<bb-spinner [class.visible]=\"loading\"\n class=\"bb-button-spinner small\">\n</bb-spinner>\n\n<ng-content></ng-content>\n", styles: [".bb-button{height:38px;padding:0 8px;cursor:pointer;font-size:16px;font-weight:500;-webkit-user-select:none;user-select:none;position:relative;font-style:normal;border-radius:4px;text-align:center;align-items:center;display:inline-flex;text-decoration:none;justify-content:center;background-color:#fff;color:#2d3c4d!important;border:1px solid #d4d8e1;transition-duration:.2s;box-shadow:0 6px 6px -6px #0000001a;transition-timing-function:cubic-bezier(0,0,.2,1);transition-property:padding-left,background-color,box-shadow}.bb-button:hover{background-color:#fcfcfb}.bb-button:focus,.bb-button:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #dce0e980}.bb-button.full{width:100%}.bb-button.full.loading{padding-left:42px}.bb-button.primary{border-color:#2f2b85;color:#fff!important;background-color:#5b53ff}.bb-button.primary:hover{background-color:#564ee6}.bb-button.primary:focus,.bb-button.primary:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #5b53ff80}.bb-button.destructive{border-color:#8f2020;color:#fff!important;background-color:#d32f2f}.bb-button.destructive:hover{background-color:#c32929}.bb-button.destructive:focus,.bb-button.destructive:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #d32f2f80}.bb-button:disabled,.bb-button:disabled:focus,.bb-button:disabled:hover,.bb-button:disabled:active,.bb-button[disabled],.bb-button[disabled]:focus,.bb-button[disabled]:hover,.bb-button[disabled]:active,.bb-button.loading,.bb-button.loading:focus,.bb-button.loading:hover,.bb-button.loading:active{opacity:.4;cursor:default;box-shadow:none}.bb-button-spinner{width:0;opacity:0;overflow:hidden;visibility:hidden;padding:0!important;transition:width .2s cubic-bezier(0,0,.2,1),opacity .1s cubic-bezier(0,0,.2,1)}.bb-button-spinner.visible{opacity:1;width:20px;margin-right:8px;visibility:visible}.bb-button.loading.full>.bb-button-spinner{left:8px;margin-right:0;position:absolute}\n"], dependencies: [{ kind: "component", type: i1.BbSpinner, selector: "bb-spinner", inputs: ["color", "alt", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbAnchor, decorators: [{
47
+ BbAnchor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbAnchor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
48
+ BbAnchor.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: BbAnchor, selector: "a[bb-button]", inputs: { disabled: "disabled", loading: "loading", tabIndex: "tabIndex" }, host: { listeners: { "click": "stopDisabledEvents($event)" }, properties: { "attr.tabindex": "(disabled || loading) ? -1 : (tabIndex || 0)", "attr.disabled": "disabled || loading || null", "attr.aria-disabled": "(disabled || loading).toString()" }, classAttribute: "bb-button" }, exportAs: ["bbButton", "bbAnchor"], usesInheritance: true, ngImport: i0, template: "<bb-spinner [class.visible]=\"loading\"\n class=\"bb-button-spinner small\">\n</bb-spinner>\n\n<ng-content></ng-content>\n", styles: [".bb-button{height:38px;padding:0 8px;cursor:pointer;font-size:16px;font-weight:500;-webkit-user-select:none;user-select:none;position:relative;font-style:normal;border-radius:4px;text-align:center;align-items:center;display:inline-flex;text-decoration:none;justify-content:center;background-color:#fff;color:#2d3c4d!important;border:1px solid #d4d8e1;transition-duration:.2s;box-shadow:0 6px 6px -6px #0000001a;transition-timing-function:cubic-bezier(0,0,.2,1);transition-property:padding-left,background-color,box-shadow}.bb-button:hover{background-color:#fcfcfb}.bb-button:focus,.bb-button:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #dce0e980}.bb-button.full{width:100%}.bb-button.full.loading{padding-left:42px}.bb-button.primary{border-color:#2f2b85;color:#fff!important;background-color:#5b53ff}.bb-button.primary:hover{background-color:#564ee6}.bb-button.primary:focus,.bb-button.primary:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #5b53ff80}.bb-button.destructive{border-color:#8f2020;color:#fff!important;background-color:#d32f2f}.bb-button.destructive:hover{background-color:#c32929}.bb-button.destructive:focus,.bb-button.destructive:active{box-shadow:0 6px 6px -6px #0000001a,0 0 0 3px #d32f2f80}.bb-button:disabled,.bb-button:disabled:focus,.bb-button:disabled:hover,.bb-button:disabled:active,.bb-button[disabled],.bb-button[disabled]:focus,.bb-button[disabled]:hover,.bb-button[disabled]:active,.bb-button.loading,.bb-button.loading:focus,.bb-button.loading:hover,.bb-button.loading:active{opacity:.4;cursor:default;box-shadow:none}.bb-button-spinner{width:0;opacity:0;overflow:hidden;visibility:hidden;padding:0!important;transition:width .2s cubic-bezier(0,0,.2,1),opacity .1s cubic-bezier(0,0,.2,1)}.bb-button-spinner.visible{opacity:1;width:20px;margin-right:8px;visibility:visible}.bb-button.loading.full>.bb-button-spinner{left:8px;margin-right:0;position:absolute}\n"], dependencies: [{ kind: "component", type: i1.BbSpinner, selector: "bb-spinner", inputs: ["color", "alt", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbAnchor, decorators: [{
50
50
  type: Component,
51
51
  args: [{ selector: 'a[bb-button]', exportAs: 'bbButton, bbAnchor', host: {
52
52
  'class': 'bb-button',
@@ -53,11 +53,11 @@ export class BbCheckbox extends BbCheckboxMixinBase {
53
53
  this.onChange && this.onChange(this.checked);
54
54
  }
55
55
  }
56
- BbCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbCheckbox, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
57
- BbCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbCheckbox, selector: "bb-checkbox", inputs: { grouped: "grouped", disabled: "disabled", tabIndex: "tabIndex", checked: "checked" }, host: { properties: { "class.grouped": "grouped" }, classAttribute: "bb-checkbox" }, providers: [
56
+ BbCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbCheckbox, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
57
+ BbCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: BbCheckbox, selector: "bb-checkbox", inputs: { grouped: "grouped", disabled: "disabled", tabIndex: "tabIndex", checked: "checked" }, host: { properties: { "class.grouped": "grouped" }, classAttribute: "bb-checkbox" }, providers: [
58
58
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbCheckbox), multi: true }
59
59
  ], usesInheritance: true, ngImport: i0, template: "<input [id]=\"labelId\"\n [checked]=\"checked\"\n [disabled]=\"disabled\"\n (change)=\"onInteractionEvent($event)\"\n (click)=\"onInputClick($event)\"\n class=\"bb-checkbox-input\"\n tabindex=\"-1\"\n type=\"checkbox\">\n\n<label [for]=\"labelId\"\n [attr.tabindex]=\"disabled ? -1 : (tabIndex || 0)\"\n (keyup.space)=\"onInputClick($event)\"\n class=\"bb-checkbox-label\">\n <span>\n <svg width=\"12px\"\n height=\"10px\"\n viewbox=\"0 0 12 10\">\n <polyline points=\"1.5 6 4.5 9 10.5 1\"></polyline>\n </svg>\n </span>\n <span>\n <ng-content></ng-content>\n </span>\n</label>\n", styles: [".bb-checkbox{display:block}.bb-checkbox+.bb-checkbox{margin-top:5px}.bb-checkbox.grouped{margin-bottom:20px}.bb-checkbox-input{display:none}.bb-checkbox-label{margin:0;display:flex;cursor:pointer;-webkit-user-select:none;user-select:none}.bb-checkbox-label>span{display:inline-block;vertical-align:middle;transform:translateZ(0)}.bb-checkbox-label>span:first-child{width:18px;height:18px;min-width:18px;min-height:18px;position:relative;border-radius:3px;vertical-align:middle;border:1px solid #bdc4c9;transition:all .2s ease}.bb-checkbox-label>span:last-child{padding-left:8px}.bb-checkbox-label>span:first-child>svg{top:3px;left:2px;fill:none;stroke:#fff;stroke-width:2;position:absolute;stroke-linecap:round;transition-delay:.1s;stroke-linejoin:round;stroke-dasharray:16px;stroke-dashoffset:16px;transition:all .3s ease;transform:translateZ(0)}.bb-checkbox-input:not(:disabled):not(:checked)+.bb-checkbox-label:focus>span:first-child{box-shadow:0 0 0 3px #decdcd80}.bb-checkbox-input:not(:disabled):checked+.bb-checkbox-label:focus>span:first-child{box-shadow:0 0 0 3px #5b53ff80}.bb-checkbox-input:checked+.bb-checkbox-label>span:first-child{border-color:#5b53ff;background-color:#5b53ff}.bb-checkbox-input:checked+.bb-checkbox-label>span:first-child>svg{stroke-dashoffset:0}.bb-checkbox-input:disabled+.bb-checkbox-label{cursor:default;pointer-events:none}.bb-checkbox-input:disabled:checked+.bb-checkbox-label>span:first-child{border-color:#cccccca3;background-color:#cccccca3}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
60
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbCheckbox, decorators: [{
60
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbCheckbox, decorators: [{
61
61
  type: Component,
62
62
  args: [{ selector: 'bb-checkbox', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
63
63
  { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => BbCheckbox), multi: true }
@@ -7,7 +7,7 @@ import { formatDate } from '@angular/common';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@angular/common";
9
9
  import * as i2 from "@angular/forms";
10
- import * as i3 from "../directives/template.directive";
10
+ import * as i3 from "@bravobit/bb-foundation/utils";
11
11
  import * as i4 from "../form-error/form-error.component";
12
12
  import * as i5 from "../directives/form-submit.directive";
13
13
  import * as i6 from "../directives/input.directive";
@@ -247,8 +247,8 @@ export class BbDatePicker extends BbFilePickerMixinBase {
247
247
  return this.years$.next(years);
248
248
  }
249
249
  }
250
- BbDatePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDatePicker, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
251
- BbDatePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbDatePicker, selector: "bb-date-picker", inputs: { required: "required", readonly: "readonly", disabled: "disabled", grouped: "grouped", hideErrors: "hideErrors", label: "label", hint: "hint", dayPlaceholder: "dayPlaceholder", monthPlaceholder: "monthPlaceholder", yearPlaceholder: "yearPlaceholder", years: "years", value: "value" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.required": "required", "class.readonly": "readonly", "class.disabled": "disabled", "class.grouped": "grouped", "class.error": "error" }, classAttribute: "bb-date-picker" }, providers: [
250
+ BbDatePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbDatePicker, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
251
+ BbDatePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: BbDatePicker, selector: "bb-date-picker", inputs: { required: "required", readonly: "readonly", disabled: "disabled", grouped: "grouped", hideErrors: "hideErrors", label: "label", hint: "hint", dayPlaceholder: "dayPlaceholder", monthPlaceholder: "monthPlaceholder", yearPlaceholder: "yearPlaceholder", years: "years", value: "value" }, outputs: { valueChange: "valueChange" }, host: { properties: { "class.required": "required", "class.readonly": "readonly", "class.disabled": "disabled", "class.grouped": "grouped", "class.error": "error" }, classAttribute: "bb-date-picker" }, providers: [
252
252
  {
253
253
  provide: NG_VALUE_ACCESSOR,
254
254
  useExisting: forwardRef(() => BbDatePicker),
@@ -260,7 +260,7 @@ BbDatePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
260
260
  multi: true
261
261
  }
262
262
  ], usesInheritance: true, ngImport: i0, template: "<!-- Label of the date picker. -->\n<label *ngIf=\"label as labelContent\"\n class=\"bb-date-picker-label\">\n <ng-template [bbTemplate]=\"labelContent\">\n {{ labelContent }}\n </ng-template>\n</label>\n\n<!-- The form containing the year/month/day fields. -->\n<form *ngIf=\"data$ | async as data\"\n [formGroup]=\"form\"\n class=\"bb-date-picker-container\"\n novalidate>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('day')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"day\">\n <option [ngValue]=\"null\">{{ dayPlaceholder }}</option>\n <option *ngFor=\"let day of data?.days; trackBy: trackByValue\"\n [ngValue]=\"day?.value\">\n {{ day?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select [class.has-value]=\"!!form?.get('month')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"month\">\n <option [ngValue]=\"null\">{{ monthPlaceholder }}</option>\n <option *ngFor=\"let month of data?.months; trackBy: trackByValue\"\n [ngValue]=\"month?.value\">\n {{ month?.label }}\n </option>\n </select>\n </bb-form-control>\n </div>\n <div class=\"bb-date-picker-item\">\n <bb-form-control hideErrors>\n <select *ngIf=\"data?.years?.length > 0; else defaultYearInputTemplate\"\n [class.has-value]=\"!!form?.get('year')?.value\"\n bbInput\n autocomplete=\"off\"\n formControlName=\"year\">\n <option [ngValue]=\"null\">{{ yearPlaceholder }}</option>\n <option *ngFor=\"let year of data?.years\"\n [value]=\"year\">\n {{ year }}\n </option>\n </select>\n\n <ng-template #defaultYearInputTemplate>\n <input [placeholder]=\"yearPlaceholder\"\n bbInput\n type=\"text\"\n inputmode=\"numeric\"\n minlength=\"4\"\n maxlength=\"4\"\n pattern=\"^[0-9]{4}$\"\n formControlName=\"year\"\n autocomplete=\"off\">\n </ng-template>\n </bb-form-control>\n </div>\n</form>\n\n<!-- The date picker error. -->\n<bb-form-error *ngIf=\"!hideErrors\"\n (errorChange)=\"onErrorChange($event)\">\n</bb-form-error>\n\n<!-- The date picker hint. -->\n<p *ngIf=\"hint as hintContent\"\n class=\"bb-date-picker-hint\">\n <ng-template [bbTemplate]=\"hintContent\">\n {{ hintContent }}\n </ng-template>\n</p>\n", styles: [".bb-date-picker{display:block}.bb-date-picker.required>.bb-date-picker-label:after{content:\"*\";color:#c23934;font-size:12px;line-height:1.5}.bb-date-picker.readonly{pointer-events:none}.bb-date-picker.readonly .bb-form-control-container{cursor:default;border:1px dotted #bdc4c9;background-color:#f9f9f9!important}.bb-date-picker.readonly .bb-form-control-container>select:disabled{opacity:1}.bb-date-picker.grouped{margin-bottom:20px}.bb-date-picker.error>.bb-date-picker-label{color:#c23934}.bb-date-picker.error .bb-form-control-container{border:1px solid #962b26;background-color:#c2393440!important;box-shadow:inset 0 3px #b7bcc233,0 6px 6px -6px #0000001a,0 0 0 3px #c2393466!important}.bb-date-picker-label{color:#000;display:block;font-size:16px;font-weight:500;margin-bottom:4px}.bb-date-picker-container{display:flex}.bb-date-picker-item{flex:1}.bb-date-picker-item>bb-form-control.focused{z-index:1;position:relative}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select>option:first-child{color:#d2d2d2}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select:not(.has-value){color:#d2d2d2}.bb-date-picker-item>.bb-form-control>.bb-form-control-container>select:not(.has-value)>option:not(:first-child){color:#000}.bb-date-picker-item:not(:first-child):not(:last-child) .bb-form-control-container{border-radius:0!important}.bb-date-picker-item:first-child .bb-form-control-container{border-right:none!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}.bb-date-picker-item:last-child .bb-form-control-container{border-left:none!important;border-top-left-radius:0!important;border-bottom-left-radius:0!important}.bb-date-picker-hint{display:block;color:#738694;font-size:13px;margin-top:4px;pointer-events:all}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.BbTemplate, selector: "[bbTemplate]", inputs: ["bbTemplate"] }, { kind: "component", type: i4.BbFormError, selector: "bb-form-error", inputs: ["control"], outputs: ["errorChange"] }, { kind: "directive", type: i5.BbFormSubmit, selector: "form", exportAs: ["bbForm"] }, { kind: "directive", type: i6.BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: ["readonly"] }, { kind: "directive", type: i6.BbSelect, selector: "select[bbInput]", inputs: ["disabled", "required"] }, { kind: "component", type: i7.BbFormControl, selector: "bb-form-control", inputs: ["grouped", "hideErrors", "label", "hint"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
263
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDatePicker, decorators: [{
263
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbDatePicker, decorators: [{
264
264
  type: Component,
265
265
  args: [{ selector: 'bb-date-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
266
266
  {
@@ -2,9 +2,9 @@ import { Directive } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class BbSuffix {
4
4
  }
5
- BbSuffix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
- BbSuffix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbSuffix, selector: "[bbSuffix]", host: { classAttribute: "bb-suffix" }, ngImport: i0 });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbSuffix, decorators: [{
5
+ BbSuffix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbSuffix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
6
+ BbSuffix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: BbSuffix, selector: "[bbSuffix]", host: { classAttribute: "bb-suffix" }, ngImport: i0 });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbSuffix, decorators: [{
8
8
  type: Directive,
9
9
  args: [{
10
10
  selector: '[bbSuffix]',
@@ -15,9 +15,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImpor
15
15
  }] });
16
16
  export class BbPrefix {
17
17
  }
18
- BbPrefix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
19
- BbPrefix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbPrefix, selector: "[bbPrefix]", host: { classAttribute: "bb-prefix" }, ngImport: i0 });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbPrefix, decorators: [{
18
+ BbPrefix.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbPrefix, deps: [], target: i0.ɵɵFactoryTarget.Directive });
19
+ BbPrefix.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: BbPrefix, selector: "[bbPrefix]", host: { classAttribute: "bb-prefix" }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbPrefix, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[bbPrefix]',
@@ -34,9 +34,9 @@ export class BbFormSubmit {
34
34
  return this._formDirective.ngSubmit.pipe(map(() => true));
35
35
  }
36
36
  }
37
- BbFormSubmit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormSubmit, deps: [{ token: i0.ElementRef }, { token: i1.FormGroupDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
38
- BbFormSubmit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbFormSubmit, selector: "form", exportAs: ["bbForm"], ngImport: i0 });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormSubmit, decorators: [{
37
+ BbFormSubmit.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbFormSubmit, deps: [{ token: i0.ElementRef }, { token: i1.FormGroupDirective, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
38
+ BbFormSubmit.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: BbFormSubmit, selector: "form", exportAs: ["bbForm"], ngImport: i0 });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbFormSubmit, decorators: [{
40
40
  type: Directive,
41
41
  args: [{
42
42
  selector: 'form',
@@ -13,9 +13,9 @@ export class BbFormSubmitter {
13
13
  this.submitted$.next(false);
14
14
  }
15
15
  }
16
- BbFormSubmitter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormSubmitter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
- BbFormSubmitter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbFormSubmitter, selector: "[bbFormSubmitter]", exportAs: ["bbFormSubmitter"], ngImport: i0 });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFormSubmitter, decorators: [{
16
+ BbFormSubmitter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbFormSubmitter, deps: [], target: i0.ɵɵFactoryTarget.Directive });
17
+ BbFormSubmitter.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: BbFormSubmitter, selector: "[bbFormSubmitter]", exportAs: ["bbFormSubmitter"], ngImport: i0 });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbFormSubmitter, decorators: [{
19
19
  type: Directive,
20
20
  args: [{
21
21
  selector: '[bbFormSubmitter]',
@@ -61,9 +61,9 @@ export class BbSelect {
61
61
  this._formControl.required = this._required;
62
62
  }
63
63
  }
64
- BbSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbSelect, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
65
- BbSelect.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbSelect, selector: "select[bbInput]", inputs: { disabled: "disabled", required: "required" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "attr.id": "this.id" } }, ngImport: i0 });
66
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbSelect, decorators: [{
64
+ BbSelect.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbSelect, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
65
+ BbSelect.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: BbSelect, selector: "select[bbInput]", inputs: { disabled: "disabled", required: "required" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "attr.id": "this.id" } }, ngImport: i0 });
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbSelect, decorators: [{
67
67
  type: Directive,
68
68
  args: [{
69
69
  selector: 'select[bbInput]',
@@ -109,9 +109,9 @@ export class BbInput extends BbSelect {
109
109
  this._formControl.readonly = this._readonly;
110
110
  }
111
111
  }
112
- BbInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
113
- BbInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: { readonly: "readonly" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "readonly": "readonly" } }, usesInheritance: true, ngImport: i0 });
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbInput, decorators: [{
112
+ BbInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbInput, deps: [{ token: i0.ElementRef }, { token: i1.NgControl, optional: true, self: true }, { token: i2.BbFormControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
113
+ BbInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: BbInput, selector: "input[bbInput], textarea[bbInput]", inputs: { readonly: "readonly" }, host: { listeners: { "focus": "setFocus(true)", "blur": "setFocus(false)" }, properties: { "disabled": "disabled", "readonly": "readonly" } }, usesInheritance: true, ngImport: i0 });
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbInput, decorators: [{
115
115
  type: Directive,
116
116
  args: [{
117
117
  selector: 'input[bbInput], textarea[bbInput]',
@@ -25,8 +25,8 @@ export class BbDropdown {
25
25
  return this.close();
26
26
  }
27
27
  }
28
- BbDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDropdown, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
29
- BbDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbDropdown, selector: "bb-dropdown", host: { listeners: { "document:click": "onDocumentClick($event.target)" }, classAttribute: "bb-dropdown" }, ngImport: i0, template: "<button (click)=\"toggle()\"\n [class.opened]=\"visible$ | async\"\n type=\"button\">\n <ng-content></ng-content>\n</button>\n\n<div *ngIf=\"visible$ | async\"\n [@dropdownMenuAnimation]=\"true\"\n class=\"bb-dropdown-menu\"\n role=\"list\">\n <ng-content select=\"[bbDropdownItem], hr\"></ng-content>\n</div>\n", styles: [".bb-dropdown{position:relative;display:inline-block}.bb-dropdown.right>.bb-dropdown-menu{right:0;left:auto;transform-origin:top right}.bb-dropdown-menu{left:0;top:100%;padding:0;z-index:10;display:block;margin:10px 0 0;border-radius:4px;position:absolute;list-style-type:none;background-color:#fff;border:1px solid #cccccc;transform-origin:top left;box-shadow:0 0 6px #0000001a}.bb-dropdown-menu:after{width:0;top:-5px;height:0;right:5px;content:\"\";position:absolute;border-style:solid;border-width:0 10px 5px 10px;border-color:transparent transparent #d9d9d9 transparent}.bb-dropdown-menu>hr{margin:0;height:1px;border:none;background-color:#ccc}.bb-dropdown-item{width:100%;border:none;line-height:1;display:block;cursor:pointer;text-align:left;font-weight:500;-webkit-user-select:none;user-select:none;padding:12px 20px;white-space:nowrap;text-decoration:none;color:#676767!important;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-dropdown-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.bb-dropdown-item:hover{background-color:#f6f6f6}.bb-dropdown-item:focus{box-shadow:0 0 0 3px #dce0e980}.bb-dropdown-item:active{background-color:#f0f0f0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [
28
+ BbDropdown.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbDropdown, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
29
+ BbDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: BbDropdown, selector: "bb-dropdown", host: { listeners: { "document:click": "onDocumentClick($event.target)" }, classAttribute: "bb-dropdown" }, ngImport: i0, template: "<button (click)=\"toggle()\"\n [class.opened]=\"visible$ | async\"\n type=\"button\">\n <ng-content></ng-content>\n</button>\n\n<div *ngIf=\"visible$ | async\"\n [@dropdownMenuAnimation]=\"true\"\n class=\"bb-dropdown-menu\"\n role=\"list\">\n <ng-content select=\"[bbDropdownItem], hr\"></ng-content>\n</div>\n", styles: [".bb-dropdown{position:relative;display:inline-block}.bb-dropdown.right>.bb-dropdown-menu{right:0;left:auto;transform-origin:top right}.bb-dropdown-menu{left:0;top:100%;padding:0;z-index:10;display:block;margin:10px 0 0;border-radius:4px;position:absolute;list-style-type:none;background-color:#fff;border:1px solid #cccccc;transform-origin:top left;box-shadow:0 0 6px #0000001a}.bb-dropdown-menu:after{width:0;top:-5px;height:0;right:5px;content:\"\";position:absolute;border-style:solid;border-width:0 10px 5px 10px;border-color:transparent transparent #d9d9d9 transparent}.bb-dropdown-menu>hr{margin:0;height:1px;border:none;background-color:#ccc}.bb-dropdown-item{width:100%;border:none;line-height:1;display:block;cursor:pointer;text-align:left;font-weight:500;-webkit-user-select:none;user-select:none;padding:12px 20px;white-space:nowrap;text-decoration:none;color:#676767!important;background-color:transparent;transition:background-color .25s cubic-bezier(0,0,.2,1)}.bb-dropdown-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.bb-dropdown-item:hover{background-color:#f6f6f6}.bb-dropdown-item:focus{box-shadow:0 0 0 3px #dce0e980}.bb-dropdown-item:active{background-color:#f0f0f0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [
30
30
  trigger('dropdownMenuAnimation', [
31
31
  transition(':enter', [
32
32
  // 1. Set the initial state.
@@ -42,7 +42,7 @@ BbDropdown.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "1
42
42
  ])
43
43
  ])
44
44
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDropdown, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbDropdown, decorators: [{
46
46
  type: Component,
47
47
  args: [{ selector: 'bb-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-dropdown' }, preserveWhitespaces: false, animations: [
48
48
  trigger('dropdownMenuAnimation', [
@@ -77,9 +77,9 @@ export class BbDropdownItem {
77
77
  this._parent?.close();
78
78
  }
79
79
  }
80
- BbDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDropdownItem, deps: [{ token: BbDropdown, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
81
- BbDropdownItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.1", type: BbDropdownItem, selector: "[bbDropdownItem]", inputs: { closeOnClick: "closeOnClick" }, host: { listeners: { "click": "onClick()" }, classAttribute: "bb-dropdown-item" }, ngImport: i0 });
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbDropdownItem, decorators: [{
80
+ BbDropdownItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbDropdownItem, deps: [{ token: BbDropdown, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
81
+ BbDropdownItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: BbDropdownItem, selector: "[bbDropdownItem]", inputs: { closeOnClick: "closeOnClick" }, host: { listeners: { "click": "onClick()" }, classAttribute: "bb-dropdown-item" }, ngImport: i0 });
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbDropdownItem, decorators: [{
83
83
  type: Directive,
84
84
  args: [{
85
85
  selector: '[bbDropdownItem]',
@@ -11,15 +11,12 @@ import { BbFormSubmit } from './directives/form-submit.directive';
11
11
  import { BbInput, BbSelect } from './directives/input.directive';
12
12
  import { BbFormGroup } from './form-group/form-group.component';
13
13
  import { BbFormError } from './form-error/form-error.component';
14
- import { BbFocusTrap } from './directives/focus-trap.directive';
15
14
  import { BbAnchor, BbButton } from './button/button.component';
16
15
  import { NgModule } from '@angular/core';
17
- import { BbTemplate } from './directives/template.directive';
18
- import { BbAutosize } from './directives/autosize.directive';
19
16
  import { BbRelativeTime } from './pipes/relative-time.pipe';
17
+ import { UtilsModule } from '@bravobit/bb-foundation/utils';
20
18
  import { BbCheckbox } from './checkbox/checkbox.component';
21
19
  import { BbSpinner } from './spinner/spinner.component';
22
- import { BbFocus } from './directives/focus.directive';
23
20
  import { BbFileImage } from './pipes/file-image.pipe';
24
21
  import { ReactiveFormsModule } from '@angular/forms';
25
22
  import { BbAvatar } from './avatar/avatar.component';
@@ -30,15 +27,11 @@ import { BbTag } from './tag/tag.component';
30
27
  import * as i0 from "@angular/core";
31
28
  const DECLARATIONS_EXPORTS = [
32
29
  // Directives.
33
- BbTemplate,
34
30
  BbFormError,
35
31
  BbFormSubmit,
36
32
  BbFormSubmitter,
37
33
  BbInput,
38
34
  BbSelect,
39
- BbFocus,
40
- BbFocusTrap,
41
- BbAutosize,
42
35
  BbPrefix,
43
36
  BbSuffix,
44
37
  // Pipes.
@@ -72,18 +65,14 @@ export class ElementsModule {
72
65
  };
73
66
  }
74
67
  }
75
- ElementsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
76
- ElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.1", ngImport: i0, type: ElementsModule, declarations: [
68
+ ElementsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ElementsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
69
+ ElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: ElementsModule, declarations: [
77
70
  // Directives.
78
- BbTemplate,
79
71
  BbFormError,
80
72
  BbFormSubmit,
81
73
  BbFormSubmitter,
82
74
  BbInput,
83
75
  BbSelect,
84
- BbFocus,
85
- BbFocusTrap,
86
- BbAutosize,
87
76
  BbPrefix,
88
77
  BbSuffix,
89
78
  // Pipes.
@@ -104,17 +93,16 @@ ElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
104
93
  BbAvatar,
105
94
  BbFilePicker,
106
95
  BbImagePicker,
107
- BbDatePicker], imports: [CommonModule, ReactiveFormsModule, LocalizeModule], exports: [
96
+ BbDatePicker], imports: [CommonModule,
97
+ ReactiveFormsModule,
98
+ LocalizeModule,
99
+ UtilsModule], exports: [
108
100
  // Directives.
109
- BbTemplate,
110
101
  BbFormError,
111
102
  BbFormSubmit,
112
103
  BbFormSubmitter,
113
104
  BbInput,
114
105
  BbSelect,
115
- BbFocus,
116
- BbFocusTrap,
117
- BbAutosize,
118
106
  BbPrefix,
119
107
  BbSuffix,
120
108
  // Pipes.
@@ -135,14 +123,22 @@ ElementsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
135
123
  BbAvatar,
136
124
  BbFilePicker,
137
125
  BbImagePicker,
138
- BbDatePicker] });
139
- ElementsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ElementsModule, imports: [CommonModule, ReactiveFormsModule, LocalizeModule] });
140
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: ElementsModule, decorators: [{
126
+ BbDatePicker, UtilsModule] });
127
+ ElementsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ElementsModule, imports: [CommonModule,
128
+ ReactiveFormsModule,
129
+ LocalizeModule,
130
+ UtilsModule, UtilsModule] });
131
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: ElementsModule, decorators: [{
141
132
  type: NgModule,
142
133
  args: [{
143
- imports: [CommonModule, ReactiveFormsModule, LocalizeModule],
134
+ imports: [
135
+ CommonModule,
136
+ ReactiveFormsModule,
137
+ LocalizeModule,
138
+ UtilsModule
139
+ ],
144
140
  declarations: [...DECLARATIONS_EXPORTS],
145
- exports: [...DECLARATIONS_EXPORTS]
141
+ exports: [...DECLARATIONS_EXPORTS, UtilsModule]
146
142
  }]
147
143
  }] });
148
144
  export const ELEMENTS_MATERIAL_ICON = {
@@ -178,4 +174,4 @@ export function getErrors() {
178
174
  };
179
175
  return data;
180
176
  }
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2VsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxtQ0FBbUMsQ0FBQztBQUM5RCxPQUFPLEVBQUMsUUFBUSxFQUFFLFFBQVEsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBc0IsUUFBUSxFQUFDLE1BQU0sZUFBZSxD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QUFDLEVBQUMsS0FBSyxFQUFFLHlCQUF5QixFQUFFLElBQUksRUFBRSxFQUFDLEdBQUcsRUFBQyxFQUFDLENBQUM7UUFDakUsV0FBVyxFQUFFLENBQUMsRUFBQyxPQUFPLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSxpQ0FBaUMsRUFBRSxJQUFJLEVBQUUsRUFBQyxPQUFPLEVBQUMsRUFBQyxDQUFDO1FBQ3pGLE9BQU8sRUFBRSxDQUFDLEVBQUMsSUFBSSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsNkJBQTZCLEVBQUUsSUFBSSxFQUFFLEVBQUMsSUFBSSxFQUFDLEVBQUMsQ0FBQztRQUMzRSxPQUFPLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLDZCQUE2QixFQUFFLElBQUksRUFBRSxFQUFDLElBQUksRUFBQyxFQUFDLENBQUM7UUFDM0UsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDLGlDQUFpQztRQUNwRCxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMscUNBQXFDO1FBQzVELFNBQVMsRUFBRSxDQUFDLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLEtBQUssRUFBRSwrQkFBK0I7WUFDdEMsSUFBSSxFQUFFLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQztTQUN2QyxDQUFDO1FBQ0YsU0FBUyxFQUFFLENBQUMsRUFBQyxjQUFjLEVBQUUsWUFBWSxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDNUMsS0FBSyxFQUFFLCtCQUErQjtZQUN0QyxJQUFJLEVBQUUsRUFBQyxjQUFjLEVBQUUsWUFBWSxFQUFDO1NBQ3ZDLENBQUM7S0FDTCxDQUFDO0lBRUYsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmJEcm9wZG93biwgQmJEcm9wZG93bkl0ZW19IGZyb20gJy4vZHJvcGRvd24vZHJvcGRvd24uY29tcG9uZW50JztcbmltcG9ydCB7RUxFTUVOVFNfRVJST1JTLCBFTEVNRU5UU19JQ09OU30gZnJvbSAnLi9lbGVtZW50cy5pbnRlcmZhY2VzJztcbmltcG9ydCB7QmJGb3JtU3VibWl0dGVyfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXR0ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJJbWFnZVBpY2tlcn0gZnJvbSAnLi9pbWFnZS1waWNrZXIvaW1hZ2UtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRm9ybUNvbnRyb2x9IGZyb20gJy4vZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkZpbGVQaWNrZXJ9IGZyb20gJy4vZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJEYXRlUGlja2VyfSBmcm9tICcuL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvY2FsaXplTW9kdWxlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9sb2NhbGl6ZSc7XG5pbXBvcnQge0JiUHJlZml4LCBCYlN1ZmZpeH0gZnJvbSAnLi9kaXJlY3RpdmVzL2FkZG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiRm9ybVN1Ym1pdH0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiSW5wdXQsIEJiU2VsZWN0fSBmcm9tICcuL2RpcmVjdGl2ZXMvaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJGb3JtR3JvdXB9IGZyb20gJy4vZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRm9ybUVycm9yfSBmcm9tICcuL2Zvcm0tZXJyb3IvZm9ybS1lcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkZvY3VzVHJhcH0gZnJvbSAnLi9kaXJlY3RpdmVzL2ZvY3VzLXRyYXAuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJBbmNob3IsIEJiQnV0dG9ufSBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYlRlbXBsYXRlfSBmcm9tICcuL2RpcmVjdGl2ZXMvdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJBdXRvc2l6ZX0gZnJvbSAnLi9kaXJlY3RpdmVzL2F1dG9zaXplLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiUmVsYXRpdmVUaW1lfSBmcm9tICcuL3BpcGVzL3JlbGF0aXZlLXRpbWUucGlwZSc7XG5pbXBvcnQge0JiQ2hlY2tib3h9IGZyb20gJy4vY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7QmJTcGlubmVyfSBmcm9tICcuL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkZvY3VzfSBmcm9tICcuL2RpcmVjdGl2ZXMvZm9jdXMuZGlyZWN0aXZlJztcbmltcG9ydCB7QmJGaWxlSW1hZ2V9IGZyb20gJy4vcGlwZXMvZmlsZS1pbWFnZS5waXBlJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtCYkF2YXRhcn0gZnJvbSAnLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRmlsZVNpemV9IGZyb20gJy4vcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JiSWNvbn0gZnJvbSAnLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7QmJUYWd9IGZyb20gJy4vdGFnL3RhZy5jb21wb25lbnQnO1xuXG5jb25zdCBERUNMQVJBVElPTlNfRVhQT1JUUyA9IFtcbiAgICAvLyBEaXJlY3RpdmVzLlxuICAgIEJiVGVtcGxhdGUsXG4gICAgQmJGb3JtRXJyb3IsXG4gICAgQmJGb3JtU3VibWl0LFxuICAgIEJiRm9ybVN1Ym1pdHRlcixcbiAgICBCYklucHV0LFxuICAgIEJiU2VsZWN0LFxuICAgIEJiRm9jdXMsXG4gICAgQmJGb2N1c1RyYXAsXG4gICAgQmJBdXRvc2l6ZSxcbiAgICBCYlByZWZpeCxcbiAgICBCYlN1ZmZpeCxcbiAgICAvLyBQaXBlcy5cbiAgICBCYkZpbGVTaXplLFxuICAgIEJiRmlsZUltYWdlLFxuICAgIEJiUmVsYXRpdmVUaW1lLFxuICAgIC8vIENvbXBvbmVudHMuXG4gICAgQmJCdXR0b24sXG4gICAgQmJBbmNob3IsXG4gICAgQmJTcGlubmVyLFxuICAgIEJiSWNvbixcbiAgICBCYkZvcm1Db250cm9sLFxuICAgIEJiRm9ybUdyb3VwLFxuICAgIEJiQ2hlY2tib3gsXG4gICAgQmJEcm9wZG93bixcbiAgICBCYkRyb3Bkb3duSXRlbSxcbiAgICBCYlRhZyxcbiAgICBCYkF2YXRhcixcbiAgICBCYkZpbGVQaWNrZXIsXG4gICAgQmJJbWFnZVBpY2tlcixcbiAgICBCYkRhdGVQaWNrZXJcbl07XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTG9jYWxpemVNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogWy4uLkRFQ0xBUkFUSU9OU19FWFBPUlRTXSxcbiAgICBleHBvcnRzOiBbLi4uREVDTEFSQVRJT05TX0VYUE9SVFNdXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRzTW9kdWxlIHtcblxuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RWxlbWVudHNNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBFbGVtZW50c01vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBFTEVNRU5UU19FUlJPUlMsIHVzZUZhY3Rvcnk6IGdldEVycm9ycywgbXVsdGk6IHRydWV9LFxuICAgICAgICAgICAgICAgIEVMRU1FTlRTX01BVEVSSUFMX0lDT05cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGNvbnN0IEVMRU1FTlRTX01BVEVSSUFMX0lDT04gPSB7XG4gICAgcHJvdmlkZTogRUxFTUVOVFNfSUNPTlMsXG4gICAgdXNlVmFsdWU6IHtuYW1lc3BhY2U6ICdtYXRlcmlhbCcsIGNsYXNzTmFtZTogJ21hdGVyaWFsLWljb25zJywgdXNlczogJ2NvbnRlbnQnLCB0eXBlOiAnZm9udCd9LFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JzKCkge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgIHVua25vd246ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnVua25vd24nLFxuICAgICAgICByZXF1aXJlZDogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMucmVxdWlyZWQnLFxuICAgICAgICBwYXR0ZXJuOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5wYXR0ZXJuJyxcbiAgICAgICAgZW1haWw6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmVtYWlsJyxcbiAgICAgICAgZW1haWxUYWtlbjogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuZW1haWxUYWtlbicsXG4gICAgICAgIHBhc3N3b3JkTWF0Y2g6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnBhc3N3b3JkTWF0Y2gnLFxuICAgICAgICBjb25maXJtOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5jb25maXJtJyxcbiAgICAgICAgZnVsbE51bWJlcjogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuZnVsbE51bWJlcicsXG4gICAgICAgIG1pbjogKHttaW59KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5taW4nLCBkYXRhOiB7bWlufX0pLFxuICAgICAgICBtYXg6ICh7bWF4fSkgPT4gKHt0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4JywgZGF0YToge21heH19KSxcbiAgICAgICAgbWF4RmlsZVNpemU6ICh7bWF4U2l6ZX0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1heEZpbGVTaXplJywgZGF0YToge21heFNpemV9fSksXG4gICAgICAgIG1pbkRhdGU6ICh7ZGF0ZX0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1pbkRhdGUnLCBkYXRhOiB7ZGF0ZX19KSxcbiAgICAgICAgbWF4RGF0ZTogKHtkYXRlfSkgPT4gKHt0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4RGF0ZScsIGRhdGE6IHtkYXRlfX0pLFxuICAgICAgICBpbnZhbGlkRGF0ZTogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuaW52YWxpZERhdGUnLFxuICAgICAgICBpbnZhbGlkRmlsZVR5cGU6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmludmFsaWRGaWxlVHlwZScsXG4gICAgICAgIG1pbmxlbmd0aDogKHtyZXF1aXJlZExlbmd0aCwgYWN0dWFsTGVuZ3RofSkgPT4gKHtcbiAgICAgICAgICAgIHRva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5taW5sZW5ndGgnLFxuICAgICAgICAgICAgZGF0YToge3JlcXVpcmVkTGVuZ3RoLCBhY3R1YWxMZW5ndGh9XG4gICAgICAgIH0pLFxuICAgICAgICBtYXhsZW5ndGg6ICh7cmVxdWlyZWRMZW5ndGgsIGFjdHVhbExlbmd0aH0pID0+ICh7XG4gICAgICAgICAgICB0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4bGVuZ3RoJyxcbiAgICAgICAgICAgIGRhdGE6IHtyZXF1aXJlZExlbmd0aCwgYWN0dWFsTGVuZ3RofVxuICAgICAgICB9KVxuICAgIH07XG5cbiAgICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==
177
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9lbGVtZW50cy9zcmMvbGliL2VsZW1lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLGNBQWMsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxlQUFlLEVBQUUsY0FBYyxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVDQUF1QyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDcEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ2pFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDaEUsT0FBTyxFQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDOUQsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBQyxRQUFRLEVBQUUsUUFBUSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFzQixRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDRCQUE0QixD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Q0FBQztRQUN6RixPQUFPLEVBQUUsQ0FBQyxFQUFDLElBQUksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUMsS0FBSyxFQUFFLDZCQUE2QixFQUFFLElBQUksRUFBRSxFQUFDLElBQUksRUFBQyxFQUFDLENBQUM7UUFDM0UsT0FBTyxFQUFFLENBQUMsRUFBQyxJQUFJLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFDLEtBQUssRUFBRSw2QkFBNkIsRUFBRSxJQUFJLEVBQUUsRUFBQyxJQUFJLEVBQUMsRUFBQyxDQUFDO1FBQzNFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxpQ0FBaUM7UUFDcEQsZUFBZSxFQUFFLEdBQUcsRUFBRSxDQUFDLHFDQUFxQztRQUM1RCxTQUFTLEVBQUUsQ0FBQyxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM1QyxLQUFLLEVBQUUsK0JBQStCO1lBQ3RDLElBQUksRUFBRSxFQUFDLGNBQWMsRUFBRSxZQUFZLEVBQUM7U0FDdkMsQ0FBQztRQUNGLFNBQVMsRUFBRSxDQUFDLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLEtBQUssRUFBRSwrQkFBK0I7WUFDdEMsSUFBSSxFQUFFLEVBQUMsY0FBYyxFQUFFLFlBQVksRUFBQztTQUN2QyxDQUFDO0tBQ0wsQ0FBQztJQUVGLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0JiRHJvcGRvd24sIEJiRHJvcGRvd25JdGVtfSBmcm9tICcuL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5pbXBvcnQge0VMRU1FTlRTX0VSUk9SUywgRUxFTUVOVFNfSUNPTlN9IGZyb20gJy4vZWxlbWVudHMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0JiRm9ybVN1Ym1pdHRlcn0gZnJvbSAnLi9kaXJlY3RpdmVzL2Zvcm0tc3VibWl0dGVyLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiSW1hZ2VQaWNrZXJ9IGZyb20gJy4vaW1hZ2UtcGlja2VyL2ltYWdlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkZvcm1Db250cm9sfSBmcm9tICcuL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2wuY29tcG9uZW50JztcbmltcG9ydCB7QmJGaWxlUGlja2VyfSBmcm9tICcuL2ZpbGUtcGlja2VyL2ZpbGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRGF0ZVBpY2tlcn0gZnJvbSAnLi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2NhbGl6ZU1vZHVsZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vbG9jYWxpemUnO1xuaW1wb3J0IHtCYlByZWZpeCwgQmJTdWZmaXh9IGZyb20gJy4vZGlyZWN0aXZlcy9hZGRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYkZvcm1TdWJtaXR9IGZyb20gJy4vZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtCYklucHV0LCBCYlNlbGVjdH0gZnJvbSAnLi9kaXJlY3RpdmVzL2lucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQge0JiRm9ybUdyb3VwfSBmcm9tICcuL2Zvcm0tZ3JvdXAvZm9ybS1ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHtCYkZvcm1FcnJvcn0gZnJvbSAnLi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcbmltcG9ydCB7QmJBbmNob3IsIEJiQnV0dG9ufSBmcm9tICcuL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7TW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCYlJlbGF0aXZlVGltZX0gZnJvbSAnLi9waXBlcy9yZWxhdGl2ZS10aW1lLnBpcGUnO1xuaW1wb3J0IHtVdGlsc01vZHVsZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vdXRpbHMnO1xuaW1wb3J0IHtCYkNoZWNrYm94fSBmcm9tICcuL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQge0JiU3Bpbm5lcn0gZnJvbSAnLi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7QmJGaWxlSW1hZ2V9IGZyb20gJy4vcGlwZXMvZmlsZS1pbWFnZS5waXBlJztcbmltcG9ydCB7UmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtCYkF2YXRhcn0gZnJvbSAnLi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5pbXBvcnQge0JiRmlsZVNpemV9IGZyb20gJy4vcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0JiSWNvbn0gZnJvbSAnLi9pY29uL2ljb24uY29tcG9uZW50JztcbmltcG9ydCB7QmJUYWd9IGZyb20gJy4vdGFnL3RhZy5jb21wb25lbnQnO1xuXG5jb25zdCBERUNMQVJBVElPTlNfRVhQT1JUUyA9IFtcbiAgICAvLyBEaXJlY3RpdmVzLlxuICAgIEJiRm9ybUVycm9yLFxuICAgIEJiRm9ybVN1Ym1pdCxcbiAgICBCYkZvcm1TdWJtaXR0ZXIsXG4gICAgQmJJbnB1dCxcbiAgICBCYlNlbGVjdCxcbiAgICBCYlByZWZpeCxcbiAgICBCYlN1ZmZpeCxcbiAgICAvLyBQaXBlcy5cbiAgICBCYkZpbGVTaXplLFxuICAgIEJiRmlsZUltYWdlLFxuICAgIEJiUmVsYXRpdmVUaW1lLFxuICAgIC8vIENvbXBvbmVudHMuXG4gICAgQmJCdXR0b24sXG4gICAgQmJBbmNob3IsXG4gICAgQmJTcGlubmVyLFxuICAgIEJiSWNvbixcbiAgICBCYkZvcm1Db250cm9sLFxuICAgIEJiRm9ybUdyb3VwLFxuICAgIEJiQ2hlY2tib3gsXG4gICAgQmJEcm9wZG93bixcbiAgICBCYkRyb3Bkb3duSXRlbSxcbiAgICBCYlRhZyxcbiAgICBCYkF2YXRhcixcbiAgICBCYkZpbGVQaWNrZXIsXG4gICAgQmJJbWFnZVBpY2tlcixcbiAgICBCYkRhdGVQaWNrZXJcbl07XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIExvY2FsaXplTW9kdWxlLFxuICAgICAgICBVdGlsc01vZHVsZVxuICAgIF0sXG4gICAgZGVjbGFyYXRpb25zOiBbLi4uREVDTEFSQVRJT05TX0VYUE9SVFNdLFxuICAgIGV4cG9ydHM6IFsuLi5ERUNMQVJBVElPTlNfRVhQT1JUUywgVXRpbHNNb2R1bGVdXG59KVxuZXhwb3J0IGNsYXNzIEVsZW1lbnRzTW9kdWxlIHtcblxuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8RWxlbWVudHNNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBFbGVtZW50c01vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBFTEVNRU5UU19FUlJPUlMsIHVzZUZhY3Rvcnk6IGdldEVycm9ycywgbXVsdGk6IHRydWV9LFxuICAgICAgICAgICAgICAgIEVMRU1FTlRTX01BVEVSSUFMX0lDT05cbiAgICAgICAgICAgIF1cbiAgICAgICAgfTtcbiAgICB9XG5cbn1cblxuZXhwb3J0IGNvbnN0IEVMRU1FTlRTX01BVEVSSUFMX0lDT04gPSB7XG4gICAgcHJvdmlkZTogRUxFTUVOVFNfSUNPTlMsXG4gICAgdXNlVmFsdWU6IHtuYW1lc3BhY2U6ICdtYXRlcmlhbCcsIGNsYXNzTmFtZTogJ21hdGVyaWFsLWljb25zJywgdXNlczogJ2NvbnRlbnQnLCB0eXBlOiAnZm9udCd9LFxuICAgIG11bHRpOiB0cnVlXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXJyb3JzKCkge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgIHVua25vd246ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnVua25vd24nLFxuICAgICAgICByZXF1aXJlZDogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMucmVxdWlyZWQnLFxuICAgICAgICBwYXR0ZXJuOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5wYXR0ZXJuJyxcbiAgICAgICAgZW1haWw6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmVtYWlsJyxcbiAgICAgICAgZW1haWxUYWtlbjogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuZW1haWxUYWtlbicsXG4gICAgICAgIHBhc3N3b3JkTWF0Y2g6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLnBhc3N3b3JkTWF0Y2gnLFxuICAgICAgICBjb25maXJtOiAoKSA9PiAnZm9ybS1jb250cm9sLWVycm9ycy5jb25maXJtJyxcbiAgICAgICAgZnVsbE51bWJlcjogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuZnVsbE51bWJlcicsXG4gICAgICAgIG1pbjogKHttaW59KSA9PiAoe3Rva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5taW4nLCBkYXRhOiB7bWlufX0pLFxuICAgICAgICBtYXg6ICh7bWF4fSkgPT4gKHt0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4JywgZGF0YToge21heH19KSxcbiAgICAgICAgbWF4RmlsZVNpemU6ICh7bWF4U2l6ZX0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1heEZpbGVTaXplJywgZGF0YToge21heFNpemV9fSksXG4gICAgICAgIG1pbkRhdGU6ICh7ZGF0ZX0pID0+ICh7dG9rZW46ICdmb3JtLWNvbnRyb2wtZXJyb3JzLm1pbkRhdGUnLCBkYXRhOiB7ZGF0ZX19KSxcbiAgICAgICAgbWF4RGF0ZTogKHtkYXRlfSkgPT4gKHt0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4RGF0ZScsIGRhdGE6IHtkYXRlfX0pLFxuICAgICAgICBpbnZhbGlkRGF0ZTogKCkgPT4gJ2Zvcm0tY29udHJvbC1lcnJvcnMuaW52YWxpZERhdGUnLFxuICAgICAgICBpbnZhbGlkRmlsZVR5cGU6ICgpID0+ICdmb3JtLWNvbnRyb2wtZXJyb3JzLmludmFsaWRGaWxlVHlwZScsXG4gICAgICAgIG1pbmxlbmd0aDogKHtyZXF1aXJlZExlbmd0aCwgYWN0dWFsTGVuZ3RofSkgPT4gKHtcbiAgICAgICAgICAgIHRva2VuOiAnZm9ybS1jb250cm9sLWVycm9ycy5taW5sZW5ndGgnLFxuICAgICAgICAgICAgZGF0YToge3JlcXVpcmVkTGVuZ3RoLCBhY3R1YWxMZW5ndGh9XG4gICAgICAgIH0pLFxuICAgICAgICBtYXhsZW5ndGg6ICh7cmVxdWlyZWRMZW5ndGgsIGFjdHVhbExlbmd0aH0pID0+ICh7XG4gICAgICAgICAgICB0b2tlbjogJ2Zvcm0tY29udHJvbC1lcnJvcnMubWF4bGVuZ3RoJyxcbiAgICAgICAgICAgIGRhdGE6IHtyZXF1aXJlZExlbmd0aCwgYWN0dWFsTGVuZ3RofVxuICAgICAgICB9KVxuICAgIH07XG5cbiAgICByZXR1cm4gZGF0YTtcbn1cbiJdfQ==
@@ -5,7 +5,7 @@ import { animate, style, transition, trigger } from '@angular/animations';
5
5
  import { BehaviorSubject } from 'rxjs';
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@angular/common";
8
- import * as i2 from "../directives/template.directive";
8
+ import * as i2 from "@bravobit/bb-foundation/utils";
9
9
  import * as i3 from "../form-error/form-error.component";
10
10
  import * as i4 from "@bravobit/bb-foundation/localize";
11
11
  import * as i5 from "../pipes/file-size.pipe";
@@ -149,8 +149,8 @@ export class BbFilePicker extends BbFilePickerMixinBase {
149
149
  };
150
150
  }
151
151
  }
152
- BbFilePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFilePicker, deps: null, target: i0.ɵɵFactoryTarget.Component });
153
- BbFilePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.1", type: BbFilePicker, selector: "bb-file-picker", inputs: { disabled: "disabled", hideErrors: "hideErrors", grouped: "grouped", required: "required", label: "label", hint: "hint", accept: "accept", showImages: "showImages", allowDragging: "allowDragging", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "dragover": "onDrag($event,true)", "dragleave": "onDrag($event,false)", "drop": "onDrop($event)" }, properties: { "class.required": "required", "class.disabled": "disabled", "class.grouped": "grouped", "class.hovered": "hovered", "class.error": "error" }, classAttribute: "bb-file-picker" }, providers: [
152
+ BbFilePicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbFilePicker, deps: null, target: i0.ɵɵFactoryTarget.Component });
153
+ BbFilePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: BbFilePicker, selector: "bb-file-picker", inputs: { disabled: "disabled", hideErrors: "hideErrors", grouped: "grouped", required: "required", label: "label", hint: "hint", accept: "accept", showImages: "showImages", allowDragging: "allowDragging", value: "value" }, outputs: { valueChange: "valueChange" }, host: { listeners: { "dragover": "onDrag($event,true)", "dragleave": "onDrag($event,false)", "drop": "onDrop($event)" }, properties: { "class.required": "required", "class.disabled": "disabled", "class.grouped": "grouped", "class.hovered": "hovered", "class.error": "error" }, classAttribute: "bb-file-picker" }, providers: [
154
154
  {
155
155
  provide: NG_VALUE_ACCESSOR,
156
156
  useExisting: forwardRef(() => BbFilePicker),
@@ -172,7 +172,7 @@ BbFilePicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version:
172
172
  ])
173
173
  ])
174
174
  ], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.1", ngImport: i0, type: BbFilePicker, decorators: [{
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: BbFilePicker, decorators: [{
176
176
  type: Component,
177
177
  args: [{ selector: 'bb-file-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
178
178
  {