@bravobit/bb-foundation 0.21.3 → 0.21.6

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 (148) hide show
  1. package/elements/lib/directives/form-submitter.directive.d.ts +9 -0
  2. package/elements/lib/elements.module.d.ts +25 -24
  3. package/elements/lib/form-error/form-error.component.d.ts +9 -5
  4. package/elements/public_api.d.ts +1 -0
  5. package/esm2020/auth/lib/auth.interceptor.mjs +3 -3
  6. package/esm2020/auth/lib/auth.module.mjs +4 -4
  7. package/esm2020/auth/lib/auth.service.mjs +3 -3
  8. package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
  9. package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
  10. package/esm2020/auth/lib/directives/role.directive.mjs +3 -3
  11. package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
  12. package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
  13. package/esm2020/auth/lib/helpers/mapper.helper.mjs +3 -3
  14. package/esm2020/auth/lib/permissions.service.mjs +3 -3
  15. package/esm2020/collections/lib/collections.module.mjs +4 -4
  16. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +3 -3
  17. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
  18. package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
  19. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +3 -3
  20. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +3 -3
  21. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +4 -4
  22. package/esm2020/controls/lib/controls.module.mjs +4 -4
  23. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
  24. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  25. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  26. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +3 -3
  27. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  28. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
  29. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  30. package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
  31. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  32. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +3 -3
  33. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +3 -3
  34. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
  35. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
  36. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +3 -3
  37. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
  38. package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
  39. package/esm2020/dialog/lib/dialog.module.mjs +4 -4
  40. package/esm2020/dialog/lib/dialog.service.mjs +3 -3
  41. package/esm2020/elements/lib/avatar/avatar.component.mjs +3 -3
  42. package/esm2020/elements/lib/button/button.component.mjs +6 -6
  43. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
  44. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +3 -3
  45. package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
  46. package/esm2020/elements/lib/directives/autosize.directive.mjs +3 -3
  47. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +3 -3
  48. package/esm2020/elements/lib/directives/focus.directive.mjs +3 -3
  49. package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
  50. package/esm2020/elements/lib/directives/form-submitter.directive.mjs +25 -0
  51. package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
  52. package/esm2020/elements/lib/directives/template.directive.mjs +3 -3
  53. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +6 -6
  54. package/esm2020/elements/lib/elements.module.mjs +9 -5
  55. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +3 -3
  56. package/esm2020/elements/lib/form-control/form-control.component.mjs +3 -3
  57. package/esm2020/elements/lib/form-error/form-error.component.mjs +22 -7
  58. package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
  59. package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
  60. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
  61. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
  62. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
  63. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
  64. package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
  65. package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
  66. package/esm2020/elements/public_api.mjs +2 -1
  67. package/esm2020/http/lib/http.module.mjs +4 -4
  68. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
  69. package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
  70. package/esm2020/lib/core/services/clipboard.service.mjs +3 -3
  71. package/esm2020/lib/core/services/exif.service.mjs +3 -3
  72. package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
  73. package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
  74. package/esm2020/lib/core/services/languages.service.mjs +3 -3
  75. package/esm2020/lib/core/services/network.service.mjs +3 -3
  76. package/esm2020/lib/core/services/patch.service.mjs +3 -3
  77. package/esm2020/lib/core/services/platform.service.mjs +3 -3
  78. package/esm2020/localize/lib/localize.module.mjs +4 -4
  79. package/esm2020/localize/lib/localize.pipe.mjs +3 -3
  80. package/esm2020/localize/lib/localize.service.mjs +3 -3
  81. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
  82. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +3 -3
  83. package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
  84. package/esm2020/masking/lib/directives/currency-mask.directive.mjs +35 -0
  85. package/esm2020/masking/lib/directives/date-mask.directive.mjs +35 -0
  86. package/esm2020/masking/lib/directives/input-mask.directive.mjs +118 -0
  87. package/esm2020/masking/lib/input-mask.interface.mjs +1 -1
  88. package/esm2020/masking/lib/masking.module.mjs +22 -8
  89. package/esm2020/masking/lib/masking.service.mjs +9 -9
  90. package/esm2020/masking/public_api.mjs +4 -2
  91. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
  92. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
  93. package/esm2020/notifications/lib/notifications.module.mjs +4 -4
  94. package/esm2020/notifications/lib/notifications.service.mjs +3 -3
  95. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  96. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
  97. package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
  98. package/esm2020/storage/lib/storage.service.mjs +3 -3
  99. package/esm2020/table/lib/components/table/table.component.mjs +9 -9
  100. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  101. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
  102. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +3 -3
  103. package/esm2020/table/lib/table.module.mjs +4 -4
  104. package/esm2020/theming/lib/theming.module.mjs +4 -4
  105. package/esm2020/theming/lib/theming.service.mjs +3 -3
  106. package/fesm2015/bravobit-bb-foundation-auth.mjs +31 -31
  107. package/fesm2015/bravobit-bb-foundation-collections.mjs +22 -22
  108. package/fesm2015/bravobit-bb-foundation-controls.mjs +14 -14
  109. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +25 -25
  110. package/fesm2015/bravobit-bb-foundation-dialog.mjs +31 -31
  111. package/fesm2015/bravobit-bb-foundation-elements.mjs +129 -90
  112. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  113. package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
  114. package/fesm2015/bravobit-bb-foundation-localize.mjs +19 -19
  115. package/fesm2015/bravobit-bb-foundation-masking.mjs +108 -26
  116. package/fesm2015/bravobit-bb-foundation-masking.mjs.map +1 -1
  117. package/fesm2015/bravobit-bb-foundation-notifications.mjs +13 -13
  118. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +10 -10
  119. package/fesm2015/bravobit-bb-foundation-storage.mjs +3 -3
  120. package/fesm2015/bravobit-bb-foundation-table.mjs +22 -22
  121. package/fesm2015/bravobit-bb-foundation-theming.mjs +7 -7
  122. package/fesm2015/bravobit-bb-foundation.mjs +24 -24
  123. package/fesm2020/bravobit-bb-foundation-auth.mjs +31 -31
  124. package/fesm2020/bravobit-bb-foundation-collections.mjs +22 -22
  125. package/fesm2020/bravobit-bb-foundation-controls.mjs +14 -14
  126. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +25 -25
  127. package/fesm2020/bravobit-bb-foundation-dialog.mjs +31 -31
  128. package/fesm2020/bravobit-bb-foundation-elements.mjs +129 -90
  129. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  130. package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
  131. package/fesm2020/bravobit-bb-foundation-localize.mjs +19 -19
  132. package/fesm2020/bravobit-bb-foundation-masking.mjs +101 -26
  133. package/fesm2020/bravobit-bb-foundation-masking.mjs.map +1 -1
  134. package/fesm2020/bravobit-bb-foundation-notifications.mjs +13 -13
  135. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +10 -10
  136. package/fesm2020/bravobit-bb-foundation-storage.mjs +3 -3
  137. package/fesm2020/bravobit-bb-foundation-table.mjs +22 -22
  138. package/fesm2020/bravobit-bb-foundation-theming.mjs +7 -7
  139. package/fesm2020/bravobit-bb-foundation.mjs +24 -24
  140. package/masking/lib/directives/currency-mask.directive.d.ts +17 -0
  141. package/masking/lib/directives/date-mask.directive.d.ts +17 -0
  142. package/masking/lib/{input-mask.directive.d.ts → directives/input-mask.directive.d.ts} +4 -4
  143. package/masking/lib/input-mask.interface.d.ts +1 -6
  144. package/masking/lib/masking.module.d.ts +4 -2
  145. package/masking/lib/masking.service.d.ts +1 -1
  146. package/masking/public_api.d.ts +3 -1
  147. package/package.json +1 -1
  148. package/esm2020/masking/lib/input-mask.directive.mjs +0 -117
@@ -12,9 +12,9 @@ export class BbSpinner extends BbSpinnerMixinBase {
12
12
  this.alt = 'Loading...';
13
13
  }
14
14
  }
15
- BbSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbSpinner, deps: null, target: i0.ɵɵFactoryTarget.Component });
16
- BbSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbSpinner, selector: "bb-spinner", inputs: { color: "color", alt: "alt", disabled: "disabled" }, host: { classAttribute: "bb-spinner" }, usesInheritance: true, ngImport: i0, template: "<!--\n The spinner element.\n\n This element contains a circle with a 25% bar that spins\n indefinitely. The border color can be set via the \"color\"\n property.\n-->\n<div class=\"bb-spinner-container\">\n <div [style.border-left-color]=\"color\"\n [class.disabled]=\"disabled\"\n class=\"bb-spinner-loader\"\n aria-live=\"assertive\"\n role=\"alert\">\n {{ alt }}\n </div>\n <ng-content select=\"img\"></ng-content>\n</div>\n\n<!--\n The content of the spinner.\n\n This element contains the content of the spinner. The user\n can set the content inside the tag.\n-->\n<span class=\"bb-spinner-content\">\n <ng-content></ng-content>\n</span>\n", styles: [".bb-spinner{color:#565656;padding:20px 0;text-align:center;align-items:center;display:inline-flex;flex-direction:column;justify-content:center}.bb-spinner.block{display:flex}.bb-spinner.inverse .bb-spinner-loader{border-color:#ffffff26}.bb-spinner.inverse .bb-spinner-content{color:#ffffff80}.bb-spinner.small .bb-spinner-loader,.bb-spinner.small .bb-spinner-loader:after{width:20px;height:20px;min-width:20px;min-height:20px}.bb-spinner.small .bb-spinner-loader{border-width:2px}.bb-spinner.small .bb-spinner-content{font-size:12px}.bb-spinner.medium .bb-spinner-loader,.bb-spinner.medium .bb-spinner-loader:after{width:60px;height:60px;min-width:60px;min-height:60px}.bb-spinner.medium .bb-spinner-loader{border-width:4px}.bb-spinner.medium .bb-spinner-content{font-size:16px}.bb-spinner.large .bb-spinner-loader,.bb-spinner.large .bb-spinner-loader:after{width:100px;height:100px;min-width:100px;min-height:100px}.bb-spinner.large .bb-spinner-loader{border-width:6px}.bb-spinner.large .bb-spinner-content{font-size:20px}.bb-spinner.horizontal{text-align:left;flex-direction:row}.bb-spinner.horizontal .bb-spinner-content:not(:empty){margin-left:10px;margin-top:0}.bb-spinner.vertical{text-align:center;flex-direction:column}.bb-spinner.vertical .bb-spinner-content:not(:empty){margin-left:0;margin-top:10px}.bb-spinner-container{display:flex;position:relative}.bb-spinner-container>img{top:20%;left:20%;width:60%;height:60%;position:absolute}.bb-spinner-loader{margin:0;padding:0;overflow:hidden;text-indent:100%;color:transparent;position:relative;display:inline-block;vertical-align:middle;border:4px solid #f2f4f6;animation:1s linear infinite spin}.bb-spinner-loader,.bb-spinner-loader:after{width:60px;height:60px;min-width:60px;min-height:60px;border-radius:50%}.bb-spinner-loader.disabled{cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none;animation-play-state:paused}.bb-spinner-content:not(:empty){font-size:16px;margin-top:10px;font-weight:500}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbSpinner, decorators: [{
15
+ BbSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbSpinner, deps: null, target: i0.ɵɵFactoryTarget.Component });
16
+ BbSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: BbSpinner, selector: "bb-spinner", inputs: { color: "color", alt: "alt", disabled: "disabled" }, host: { classAttribute: "bb-spinner" }, usesInheritance: true, ngImport: i0, template: "<!--\n The spinner element.\n\n This element contains a circle with a 25% bar that spins\n indefinitely. The border color can be set via the \"color\"\n property.\n-->\n<div class=\"bb-spinner-container\">\n <div [style.border-left-color]=\"color\"\n [class.disabled]=\"disabled\"\n class=\"bb-spinner-loader\"\n aria-live=\"assertive\"\n role=\"alert\">\n {{ alt }}\n </div>\n <ng-content select=\"img\"></ng-content>\n</div>\n\n<!--\n The content of the spinner.\n\n This element contains the content of the spinner. The user\n can set the content inside the tag.\n-->\n<span class=\"bb-spinner-content\">\n <ng-content></ng-content>\n</span>\n", styles: [".bb-spinner{color:#565656;padding:20px 0;text-align:center;align-items:center;display:inline-flex;flex-direction:column;justify-content:center}.bb-spinner.block{display:flex}.bb-spinner.inverse .bb-spinner-loader{border-color:#ffffff26}.bb-spinner.inverse .bb-spinner-content{color:#ffffff80}.bb-spinner.small .bb-spinner-loader,.bb-spinner.small .bb-spinner-loader:after{width:20px;height:20px;min-width:20px;min-height:20px}.bb-spinner.small .bb-spinner-loader{border-width:2px}.bb-spinner.small .bb-spinner-content{font-size:12px}.bb-spinner.medium .bb-spinner-loader,.bb-spinner.medium .bb-spinner-loader:after{width:60px;height:60px;min-width:60px;min-height:60px}.bb-spinner.medium .bb-spinner-loader{border-width:4px}.bb-spinner.medium .bb-spinner-content{font-size:16px}.bb-spinner.large .bb-spinner-loader,.bb-spinner.large .bb-spinner-loader:after{width:100px;height:100px;min-width:100px;min-height:100px}.bb-spinner.large .bb-spinner-loader{border-width:6px}.bb-spinner.large .bb-spinner-content{font-size:20px}.bb-spinner.horizontal{text-align:left;flex-direction:row}.bb-spinner.horizontal .bb-spinner-content:not(:empty){margin-left:10px;margin-top:0}.bb-spinner.vertical{text-align:center;flex-direction:column}.bb-spinner.vertical .bb-spinner-content:not(:empty){margin-left:0;margin-top:10px}.bb-spinner-container{display:flex;position:relative}.bb-spinner-container>img{top:20%;left:20%;width:60%;height:60%;position:absolute}.bb-spinner-loader{margin:0;padding:0;overflow:hidden;text-indent:100%;color:transparent;position:relative;display:inline-block;vertical-align:middle;border:4px solid #f2f4f6;animation:1s linear infinite spin}.bb-spinner-loader,.bb-spinner-loader:after{width:60px;height:60px;min-width:60px;min-height:60px;border-radius:50%}.bb-spinner-loader.disabled{cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none;animation-play-state:paused}.bb-spinner-content:not(:empty){font-size:16px;margin-top:10px;font-weight:500}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbSpinner, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'bb-spinner', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { 'class': 'bb-spinner' }, inputs: ['color', 'alt', 'disabled'], preserveWhitespaces: false, template: "<!--\n The spinner element.\n\n This element contains a circle with a 25% bar that spins\n indefinitely. The border color can be set via the \"color\"\n property.\n-->\n<div class=\"bb-spinner-container\">\n <div [style.border-left-color]=\"color\"\n [class.disabled]=\"disabled\"\n class=\"bb-spinner-loader\"\n aria-live=\"assertive\"\n role=\"alert\">\n {{ alt }}\n </div>\n <ng-content select=\"img\"></ng-content>\n</div>\n\n<!--\n The content of the spinner.\n\n This element contains the content of the spinner. The user\n can set the content inside the tag.\n-->\n<span class=\"bb-spinner-content\">\n <ng-content></ng-content>\n</span>\n", styles: [".bb-spinner{color:#565656;padding:20px 0;text-align:center;align-items:center;display:inline-flex;flex-direction:column;justify-content:center}.bb-spinner.block{display:flex}.bb-spinner.inverse .bb-spinner-loader{border-color:#ffffff26}.bb-spinner.inverse .bb-spinner-content{color:#ffffff80}.bb-spinner.small .bb-spinner-loader,.bb-spinner.small .bb-spinner-loader:after{width:20px;height:20px;min-width:20px;min-height:20px}.bb-spinner.small .bb-spinner-loader{border-width:2px}.bb-spinner.small .bb-spinner-content{font-size:12px}.bb-spinner.medium .bb-spinner-loader,.bb-spinner.medium .bb-spinner-loader:after{width:60px;height:60px;min-width:60px;min-height:60px}.bb-spinner.medium .bb-spinner-loader{border-width:4px}.bb-spinner.medium .bb-spinner-content{font-size:16px}.bb-spinner.large .bb-spinner-loader,.bb-spinner.large .bb-spinner-loader:after{width:100px;height:100px;min-width:100px;min-height:100px}.bb-spinner.large .bb-spinner-loader{border-width:6px}.bb-spinner.large .bb-spinner-content{font-size:20px}.bb-spinner.horizontal{text-align:left;flex-direction:row}.bb-spinner.horizontal .bb-spinner-content:not(:empty){margin-left:10px;margin-top:0}.bb-spinner.vertical{text-align:center;flex-direction:column}.bb-spinner.vertical .bb-spinner-content:not(:empty){margin-left:0;margin-top:10px}.bb-spinner-container{display:flex;position:relative}.bb-spinner-container>img{top:20%;left:20%;width:60%;height:60%;position:absolute}.bb-spinner-loader{margin:0;padding:0;overflow:hidden;text-indent:100%;color:transparent;position:relative;display:inline-block;vertical-align:middle;border:4px solid #f2f4f6;animation:1s linear infinite spin}.bb-spinner-loader,.bb-spinner-loader:after{width:60px;height:60px;min-width:60px;min-height:60px;border-radius:50%}.bb-spinner-loader.disabled{cursor:default;-webkit-user-select:none;user-select:none;pointer-events:none;animation-play-state:paused}.bb-spinner-content:not(:empty){font-size:16px;margin-top:10px;font-weight:500}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
20
20
  }], propDecorators: { color: [{
@@ -7,9 +7,9 @@ export class BbTag {
7
7
  this.onClose = new EventEmitter();
8
8
  }
9
9
  }
10
- BbTag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbTag, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- BbTag.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbTag, selector: "bb-tag", outputs: { onClose: "onClose" }, host: { classAttribute: "bb-tag" }, ngImport: i0, template: "<ng-content></ng-content>\n\n<button *ngIf=\"onClose?.observed\"\n (click)=\"onClose.emit()\"\n type=\"button\">\n Close\n</button>", styles: [".bb-tag{cursor:default;padding:0 7px;font-size:12px;list-style:none;line-height:20px;border-radius:4px;white-space:nowrap;display:inline-block;color:#000000a6;border:1px solid #d9d9d9;background-color:#fafafa;font-variant:tabular-nums;font-feature-settings:\"tnum\"}.bb-tag:not(:last-child){margin-right:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbTag, decorators: [{
10
+ BbTag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbTag, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ BbTag.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: BbTag, selector: "bb-tag", outputs: { onClose: "onClose" }, host: { classAttribute: "bb-tag" }, ngImport: i0, template: "<ng-content></ng-content>\n\n<button *ngIf=\"onClose?.observed\"\n (click)=\"onClose.emit()\"\n type=\"button\">\n Close\n</button>", styles: [".bb-tag{cursor:default;padding:0 7px;font-size:12px;list-style:none;line-height:20px;border-radius:4px;white-space:nowrap;display:inline-block;color:#000000a6;border:1px solid #d9d9d9;background-color:#fafafa;font-variant:tabular-nums;font-feature-settings:\"tnum\"}.bb-tag:not(:last-child){margin-right:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbTag, decorators: [{
13
13
  type: Component,
14
14
  args: [{ selector: 'bb-tag', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: { 'class': 'bb-tag' }, template: "<ng-content></ng-content>\n\n<button *ngIf=\"onClose?.observed\"\n (click)=\"onClose.emit()\"\n type=\"button\">\n Close\n</button>", styles: [".bb-tag{cursor:default;padding:0 7px;font-size:12px;list-style:none;line-height:20px;border-radius:4px;white-space:nowrap;display:inline-block;color:#000000a6;border:1px solid #d9d9d9;background-color:#fafafa;font-variant:tabular-nums;font-feature-settings:\"tnum\"}.bb-tag:not(:last-child){margin-right:8px}\n"] }]
15
15
  }], propDecorators: { onClose: [{
@@ -3,6 +3,7 @@ export * from './lib/directives/template.directive';
3
3
  export * from './lib/directives/focus.directive';
4
4
  export * from './lib/directives/focus-trap.directive';
5
5
  export * from './lib/directives/form-submit.directive';
6
+ export * from './lib/directives/form-submitter.directive';
6
7
  export * from './lib/directives/input.directive';
7
8
  export * from './lib/directives/autosize.directive';
8
9
  export * from './lib/directives/addon.directive';
@@ -23,4 +24,4 @@ export * from './lib/image-picker/image-picker.component';
23
24
  export * from './lib/date-picker/date-picker.component';
24
25
  export * from './lib/dropdown/dropdown.component';
25
26
  export * from './lib/elements.interfaces';
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGtDQUFrQyxDQUFDO0FBQ2pELGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2ZvY3VzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2ZvY3VzLXRyYXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZm9ybS1zdWJtaXQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvaW5wdXQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYXV0b3NpemUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvYWRkb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2ZpbGUtc2l6ZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL2ZpbGUtaW1hZ2UucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlcy9yZWxhdGl2ZS10aW1lLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc3Bpbm5lci9zcGlubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pY29uL2ljb24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2wuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm0tZ3JvdXAvZm9ybS1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS1lcnJvci9mb3JtLWVycm9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdGFnL3RhZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvYXZhdGFyL2F2YXRhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmlsZS1waWNrZXIvZmlsZS1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ltYWdlLXBpY2tlci9pbWFnZS1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kcm9wZG93bi9kcm9wZG93bi5jb21wb25lbnQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbGVtZW50cy5pbnRlcmZhY2VzJztcbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vZWxlbWVudHMvc3JjL3B1YmxpY19hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsZ0NBQWdDLENBQUM7QUFDL0MsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxtQ0FBbUMsQ0FBQztBQUVsRCxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvZWxlbWVudHMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvdGVtcGxhdGUuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZm9jdXMuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZm9jdXMtdHJhcC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9mb3JtLXN1Ym1pdHRlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9pbnB1dC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9hdXRvc2l6ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9hZGRvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvZmlsZS1zaXplLnBpcGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZXMvZmlsZS1pbWFnZS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGVzL3JlbGF0aXZlLXRpbWUucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ljb24vaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3JtLWVycm9yL2Zvcm0tZXJyb3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90YWcvdGFnLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9hdmF0YXIvYXZhdGFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWxlLXBpY2tlci9maWxlLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW1hZ2UtcGlja2VyL2ltYWdlLXBpY2tlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Ryb3Bkb3duL2Ryb3Bkb3duLmNvbXBvbmVudCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbGliL2VsZW1lbnRzLmludGVyZmFjZXMnO1xuIl19
@@ -23,10 +23,10 @@ export class HttpModule {
23
23
  };
24
24
  }
25
25
  }
26
- HttpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: HttpModule, deps: [{ token: HttpModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
27
- HttpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.4", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
28
- HttpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: HttpModule, decorators: [{
26
+ HttpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: HttpModule, deps: [{ token: HttpModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
27
+ HttpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
28
+ HttpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: HttpModule, decorators: [{
30
30
  type: NgModule,
31
31
  args: [{
32
32
  imports: [HttpClientModule]
@@ -42,9 +42,9 @@ export class BaseUrlInterceptor {
42
42
  return null;
43
43
  }
44
44
  }
45
- BaseUrlInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BaseUrlInterceptor, deps: [{ token: i1.HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
46
- BaseUrlInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BaseUrlInterceptor });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BaseUrlInterceptor, decorators: [{
45
+ BaseUrlInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BaseUrlInterceptor, deps: [{ token: i1.HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
46
+ BaseUrlInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BaseUrlInterceptor });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BaseUrlInterceptor, decorators: [{
48
48
  type: Injectable
49
49
  }], ctorParameters: function () { return [{ type: i1.HttpConfig }]; } });
50
50
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS11cmwuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2h0dHAvc3JjL2xpYi9pbnRlcmNlcHRvcnMvYmFzZS11cmwuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQUlwRCxNQUFNLE9BQU8sa0JBQWtCO0lBTzNCLFlBQW9CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFMdkMsV0FBVztRQUNNLGFBQVEsR0FBc0IsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUM7UUFDcEQsWUFBTyxHQUFXLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDO1FBQ3ZDLGtCQUFhLEdBQVcsSUFBSSxNQUFNLENBQUMsS0FBSyxJQUFJLENBQUMsT0FBTyxXQUFXLENBQUMsQ0FBQztJQUdsRixDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQTZCLEVBQUUsSUFBaUI7UUFDdEQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQztRQUV0QyxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEdBQVc7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNWLE9BQU8sR0FBRyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLEVBQUU7WUFDeEMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNyQyxJQUFJLENBQUMsS0FBSyxFQUFFO2dCQUNSLE9BQU8sUUFBUSxDQUFDO2FBQ25CO1lBRUQsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDWixDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQWE7UUFDMUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7UUFDL0MsSUFBSSxPQUFPLEVBQUU7WUFDVCxPQUFPLE9BQU8sQ0FBQztTQUNsQjtRQUVELElBQUksU0FBUyxFQUFFLEVBQUU7WUFDYixNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7aUJBQ3ZDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7aUJBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsbURBQW1ELEtBQUssb0RBQW9ELFNBQVMsSUFBSSxDQUFDLENBQUM7U0FDOUk7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOzsrR0FoRFEsa0JBQWtCO21IQUFsQixrQkFBa0I7MkZBQWxCLGtCQUFrQjtrQkFEOUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SHR0cENvbmZpZ0FsaWFzZXN9IGZyb20gJy4uL2h0dHAuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0luamVjdGFibGUsIGlzRGV2TW9kZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBDb25maWd9IGZyb20gJy4uL2NsYXNzZXMvaHR0cC5jb25maWcnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQmFzZVVybEludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICAgIC8vIEFsaWFzZXMuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfYWxpYXNlczogSHR0cENvbmZpZ0FsaWFzZXMgPSB0aGlzLl9jb25maWc/LmFsaWFzZXM7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfcHJlZml4OiBzdHJpbmcgPSB0aGlzLl9jb25maWc/LnByZWZpeDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9leHRyYWN0UmVnZXg6IFJlZ0V4cCA9IG5ldyBSZWdFeHAoYFxcXFwke3RoaXMuX3ByZWZpeH1bYS16QS1aXStgKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2NvbmZpZzogSHR0cENvbmZpZykge1xuICAgIH1cblxuICAgIGludGVyY2VwdChyZXF1ZXN0OiBIdHRwUmVxdWVzdDx1bmtub3duPiwgbmV4dDogSHR0cEhhbmRsZXIpIHtcbiAgICAgICAgY29uc3QgdXJsID0gdGhpcy5nZXRVcmxCYXNlZE9uQWxpYXMocmVxdWVzdC51cmwpO1xuICAgICAgICBjb25zdCBtb2RpZmllZCA9IHJlcXVlc3QuY2xvbmUoe3VybH0pO1xuXG4gICAgICAgIHJldHVybiBuZXh0LmhhbmRsZShtb2RpZmllZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRVcmxCYXNlZE9uQWxpYXModXJsOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMuX2V4dHJhY3RSZWdleC5leGVjKHVybCk7XG4gICAgICAgIGlmICghbWF0Y2hlcykge1xuICAgICAgICAgICAgcmV0dXJuIHVybDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtYXRjaGVzLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGFsaWFzID0gdGhpcy5nZXRBbGlhcyhjdXJyZW50KTtcbiAgICAgICAgICAgIGlmICghYWxpYXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwcmV2aW91cy5yZXBsYWNlKGN1cnJlbnQsIGFsaWFzKTtcbiAgICAgICAgfSwgdXJsKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFsaWFzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3QgYWxpYXMgPSB2YWx1ZS5yZXBsYWNlKHRoaXMuX3ByZWZpeCwgJycpO1xuICAgICAgICBjb25zdCBmZXRjaGVkID0gdGhpcy5fYWxpYXNlcz8uW2FsaWFzXSA/PyBudWxsO1xuICAgICAgICBpZiAoZmV0Y2hlZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZldGNoZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZSA9IE9iamVjdC5rZXlzKHRoaXMuX2FsaWFzZXMpXG4gICAgICAgICAgICAgICAgLm1hcChpdGVtID0+IGBcXCQke2l0ZW19YClcbiAgICAgICAgICAgICAgICAuam9pbignLCAnKTtcbiAgICAgICAgICAgIGNvbnNvbGU/Lndhcm4/LihgW0h0dHBNb2R1bGVdOiBVc2VkIGFuIGludmFsaWQgSFRUUC1hbGlhcyBuYW1lZCBcIiR7dmFsdWV9XCIsIHNraXBwZWQgcGFyc2luZzsgQXZhaWxhYmxlIGFsaWFzZXMgaXMgb25lIG9mICgke2F2YWlsYWJsZX0pLmApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG59XG4iXX0=
@@ -24,9 +24,9 @@ export class ErrorInterceptor {
24
24
  }));
25
25
  }
26
26
  }
27
- ErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ErrorInterceptor, deps: [{ token: i1.HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
28
- ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ErrorInterceptor });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ErrorInterceptor, decorators: [{
27
+ ErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ErrorInterceptor, deps: [{ token: i1.HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
28
+ ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ErrorInterceptor });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ErrorInterceptor, decorators: [{
30
30
  type: Injectable
31
31
  }], ctorParameters: function () { return [{ type: i1.HttpConfig }]; } });
32
32
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2h0dHAvc3JjL2xpYi9pbnRlcmNlcHRvcnMvZXJyb3IuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUE0QyxNQUFNLHNCQUFzQixDQUFDO0FBRWxHLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFHaEMsTUFBTSxPQUFPLGdCQUFnQjtJQUt6QixZQUFvQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBSHZDLFNBQVM7UUFDUSxjQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxLQUFLLENBQUM7SUFHeEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzVCLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLDRDQUE0QztZQUM1QyxxREFBcUQ7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxZQUFZLGlCQUFpQixFQUFFO2dCQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEMsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDbkM7WUFFRCxxREFBcUQ7WUFDckQsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkMsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7OzZHQXRCUSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SHR0cENvbmZpZ30gZnJvbSAnLi4vY2xhc3Nlcy9odHRwLmNvbmZpZyc7XG5pbXBvcnQge0h0dHBFcnJvcn0gZnJvbSAnLi4vY2xhc3Nlcy9odHRwLmVycm9yJztcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFcnJvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICAgIC8vIFN0YXRlLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rpc2FibGVkID0gdGhpcy5fY29uZmlnPy5kaXNhYmxlRXJyb3JQYXJzaW5nID8/IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29uZmlnOiBIdHRwQ29uZmlnKSB7XG4gICAgfVxuXG4gICAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBtYXRjaGluZyBodHRwIGVycm9yIHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgLy8gcmUtbWFwIGl0IHdpdGggb3VyIGN1c3RvbSBjbGFzcyAoaWYgbm90IGRpc2FibGVkKS5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2Rpc2FibGVkICYmIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gbmV3IEh0dHBFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHBhcnNlZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gV2UgZGlkIG5vdCBtYXRjaCBhbnl0aGluZywganVzdCByZS10cm93IHRoZSBlcnJvci5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxufVxuIl19
@@ -15,9 +15,9 @@ export class Clipboard {
15
15
  return new ClipboardCopy(text, this._document);
16
16
  }
17
17
  }
18
- Clipboard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Clipboard, deps: [{ token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
19
- Clipboard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Clipboard, providedIn: 'root' });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Clipboard, decorators: [{
18
+ Clipboard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Clipboard, deps: [{ token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
19
+ Clipboard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Clipboard, providedIn: 'root' });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Clipboard, decorators: [{
21
21
  type: Injectable,
22
22
  args: [{
23
23
  providedIn: 'root'
@@ -152,9 +152,9 @@ export class Exif {
152
152
  });
153
153
  }
154
154
  }
155
- Exif.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Exif, deps: [{ token: i1.Platform }, { token: i2.FileLoader }], target: i0.ɵɵFactoryTarget.Injectable });
156
- Exif.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Exif, providedIn: 'root' });
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Exif, decorators: [{
155
+ Exif.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Exif, deps: [{ token: i1.Platform }, { token: i2.FileLoader }], target: i0.ɵɵFactoryTarget.Injectable });
156
+ Exif.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Exif, providedIn: 'root' });
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Exif, decorators: [{
158
158
  type: Injectable,
159
159
  args: [{
160
160
  providedIn: 'root'
@@ -76,9 +76,9 @@ export class FileLoader {
76
76
  return this.blobToFile(blobFile, name);
77
77
  }
78
78
  }
79
- FileLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: FileLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
80
- FileLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: FileLoader, providedIn: 'root' });
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: FileLoader, decorators: [{
79
+ FileLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FileLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
80
+ FileLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FileLoader, providedIn: 'root' });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FileLoader, decorators: [{
82
82
  type: Injectable,
83
83
  args: [{
84
84
  providedIn: 'root'
@@ -112,9 +112,9 @@ export class ImageConverter {
112
112
  return this.stringToImage(contents);
113
113
  }
114
114
  }
115
- ImageConverter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ImageConverter, deps: [{ token: i1.Exif }, { token: i2.Platform }, { token: i3.FileLoader }], target: i0.ɵɵFactoryTarget.Injectable });
116
- ImageConverter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ImageConverter, providedIn: 'root' });
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: ImageConverter, decorators: [{
115
+ ImageConverter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ImageConverter, deps: [{ token: i1.Exif }, { token: i2.Platform }, { token: i3.FileLoader }], target: i0.ɵɵFactoryTarget.Injectable });
116
+ ImageConverter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ImageConverter, providedIn: 'root' });
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ImageConverter, decorators: [{
118
118
  type: Injectable,
119
119
  args: [{
120
120
  providedIn: 'root'
@@ -58,9 +58,9 @@ export class Languages {
58
58
  .sort((a, b) => b.quality - a.quality);
59
59
  }
60
60
  }
61
- Languages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Languages, deps: [{ token: ACCEPT_LANGUAGE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
62
- Languages.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Languages, providedIn: 'root' });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Languages, decorators: [{
61
+ Languages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Languages, deps: [{ token: ACCEPT_LANGUAGE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
62
+ Languages.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Languages, providedIn: 'root' });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Languages, decorators: [{
64
64
  type: Injectable,
65
65
  args: [{
66
66
  providedIn: 'root'
@@ -34,9 +34,9 @@ export class Network {
34
34
  this._online$ = merge(now$, online$, offline$).pipe(map(value => value), distinctUntilChanged(), shareReplay(1));
35
35
  }
36
36
  }
37
- Network.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Network, deps: [{ token: i1.Platform }, { token: WINDOW, optional: true }, { token: NAVIGATOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
38
- Network.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Network, providedIn: 'root' });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Network, decorators: [{
37
+ Network.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Network, deps: [{ token: i1.Platform }, { token: WINDOW, optional: true }, { token: NAVIGATOR, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
38
+ Network.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Network, providedIn: 'root' });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Network, decorators: [{
40
40
  type: Injectable,
41
41
  args: [{
42
42
  providedIn: 'root'
@@ -42,9 +42,9 @@ export class Patch {
42
42
  this._subscription.add(subscription);
43
43
  }
44
44
  }
45
- Patch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Patch, deps: [{ token: i1.Platform }, { token: WINDOW, optional: true }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
46
- Patch.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Patch, providedIn: 'root' });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Patch, decorators: [{
45
+ Patch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Patch, deps: [{ token: i1.Platform }, { token: WINDOW, optional: true }, { token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
46
+ Patch.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Patch, providedIn: 'root' });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Patch, decorators: [{
48
48
  type: Injectable,
49
49
  args: [{
50
50
  providedIn: 'root'
@@ -28,9 +28,9 @@ export class Platform {
28
28
  this.isDesktop = this.isBrowser && !(/(iPhone|iPod|iPad|Android|BlackBerry|IEMobile)/.test(navigator.userAgent));
29
29
  }
30
30
  }
31
- Platform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Platform, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
32
- Platform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Platform, providedIn: 'root' });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Platform, decorators: [{
31
+ Platform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Platform, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
32
+ Platform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Platform, providedIn: 'root' });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Platform, decorators: [{
34
34
  type: Injectable,
35
35
  args: [{
36
36
  providedIn: 'root'
@@ -37,15 +37,15 @@ export class LocalizeModule {
37
37
  };
38
38
  }
39
39
  }
40
- LocalizeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: LocalizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
41
- LocalizeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.4", ngImport: i0, type: LocalizeModule, declarations: [BbLocalize,
40
+ LocalizeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: LocalizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
41
+ LocalizeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: LocalizeModule, declarations: [BbLocalize,
42
42
  BbLocalizeString,
43
43
  BbLocalizeTemplate,
44
44
  BbLocalizeTemplateOrString], imports: [CommonModule], exports: [BbLocalize,
45
45
  BbLocalizeString,
46
46
  BbLocalizeTemplate] });
47
- LocalizeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: LocalizeModule, imports: [CommonModule] });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: LocalizeModule, decorators: [{
47
+ LocalizeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: LocalizeModule, imports: [CommonModule] });
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: LocalizeModule, decorators: [{
49
49
  type: NgModule,
50
50
  args: [{
51
51
  imports: [CommonModule],
@@ -36,9 +36,9 @@ export class BbLocalize {
36
36
  return { ...params, ...options };
37
37
  }
38
38
  }
39
- BbLocalize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalize, deps: [{ token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
40
- BbLocalize.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.4", ngImport: i0, type: BbLocalize, name: "bbLocalize" });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalize, decorators: [{
39
+ BbLocalize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalize, deps: [{ token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
40
+ BbLocalize.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: BbLocalize, name: "bbLocalize" });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalize, decorators: [{
42
42
  type: Pipe,
43
43
  args: [{
44
44
  name: 'bbLocalize'
@@ -187,9 +187,9 @@ export class Localize {
187
187
  element.lang = this._bestMatchingLanguage?.supported?.[0] ?? this._bestMatchingLanguage?.locale;
188
188
  }
189
189
  }
190
- Localize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Localize, deps: [{ token: i1.Storage }, { token: i2.Languages }, { token: i3.LocalizeConfig, optional: true }, { token: i4.LocalizeMissingHandler }, { token: DOCUMENT, optional: true }, { token: LOCALIZE_FUNCTION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
191
- Localize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Localize });
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: Localize, decorators: [{
190
+ Localize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Localize, deps: [{ token: i1.Storage }, { token: i2.Languages }, { token: i3.LocalizeConfig, optional: true }, { token: i4.LocalizeMissingHandler }, { token: DOCUMENT, optional: true }, { token: LOCALIZE_FUNCTION, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
191
+ Localize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Localize });
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: Localize, decorators: [{
193
193
  type: Injectable
194
194
  }], ctorParameters: function () { return [{ type: i1.Storage }, { type: i2.Languages }, { type: i3.LocalizeConfig, decorators: [{
195
195
  type: Optional
@@ -70,9 +70,9 @@ export class BbLocalizeString {
70
70
  ];
71
71
  }
72
72
  }
73
- BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
74
- BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.4", type: BbLocalizeString, selector: "bb-localize-string, [bb-localize-string]", inputs: { substitutions: "substitutions", value: "value" }, host: { classAttribute: "bb-localize-string" }, queries: [{ propertyName: "items", predicate: BbLocalizeTemplate }], ngImport: i0, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbLocalizeTemplateOrString]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: ["bbLocalizeTemplateOrString"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeString, decorators: [{
73
+ BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
74
+ BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: BbLocalizeString, selector: "bb-localize-string, [bb-localize-string]", inputs: { substitutions: "substitutions", value: "value" }, host: { classAttribute: "bb-localize-string" }, queries: [{ propertyName: "items", predicate: BbLocalizeTemplate }], ngImport: i0, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbLocalizeTemplateOrString]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: ["bbLocalizeTemplateOrString"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeString, decorators: [{
76
76
  type: Component,
77
77
  args: [{ selector: 'bb-localize-string, [bb-localize-string]', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, host: {
78
78
  'class': 'bb-localize-string'
@@ -15,9 +15,9 @@ export class BbLocalizeTemplateOrString {
15
15
  this._viewContainerRef.createEmbeddedView(template);
16
16
  }
17
17
  }
18
- BbLocalizeTemplateOrString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeTemplateOrString, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
19
- BbLocalizeTemplateOrString.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: { bbLocalizeTemplateOrString: "bbLocalizeTemplateOrString" }, ngImport: i0 });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeTemplateOrString, decorators: [{
18
+ BbLocalizeTemplateOrString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeTemplateOrString, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
19
+ BbLocalizeTemplateOrString.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.5", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: { bbLocalizeTemplateOrString: "bbLocalizeTemplateOrString" }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeTemplateOrString, decorators: [{
21
21
  type: Directive,
22
22
  args: [{
23
23
  selector: '[bbLocalizeTemplateOrString]'
@@ -7,9 +7,9 @@ export class BbLocalizeTemplate {
7
7
  this.name = null;
8
8
  }
9
9
  }
10
- BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11
- BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.4", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
10
+ BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11
+ BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.5", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[bbLocalizeTemplate]'
@@ -0,0 +1,35 @@
1
+ import { Directive, Input, Self } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../masking.service";
4
+ import * as i2 from "./input-mask.directive";
5
+ export class BbCurrencyMask {
6
+ constructor(_masking, _inputMask) {
7
+ this._masking = _masking;
8
+ this._inputMask = _inputMask;
9
+ // Inputs.
10
+ this.currencyCode = null;
11
+ this.options = null;
12
+ }
13
+ ngOnChanges(changes) {
14
+ const currencyCode = changes?.['currencyCode']?.currentValue ?? this.currencyCode ?? 'USD';
15
+ const options = changes?.['options']?.currentValue ?? this.options ?? {};
16
+ this._inputMask.mask = this._masking.currency(currencyCode, options);
17
+ }
18
+ }
19
+ BbCurrencyMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbCurrencyMask, deps: [{ token: i1.Masking }, { token: i2.BbInputMask, self: true }], target: i0.ɵɵFactoryTarget.Directive });
20
+ BbCurrencyMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.5", type: BbCurrencyMask, selector: "input[bbCurrencyMask]", inputs: { currencyCode: ["bbCurrencyMask", "currencyCode"], options: ["bbCurrencyMaskOptions", "options"] }, usesOnChanges: true, ngImport: i0 });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbCurrencyMask, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: 'input[bbCurrencyMask]'
25
+ }]
26
+ }], ctorParameters: function () { return [{ type: i1.Masking }, { type: i2.BbInputMask, decorators: [{
27
+ type: Self
28
+ }] }]; }, propDecorators: { currencyCode: [{
29
+ type: Input,
30
+ args: ['bbCurrencyMask']
31
+ }], options: [{
32
+ type: Input,
33
+ args: ['bbCurrencyMaskOptions']
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3ktbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL21hc2tpbmcvc3JjL2xpYi9kaXJlY3RpdmVzL2N1cnJlbmN5LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFhLElBQUksRUFBZ0IsTUFBTSxlQUFlLENBQUM7Ozs7QUFRL0UsTUFBTSxPQUFPLGNBQWM7SUFNdkIsWUFBb0IsUUFBaUIsRUFDVCxVQUF1QjtRQUQvQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ1QsZUFBVSxHQUFWLFVBQVUsQ0FBYTtRQUxuRCxVQUFVO1FBQ2UsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBQzVCLFlBQU8sR0FBd0MsSUFBSSxDQUFDO0lBSXBGLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsTUFBTSxZQUFZLEdBQUcsT0FBTyxFQUFFLENBQUMsY0FBYyxDQUFDLEVBQUUsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDO1FBQzNGLE1BQU0sT0FBTyxHQUFHLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUV6RSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDekUsQ0FBQzs7MkdBZlEsY0FBYzsrRkFBZCxjQUFjOzJGQUFkLGNBQWM7a0JBSDFCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtpQkFDcEM7OzBCQVFnQixJQUFJOzRDQUpRLFlBQVk7c0JBQXBDLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQUNTLE9BQU87c0JBQXRDLEtBQUs7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBPbkNoYW5nZXMsIFNlbGYsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDdXJyZW5jeU1hc2tPcHRpb25zfSBmcm9tICcuLi9pbnB1dC1tYXNrLmludGVyZmFjZSc7XG5pbXBvcnQge0JiSW5wdXRNYXNrfSBmcm9tICcuL2lucHV0LW1hc2suZGlyZWN0aXZlJztcbmltcG9ydCB7TWFza2luZ30gZnJvbSAnLi4vbWFza2luZy5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbnB1dFtiYkN1cnJlbmN5TWFza10nXG59KVxuZXhwb3J0IGNsYXNzIEJiQ3VycmVuY3lNYXNrIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoJ2JiQ3VycmVuY3lNYXNrJykgY3VycmVuY3lDb2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgICBASW5wdXQoJ2JiQ3VycmVuY3lNYXNrT3B0aW9ucycpIG9wdGlvbnM6IFBhcnRpYWw8Q3VycmVuY3lNYXNrT3B0aW9ucz4gfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX21hc2tpbmc6IE1hc2tpbmcsXG4gICAgICAgICAgICAgICAgQFNlbGYoKSBwcml2YXRlIF9pbnB1dE1hc2s6IEJiSW5wdXRNYXNrKSB7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBjdXJyZW5jeUNvZGUgPSBjaGFuZ2VzPy5bJ2N1cnJlbmN5Q29kZSddPy5jdXJyZW50VmFsdWUgPz8gdGhpcy5jdXJyZW5jeUNvZGUgPz8gJ1VTRCc7XG4gICAgICAgIGNvbnN0IG9wdGlvbnMgPSBjaGFuZ2VzPy5bJ29wdGlvbnMnXT8uY3VycmVudFZhbHVlID8/IHRoaXMub3B0aW9ucyA/PyB7fTtcblxuICAgICAgICB0aGlzLl9pbnB1dE1hc2subWFzayA9IHRoaXMuX21hc2tpbmcuY3VycmVuY3koY3VycmVuY3lDb2RlLCBvcHRpb25zKTtcbiAgICB9XG5cbiAgICAvLyBSZXF1aXJlZCBzbyB0aGF0IHRoZSB0ZW1wbGF0ZSB0eXBlIGNoZWNrZXIgY2FuIGluZmVyIHRoZSB0eXBlIG9mIHRoZSBjb2VyY2VkIGlucHV0cy5cbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYmJDdXJyZW5jeU1hc2s6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ7XG4gICAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2JiQ3VycmVuY3lNYXNrT3B0aW9uczogUGFydGlhbDxDdXJyZW5jeU1hc2tPcHRpb25zPiB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbn1cbiJdfQ==
@@ -0,0 +1,35 @@
1
+ import { Directive, Input, Self } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../masking.service";
4
+ import * as i2 from "./input-mask.directive";
5
+ export class BbDateMask {
6
+ constructor(_masking, _inputMask) {
7
+ this._masking = _masking;
8
+ this._inputMask = _inputMask;
9
+ // Inputs.
10
+ this.format = null;
11
+ this.separator = null;
12
+ }
13
+ ngOnChanges(changes) {
14
+ const format = changes?.['format']?.currentValue ?? this.format ?? null;
15
+ const separator = changes?.['separator']?.currentValue ?? this.separator ?? '-s';
16
+ this._inputMask.mask = this._masking.date(format, separator);
17
+ }
18
+ }
19
+ BbDateMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbDateMask, deps: [{ token: i1.Masking }, { token: i2.BbInputMask, self: true }], target: i0.ɵɵFactoryTarget.Directive });
20
+ BbDateMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.5", type: BbDateMask, selector: "input[bbDateMask]", inputs: { format: ["bbDateMask", "format"], separator: ["bbDateMaskSeparator", "separator"] }, usesOnChanges: true, ngImport: i0 });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbDateMask, decorators: [{
22
+ type: Directive,
23
+ args: [{
24
+ selector: 'input[bbDateMask]'
25
+ }]
26
+ }], ctorParameters: function () { return [{ type: i1.Masking }, { type: i2.BbInputMask, decorators: [{
27
+ type: Self
28
+ }] }]; }, propDecorators: { format: [{
29
+ type: Input,
30
+ args: ['bbDateMask']
31
+ }], separator: [{
32
+ type: Input,
33
+ args: ['bbDateMaskSeparator']
34
+ }] } });
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1tYXNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbWFza2luZy9zcmMvbGliL2RpcmVjdGl2ZXMvZGF0ZS1tYXNrLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBYSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDOzs7O0FBUS9FLE1BQU0sT0FBTyxVQUFVO0lBTW5CLFlBQW9CLFFBQWlCLEVBQ1QsVUFBdUI7UUFEL0IsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNULGVBQVUsR0FBVixVQUFVLENBQWE7UUFMbkQsVUFBVTtRQUNXLFdBQU0sR0FBMEIsSUFBSSxDQUFDO1FBQzVCLGNBQVMsR0FBa0IsSUFBSSxDQUFDO0lBSTlELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsTUFBTSxNQUFNLEdBQUcsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBQ3hFLE1BQU0sU0FBUyxHQUFHLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLFlBQVksSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztRQUNqRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDakUsQ0FBQzs7dUdBZFEsVUFBVTsyRkFBVixVQUFVOzJGQUFWLFVBQVU7a0JBSHRCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtpQkFDaEM7OzBCQVFnQixJQUFJOzRDQUpJLE1BQU07c0JBQTFCLEtBQUs7dUJBQUMsWUFBWTtnQkFDVyxTQUFTO3NCQUF0QyxLQUFLO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBTZWxmLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0ZU1hc2tGb3JtYXR9IGZyb20gJy4uL2lucHV0LW1hc2suaW50ZXJmYWNlJztcbmltcG9ydCB7QmJJbnB1dE1hc2t9IGZyb20gJy4vaW5wdXQtbWFzay5kaXJlY3RpdmUnO1xuaW1wb3J0IHtNYXNraW5nfSBmcm9tICcuLi9tYXNraW5nLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2lucHV0W2JiRGF0ZU1hc2tdJ1xufSlcbmV4cG9ydCBjbGFzcyBCYkRhdGVNYXNrIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcblxuICAgIC8vIElucHV0cy5cbiAgICBASW5wdXQoJ2JiRGF0ZU1hc2snKSBmb3JtYXQ6IERhdGVNYXNrRm9ybWF0IHwgbnVsbCA9IG51bGw7XG4gICAgQElucHV0KCdiYkRhdGVNYXNrU2VwYXJhdG9yJykgc2VwYXJhdG9yOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX21hc2tpbmc6IE1hc2tpbmcsXG4gICAgICAgICAgICAgICAgQFNlbGYoKSBwcml2YXRlIF9pbnB1dE1hc2s6IEJiSW5wdXRNYXNrKSB7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBjb25zdCBmb3JtYXQgPSBjaGFuZ2VzPy5bJ2Zvcm1hdCddPy5jdXJyZW50VmFsdWUgPz8gdGhpcy5mb3JtYXQgPz8gbnVsbDtcbiAgICAgICAgY29uc3Qgc2VwYXJhdG9yID0gY2hhbmdlcz8uWydzZXBhcmF0b3InXT8uY3VycmVudFZhbHVlID8/IHRoaXMuc2VwYXJhdG9yID8/ICctcyc7XG4gICAgICAgIHRoaXMuX2lucHV0TWFzay5tYXNrID0gdGhpcy5fbWFza2luZy5kYXRlKGZvcm1hdCwgc2VwYXJhdG9yKTtcbiAgICB9XG5cbiAgICAvLyBSZXF1aXJlZCBzbyB0aGF0IHRoZSB0ZW1wbGF0ZSB0eXBlIGNoZWNrZXIgY2FuIGluZmVyIHRoZSB0eXBlIG9mIHRoZSBjb2VyY2VkIGlucHV0cy5cbiAgICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfYmJEYXRlTWFzazogRGF0ZU1hc2tGb3JtYXQgfCBudWxsIHwgdW5kZWZpbmVkO1xuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9iYkRhdGVNYXNrU2VwYXJhdG9yOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG59XG4iXX0=
@@ -0,0 +1,118 @@
1
+ import { Directive, HostListener, Input, Optional, Self } from '@angular/core';
2
+ import { fromEvent, merge } from 'rxjs';
3
+ import _Inputmask from 'inputmask';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/cdk/platform";
6
+ import * as i2 from "@angular/forms";
7
+ const InputmaskConstructor = _Inputmask.default || _Inputmask;
8
+ export class BbInputMask {
9
+ constructor(_ngZone, _platform, _renderer, _elementRef, _control) {
10
+ this._ngZone = _ngZone;
11
+ this._platform = _platform;
12
+ this._renderer = _renderer;
13
+ this._elementRef = _elementRef;
14
+ this._control = _control;
15
+ // State.
16
+ this.inputMaskPlugin = null;
17
+ this.nativeInputElement = null;
18
+ this.eventsSubscription = null;
19
+ this._inputMaskOptions = null;
20
+ this._onChange = () => ({});
21
+ this.onInput = (_) => ({});
22
+ this.onTouched = () => ({});
23
+ this.validate = (control) => !control.value || !this.inputMaskPlugin || this.inputMaskPlugin?.isValid()
24
+ ? null
25
+ : { inputMask: true };
26
+ this.nativeInputElement = this._elementRef.nativeElement;
27
+ if (this._control != null) {
28
+ this._control.valueAccessor = this;
29
+ }
30
+ }
31
+ set mask(mask) {
32
+ if (!mask || typeof mask === 'string') {
33
+ return;
34
+ }
35
+ this._inputMaskOptions = mask;
36
+ this.updateMask();
37
+ }
38
+ ngOnInit() {
39
+ const control = this._control?.control;
40
+ if (!control) {
41
+ return;
42
+ }
43
+ control?.setValidators(control.validator ? [control.validator, this.validate] : [this.validate]);
44
+ control?.updateValueAndValidity();
45
+ }
46
+ ngOnDestroy() {
47
+ this.destroyMask();
48
+ }
49
+ writeValue(value) {
50
+ if (!this.nativeInputElement) {
51
+ return;
52
+ }
53
+ this._renderer.setProperty(this.nativeInputElement, 'value', value ?? '');
54
+ }
55
+ registerOnChange(fn) {
56
+ this._onChange = fn;
57
+ const parser = this._inputMaskOptions?.parser;
58
+ this.onInput = value => this._onChange(parser ? parser(value) : value);
59
+ }
60
+ registerOnTouched(fn) {
61
+ this.onTouched = fn;
62
+ }
63
+ setDisabledState(isDisabled) {
64
+ if (!this.nativeInputElement) {
65
+ return;
66
+ }
67
+ this._renderer.setProperty(this.nativeInputElement, 'disabled', isDisabled);
68
+ }
69
+ updateMask() {
70
+ this.destroyMask();
71
+ this.createMask();
72
+ this.registerOnChange(this._onChange);
73
+ }
74
+ createMask() {
75
+ if (!this._platform.isBrowser || !this.nativeInputElement || this._inputMaskOptions === null || Object.keys(this._inputMaskOptions).length === 0) {
76
+ return;
77
+ }
78
+ const { parser, ...options } = this._inputMaskOptions;
79
+ this.inputMaskPlugin = this._ngZone.runOutsideAngular(() => new InputmaskConstructor(options).mask(this.nativeInputElement));
80
+ const setValue$ = fromEvent(this.nativeInputElement, 'setvalue');
81
+ const cleared$ = fromEvent(this.nativeInputElement, 'cleared');
82
+ this.eventsSubscription = merge(setValue$, cleared$)
83
+ .subscribe(event => this.onInput(event?.target?.['value']));
84
+ const control = this._control?.control;
85
+ if (!control) {
86
+ return;
87
+ }
88
+ setTimeout(() => control?.updateValueAndValidity());
89
+ }
90
+ destroyMask() {
91
+ this.eventsSubscription?.unsubscribe();
92
+ this.eventsSubscription = null;
93
+ this.inputMaskPlugin?.remove();
94
+ this.inputMaskPlugin = null;
95
+ }
96
+ }
97
+ BbInputMask.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbInputMask, deps: [{ token: i0.NgZone }, { token: i1.Platform }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
98
+ BbInputMask.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.5", type: BbInputMask, selector: "input[bbInputMask],input[bbCurrencyMask],input[bbDateMask]", inputs: { mask: ["bbInputMask", "mask"] }, host: { listeners: { "input": "onInput($event.target.value)", "blur": "onTouched($event.target.value)" } }, ngImport: i0 });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: BbInputMask, decorators: [{
100
+ type: Directive,
101
+ args: [{
102
+ selector: 'input[bbInputMask],input[bbCurrencyMask],input[bbDateMask]'
103
+ }]
104
+ }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.Platform }, { type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i2.NgControl, decorators: [{
105
+ type: Optional
106
+ }, {
107
+ type: Self
108
+ }] }]; }, propDecorators: { mask: [{
109
+ type: Input,
110
+ args: ['bbInputMask']
111
+ }], onInput: [{
112
+ type: HostListener,
113
+ args: ['input', ['$event.target.value']]
114
+ }], onTouched: [{
115
+ type: HostListener,
116
+ args: ['blur', ['$event.target.value']]
117
+ }] } });
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtbWFzay5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL21hc2tpbmcvc3JjL2xpYi9kaXJlY3RpdmVzL2lucHV0LW1hc2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBNkIsUUFBUSxFQUFhLElBQUksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUcvSCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBZSxNQUFNLE1BQU0sQ0FBQztBQUdwRCxPQUFPLFVBQVUsTUFBTSxXQUFXLENBQUM7Ozs7QUFFbkMsTUFBTSxvQkFBb0IsR0FBSSxVQUF3RCxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUM7QUFLN0csTUFBTSxPQUFPLFdBQVc7SUFvQnBCLFlBQW9CLE9BQWUsRUFDZixTQUFtQixFQUNuQixTQUFvQixFQUNwQixXQUF5QyxFQUNyQixRQUFvQjtRQUp4QyxZQUFPLEdBQVAsT0FBTyxDQUFRO1FBQ2YsY0FBUyxHQUFULFNBQVMsQ0FBVTtRQUNuQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUE4QjtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFZO1FBWjVELFNBQVM7UUFDVCxvQkFBZSxHQUE4QixJQUFJLENBQUM7UUFDbEQsdUJBQWtCLEdBQTRCLElBQUksQ0FBQztRQUNuRCx1QkFBa0IsR0FBd0IsSUFBSSxDQUFDO1FBRXZDLHNCQUFpQixHQUErQixJQUFJLENBQUM7UUFDckQsY0FBUyxHQUE4QixHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBYzFELFlBQU8sR0FBeUIsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFHakQsY0FBUyxHQUFlLEdBQUcsRUFBRSxDQUFDLENB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LENBQUM7UUFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7SUFDaEMsQ0FBQzs7d0dBL0dRLFdBQVc7NEZBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUh2QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0REFBNEQ7aUJBQ3pFOzswQkF5QmdCLFFBQVE7OzBCQUFJLElBQUk7NENBckJ6QixJQUFJO3NCQURQLEtBQUs7dUJBQUMsYUFBYTtnQkE4QnBCLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFJOUMsU0FBUztzQkFEUixZQUFZO3VCQUFDLE1BQU0sRUFBRSxDQUFDLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE5nWm9uZSwgT25EZXN0cm95LCBPbkluaXQsIE9wdGlvbmFsLCBSZW5kZXJlcjIsIFNlbGZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wsIFZhbGlkYXRvcn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtJbnB1dE1hc2tPcHRpb25zfSBmcm9tICcuLi9pbnB1dC1tYXNrLmludGVyZmFjZSc7XG5pbXBvcnQge2Zyb21FdmVudCwgbWVyZ2UsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHR5cGUgSW5wdXRtYXNrIGZyb20gJ2lucHV0bWFzayc7XG5pbXBvcnQgX0lucHV0bWFzayBmcm9tICdpbnB1dG1hc2snO1xuXG5jb25zdCBJbnB1dG1hc2tDb25zdHJ1Y3RvciA9IChfSW5wdXRtYXNrIGFzIHVua25vd24gYXMgeyBkZWZhdWx0PzogSW5wdXRtYXNrLlN0YXRpYyB9KS5kZWZhdWx0IHx8IF9JbnB1dG1hc2s7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW5wdXRbYmJJbnB1dE1hc2tdLGlucHV0W2JiQ3VycmVuY3lNYXNrXSxpbnB1dFtiYkRhdGVNYXNrXSdcbn0pXG5leHBvcnQgY2xhc3MgQmJJbnB1dE1hc2s8VCA9IGFueT4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciB7XG5cbiAgICBASW5wdXQoJ2JiSW5wdXRNYXNrJylcbiAgICBzZXQgbWFzayhtYXNrOiBJbnB1dE1hc2tPcHRpb25zPFQ+IHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoIW1hc2sgfHwgdHlwZW9mIG1hc2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9pbnB1dE1hc2tPcHRpb25zID0gbWFzaztcbiAgICAgICAgdGhpcy51cGRhdGVNYXNrKCk7XG4gICAgfVxuXG4gICAgLy8gU3RhdGUuXG4gICAgaW5wdXRNYXNrUGx1Z2luOiBJbnB1dG1hc2suSW5zdGFuY2UgfCBudWxsID0gbnVsbDtcbiAgICBuYXRpdmVJbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCBudWxsID0gbnVsbDtcbiAgICBldmVudHNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgcHJpdmF0ZSBfaW5wdXRNYXNrT3B0aW9uczogSW5wdXRNYXNrT3B0aW9uczxUPiB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX29uQ2hhbmdlOiAodmFsdWU6IFQgfCBudWxsKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3BsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICAgICAgICAgICAgICBwcml2YXRlIF9yZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQFNlbGYoKSBwcml2YXRlIF9jb250cm9sPzogTmdDb250cm9sKSB7XG4gICAgICAgIHRoaXMubmF0aXZlSW5wdXRFbGVtZW50ID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgICAgICBpZiAodGhpcy5fY29udHJvbCAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLl9jb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudC50YXJnZXQudmFsdWUnXSlcbiAgICBvbklucHV0OiAodmFsdWU6IGFueSkgPT4gdm9pZCA9IChfOiBhbnkpID0+ICh7fSk7XG5cbiAgICBASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQudGFyZ2V0LnZhbHVlJ10pXG4gICAgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4gKHt9KTtcblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5fY29udHJvbD8uY29udHJvbDtcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb250cm9sPy5zZXRWYWxpZGF0b3JzKGNvbnRyb2wudmFsaWRhdG9yID8gW2NvbnRyb2wudmFsaWRhdG9yLCB0aGlzLnZhbGlkYXRlXSA6IFt0aGlzLnZhbGlkYXRlXSk7XG4gICAgICAgIGNvbnRyb2w/LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95TWFzaygpO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlSW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQsICd2YWx1ZScsIHZhbHVlID8/ICcnKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFQgfCBudWxsKSA9PiB2b2lkKSB7XG4gICAgICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XG4gICAgICAgIGNvbnN0IHBhcnNlciA9IHRoaXMuX2lucHV0TWFza09wdGlvbnM/LnBhcnNlcjtcbiAgICAgICAgdGhpcy5vbklucHV0ID0gdmFsdWUgPT4gdGhpcy5fb25DaGFuZ2UocGFyc2VyID8gcGFyc2VyKHZhbHVlKSA6IHZhbHVlKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlSW5wdXRFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQsICdkaXNhYmxlZCcsIGlzRGlzYWJsZWQpO1xuICAgIH1cblxuICAgIHZhbGlkYXRlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gIWNvbnRyb2wudmFsdWUgfHwgIXRoaXMuaW5wdXRNYXNrUGx1Z2luIHx8IHRoaXMuaW5wdXRNYXNrUGx1Z2luPy5pc1ZhbGlkKClcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDoge2lucHV0TWFzazogdHJ1ZX07XG5cbiAgICBwcml2YXRlIHVwZGF0ZU1hc2soKSB7XG4gICAgICAgIHRoaXMuZGVzdHJveU1hc2soKTtcbiAgICAgICAgdGhpcy5jcmVhdGVNYXNrKCk7XG4gICAgICAgIHRoaXMucmVnaXN0ZXJPbkNoYW5nZSh0aGlzLl9vbkNoYW5nZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVNYXNrKCkge1xuICAgICAgICBpZiAoIXRoaXMuX3BsYXRmb3JtLmlzQnJvd3NlciB8fCAhdGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQgfHwgdGhpcy5faW5wdXRNYXNrT3B0aW9ucyA9PT0gbnVsbCB8fCBPYmplY3Qua2V5cyh0aGlzLl9pbnB1dE1hc2tPcHRpb25zKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHtwYXJzZXIsIC4uLm9wdGlvbnN9ID0gdGhpcy5faW5wdXRNYXNrT3B0aW9ucztcbiAgICAgICAgdGhpcy5pbnB1dE1hc2tQbHVnaW4gPSB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4gbmV3IElucHV0bWFza0NvbnN0cnVjdG9yKG9wdGlvbnMpLm1hc2sodGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQpKTtcblxuICAgICAgICBjb25zdCBzZXRWYWx1ZSQgPSBmcm9tRXZlbnQodGhpcy5uYXRpdmVJbnB1dEVsZW1lbnQsICdzZXR2YWx1ZScpO1xuICAgICAgICBjb25zdCBjbGVhcmVkJCA9IGZyb21FdmVudCh0aGlzLm5hdGl2ZUlucHV0RWxlbWVudCwgJ2NsZWFyZWQnKTtcblxuICAgICAgICB0aGlzLmV2ZW50c1N1YnNjcmlwdGlvbiA9IG1lcmdlKHNldFZhbHVlJCwgY2xlYXJlZCQpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGV2ZW50ID0+IHRoaXMub25JbnB1dChldmVudD8udGFyZ2V0Py5bJ3ZhbHVlJ10pKTtcblxuICAgICAgICBjb25zdCBjb250cm9sID0gdGhpcy5fY29udHJvbD8uY29udHJvbDtcbiAgICAgICAgaWYgKCFjb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiBjb250cm9sPy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveU1hc2soKSB7XG4gICAgICAgIHRoaXMuZXZlbnRzU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLmV2ZW50c1N1YnNjcmlwdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMuaW5wdXRNYXNrUGx1Z2luPy5yZW1vdmUoKTtcbiAgICAgICAgdGhpcy5pbnB1dE1hc2tQbHVnaW4gPSBudWxsO1xuICAgIH1cblxuICAgIC8vIFJlcXVpcmVkIHNvIHRoYXQgdGhlIHRlbXBsYXRlIHR5cGUgY2hlY2tlciBjYW4gaW5mZXIgdGhlIHR5cGUgb2YgdGhlIGNvZXJjZWQgaW5wdXRzLlxuICAgIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9iYklucHV0TWFzazogSW5wdXRNYXNrT3B0aW9uczxhbnk+IHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxufVxuIl19