@bravobit/bb-foundation 0.16.3 → 0.16.4

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/esm2020/auth/lib/auth.interceptor.mjs +3 -3
  2. package/esm2020/auth/lib/auth.module.mjs +4 -4
  3. package/esm2020/auth/lib/auth.service.mjs +3 -3
  4. package/esm2020/auth/lib/directives/authenticated.directive.mjs +3 -3
  5. package/esm2020/auth/lib/directives/permission.directive.mjs +3 -3
  6. package/esm2020/auth/lib/directives/role.directive.mjs +3 -3
  7. package/esm2020/auth/lib/guards/anonymous.guard.mjs +3 -3
  8. package/esm2020/auth/lib/guards/authenticated.guard.mjs +3 -3
  9. package/esm2020/auth/lib/helpers/mapper.helper.mjs +3 -3
  10. package/esm2020/auth/lib/permissions.service.mjs +3 -3
  11. package/esm2020/collections/lib/collections.module.mjs +4 -4
  12. package/esm2020/collections/lib/components/collections-pager/collections-pager.component.mjs +4 -4
  13. package/esm2020/collections/lib/components/collections-viewer/collections-viewer.component.mjs +3 -3
  14. package/esm2020/collections/lib/components/collections.directive.mjs +12 -12
  15. package/esm2020/controls/lib/checkbox/checkbox/checkbox.component.mjs +3 -3
  16. package/esm2020/controls/lib/checkbox/checkbox-group/checkbox-group.component.mjs +3 -3
  17. package/esm2020/controls/lib/checkbox/checkbox.module.mjs +4 -4
  18. package/esm2020/controls/lib/controls.module.mjs +4 -4
  19. package/esm2020/dashboard/lib/dashboard/dashboard.component.mjs +3 -3
  20. package/esm2020/dashboard/lib/dashboard-header/dashboard-header.component.mjs +3 -3
  21. package/esm2020/dashboard/lib/dashboard-menu/dashboard-menu.component.mjs +3 -3
  22. package/esm2020/dashboard/lib/dashboard-menu-item/dashboard-menu-item.component.mjs +4 -4
  23. package/esm2020/dashboard/lib/dashboard-sidebar/dashboard-sidebar.component.mjs +3 -3
  24. package/esm2020/dashboard/lib/dashboard-sidebar-group/dashboard-sidebar-group.component.mjs +3 -3
  25. package/esm2020/dashboard/lib/dashboard-sidebar-item/dashboard-sidebar-item.component.mjs +3 -3
  26. package/esm2020/dashboard/lib/dashboard.module.mjs +4 -4
  27. package/esm2020/dialog/lib/dialog-actions/dialog-actions.component.mjs +3 -3
  28. package/esm2020/dialog/lib/dialog-confirm/dialog-confirm.component.mjs +3 -3
  29. package/esm2020/dialog/lib/dialog-container/dialog-container.component.mjs +3 -3
  30. package/esm2020/dialog/lib/dialog-header/dialog-header.component.mjs +3 -3
  31. package/esm2020/dialog/lib/dialog-link/dialog-link.component.mjs +3 -3
  32. package/esm2020/dialog/lib/dialog-modal/dialog-modal.component.mjs +3 -3
  33. package/esm2020/dialog/lib/dialog-overlay/dialog-overlay.component.mjs +3 -3
  34. package/esm2020/dialog/lib/dialog.insertion.mjs +3 -3
  35. package/esm2020/dialog/lib/dialog.module.mjs +4 -4
  36. package/esm2020/dialog/lib/dialog.service.mjs +3 -3
  37. package/esm2020/elements/lib/avatar/avatar.component.mjs +3 -3
  38. package/esm2020/elements/lib/button/button.component.mjs +6 -6
  39. package/esm2020/elements/lib/checkbox/checkbox.component.mjs +3 -3
  40. package/esm2020/elements/lib/date-picker/date-picker.component.mjs +3 -3
  41. package/esm2020/elements/lib/directives/addon.directive.mjs +6 -6
  42. package/esm2020/elements/lib/directives/autosize.directive.mjs +3 -3
  43. package/esm2020/elements/lib/directives/focus-trap.directive.mjs +3 -3
  44. package/esm2020/elements/lib/directives/focus.directive.mjs +3 -3
  45. package/esm2020/elements/lib/directives/form-submit.directive.mjs +3 -3
  46. package/esm2020/elements/lib/directives/input.directive.mjs +6 -6
  47. package/esm2020/elements/lib/directives/template.directive.mjs +3 -3
  48. package/esm2020/elements/lib/dropdown/dropdown.component.mjs +6 -6
  49. package/esm2020/elements/lib/elements.module.mjs +4 -4
  50. package/esm2020/elements/lib/file-picker/file-picker.component.mjs +6 -6
  51. package/esm2020/elements/lib/form-control/form-control.component.mjs +4 -4
  52. package/esm2020/elements/lib/form-error/form-error.component.mjs +3 -3
  53. package/esm2020/elements/lib/form-group/form-group.component.mjs +3 -3
  54. package/esm2020/elements/lib/icon/icon.component.mjs +3 -3
  55. package/esm2020/elements/lib/image-picker/image-picker.component.mjs +3 -3
  56. package/esm2020/elements/lib/pipes/file-image.pipe.mjs +3 -3
  57. package/esm2020/elements/lib/pipes/file-size.pipe.mjs +3 -3
  58. package/esm2020/elements/lib/pipes/relative-time.pipe.mjs +3 -3
  59. package/esm2020/elements/lib/spinner/spinner.component.mjs +3 -3
  60. package/esm2020/elements/lib/tag/tag.component.mjs +3 -3
  61. package/esm2020/http/lib/http.module.mjs +4 -4
  62. package/esm2020/http/lib/interceptors/base-url.interceptor.mjs +3 -3
  63. package/esm2020/http/lib/interceptors/error.interceptor.mjs +3 -3
  64. package/esm2020/lib/core/services/clipboard.service.mjs +3 -3
  65. package/esm2020/lib/core/services/exif.service.mjs +3 -3
  66. package/esm2020/lib/core/services/file-loader.service.mjs +3 -3
  67. package/esm2020/lib/core/services/image-converter.service.mjs +3 -3
  68. package/esm2020/lib/core/services/languages.service.mjs +3 -3
  69. package/esm2020/lib/core/services/network.service.mjs +3 -3
  70. package/esm2020/lib/core/services/patch.service.mjs +3 -3
  71. package/esm2020/lib/core/services/platform.service.mjs +3 -3
  72. package/esm2020/localize/lib/interfaces/config.interfaces.mjs +1 -1
  73. package/esm2020/localize/lib/localize.module.mjs +9 -6
  74. package/esm2020/localize/lib/localize.pipe.mjs +3 -3
  75. package/esm2020/localize/lib/localize.service.mjs +25 -22
  76. package/esm2020/localize/lib/views/localize-string/localize-string.component.mjs +3 -3
  77. package/esm2020/localize/lib/views/localize-template-or-string.directive.mjs +3 -3
  78. package/esm2020/localize/lib/views/localize-template.directive.mjs +3 -3
  79. package/esm2020/notifications/lib/notifications-item/notifications-item.component.mjs +3 -3
  80. package/esm2020/notifications/lib/notifications-list/notifications-list.component.mjs +3 -3
  81. package/esm2020/notifications/lib/notifications.module.mjs +4 -4
  82. package/esm2020/notifications/lib/notifications.service.mjs +3 -3
  83. package/esm2020/recaptcha/lib/recaptcha/recaptcha.component.mjs +3 -3
  84. package/esm2020/recaptcha/lib/recaptcha-loader.service.mjs +3 -3
  85. package/esm2020/recaptcha/lib/recaptcha.module.mjs +4 -4
  86. package/esm2020/storage/lib/storage.service.mjs +3 -3
  87. package/esm2020/table/lib/components/table/table.component.mjs +9 -9
  88. package/esm2020/table/lib/components/table-cell/table-cell.component.mjs +3 -3
  89. package/esm2020/table/lib/components/table-header-cell/table-header-cell.component.mjs +3 -3
  90. package/esm2020/table/lib/components/table-pager/table-pager.component.mjs +5 -5
  91. package/esm2020/table/lib/table.module.mjs +4 -4
  92. package/fesm2015/bravobit-bb-foundation-auth.mjs +31 -31
  93. package/fesm2015/bravobit-bb-foundation-auth.mjs.map +1 -1
  94. package/fesm2015/bravobit-bb-foundation-collections.mjs +23 -23
  95. package/fesm2015/bravobit-bb-foundation-collections.mjs.map +1 -1
  96. package/fesm2015/bravobit-bb-foundation-controls.mjs +14 -14
  97. package/fesm2015/bravobit-bb-foundation-controls.mjs.map +1 -1
  98. package/fesm2015/bravobit-bb-foundation-dashboard.mjs +26 -26
  99. package/fesm2015/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  100. package/fesm2015/bravobit-bb-foundation-dialog.mjs +31 -31
  101. package/fesm2015/bravobit-bb-foundation-dialog.mjs.map +1 -1
  102. package/fesm2015/bravobit-bb-foundation-elements.mjs +88 -88
  103. package/fesm2015/bravobit-bb-foundation-elements.mjs.map +1 -1
  104. package/fesm2015/bravobit-bb-foundation-http.mjs +10 -10
  105. package/fesm2015/bravobit-bb-foundation-http.mjs.map +1 -1
  106. package/fesm2015/bravobit-bb-foundation-localize.mjs +48 -41
  107. package/fesm2015/bravobit-bb-foundation-localize.mjs.map +1 -1
  108. package/fesm2015/bravobit-bb-foundation-notifications.mjs +13 -13
  109. package/fesm2015/bravobit-bb-foundation-notifications.mjs.map +1 -1
  110. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs +10 -10
  111. package/fesm2015/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  112. package/fesm2015/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  113. package/fesm2015/bravobit-bb-foundation-storage.mjs +3 -3
  114. package/fesm2015/bravobit-bb-foundation-storage.mjs.map +1 -1
  115. package/fesm2015/bravobit-bb-foundation-table.mjs +24 -24
  116. package/fesm2015/bravobit-bb-foundation-table.mjs.map +1 -1
  117. package/fesm2015/bravobit-bb-foundation.mjs +24 -24
  118. package/fesm2015/bravobit-bb-foundation.mjs.map +1 -1
  119. package/fesm2020/bravobit-bb-foundation-auth.mjs +31 -31
  120. package/fesm2020/bravobit-bb-foundation-auth.mjs.map +1 -1
  121. package/fesm2020/bravobit-bb-foundation-collections.mjs +23 -23
  122. package/fesm2020/bravobit-bb-foundation-collections.mjs.map +1 -1
  123. package/fesm2020/bravobit-bb-foundation-controls.mjs +14 -14
  124. package/fesm2020/bravobit-bb-foundation-controls.mjs.map +1 -1
  125. package/fesm2020/bravobit-bb-foundation-dashboard.mjs +26 -26
  126. package/fesm2020/bravobit-bb-foundation-dashboard.mjs.map +1 -1
  127. package/fesm2020/bravobit-bb-foundation-dialog.mjs +31 -31
  128. package/fesm2020/bravobit-bb-foundation-dialog.mjs.map +1 -1
  129. package/fesm2020/bravobit-bb-foundation-elements.mjs +88 -88
  130. package/fesm2020/bravobit-bb-foundation-elements.mjs.map +1 -1
  131. package/fesm2020/bravobit-bb-foundation-http.mjs +10 -10
  132. package/fesm2020/bravobit-bb-foundation-http.mjs.map +1 -1
  133. package/fesm2020/bravobit-bb-foundation-localize.mjs +44 -38
  134. package/fesm2020/bravobit-bb-foundation-localize.mjs.map +1 -1
  135. package/fesm2020/bravobit-bb-foundation-notifications.mjs +13 -13
  136. package/fesm2020/bravobit-bb-foundation-notifications.mjs.map +1 -1
  137. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs +10 -10
  138. package/fesm2020/bravobit-bb-foundation-recaptcha.mjs.map +1 -1
  139. package/fesm2020/bravobit-bb-foundation-rxjs.mjs.map +1 -1
  140. package/fesm2020/bravobit-bb-foundation-storage.mjs +3 -3
  141. package/fesm2020/bravobit-bb-foundation-storage.mjs.map +1 -1
  142. package/fesm2020/bravobit-bb-foundation-table.mjs +24 -24
  143. package/fesm2020/bravobit-bb-foundation-table.mjs.map +1 -1
  144. package/fesm2020/bravobit-bb-foundation.mjs +24 -24
  145. package/fesm2020/bravobit-bb-foundation.mjs.map +1 -1
  146. package/localize/lib/interfaces/config.interfaces.d.ts +1 -0
  147. package/localize/lib/localize.service.d.ts +3 -2
  148. package/package.json +5 -5
@@ -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: "13.1.0", ngImport: i0, type: BbSpinner, deps: null, target: i0.ɵɵFactoryTarget.Component });
16
- BbSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", 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: "13.1.0", ngImport: i0, type: BbSpinner, decorators: [{
15
+ BbSpinner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BbSpinner, deps: null, target: i0.ɵɵFactoryTarget.Component });
16
+ BbSpinner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.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: "13.2.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: "13.1.0", ngImport: i0, type: BbTag, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
- BbTag.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: BbTag, selector: "bb-tag", outputs: { onClose: "onClose" }, host: { classAttribute: "bb-tag" }, ngImport: i0, template: "<ng-content></ng-content>\n\n<button *ngIf=\"onClose?.observers?.length > 0\"\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"], directives: [{ 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: "13.1.0", ngImport: i0, type: BbTag, decorators: [{
10
+ BbTag.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BbTag, deps: [], target: i0.ɵɵFactoryTarget.Component });
11
+ BbTag.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.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?.observers?.length > 0\"\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"], directives: [{ 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: "13.2.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?.observers?.length > 0\"\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: [{
@@ -23,10 +23,10 @@ export class HttpModule {
23
23
  };
24
24
  }
25
25
  }
26
- HttpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: HttpModule, deps: [{ token: HttpModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
27
- HttpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
28
- HttpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: HttpModule, imports: [[HttpClientModule]] });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: HttpModule, decorators: [{
26
+ HttpModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: HttpModule, deps: [{ token: HttpModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule });
27
+ HttpModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: HttpModule, imports: [HttpClientModule] });
28
+ HttpModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: HttpModule, imports: [[HttpClientModule]] });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.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: "13.1.0", ngImport: i0, type: BaseUrlInterceptor, deps: [{ token: i1.HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
46
- BaseUrlInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BaseUrlInterceptor });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BaseUrlInterceptor, decorators: [{
45
+ BaseUrlInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BaseUrlInterceptor, deps: [{ token: i1.HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
46
+ BaseUrlInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BaseUrlInterceptor });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.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: "13.1.0", ngImport: i0, type: ErrorInterceptor, deps: [{ token: i1.HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
28
- ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ErrorInterceptor });
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ErrorInterceptor, decorators: [{
27
+ ErrorInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ErrorInterceptor, deps: [{ token: i1.HttpConfig }], target: i0.ɵɵFactoryTarget.Injectable });
28
+ ErrorInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: ErrorInterceptor });
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2h0dHAvc3JjL2xpYi9pbnRlcmNlcHRvcnMvZXJyb3IuaW50ZXJjZXB0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUE0QyxNQUFNLHNCQUFzQixDQUFDO0FBRWxHLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7QUFHaEMsTUFBTSxPQUFPLGdCQUFnQjtJQUt6QixZQUFvQixPQUFtQjtRQUFuQixZQUFPLEdBQVAsT0FBTyxDQUFZO1FBSHZDLFNBQVM7UUFDUSxjQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxtQkFBbUIsSUFBSSxLQUFLLENBQUM7SUFHeEUsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUE2QixFQUFFLElBQWlCO1FBQ3RELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzVCLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNmLDRDQUE0QztZQUM1QyxxREFBcUQ7WUFDckQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksS0FBSyxZQUFZLGlCQUFpQixFQUFFO2dCQUN2RCxNQUFNLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDcEMsT0FBTyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDN0I7WUFFRCxxREFBcUQ7WUFDckQsT0FBTyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsQ0FBQyxDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7OzZHQXRCUSxnQkFBZ0I7aUhBQWhCLGdCQUFnQjsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtIdHRwRXJyb3JSZXNwb25zZSwgSHR0cEhhbmRsZXIsIEh0dHBJbnRlcmNlcHRvciwgSHR0cFJlcXVlc3R9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7SHR0cENvbmZpZ30gZnJvbSAnLi4vY2xhc3Nlcy9odHRwLmNvbmZpZyc7XG5pbXBvcnQge0h0dHBFcnJvcn0gZnJvbSAnLi4vY2xhc3Nlcy9odHRwLmVycm9yJztcbmltcG9ydCB7Y2F0Y2hFcnJvcn0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFcnJvckludGVyY2VwdG9yIGltcGxlbWVudHMgSHR0cEludGVyY2VwdG9yIHtcblxuICAgIC8vIFN0YXRlLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Rpc2FibGVkID0gdGhpcy5fY29uZmlnPy5kaXNhYmxlRXJyb3JQYXJzaW5nID8/IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY29uZmlnOiBIdHRwQ29uZmlnKSB7XG4gICAgfVxuXG4gICAgaW50ZXJjZXB0KHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PHVua25vd24+LCBuZXh0OiBIdHRwSGFuZGxlcikge1xuICAgICAgICByZXR1cm4gbmV4dC5oYW5kbGUocmVxdWVzdCkucGlwZShcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xuICAgICAgICAgICAgICAgIC8vIElmIHdlIGhhdmUgYSBtYXRjaGluZyBodHRwIGVycm9yIHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgLy8gcmUtbWFwIGl0IHdpdGggb3VyIGN1c3RvbSBjbGFzcyAoaWYgbm90IGRpc2FibGVkKS5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2Rpc2FibGVkICYmIGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFyc2VkID0gbmV3IEh0dHBFcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKHBhcnNlZCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gV2UgZGlkIG5vdCBtYXRjaCBhbnl0aGluZywganVzdCByZS10cm93IHRoZSBlcnJvci5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihlcnJvcik7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxufVxuIl19
@@ -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: "13.1.0", ngImport: i0, type: Clipboard, deps: [{ token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
19
- Clipboard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Clipboard, providedIn: 'root' });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Clipboard, decorators: [{
18
+ Clipboard.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: Clipboard, deps: [{ token: DOCUMENT, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
19
+ Clipboard.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: Clipboard, providedIn: 'root' });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.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: "13.1.0", 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: "13.1.0", ngImport: i0, type: Exif, providedIn: 'root' });
157
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Exif, decorators: [{
155
+ Exif.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.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: "13.2.5", ngImport: i0, type: Exif, providedIn: 'root' });
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.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: "13.1.0", ngImport: i0, type: FileLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
80
- FileLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: FileLoader, providedIn: 'root' });
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: FileLoader, decorators: [{
79
+ FileLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FileLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
80
+ FileLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: FileLoader, providedIn: 'root' });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.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: "13.1.0", 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: "13.1.0", ngImport: i0, type: ImageConverter, providedIn: 'root' });
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: ImageConverter, decorators: [{
115
+ ImageConverter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.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: "13.2.5", ngImport: i0, type: ImageConverter, providedIn: 'root' });
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.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: "13.1.0", ngImport: i0, type: Languages, deps: [{ token: ACCEPT_LANGUAGE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
62
- Languages.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Languages, providedIn: 'root' });
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Languages, decorators: [{
61
+ Languages.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.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: "13.2.5", ngImport: i0, type: Languages, providedIn: 'root' });
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.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: "13.1.0", 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: "13.1.0", ngImport: i0, type: Network, providedIn: 'root' });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Network, decorators: [{
37
+ Network.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.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: "13.2.5", ngImport: i0, type: Network, providedIn: 'root' });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.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: "13.1.0", 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: "13.1.0", ngImport: i0, type: Patch, providedIn: 'root' });
47
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Patch, decorators: [{
45
+ Patch.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.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: "13.2.5", ngImport: i0, type: Patch, providedIn: 'root' });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.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: "13.1.0", ngImport: i0, type: Platform, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
32
- Platform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Platform, providedIn: 'root' });
33
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Platform, decorators: [{
31
+ Platform.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: Platform, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable });
32
+ Platform.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: Platform, providedIn: 'root' });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: Platform, decorators: [{
34
34
  type: Injectable,
35
35
  args: [{
36
36
  providedIn: 'root'
@@ -7,4 +7,4 @@ export class LocalizeConfig {
7
7
  this.dictionary = [];
8
8
  }
9
9
  }
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2xvY2FsaXplL3NyYy9saWIvaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxFQUFFO0FBQ0YsNENBQTRDO0FBQzVDLDRDQUE0QztBQUM1QyxFQUFFO0FBRUYsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFDSSxlQUFVLEdBQStCLEVBQUUsQ0FBQztJQUtoRCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeVBhcmFtc30gZnJvbSAnLi9kaWN0aW9uYXJ5LmludGVyZmFjZXMnO1xuXG4vL1xuLy8gVGhlIGNvbmZpZ3VyYXRpb24gdGhhdCBjYW4gYmUgcGFzc2VkIHdoZW5cbi8vIHRoZSB1c2VyIGluaXRpYWxpemVzIHRoZSBsb2NhbGl6ZSBtb2R1bGUuXG4vL1xuXG5leHBvcnQgY2xhc3MgTG9jYWxpemVDb25maWcge1xuICAgIGRpY3Rpb25hcnk6IExvY2FsaXplRGljdGlvbmFyeVBhcmFtc1tdID0gW107XG4gICAgc3Vic3RpdHV0aW9ucz86IHtcbiAgICAgICAgcmVmZXJlbmNlcz86IHN0cmluZ1tdO1xuICAgICAgICBpbnRlcnBvbGF0aW9uPzogc3RyaW5nW107XG4gICAgfTtcbn1cbiJdfQ==
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmludGVyZmFjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYi1mb3VuZGF0aW9uL2xvY2FsaXplL3NyYy9saWIvaW50ZXJmYWNlcy9jb25maWcuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxFQUFFO0FBQ0YsNENBQTRDO0FBQzVDLDRDQUE0QztBQUM1QyxFQUFFO0FBRUYsTUFBTSxPQUFPLGNBQWM7SUFBM0I7UUFDSSxlQUFVLEdBQStCLEVBQUUsQ0FBQztJQU1oRCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeVBhcmFtc30gZnJvbSAnLi9kaWN0aW9uYXJ5LmludGVyZmFjZXMnO1xuXG4vL1xuLy8gVGhlIGNvbmZpZ3VyYXRpb24gdGhhdCBjYW4gYmUgcGFzc2VkIHdoZW5cbi8vIHRoZSB1c2VyIGluaXRpYWxpemVzIHRoZSBsb2NhbGl6ZSBtb2R1bGUuXG4vL1xuXG5leHBvcnQgY2xhc3MgTG9jYWxpemVDb25maWcge1xuICAgIGRpY3Rpb25hcnk6IExvY2FsaXplRGljdGlvbmFyeVBhcmFtc1tdID0gW107XG4gICAgYXV0b21hdGljPzogYm9vbGVhbjtcbiAgICBzdWJzdGl0dXRpb25zPzoge1xuICAgICAgICByZWZlcmVuY2VzPzogc3RyaW5nW107XG4gICAgICAgIGludGVycG9sYXRpb24/OiBzdHJpbmdbXTtcbiAgICB9O1xufVxuIl19
@@ -15,11 +15,14 @@ import { BbLocalize } from './localize.pipe';
15
15
  import * as i0 from "@angular/core";
16
16
  export class LocalizeModule {
17
17
  static forRoot(config) {
18
+ const automatic = config?.automatic ?? true;
18
19
  return {
19
20
  ngModule: LocalizeModule,
20
21
  providers: [
21
22
  // Angular providers.
22
- { provide: APP_INITIALIZER, deps: [Localize], useFactory: initializeLocale, multi: true },
23
+ ...(automatic
24
+ ? [{ provide: APP_INITIALIZER, deps: [Localize], useFactory: initializeLocale, multi: true }]
25
+ : []),
23
26
  { provide: LOCALE_ID, deps: [Localize], useFactory: getLocale },
24
27
  // Config provider.
25
28
  { provide: LocalizeConfig, useValue: config },
@@ -35,15 +38,15 @@ export class LocalizeModule {
35
38
  };
36
39
  }
37
40
  }
38
- LocalizeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: LocalizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
39
- LocalizeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: LocalizeModule, declarations: [BbLocalize,
41
+ LocalizeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LocalizeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
42
+ LocalizeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LocalizeModule, declarations: [BbLocalize,
40
43
  BbLocalizeString,
41
44
  BbLocalizeTemplate,
42
45
  BbLocalizeTemplateOrString], imports: [CommonModule, HttpClientModule], exports: [BbLocalize,
43
46
  BbLocalizeString,
44
47
  BbLocalizeTemplate] });
45
- LocalizeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: LocalizeModule, imports: [[CommonModule, HttpClientModule]] });
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: LocalizeModule, decorators: [{
48
+ LocalizeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LocalizeModule, imports: [[CommonModule, HttpClientModule]] });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: LocalizeModule, decorators: [{
47
50
  type: NgModule,
48
51
  args: [{
49
52
  imports: [CommonModule, HttpClientModule],
@@ -66,4 +69,4 @@ export function initializeLocale(localize) {
66
69
  export function getLocale(localize) {
67
70
  return localize.locale;
68
71
  }
69
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2xvY2FsaXplLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFnQjNDLE1BQU0sT0FBTyxjQUFjO0lBRXZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0I7UUFDakMsT0FBTztZQUNILFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDUCxxQkFBcUI7Z0JBQ3JCLEVBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztnQkFDdkYsRUFBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUM7Z0JBQzdELG1CQUFtQjtnQkFDbkIsRUFBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUM7Z0JBQzNDLHNCQUFzQjtnQkFDdEIsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLHlCQUF5QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7Z0JBQzlFLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO2dCQUM5RSxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztnQkFDekUscUJBQXFCO2dCQUNyQixFQUFDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUM7Z0JBQ25FLHFCQUFxQjtnQkFDckIsUUFBUTthQUNYO1NBQ0osQ0FBQztJQUNOLENBQUM7OzJHQXJCUSxjQUFjOzRHQUFkLGNBQWMsaUJBWG5CLFVBQVU7UUFDVixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLDBCQUEwQixhQUxwQixZQUFZLEVBQUUsZ0JBQWdCLGFBUXBDLFVBQVU7UUFDVixnQkFBZ0I7UUFDaEIsa0JBQWtCOzRHQUdiLGNBQWMsWUFiZCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQzsyRkFhaEMsY0FBYztrQkFkMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7b0JBQ3pDLFlBQVksRUFBRTt3QkFDVixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQiwwQkFBMEI7cUJBQzdCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3FCQUNyQjtpQkFDSjs7QUEwQkQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQWtCO0lBQy9DLE9BQU8sUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO0FBQ2pDLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUyxDQUFDLFFBQWtCO0lBQ3hDLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQztBQUMzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtCYkxvY2FsaXplVGVtcGxhdGVPclN0cmluZ30gZnJvbSAnLi92aWV3cy9sb2NhbGl6ZS10ZW1wbGF0ZS1vci1zdHJpbmcuZGlyZWN0aXZlJztcbmltcG9ydCB7QVBQX0lOSVRJQUxJWkVSLCBMT0NBTEVfSUQsIE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmJMb2NhbGl6ZVN0cmluZ30gZnJvbSAnLi92aWV3cy9sb2NhbGl6ZS1zdHJpbmcvbG9jYWxpemUtc3RyaW5nLmNvbXBvbmVudCc7XG5pbXBvcnQge0xvY2FsaXplTG93ZXJjYXNlRnVuY3Rpb259IGZyb20gJy4vZnVuY3Rpb25zL2xvd2VyY2FzZS5mdW5jdGlvbic7XG5pbXBvcnQge0xvY2FsaXplVXBwZXJjYXNlRnVuY3Rpb259IGZyb20gJy4vZnVuY3Rpb25zL3VwcGVyY2FzZS5mdW5jdGlvbic7XG5pbXBvcnQge0JiTG9jYWxpemVUZW1wbGF0ZX0gZnJvbSAnLi92aWV3cy9sb2NhbGl6ZS10ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHtMT0NBTElaRV9GVU5DVElPTn0gZnJvbSAnLi9pbnRlcmZhY2VzL2Z1bmN0aW9ucy5pbnRlcmZhY2VzJztcbmltcG9ydCB7TG9jYWxpemVNaXNzaW5nSGFuZGxlcn0gZnJvbSAnLi9oYW5kbGVycy9taXNzaW5nLmhhbmRsZXInO1xuaW1wb3J0IHtMb2NhbGl6ZURhdGVGdW5jdGlvbn0gZnJvbSAnLi9mdW5jdGlvbnMvZGF0ZS5mdW5jdGlvbic7XG5pbXBvcnQge0xvY2FsaXplQ29uZmlnfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZXMnO1xuaW1wb3J0IHtIdHRwQ2xpZW50TW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TG9jYWxpemV9IGZyb20gJy4vbG9jYWxpemUuc2VydmljZSc7XG5pbXBvcnQge0JiTG9jYWxpemV9IGZyb20gJy4vbG9jYWxpemUucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgSHR0cENsaWVudE1vZHVsZV0sXG4gICAgZGVjbGFyYXRpb25zOiBbXG4gICAgICAgIEJiTG9jYWxpemUsXG4gICAgICAgIEJiTG9jYWxpemVTdHJpbmcsXG4gICAgICAgIEJiTG9jYWxpemVUZW1wbGF0ZSxcbiAgICAgICAgQmJMb2NhbGl6ZVRlbXBsYXRlT3JTdHJpbmdcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQmJMb2NhbGl6ZSxcbiAgICAgICAgQmJMb2NhbGl6ZVN0cmluZyxcbiAgICAgICAgQmJMb2NhbGl6ZVRlbXBsYXRlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZU1vZHVsZSB7XG5cbiAgICBzdGF0aWMgZm9yUm9vdChjb25maWc6IExvY2FsaXplQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxMb2NhbGl6ZU1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IExvY2FsaXplTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAgLy8gQW5ndWxhciBwcm92aWRlcnMuXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IEFQUF9JTklUSUFMSVpFUiwgZGVwczogW0xvY2FsaXplXSwgdXNlRmFjdG9yeTogaW5pdGlhbGl6ZUxvY2FsZSwgbXVsdGk6IHRydWV9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMT0NBTEVfSUQsIGRlcHM6IFtMb2NhbGl6ZV0sIHVzZUZhY3Rvcnk6IGdldExvY2FsZX0sXG4gICAgICAgICAgICAgICAgLy8gQ29uZmlnIHByb3ZpZGVyLlxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMb2NhbGl6ZUNvbmZpZywgdXNlVmFsdWU6IGNvbmZpZ30sXG4gICAgICAgICAgICAgICAgLy8gRnVuY3Rpb24gcHJvdmlkZXJzLlxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMT0NBTElaRV9GVU5DVElPTiwgdXNlQ2xhc3M6IExvY2FsaXplTG93ZXJjYXNlRnVuY3Rpb24sIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTE9DQUxJWkVfRlVOQ1RJT04sIHVzZUNsYXNzOiBMb2NhbGl6ZVVwcGVyY2FzZUZ1bmN0aW9uLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IExPQ0FMSVpFX0ZVTkNUSU9OLCB1c2VDbGFzczogTG9jYWxpemVEYXRlRnVuY3Rpb24sIG11bHRpOiB0cnVlfSxcbiAgICAgICAgICAgICAgICAvLyBIYW5kbGVyIHByb3ZpZGVycy5cbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTG9jYWxpemVNaXNzaW5nSGFuZGxlciwgdXNlQ2xhc3M6IExvY2FsaXplTWlzc2luZ0hhbmRsZXJ9LFxuICAgICAgICAgICAgICAgIC8vIFNlcnZpY2UgcHJvdmlkZXJzLlxuICAgICAgICAgICAgICAgIExvY2FsaXplXG4gICAgICAgICAgICBdXG4gICAgICAgIH07XG4gICAgfVxuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplTG9jYWxlKGxvY2FsaXplOiBMb2NhbGl6ZSkge1xuICAgIHJldHVybiBsb2NhbGl6ZS5pbml0aWFsaXplKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMb2NhbGUobG9jYWxpemU6IExvY2FsaXplKSB7XG4gICAgcmV0dXJuIGxvY2FsaXplLmxvY2FsZTtcbn1cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmItZm91bmRhdGlvbi9sb2NhbGl6ZS9zcmMvbGliL2xvY2FsaXplLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUMsZUFBZSxFQUFFLFNBQVMsRUFBdUIsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLG1EQUFtRCxDQUFDO0FBQ25GLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLGdDQUFnQyxDQUFDO0FBQ3pFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFDQUFxQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7QUFnQjNDLE1BQU0sT0FBTyxjQUFjO0lBRXZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0I7UUFDakMsTUFBTSxTQUFTLEdBQUcsTUFBTSxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUM7UUFDNUMsT0FBTztZQUNILFFBQVEsRUFBRSxjQUFjO1lBQ3hCLFNBQVMsRUFBRTtnQkFDUCxxQkFBcUI7Z0JBQ3JCLEdBQUcsQ0FBQyxTQUFTO29CQUNULENBQUMsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFDO29CQUMzRixDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNULEVBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFDO2dCQUM3RCxtQkFBbUI7Z0JBQ25CLEVBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFDO2dCQUMzQyxzQkFBc0I7Z0JBQ3RCLEVBQUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSx5QkFBeUIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFDO2dCQUM5RSxFQUFDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBQztnQkFDOUUsRUFBQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUM7Z0JBQ3pFLHFCQUFxQjtnQkFDckIsRUFBQyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFDO2dCQUNuRSxxQkFBcUI7Z0JBQ3JCLFFBQVE7YUFDWDtTQUNKLENBQUM7SUFDTixDQUFDOzsyR0F4QlEsY0FBYzs0R0FBZCxjQUFjLGlCQVhuQixVQUFVO1FBQ1YsZ0JBQWdCO1FBQ2hCLGtCQUFrQjtRQUNsQiwwQkFBMEIsYUFMcEIsWUFBWSxFQUFFLGdCQUFnQixhQVFwQyxVQUFVO1FBQ1YsZ0JBQWdCO1FBQ2hCLGtCQUFrQjs0R0FHYixjQUFjLFlBYmQsQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUM7MkZBYWhDLGNBQWM7a0JBZDFCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO29CQUN6QyxZQUFZLEVBQUU7d0JBQ1YsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUU7d0JBQ0wsVUFBVTt3QkFDVixnQkFBZ0I7d0JBQ2hCLGtCQUFrQjtxQkFDckI7aUJBQ0o7O0FBNkJELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxRQUFrQjtJQUMvQyxPQUFPLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztBQUNqQyxDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxRQUFrQjtJQUN4QyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUM7QUFDM0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QmJMb2NhbGl6ZVRlbXBsYXRlT3JTdHJpbmd9IGZyb20gJy4vdmlld3MvbG9jYWxpemUtdGVtcGxhdGUtb3Itc3RyaW5nLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0FQUF9JTklUSUFMSVpFUiwgTE9DQUxFX0lELCBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JiTG9jYWxpemVTdHJpbmd9IGZyb20gJy4vdmlld3MvbG9jYWxpemUtc3RyaW5nL2xvY2FsaXplLXN0cmluZy5jb21wb25lbnQnO1xuaW1wb3J0IHtMb2NhbGl6ZUxvd2VyY2FzZUZ1bmN0aW9ufSBmcm9tICcuL2Z1bmN0aW9ucy9sb3dlcmNhc2UuZnVuY3Rpb24nO1xuaW1wb3J0IHtMb2NhbGl6ZVVwcGVyY2FzZUZ1bmN0aW9ufSBmcm9tICcuL2Z1bmN0aW9ucy91cHBlcmNhc2UuZnVuY3Rpb24nO1xuaW1wb3J0IHtCYkxvY2FsaXplVGVtcGxhdGV9IGZyb20gJy4vdmlld3MvbG9jYWxpemUtdGVtcGxhdGUuZGlyZWN0aXZlJztcbmltcG9ydCB7TE9DQUxJWkVfRlVOQ1RJT059IGZyb20gJy4vaW50ZXJmYWNlcy9mdW5jdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0xvY2FsaXplTWlzc2luZ0hhbmRsZXJ9IGZyb20gJy4vaGFuZGxlcnMvbWlzc2luZy5oYW5kbGVyJztcbmltcG9ydCB7TG9jYWxpemVEYXRlRnVuY3Rpb259IGZyb20gJy4vZnVuY3Rpb25zL2RhdGUuZnVuY3Rpb24nO1xuaW1wb3J0IHtMb2NhbGl6ZUNvbmZpZ30gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2VzJztcbmltcG9ydCB7SHR0cENsaWVudE1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0xvY2FsaXplfSBmcm9tICcuL2xvY2FsaXplLnNlcnZpY2UnO1xuaW1wb3J0IHtCYkxvY2FsaXplfSBmcm9tICcuL2xvY2FsaXplLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEh0dHBDbGllbnRNb2R1bGVdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBCYkxvY2FsaXplLFxuICAgICAgICBCYkxvY2FsaXplU3RyaW5nLFxuICAgICAgICBCYkxvY2FsaXplVGVtcGxhdGUsXG4gICAgICAgIEJiTG9jYWxpemVUZW1wbGF0ZU9yU3RyaW5nXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEJiTG9jYWxpemUsXG4gICAgICAgIEJiTG9jYWxpemVTdHJpbmcsXG4gICAgICAgIEJiTG9jYWxpemVUZW1wbGF0ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTG9jYWxpemVNb2R1bGUge1xuXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBMb2NhbGl6ZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8TG9jYWxpemVNb2R1bGU+IHtcbiAgICAgICAgY29uc3QgYXV0b21hdGljID0gY29uZmlnPy5hdXRvbWF0aWMgPz8gdHJ1ZTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBMb2NhbGl6ZU1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIC8vIEFuZ3VsYXIgcHJvdmlkZXJzLlxuICAgICAgICAgICAgICAgIC4uLihhdXRvbWF0aWNcbiAgICAgICAgICAgICAgICAgICAgPyBbe3Byb3ZpZGU6IEFQUF9JTklUSUFMSVpFUiwgZGVwczogW0xvY2FsaXplXSwgdXNlRmFjdG9yeTogaW5pdGlhbGl6ZUxvY2FsZSwgbXVsdGk6IHRydWV9XVxuICAgICAgICAgICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTE9DQUxFX0lELCBkZXBzOiBbTG9jYWxpemVdLCB1c2VGYWN0b3J5OiBnZXRMb2NhbGV9LFxuICAgICAgICAgICAgICAgIC8vIENvbmZpZyBwcm92aWRlci5cbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTG9jYWxpemVDb25maWcsIHVzZVZhbHVlOiBjb25maWd9LFxuICAgICAgICAgICAgICAgIC8vIEZ1bmN0aW9uIHByb3ZpZGVycy5cbiAgICAgICAgICAgICAgICB7cHJvdmlkZTogTE9DQUxJWkVfRlVOQ1RJT04sIHVzZUNsYXNzOiBMb2NhbGl6ZUxvd2VyY2FzZUZ1bmN0aW9uLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IExPQ0FMSVpFX0ZVTkNUSU9OLCB1c2VDbGFzczogTG9jYWxpemVVcHBlcmNhc2VGdW5jdGlvbiwgbXVsdGk6IHRydWV9LFxuICAgICAgICAgICAgICAgIHtwcm92aWRlOiBMT0NBTElaRV9GVU5DVElPTiwgdXNlQ2xhc3M6IExvY2FsaXplRGF0ZUZ1bmN0aW9uLCBtdWx0aTogdHJ1ZX0sXG4gICAgICAgICAgICAgICAgLy8gSGFuZGxlciBwcm92aWRlcnMuXG4gICAgICAgICAgICAgICAge3Byb3ZpZGU6IExvY2FsaXplTWlzc2luZ0hhbmRsZXIsIHVzZUNsYXNzOiBMb2NhbGl6ZU1pc3NpbmdIYW5kbGVyfSxcbiAgICAgICAgICAgICAgICAvLyBTZXJ2aWNlIHByb3ZpZGVycy5cbiAgICAgICAgICAgICAgICBMb2NhbGl6ZVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cblxufVxuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZUxvY2FsZShsb2NhbGl6ZTogTG9jYWxpemUpIHtcbiAgICByZXR1cm4gbG9jYWxpemUuaW5pdGlhbGl6ZSgpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TG9jYWxlKGxvY2FsaXplOiBMb2NhbGl6ZSkge1xuICAgIHJldHVybiBsb2NhbGl6ZS5sb2NhbGU7XG59XG4iXX0=
@@ -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: "13.1.0", ngImport: i0, type: BbLocalize, deps: [{ token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
40
- BbLocalize.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalize, name: "bbLocalize" });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalize, decorators: [{
39
+ BbLocalize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BbLocalize, deps: [{ token: i1.Localize, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });
40
+ BbLocalize.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BbLocalize, name: "bbLocalize" });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BbLocalize, decorators: [{
42
42
  type: Pipe,
43
43
  args: [{
44
44
  name: 'bbLocalize'
@@ -84,6 +84,27 @@ export class Localize {
84
84
  get locale() {
85
85
  return this._currentDictionary.locale;
86
86
  }
87
+ async load(dictionary) {
88
+ const data = this._state?.hasKey(dictionary.stateKey)
89
+ ? this._state?.get(dictionary.stateKey, {})
90
+ : null;
91
+ // Try to load the dictionary data.
92
+ const loaded = await dictionary.load(data);
93
+ // Verify the data was loaded.
94
+ if (!loaded) {
95
+ throw new Error(`Localize: Could not correctly fetch the data from: "${dictionary.id}"`);
96
+ }
97
+ if (!this._platform.isBrowser && this._state) {
98
+ this._state?.set(dictionary?.stateKey, dictionary?.data ?? {});
99
+ }
100
+ // Combine the extra dictionary data.
101
+ (this._extras || []).forEach(extraDictionary => dictionary.combine(extraDictionary));
102
+ // Return the dictionary.
103
+ return dictionary;
104
+ }
105
+ set(dictionary) {
106
+ this._currentDictionary = dictionary;
107
+ }
87
108
  initialize() {
88
109
  return async () => this.load(this._currentDictionary);
89
110
  }
@@ -214,24 +235,6 @@ export class Localize {
214
235
  return this._dictionaries.find(item => item.supportedLanguages.includes(languageCode));
215
236
  }).filter(item => !!item).find((_, index) => index === 0);
216
237
  }
217
- async load(dictionary) {
218
- const data = this._state?.hasKey(dictionary.stateKey)
219
- ? this._state?.get(dictionary.stateKey, {})
220
- : null;
221
- // Try to load the dictionary data.
222
- const loaded = await dictionary.load(data);
223
- // Verify the data was loaded.
224
- if (!loaded) {
225
- throw new Error(`Localize: Could not correctly fetch the data from: "${dictionary.id}"`);
226
- }
227
- if (!this._platform.isBrowser && this._state) {
228
- this._state?.set(dictionary?.stateKey, dictionary?.data ?? {});
229
- }
230
- // Combine the extra dictionary data.
231
- (this._extras || []).forEach(extraDictionary => dictionary.combine(extraDictionary));
232
- // Return the dictionary.
233
- return dictionary;
234
- }
235
238
  renderDocumentLanguage() {
236
239
  const element = this._document?.documentElement;
237
240
  if (!element) {
@@ -240,9 +243,9 @@ export class Localize {
240
243
  element.lang = this._currentDictionary?.supportedLanguages?.[0] ?? this._currentDictionary?.locale;
241
244
  }
242
245
  }
243
- Localize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Localize, deps: [{ token: i1.HttpClient }, { token: i2.Storage }, { token: i3.Platform }, { token: i3.Languages }, { token: i4.TransferState, optional: true }, { token: i5.LocalizeConfig, optional: true }, { token: i6.LocalizeMissingHandler }, { token: DOCUMENT, optional: true }, { token: LOCATION, optional: true }, { token: BASE_URL, optional: true }, { token: LOCALIZE_FUNCTION, optional: true }, { token: LOCALIZE_EXTRA_DICTIONARY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
244
- Localize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Localize });
245
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: Localize, decorators: [{
246
+ Localize.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: Localize, deps: [{ token: i1.HttpClient }, { token: i2.Storage }, { token: i3.Platform }, { token: i3.Languages }, { token: i4.TransferState, optional: true }, { token: i5.LocalizeConfig, optional: true }, { token: i6.LocalizeMissingHandler }, { token: DOCUMENT, optional: true }, { token: LOCATION, optional: true }, { token: BASE_URL, optional: true }, { token: LOCALIZE_FUNCTION, optional: true }, { token: LOCALIZE_EXTRA_DICTIONARY, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
247
+ Localize.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: Localize });
248
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: Localize, decorators: [{
246
249
  type: Injectable
247
250
  }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.Storage }, { type: i3.Platform }, { type: i3.Languages }, { type: i4.TransferState, decorators: [{
248
251
  type: Optional
@@ -274,4 +277,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImpor
274
277
  type: Inject,
275
278
  args: [LOCALIZE_EXTRA_DICTIONARY]
276
279
  }] }]; } });
277
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBd0MsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRyxPQUFPLEVBQUMseUJBQXlCLEVBQTBCLE1BQU0sb0NBQW9DLENBQUM7QUFFdEcsT0FBTyxFQUFDLFFBQVEsRUFBYSxRQUFRLEVBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUdoRixPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFJekQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQUd6QyxNQUFNLE9BQU8sUUFBUTtJQVFqQixZQUFvQixLQUFpQixFQUNqQixRQUFpQixFQUNqQixTQUFtQixFQUNuQixVQUFxQixFQUNULE1BQXFCLEVBQ3JCLE9BQXVCLEVBQ25DLGVBQXVDLEVBQ1QsU0FBZSxFQUNmLFNBQWUsRUFDZixRQUFpQixFQUNSLFVBQStCLEVBQ3ZCLE9BQW1DO1FBWGxGLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDVCxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUNULGNBQVMsR0FBVCxTQUFTLENBQU07UUFDZixjQUFTLEdBQVQsU0FBUyxDQUFNO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNSLGVB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T0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVPLHNCQUFzQjtRQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDO0lBQ3ZHLENBQUM7O3FHQTVRUSxRQUFRLHFQQWVlLFFBQVEsNkJBQ1IsUUFBUSw2QkFDUixRQUFRLDZCQUNSLGlCQUFpQiw2QkFDakIseUJBQXlCO3lHQW5CaEQsUUFBUTsyRkFBUixRQUFRO2tCQURwQixVQUFVOzswQkFhTSxRQUFROzswQkFDUixRQUFROzswQkFFUixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUMzQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUMzQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUMzQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLGlCQUFpQjs7MEJBQ3BDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtMT0NBTElaRV9GVU5DVElPTiwgTG9jYWxpemVGdW5jdGlvbiwgTG9jYWxpemVGdW5jdGlvbk1hcH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Z1bmN0aW9ucy5pbnRlcmZhY2VzJztcbmltcG9ydCB7TE9DQUxJWkVfRVhUUkFfRElDVElPTkFSWSwgTG9jYWxpemVFeHRyYURpY3Rpb25hcnl9IGZyb20gJy4vaW50ZXJmYWNlcy9kaWN0aW9uYXJ5LmludGVyZmFjZXMnO1xuaW1wb3J0IHtMb2NhbGl6ZU9wdGlvbnNEYXRhLCBMb2NhbGl6ZVBhcmFtc30gZnJvbSAnLi9pbnRlcmZhY2VzL29wdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0JBU0VfVVJMLCBMYW5ndWFnZXMsIExPQ0FUSU9OLCBQbGF0Zm9ybX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24nO1xuaW1wb3J0IHtMb2NhbGl6ZU1pc3NpbmdIYW5kbGVyfSBmcm9tICcuL2hhbmRsZXJzL21pc3NpbmcuaGFuZGxlcic7XG5pbXBvcnQge0xvY2FsaXplQ29uZmlnfSBmcm9tICcuL2ludGVyZmFjZXMvY29uZmlnLmludGVyZmFjZXMnO1xuaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9jYWxpemVEaWN0aW9uYXJ5fSBmcm9tICcuL2xvY2FsaXplLmRpY3Rpb25hcnknO1xuaW1wb3J0IHtTdG9yYWdlfSBmcm9tICdAYnJhdm9iaXQvYmItZm91bmRhdGlvbi9zdG9yYWdlJztcbmltcG9ydCB7VHJhbnNmZXJTdGF0ZX0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQge0h0dHBDbGllbnR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7RE9DVU1FTlR9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMb2NhbGl6ZSB7XG5cbiAgICAvLyBSZWFkb25seSBkYXRhLlxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2RpY3Rpb25hcmllczogTG9jYWxpemVEaWN0aW9uYXJ5W107XG4gICAgcHJpdmF0ZSByZWFkb25seSBfY3VycmVudERpY3Rpb25hcnk6IExvY2FsaXplRGljdGlvbmFyeTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9mdW5jdGlvbk1pZGRsZXdhcmU6IExvY2FsaXplRnVuY3Rpb25NYXA7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfc3RvcmFnZVRva2VuOiBzdHJpbmcgPSAnYmItbGFuZ3VhZ2UtZGljdGlvbmFyeS1pZCc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3N0b3JhZ2U6IFN0b3JhZ2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2xhbmd1YWdlczogTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3N0YXRlOiBUcmFuc2ZlclN0YXRlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZzogTG9jYWxpemVDb25maWcsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfbWlzc2luZ0hhbmRsZXI6IExvY2FsaXplTWlzc2luZ0hhbmRsZXIsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ/OiBhbnksXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBVElPTikgcHJpdmF0ZSBfbG9jYXRpb24/OiBhbnksXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChCQVNFX1VSTCkgcHJpdmF0ZSBfYmFzZVVybD86IHN0cmluZyxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPQ0FMSVpFX0ZVTkNUSU9OKSBwcml2YXRlIF9mdW5jdGlvbnM/OiBMb2NhbGl6ZUZ1bmN0aW9uW10sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBTElaRV9FWFRSQV9ESUNUSU9OQVJZKSBwcml2YXRlIF9leHRyYXM/OiBMb2NhbGl6ZUV4dHJhRGljdGlvbmFyeVtdKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGF0IGxlYXN0IG9uZSBsYW5ndWFnZSB3YXMgcGFzc2VkIGluIHRoZSBjb25maWcuXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuZGljdGlvbmFyeS5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsaXplOiBvbmUgb3IgbW9yZSBsYW5ndWFnZXMgc2hvdWxkIGJlIHN1cHBsaWVkLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2F0aGVyIHRoZSBkaWN0aW9uYXJpZXMuXG4gICAgICAgIHRoaXMuX2RpY3Rpb25hcmllcyA9IHRoaXMuX2NvbmZpZy5kaWN0aW9uYXJ5Lm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTG9jYWxpemVEaWN0aW9uYXJ5KGl0ZW0sIHRoaXMuX2Jhc2VVcmwsIHRoaXMuX2h0dHApO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTYXZlIHRoZSBiZXN0IG1hdGNoaW5nIGN1cnJlbnQgZGljdGlvbmFyeS5cbiAgICAgICAgdGhpcy5fY3VycmVudERpY3Rpb25hcnkgPSB0aGlzLnJldHJpZXZlQmVzdE1hdGNoaW5nRGljdGlvbmFyeSgpO1xuXG4gICAgICAgIC8vIEdhdGhlciBhbGwgdGhlIGxvY2FsaXplIGZ1bmN0aW9ucy5cbiAgICAgICAgdGhpcy5fZnVuY3Rpb25NaWRkbGV3YXJlID0gdGhpcy5fZnVuY3Rpb25zLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIHByZXZpb3VzW2N1cnJlbnQua2V5d29yZCgpXSA9IGN1cnJlbnQ7XG4gICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLnJlbmRlckRvY3VtZW50TGFuZ3VhZ2UoKTtcbiAgICB9XG5cbiAgICBnZXQgZGljdGlvbmFyaWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyaWVzO1xuICAgIH1cblxuICAgIGdldCBjdXJyZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudERpY3Rpb25hcnk7XG4gICAgfVxuXG4gICAgZ2V0IGxvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnREaWN0aW9uYXJ5LmxvY2FsZTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCkge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gdGhpcy5sb2FkKHRoaXMuX2N1cnJlbnREaWN0aW9uYXJ5KTtcbiAgICB9XG5cbiAgICBjaGFuZ2UoaWQ6IHN0cmluZywgcmVsb2FkOiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAvLyBUcnkgdG8gZmV0Y2ggdGhlIGRpY3Rpb25hcnkuXG4gICAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSB0aGlzLl9kaWN0aW9uYXJpZXMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGlkKTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgZGljdGlvbmFyeSBleGlzdHMuXG4gICAgICAgIGlmICghZGljdGlvbmFyeSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBMb2NhbGl6ZTogQ291bGQgbm90IGZpbmQgZGljdGlvbmFyeSB3aXRoIGlkOiBcIiR7aWR9XCJgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNhdmUgdGhlIGxhbmd1YWdlIGluIHRoZSBzdG9yYWdlLlxuICAgICAgICB0aGlzLl9zdG9yYWdlLmNvb2tpZS5zZXQ8c3RyaW5nPih0aGlzLl9zdG9yYWdlVG9rZW4sIGRpY3Rpb25hcnkuaWQsIHt9KTtcblxuICAgICAgICAvLyBKdXN0IHF1aXQgaWYgd2UgZG9uJ3QgbmVlZCB0byByZWxvYWQuXG4gICAgICAgIGlmICghcmVsb2FkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBuZWVkIHRvIHJlbG9hZCB0aGUgYXBwbGljYXRpb24gZm9yIHRoZSB0cmFuc2xhdGlvbnMuXG4gICAgICAgIHJldHVybiB0aGlzLnJlbG9hZCgpO1xuICAgIH1cblxuICAgIGNsZWFyKHJlbG9hZDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBsYW5ndWFnZSBpbiB0aGUgbG9jYWwgc3RvcmFnZS5cbiAgICAgICAgdGhpcy5fc3RvcmFnZS5jb29raWUucmVtb3ZlKHRoaXMuX3N0b3JhZ2VUb2tlbik7XG5cbiAgICAgICAgLy8gSnVzdCBxdWl0IGlmIHdlIGRvbid0IG5lZWQgdG8gcmVsb2FkLlxuICAgICAgICBpZiAoIXJlbG9hZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2UgbmVlZCB0byByZWxvYWQgdGhlIGFwcGxpY2F0aW9uIGZvciB0aGUgdHJhbnNsYXRpb25zLlxuICAgICAgICByZXR1cm4gdGhpcy5yZWxvYWQoKTtcbiAgICB9XG5cbiAgICB0cmFuc2xhdGUodG9rZW5PclBhcmFtczogc3RyaW5nIHwgTG9jYWxpemVQYXJhbXMpIHtcbiAgICAgICAgLy8gMS4gQ29udmVydCB0byB0aGUgcGFyYW1zLlxuICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNvbnZlcnRUb1BhcmFtcyh0b2tlbk9yUGFyYW1zKTtcblxuICAgICAgICAvLyAyLiBUcnkgdG8gZmluZCB0aGUgdHJhbnNsYXRpb24gaW4gdGhlIGRpY3Rpb25hcnkuXG4gICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdCA9IHRoaXMuX2N1cnJlbnREaWN0aW9uYXJ5LnNlYXJjaChwYXJhbXMudG9rZW4pO1xuXG4gICAgICAgIC8vIDMuIFZlcmlmeSB0aGUgdHJhbnNsYXRpb24gd2FzIGZvdW5kLlxuICAgICAgICBpZiAoIXNlYXJjaFJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21pc3NpbmdIYW5kbGVyLmhhbmRsZShwYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gNC4gRmluZCByZWZlcmVuY2VzIGluIHRoZSB0cmFuc2xhdGlvbiB0aGF0IG5lZWQgdG8gYmUgdHJhbnNsYXRlZCBhcyB3ZWxsLlxuICAgICAgICBjb25zdCBwcm9jZXNzUmVzdWx0ID0gdGhpcy5maW5kUmVmZXJlbmNlc0luVHJhbnNsYXRpb24oc2VhcmNoUmVzdWx0KTtcblxuICAgICAgICAvLyA1LiBQYXJzZSB0aGUgaW50ZXJwb2xhdGlvbiBkYXRhLlxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUludGVycG9sYXRpb25EYXRhKHByb2Nlc3NSZXN1bHQsIHBhcmFtcy5kYXRhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlSW50ZXJwb2xhdGlvbkRhdGEodmFsdWU6IHN0cmluZywgZGF0YTogTG9jYWxpemVPcHRpb25zRGF0YSkge1xuICAgICAgICAvLyBHZXQgdGhlIGludGVycG9sYXRpb24gc3Vic3RpdHV0aW9ucy5cbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IHRoaXMuZ2V0U3Vic3RpdHV0aW9ucygnaW50ZXJwb2xhdGlvbicsIFsne3snLCAnfX0nXSk7XG5cbiAgICAgICAgLy8gR2V0IGFsbCBtYXRjaGVzIGluIHRoZSB2YWx1ZS5cbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMuZ2V0TWF0Y2hlcyh2YWx1ZSwgc3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgLy8gUmVwbGFjZSBhbGwgbWF0Y2hlcyB3aXRoIHRoZSBwYXJzZWQgdmFsdWUuXG4gICAgICAgIHJldHVybiBtYXRjaGVzLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIFRyeSB0byBwYXJzZSB0aGUgdG9rZW4uXG4gICAgICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRUb2tlbiA9IHRoaXMuaW50ZXJwb2xhdGVGdW5jdGlvbkRhdGEoY3VycmVudC50b2tlbiwgZGF0YSk7XG5cbiAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIG1hdGNoIHdpdGggdGhlIHBhcnNlZCB0b2tlbi5cbiAgICAgICAgICAgIHJldHVybiBwcmV2aW91cy5yZXBsYWNlKGN1cnJlbnQubWF0Y2gsIGludGVycG9sYXRlZFRva2VuKTtcbiAgICAgICAgfSwgYCR7dmFsdWV9YCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnRlcnBvbGF0ZUZ1bmN0aW9uRGF0YSh2YWx1ZTogc3RyaW5nLCBpbnRlcnBvbGF0aW9uRGF0YTogTG9jYWxpemVPcHRpb25zRGF0YSkge1xuICAgICAgICAvLyBHZXQgdGhlIHRva2VuIGFuZCB0aGUgbWV0aG9kcyBieSBzcGxpdHRpbmdcbiAgICAgICAgLy8gb24gdGhlIHBpcGUgc3ltYm9sLlxuICAgICAgICBjb25zdCBbdG9rZW4sIC4uLm1ldGhvZHNdID0gdmFsdWUuc3BsaXQoJ3wnKS5tYXAoaXRlbSA9PiBpdGVtLnRyaW0oKSk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSB2YWx1ZSBmb3IgdGhlIHRva2VuIGZyb21cbiAgICAgICAgLy8gdGhlIGludGVycG9sYXRpb24gZGF0YS5cbiAgICAgICAgY29uc3QgaW50ZXJwb2xhdGlvblZhbHVlID0gaW50ZXJwb2xhdGlvbkRhdGFbdG9rZW5dIHx8IHRva2VuO1xuXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIG1pZGRsZXdhcmUgbWV0aG9kcyBhbmQgdHJ5IHRvXG4gICAgICAgIC8vIGNvbmZvcm0gdGhlIHN0cmluZyB0byB0aGUgZ2l2ZW4gcGFyYW1ldGVycy5cbiAgICAgICAgcmV0dXJuIG1ldGhvZHMucmVkdWNlKChzdHJpbmcsIG1pZGRsZXdhcmVOYW1lKSA9PiB7XG4gICAgICAgICAgICAvLyBUcnkgdG8gcmV0cmlldmUgdGhlIG1pZGRsZXdhcmUgZnJvbSB0aGUgY29sbGVjdGlvbi5cbiAgICAgICAgICAgIGNvbnN0IG1pZGRsZXdhcmUgPSB0aGlzLl9mdW5jdGlvbk1pZGRsZXdhcmVbbWlkZGxld2FyZU5hbWVdO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgbWlkZGxld2FyZSBpcyBtaXNzaW5nIHJldHVybiBhbiBlcnJvclxuICAgICAgICAgICAgLy8gc28gdGhhdCB0aGUgdXNlciBrbm93cyBpdCB3YXMgbm90IGZvdW5kLlxuICAgICAgICAgICAgaWYgKCFtaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgbWlkZGxld2FyZSBmdW5jdGlvbiB3aXRoIHRoZSBzdHJpbmcuXG4gICAgICAgICAgICByZXR1cm4gbWlkZGxld2FyZS50cmFuc2Zvcm0oc3RyaW5nLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgIH0sIGAke2ludGVycG9sYXRpb25WYWx1ZX1gKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRSZWZlcmVuY2VzSW5UcmFuc2xhdGlvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIC8vIEdldCB0aGUgcmVmZXJlbmNlIHN1YnN0aXR1dGlvbnMuXG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSB0aGlzLmdldFN1YnN0aXR1dGlvbnMoJ3JlZmVyZW5jZXMnLCBbJyMoJywgJyknXSk7XG5cbiAgICAgICAgLy8gR2V0IGFsbCBtYXRjaGVzIGluIHRoZSB2YWx1ZS5cbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMuZ2V0TWF0Y2hlcyh2YWx1ZSwgc3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgLy8gUmVwbGFjZSBhbGwgbWF0Y2hlcyB3aXRoIHRoZSB0cmFuc2xhdGVkIHZhbHVlLlxuICAgICAgICByZXR1cm4gbWF0Y2hlcy5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICAvLyBUcnkgdG8gdHJhbnNsYXRlIHRoZSB0b2tlbi5cbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRUb2tlbiA9IHRoaXMudHJhbnNsYXRlKGN1cnJlbnQudG9rZW4pO1xuXG4gICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBtYXRjaCB3aXRoIHRoZSB0cmFuc2xhdGVkIHRva2VuLlxuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzLnJlcGxhY2UoY3VycmVudC5tYXRjaCwgdHJhbnNsYXRlZFRva2VuKTtcbiAgICAgICAgfSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3Vic3RpdHV0aW9ucyh0eXBlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogc3RyaW5nW10pIHtcbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9ICh0aGlzLl9jb25maWdcbiAgICAgICAgICAgICYmIHRoaXMuX2NvbmZpZy5zdWJzdGl0dXRpb25zXG4gICAgICAgICAgICAmJiB0aGlzLl9jb25maWcuc3Vic3RpdHV0aW9uc1t0eXBlXSk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBzdWJzdGl0dXRpb25zLlxuICAgICAgICBjb25zdCB2YWx1ZSA9ICghc3Vic3RpdHV0aW9ucyB8fCBzdWJzdGl0dXRpb25zLmxlbmd0aCAhPT0gMilcbiAgICAgICAgICAgID8gZGVmYXVsdFZhbHVlXG4gICAgICAgICAgICA6IHN1YnN0aXR1dGlvbnM7XG5cbiAgICAgICAgLy8gRXNjYXBlIGJvdGggc3Vic3RpdHV0aW9ucyBzbyB0aGF0IHRoZXlcbiAgICAgICAgLy8gY2FuIGJlIHVzZWQuXG4gICAgICAgIGNvbnN0IGVzY2FwZSA9IC9bLiorP14ke30oKXxbXFxdXFxcXF0vZztcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB2YWx1ZVswXS5yZXBsYWNlKGVzY2FwZSwgJ1xcXFwkJicpO1xuICAgICAgICBjb25zdCBlbmQgPSB2YWx1ZVsxXS5yZXBsYWNlKGVzY2FwZSwgJ1xcXFwkJicpO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgc3Vic3RpdHV0aW9ucy5cbiAgICAgICAgcmV0dXJuIHtzdGFydCwgZW5kfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJldHJpZXZlQmVzdE1hdGNoaW5nRGljdGlvbmFyeSgpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBkaWN0aW9uYXJ5IGJhc2VkIG9uIHN0b3JhZ2UuXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VEaWN0aW9uYXJ5ID0gdGhpcy5nZXREaWN0aW9uYXJ5RnJvbVN0b3JhZ2UoKTtcblxuICAgICAgICAvLyBHZXQgdGhlIGRpY3Rpb25hcnkgYmFzZWQgb24gdGhlIHN1cHBvcnRlZCBsYW5ndWFnZS5cbiAgICAgICAgY29uc3QgYnJvd3NlckRpY3Rpb25hcnkgPSB0aGlzLmdldEJlc3RCcm93c2VyTWF0Y2hEaWN0aW9uYXJ5KCk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBkaWN0aW9uYXJ5IGJhc2VkIG9uIHRoZSBmaXJzdCBpbmRleC5cbiAgICAgICAgY29uc3QgZmlyc3REaWN0aW9uYXJ5ID0gdGhpcy5fZGljdGlvbmFyaWVzWzBdO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgYmVzdCBtYXRjaGluZyBkaWN0aW9uYXJ5LlxuICAgICAgICByZXR1cm4gc3RvcmFnZURpY3Rpb25hcnkgfHwgYnJvd3NlckRpY3Rpb25hcnkgfHwgZmlyc3REaWN0aW9uYXJ5O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGljdGlvbmFyeUZyb21TdG9yYWdlKCkge1xuICAgICAgICAvLyBHZXQgZGljdGlvbmFyeSBpZCBmcm9tIHRoZSBzdG9yYWdlLi5cbiAgICAgICAgY29uc3QgZGljdGlvbmFyeUlkID0gdGhpcy5fc3RvcmFnZS5jb29raWUuZ2V0PHN0cmluZz4odGhpcy5fc3RvcmFnZVRva2VuKTtcblxuICAgICAgICAvLyBSZXR1cm4gdGhlIGRpY3Rpb25hcnkgYmFzZWQgb24gdGhlIHN0b3JhZ2UgZGljdGlvbmFyeSBpZC5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpY3Rpb25hcmllcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gZGljdGlvbmFyeUlkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJlc3RCcm93c2VyTWF0Y2hEaWN0aW9uYXJ5KCkge1xuICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIGJyb3dzZXIgbGFuZ3VhZ2VzIGFuZCByZXR1cm4gdGhlXG4gICAgICAgIC8vIGJlc3QgbWF0Y2hpbmcgZGljdGlvbmFyeS5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhbmd1YWdlcy5hbGwubWFwKCh7Y29kZSwgcmVnaW9ufSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VDb2RlID0gW2NvZGUsIHJlZ2lvbl0uZmlsdGVyKGRhdGEgPT4gISFkYXRhKS5qb2luKCctJyk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaWN0aW9uYXJpZXMuZmluZChpdGVtID0+IGl0ZW0uc3VwcG9ydGVkTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmd1YWdlQ29kZSkpO1xuICAgICAgICB9KS5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0pLmZpbmQoKF8sIGluZGV4KSA9PiBpbmRleCA9PT0gMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0VG9QYXJhbXMgPSAodG9rZW5PclBhcmFtczogc3RyaW5nIHwgTG9jYWxpemVQYXJhbXMpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbk9yUGFyYW1zICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gRGVzdHJ1Y3QgdGhlIHBhcmFtcyBmcm9tIHRoZSBvYmplY3QuXG4gICAgICAgICAgICBjb25zdCB7dG9rZW4sIG9wdGlvbmFsLCBkYXRhfSA9IHRva2VuT3JQYXJhbXM7XG5cbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBhbGwgcGFyYW1ldGVycyBhcmUgdmFsaWRcbiAgICAgICAgICAgIC8vIGJ5IHR5cGUgc2FmZSBhZGRpbmcgdGhlbS5cbiAgICAgICAgICAgIHJldHVybiB7dG9rZW46IHRva2VuLCBvcHRpb25hbDogb3B0aW9uYWwgfHwgZmFsc2UsIGRhdGE6IGRhdGEgfHwge319O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIHBhcmFtZXRlciBpcyBhIHN0cmluZyBmaWxsIGluIHRoZSBibGFua3MuXG4gICAgICAgIHJldHVybiB7dG9rZW46IHRva2VuT3JQYXJhbXMsIG9wdGlvbmFsOiBmYWxzZSwgZGF0YToge319O1xuICAgIH07XG5cbiAgICBwcml2YXRlIGFzeW5jIGxvYWQoZGljdGlvbmFyeTogTG9jYWxpemVEaWN0aW9uYXJ5KSB7XG4gICAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLl9zdGF0ZT8uaGFzS2V5KGRpY3Rpb25hcnkuc3RhdGVLZXkpXG4gICAgICAgICAgICA/IHRoaXMuX3N0YXRlPy5nZXQoZGljdGlvbmFyeS5zdGF0ZUtleSwge30pXG4gICAgICAgICAgICA6IG51bGw7XG5cbiAgICAgICAgLy8gVHJ5IHRvIGxvYWQgdGhlIGRpY3Rpb25hcnkgZGF0YS5cbiAgICAgICAgY29uc3QgbG9hZGVkID0gYXdhaXQgZGljdGlvbmFyeS5sb2FkKGRhdGEpO1xuXG4gICAgICAgIC8vIFZlcmlmeSB0aGUgZGF0YSB3YXMgbG9hZGVkLlxuICAgICAgICBpZiAoIWxvYWRlZCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBMb2NhbGl6ZTogQ291bGQgbm90IGNvcnJlY3RseSBmZXRjaCB0aGUgZGF0YSBmcm9tOiBcIiR7ZGljdGlvbmFyeS5pZH1cImApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9wbGF0Zm9ybS5pc0Jyb3dzZXIgJiYgdGhpcy5fc3RhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuX3N0YXRlPy5zZXQ8b2JqZWN0PihkaWN0aW9uYXJ5Py5zdGF0ZUtleSwgZGljdGlvbmFyeT8uZGF0YSA/PyB7fSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb21iaW5lIHRoZSBleHRyYSBkaWN0aW9uYXJ5IGRhdGEuXG4gICAgICAgICh0aGlzLl9leHRyYXMgfHwgW10pLmZvckVhY2goZXh0cmFEaWN0aW9uYXJ5ID0+IGRpY3Rpb25hcnkuY29tYmluZShleHRyYURpY3Rpb25hcnkpKTtcblxuICAgICAgICAvLyBSZXR1cm4gdGhlIGRpY3Rpb25hcnkuXG4gICAgICAgIHJldHVybiBkaWN0aW9uYXJ5O1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVuZGVyRG9jdW1lbnRMYW5ndWFnZSgpIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuX2RvY3VtZW50Py5kb2N1bWVudEVsZW1lbnQ7XG4gICAgICAgIGlmICghZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudC5sYW5nID0gdGhpcy5fY3VycmVudERpY3Rpb25hcnk/LnN1cHBvcnRlZExhbmd1YWdlcz8uWzBdID8/IHRoaXMuX2N1cnJlbnREaWN0aW9uYXJ5Py5sb2NhbGU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRNYXRjaGVzID0gKHZhbHVlOiBzdHJpbmcsIHN1YnN0aXR1dGlvbnM6IHsgc3RhcnQ6IHN0cmluZywgZW5kOiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICAvLyBHZXQgdGhlIG1hdGNoaW5nIHN1YnN0aXR1dGlvbnMuXG4gICAgICAgIGNvbnN0IHtzdGFydCwgZW5kfSA9IHN1YnN0aXR1dGlvbnM7XG5cbiAgICAgICAgLy8gQ29tcG9zZSBhIHJlZ2V4IHRoYXQgd2lsbCBmaW5kIHRoZSBtYXRjaGVzLlxuICAgICAgICBjb25zdCByZWdleCA9IG5ldyBSZWdFeHAoYCR7c3RhcnR9KFteJHtlbmR9XSspJHtlbmR9YCwgJ2cnKTtcblxuICAgICAgICAvLyBFeGVjdXRlIHRoZSByZWdleCB0byBmaW5kIG1hdGNoZXMuXG4gICAgICAgIGxldCBtYXRjaCA9IHJlZ2V4LmV4ZWModmFsdWUpO1xuICAgICAgICBjb25zdCBtYXRjaGVzID0gW107XG5cbiAgICAgICAgd2hpbGUgKG1hdGNoICE9PSBudWxsKSB7XG4gICAgICAgICAgICAvLyBQdXNoIGEgbmV3IG1hdGNoLlxuICAgICAgICAgICAgbWF0Y2hlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICBtYXRjaDogbWF0Y2hbMF0sXG4gICAgICAgICAgICAgICAgdG9rZW46IG1hdGNoWzFdXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gVHJ5IHRvIGZpbmQgbW9yZSBtYXRjaGVzLlxuICAgICAgICAgICAgbWF0Y2ggPSByZWdleC5leGVjKHZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJldHVybiB0aGUgcHJvY2Vzc2VkIHZhbHVlLlxuICAgICAgICByZXR1cm4gbWF0Y2hlcy5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0pO1xuICAgIH07XG5cbiAgICBwcml2YXRlIHJlbG9hZCA9ICgpID0+IHRoaXMuX2xvY2F0aW9uPy5yZWxvYWQoKTtcblxufVxuIl19
280
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2JiLWZvdW5kYXRpb24vbG9jYWxpemUvc3JjL2xpYi9sb2NhbGl6ZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxpQkFBaUIsRUFBd0MsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRyxPQUFPLEVBQUMseUJBQXlCLEVBQTBCLE1BQU0sb0NBQW9DLENBQUM7QUFFdEcsT0FBTyxFQUFDLFFBQVEsRUFBYSxRQUFRLEVBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUdoRixPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFJekQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7OztBQUd6QyxNQUFNLE9BQU8sUUFBUTtJQVNqQixZQUFvQixLQUFpQixFQUNqQixRQUFpQixFQUNqQixTQUFtQixFQUNuQixVQUFxQixFQUNULE1BQXFCLEVBQ3JCLE9BQXVCLEVBQ25DLGVBQXVDLEVBQ1QsU0FBZSxFQUNmLFNBQWUsRUFDZixRQUFpQixFQUNSLFVBQStCLEVBQ3ZCLE9BQW1DO1FBWGxGLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNqQixjQUFTLEdBQVQsU0FBUyxDQUFVO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQVc7UUFDVCxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQWdCO1FBQ25DLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUNULGNBQVMsR0FBVCxTQUFTLENBQU07UUFDZixjQUFTLEdBQVQsU0FBUyxDQUFNO1FBQ2YsYUFBUSxHQUFSLFFBQVEsQ0FBUztRQUNSLGVB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QUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBZ0JPLHNCQUFzQjtRQUMxQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLGVBQWUsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1YsT0FBTztTQUNWO1FBRUQsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDO0lBQ3ZHLENBQUM7O3FHQWpSUSxRQUFRLHFQQWdCZSxRQUFRLDZCQUNSLFFBQVEsNkJBQ1IsUUFBUSw2QkFDUixpQkFBaUIsNkJBQ2pCLHlCQUF5Qjt5R0FwQmhELFFBQVE7MkZBQVIsUUFBUTtrQkFEcEIsVUFBVTs7MEJBY00sUUFBUTs7MEJBQ1IsUUFBUTs7MEJBRVIsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxRQUFROzswQkFDM0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxpQkFBaUI7OzBCQUNwQyxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TE9DQUxJWkVfRlVOQ1RJT04sIExvY2FsaXplRnVuY3Rpb24sIExvY2FsaXplRnVuY3Rpb25NYXB9IGZyb20gJy4vaW50ZXJmYWNlcy9mdW5jdGlvbnMuaW50ZXJmYWNlcyc7XG5pbXBvcnQge0xPQ0FMSVpFX0VYVFJBX0RJQ1RJT05BUlksIExvY2FsaXplRXh0cmFEaWN0aW9uYXJ5fSBmcm9tICcuL2ludGVyZmFjZXMvZGljdGlvbmFyeS5pbnRlcmZhY2VzJztcbmltcG9ydCB7TG9jYWxpemVPcHRpb25zRGF0YSwgTG9jYWxpemVQYXJhbXN9IGZyb20gJy4vaW50ZXJmYWNlcy9vcHRpb25zLmludGVyZmFjZXMnO1xuaW1wb3J0IHtCQVNFX1VSTCwgTGFuZ3VhZ2VzLCBMT0NBVElPTiwgUGxhdGZvcm19IGZyb20gJ0BicmF2b2JpdC9iYi1mb3VuZGF0aW9uJztcbmltcG9ydCB7TG9jYWxpemVNaXNzaW5nSGFuZGxlcn0gZnJvbSAnLi9oYW5kbGVycy9taXNzaW5nLmhhbmRsZXInO1xuaW1wb3J0IHtMb2NhbGl6ZUNvbmZpZ30gZnJvbSAnLi9pbnRlcmZhY2VzL2NvbmZpZy5pbnRlcmZhY2VzJztcbmltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xvY2FsaXplRGljdGlvbmFyeX0gZnJvbSAnLi9sb2NhbGl6ZS5kaWN0aW9uYXJ5JztcbmltcG9ydCB7U3RvcmFnZX0gZnJvbSAnQGJyYXZvYml0L2JiLWZvdW5kYXRpb24vc3RvcmFnZSc7XG5pbXBvcnQge1RyYW5zZmVyU3RhdGV9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9jYWxpemUge1xuXG4gICAgLy8gUmVhZG9ubHkgZGF0YS5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kaWN0aW9uYXJpZXM6IExvY2FsaXplRGljdGlvbmFyeVtdO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Z1bmN0aW9uTWlkZGxld2FyZTogTG9jYWxpemVGdW5jdGlvbk1hcDtcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9zdG9yYWdlVG9rZW46IHN0cmluZyA9ICdiYi1sYW5ndWFnZS1kaWN0aW9uYXJ5LWlkJztcblxuICAgIHByaXZhdGUgX2N1cnJlbnREaWN0aW9uYXJ5OiBMb2NhbGl6ZURpY3Rpb25hcnk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX3N0b3JhZ2U6IFN0b3JhZ2UsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfcGxhdGZvcm06IFBsYXRmb3JtLFxuICAgICAgICAgICAgICAgIHByaXZhdGUgX2xhbmd1YWdlczogTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX3N0YXRlOiBUcmFuc2ZlclN0YXRlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgX2NvbmZpZzogTG9jYWxpemVDb25maWcsXG4gICAgICAgICAgICAgICAgcHJpdmF0ZSBfbWlzc2luZ0hhbmRsZXI6IExvY2FsaXplTWlzc2luZ0hhbmRsZXIsXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBfZG9jdW1lbnQ/OiBhbnksXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBVElPTikgcHJpdmF0ZSBfbG9jYXRpb24/OiBhbnksXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChCQVNFX1VSTCkgcHJpdmF0ZSBfYmFzZVVybD86IHN0cmluZyxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KExPQ0FMSVpFX0ZVTkNUSU9OKSBwcml2YXRlIF9mdW5jdGlvbnM/OiBMb2NhbGl6ZUZ1bmN0aW9uW10sXG4gICAgICAgICAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChMT0NBTElaRV9FWFRSQV9ESUNUSU9OQVJZKSBwcml2YXRlIF9leHRyYXM/OiBMb2NhbGl6ZUV4dHJhRGljdGlvbmFyeVtdKSB7XG4gICAgICAgIC8vIENoZWNrIGlmIGF0IGxlYXN0IG9uZSBsYW5ndWFnZSB3YXMgcGFzc2VkIGluIHRoZSBjb25maWcuXG4gICAgICAgIGlmICh0aGlzLl9jb25maWcuZGljdGlvbmFyeS5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0xvY2FsaXplOiBvbmUgb3IgbW9yZSBsYW5ndWFnZXMgc2hvdWxkIGJlIHN1cHBsaWVkLicpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gR2F0aGVyIHRoZSBkaWN0aW9uYXJpZXMuXG4gICAgICAgIHRoaXMuX2RpY3Rpb25hcmllcyA9IHRoaXMuX2NvbmZpZy5kaWN0aW9uYXJ5Lm1hcChpdGVtID0+IHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTG9jYWxpemVEaWN0aW9uYXJ5KGl0ZW0sIHRoaXMuX2Jhc2VVcmwsIHRoaXMuX2h0dHApO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBTYXZlIHRoZSBiZXN0IG1hdGNoaW5nIGN1cnJlbnQgZGljdGlvbmFyeS5cbiAgICAgICAgdGhpcy5fY3VycmVudERpY3Rpb25hcnkgPSB0aGlzLnJldHJpZXZlQmVzdE1hdGNoaW5nRGljdGlvbmFyeSgpO1xuXG4gICAgICAgIC8vIEdhdGhlciBhbGwgdGhlIGxvY2FsaXplIGZ1bmN0aW9ucy5cbiAgICAgICAgdGhpcy5fZnVuY3Rpb25NaWRkbGV3YXJlID0gdGhpcy5fZnVuY3Rpb25zLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIHByZXZpb3VzW2N1cnJlbnQua2V5d29yZCgpXSA9IGN1cnJlbnQ7XG4gICAgICAgICAgICByZXR1cm4gcHJldmlvdXM7XG4gICAgICAgIH0sIHt9KTtcblxuICAgICAgICB0aGlzLnJlbmRlckRvY3VtZW50TGFuZ3VhZ2UoKTtcbiAgICB9XG5cbiAgICBnZXQgZGljdGlvbmFyaWVzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGljdGlvbmFyaWVzO1xuICAgIH1cblxuICAgIGdldCBjdXJyZW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VycmVudERpY3Rpb25hcnk7XG4gICAgfVxuXG4gICAgZ2V0IGxvY2FsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2N1cnJlbnREaWN0aW9uYXJ5LmxvY2FsZTtcbiAgICB9XG5cbiAgICBhc3luYyBsb2FkKGRpY3Rpb25hcnk6IExvY2FsaXplRGljdGlvbmFyeSkge1xuICAgICAgICBjb25zdCBkYXRhID0gdGhpcy5fc3RhdGU/Lmhhc0tleShkaWN0aW9uYXJ5LnN0YXRlS2V5KVxuICAgICAgICAgICAgPyB0aGlzLl9zdGF0ZT8uZ2V0KGRpY3Rpb25hcnkuc3RhdGVLZXksIHt9KVxuICAgICAgICAgICAgOiBudWxsO1xuXG4gICAgICAgIC8vIFRyeSB0byBsb2FkIHRoZSBkaWN0aW9uYXJ5IGRhdGEuXG4gICAgICAgIGNvbnN0IGxvYWRlZCA9IGF3YWl0IGRpY3Rpb25hcnkubG9hZChkYXRhKTtcblxuICAgICAgICAvLyBWZXJpZnkgdGhlIGRhdGEgd2FzIGxvYWRlZC5cbiAgICAgICAgaWYgKCFsb2FkZWQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTG9jYWxpemU6IENvdWxkIG5vdCBjb3JyZWN0bHkgZmV0Y2ggdGhlIGRhdGEgZnJvbTogXCIke2RpY3Rpb25hcnkuaWR9XCJgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5fcGxhdGZvcm0uaXNCcm93c2VyICYmIHRoaXMuX3N0YXRlKSB7XG4gICAgICAgICAgICB0aGlzLl9zdGF0ZT8uc2V0PG9iamVjdD4oZGljdGlvbmFyeT8uc3RhdGVLZXksIGRpY3Rpb25hcnk/LmRhdGEgPz8ge30pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ29tYmluZSB0aGUgZXh0cmEgZGljdGlvbmFyeSBkYXRhLlxuICAgICAgICAodGhpcy5fZXh0cmFzIHx8IFtdKS5mb3JFYWNoKGV4dHJhRGljdGlvbmFyeSA9PiBkaWN0aW9uYXJ5LmNvbWJpbmUoZXh0cmFEaWN0aW9uYXJ5KSk7XG5cbiAgICAgICAgLy8gUmV0dXJuIHRoZSBkaWN0aW9uYXJ5LlxuICAgICAgICByZXR1cm4gZGljdGlvbmFyeTtcbiAgICB9XG5cbiAgICBzZXQoZGljdGlvbmFyeTogTG9jYWxpemVEaWN0aW9uYXJ5KSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnREaWN0aW9uYXJ5ID0gZGljdGlvbmFyeTtcbiAgICB9XG5cbiAgICBpbml0aWFsaXplKCkge1xuICAgICAgICByZXR1cm4gYXN5bmMgKCkgPT4gdGhpcy5sb2FkKHRoaXMuX2N1cnJlbnREaWN0aW9uYXJ5KTtcbiAgICB9XG5cbiAgICBjaGFuZ2UoaWQ6IHN0cmluZywgcmVsb2FkOiBib29sZWFuID0gdHJ1ZSkge1xuICAgICAgICAvLyBUcnkgdG8gZmV0Y2ggdGhlIGRpY3Rpb25hcnkuXG4gICAgICAgIGNvbnN0IGRpY3Rpb25hcnkgPSB0aGlzLl9kaWN0aW9uYXJpZXMuZmluZChpdGVtID0+IGl0ZW0uaWQgPT09IGlkKTtcblxuICAgICAgICAvLyBWYWxpZGF0ZSB0aGUgZGljdGlvbmFyeSBleGlzdHMuXG4gICAgICAgIGlmICghZGljdGlvbmFyeSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBMb2NhbGl6ZTogQ291bGQgbm90IGZpbmQgZGljdGlvbmFyeSB3aXRoIGlkOiBcIiR7aWR9XCJgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNhdmUgdGhlIGxhbmd1YWdlIGluIHRoZSBzdG9yYWdlLlxuICAgICAgICB0aGlzLl9zdG9yYWdlLmNvb2tpZS5zZXQ8c3RyaW5nPih0aGlzLl9zdG9yYWdlVG9rZW4sIGRpY3Rpb25hcnkuaWQsIHt9KTtcblxuICAgICAgICAvLyBKdXN0IHF1aXQgaWYgd2UgZG9uJ3QgbmVlZCB0byByZWxvYWQuXG4gICAgICAgIGlmICghcmVsb2FkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBXZSBuZWVkIHRvIHJlbG9hZCB0aGUgYXBwbGljYXRpb24gZm9yIHRoZSB0cmFuc2xhdGlvbnMuXG4gICAgICAgIHJldHVybiB0aGlzLnJlbG9hZCgpO1xuICAgIH1cblxuICAgIGNsZWFyKHJlbG9hZDogYm9vbGVhbiA9IHRydWUpIHtcbiAgICAgICAgLy8gUmVtb3ZlIHRoZSBsYW5ndWFnZSBpbiB0aGUgbG9jYWwgc3RvcmFnZS5cbiAgICAgICAgdGhpcy5fc3RvcmFnZS5jb29raWUucmVtb3ZlKHRoaXMuX3N0b3JhZ2VUb2tlbik7XG5cbiAgICAgICAgLy8gSnVzdCBxdWl0IGlmIHdlIGRvbid0IG5lZWQgdG8gcmVsb2FkLlxuICAgICAgICBpZiAoIXJlbG9hZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gV2UgbmVlZCB0byByZWxvYWQgdGhlIGFwcGxpY2F0aW9uIGZvciB0aGUgdHJhbnNsYXRpb25zLlxuICAgICAgICByZXR1cm4gdGhpcy5yZWxvYWQoKTtcbiAgICB9XG5cbiAgICB0cmFuc2xhdGUodG9rZW5PclBhcmFtczogc3RyaW5nIHwgTG9jYWxpemVQYXJhbXMpIHtcbiAgICAgICAgLy8gMS4gQ29udmVydCB0byB0aGUgcGFyYW1zLlxuICAgICAgICBjb25zdCBwYXJhbXMgPSB0aGlzLmNvbnZlcnRUb1BhcmFtcyh0b2tlbk9yUGFyYW1zKTtcblxuICAgICAgICAvLyAyLiBUcnkgdG8gZmluZCB0aGUgdHJhbnNsYXRpb24gaW4gdGhlIGRpY3Rpb25hcnkuXG4gICAgICAgIGNvbnN0IHNlYXJjaFJlc3VsdCA9IHRoaXMuX2N1cnJlbnREaWN0aW9uYXJ5LnNlYXJjaChwYXJhbXMudG9rZW4pO1xuXG4gICAgICAgIC8vIDMuIFZlcmlmeSB0aGUgdHJhbnNsYXRpb24gd2FzIGZvdW5kLlxuICAgICAgICBpZiAoIXNlYXJjaFJlc3VsdCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX21pc3NpbmdIYW5kbGVyLmhhbmRsZShwYXJhbXMpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gNC4gRmluZCByZWZlcmVuY2VzIGluIHRoZSB0cmFuc2xhdGlvbiB0aGF0IG5lZWQgdG8gYmUgdHJhbnNsYXRlZCBhcyB3ZWxsLlxuICAgICAgICBjb25zdCBwcm9jZXNzUmVzdWx0ID0gdGhpcy5maW5kUmVmZXJlbmNlc0luVHJhbnNsYXRpb24oc2VhcmNoUmVzdWx0KTtcblxuICAgICAgICAvLyA1LiBQYXJzZSB0aGUgaW50ZXJwb2xhdGlvbiBkYXRhLlxuICAgICAgICByZXR1cm4gdGhpcy5wYXJzZUludGVycG9sYXRpb25EYXRhKHByb2Nlc3NSZXN1bHQsIHBhcmFtcy5kYXRhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBhcnNlSW50ZXJwb2xhdGlvbkRhdGEodmFsdWU6IHN0cmluZywgZGF0YTogTG9jYWxpemVPcHRpb25zRGF0YSkge1xuICAgICAgICAvLyBHZXQgdGhlIGludGVycG9sYXRpb24gc3Vic3RpdHV0aW9ucy5cbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9IHRoaXMuZ2V0U3Vic3RpdHV0aW9ucygnaW50ZXJwb2xhdGlvbicsIFsne3snLCAnfX0nXSk7XG5cbiAgICAgICAgLy8gR2V0IGFsbCBtYXRjaGVzIGluIHRoZSB2YWx1ZS5cbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMuZ2V0TWF0Y2hlcyh2YWx1ZSwgc3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgLy8gUmVwbGFjZSBhbGwgbWF0Y2hlcyB3aXRoIHRoZSBwYXJzZWQgdmFsdWUuXG4gICAgICAgIHJldHVybiBtYXRjaGVzLnJlZHVjZSgocHJldmlvdXMsIGN1cnJlbnQpID0+IHtcbiAgICAgICAgICAgIC8vIFRyeSB0byBwYXJzZSB0aGUgdG9rZW4uXG4gICAgICAgICAgICBjb25zdCBpbnRlcnBvbGF0ZWRUb2tlbiA9IHRoaXMuaW50ZXJwb2xhdGVGdW5jdGlvbkRhdGEoY3VycmVudC50b2tlbiwgZGF0YSk7XG5cbiAgICAgICAgICAgIC8vIFJlcGxhY2UgdGhlIG1hdGNoIHdpdGggdGhlIHBhcnNlZCB0b2tlbi5cbiAgICAgICAgICAgIHJldHVybiBwcmV2aW91cy5yZXBsYWNlKGN1cnJlbnQubWF0Y2gsIGludGVycG9sYXRlZFRva2VuKTtcbiAgICAgICAgfSwgYCR7dmFsdWV9YCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbnRlcnBvbGF0ZUZ1bmN0aW9uRGF0YSh2YWx1ZTogc3RyaW5nLCBpbnRlcnBvbGF0aW9uRGF0YTogTG9jYWxpemVPcHRpb25zRGF0YSkge1xuICAgICAgICAvLyBHZXQgdGhlIHRva2VuIGFuZCB0aGUgbWV0aG9kcyBieSBzcGxpdHRpbmdcbiAgICAgICAgLy8gb24gdGhlIHBpcGUgc3ltYm9sLlxuICAgICAgICBjb25zdCBbdG9rZW4sIC4uLm1ldGhvZHNdID0gdmFsdWUuc3BsaXQoJ3wnKS5tYXAoaXRlbSA9PiBpdGVtLnRyaW0oKSk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSB2YWx1ZSBmb3IgdGhlIHRva2VuIGZyb21cbiAgICAgICAgLy8gdGhlIGludGVycG9sYXRpb24gZGF0YS5cbiAgICAgICAgY29uc3QgaW50ZXJwb2xhdGlvblZhbHVlID0gaW50ZXJwb2xhdGlvbkRhdGFbdG9rZW5dIHx8IHRva2VuO1xuXG4gICAgICAgIC8vIExvb3AgdGhyb3VnaCBhbGwgdGhlIG1pZGRsZXdhcmUgbWV0aG9kcyBhbmQgdHJ5IHRvXG4gICAgICAgIC8vIGNvbmZvcm0gdGhlIHN0cmluZyB0byB0aGUgZ2l2ZW4gcGFyYW1ldGVycy5cbiAgICAgICAgcmV0dXJuIG1ldGhvZHMucmVkdWNlKChzdHJpbmcsIG1pZGRsZXdhcmVOYW1lKSA9PiB7XG4gICAgICAgICAgICAvLyBUcnkgdG8gcmV0cmlldmUgdGhlIG1pZGRsZXdhcmUgZnJvbSB0aGUgY29sbGVjdGlvbi5cbiAgICAgICAgICAgIGNvbnN0IG1pZGRsZXdhcmUgPSB0aGlzLl9mdW5jdGlvbk1pZGRsZXdhcmVbbWlkZGxld2FyZU5hbWVdO1xuXG4gICAgICAgICAgICAvLyBJZiB0aGUgbWlkZGxld2FyZSBpcyBtaXNzaW5nIHJldHVybiBhbiBlcnJvclxuICAgICAgICAgICAgLy8gc28gdGhhdCB0aGUgdXNlciBrbm93cyBpdCB3YXMgbm90IGZvdW5kLlxuICAgICAgICAgICAgaWYgKCFtaWRkbGV3YXJlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRXhlY3V0ZSB0aGUgbWlkZGxld2FyZSBmdW5jdGlvbiB3aXRoIHRoZSBzdHJpbmcuXG4gICAgICAgICAgICByZXR1cm4gbWlkZGxld2FyZS50cmFuc2Zvcm0oc3RyaW5nLCB0aGlzLmxvY2FsZSk7XG4gICAgICAgIH0sIGAke2ludGVycG9sYXRpb25WYWx1ZX1gKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbmRSZWZlcmVuY2VzSW5UcmFuc2xhdGlvbih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIC8vIEdldCB0aGUgcmVmZXJlbmNlIHN1YnN0aXR1dGlvbnMuXG4gICAgICAgIGNvbnN0IHN1YnN0aXR1dGlvbnMgPSB0aGlzLmdldFN1YnN0aXR1dGlvbnMoJ3JlZmVyZW5jZXMnLCBbJyMoJywgJyknXSk7XG5cbiAgICAgICAgLy8gR2V0IGFsbCBtYXRjaGVzIGluIHRoZSB2YWx1ZS5cbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMuZ2V0TWF0Y2hlcyh2YWx1ZSwgc3Vic3RpdHV0aW9ucyk7XG5cbiAgICAgICAgLy8gUmVwbGFjZSBhbGwgbWF0Y2hlcyB3aXRoIHRoZSB0cmFuc2xhdGVkIHZhbHVlLlxuICAgICAgICByZXR1cm4gbWF0Y2hlcy5yZWR1Y2UoKHByZXZpb3VzLCBjdXJyZW50KSA9PiB7XG4gICAgICAgICAgICAvLyBUcnkgdG8gdHJhbnNsYXRlIHRoZSB0b2tlbi5cbiAgICAgICAgICAgIGNvbnN0IHRyYW5zbGF0ZWRUb2tlbiA9IHRoaXMudHJhbnNsYXRlKGN1cnJlbnQudG9rZW4pO1xuXG4gICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBtYXRjaCB3aXRoIHRoZSB0cmFuc2xhdGVkIHRva2VuLlxuICAgICAgICAgICAgcmV0dXJuIHByZXZpb3VzLnJlcGxhY2UoY3VycmVudC5tYXRjaCwgdHJhbnNsYXRlZFRva2VuKTtcbiAgICAgICAgfSwgdmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U3Vic3RpdHV0aW9ucyh0eXBlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZTogc3RyaW5nW10pIHtcbiAgICAgICAgY29uc3Qgc3Vic3RpdHV0aW9ucyA9ICh0aGlzLl9jb25maWdcbiAgICAgICAgICAgICYmIHRoaXMuX2NvbmZpZy5zdWJzdGl0dXRpb25zXG4gICAgICAgICAgICAmJiB0aGlzLl9jb25maWcuc3Vic3RpdHV0aW9uc1t0eXBlXSk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBzdWJzdGl0dXRpb25zLlxuICAgICAgICBjb25zdCB2YWx1ZSA9ICghc3Vic3RpdHV0aW9ucyB8fCBzdWJzdGl0dXRpb25zLmxlbmd0aCAhPT0gMilcbiAgICAgICAgICAgID8gZGVmYXVsdFZhbHVlXG4gICAgICAgICAgICA6IHN1YnN0aXR1dGlvbnM7XG5cbiAgICAgICAgLy8gRXNjYXBlIGJvdGggc3Vic3RpdHV0aW9ucyBzbyB0aGF0IHRoZXlcbiAgICAgICAgLy8gY2FuIGJlIHVzZWQuXG4gICAgICAgIGNvbnN0IGVzY2FwZSA9IC9bLiorP14ke30oKXxbXFxdXFxcXF0vZztcbiAgICAgICAgY29uc3Qgc3RhcnQgPSB2YWx1ZVswXS5yZXBsYWNlKGVzY2FwZSwgJ1xcXFwkJicpO1xuICAgICAgICBjb25zdCBlbmQgPSB2YWx1ZVsxXS5yZXBsYWNlKGVzY2FwZSwgJ1xcXFwkJicpO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgc3Vic3RpdHV0aW9ucy5cbiAgICAgICAgcmV0dXJuIHtzdGFydCwgZW5kfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJldHJpZXZlQmVzdE1hdGNoaW5nRGljdGlvbmFyeSgpIHtcbiAgICAgICAgLy8gR2V0IHRoZSBkaWN0aW9uYXJ5IGJhc2VkIG9uIHN0b3JhZ2UuXG4gICAgICAgIGNvbnN0IHN0b3JhZ2VEaWN0aW9uYXJ5ID0gdGhpcy5nZXREaWN0aW9uYXJ5RnJvbVN0b3JhZ2UoKTtcblxuICAgICAgICAvLyBHZXQgdGhlIGRpY3Rpb25hcnkgYmFzZWQgb24gdGhlIHN1cHBvcnRlZCBsYW5ndWFnZS5cbiAgICAgICAgY29uc3QgYnJvd3NlckRpY3Rpb25hcnkgPSB0aGlzLmdldEJlc3RCcm93c2VyTWF0Y2hEaWN0aW9uYXJ5KCk7XG5cbiAgICAgICAgLy8gR2V0IHRoZSBkaWN0aW9uYXJ5IGJhc2VkIG9uIHRoZSBmaXJzdCBpbmRleC5cbiAgICAgICAgY29uc3QgZmlyc3REaWN0aW9uYXJ5ID0gdGhpcy5fZGljdGlvbmFyaWVzWzBdO1xuXG4gICAgICAgIC8vIFJldHVybiB0aGUgYmVzdCBtYXRjaGluZyBkaWN0aW9uYXJ5LlxuICAgICAgICByZXR1cm4gc3RvcmFnZURpY3Rpb25hcnkgfHwgYnJvd3NlckRpY3Rpb25hcnkgfHwgZmlyc3REaWN0aW9uYXJ5O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGljdGlvbmFyeUZyb21TdG9yYWdlKCkge1xuICAgICAgICAvLyBHZXQgZGljdGlvbmFyeSBpZCBmcm9tIHRoZSBzdG9yYWdlLi5cbiAgICAgICAgY29uc3QgZGljdGlvbmFyeUlkID0gdGhpcy5fc3RvcmFnZS5jb29raWUuZ2V0PHN0cmluZz4odGhpcy5fc3RvcmFnZVRva2VuKTtcblxuICAgICAgICAvLyBSZXR1cm4gdGhlIGRpY3Rpb25hcnkgYmFzZWQgb24gdGhlIHN0b3JhZ2UgZGljdGlvbmFyeSBpZC5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2RpY3Rpb25hcmllcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gZGljdGlvbmFyeUlkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEJlc3RCcm93c2VyTWF0Y2hEaWN0aW9uYXJ5KCkge1xuICAgICAgICAvLyBMb29wIHRocm91Z2ggYWxsIGJyb3dzZXIgbGFuZ3VhZ2VzIGFuZCByZXR1cm4gdGhlXG4gICAgICAgIC8vIGJlc3QgbWF0Y2hpbmcgZGljdGlvbmFyeS5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2xhbmd1YWdlcy5hbGwubWFwKCh7Y29kZSwgcmVnaW9ufSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbGFuZ3VhZ2VDb2RlID0gW2NvZGUsIHJlZ2lvbl0uZmlsdGVyKGRhdGEgPT4gISFkYXRhKS5qb2luKCctJyk7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9kaWN0aW9uYXJpZXMuZmluZChpdGVtID0+IGl0ZW0uc3VwcG9ydGVkTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmd1YWdlQ29kZSkpO1xuICAgICAgICB9KS5maWx0ZXIoaXRlbSA9PiAhIWl0ZW0pLmZpbmQoKF8sIGluZGV4KSA9PiBpbmRleCA9PT0gMCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0VG9QYXJhbXMgPSAodG9rZW5PclBhcmFtczogc3RyaW5nIHwgTG9jYWxpemVQYXJhbXMpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbk9yUGFyYW1zICE9PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgLy8gRGVzdHJ1Y3QgdGhlIHBhcmFtcyBmcm9tIHRoZSBvYmplY3QuXG4gICAgICAgICAgICBjb25zdCB7dG9rZW4sIG9wdGlvbmFsLCBkYXRhfSA9IHRva2VuT3JQYXJhbXM7XG5cbiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBhbGwgcGFyYW1ldGVycyBhcmUgdmFsaWRcbiAgICAgICAgICAgIC8vIGJ5IHR5cGUgc2FmZSBhZGRpbmcgdGhlbS5cbiAgICAgICAgICAgIHJldHVybiB7dG9rZW46IHRva2VuLCBvcHRpb25hbDogb3B0aW9uYWwgfHwgZmFsc2UsIGRhdGE6IGRhdGEgfHwge319O1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgdGhlIHBhcmFtZXRlciBpcyBhIHN0cmluZyBmaWxsIGluIHRoZSBibGFua3MuXG4gICAgICAgIHJldHVybiB7dG9rZW46IHRva2VuT3JQYXJhbXMsIG9wdGlvbmFsOiBmYWxzZSwgZGF0YToge319O1xuICAgIH07XG5cbiAgICBwcml2YXRlIHJlbmRlckRvY3VtZW50TGFuZ3VhZ2UoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSB0aGlzLl9kb2N1bWVudD8uZG9jdW1lbnRFbGVtZW50O1xuICAgICAgICBpZiAoIWVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGVsZW1lbnQubGFuZyA9IHRoaXMuX2N1cnJlbnREaWN0aW9uYXJ5Py5zdXBwb3J0ZWRMYW5ndWFnZXM/LlswXSA/PyB0aGlzLl9jdXJyZW50RGljdGlvbmFyeT8ubG9jYWxlO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TWF0Y2hlcyA9ICh2YWx1ZTogc3RyaW5nLCBzdWJzdGl0dXRpb25zOiB7IHN0YXJ0OiBzdHJpbmcsIGVuZDogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgLy8gR2V0IHRoZSBtYXRjaGluZyBzdWJzdGl0dXRpb25zLlxuICAgICAgICBjb25zdCB7c3RhcnQsIGVuZH0gPSBzdWJzdGl0dXRpb25zO1xuXG4gICAgICAgIC8vIENvbXBvc2UgYSByZWdleCB0aGF0IHdpbGwgZmluZCB0aGUgbWF0Y2hlcy5cbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGAke3N0YXJ0fShbXiR7ZW5kfV0rKSR7ZW5kfWAsICdnJyk7XG5cbiAgICAgICAgLy8gRXhlY3V0ZSB0aGUgcmVnZXggdG8gZmluZCBtYXRjaGVzLlxuICAgICAgICBsZXQgbWF0Y2ggPSByZWdleC5leGVjKHZhbHVlKTtcbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IFtdO1xuXG4gICAgICAgIHdoaWxlIChtYXRjaCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gUHVzaCBhIG5ldyBtYXRjaC5cbiAgICAgICAgICAgIG1hdGNoZXMucHVzaCh7XG4gICAgICAgICAgICAgICAgbWF0Y2g6IG1hdGNoWzBdLFxuICAgICAgICAgICAgICAgIHRva2VuOiBtYXRjaFsxXVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIFRyeSB0byBmaW5kIG1vcmUgbWF0Y2hlcy5cbiAgICAgICAgICAgIG1hdGNoID0gcmVnZXguZXhlYyh2YWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBSZXR1cm4gdGhlIHByb2Nlc3NlZCB2YWx1ZS5cbiAgICAgICAgcmV0dXJuIG1hdGNoZXMuZmlsdGVyKGl0ZW0gPT4gISFpdGVtKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSByZWxvYWQgPSAoKSA9PiB0aGlzLl9sb2NhdGlvbj8ucmVsb2FkKCk7XG5cbn1cbiJdfQ==
@@ -70,9 +70,9 @@ export class BbLocalizeString {
70
70
  ];
71
71
  }
72
72
  }
73
- BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
74
- BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.0", type: BbLocalizeString, selector: "bb-localize-string", inputs: { substitutions: "substitutions", value: "value" }, host: { classAttribute: "bb-localize-string" }, queries: [{ propertyName: "items", predicate: BbLocalizeTemplate }], ngImport: i0, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbLocalizeTemplateOrString]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: ["bbLocalizeTemplateOrString"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalizeString, decorators: [{
73
+ BbLocalizeString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BbLocalizeString, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
74
+ BbLocalizeString.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.5", type: BbLocalizeString, selector: "bb-localize-string", inputs: { substitutions: "substitutions", value: "value" }, host: { classAttribute: "bb-localize-string" }, queries: [{ propertyName: "items", predicate: BbLocalizeTemplate }], ngImport: i0, template: "<ng-container *ngFor=\"let component of components\">\n <ng-template [bbLocalizeTemplateOrString]=\"component\">{{ component }}</ng-template>\n</ng-container>\n", styles: [".bb-localize-string{display:inline}\n"], directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: ["bbLocalizeTemplateOrString"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BbLocalizeString, decorators: [{
76
76
  type: Component,
77
77
  args: [{ selector: '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: "13.1.0", ngImport: i0, type: BbLocalizeTemplateOrString, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
19
- BbLocalizeTemplateOrString.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: { bbLocalizeTemplateOrString: "bbLocalizeTemplateOrString" }, ngImport: i0 });
20
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalizeTemplateOrString, decorators: [{
18
+ BbLocalizeTemplateOrString.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BbLocalizeTemplateOrString, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
19
+ BbLocalizeTemplateOrString.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: BbLocalizeTemplateOrString, selector: "[bbLocalizeTemplateOrString]", inputs: { bbLocalizeTemplateOrString: "bbLocalizeTemplateOrString" }, ngImport: i0 });
20
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.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: "13.1.0", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11
- BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.1.0", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 });
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.0", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
10
+ BbLocalizeTemplate.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BbLocalizeTemplate, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
11
+ BbLocalizeTemplate.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.5", type: BbLocalizeTemplate, selector: "[bbLocalizeTemplate]", inputs: { name: ["bbLocalizeTemplate", "name"] }, ngImport: i0 });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.5", ngImport: i0, type: BbLocalizeTemplate, decorators: [{
13
13
  type: Directive,
14
14
  args: [{
15
15
  selector: '[bbLocalizeTemplate]'