@bravura/ui 5.2.4 → 6.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/README.md +1 -0
  3. package/_index.scss +5 -5
  4. package/fesm2022/bravura-ui-alert-testing.mjs.map +1 -1
  5. package/fesm2022/bravura-ui-alert.mjs +13 -13
  6. package/fesm2022/bravura-ui-alert.mjs.map +1 -1
  7. package/fesm2022/bravura-ui-behavior.mjs +25 -21
  8. package/fesm2022/bravura-ui-behavior.mjs.map +1 -1
  9. package/fesm2022/bravura-ui-clip-note.mjs +15 -14
  10. package/fesm2022/bravura-ui-clip-note.mjs.map +1 -1
  11. package/fesm2022/bravura-ui-common.mjs +5 -5
  12. package/fesm2022/bravura-ui-common.mjs.map +1 -1
  13. package/fesm2022/bravura-ui-currency-input.mjs +10 -9
  14. package/fesm2022/bravura-ui-currency-input.mjs.map +1 -1
  15. package/fesm2022/bravura-ui-decimal-input.mjs +10 -9
  16. package/fesm2022/bravura-ui-decimal-input.mjs.map +1 -1
  17. package/fesm2022/bravura-ui-discrete-input.mjs +9 -9
  18. package/fesm2022/bravura-ui-discrete-input.mjs.map +1 -1
  19. package/fesm2022/bravura-ui-file-upload.mjs +12 -12
  20. package/fesm2022/bravura-ui-file-upload.mjs.map +1 -1
  21. package/fesm2022/bravura-ui-form-field.mjs +14 -13
  22. package/fesm2022/bravura-ui-form-field.mjs.map +1 -1
  23. package/fesm2022/bravura-ui-icon-font.mjs +10 -9
  24. package/fesm2022/bravura-ui-icon-font.mjs.map +1 -1
  25. package/fesm2022/bravura-ui-panel.mjs +18 -17
  26. package/fesm2022/bravura-ui-panel.mjs.map +1 -1
  27. package/fesm2022/bravura-ui-phone-number.mjs +20 -17
  28. package/fesm2022/bravura-ui-phone-number.mjs.map +1 -1
  29. package/fesm2022/bravura-ui-radio-panel-testing.mjs.map +1 -1
  30. package/fesm2022/bravura-ui-radio-panel.mjs +14 -14
  31. package/fesm2022/bravura-ui-radio-panel.mjs.map +1 -1
  32. package/fesm2022/bravura-ui-selection-panel.mjs +14 -13
  33. package/fesm2022/bravura-ui-selection-panel.mjs.map +1 -1
  34. package/fesm2022/bravura-ui-skeletons.mjs +18 -13
  35. package/fesm2022/bravura-ui-skeletons.mjs.map +1 -1
  36. package/fesm2022/bravura-ui-stepper.mjs +22 -20
  37. package/fesm2022/bravura-ui-stepper.mjs.map +1 -1
  38. package/fesm2022/bravura-ui-tooltip.mjs +14 -13
  39. package/fesm2022/bravura-ui-tooltip.mjs.map +1 -1
  40. package/m3-theme.scss +155 -155
  41. package/package.json +15 -55
  42. package/radio-panel/_radio-panel-theme.scss +11 -11
  43. package/selection-panel/_selection-panel-theme.scss +33 -33
  44. package/stepper/_stepper-theme.scss +20 -20
  45. package/theme/_ui-theme-legacy.scss +112 -112
  46. package/theme/_ui-theme.scss +101 -101
  47. package/esm2022/alert/alert-container.component.mjs +0 -207
  48. package/esm2022/alert/alert-message.component.mjs +0 -101
  49. package/esm2022/alert/alert.module.mjs +0 -22
  50. package/esm2022/alert/bravura-ui-alert.mjs +0 -5
  51. package/esm2022/alert/public-api.mjs +0 -2
  52. package/esm2022/alert/testing/bravura-ui-alert-testing.mjs +0 -5
  53. package/esm2022/alert/testing/test-api.mjs +0 -44
  54. package/esm2022/behavior/await.directive.mjs +0 -133
  55. package/esm2022/behavior/behavior.module.mjs +0 -37
  56. package/esm2022/behavior/bravura-ui-behavior.mjs +0 -5
  57. package/esm2022/behavior/observe-content-class.directive.mjs +0 -63
  58. package/esm2022/behavior/public-api.mjs +0 -6
  59. package/esm2022/behavior/sizing-monitor.directive.mjs +0 -31
  60. package/esm2022/behavior/sizing.directive.mjs +0 -256
  61. package/esm2022/bravura-ui.mjs +0 -5
  62. package/esm2022/clip-note/bravura-ui-clip-note.mjs +0 -5
  63. package/esm2022/clip-note/clip-note.component.mjs +0 -216
  64. package/esm2022/clip-note/clip-note.directive.mjs +0 -141
  65. package/esm2022/clip-note/clip-note.module.mjs +0 -32
  66. package/esm2022/clip-note/public-api.mjs +0 -2
  67. package/esm2022/common/bravura-ui-common.mjs +0 -5
  68. package/esm2022/common/common-utils.mjs +0 -34
  69. package/esm2022/common/common.module.mjs +0 -53
  70. package/esm2022/common/public-api.mjs +0 -3
  71. package/esm2022/currency-input/bravura-ui-currency-input.mjs +0 -5
  72. package/esm2022/currency-input/currency-input.directive.mjs +0 -276
  73. package/esm2022/currency-input/currency-input.module.mjs +0 -19
  74. package/esm2022/currency-input/public-api.mjs +0 -2
  75. package/esm2022/decimal-input/bravura-ui-decimal-input.mjs +0 -5
  76. package/esm2022/decimal-input/decimal-input.directive.mjs +0 -122
  77. package/esm2022/decimal-input/decimal-input.module.mjs +0 -19
  78. package/esm2022/decimal-input/public-api.mjs +0 -2
  79. package/esm2022/discrete-input/bravura-ui-discrete-input.mjs +0 -5
  80. package/esm2022/discrete-input/discrete-input.component.mjs +0 -337
  81. package/esm2022/discrete-input/discrete-input.module.mjs +0 -21
  82. package/esm2022/discrete-input/public-api.mjs +0 -3
  83. package/esm2022/file-upload/bravura-ui-file-upload.mjs +0 -5
  84. package/esm2022/file-upload/file-upload.component.mjs +0 -400
  85. package/esm2022/file-upload/file-upload.module.mjs +0 -44
  86. package/esm2022/file-upload/file-upload.service.mjs +0 -29
  87. package/esm2022/file-upload/public-api.mjs +0 -7
  88. package/esm2022/form-field/bravura-ui-form-field.mjs +0 -5
  89. package/esm2022/form-field/form-field.component.mjs +0 -82
  90. package/esm2022/form-field/form-field.module.mjs +0 -33
  91. package/esm2022/form-field/public-api.mjs +0 -3
  92. package/esm2022/icon-font/bravura-ui-icon-font.mjs +0 -5
  93. package/esm2022/icon-font/icon-font.module.mjs +0 -22
  94. package/esm2022/icon-font/icon.directive.mjs +0 -102
  95. package/esm2022/icon-font/public-api.mjs +0 -4
  96. package/esm2022/icon-font/utilities.mjs +0 -51
  97. package/esm2022/panel/bravura-ui-panel.mjs +0 -5
  98. package/esm2022/panel/panel-section.component.mjs +0 -41
  99. package/esm2022/panel/panel.component.mjs +0 -87
  100. package/esm2022/panel/panel.module.mjs +0 -23
  101. package/esm2022/panel/public-api.mjs +0 -2
  102. package/esm2022/panel/tinted.directive.mjs +0 -60
  103. package/esm2022/phone-number/bravura-ui-phone-number.mjs +0 -5
  104. package/esm2022/phone-number/phone-number.directive.mjs +0 -188
  105. package/esm2022/phone-number/phone-number.module.mjs +0 -24
  106. package/esm2022/phone-number/phone-number.pipe.mjs +0 -47
  107. package/esm2022/phone-number/phone-number.validator.mjs +0 -64
  108. package/esm2022/phone-number/public-api.mjs +0 -2
  109. package/esm2022/public-api.mjs +0 -2
  110. package/esm2022/radio-panel/bravura-ui-radio-panel.mjs +0 -5
  111. package/esm2022/radio-panel/public-api.mjs +0 -4
  112. package/esm2022/radio-panel/radio-panel-item.component.mjs +0 -93
  113. package/esm2022/radio-panel/radio-panel.component.mjs +0 -81
  114. package/esm2022/radio-panel/radio-panel.module.mjs +0 -25
  115. package/esm2022/radio-panel/testing/bravura-ui-radio-panel-testing.mjs +0 -5
  116. package/esm2022/radio-panel/testing/test-api.mjs +0 -46
  117. package/esm2022/selection-panel/bravura-ui-selection-panel.mjs +0 -5
  118. package/esm2022/selection-panel/public-api.mjs +0 -4
  119. package/esm2022/selection-panel/selection-panel-item.component.mjs +0 -163
  120. package/esm2022/selection-panel/selection-panel.directive.mjs +0 -119
  121. package/esm2022/selection-panel/selection-panel.module.mjs +0 -23
  122. package/esm2022/skeletons/bravura-ui-skeletons.mjs +0 -5
  123. package/esm2022/skeletons/public-api.mjs +0 -4
  124. package/esm2022/skeletons/skeleton-loader-presets.directive.mjs +0 -83
  125. package/esm2022/skeletons/skeleton-loader.component.mjs +0 -76
  126. package/esm2022/skeletons/skeletons.module.mjs +0 -35
  127. package/esm2022/stepper/bravura-ui-stepper.mjs +0 -5
  128. package/esm2022/stepper/public-api.mjs +0 -4
  129. package/esm2022/stepper/step-label-top.directive.mjs +0 -40
  130. package/esm2022/stepper/stepper-animation.mjs +0 -23
  131. package/esm2022/stepper/stepper.component.mjs +0 -178
  132. package/esm2022/stepper/stepper.module.mjs +0 -53
  133. package/esm2022/tooltip/bravura-ui-tooltip.mjs +0 -5
  134. package/esm2022/tooltip/public-api.mjs +0 -4
  135. package/esm2022/tooltip/tooltip.component.mjs +0 -63
  136. package/esm2022/tooltip/tooltip.directive.mjs +0 -150
  137. package/esm2022/tooltip/tooltip.module.mjs +0 -25
@@ -1,83 +0,0 @@
1
- import { Directive, Host, Inject, InjectionToken, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "./skeleton-loader.component";
4
- export const SKELETON_PRESETS = new InjectionToken('bui-skeleton-presets');
5
- export const DEFAULT_PRESETS = {
6
- facebook: {
7
- viewBox: '0 0 425 124',
8
- content: `
9
- <rect x="48" y="8" rx="3" ry="3" width="88" height="6" />
10
- <rect x="48" y="26" rx="3" ry="3" width="52" height="6" />
11
- <rect x="0" y="56" rx="3" ry="3" width="410" height="6" />
12
- <rect x="0" y="72" rx="3" ry="3" width="380" height="6" />
13
- <rect x="0" y="88" rx="3" ry="3" width="178" height="6" />
14
- <circle cx="20" cy="20" r="20" />
15
- `
16
- },
17
- code: {
18
- viewBox: '0 0 340 84',
19
- content: `
20
- <rect x="0" y="0" rx="3" ry="3" width="67" height="11" />
21
- <rect x="76" y="0" rx="3" ry="3" width="140" height="11" />
22
- <rect x="127" y="48" rx="3" ry="3" width="53" height="11" />
23
- <rect x="187" y="48" rx="3" ry="3" width="72" height="11" />
24
- <rect x="18" y="48" rx="3" ry="3" width="100" height="11" />
25
- <rect x="0" y="71" rx="3" ry="3" width="37" height="11" />
26
- <rect x="18" y="23" rx="3" ry="3" width="140" height="11" />
27
- <rect x="166" y="23" rx="3" ry="3" width="173" height="11" />
28
- `
29
- },
30
- instagram: {
31
- viewBox: '0 0 400 460',
32
- content: `
33
- <circle cx="31" cy="31" r="15" />
34
- <rect x="58" y="18" rx="2" ry="2" width="140" height="10" />
35
- <rect x="58" y="34" rx="2" ry="2" width="140" height="10" />
36
- <rect x="0" y="60" rx="2" ry="2" width="400" height="400" />
37
- `
38
- },
39
- bulletList: {
40
- viewBox: '0 0 250 150',
41
- content: `
42
- <circle cx="10" cy="20" r="8" />
43
- <rect x="25" y="15" rx="5" ry="5" width="220" height="10" />
44
- <circle cx="10" cy="50" r="8" />
45
- <rect x="25" y="45" rx="5" ry="5" width="220" height="10" />
46
- <circle cx="10" cy="80" r="8" />
47
- <rect x="25" y="75" rx="5" ry="5" width="220" height="10" />
48
- <circle cx="10" cy="110" r="8" />
49
- <rect x="25" y="105" rx="5" ry="5" width="220" height="10" />
50
- `
51
- }
52
- };
53
- export class SkeletonLoaderPresetsDirective {
54
- constructor(_skeletonComponent, _elementRef, _presetList) {
55
- this._skeletonComponent = _skeletonComponent;
56
- this._elementRef = _elementRef;
57
- this._allPresets = _presetList.reduce((p, c) => ({ ...p, ...c }), {});
58
- }
59
- ngAfterViewChecked() {
60
- const preset = this._allPresets[(this.preset || '')];
61
- if (preset) {
62
- const clipPathElem = this._elementRef.nativeElement.querySelector(`[id='${this._skeletonComponent.idClip}']`);
63
- this._skeletonComponent.viewBox = preset.viewBox;
64
- clipPathElem.innerHTML = preset.content;
65
- }
66
- }
67
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SkeletonLoaderPresetsDirective, deps: [{ token: i1.SkeletonLoaderComponent, host: true }, { token: i0.ElementRef }, { token: SKELETON_PRESETS }], target: i0.ɵɵFactoryTarget.Directive }); }
68
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: SkeletonLoaderPresetsDirective, selector: "bui-skeleton[preset]", inputs: { preset: "preset" }, ngImport: i0 }); }
69
- }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SkeletonLoaderPresetsDirective, decorators: [{
71
- type: Directive,
72
- args: [{
73
- selector: 'bui-skeleton[preset]'
74
- }]
75
- }], ctorParameters: () => [{ type: i1.SkeletonLoaderComponent, decorators: [{
76
- type: Host
77
- }] }, { type: i0.ElementRef }, { type: undefined, decorators: [{
78
- type: Inject,
79
- args: [SKELETON_PRESETS]
80
- }] }], propDecorators: { preset: [{
81
- type: Input
82
- }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tbG9hZGVyLXByZXNldHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc2tlbGV0b25zL3NrZWxldG9uLWxvYWRlci1wcmVzZXRzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFNBQVMsRUFBYyxJQUFJLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVU3RyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGNBQWMsQ0FBa0Isc0JBQXNCLENBQUMsQ0FBQztBQUU1RixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQW9CO0lBQy9DLFFBQVEsRUFBRTtRQUNULE9BQU8sRUFBRSxhQUFhO1FBQ3RCLE9BQU8sRUFBRTs7Ozs7OztHQU9SO0tBQ0Q7SUFDRCxJQUFJLEVBQUU7UUFDTCxPQUFPLEVBQUUsWUFBWTtRQUNyQixPQUFPLEVBQUU7Ozs7Ozs7OztHQVNSO0tBQ0Q7SUFDRCxTQUFTLEVBQUU7UUFDVixPQUFPLEVBQUUsYUFBYTtRQUN0QixPQUFPLEVBQUU7Ozs7O0dBS1I7S0FDRDtJQUNELFVBQVUsRUFBRTtRQUNYLE9BQU8sRUFBRSxhQUFhO1FBQ3RCLE9BQU8sRUFBRTs7Ozs7Ozs7O0dBU1I7S0FDRDtDQUNELENBQUM7QUFLRixNQUFNLE9BQU8sOEJBQThCO0lBTzFDLFlBQ2lCLGtCQUEyQyxFQUNuRCxXQUFvQyxFQUNsQixXQUE4QjtRQUZ4Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXlCO1FBQ25ELGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUc1QyxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxrQkFBa0I7UUFDakIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFRLENBQUMsQ0FBQztRQUM1RCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1osTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFFBQVEsSUFBSSxDQUFDLGtCQUFrQixDQUFDLE1BQU0sSUFBSSxDQUFFLENBQUM7WUFDL0csSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1lBQ2pELFlBQVksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN6QyxDQUFDO0lBQ0YsQ0FBQzs4R0F0QlcsOEJBQThCLCtGQVVqQyxnQkFBZ0I7a0dBVmIsOEJBQThCOzsyRkFBOUIsOEJBQThCO2tCQUgxQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7aUJBQ2hDOzswQkFTRSxJQUFJOzswQkFFSixNQUFNOzJCQUFDLGdCQUFnQjt5Q0FQekIsTUFBTTtzQkFETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0LCBJbmplY3QsIEluamVjdGlvblRva2VuLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTa2VsZXRvbkxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudCc7XHJcblxyXG5leHBvcnQgdHlwZSBTa2VsZXRvblByZXNldCA9IHtcclxuXHR2aWV3Qm94OiBzdHJpbmc7XHJcblx0Y29udGVudDogc3RyaW5nO1xyXG59O1xyXG5cclxuZXhwb3J0IHR5cGUgU2tlbGV0b25QcmVzZXRzID0geyBba2V5OiBzdHJpbmddOiBTa2VsZXRvblByZXNldCB9O1xyXG5cclxuZXhwb3J0IGNvbnN0IFNLRUxFVE9OX1BSRVNFVFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48U2tlbGV0b25QcmVzZXRzPignYnVpLXNrZWxldG9uLXByZXNldHMnKTtcclxuXHJcbmV4cG9ydCBjb25zdCBERUZBVUxUX1BSRVNFVFM6IFNrZWxldG9uUHJlc2V0cyA9IHtcclxuXHRmYWNlYm9vazoge1xyXG5cdFx0dmlld0JveDogJzAgMCA0MjUgMTI0JyxcclxuXHRcdGNvbnRlbnQ6IGBcclxuXHRcdDxyZWN0IHg9XCI0OFwiIHk9XCI4XCIgcng9XCIzXCIgcnk9XCIzXCIgd2lkdGg9XCI4OFwiIGhlaWdodD1cIjZcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCI0OFwiIHk9XCIyNlwiIHJ4PVwiM1wiIHJ5PVwiM1wiIHdpZHRoPVwiNTJcIiBoZWlnaHQ9XCI2XCIgLz4gXHJcblx0XHQ8cmVjdCB4PVwiMFwiIHk9XCI1NlwiIHJ4PVwiM1wiIHJ5PVwiM1wiIHdpZHRoPVwiNDEwXCIgaGVpZ2h0PVwiNlwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjBcIiB5PVwiNzJcIiByeD1cIjNcIiByeT1cIjNcIiB3aWR0aD1cIjM4MFwiIGhlaWdodD1cIjZcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCIwXCIgeT1cIjg4XCIgcng9XCIzXCIgcnk9XCIzXCIgd2lkdGg9XCIxNzhcIiBoZWlnaHQ9XCI2XCIgLz4gXHJcblx0XHQ8Y2lyY2xlIGN4PVwiMjBcIiBjeT1cIjIwXCIgcj1cIjIwXCIgLz5cclxuXHRcdGBcclxuXHR9LFxyXG5cdGNvZGU6IHtcclxuXHRcdHZpZXdCb3g6ICcwIDAgMzQwIDg0JyxcclxuXHRcdGNvbnRlbnQ6IGBcclxuXHRcdDxyZWN0IHg9XCIwXCIgeT1cIjBcIiByeD1cIjNcIiByeT1cIjNcIiB3aWR0aD1cIjY3XCIgaGVpZ2h0PVwiMTFcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCI3NlwiIHk9XCIwXCIgcng9XCIzXCIgcnk9XCIzXCIgd2lkdGg9XCIxNDBcIiBoZWlnaHQ9XCIxMVwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjEyN1wiIHk9XCI0OFwiIHJ4PVwiM1wiIHJ5PVwiM1wiIHdpZHRoPVwiNTNcIiBoZWlnaHQ9XCIxMVwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjE4N1wiIHk9XCI0OFwiIHJ4PVwiM1wiIHJ5PVwiM1wiIHdpZHRoPVwiNzJcIiBoZWlnaHQ9XCIxMVwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjE4XCIgeT1cIjQ4XCIgcng9XCIzXCIgcnk9XCIzXCIgd2lkdGg9XCIxMDBcIiBoZWlnaHQ9XCIxMVwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjBcIiB5PVwiNzFcIiByeD1cIjNcIiByeT1cIjNcIiB3aWR0aD1cIjM3XCIgaGVpZ2h0PVwiMTFcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCIxOFwiIHk9XCIyM1wiIHJ4PVwiM1wiIHJ5PVwiM1wiIHdpZHRoPVwiMTQwXCIgaGVpZ2h0PVwiMTFcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCIxNjZcIiB5PVwiMjNcIiByeD1cIjNcIiByeT1cIjNcIiB3aWR0aD1cIjE3M1wiIGhlaWdodD1cIjExXCIgLz5cclxuXHRcdGBcclxuXHR9LFxyXG5cdGluc3RhZ3JhbToge1xyXG5cdFx0dmlld0JveDogJzAgMCA0MDAgNDYwJyxcclxuXHRcdGNvbnRlbnQ6IGBcclxuXHRcdDxjaXJjbGUgY3g9XCIzMVwiIGN5PVwiMzFcIiByPVwiMTVcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCI1OFwiIHk9XCIxOFwiIHJ4PVwiMlwiIHJ5PVwiMlwiIHdpZHRoPVwiMTQwXCIgaGVpZ2h0PVwiMTBcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCI1OFwiIHk9XCIzNFwiIHJ4PVwiMlwiIHJ5PVwiMlwiIHdpZHRoPVwiMTQwXCIgaGVpZ2h0PVwiMTBcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCIwXCIgeT1cIjYwXCIgcng9XCIyXCIgcnk9XCIyXCIgd2lkdGg9XCI0MDBcIiBoZWlnaHQ9XCI0MDBcIiAvPlxyXG5cdFx0YFxyXG5cdH0sXHJcblx0YnVsbGV0TGlzdDoge1xyXG5cdFx0dmlld0JveDogJzAgMCAyNTAgMTUwJyxcclxuXHRcdGNvbnRlbnQ6IGBcclxuXHRcdDxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiMjBcIiByPVwiOFwiIC8+IFxyXG5cdFx0PHJlY3QgeD1cIjI1XCIgeT1cIjE1XCIgcng9XCI1XCIgcnk9XCI1XCIgd2lkdGg9XCIyMjBcIiBoZWlnaHQ9XCIxMFwiIC8+IFxyXG5cdFx0PGNpcmNsZSBjeD1cIjEwXCIgY3k9XCI1MFwiIHI9XCI4XCIgLz4gXHJcblx0XHQ8cmVjdCB4PVwiMjVcIiB5PVwiNDVcIiByeD1cIjVcIiByeT1cIjVcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjEwXCIgLz4gXHJcblx0XHQ8Y2lyY2xlIGN4PVwiMTBcIiBjeT1cIjgwXCIgcj1cIjhcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCIyNVwiIHk9XCI3NVwiIHJ4PVwiNVwiIHJ5PVwiNVwiIHdpZHRoPVwiMjIwXCIgaGVpZ2h0PVwiMTBcIiAvPiBcclxuXHRcdDxjaXJjbGUgY3g9XCIxMFwiIGN5PVwiMTEwXCIgcj1cIjhcIiAvPiBcclxuXHRcdDxyZWN0IHg9XCIyNVwiIHk9XCIxMDVcIiByeD1cIjVcIiByeT1cIjVcIiB3aWR0aD1cIjIyMFwiIGhlaWdodD1cIjEwXCIgLz5cclxuXHRcdGBcclxuXHR9XHJcbn07XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuXHRzZWxlY3RvcjogJ2J1aS1za2VsZXRvbltwcmVzZXRdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2tlbGV0b25Mb2FkZXJQcmVzZXRzRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3Q2hlY2tlZCB7XHJcblx0LyoqIFNlbGVjdCB0aGUgU1ZHIGVsZW1lbnRzIGZyb20gb25lIG9mIHRoZSBwcmVzZXRzLiAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHJlc2V0Pzogc3RyaW5nO1xyXG5cclxuXHRwcml2YXRlIF9hbGxQcmVzZXRzOiBTa2VsZXRvblByZXNldHM7XHJcblxyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0QEhvc3QoKSBwcml2YXRlIF9za2VsZXRvbkNvbXBvbmVudDogU2tlbGV0b25Mb2FkZXJDb21wb25lbnQsXHJcblx0XHRwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuXHRcdEBJbmplY3QoU0tFTEVUT05fUFJFU0VUUykgX3ByZXNldExpc3Q6IFNrZWxldG9uUHJlc2V0c1tdXHJcblx0KSB7XHJcblx0XHR0aGlzLl9hbGxQcmVzZXRzID0gX3ByZXNldExpc3QucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCAuLi5jIH0pLCB7fSk7XHJcblx0fVxyXG5cclxuXHRuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XHJcblx0XHRjb25zdCBwcmVzZXQgPSB0aGlzLl9hbGxQcmVzZXRzWyh0aGlzLnByZXNldCB8fCAnJykgYXMgYW55XTtcclxuXHRcdGlmIChwcmVzZXQpIHtcclxuXHRcdFx0Y29uc3QgY2xpcFBhdGhFbGVtID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoYFtpZD0nJHt0aGlzLl9za2VsZXRvbkNvbXBvbmVudC5pZENsaXB9J11gKSE7XHJcblx0XHRcdHRoaXMuX3NrZWxldG9uQ29tcG9uZW50LnZpZXdCb3ggPSBwcmVzZXQudmlld0JveDtcclxuXHRcdFx0Y2xpcFBhdGhFbGVtLmlubmVySFRNTCA9IHByZXNldC5jb250ZW50O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG4iXX0=
@@ -1,76 +0,0 @@
1
- import { Component } from '@angular/core';
2
- import { ContentLoaderComponent } from '@ngneat/content-loader';
3
- import { Subject } from 'rxjs';
4
- import { takeUntil } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/cdk/bidi";
7
- /**
8
- * Use the [Create React Content Loader](https://skeletonreact.com/) to create your custom skeleton loaders;
9
- *
10
- * Add the resulting `svg` elements as the content children of a `<bui-skeleton>` component.
11
- *
12
- * The component `bui-skeleton` extends `content-loader` from [ngneat/content-loader](https://github.com/ngneat/content-loader).
13
- *
14
- * You can also choose from one of the presets registered by the `SKELETON_PRESETS` injection token.
15
- *
16
- * The following code snippets demonstrate how to register a preset:
17
- *
18
- * ```typescript
19
- * @import {SkeletonsModule} from '@bravura/ui/skeletons';
20
- * @import htmlWithSvgElements from './custom-loader1.html';
21
- *
22
- * @NgModule({
23
- * imports: [SkeletonsModule.forConfig({ presets: {
24
- * custom1: { viewBox: '0 0 400 100', content: htmlWithSvgElements }
25
- * }})]
26
- * })
27
- * export class MyModule {}
28
- * ```
29
- *
30
- * custom-loader1.html:
31
- *
32
- * ```html
33
- * <rect x="50" y="6" rx="4" ry="4" width="343" height="38" />
34
- * <rect x="8" y="6" rx="4" ry="4" width="35" height="38" />
35
- * ```
36
- */
37
- export class SkeletonLoaderComponent extends ContentLoaderComponent {
38
- constructor(elemRef, _cdRef, _dir) {
39
- super();
40
- this._cdRef = _cdRef;
41
- this._dir = _dir;
42
- this._destroyed$ = new Subject();
43
- elemRef.nativeElement.classList.add('bui-host');
44
- this.backgroundColor = 'rgba(128,128,128,0.2)';
45
- this.foregroundColor = 'rgba(128,128,128,0.1)';
46
- this.rtl = this._dir.value === 'rtl';
47
- this._dir.change.pipe(takeUntil(this._destroyed$)).subscribe(v => {
48
- this.style = {};
49
- this.rtl = v === 'rtl';
50
- this.ngOnInit();
51
- this._cdRef.markForCheck();
52
- });
53
- }
54
- ngOnDestroy() {
55
- this._destroyed$.next();
56
- this._destroyed$.complete();
57
- }
58
- ngOnChanges(changes) {
59
- if (Object.keys(changes).some(k => changes[k] && !changes[k].isFirstChange())) {
60
- super.ngOnInit();
61
- this._cdRef.markForCheck();
62
- }
63
- }
64
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SkeletonLoaderComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Directionality }], target: i0.ɵɵFactoryTarget.Component }); }
65
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: SkeletonLoaderComponent, selector: "bui-skeleton", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: '', isInline: true }); }
66
- }
67
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SkeletonLoaderComponent, decorators: [{
68
- type: Component,
69
- args: [{ selector: 'bui-skeleton', template: '' }]
70
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Directionality }] });
71
- const componentType = SkeletonLoaderComponent;
72
- const superType = ContentLoaderComponent;
73
- Object.keys(superType.ɵcmp)
74
- .filter(k => !['selectors', 'type'].includes(k))
75
- .forEach(k => (componentType.ɵcmp[k] = superType.ɵcmp[k]));
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NrZWxldG9ucy9za2VsZXRvbi1sb2FkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBcUIsU0FBUyxFQUFtRCxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBRTNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZCRztBQUVILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxzQkFBc0I7SUFHbEUsWUFBWSxPQUFnQyxFQUFVLE1BQXlCLEVBQVUsSUFBb0I7UUFDNUcsS0FBSyxFQUFFLENBQUM7UUFENkMsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFBVSxTQUFJLEdBQUosSUFBSSxDQUFnQjtRQUZyRyxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFLekMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxlQUFlLEdBQUcsdUJBQXVCLENBQUM7UUFDL0MsSUFBSSxDQUFDLGVBQWUsR0FBRyx1QkFBdUIsQ0FBQztRQUMvQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQztRQUNyQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNoRSxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsS0FBSyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDNUIsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsV0FBVztRQUNWLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2pDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQy9FLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQzVCLENBQUM7SUFDRixDQUFDOzhHQTVCVyx1QkFBdUI7a0dBQXZCLHVCQUF1QixnR0FEYSxFQUFFOzsyRkFDdEMsdUJBQXVCO2tCQURuQyxTQUFTO21CQUFDLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFOztBQWdDckQsTUFBTSxhQUFhLEdBQVEsdUJBQXVCLENBQUM7QUFDbkQsTUFBTSxTQUFTLEdBQVEsc0JBQXNCLENBQUM7QUFFOUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO0tBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQy9DLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb250ZW50TG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnQG5nbmVhdC9jb250ZW50LWxvYWRlcic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuLyoqXHJcbiAqIFVzZSB0aGUgW0NyZWF0ZSBSZWFjdCBDb250ZW50IExvYWRlcl0oaHR0cHM6Ly9za2VsZXRvbnJlYWN0LmNvbS8pIHRvIGNyZWF0ZSB5b3VyIGN1c3RvbSBza2VsZXRvbiBsb2FkZXJzO1xyXG4gKlxyXG4gKiBBZGQgdGhlIHJlc3VsdGluZyBgc3ZnYCBlbGVtZW50cyBhcyB0aGUgY29udGVudCBjaGlsZHJlbiBvZiBhIGA8YnVpLXNrZWxldG9uPmAgY29tcG9uZW50LlxyXG4gKlxyXG4gKiBUaGUgY29tcG9uZW50IGBidWktc2tlbGV0b25gIGV4dGVuZHMgYGNvbnRlbnQtbG9hZGVyYCBmcm9tIFtuZ25lYXQvY29udGVudC1sb2FkZXJdKGh0dHBzOi8vZ2l0aHViLmNvbS9uZ25lYXQvY29udGVudC1sb2FkZXIpLlxyXG4gKlxyXG4gKiBZb3UgY2FuIGFsc28gY2hvb3NlIGZyb20gb25lIG9mIHRoZSBwcmVzZXRzIHJlZ2lzdGVyZWQgYnkgdGhlIGBTS0VMRVRPTl9QUkVTRVRTYCBpbmplY3Rpb24gdG9rZW4uXHJcbiAqXHJcbiAqIFRoZSBmb2xsb3dpbmcgY29kZSBzbmlwcGV0cyBkZW1vbnN0cmF0ZSBob3cgdG8gcmVnaXN0ZXIgYSBwcmVzZXQ6XHJcbiAqXHJcbiAqIGBgYHR5cGVzY3JpcHRcclxuICogQGltcG9ydCB7U2tlbGV0b25zTW9kdWxlfSBmcm9tICdAYnJhdnVyYS91aS9za2VsZXRvbnMnO1xyXG4gKiBAaW1wb3J0IGh0bWxXaXRoU3ZnRWxlbWVudHMgZnJvbSAnLi9jdXN0b20tbG9hZGVyMS5odG1sJztcclxuICpcclxuICogQE5nTW9kdWxlKHtcclxuICogICBpbXBvcnRzOiBbU2tlbGV0b25zTW9kdWxlLmZvckNvbmZpZyh7IHByZXNldHM6IHtcclxuICogICAgIGN1c3RvbTE6IHsgdmlld0JveDogJzAgMCA0MDAgMTAwJywgY29udGVudDogaHRtbFdpdGhTdmdFbGVtZW50cyB9XHJcbiAqICAgfX0pXVxyXG4gKiB9KVxyXG4gKiBleHBvcnQgY2xhc3MgTXlNb2R1bGUge31cclxuICogYGBgXHJcbiAqXHJcbiAqIGN1c3RvbS1sb2FkZXIxLmh0bWw6XHJcbiAqXHJcbiAqIGBgYGh0bWxcclxuICogPHJlY3QgeD1cIjUwXCIgeT1cIjZcIiByeD1cIjRcIiByeT1cIjRcIiB3aWR0aD1cIjM0M1wiIGhlaWdodD1cIjM4XCIgLz5cclxuICogPHJlY3QgeD1cIjhcIiB5PVwiNlwiIHJ4PVwiNFwiIHJ5PVwiNFwiIHdpZHRoPVwiMzVcIiBoZWlnaHQ9XCIzOFwiIC8+XHJcbiAqIGBgYFxyXG4gKi9cclxuQENvbXBvbmVudCh7IHNlbGVjdG9yOiAnYnVpLXNrZWxldG9uJywgdGVtcGxhdGU6ICcnIH0pXHJcbmV4cG9ydCBjbGFzcyBTa2VsZXRvbkxvYWRlckNvbXBvbmVudCBleHRlbmRzIENvbnRlbnRMb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblx0cHJpdmF0ZSBfZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG5cdGNvbnN0cnVjdG9yKGVsZW1SZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBwcml2YXRlIF9jZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX2RpcjogRGlyZWN0aW9uYWxpdHkpIHtcclxuXHRcdHN1cGVyKCk7XHJcblxyXG5cdFx0ZWxlbVJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoJ2J1aS1ob3N0Jyk7XHJcblx0XHR0aGlzLmJhY2tncm91bmRDb2xvciA9ICdyZ2JhKDEyOCwxMjgsMTI4LDAuMiknO1xyXG5cdFx0dGhpcy5mb3JlZ3JvdW5kQ29sb3IgPSAncmdiYSgxMjgsMTI4LDEyOCwwLjEpJztcclxuXHRcdHRoaXMucnRsID0gdGhpcy5fZGlyLnZhbHVlID09PSAncnRsJztcclxuXHRcdHRoaXMuX2Rpci5jaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkJCkpLnN1YnNjcmliZSh2ID0+IHtcclxuXHRcdFx0dGhpcy5zdHlsZSA9IHt9O1xyXG5cdFx0XHR0aGlzLnJ0bCA9IHYgPT09ICdydGwnO1xyXG5cdFx0XHR0aGlzLm5nT25Jbml0KCk7XHJcblx0XHRcdHRoaXMuX2NkUmVmLm1hcmtGb3JDaGVjaygpO1xyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuX2Rlc3Ryb3llZCQubmV4dCgpO1xyXG5cdFx0dGhpcy5fZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xyXG5cdH1cclxuXHJcblx0bmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG5cdFx0aWYgKE9iamVjdC5rZXlzKGNoYW5nZXMpLnNvbWUoayA9PiBjaGFuZ2VzW2tdICYmICFjaGFuZ2VzW2tdLmlzRmlyc3RDaGFuZ2UoKSkpIHtcclxuXHRcdFx0c3VwZXIubmdPbkluaXQoKTtcclxuXHRcdFx0dGhpcy5fY2RSZWYubWFya0ZvckNoZWNrKCk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5jb25zdCBjb21wb25lbnRUeXBlOiBhbnkgPSBTa2VsZXRvbkxvYWRlckNvbXBvbmVudDtcclxuY29uc3Qgc3VwZXJUeXBlOiBhbnkgPSBDb250ZW50TG9hZGVyQ29tcG9uZW50O1xyXG5cclxuT2JqZWN0LmtleXMoc3VwZXJUeXBlLsm1Y21wKVxyXG5cdC5maWx0ZXIoayA9PiAhWydzZWxlY3RvcnMnLCAndHlwZSddLmluY2x1ZGVzKGspKVxyXG5cdC5mb3JFYWNoKGsgPT4gKGNvbXBvbmVudFR5cGUuybVjbXBba10gPSBzdXBlclR5cGUuybVjbXBba10pKTtcclxuIl19
@@ -1,35 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { BuiCommonModule } from '@bravura/ui/common';
4
- import { ContentLoaderModule } from '@ngneat/content-loader';
5
- import { DEFAULT_PRESETS, SkeletonLoaderPresetsDirective, SKELETON_PRESETS } from './skeleton-loader-presets.directive';
6
- import { SkeletonLoaderComponent } from './skeleton-loader.component';
7
- import * as i0 from "@angular/core";
8
- function provideSkeletonPresets(presets) {
9
- return {
10
- provide: SKELETON_PRESETS,
11
- useValue: presets,
12
- multi: true
13
- };
14
- }
15
- export class SkeletonsModule {
16
- static forConfig(config) {
17
- return {
18
- ngModule: SkeletonsModule,
19
- providers: [provideSkeletonPresets(config?.presets || {}), provideSkeletonPresets(DEFAULT_PRESETS)]
20
- };
21
- }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SkeletonsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: SkeletonsModule, declarations: [SkeletonLoaderComponent, SkeletonLoaderPresetsDirective], imports: [CommonModule, ContentLoaderModule, BuiCommonModule], exports: [ContentLoaderModule, BuiCommonModule, SkeletonLoaderComponent, SkeletonLoaderPresetsDirective] }); }
24
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SkeletonsModule, providers: [provideSkeletonPresets(DEFAULT_PRESETS)], imports: [CommonModule, ContentLoaderModule, BuiCommonModule, ContentLoaderModule, BuiCommonModule] }); }
25
- }
26
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: SkeletonsModule, decorators: [{
27
- type: NgModule,
28
- args: [{
29
- declarations: [SkeletonLoaderComponent, SkeletonLoaderPresetsDirective],
30
- imports: [CommonModule, ContentLoaderModule, BuiCommonModule],
31
- exports: [ContentLoaderModule, BuiCommonModule, SkeletonLoaderComponent, SkeletonLoaderPresetsDirective],
32
- providers: [provideSkeletonPresets(DEFAULT_PRESETS)]
33
- }]
34
- }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tlbGV0b25zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3NrZWxldG9ucy9za2VsZXRvbnMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXVCLFFBQVEsRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFDTixlQUFlLEVBQ2YsOEJBQThCLEVBRTlCLGdCQUFnQixFQUNoQixNQUFNLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUV0RSxTQUFTLHNCQUFzQixDQUFDLE9BQXdCO0lBQ3ZELE9BQU87UUFDTixPQUFPLEVBQUUsZ0JBQWdCO1FBQ3pCLFFBQVEsRUFBRSxPQUFPO1FBQ2pCLEtBQUssRUFBRSxJQUFJO0tBQ1gsQ0FBQztBQUNILENBQUM7QUFRRCxNQUFNLE9BQU8sZUFBZTtJQUMzQixNQUFNLENBQUMsU0FBUyxDQUFDLE1BQXNDO1FBQ3RELE9BQU87WUFDTixRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFFLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ25HLENBQUM7SUFDSCxDQUFDOzhHQU5XLGVBQWU7K0dBQWYsZUFBZSxpQkFMWix1QkFBdUIsRUFBRSw4QkFBOEIsYUFDNUQsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGVBQWUsYUFDbEQsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixFQUFFLDhCQUE4QjsrR0FHM0YsZUFBZSxhQUZoQixDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDLFlBRjFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQ2xELG1CQUFtQixFQUFFLGVBQWU7OzJGQUdsQyxlQUFlO2tCQU4zQixRQUFRO21CQUFDO29CQUNULFlBQVksRUFBRSxDQUFDLHVCQUF1QixFQUFFLDhCQUE4QixDQUFDO29CQUN2RSxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxDQUFDO29CQUM3RCxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsOEJBQThCLENBQUM7b0JBQ3hHLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixDQUFDLGVBQWUsQ0FBQyxDQUFDO2lCQUNwRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlLCBWYWx1ZVByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJ1aUNvbW1vbk1vZHVsZSB9IGZyb20gJ0BicmF2dXJhL3VpL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbnRlbnRMb2FkZXJNb2R1bGUgfSBmcm9tICdAbmduZWF0L2NvbnRlbnQtbG9hZGVyJztcclxuaW1wb3J0IHtcclxuXHRERUZBVUxUX1BSRVNFVFMsXHJcblx0U2tlbGV0b25Mb2FkZXJQcmVzZXRzRGlyZWN0aXZlLFxyXG5cdFNrZWxldG9uUHJlc2V0cyxcclxuXHRTS0VMRVRPTl9QUkVTRVRTXHJcbn0gZnJvbSAnLi9za2VsZXRvbi1sb2FkZXItcHJlc2V0cy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBTa2VsZXRvbkxvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vc2tlbGV0b24tbG9hZGVyLmNvbXBvbmVudCc7XHJcblxyXG5mdW5jdGlvbiBwcm92aWRlU2tlbGV0b25QcmVzZXRzKHByZXNldHM6IFNrZWxldG9uUHJlc2V0cyk6IFZhbHVlUHJvdmlkZXIge1xyXG5cdHJldHVybiB7XHJcblx0XHRwcm92aWRlOiBTS0VMRVRPTl9QUkVTRVRTLFxyXG5cdFx0dXNlVmFsdWU6IHByZXNldHMsXHJcblx0XHRtdWx0aTogdHJ1ZVxyXG5cdH07XHJcbn1cclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0ZGVjbGFyYXRpb25zOiBbU2tlbGV0b25Mb2FkZXJDb21wb25lbnQsIFNrZWxldG9uTG9hZGVyUHJlc2V0c0RpcmVjdGl2ZV0sXHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQ29udGVudExvYWRlck1vZHVsZSwgQnVpQ29tbW9uTW9kdWxlXSxcclxuXHRleHBvcnRzOiBbQ29udGVudExvYWRlck1vZHVsZSwgQnVpQ29tbW9uTW9kdWxlLCBTa2VsZXRvbkxvYWRlckNvbXBvbmVudCwgU2tlbGV0b25Mb2FkZXJQcmVzZXRzRGlyZWN0aXZlXSxcclxuXHRwcm92aWRlcnM6IFtwcm92aWRlU2tlbGV0b25QcmVzZXRzKERFRkFVTFRfUFJFU0VUUyldXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTa2VsZXRvbnNNb2R1bGUge1xyXG5cdHN0YXRpYyBmb3JDb25maWcoY29uZmlnPzogeyBwcmVzZXRzPzogU2tlbGV0b25QcmVzZXRzIH0pOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFNrZWxldG9uc01vZHVsZT4ge1xyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0bmdNb2R1bGU6IFNrZWxldG9uc01vZHVsZSxcclxuXHRcdFx0cHJvdmlkZXJzOiBbcHJvdmlkZVNrZWxldG9uUHJlc2V0cyhjb25maWc/LnByZXNldHMgfHwge30pLCBwcm92aWRlU2tlbGV0b25QcmVzZXRzKERFRkFVTFRfUFJFU0VUUyldXHJcblx0XHR9O1xyXG5cdH1cclxufVxyXG4iXX0=
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJhdnVyYS11aS1zdGVwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3RlcHBlci9icmF2dXJhLXVpLXN0ZXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,4 +0,0 @@
1
- export * from './step-label-top.directive';
2
- export * from './stepper.component';
3
- export * from './stepper.module';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpL3N0ZXBwZXIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RlcC1sYWJlbC10b3AuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RlcHBlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGVwcGVyLm1vZHVsZSc7XG4iXX0=
@@ -1,40 +0,0 @@
1
- import { ContentChild, Directive, inject, Optional } from '@angular/core';
2
- import { MatStep } from '@angular/material/stepper';
3
- import * as i0 from "@angular/core";
4
- export class StepLabelTopDirective {
5
- constructor(templateRef) {
6
- this.templateRef = templateRef;
7
- }
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepLabelTopDirective, deps: [{ token: i0.TemplateRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
9
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: StepLabelTopDirective, selector: "[buiStepLabelTop]", ngImport: i0 }); }
10
- }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepLabelTopDirective, decorators: [{
12
- type: Directive,
13
- args: [{
14
- selector: '[buiStepLabelTop]'
15
- }]
16
- }], ctorParameters: () => [{ type: i0.TemplateRef, decorators: [{
17
- type: Optional
18
- }] }] });
19
- export class StepDirective {
20
- constructor() {
21
- this.step = inject(MatStep);
22
- }
23
- ngAfterContentInit() {
24
- this.step.stepLabelTopTemplate = this.stepLabelTopDirective?.templateRef;
25
- }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
27
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.2", type: StepDirective, selector: "mat-step", queries: [{ propertyName: "stepLabelTopDirective", first: true, predicate: StepLabelTopDirective, descendants: true }], ngImport: i0 }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepDirective, decorators: [{
30
- type: Directive,
31
- args: [{
32
- selector: 'mat-step'
33
- }]
34
- }], ctorParameters: () => [], propDecorators: { stepLabelTopDirective: [{
35
- type: ContentChild,
36
- args: [StepLabelTopDirective]
37
- }, {
38
- type: Optional
39
- }] } });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC1sYWJlbC10b3AuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3RlcHBlci9zdGVwLWxhYmVsLXRvcC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFvQixZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUtwRCxNQUFNLE9BQU8scUJBQXFCO0lBQ2pDLFlBQStCLFdBQTZCO1FBQTdCLGdCQUFXLEdBQVgsV0FBVyxDQUFrQjtJQUFHLENBQUM7OEdBRHBELHFCQUFxQjtrR0FBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQUhqQyxTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxtQkFBbUI7aUJBQzdCOzswQkFFYSxRQUFROztBQU10QixNQUFNLE9BQU8sYUFBYTtJQU96QjtRQUZBLFNBQUksR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFUixDQUFDO0lBRWhCLGtCQUFrQjtRQUNoQixJQUFJLENBQUMsSUFBWSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxXQUFXLENBQUM7SUFDbkYsQ0FBQzs4R0FYVyxhQUFhO2tHQUFiLGFBQWEsbUdBQ1gscUJBQXFCOzsyRkFEdkIsYUFBYTtrQkFIekIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsVUFBVTtpQkFDcEI7d0RBSUEscUJBQXFCO3NCQUZwQixZQUFZO3VCQUFDLHFCQUFxQjs7c0JBQ2xDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb250ZW50Q2hpbGQsIERpcmVjdGl2ZSwgaW5qZWN0LCBPcHRpb25hbCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFN0ZXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zdGVwcGVyJztcblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnW2J1aVN0ZXBMYWJlbFRvcF0nXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBMYWJlbFRvcERpcmVjdGl2ZSB7XG5cdGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIHB1YmxpYyB0ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55Pikge31cbn1cblxuQERpcmVjdGl2ZSh7XG5cdHNlbGVjdG9yOiAnbWF0LXN0ZXAnXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcblx0QENvbnRlbnRDaGlsZChTdGVwTGFiZWxUb3BEaXJlY3RpdmUpXG5cdEBPcHRpb25hbCgpXG5cdHN0ZXBMYWJlbFRvcERpcmVjdGl2ZTogU3RlcExhYmVsVG9wRGlyZWN0aXZlO1xuXG5cdHN0ZXAgPSBpbmplY3QoTWF0U3RlcCk7XG5cblx0Y29uc3RydWN0b3IoKSB7fVxuXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcblx0XHQodGhpcy5zdGVwIGFzIGFueSkuc3RlcExhYmVsVG9wVGVtcGxhdGUgPSB0aGlzLnN0ZXBMYWJlbFRvcERpcmVjdGl2ZT8udGVtcGxhdGVSZWY7XG5cdH1cbn1cbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { animate, state, style, transition, trigger } from '@angular/animations';
2
- function drawerAnimations(isLeft) {
3
- const closedStyle = { opacity: '0', height: 0, width: 0, visibility: 'hidden' };
4
- const left = { ...closedStyle, transform: 'translateX(50%)' };
5
- const height = { ...closedStyle, transform: 'scaleY(0.5)' };
6
- return [
7
- state('open, open-instant', style({ visibility: 'visible' })),
8
- state('void', style(isLeft ? left : height)),
9
- transition('void => open-instant', animate('0ms')),
10
- transition('void <=> open, open-instant => void', animate('400ms cubic-bezier(0.25, 0.8, 0.25, 1)'))
11
- ];
12
- }
13
- export default {
14
- stepTransition: trigger('stepTransition', [
15
- state('previous', style({ transform: 'translate3d(0, -100%, 0)', visibility: 'hidden' })),
16
- state('current', style({ transform: 'none', visibility: 'inherit' })),
17
- state('next', style({ transform: 'translate3d(0, 100%, 0)', visibility: 'hidden' })),
18
- transition('* => *', animate('500ms cubic-bezier(0.35, 0, 0.25, 1)'))
19
- ]),
20
- leftDrawer: trigger('leftDrawer', drawerAnimations(true)),
21
- topDrawer: trigger('topDrawer', drawerAnimations(false))
22
- };
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci1hbmltYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zdGVwcGVyL3N0ZXBwZXItYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTixPQUFPLEVBR1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxFQUNQLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsU0FBUyxnQkFBZ0IsQ0FBQyxNQUFlO0lBQ3hDLE1BQU0sV0FBVyxHQUFHLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ2hGLE1BQU0sSUFBSSxHQUFHLEVBQUUsR0FBRyxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLENBQUM7SUFDOUQsTUFBTSxNQUFNLEdBQUcsRUFBRSxHQUFHLFdBQVcsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDNUQsT0FBTztRQUNOLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUM3RCxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDNUMsVUFBVSxDQUFDLHNCQUFzQixFQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxVQUFVLENBQUMscUNBQXFDLEVBQUUsT0FBTyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7S0FDcEcsQ0FBQztBQUNILENBQUM7QUFFRCxlQUFlO0lBQ2QsY0FBYyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtRQUN6QyxLQUFLLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSwwQkFBMEIsRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6RixLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDckUsS0FBSyxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUseUJBQXlCLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDcEYsVUFBVSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsc0NBQXNDLENBQUMsQ0FBQztLQUNyRSxDQUFDO0lBRUYsVUFBVSxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDekQsU0FBUyxFQUFFLE9BQU8sQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7Q0FDeEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcblx0YW5pbWF0ZSxcclxuXHRBbmltYXRpb25TdGF0ZU1ldGFkYXRhLFxyXG5cdEFuaW1hdGlvblRyYW5zaXRpb25NZXRhZGF0YSxcclxuXHRzdGF0ZSxcclxuXHRzdHlsZSxcclxuXHR0cmFuc2l0aW9uLFxyXG5cdHRyaWdnZXJcclxufSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcclxuXHJcbmZ1bmN0aW9uIGRyYXdlckFuaW1hdGlvbnMoaXNMZWZ0OiBib29sZWFuKTogKEFuaW1hdGlvblN0YXRlTWV0YWRhdGEgfCBBbmltYXRpb25UcmFuc2l0aW9uTWV0YWRhdGEpW10ge1xyXG5cdGNvbnN0IGNsb3NlZFN0eWxlID0geyBvcGFjaXR5OiAnMCcsIGhlaWdodDogMCwgd2lkdGg6IDAsIHZpc2liaWxpdHk6ICdoaWRkZW4nIH07XHJcblx0Y29uc3QgbGVmdCA9IHsgLi4uY2xvc2VkU3R5bGUsIHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoNTAlKScgfTtcclxuXHRjb25zdCBoZWlnaHQgPSB7IC4uLmNsb3NlZFN0eWxlLCB0cmFuc2Zvcm06ICdzY2FsZVkoMC41KScgfTtcclxuXHRyZXR1cm4gW1xyXG5cdFx0c3RhdGUoJ29wZW4sIG9wZW4taW5zdGFudCcsIHN0eWxlKHsgdmlzaWJpbGl0eTogJ3Zpc2libGUnIH0pKSxcclxuXHRcdHN0YXRlKCd2b2lkJywgc3R5bGUoaXNMZWZ0ID8gbGVmdCA6IGhlaWdodCkpLFxyXG5cdFx0dHJhbnNpdGlvbigndm9pZCA9PiBvcGVuLWluc3RhbnQnLCBhbmltYXRlKCcwbXMnKSksXHJcblx0XHR0cmFuc2l0aW9uKCd2b2lkIDw9PiBvcGVuLCBvcGVuLWluc3RhbnQgPT4gdm9pZCcsIGFuaW1hdGUoJzQwMG1zIGN1YmljLWJlemllcigwLjI1LCAwLjgsIDAuMjUsIDEpJykpXHJcblx0XTtcclxufVxyXG5cclxuZXhwb3J0IGRlZmF1bHQge1xyXG5cdHN0ZXBUcmFuc2l0aW9uOiB0cmlnZ2VyKCdzdGVwVHJhbnNpdGlvbicsIFtcclxuXHRcdHN0YXRlKCdwcmV2aW91cycsIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlM2QoMCwgLTEwMCUsIDApJywgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSkpLFxyXG5cdFx0c3RhdGUoJ2N1cnJlbnQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ25vbmUnLCB2aXNpYmlsaXR5OiAnaW5oZXJpdCcgfSkpLFxyXG5cdFx0c3RhdGUoJ25leHQnLCBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZTNkKDAsIDEwMCUsIDApJywgdmlzaWJpbGl0eTogJ2hpZGRlbicgfSkpLFxyXG5cdFx0dHJhbnNpdGlvbignKiA9PiAqJywgYW5pbWF0ZSgnNTAwbXMgY3ViaWMtYmV6aWVyKDAuMzUsIDAsIDAuMjUsIDEpJykpXHJcblx0XSksXHJcblxyXG5cdGxlZnREcmF3ZXI6IHRyaWdnZXIoJ2xlZnREcmF3ZXInLCBkcmF3ZXJBbmltYXRpb25zKHRydWUpKSxcclxuXHR0b3BEcmF3ZXI6IHRyaWdnZXIoJ3RvcERyYXdlcicsIGRyYXdlckFuaW1hdGlvbnMoZmFsc2UpKVxyXG59O1xyXG4iXX0=
@@ -1,178 +0,0 @@
1
- import { CdkStepper, STEPPER_GLOBAL_OPTIONS } from '@angular/cdk/stepper';
2
- import { DOCUMENT } from '@angular/common';
3
- import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Inject, Input, Optional, Output, QueryList, Self, SkipSelf, ViewChild, ViewChildren, ViewEncapsulation } from '@angular/core';
4
- import { MatStep, MatStepHeader, MatStepper, MatStepperIcon } from '@angular/material/stepper';
5
- import { Subject } from 'rxjs';
6
- import { distinctUntilChanged, filter, takeUntil } from 'rxjs/operators';
7
- import animation from './stepper-animation';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/cdk/bidi";
10
- import * as i2 from "@angular/common";
11
- import * as i3 from "@angular/material/stepper";
12
- import * as i4 from "@bravura/ui/behavior";
13
- /** @ignore */
14
- const BREAKPOINT = 768;
15
- /**
16
- * [Angular Material's stepper](https://material.angular.io/components/stepper/overview) provides a wizard-like workflow by dividing
17
- * content into logical steps.
18
- *
19
- * This stepper extends Angular's to customise the presentation of its headers to achieve a better user experience in both mobile and
20
- * desktop browsers.
21
- *
22
- */
23
- export class StepperComponent extends CdkStepper {
24
- constructor(dir, changeDetectorRef, _buiElRef, _document, stepperOptions, defaultStepperOptions) {
25
- super(dir, changeDetectorRef, _buiElRef);
26
- this.changeDetectorRef = changeDetectorRef;
27
- this._buiElRef = _buiElRef;
28
- /** @ignore Steps that belong to the current stepper, excluding ones from nested steppers. */
29
- this.steps = new QueryList();
30
- /** @ignore Event emitted when the current step is done transitioning in. */
31
- this.animationDone = new EventEmitter();
32
- /** The text that precedes the name of the next step label, used in the 'narrow' view. */
33
- this.nextStepLabelPrefix = 'Next: ';
34
- /** @ignore Consumer-specified template-refs to be used to override the header icons. */
35
- this._iconOverrides = {};
36
- /** @ignore Stream of animation `done` events when the body expands/collapses. */
37
- this._animationDone = new Subject();
38
- /** @ignore Whether the stepper is in a narrow container */
39
- this._narrow = false;
40
- /** @ignore Emits whenever the drawer has started animating. */
41
- this._leftDrawerStarted = new Subject();
42
- /** @ignore Emits whenever the drawer is done animating. */
43
- this._leftDrawerEnded = new Subject();
44
- /** @ignore Current state of the sidenav animation. */
45
- this._leftDrawerState = 'open-instant';
46
- /** @ignore Emits whenever the drawer has started animating. */
47
- this._topDrawerStarted = new Subject();
48
- /** @ignore Emits whenever the drawer is done animating. */
49
- this._topDrawerEnded = new Subject();
50
- /** @ignore Current state of the sidenav animation. */
51
- this._topDrawerState = 'void';
52
- /** @ignore */ this._progressCircleSize = 80;
53
- /** @ignore */ this._progressCircleWidth = 5;
54
- /** @ignore */ this._stepTransitioning = false;
55
- this.orientation = 'vertical';
56
- this.indicatorFormatter = (index, total) => `${index} of ${total}`;
57
- Object.keys(defaultStepperOptions || {})
58
- .filter(k => k !== 'displayDefaultIndicatorType')
59
- .forEach(((k) => (stepperOptions[k] = defaultStepperOptions[k])));
60
- }
61
- ngAfterContentInit() {
62
- super.ngAfterContentInit();
63
- this._icons.forEach(({ name, templateRef }) => (this._iconOverrides[name] = templateRef));
64
- // Mark the component for change detection whenever the content children query changes
65
- this.steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {
66
- this._stateChanged();
67
- });
68
- this._animationDone
69
- .pipe(distinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState), takeUntil(this._destroyed))
70
- .subscribe(event => {
71
- if (event.toState === 'current') {
72
- this.animationDone.emit();
73
- this._stepTransitioning = false;
74
- }
75
- });
76
- this._leftDrawerEnded
77
- .pipe(distinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState), filter(ev => ev.toState === 'void' && ev.toState !== ev.fromState), takeUntil(this._destroyed))
78
- .subscribe(() => {
79
- this._topDrawerState = 'open';
80
- });
81
- this._topDrawerEnded
82
- .pipe(distinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState), filter(ev => ev.toState === 'void' && ev.toState !== ev.fromState), takeUntil(this._destroyed))
83
- .subscribe(() => {
84
- this._leftDrawerState = 'open';
85
- });
86
- this._iconOverrides.edit = this._iconOverrides.edit || this._editIconTemplate;
87
- }
88
- /** @ignore */
89
- _stepIsNavigable(index, step) {
90
- return step.completed || this.selectedIndex === index || !this.linear;
91
- }
92
- /** @ignore */
93
- _widthChanged(w) {
94
- const narrow = Math.abs(w - BREAKPOINT) < 20 ? this._narrow : w < BREAKPOINT;
95
- const cls = 'bui-stepper-narrow';
96
- const classList = this._buiElRef.nativeElement.classList;
97
- if (narrow) {
98
- this._leftDrawerState = 'void';
99
- classList.add(cls);
100
- }
101
- else {
102
- this._topDrawerState = 'void';
103
- classList.remove(cls);
104
- }
105
- if (this._narrow !== narrow) {
106
- this._narrow = narrow;
107
- this._stateChanged();
108
- }
109
- }
110
- /** @ignore */
111
- _startStepTransition() {
112
- setTimeout(() => {
113
- this._stepTransitioning = true;
114
- this.changeDetectorRef.markForCheck();
115
- });
116
- }
117
- toCustomStep(step) {
118
- return step;
119
- }
120
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepperComponent, deps: [{ token: i1.Directionality, optional: true }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: DOCUMENT }, { token: STEPPER_GLOBAL_OPTIONS, self: true }, { token: STEPPER_GLOBAL_OPTIONS, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
121
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.2", type: StepperComponent, selector: "bui-stepper, [buiStepper]", inputs: { selectedIndex: "selectedIndex", disableRipple: "disableRipple", color: "color", indicatorFormatter: "indicatorFormatter", nextStepLabelPrefix: "nextStepLabelPrefix" }, outputs: { animationDone: "animationDone" }, host: { attributes: { "role": "tablist" }, properties: { "attr.aria-orientation": "orientation" }, classAttribute: "bui-stepper bui-host" }, providers: [
122
- { provide: MatStepper, useExisting: StepperComponent },
123
- { provide: CdkStepper, useExisting: StepperComponent },
124
- { provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false } }
125
- ], queries: [{ propertyName: "_steps", predicate: MatStep, descendants: true }, { propertyName: "_icons", predicate: MatStepperIcon, descendants: true }], viewQueries: [{ propertyName: "_editIconTemplate", first: true, predicate: ["editIconTemplate"], descendants: true, static: true }, { propertyName: "_stepHeader", predicate: MatStepHeader, descendants: true }], exportAs: ["buiStepper", "matStepper", "matVerticalStepper", "matHorizontalStepper"], usesInheritance: true, ngImport: i0, template: "<div class=\"bui-stepper-wrapper\" [style.display]=\"_leftDrawerState.startsWith('open') ? 'flex' : 'block'\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div class=\"bui-step-progress-label\">Step {{ selectedIndex + 1 }} of {{ steps.length }}</div>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div class=\"bui-stepper-top-header-progress\">\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\tStep {{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\n\t\t\t<div class=\"bui-stepper-progress-indicator\">\n\t\t\t\t<div\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\t(click)=\"selectedIndex = i\"\n\t\t\t\t\tclass=\"bui-stepper-progress-indicator-section\"\n\t\t\t\t\t*ngFor=\"let s of steps; let i = index\"\n\t\t\t\t\t[class.bui-step-section-interacted]=\"i <= selectedIndex\"\n\t\t\t\t></div>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t></ng-template>\n\t\t\t</div>\n\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"toCustomStep(selected).stepLabelTopTemplate\"></ng-container>\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\" [class.bui-stepper-content-wrapper-transitioning]=\"_stepTransitioning\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.start)=\"_startStepTransition()\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"toCustomStep(step).stepLabelTopTemplate\"></ng-container>\n\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: step }\"\n\t\t\t\t\t\t></ng-template>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n", styles: [".bui-stepper:not([hidden]){display:block;box-sizing:border-box}.bui-stepper-wrapper{display:flex;gap:16px;box-sizing:border-box}.bui-step-progress-label{margin-top:16px;margin-left:16px;font-size:90%;font-weight:600}.bui-stepper-left-header-container{max-width:30%}.bui-stepper-header-wrapper{position:relative}.bui-stepper-vertical-line:before{content:\"\";position:absolute;left:28px;border-left-width:1px;border-left-style:solid;border-left-color:var(--bui-color-divider);top:44px;bottom:-12px}[dir=rtl] .bui-stepper-vertical-line:before{left:auto;right:0}.bui-stepper-top-header-indicator{font-size:80%;font-weight:700}.bui-stepper-progress-indicator{display:flex;justify-content:space-between;width:100%;height:10px;gap:10px;margin-bottom:16px}.bui-stepper-progress-indicator-section{flex:1;background-color:#0000001a;border-radius:4px;cursor:pointer}.bui-stepper-content-header-label{font-size:larger;font-weight:700;margin-bottom:32px;display:flex;flex-direction:column;align-items:start;justify-items:start;justify-content:start;gap:16px}.bui-stepper .bui-stepper-header{display:flex;align-items:center;padding:0 16px;height:56px}.bui-stepper .bui-stepper-header .mat-step-icon{margin-right:16px}[dir=rtl] .bui-stepper .bui-stepper-header .mat-step-icon{margin-right:0;margin-left:16px}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-done{background-color:var(--bui-color-success);color:#fff}.bui-stepper-top-header-container.bui-stepper-header-active{margin-bottom:16px}.bui-stepper-top-header-progress{margin-bottom:8px}.bui-stepper-top-header-titles-wrapper{display:flex;flex-direction:column;align-items:start;gap:16px}.bui-stepper-top-header-title{font-size:larger}.bui-stepper-top-header-title-next{color:var(--bui-color-muted);margin-bottom:16px;font-size:90%;color:#000c}.bui-stepper-content-container{flex:1 1 100%;border-radius:var(--bui-stepper-container-border-radius, 12px);box-shadow:0 0 1px 1px #0000001a;padding:16px;display:flex;flex-direction:column}.bui-stepper-content-wrapper{flex:1 1 100%}.bui-stepper-content-wrapper-transitioning{overflow:hidden}.bui-stepper-content{outline:0}.bui-stepper-content[aria-expanded=false]{height:0;overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3.MatStepHeader, selector: "mat-step-header", inputs: ["state", "label", "errorMessage", "iconOverrides", "index", "selected", "active", "optional", "disableRipple", "color"] }, { kind: "directive", type: i4.SizingDirective, selector: "[buiSizing],[buiResized],[buiSizingBy],[buiFixedHeight]", inputs: ["buiSizing", "sizingBy", "buiSizingBy", "buiFixedHeight"], outputs: ["buiResized"] }], animations: [animation.stepTransition, animation.leftDrawer, animation.topDrawer], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
126
- }
127
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: StepperComponent, decorators: [{
128
- type: Component,
129
- args: [{ selector: 'bui-stepper, [buiStepper]', exportAs: 'buiStepper, matStepper, matVerticalStepper, matHorizontalStepper', inputs: ['selectedIndex'], host: {
130
- class: 'bui-stepper bui-host',
131
- '[attr.aria-orientation]': 'orientation',
132
- role: 'tablist'
133
- }, animations: [animation.stepTransition, animation.leftDrawer, animation.topDrawer], providers: [
134
- { provide: MatStepper, useExisting: StepperComponent },
135
- { provide: CdkStepper, useExisting: StepperComponent },
136
- { provide: STEPPER_GLOBAL_OPTIONS, useValue: { displayDefaultIndicatorType: false } }
137
- ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"bui-stepper-wrapper\" [style.display]=\"_leftDrawerState.startsWith('open') ? 'flex' : 'block'\" #sizeMonitor>\n\t<div\n\t\tclass=\"bui-stepper-left-header-container\"\n\t\t[@leftDrawer]=\"_leftDrawerState\"\n\t\t(@leftDrawer.start)=\"_leftDrawerStarted.next($event)\"\n\t\t(@leftDrawer.done)=\"_leftDrawerEnded.next($event)\"\n\t>\n\t\t<div class=\"bui-step-progress-label\">Step {{ selectedIndex + 1 }} of {{ steps.length }}</div>\n\t\t<div\n\t\t\t*ngFor=\"let step of steps; let i = index; let isLast = last\"\n\t\t\tclass=\"bui-stepper-header-wrapper\"\n\t\t\t[class.bui-stepper-vertical-line]=\"!isLast\"\n\t\t>\n\t\t\t<mat-step-header\n\t\t\t\tclass=\"bui-stepper-header\"\n\t\t\t\t(click)=\"step.select()\"\n\t\t\t\t(keydown)=\"_onKeydown($event)\"\n\t\t\t\t[tabIndex]=\"_getFocusIndex() === i ? 0 : -1\"\n\t\t\t\t[id]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-posinset]=\"i + 1\"\n\t\t\t\t[attr.aria-setsize]=\"steps.length\"\n\t\t\t\t[attr.aria-controls]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-selected]=\"selectedIndex == i\"\n\t\t\t\t[attr.aria-label]=\"step.ariaLabel || null\"\n\t\t\t\t[attr.aria-labelledby]=\"!step.ariaLabel && step.ariaLabelledby ? step.ariaLabelledby : null\"\n\t\t\t\t[attr.aria-disabled]=\"_stepIsNavigable(i, step) ? null : true\"\n\t\t\t\t[index]=\"i\"\n\t\t\t\t[state]=\"_getIndicatorType(i, step.state)\"\n\t\t\t\t[label]=\"step.stepLabel || step.label\"\n\t\t\t\t[selected]=\"selectedIndex === i\"\n\t\t\t\t[active]=\"_stepIsNavigable(i, step)\"\n\t\t\t\t[optional]=\"step.optional\"\n\t\t\t\t[errorMessage]=\"step.errorMessage\"\n\t\t\t\t[iconOverrides]=\"_iconOverrides\"\n\t\t\t\t[disableRipple]=\"disableRipple || !_stepIsNavigable(i, step)\"\n\t\t\t\t[color]=\"step.color || color\"\n\t\t\t></mat-step-header>\n\t\t</div>\n\t</div>\n\n\t<div class=\"bui-stepper-content-container\" [buiSizingBy]=\"sizeMonitor\" (buiResized)=\"_widthChanged($event.width)\">\n\t\t<div\n\t\t\tclass=\"bui-stepper-top-header-container\"\n\t\t\t[class.bui-stepper-header-active]=\"_leftDrawerState === 'void'\"\n\t\t\t[@topDrawer]=\"_topDrawerState\"\n\t\t\t(@topDrawer.start)=\"_topDrawerStarted.next($event)\"\n\t\t\t(@topDrawer.done)=\"_topDrawerEnded.next($event)\"\n\t\t>\n\t\t\t<div class=\"bui-stepper-top-header-progress\">\n\t\t\t\t<span class=\"bui-stepper-top-header-indicator\">\n\t\t\t\t\tStep {{ indicatorFormatter(selectedIndex + 1, steps.length) }}\n\t\t\t\t</span>\n\t\t\t</div>\n\n\t\t\t<div class=\"bui-stepper-progress-indicator\">\n\t\t\t\t<div\n\t\t\t\t\trole=\"button\"\n\t\t\t\t\t(click)=\"selectedIndex = i\"\n\t\t\t\t\tclass=\"bui-stepper-progress-indicator-section\"\n\t\t\t\t\t*ngFor=\"let s of steps; let i = index\"\n\t\t\t\t\t[class.bui-step-section-interacted]=\"i <= selectedIndex\"\n\t\t\t\t></div>\n\t\t\t</div>\n\t\t\t<div class=\"bui-stepper-top-header-title-next\" *ngIf=\"selectedIndex < steps.length - 1\">\n\t\t\t\t{{ nextStepLabelPrefix }}\n\t\t\t\t<ng-template\n\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: steps.get(selectedIndex + 1) }\"\n\t\t\t\t></ng-template>\n\t\t\t</div>\n\n\t\t\t<div class=\"bui-stepper-top-header-titles-wrapper\" *ngIf=\"selected\">\n\t\t\t\t<ng-container *ngTemplateOutlet=\"toCustomStep(selected).stepLabelTopTemplate\"></ng-container>\n\t\t\t\t<div class=\"bui-stepper-top-header-title\">\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: selected }\"\n\t\t\t\t\t></ng-template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div class=\"bui-stepper-content-wrapper\" [class.bui-stepper-content-wrapper-transitioning]=\"_stepTransitioning\">\n\t\t\t<div\n\t\t\t\t*ngFor=\"let step of steps; let i = index\"\n\t\t\t\tclass=\"bui-stepper-content\"\n\t\t\t\trole=\"tabpanel\"\n\t\t\t\t[@stepTransition]=\"_getAnimationDirection(i)\"\n\t\t\t\t(@stepTransition.start)=\"_startStepTransition()\"\n\t\t\t\t(@stepTransition.done)=\"_animationDone.next($event)\"\n\t\t\t\t[id]=\"_getStepContentId(i)\"\n\t\t\t\t[attr.aria-labelledby]=\"_getStepLabelId(i)\"\n\t\t\t\t[attr.aria-expanded]=\"selectedIndex === i\"\n\t\t\t>\n\t\t\t\t<div class=\"bui-stepper-content-header-label\" *ngIf=\"!_narrow\">\n\t\t\t\t\t<ng-container *ngTemplateOutlet=\"toCustomStep(step).stepLabelTopTemplate\"></ng-container>\n\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"labelTemplate\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: step }\"\n\t\t\t\t\t\t></ng-template>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"step.content\"></ng-template>\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n\n<ng-template #labelTemplate let-step>\n\t<ng-template [ngIf]=\"step.stepLabel\" [ngIfElse]=\"stringLabelTempl\">\n\t\t<ng-template [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-template>\n\t</ng-template>\n\t<ng-template #stringLabelTempl>{{ step.label }}</ng-template>\n</ng-template>\n\n<ng-template #editIconTemplate let-index=\"index\">\n\t<span>{{ index + 1 }}</span>\n</ng-template>\n", styles: [".bui-stepper:not([hidden]){display:block;box-sizing:border-box}.bui-stepper-wrapper{display:flex;gap:16px;box-sizing:border-box}.bui-step-progress-label{margin-top:16px;margin-left:16px;font-size:90%;font-weight:600}.bui-stepper-left-header-container{max-width:30%}.bui-stepper-header-wrapper{position:relative}.bui-stepper-vertical-line:before{content:\"\";position:absolute;left:28px;border-left-width:1px;border-left-style:solid;border-left-color:var(--bui-color-divider);top:44px;bottom:-12px}[dir=rtl] .bui-stepper-vertical-line:before{left:auto;right:0}.bui-stepper-top-header-indicator{font-size:80%;font-weight:700}.bui-stepper-progress-indicator{display:flex;justify-content:space-between;width:100%;height:10px;gap:10px;margin-bottom:16px}.bui-stepper-progress-indicator-section{flex:1;background-color:#0000001a;border-radius:4px;cursor:pointer}.bui-stepper-content-header-label{font-size:larger;font-weight:700;margin-bottom:32px;display:flex;flex-direction:column;align-items:start;justify-items:start;justify-content:start;gap:16px}.bui-stepper .bui-stepper-header{display:flex;align-items:center;padding:0 16px;height:56px}.bui-stepper .bui-stepper-header .mat-step-icon{margin-right:16px}[dir=rtl] .bui-stepper .bui-stepper-header .mat-step-icon{margin-right:0;margin-left:16px}.bui-stepper .bui-stepper-header .mat-step-icon.mat-step-icon-state-done{background-color:var(--bui-color-success);color:#fff}.bui-stepper-top-header-container.bui-stepper-header-active{margin-bottom:16px}.bui-stepper-top-header-progress{margin-bottom:8px}.bui-stepper-top-header-titles-wrapper{display:flex;flex-direction:column;align-items:start;gap:16px}.bui-stepper-top-header-title{font-size:larger}.bui-stepper-top-header-title-next{color:var(--bui-color-muted);margin-bottom:16px;font-size:90%;color:#000c}.bui-stepper-content-container{flex:1 1 100%;border-radius:var(--bui-stepper-container-border-radius, 12px);box-shadow:0 0 1px 1px #0000001a;padding:16px;display:flex;flex-direction:column}.bui-stepper-content-wrapper{flex:1 1 100%}.bui-stepper-content-wrapper-transitioning{overflow:hidden}.bui-stepper-content{outline:0}.bui-stepper-content[aria-expanded=false]{height:0;overflow:hidden}\n"] }]
138
- }], ctorParameters: () => [{ type: i1.Directionality, decorators: [{
139
- type: Optional
140
- }] }, { type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: undefined, decorators: [{
141
- type: Inject,
142
- args: [DOCUMENT]
143
- }] }, { type: undefined, decorators: [{
144
- type: Self
145
- }, {
146
- type: Inject,
147
- args: [STEPPER_GLOBAL_OPTIONS]
148
- }] }, { type: undefined, decorators: [{
149
- type: Optional
150
- }, {
151
- type: SkipSelf
152
- }, {
153
- type: Inject,
154
- args: [STEPPER_GLOBAL_OPTIONS]
155
- }] }], propDecorators: { _stepHeader: [{
156
- type: ViewChildren,
157
- args: [MatStepHeader]
158
- }], _steps: [{
159
- type: ContentChildren,
160
- args: [MatStep, { descendants: true }]
161
- }], _icons: [{
162
- type: ContentChildren,
163
- args: [MatStepperIcon, { descendants: true }]
164
- }], animationDone: [{
165
- type: Output
166
- }], disableRipple: [{
167
- type: Input
168
- }], color: [{
169
- type: Input
170
- }], indicatorFormatter: [{
171
- type: Input
172
- }], nextStepLabelPrefix: [{
173
- type: Input
174
- }], _editIconTemplate: [{
175
- type: ViewChild,
176
- args: ['editIconTemplate', { static: true }]
177
- }] } });
178
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zdGVwcGVyL3N0ZXBwZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvdWkvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsc0JBQXNCLEVBQTRDLE1BQU0sc0JBQXNCLENBQUM7QUFDcEgsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFFTix1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxJQUFJLEVBQ0osUUFBUSxFQUVSLFNBQVMsRUFDVCxZQUFZLEVBQ1osaUJBQWlCLEVBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQXlCLE1BQU0sMkJBQTJCLENBQUM7QUFDdEgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sU0FBUyxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7QUFFNUMsY0FBYztBQUNkLE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQztBQUV2Qjs7Ozs7OztHQU9HO0FBc0JILE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxVQUFVO0lBOEQvQyxZQUNhLEdBQW1CLEVBQ3ZCLGlCQUFvQyxFQUNwQyxTQUFrQyxFQUN4QixTQUFjLEVBQ1EsY0FBOEIsRUFDZCxxQkFBc0M7UUFFOUYsS0FBSyxDQUFDLEdBQUcsRUFBRSxpQkFBaUIs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QUU7cUJBQ3JGLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07OzBCQWlFN0MsUUFBUTs7MEJBR1IsTUFBTTsyQkFBQyxRQUFROzswQkFDZixJQUFJOzswQkFBSSxNQUFNOzJCQUFDLHNCQUFzQjs7MEJBQ3JDLFFBQVE7OzBCQUFJLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCO3lDQWxFakIsV0FBVztzQkFBaEQsWUFBWTt1QkFBQyxhQUFhO2dCQUcrQixNQUFNO3NCQUEvRCxlQUFlO3VCQUFDLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBTVMsTUFBTTtzQkFBN0QsZUFBZTt1QkFBQyxjQUFjLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUduQyxhQUFhO3NCQUEvQixNQUFNO2dCQUdFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQU9HLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFHRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBOEJFLGlCQUFpQjtzQkFEeEIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBbmltYXRpb25FdmVudCB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgRGlyZWN0aW9uYWxpdHkgfSBmcm9tICdAYW5ndWxhci9jZGsvYmlkaSc7XG5pbXBvcnQgeyBDZGtTdGVwcGVyLCBTVEVQUEVSX0dMT0JBTF9PUFRJT05TLCBTdGVwQ29udGVudFBvc2l0aW9uU3RhdGUsIFN0ZXBwZXJPcHRpb25zIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3N0ZXBwZXInO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcblx0QWZ0ZXJDb250ZW50SW5pdCxcblx0Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb21wb25lbnQsXG5cdENvbnRlbnRDaGlsZHJlbixcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRJbmplY3QsXG5cdElucHV0LFxuXHRPcHRpb25hbCxcblx0T3V0cHV0LFxuXHRRdWVyeUxpc3QsXG5cdFNlbGYsXG5cdFNraXBTZWxmLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRWaWV3Q2hpbGRyZW4sXG5cdFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlbWVQYWxldHRlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY29yZSc7XG5pbXBvcnQgeyBNYXRTdGVwLCBNYXRTdGVwSGVhZGVyLCBNYXRTdGVwcGVyLCBNYXRTdGVwcGVySWNvbiwgTWF0U3RlcHBlckljb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc3RlcHBlcic7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgYW5pbWF0aW9uIGZyb20gJy4vc3RlcHBlci1hbmltYXRpb24nO1xuXG4vKiogQGlnbm9yZSAqL1xuY29uc3QgQlJFQUtQT0lOVCA9IDc2ODtcblxuLyoqXG4gKiBbQW5ndWxhciBNYXRlcmlhbCdzIHN0ZXBwZXJdKGh0dHBzOi8vbWF0ZXJpYWwuYW5ndWxhci5pby9jb21wb25lbnRzL3N0ZXBwZXIvb3ZlcnZpZXcpIHByb3ZpZGVzIGEgd2l6YXJkLWxpa2Ugd29ya2Zsb3cgYnkgZGl2aWRpbmdcbiAqIGNvbnRlbnQgaW50byBsb2dpY2FsIHN0ZXBzLlxuICpcbiAqIFRoaXMgc3RlcHBlciBleHRlbmRzIEFuZ3VsYXIncyB0byBjdXN0b21pc2UgdGhlIHByZXNlbnRhdGlvbiBvZiBpdHMgaGVhZGVycyB0byBhY2hpZXZlIGEgYmV0dGVyIHVzZXIgZXhwZXJpZW5jZSBpbiBib3RoIG1vYmlsZSBhbmRcbiAqIGRlc2t0b3AgYnJvd3NlcnMuXG4gKlxuICovXG5cbkBDb21wb25lbnQoe1xuXHRzZWxlY3RvcjogJ2J1aS1zdGVwcGVyLCBbYnVpU3RlcHBlcl0nLFxuXHRleHBvcnRBczogJ2J1aVN0ZXBwZXIsIG1hdFN0ZXBwZXIsIG1hdFZlcnRpY2FsU3RlcHBlciwgbWF0SG9yaXpvbnRhbFN0ZXBwZXInLFxuXHR0ZW1wbGF0ZVVybDogJy4vc3RlcHBlci5jb21wb25lbnQuaHRtbCcsXG5cdHN0eWxlVXJsczogWycuL3N0ZXBwZXIuY29tcG9uZW50LnNjc3MnXSxcblx0aW5wdXRzOiBbJ3NlbGVjdGVkSW5kZXgnXSxcblx0aG9zdDoge1xuXHRcdGNsYXNzOiAnYnVpLXN0ZXBwZXIgYnVpLWhvc3QnLFxuXHRcdCdbYXR0ci5hcmlhLW9yaWVudGF0aW9uXSc6ICdvcmllbnRhdGlvbicsXG5cdFx0cm9sZTogJ3RhYmxpc3QnXG5cdH0sXG5cdGFuaW1hdGlvbnM6IFthbmltYXRpb24uc3RlcFRyYW5zaXRpb24sIGFuaW1hdGlvbi5sZWZ0RHJhd2VyLCBhbmltYXRpb24udG9wRHJhd2VyXSxcblx0cHJvdmlkZXJzOiBbXG5cdFx0eyBwcm92aWRlOiBNYXRTdGVwcGVyLCB1c2VFeGlzdGluZzogU3RlcHBlckNvbXBvbmVudCB9LFxuXHRcdHsgcHJvdmlkZTogQ2RrU3RlcHBlciwgdXNlRXhpc3Rpbmc6IFN0ZXBwZXJDb21wb25lbnQgfSxcblx0XHR7IHByb3ZpZGU6IFNURVBQRVJfR0xPQkFMX09QVElPTlMsIHVzZVZhbHVlOiB7IGRpc3BsYXlEZWZhdWx0SW5kaWNhdG9yVHlwZTogZmFsc2UgfSB9XG5cdF0sXG5cdGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFN0ZXBwZXJDb21wb25lbnQgZXh0ZW5kcyBDZGtTdGVwcGVyIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG5cdC8qKiBAaWdub3JlIFRoZSBsaXN0IG9mIHN0ZXAgaGVhZGVycyBvZiB0aGUgc3RlcHMgaW4gdGhlIHN0ZXBwZXIuICovXG5cdEBWaWV3Q2hpbGRyZW4oTWF0U3RlcEhlYWRlcikgb3ZlcnJpZGUgX3N0ZXBIZWFkZXIhOiBRdWVyeUxpc3Q8TWF0U3RlcEhlYWRlcj47XG5cblx0LyoqIEBpZ25vcmUgRnVsbCBsaXN0IG9mIHN0ZXBzIGluc2lkZSB0aGUgc3RlcHBlciwgaW5jbHVkaW5nIGluc2lkZSBuZXN0ZWQgc3RlcHBlcnMuICovXG5cdEBDb250ZW50Q2hpbGRyZW4oTWF0U3RlcCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBvdmVycmlkZSBfc3RlcHMhOiBRdWVyeUxpc3Q8TWF0U3RlcD47XG5cblx0LyoqIEBpZ25vcmUgU3RlcHMgdGhhdCBiZWxvbmcgdG8gdGhlIGN1cnJlbnQgc3RlcHBlciwgZXhjbHVkaW5nIG9uZXMgZnJvbSBuZXN0ZWQgc3RlcHBlcnMuICovXG5cdG92ZXJyaWRlIHJlYWRvbmx5IHN0ZXBzOiBRdWVyeUxpc3Q8TWF0U3RlcD4gPSBuZXcgUXVlcnlMaXN0PE1hdFN0ZXA+KCk7XG5cblx0LyoqIEBpZ25vcmUgQ3VzdG9tIGljb24gb3ZlcnJpZGVzIHBhc3NlZCBpbiBieSB0aGUgY29uc3VtZXIuICovXG5cdEBDb250ZW50Q2hpbGRyZW4oTWF0U3RlcHBlckljb24sIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgX2ljb25zITogUXVlcnlMaXN0PE1hdFN0ZXBwZXJJY29uPjtcblxuXHQvKiogQGlnbm9yZSBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGN1cnJlbnQgc3RlcCBpcyBkb25lIHRyYW5zaXRpb25pbmcgaW4uICovXG5cdEBPdXRwdXQoKSByZWFkb25seSBhbmltYXRpb25Eb25lOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cblx0LyoqIFdoZXRoZXIgcmlwcGxlcyBzaG91bGQgYmUgZGlzYWJsZWQgZm9yIHRoZSBzdGVwIGhlYWRlcnMuICovXG5cdEBJbnB1dCgpIGRpc2FibGVSaXBwbGU/OiBib29sZWFuO1xuXG5cdC8qKiBUaGVtZSBjb2xvciBmb3IgYWxsIG9mIHRoZSBzdGVwcyBpbiBzdGVwcGVyLiAqL1xuXHRASW5wdXQoKSBjb2xvcjogVGhlbWVQYWxldHRlO1xuXG5cdC8qKlxuXHQgKiBBIGZ1bmN0aW9uIHRoYXQgY29uc3RydWN0cyB0aGUgdGV4dCBpbiB0aGUgcHJvZ3Jlc3MgY3ljbGUgZm9yIHRoZSAnbmFycm93JyB2aWV3LlxuXHQgKlxuXHQgKiBEZWZhdWx0IHZhbHVlOiBgJ3tzZWxlY3RlZCBzdGVwfSBvZiB7dG90YWwgbnVtYmVyIG9mIHN0ZXBzfSdgXG5cdCAqL1xuXHRASW5wdXQoKSBpbmRpY2F0b3JGb3JtYXR0ZXI6IChpbmRleDogbnVtYmVyLCB0b3RhbDogbnVtYmVyKSA9PiBzdHJpbmc7XG5cblx0LyoqIFRoZSB0ZXh0IHRoYXQgcHJlY2VkZXMgdGhlIG5hbWUgb2YgdGhlIG5leHQgc3RlcCBsYWJlbCwgdXNlZCBpbiB0aGUgJ25hcnJvdycgdmlldy4gICAqL1xuXHRASW5wdXQoKSBuZXh0U3RlcExhYmVsUHJlZml4ID0gJ05leHQ6ICc7XG5cblx0LyoqIEBpZ25vcmUgQ29uc3VtZXItc3BlY2lmaWVkIHRlbXBsYXRlLXJlZnMgdG8gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgaGVhZGVyIGljb25zLiAqL1xuXHRfaWNvbk92ZXJyaWRlczogUmVjb3JkPHN0cmluZywgVGVtcGxhdGVSZWY8TWF0U3RlcHBlckljb25Db250ZXh0Pj4gPSB7fTtcblxuXHQvKiogQGlnbm9yZSBTdHJlYW0gb2YgYW5pbWF0aW9uIGBkb25lYCBldmVudHMgd2hlbiB0aGUgYm9keSBleHBhbmRzL2NvbGxhcHNlcy4gKi9cblx0cmVhZG9ubHkgX2FuaW1hdGlvbkRvbmUgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblxuXHQvKiogQGlnbm9yZSBXaGV0aGVyIHRoZSBzdGVwcGVyIGlzIGluIGEgbmFycm93IGNvbnRhaW5lciAqL1xuXHRfbmFycm93ID0gZmFsc2U7XG5cblx0LyoqIEBpZ25vcmUgRW1pdHMgd2hlbmV2ZXIgdGhlIGRyYXdlciBoYXMgc3RhcnRlZCBhbmltYXRpbmcuICovXG5cdHJlYWRvbmx5IF9sZWZ0RHJhd2VyU3RhcnRlZCA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXHQvKiogQGlnbm9yZSBFbWl0cyB3aGVuZXZlciB0aGUgZHJhd2VyIGlzIGRvbmUgYW5pbWF0aW5nLiAqL1xuXHRyZWFkb25seSBfbGVmdERyYXdlckVuZGVkID0gbmV3IFN1YmplY3Q8QW5pbWF0aW9uRXZlbnQ+KCk7XG5cdC8qKiBAaWdub3JlIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHNpZGVuYXYgYW5pbWF0aW9uLiAqL1xuXHRfbGVmdERyYXdlclN0YXRlOiAnb3Blbi1pbnN0YW50JyB8ICdvcGVuJyB8ICd2b2lkJyA9ICdvcGVuLWluc3RhbnQnO1xuXG5cdC8qKiBAaWdub3JlIEVtaXRzIHdoZW5ldmVyIHRoZSBkcmF3ZXIgaGFzIHN0YXJ0ZWQgYW5pbWF0aW5nLiAqL1xuXHRyZWFkb25seSBfdG9wRHJhd2VyU3RhcnRlZCA9IG5ldyBTdWJqZWN0PEFuaW1hdGlvbkV2ZW50PigpO1xuXHQvKiogQGlnbm9yZSBFbWl0cyB3aGVuZXZlciB0aGUgZHJhd2VyIGlzIGRvbmUgYW5pbWF0aW5nLiAqL1xuXHRyZWFkb25seSBfdG9wRHJhd2VyRW5kZWQgPSBuZXcgU3ViamVjdDxBbmltYXRpb25FdmVudD4oKTtcblx0LyoqIEBpZ25vcmUgQ3VycmVudCBzdGF0ZSBvZiB0aGUgc2lkZW5hdiBhbmltYXRpb24uICovXG5cdF90b3BEcmF3ZXJTdGF0ZTogJ29wZW4taW5zdGFudCcgfCAnb3BlbicgfCAndm9pZCcgPSAndm9pZCc7XG5cblx0LyoqIEBpZ25vcmUgKi8gcmVhZG9ubHkgX3Byb2dyZXNzQ2lyY2xlU2l6ZSA9IDgwO1xuXHQvKiogQGlnbm9yZSAqLyByZWFkb25seSBfcHJvZ3Jlc3NDaXJjbGVXaWR0aCA9IDU7XG5cdC8qKiBAaWdub3JlICovIF9zdGVwVHJhbnNpdGlvbmluZyA9IGZhbHNlO1xuXG5cdEBWaWV3Q2hpbGQoJ2VkaXRJY29uVGVtcGxhdGUnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuXHRwcml2YXRlIF9lZGl0SWNvblRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRAT3B0aW9uYWwoKSBkaXI6IERpcmVjdGlvbmFsaXR5LFxuXHRcdHByaXZhdGUgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuXHRcdHByaXZhdGUgX2J1aUVsUmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50Pixcblx0XHRASW5qZWN0KERPQ1VNRU5UKSBfZG9jdW1lbnQ6IGFueSxcblx0XHRAU2VsZigpIEBJbmplY3QoU1RFUFBFUl9HTE9CQUxfT1BUSU9OUykgc3RlcHBlck9wdGlvbnM6IFN0ZXBwZXJPcHRpb25zLFxuXHRcdEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBJbmplY3QoU1RFUFBFUl9HTE9CQUxfT1BUSU9OUykgZGVmYXVsdFN0ZXBwZXJPcHRpb25zPzogU3RlcHBlck9wdGlvbnNcblx0KSB7XG5cdFx0c3VwZXIoZGlyLCBjaGFuZ2VEZXRlY3RvclJlZiwgX2J1aUVsUmVmKTtcblx0XHR0aGlzLm9yaWVudGF0aW9uID0gJ3ZlcnRpY2FsJztcblx0XHR0aGlzLmluZGljYXRvckZvcm1hdHRlciA9IChpbmRleCwgdG90YWwpID0+IGAke2luZGV4fSBvZiAke3RvdGFsfWA7XG5cdFx0T2JqZWN0LmtleXMoZGVmYXVsdFN0ZXBwZXJPcHRpb25zIHx8IHt9KVxuXHRcdFx0LmZpbHRlcihrID0+IGsgIT09ICdkaXNwbGF5RGVmYXVsdEluZGljYXRvclR5cGUnKVxuXHRcdFx0LmZvckVhY2goKChrOiBrZXlvZiBTdGVwcGVyT3B0aW9ucykgPT4gKHN0ZXBwZXJPcHRpb25zW2tdID0gZGVmYXVsdFN0ZXBwZXJPcHRpb25zIVtrXSkpIGFzIGFueSk7XG5cdH1cblxuXHRvdmVycmlkZSBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG5cdFx0c3VwZXIubmdBZnRlckNvbnRlbnRJbml0KCk7XG5cdFx0dGhpcy5faWNvbnMuZm9yRWFjaCgoeyBuYW1lLCB0ZW1wbGF0ZVJlZiB9KSA9PiAodGhpcy5faWNvbk92ZXJyaWRlc1tuYW1lXSA9IHRlbXBsYXRlUmVmKSk7XG5cblx0XHQvLyBNYXJrIHRoZSBjb21wb25lbnQgZm9yIGNoYW5nZSBkZXRlY3Rpb24gd2hlbmV2ZXIgdGhlIGNvbnRlbnQgY2hpbGRyZW4gcXVlcnkgY2hhbmdlc1xuXHRcdHRoaXMuc3RlcHMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuXHRcdFx0dGhpcy5fc3RhdGVDaGFuZ2VkKCk7XG5cdFx0fSk7XG5cblx0XHR0aGlzLl9hbmltYXRpb25Eb25lXG5cdFx0XHQucGlwZShcblx0XHRcdFx0ZGlzdGluY3RVbnRpbENoYW5nZWQoKHgsIHkpID0+IHguZnJvbVN0YXRlID09PSB5LmZyb21TdGF0ZSAmJiB4LnRvU3RhdGUgPT09IHkudG9TdGF0ZSksXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKGV2ZW50ID0+IHtcblx0XHRcdFx0aWYgKChldmVudC50b1N0YXRlIGFzIFN0ZXBDb250ZW50UG9zaXRpb25TdGF0ZSkgPT09ICdjdXJyZW50Jykge1xuXHRcdFx0XHRcdHRoaXMuYW5pbWF0aW9uRG9uZS5lbWl0KCk7XG5cdFx0XHRcdFx0dGhpcy5fc3RlcFRyYW5zaXRpb25pbmcgPSBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl9sZWZ0RHJhd2VyRW5kZWRcblx0XHRcdC5waXBlKFxuXHRcdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgoeCwgeSkgPT4geC5mcm9tU3RhdGUgPT09IHkuZnJvbVN0YXRlICYmIHgudG9TdGF0ZSA9PT0geS50b1N0YXRlKSxcblx0XHRcdFx0ZmlsdGVyKGV2ID0+IGV2LnRvU3RhdGUgPT09ICd2b2lkJyAmJiBldi50b1N0YXRlICE9PSBldi5mcm9tU3RhdGUpLFxuXHRcdFx0XHR0YWtlVW50aWwodGhpcy5fZGVzdHJveWVkKVxuXHRcdFx0KVxuXHRcdFx0LnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRcdHRoaXMuX3RvcERyYXdlclN0YXRlID0gJ29wZW4nO1xuXHRcdFx0fSk7XG5cblx0XHR0aGlzLl90b3BEcmF3ZXJFbmRlZFxuXHRcdFx0LnBpcGUoXG5cdFx0XHRcdGRpc3RpbmN0VW50aWxDaGFuZ2VkKCh4LCB5KSA9PiB4LmZyb21TdGF0ZSA9PT0geS5mcm9tU3RhdGUgJiYgeC50b1N0YXRlID09PSB5LnRvU3RhdGUpLFxuXHRcdFx0XHRmaWx0ZXIoZXYgPT4gZXYudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIGV2LnRvU3RhdGUgIT09IGV2LmZyb21TdGF0ZSksXG5cdFx0XHRcdHRha2VVbnRpbCh0aGlzLl9kZXN0cm95ZWQpXG5cdFx0XHQpXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdFx0dGhpcy5fbGVmdERyYXdlclN0YXRlID0gJ29wZW4nO1xuXHRcdFx0fSk7XG5cdFx0dGhpcy5faWNvbk92ZXJyaWRlcy5lZGl0ID0gdGhpcy5faWNvbk92ZXJyaWRlcy5lZGl0IHx8IHRoaXMuX2VkaXRJY29uVGVtcGxhdGU7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfc3RlcElzTmF2aWdhYmxlKGluZGV4OiBudW1iZXIsIHN0ZXA6IE1hdFN0ZXApOiBib29sZWFuIHtcblx0XHRyZXR1cm4gc3RlcC5jb21wbGV0ZWQgfHwgdGhpcy5zZWxlY3RlZEluZGV4ID09PSBpbmRleCB8fCAhdGhpcy5saW5lYXI7XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfd2lkdGhDaGFuZ2VkKHc6IG51bWJlcikge1xuXHRcdGNvbnN0IG5hcnJvdyA9IE1hdGguYWJzKHcgLSBCUkVBS1BPSU5UKSA8IDIwID8gdGhpcy5fbmFycm93IDogdyA8IEJSRUFLUE9JTlQ7XG5cdFx0Y29uc3QgY2xzID0gJ2J1aS1zdGVwcGVyLW5hcnJvdyc7XG5cdFx0Y29uc3QgY2xhc3NMaXN0ID0gdGhpcy5fYnVpRWxSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3Q7XG5cdFx0aWYgKG5hcnJvdykge1xuXHRcdFx0dGhpcy5fbGVmdERyYXdlclN0YXRlID0gJ3ZvaWQnO1xuXHRcdFx0Y2xhc3NMaXN0LmFkZChjbHMpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLl90b3BEcmF3ZXJTdGF0ZSA9ICd2b2lkJztcblx0XHRcdGNsYXNzTGlzdC5yZW1vdmUoY2xzKTtcblx0XHR9XG5cdFx0aWYgKHRoaXMuX25hcnJvdyAhPT0gbmFycm93KSB7XG5cdFx0XHR0aGlzLl9uYXJyb3cgPSBuYXJyb3c7XG5cdFx0XHR0aGlzLl9zdGF0ZUNoYW5nZWQoKTtcblx0XHR9XG5cdH1cblxuXHQvKiogQGlnbm9yZSAqL1xuXHRfc3RhcnRTdGVwVHJhbnNpdGlvbigpIHtcblx0XHRzZXRUaW1lb3V0KCgpID0+IHtcblx0XHRcdHRoaXMuX3N0ZXBUcmFuc2l0aW9uaW5nID0gdHJ1ZTtcblx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cdFx0fSk7XG5cdH1cblxuXHR0b0N1c3RvbVN0ZXAoc3RlcDogYW55KSB7XG5cdFx0cmV0dXJuIDxhbnk+c3RlcDtcblx0fVxufVxuIiwiPGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLXdyYXBwZXJcIiBbc3R5bGUuZGlzcGxheV09XCJfbGVmdERyYXdlclN0YXRlLnN0YXJ0c1dpdGgoJ29wZW4nKSA/ICdmbGV4JyA6ICdibG9jaydcIiAjc2l6ZU1vbml0b3I+XG5cdDxkaXZcblx0XHRjbGFzcz1cImJ1aS1zdGVwcGVyLWxlZnQtaGVhZGVyLWNvbnRhaW5lclwiXG5cdFx0W0BsZWZ0RHJhd2VyXT1cIl9sZWZ0RHJhd2VyU3RhdGVcIlxuXHRcdChAbGVmdERyYXdlci5zdGFydCk9XCJfbGVmdERyYXdlclN0YXJ0ZWQubmV4dCgkZXZlbnQpXCJcblx0XHQoQGxlZnREcmF3ZXIuZG9uZSk9XCJfbGVmdERyYXdlckVuZGVkLm5leHQoJGV2ZW50KVwiXG5cdD5cblx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXAtcHJvZ3Jlc3MtbGFiZWxcIj5TdGVwIHt7IHNlbGVjdGVkSW5kZXggKyAxIH19IG9mIHt7IHN0ZXBzLmxlbmd0aCB9fTwvZGl2PlxuXHRcdDxkaXZcblx0XHRcdCpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzOyBsZXQgaSA9IGluZGV4OyBsZXQgaXNMYXN0ID0gbGFzdFwiXG5cdFx0XHRjbGFzcz1cImJ1aS1zdGVwcGVyLWhlYWRlci13cmFwcGVyXCJcblx0XHRcdFtjbGFzcy5idWktc3RlcHBlci12ZXJ0aWNhbC1saW5lXT1cIiFpc0xhc3RcIlxuXHRcdD5cblx0XHRcdDxtYXQtc3RlcC1oZWFkZXJcblx0XHRcdFx0Y2xhc3M9XCJidWktc3RlcHBlci1oZWFkZXJcIlxuXHRcdFx0XHQoY2xpY2spPVwic3RlcC5zZWxlY3QoKVwiXG5cdFx0XHRcdChrZXlkb3duKT1cIl9vbktleWRvd24oJGV2ZW50KVwiXG5cdFx0XHRcdFt0YWJJbmRleF09XCJfZ2V0Rm9jdXNJbmRleCgpID09PSBpID8gMCA6IC0xXCJcblx0XHRcdFx0W2lkXT1cIl9nZXRTdGVwTGFiZWxJZChpKVwiXG5cdFx0XHRcdFthdHRyLmFyaWEtcG9zaW5zZXRdPVwiaSArIDFcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLXNldHNpemVdPVwic3RlcHMubGVuZ3RoXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1jb250cm9sc109XCJfZ2V0U3RlcENvbnRlbnRJZChpKVwiXG5cdFx0XHRcdFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PSBpXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbF09XCJzdGVwLmFyaWFMYWJlbCB8fCBudWxsXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIiFzdGVwLmFyaWFMYWJlbCAmJiBzdGVwLmFyaWFMYWJlbGxlZGJ5ID8gc3RlcC5hcmlhTGFiZWxsZWRieSA6IG51bGxcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWRpc2FibGVkXT1cIl9zdGVwSXNOYXZpZ2FibGUoaSwgc3RlcCkgPyBudWxsIDogdHJ1ZVwiXG5cdFx0XHRcdFtpbmRleF09XCJpXCJcblx0XHRcdFx0W3N0YXRlXT1cIl9nZXRJbmRpY2F0b3JUeXBlKGksIHN0ZXAuc3RhdGUpXCJcblx0XHRcdFx0W2xhYmVsXT1cInN0ZXAuc3RlcExhYmVsIHx8IHN0ZXAubGFiZWxcIlxuXHRcdFx0XHRbc2VsZWN0ZWRdPVwic2VsZWN0ZWRJbmRleCA9PT0gaVwiXG5cdFx0XHRcdFthY3RpdmVdPVwiX3N0ZXBJc05hdmlnYWJsZShpLCBzdGVwKVwiXG5cdFx0XHRcdFtvcHRpb25hbF09XCJzdGVwLm9wdGlvbmFsXCJcblx0XHRcdFx0W2Vycm9yTWVzc2FnZV09XCJzdGVwLmVycm9yTWVzc2FnZVwiXG5cdFx0XHRcdFtpY29uT3ZlcnJpZGVzXT1cIl9pY29uT3ZlcnJpZGVzXCJcblx0XHRcdFx0W2Rpc2FibGVSaXBwbGVdPVwiZGlzYWJsZVJpcHBsZSB8fCAhX3N0ZXBJc05hdmlnYWJsZShpLCBzdGVwKVwiXG5cdFx0XHRcdFtjb2xvcl09XCJzdGVwLmNvbG9yIHx8IGNvbG9yXCJcblx0XHRcdD48L21hdC1zdGVwLWhlYWRlcj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cblx0PGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLWNvbnRlbnQtY29udGFpbmVyXCIgW2J1aVNpemluZ0J5XT1cInNpemVNb25pdG9yXCIgKGJ1aVJlc2l6ZWQpPVwiX3dpZHRoQ2hhbmdlZCgkZXZlbnQud2lkdGgpXCI+XG5cdFx0PGRpdlxuXHRcdFx0Y2xhc3M9XCJidWktc3RlcHBlci10b3AtaGVhZGVyLWNvbnRhaW5lclwiXG5cdFx0XHRbY2xhc3MuYnVpLXN0ZXBwZXItaGVhZGVyLWFjdGl2ZV09XCJfbGVmdERyYXdlclN0YXRlID09PSAndm9pZCdcIlxuXHRcdFx0W0B0b3BEcmF3ZXJdPVwiX3RvcERyYXdlclN0YXRlXCJcblx0XHRcdChAdG9wRHJhd2VyLnN0YXJ0KT1cIl90b3BEcmF3ZXJTdGFydGVkLm5leHQoJGV2ZW50KVwiXG5cdFx0XHQoQHRvcERyYXdlci5kb25lKT1cIl90b3BEcmF3ZXJFbmRlZC5uZXh0KCRldmVudClcIlxuXHRcdD5cblx0XHRcdDxkaXYgY2xhc3M9XCJidWktc3RlcHBlci10b3AtaGVhZGVyLXByb2dyZXNzXCI+XG5cdFx0XHRcdDxzcGFuIGNsYXNzPVwiYnVpLXN0ZXBwZXItdG9wLWhlYWRlci1pbmRpY2F0b3JcIj5cblx0XHRcdFx0XHRTdGVwIHt7IGluZGljYXRvckZvcm1hdHRlcihzZWxlY3RlZEluZGV4ICsgMSwgc3RlcHMubGVuZ3RoKSB9fVxuXHRcdFx0XHQ8L3NwYW4+XG5cdFx0XHQ8L2Rpdj5cblxuXHRcdFx0PGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLXByb2dyZXNzLWluZGljYXRvclwiPlxuXHRcdFx0XHQ8ZGl2XG5cdFx0XHRcdFx0cm9sZT1cImJ1dHRvblwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cInNlbGVjdGVkSW5kZXggPSBpXCJcblx0XHRcdFx0XHRjbGFzcz1cImJ1aS1zdGVwcGVyLXByb2dyZXNzLWluZGljYXRvci1zZWN0aW9uXCJcblx0XHRcdFx0XHQqbmdGb3I9XCJsZXQgcyBvZiBzdGVwczsgbGV0IGkgPSBpbmRleFwiXG5cdFx0XHRcdFx0W2NsYXNzLmJ1aS1zdGVwLXNlY3Rpb24taW50ZXJhY3RlZF09XCJpIDw9IHNlbGVjdGVkSW5kZXhcIlxuXHRcdFx0XHQ+PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJidWktc3RlcHBlci10b3AtaGVhZGVyLXRpdGxlLW5leHRcIiAqbmdJZj1cInNlbGVjdGVkSW5kZXggPCBzdGVwcy5sZW5ndGggLSAxXCI+XG5cdFx0XHRcdHt7IG5leHRTdGVwTGFiZWxQcmVmaXggfX1cblx0XHRcdFx0PG5nLXRlbXBsYXRlXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiXG5cdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBzdGVwcy5nZXQoc2VsZWN0ZWRJbmRleCArIDEpIH1cIlxuXHRcdFx0XHQ+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvZGl2PlxuXG5cdFx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItdG9wLWhlYWRlci10aXRsZXMtd3JhcHBlclwiICpuZ0lmPVwic2VsZWN0ZWRcIj5cblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRvQ3VzdG9tU3RlcChzZWxlY3RlZCkuc3RlcExhYmVsVG9wVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLXRvcC1oZWFkZXItdGl0bGVcIj5cblx0XHRcdFx0XHQ8bmctdGVtcGxhdGVcblx0XHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxhYmVsVGVtcGxhdGVcIlxuXHRcdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBzZWxlY3RlZCB9XCJcblx0XHRcdFx0XHQ+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdFx0PC9kaXY+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiYnVpLXN0ZXBwZXItY29udGVudC13cmFwcGVyXCIgW2NsYXNzLmJ1aS1zdGVwcGVyLWNvbnRlbnQtd3JhcHBlci10cmFuc2l0aW9uaW5nXT1cIl9zdGVwVHJhbnNpdGlvbmluZ1wiPlxuXHRcdFx0PGRpdlxuXHRcdFx0XHQqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwczsgbGV0IGkgPSBpbmRleFwiXG5cdFx0XHRcdGNsYXNzPVwiYnVpLXN0ZXBwZXItY29udGVudFwiXG5cdFx0XHRcdHJvbGU9XCJ0YWJwYW5lbFwiXG5cdFx0XHRcdFtAc3RlcFRyYW5zaXRpb25dPVwiX2dldEFuaW1hdGlvbkRpcmVjdGlvbihpKVwiXG5cdFx0XHRcdChAc3RlcFRyYW5zaXRpb24uc3RhcnQpPVwiX3N0YXJ0U3RlcFRyYW5zaXRpb24oKVwiXG5cdFx0XHRcdChAc3RlcFRyYW5zaXRpb24uZG9uZSk9XCJfYW5pbWF0aW9uRG9uZS5uZXh0KCRldmVudClcIlxuXHRcdFx0XHRbaWRdPVwiX2dldFN0ZXBDb250ZW50SWQoaSlcIlxuXHRcdFx0XHRbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiX2dldFN0ZXBMYWJlbElkKGkpXCJcblx0XHRcdFx0W2F0dHIuYXJpYS1leHBhbmRlZF09XCJzZWxlY3RlZEluZGV4ID09PSBpXCJcblx0XHRcdD5cblx0XHRcdFx0PGRpdiBjbGFzcz1cImJ1aS1zdGVwcGVyLWNvbnRlbnQtaGVhZGVyLWxhYmVsXCIgKm5nSWY9XCIhX25hcnJvd1wiPlxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0b0N1c3RvbVN0ZXAoc3RlcCkuc3RlcExhYmVsVG9wVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cblxuXHRcdFx0XHRcdDxkaXY+XG5cdFx0XHRcdFx0XHQ8bmctdGVtcGxhdGVcblx0XHRcdFx0XHRcdFx0W25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUZW1wbGF0ZVwiXG5cdFx0XHRcdFx0XHRcdFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogc3RlcCB9XCJcblx0XHRcdFx0XHRcdD48L25nLXRlbXBsYXRlPlxuXHRcdFx0XHRcdDwvZGl2PlxuXHRcdFx0XHQ8L2Rpdj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInN0ZXAuY29udGVudFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsYWJlbFRlbXBsYXRlIGxldC1zdGVwPlxuXHQ8bmctdGVtcGxhdGUgW25nSWZdPVwic3RlcC5zdGVwTGFiZWxcIiBbbmdJZkVsc2VdPVwic3RyaW5nTGFiZWxUZW1wbFwiPlxuXHRcdDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJzdGVwLnN0ZXBMYWJlbC50ZW1wbGF0ZVwiPjwvbmctdGVtcGxhdGU+XG5cdDwvbmctdGVtcGxhdGU+XG5cdDxuZy10ZW1wbGF0ZSAjc3RyaW5nTGFiZWxUZW1wbD57eyBzdGVwLmxhYmVsIH19PC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZWRpdEljb25UZW1wbGF0ZSBsZXQtaW5kZXg9XCJpbmRleFwiPlxuXHQ8c3Bhbj57eyBpbmRleCArIDEgfX08L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuIl19