@danske/sapphire-angular 1.31.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/esm2020/lib/badge/src/badge.component.mjs +4 -4
  2. package/esm2020/lib/button/src/button-group.component.mjs +6 -14
  3. package/esm2020/lib/button/src/button.component.mjs +9 -38
  4. package/esm2020/lib/button/src/icon-button.component.mjs +13 -40
  5. package/esm2020/lib/button/src/toggle-button.component.mjs +7 -6
  6. package/esm2020/lib/checkbox/src/checkbox-group.component.mjs +6 -3
  7. package/esm2020/lib/checkbox/src/checkbox.component.mjs +12 -4
  8. package/esm2020/lib/common/disabled.mjs +1 -1
  9. package/esm2020/lib/common/sapphire-view-encapsulation.mjs +3 -1
  10. package/esm2020/lib/core.module.mjs +8 -8
  11. package/esm2020/lib/field/src/field-control.mjs +2 -1
  12. package/esm2020/lib/field/src/field.component.mjs +8 -8
  13. package/esm2020/lib/help-button/public_api.mjs +3 -0
  14. package/esm2020/lib/help-button/src/help-button.component.mjs +112 -0
  15. package/esm2020/lib/help-button/src/help-button.module.mjs +33 -0
  16. package/esm2020/lib/icon/src/icon-size-provider.mjs +2 -2
  17. package/esm2020/lib/icon/src/icon.component.mjs +22 -37
  18. package/esm2020/lib/label/src/label.component.mjs +5 -5
  19. package/esm2020/lib/link/src/link.component.mjs +5 -5
  20. package/esm2020/lib/listbox/src/listbox-item.component.mjs +2 -2
  21. package/esm2020/lib/listbox/src/listbox.component.mjs +5 -5
  22. package/esm2020/lib/listbox/src/option-primary-text.directive.mjs +4 -2
  23. package/esm2020/lib/listbox/src/option.component.mjs +4 -2
  24. package/esm2020/lib/menu/src/menu-trigger.directive.mjs +5 -2
  25. package/esm2020/lib/menu/src/menu.component.mjs +4 -4
  26. package/esm2020/lib/modal/public_api.mjs +8 -12
  27. package/esm2020/lib/modal/src/dialog/confirmation-dialog.component.mjs +9 -7
  28. package/esm2020/lib/modal/src/dialog/danger-dialog.component.mjs +9 -7
  29. package/esm2020/lib/modal/src/dialog/dialog.component.mjs +10 -35
  30. package/esm2020/lib/modal/src/layout/modal-back-button.directive.mjs +13 -0
  31. package/esm2020/lib/modal/src/layout/modal-body.component.mjs +38 -0
  32. package/esm2020/lib/modal/src/layout/modal-close-button.directive.mjs +31 -0
  33. package/esm2020/lib/modal/src/layout/modal-footer.component.mjs +39 -0
  34. package/esm2020/lib/modal/src/layout/modal-header.component.mjs +77 -0
  35. package/esm2020/lib/modal/src/layout/modal-layout.component.mjs +15 -0
  36. package/esm2020/lib/modal/src/modal-base.component.mjs +7 -13
  37. package/esm2020/lib/modal/src/modal.module.mjs +43 -71
  38. package/esm2020/lib/modal/src/modal.service.mjs +1 -1
  39. package/esm2020/lib/modal/src/panel/panel.component.mjs +8 -15
  40. package/esm2020/lib/notification-badge/src/notification-badge.component.mjs +4 -4
  41. package/esm2020/lib/pagination/i18n/da-DK.json +2 -0
  42. package/esm2020/lib/pagination/i18n/de-DE.json +2 -0
  43. package/esm2020/lib/pagination/i18n/en-US.json +2 -0
  44. package/esm2020/lib/pagination/i18n/fi-FI.json +2 -0
  45. package/esm2020/lib/pagination/i18n/nb-NO.json +2 -0
  46. package/esm2020/lib/pagination/i18n/pl-PL.json +2 -0
  47. package/esm2020/lib/pagination/i18n/sv-SE.json +2 -0
  48. package/esm2020/lib/pagination/src/page-selection-row.component.mjs +119 -0
  49. package/esm2020/lib/pagination/src/pagination.component.mjs +20 -4
  50. package/esm2020/lib/pagination/src/pagination.module.mjs +4 -3
  51. package/esm2020/lib/popover/src/popover-trigger.directive.mjs +14 -4
  52. package/esm2020/lib/radio/src/radio-group.component.mjs +3 -3
  53. package/esm2020/lib/radio/src/radio.component.mjs +3 -3
  54. package/esm2020/lib/segmented-tabs/src/segmented-tabs.component.mjs +4 -4
  55. package/esm2020/lib/select/src/basic-select/basic-select.component.mjs +7 -27
  56. package/esm2020/lib/select/src/select/select.component.mjs +5 -5
  57. package/esm2020/lib/skeleton/src/skeleton.component.mjs +2 -2
  58. package/esm2020/lib/switch/src/switch.component.mjs +5 -5
  59. package/esm2020/lib/table/public_api.mjs +2 -1
  60. package/esm2020/lib/table/src/table-footer.directive.mjs +20 -0
  61. package/esm2020/lib/table/src/table-head-cell.component.mjs +3 -3
  62. package/esm2020/lib/table/src/table-sort-header.directive.mjs +2 -3
  63. package/esm2020/lib/table/src/table-sort.directive.mjs +13 -3
  64. package/esm2020/lib/table/src/table.component.mjs +7 -14
  65. package/esm2020/lib/table/src/table.directive.mjs +12 -6
  66. package/esm2020/lib/table/src/table.module.mjs +6 -1
  67. package/esm2020/lib/text-field/src/text-field.component.mjs +5 -5
  68. package/esm2020/lib/theme/src/themes.mjs +4 -4
  69. package/esm2020/lib/tooltip/src/tooltip.directive.mjs +3 -3
  70. package/esm2020/lib/typography/src/paragraph.component.mjs +5 -5
  71. package/esm2020/public-api.mjs +2 -2
  72. package/fesm2015/danske-sapphire-angular.mjs +721 -847
  73. package/fesm2015/danske-sapphire-angular.mjs.map +1 -1
  74. package/fesm2020/danske-sapphire-angular.mjs +728 -852
  75. package/fesm2020/danske-sapphire-angular.mjs.map +1 -1
  76. package/lib/badge/src/badge.component.d.ts +2 -2
  77. package/lib/button/src/button-group.component.d.ts +3 -5
  78. package/lib/button/src/button.component.d.ts +4 -11
  79. package/lib/button/src/icon-button.component.d.ts +4 -11
  80. package/lib/button/src/toggle-button.component.d.ts +3 -3
  81. package/lib/checkbox/src/checkbox-group.component.d.ts +1 -0
  82. package/lib/checkbox/src/checkbox.component.d.ts +3 -1
  83. package/lib/common/disabled.d.ts +1 -1
  84. package/lib/core.module.d.ts +2 -2
  85. package/lib/field/src/field.component.d.ts +4 -4
  86. package/lib/help-button/public_api.d.ts +2 -0
  87. package/lib/help-button/src/help-button.component.d.ts +50 -0
  88. package/lib/help-button/src/help-button.module.d.ts +7 -0
  89. package/lib/icon/src/icon-size-provider.d.ts +2 -2
  90. package/lib/icon/src/icon.component.d.ts +6 -3
  91. package/lib/label/src/label.component.d.ts +3 -3
  92. package/lib/link/src/link.component.d.ts +1 -1
  93. package/lib/listbox/src/listbox-item.component.d.ts +1 -1
  94. package/lib/listbox/src/listbox.component.d.ts +1 -1
  95. package/lib/menu/src/menu.component.d.ts +1 -1
  96. package/lib/modal/public_api.d.ts +7 -11
  97. package/lib/modal/src/dialog/dialog.component.d.ts +2 -17
  98. package/lib/modal/src/layout/modal-back-button.directive.d.ts +5 -0
  99. package/lib/modal/src/{panel/panel-content.component.d.ts → layout/modal-body.component.d.ts} +3 -3
  100. package/lib/modal/src/{modal-close-button.directive.d.ts → layout/modal-close-button.directive.d.ts} +2 -2
  101. package/lib/modal/src/layout/modal-footer.component.d.ts +21 -0
  102. package/lib/modal/src/layout/modal-header.component.d.ts +29 -0
  103. package/lib/modal/src/layout/modal-layout.component.d.ts +6 -0
  104. package/lib/modal/src/modal-base.component.d.ts +5 -7
  105. package/lib/modal/src/modal.module.d.ts +21 -25
  106. package/lib/modal/src/modal.service.d.ts +2 -2
  107. package/lib/modal/src/panel/panel.component.d.ts +3 -6
  108. package/lib/notification-badge/src/notification-badge.component.d.ts +1 -1
  109. package/lib/pagination/src/page-selection-row.component.d.ts +39 -0
  110. package/lib/pagination/src/pagination.component.d.ts +8 -1
  111. package/lib/pagination/src/pagination.module.d.ts +8 -7
  112. package/lib/popover/src/popover-trigger.directive.d.ts +6 -1
  113. package/lib/segmented-tabs/src/segmented-tabs.component.d.ts +1 -1
  114. package/lib/select/src/basic-select/basic-select.component.d.ts +5 -7
  115. package/lib/switch/src/switch.component.d.ts +2 -2
  116. package/lib/table/public_api.d.ts +1 -0
  117. package/lib/table/src/table-footer.directive.d.ts +7 -0
  118. package/lib/table/src/table-sort.directive.d.ts +7 -4
  119. package/lib/table/src/table.component.d.ts +4 -3
  120. package/lib/table/src/table.directive.d.ts +3 -1
  121. package/lib/table/src/table.module.d.ts +12 -11
  122. package/lib/typography/src/paragraph.component.d.ts +1 -1
  123. package/package.json +4 -4
  124. package/public-api.d.ts +1 -1
  125. package/esm2020/lib/contextual-help/public_api.mjs +0 -6
  126. package/esm2020/lib/contextual-help/src/contextual-help.component.mjs +0 -112
  127. package/esm2020/lib/contextual-help/src/contextual-help.module.mjs +0 -33
  128. package/esm2020/lib/modal/src/dialog/dialog-close-button.directive.mjs +0 -18
  129. package/esm2020/lib/modal/src/dialog/dialog-content.directive.mjs +0 -29
  130. package/esm2020/lib/modal/src/dialog/dialog-footer.component.mjs +0 -77
  131. package/esm2020/lib/modal/src/dialog/dialog-header.component.mjs +0 -66
  132. package/esm2020/lib/modal/src/modal-close-button.directive.mjs +0 -31
  133. package/esm2020/lib/modal/src/panel/inline-panel.component.mjs +0 -15
  134. package/esm2020/lib/modal/src/panel/panel-back-button.directive.mjs +0 -13
  135. package/esm2020/lib/modal/src/panel/panel-close-button.directive.mjs +0 -16
  136. package/esm2020/lib/modal/src/panel/panel-content.component.mjs +0 -38
  137. package/esm2020/lib/modal/src/panel/panel-footer.component.mjs +0 -38
  138. package/esm2020/lib/modal/src/panel/panel-header.component.mjs +0 -69
  139. package/lib/contextual-help/public_api.d.ts +0 -2
  140. package/lib/contextual-help/src/contextual-help.component.d.ts +0 -50
  141. package/lib/contextual-help/src/contextual-help.module.d.ts +0 -7
  142. package/lib/modal/src/dialog/dialog-close-button.directive.d.ts +0 -7
  143. package/lib/modal/src/dialog/dialog-content.directive.d.ts +0 -13
  144. package/lib/modal/src/dialog/dialog-footer.component.d.ts +0 -37
  145. package/lib/modal/src/dialog/dialog-header.component.d.ts +0 -25
  146. package/lib/modal/src/panel/inline-panel.component.d.ts +0 -6
  147. package/lib/modal/src/panel/panel-back-button.directive.d.ts +0 -5
  148. package/lib/modal/src/panel/panel-close-button.directive.d.ts +0 -6
  149. package/lib/modal/src/panel/panel-footer.component.d.ts +0 -21
  150. package/lib/modal/src/panel/panel-header.component.d.ts +0 -26
@@ -48,8 +48,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
48
48
  * ```tsx
49
49
  * <sp-basic-select
50
50
  * placeholder="Select an option"
51
- * size="small"
52
- * variant="contained"
51
+ * size="sm"
52
+ * variant="secondary"
53
53
  * >
54
54
  * <sp-option value="option1">First Option</sp-option>
55
55
  * <sp-option value="option2">Second Option</sp-option>
@@ -63,11 +63,11 @@ export class BasicSelectComponent extends SelectComponentBase {
63
63
  this.focusMonitor = focusMonitor;
64
64
  /**
65
65
  * Size of the button
66
+ * @default 'md'
66
67
  */
67
- this.size = 'medium';
68
+ this.size = 'md';
68
69
  /**
69
70
  * Visual variations
70
- * TODO(v4): remove 'contained' and 'uncontained'
71
71
  * @default 'secondary-ghost'
72
72
  */
73
73
  this.variant = 'secondary-ghost';
@@ -84,26 +84,6 @@ export class BasicSelectComponent extends SelectComponentBase {
84
84
  _onFocusChange(focusOrigin) {
85
85
  this.focused = Boolean(focusOrigin);
86
86
  }
87
- getButtonVariant() {
88
- switch (this.variant) {
89
- case 'primary':
90
- return 'primary';
91
- case 'tertiary-ghost':
92
- return 'tertiary';
93
- default:
94
- return 'secondary';
95
- }
96
- }
97
- getButtonAppearance() {
98
- switch (this.variant) {
99
- case 'uncontained':
100
- case 'secondary-ghost':
101
- case 'tertiary-ghost':
102
- return 'ghost';
103
- default:
104
- return 'fill';
105
- }
106
- }
107
87
  }
108
88
  BasicSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: BasicSelectComponent, deps: [{ token: i1.SelectValueHolder }, { token: i2.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component });
109
89
  BasicSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: BasicSelectComponent, selector: "sp-basic-select", inputs: { size: "size", variant: "variant" }, host: { properties: { "attr.aria-label": "null", "attr.aria-labelledby": "null" } }, providers: [
@@ -117,7 +97,7 @@ BasicSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", v
117
97
  useExisting: forwardRef(() => BasicSelectComponent),
118
98
  },
119
99
  ViewEncapsulationProvider,
120
- ], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerRef"], descendants: true }, { propertyName: "triggerElementRef", first: true, predicate: ["triggerElementRef"], descendants: true, read: ElementRef }, { propertyName: "listbox", first: true, predicate: ListboxComponent, descendants: true }], exportAs: ["spBasicSelect"], usesInheritance: true, ngImport: i0, template: "<div style=\"position: relative\">\n <sp-hidden-select></sp-hidden-select>\n <button\n sp-button\n [variant]=\"getButtonVariant()\"\n [appearance]=\"getButtonAppearance()\"\n [size]=\"size\"\n iconAlign=\"right\"\n [spPopoverTriggerFor]=\"popover\"\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n aria-haspopup=\"listbox\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [disabled]=\"disabled\"\n >\n <span *ngIf=\"selectedOptions.length === 0\">\n {{ placeholder }}\n </span>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n <sp-icon spButtonIcon name=\"chevronDown\"></sp-icon>\n </button>\n <ng-template #popover>\n <sp-popover noPadding>\n <sp-listbox\n [spListboxItems]=\"listboxChildren\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selected)=\"_handleSelected()\"\n [size]=\"size\"\n >\n </sp-listbox>\n </sp-popover>\n </ng-template>\n</div>\n", styles: [".sapphire-select{position:relative;display:inline-block;color:var(--sapphire-semantic-color-content-default-primary);width:var(--sapphire-semantic-size-width-control-default);font-family:var(--sapphire-semantic-font-name-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-select__button{display:flex;align-items:center;height:var(--sapphire-semantic-size-height-input-lg);box-sizing:border-box;cursor:pointer;padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);border:none;background-color:var(--sapphire-semantic-color-background-field-default);width:100%;outline:0;text-align:left;color:inherit;font-family:inherit;box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-default);border-radius:var(--sapphire-semantic-size-radius-sm);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-select--md .sapphire-select__button{height:var(--sapphire-semantic-size-height-input-md);padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-md);gap:var(--sapphire-semantic-size-spacing-20)}.sapphire-select__value{flex:1 0 0;min-width:0;font-size:var(--sapphire-semantic-size-font-control-default);width:100%;font-weight:var(--sapphire-semantic-font-weight-default-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sapphire-select--md .sapphire-select__value{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__icon-container{line-height:0;width:var(--sapphire-semantic-size-icon-lg);height:var(--sapphire-semantic-size-icon-lg)}.sapphire-select--md .sapphire-select__icon-container{width:var(--sapphire-semantic-size-icon-md);height:var(--sapphire-semantic-size-icon-md)}.sapphire-select__prefix{display:inherit;font-size:var(--sapphire-semantic-size-font-control-default)}.sapphire-select--md .sapphire-select__prefix{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__search-input:not([data-hidden=true]){all:inherit}.sapphire-select__search-input::placeholder{color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__native-select{position:absolute;inset:0;opacity:.01;width:100%;z-index:1}.sapphire-select--error:not(.is-disabled) .sapphire-select__button{box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-error)}.sapphire-select:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-focus-ring)}.sapphire-select--error:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-border-field-error)}.sapphire-select.is-disabled .sapphire-select__button{cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IconComponent, selector: "sp-icon", inputs: ["name", "size"] }, { kind: "component", type: i5.ListboxComponent, selector: "sp-listbox", inputs: ["selectedValues", "spListboxItems", "disabled", "multiple", "navigationWrapDisabled", "aria-label", "aria-labelledby", "size", "id"], outputs: ["selectedValuesChange", "selected"], exportAs: ["spListbox"] }, { kind: "component", type: i6.PopoverComponent, selector: "sp-popover", inputs: ["noPadding", "noMaxWidth", "noAutoFocus", "trapFocus"] }, { kind: "directive", type: i7.PopoverTriggerDirective, selector: "[spPopoverTriggerFor]", inputs: ["spPopoverPlacement", "spPopoverTriggerFor", "spPopoverNonModal", "spPopoverTriggerOpenOnPressStart", "spPopoverTriggerCloseOnScroll", "spPopoverTriggerDisabled"], outputs: ["spPopoverTriggerOpened", "spPopoverTriggerClosed"], exportAs: ["spPopoverTrigger"] }, { kind: "directive", type: i2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "component", type: i8.ButtonComponent, selector: "button[sp-button], a[sp-button]", inputs: ["variant", "appearance", "surface", "size", "disabled", "iconAlign", "type"] }, { kind: "directive", type: i9.ButtonIconDirective, selector: "[spButtonIcon]" }, { kind: "component", type: i10.HiddenSelectComponent, selector: "sp-hidden-select" }] });
100
+ ], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerRef"], descendants: true }, { propertyName: "triggerElementRef", first: true, predicate: ["triggerElementRef"], descendants: true, read: ElementRef }, { propertyName: "listbox", first: true, predicate: ListboxComponent, descendants: true }], exportAs: ["spBasicSelect"], usesInheritance: true, ngImport: i0, template: "<div style=\"position: relative\">\n <sp-hidden-select></sp-hidden-select>\n <button\n sp-button\n [variant]=\"variant\"\n [size]=\"size\"\n iconAlign=\"right\"\n [spPopoverTriggerFor]=\"popover\"\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n aria-haspopup=\"listbox\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [disabled]=\"disabled\"\n >\n <span *ngIf=\"selectedOptions.length === 0\">\n {{ placeholder }}\n </span>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n <sp-icon spButtonIcon name=\"chevronDown\"></sp-icon>\n </button>\n <ng-template #popover>\n <sp-popover noPadding>\n <sp-listbox\n [spListboxItems]=\"listboxChildren\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selected)=\"_handleSelected()\"\n [size]=\"size\"\n >\n </sp-listbox>\n </sp-popover>\n </ng-template>\n</div>\n", styles: [".sapphire-select{position:relative;display:inline-block;color:var(--sapphire-semantic-color-content-default-primary);width:var(--sapphire-semantic-size-width-control-default);font-family:var(--sapphire-semantic-font-name-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-select__button{display:flex;align-items:center;height:var(--sapphire-semantic-size-height-input-lg);box-sizing:border-box;cursor:pointer;padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);border:none;background-color:var(--sapphire-semantic-color-background-field-default);width:100%;outline:0;text-align:left;color:inherit;font-family:inherit;box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-default);border-radius:var(--sapphire-semantic-size-radius-sm);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-select--md .sapphire-select__button{height:var(--sapphire-semantic-size-height-input-md);padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-md);gap:var(--sapphire-semantic-size-spacing-20)}.sapphire-select__value{flex:1 0 0;min-width:0;font-size:var(--sapphire-semantic-size-font-control-default);width:100%;font-weight:var(--sapphire-semantic-font-weight-default-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sapphire-select--md .sapphire-select__value{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__icon-container{line-height:0;width:var(--sapphire-semantic-size-icon-lg);height:var(--sapphire-semantic-size-icon-lg)}.sapphire-select--md .sapphire-select__icon-container{width:var(--sapphire-semantic-size-icon-md);height:var(--sapphire-semantic-size-icon-md)}.sapphire-select__prefix{display:inherit;font-size:var(--sapphire-semantic-size-font-control-default)}.sapphire-select--md .sapphire-select__prefix{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__search-input:not([data-hidden=true]){all:inherit}.sapphire-select__search-input::placeholder{color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__native-select{position:absolute;inset:0;opacity:.01;width:100%;z-index:1}.sapphire-select--error:not(.is-disabled) .sapphire-select__button{box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-error)}.sapphire-select:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-focus-ring)}.sapphire-select--error:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-border-field-error)}.sapphire-select.is-disabled .sapphire-select__button{cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IconComponent, selector: "sp-icon", inputs: ["name", "size"] }, { kind: "component", type: i5.ListboxComponent, selector: "sp-listbox", inputs: ["selectedValues", "spListboxItems", "disabled", "multiple", "navigationWrapDisabled", "aria-label", "aria-labelledby", "size", "id"], outputs: ["selectedValuesChange", "selected"], exportAs: ["spListbox"] }, { kind: "component", type: i6.PopoverComponent, selector: "sp-popover", inputs: ["noPadding", "noMaxWidth", "noAutoFocus", "trapFocus"] }, { kind: "directive", type: i7.PopoverTriggerDirective, selector: "[spPopoverTriggerFor]", inputs: ["spPopoverPlacement", "spPopoverTriggerFor", "spPopoverNonModal", "spPopoverTriggerOpenOnPressStart", "spPopoverTriggerCloseOnScroll", "spPopoverTriggerDisabled", "spPopoverDisablePushInsideViewport"], outputs: ["spPopoverTriggerOpened", "spPopoverTriggerClosed"], exportAs: ["spPopoverTrigger"] }, { kind: "directive", type: i2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "component", type: i8.ButtonComponent, selector: "button[sp-button], a[sp-button]", inputs: ["variant", "size", "disabled", "iconAlign", "type"] }, { kind: "directive", type: i9.ButtonIconDirective, selector: "[spButtonIcon]" }, { kind: "component", type: i10.HiddenSelectComponent, selector: "sp-hidden-select" }] });
121
101
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: BasicSelectComponent, decorators: [{
122
102
  type: Component,
123
103
  args: [{ selector: 'sp-basic-select', exportAs: 'spBasicSelect', providers: [
@@ -134,7 +114,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
134
114
  ], host: {
135
115
  '[attr.aria-label]': 'null',
136
116
  '[attr.aria-labelledby]': 'null',
137
- }, template: "<div style=\"position: relative\">\n <sp-hidden-select></sp-hidden-select>\n <button\n sp-button\n [variant]=\"getButtonVariant()\"\n [appearance]=\"getButtonAppearance()\"\n [size]=\"size\"\n iconAlign=\"right\"\n [spPopoverTriggerFor]=\"popover\"\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n aria-haspopup=\"listbox\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [disabled]=\"disabled\"\n >\n <span *ngIf=\"selectedOptions.length === 0\">\n {{ placeholder }}\n </span>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n <sp-icon spButtonIcon name=\"chevronDown\"></sp-icon>\n </button>\n <ng-template #popover>\n <sp-popover noPadding>\n <sp-listbox\n [spListboxItems]=\"listboxChildren\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selected)=\"_handleSelected()\"\n [size]=\"size\"\n >\n </sp-listbox>\n </sp-popover>\n </ng-template>\n</div>\n", styles: [".sapphire-select{position:relative;display:inline-block;color:var(--sapphire-semantic-color-content-default-primary);width:var(--sapphire-semantic-size-width-control-default);font-family:var(--sapphire-semantic-font-name-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-select__button{display:flex;align-items:center;height:var(--sapphire-semantic-size-height-input-lg);box-sizing:border-box;cursor:pointer;padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);border:none;background-color:var(--sapphire-semantic-color-background-field-default);width:100%;outline:0;text-align:left;color:inherit;font-family:inherit;box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-default);border-radius:var(--sapphire-semantic-size-radius-sm);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-select--md .sapphire-select__button{height:var(--sapphire-semantic-size-height-input-md);padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-md);gap:var(--sapphire-semantic-size-spacing-20)}.sapphire-select__value{flex:1 0 0;min-width:0;font-size:var(--sapphire-semantic-size-font-control-default);width:100%;font-weight:var(--sapphire-semantic-font-weight-default-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sapphire-select--md .sapphire-select__value{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__icon-container{line-height:0;width:var(--sapphire-semantic-size-icon-lg);height:var(--sapphire-semantic-size-icon-lg)}.sapphire-select--md .sapphire-select__icon-container{width:var(--sapphire-semantic-size-icon-md);height:var(--sapphire-semantic-size-icon-md)}.sapphire-select__prefix{display:inherit;font-size:var(--sapphire-semantic-size-font-control-default)}.sapphire-select--md .sapphire-select__prefix{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__search-input:not([data-hidden=true]){all:inherit}.sapphire-select__search-input::placeholder{color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__native-select{position:absolute;inset:0;opacity:.01;width:100%;z-index:1}.sapphire-select--error:not(.is-disabled) .sapphire-select__button{box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-error)}.sapphire-select:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-focus-ring)}.sapphire-select--error:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-border-field-error)}.sapphire-select.is-disabled .sapphire-select__button{cursor:not-allowed}\n"] }]
117
+ }, template: "<div style=\"position: relative\">\n <sp-hidden-select></sp-hidden-select>\n <button\n sp-button\n [variant]=\"variant\"\n [size]=\"size\"\n iconAlign=\"right\"\n [spPopoverTriggerFor]=\"popover\"\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n cdkMonitorElementFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n aria-haspopup=\"listbox\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"ariaLabelledby\"\n [disabled]=\"disabled\"\n >\n <span *ngIf=\"selectedOptions.length === 0\">\n {{ placeholder }}\n </span>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n <sp-icon spButtonIcon name=\"chevronDown\"></sp-icon>\n </button>\n <ng-template #popover>\n <sp-popover noPadding>\n <sp-listbox\n [spListboxItems]=\"listboxChildren\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selected)=\"_handleSelected()\"\n [size]=\"size\"\n >\n </sp-listbox>\n </sp-popover>\n </ng-template>\n</div>\n", styles: [".sapphire-select{position:relative;display:inline-block;color:var(--sapphire-semantic-color-content-default-primary);width:var(--sapphire-semantic-size-width-control-default);font-family:var(--sapphire-semantic-font-name-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-select__button{display:flex;align-items:center;height:var(--sapphire-semantic-size-height-input-lg);box-sizing:border-box;cursor:pointer;padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);border:none;background-color:var(--sapphire-semantic-color-background-field-default);width:100%;outline:0;text-align:left;color:inherit;font-family:inherit;box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-default);border-radius:var(--sapphire-semantic-size-radius-sm);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-select--md .sapphire-select__button{height:var(--sapphire-semantic-size-height-input-md);padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-md);gap:var(--sapphire-semantic-size-spacing-20)}.sapphire-select__value{flex:1 0 0;min-width:0;font-size:var(--sapphire-semantic-size-font-control-default);width:100%;font-weight:var(--sapphire-semantic-font-weight-default-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sapphire-select--md .sapphire-select__value{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__icon-container{line-height:0;width:var(--sapphire-semantic-size-icon-lg);height:var(--sapphire-semantic-size-icon-lg)}.sapphire-select--md .sapphire-select__icon-container{width:var(--sapphire-semantic-size-icon-md);height:var(--sapphire-semantic-size-icon-md)}.sapphire-select__prefix{display:inherit;font-size:var(--sapphire-semantic-size-font-control-default)}.sapphire-select--md .sapphire-select__prefix{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__search-input:not([data-hidden=true]){all:inherit}.sapphire-select__search-input::placeholder{color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__native-select{position:absolute;inset:0;opacity:.01;width:100%;z-index:1}.sapphire-select--error:not(.is-disabled) .sapphire-select__button{box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-error)}.sapphire-select:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-focus-ring)}.sapphire-select--error:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-border-field-error)}.sapphire-select.is-disabled .sapphire-select__button{cursor:not-allowed}\n"] }]
138
118
  }], ctorParameters: function () { return [{ type: i1.SelectValueHolder }, { type: i2.FocusMonitor }]; }, propDecorators: { size: [{
139
119
  type: Input
140
120
  }], variant: [{
@@ -149,4 +129,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
149
129
  type: ViewChild,
150
130
  args: [ListboxComponent]
151
131
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9iYXNpYy1zZWxlY3QvYmFzaWMtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9iYXNpYy1zZWxlY3QvYmFzaWMtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHlCQUF5QixHQUMxQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFFeEY7OztHQUdHO0FBVUgsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHlCQUF5Qjs7dUhBQTVELDBCQUEwQjsyR0FBMUIsMEJBQTBCLDBEQVAxQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO1NBQzFEO0tBQ0Y7MkZBRVUsMEJBQTBCO2tCQVR0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQ0FBaUM7b0JBQzNDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzt5QkFDMUQ7cUJBQ0Y7aUJBQ0Y7O0FBR0Q7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUF1QkgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQWdDM0QsWUFDRSxXQUE4QixFQUN0QixZQUEwQjtRQUVsQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFGWCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWpDcEM7O1dBRUc7UUFFSCxTQUFJLEdBQWlDLFFBQVEsQ0FBQztRQUU5Qzs7OztXQUlHO1FBRUgsWUFBTyxHQU1hLGlCQUFpQixDQUFDO1FBVzlCLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFPeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUEyQixTQUFTO1FBQ3hDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUNwQyxXQUFXLENBQ1osQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUF3QjtRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsUUFBUSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3BCLEtBQUssU0FBUztnQkFDWixPQUFPLFNBQVMsQ0FBQztZQUNuQixLQUFLLGdCQUFnQjtnQkFDbkIsT0FBTyxVQUFVLENBQUM7WUFDcEI7Z0JBQ0UsT0FBTyxXQUFXLENBQUM7U0FDdEI7SUFDSCxDQUFDO0lBRUQsbUJBQW1CO1FBQ2pCLFFBQVEsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNwQixLQUFLLGFBQWEsQ0FBQztZQUNuQixLQUFLLGlCQUFpQixDQUFDO1lBQ3ZCLEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPLE9BQU8sQ0FBQztZQUNqQjtnQkFDRSxPQUFPLE1BQU0sQ0FBQztTQUNqQjtJQUNILENBQUM7O2lIQTVFVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiw2S0FqQnBCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDbkQsS0FBSyxFQUFFLElBQUk7U0FDWjtRQUNEO1lBQ0UsT0FBTyxFQUFFLG1CQUFtQjtZQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1NBQ3BEO1FBQ0QseUJBQXlCO0tBQzFCLHdOQThCdUMsVUFBVSx1REFHdkMsZ0JBQWdCLG9HQ3BHN0IsaStDQStDQTsyRkQwQmEsb0JBQW9CO2tCQXRCaEMsU0FBUzsrQkFDRSxpQkFBaUIsWUFHakIsZUFBZSxhQUNkO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzt5QkFDcEQ7d0JBQ0QseUJBQXlCO3FCQUMxQixRQUNLO3dCQUNKLG1CQUFtQixFQUFFLE1BQU07d0JBQzNCLHdCQUF3QixFQUFFLE1BQU07cUJBQ2pDO21JQU9ELElBQUk7c0JBREgsS0FBSztnQkFTTixPQUFPO3NCQUROLEtBQUs7Z0JBVUksVUFBVTtzQkFEbkIsU0FBUzt1QkFBQyxZQUFZO2dCQUliLGlCQUFpQjtzQkFEMUIsU0FBUzt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSTFDLE9BQU87c0JBRGhCLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3BvcG92ZXIvc3JjL3BvcG92ZXItdHJpZ2dlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGlzdGJveENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2xpc3Rib3gvc3JjL2xpc3Rib3guY29tcG9uZW50JztcbmltcG9ydCB7IEZvY3VzTW9uaXRvciwgRm9jdXNPcmlnaW4gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vY29tbW9uL3NlbGVjdC1jb21wb25lbnQtYmFzZSc7XG5pbXBvcnQge1xuICBTZWxlY3RWYWx1ZUhvbGRlcixcbiAgU2luZ2xlU2VsZWN0RGlyZWN0aXZlQmFzZSxcbn0gZnJvbSAnLi4vY29tbW9uL3NlbGVjdC12YWx1ZS1ob2xkZXInO1xuaW1wb3J0IHsgVmlld0VuY2Fwc3VsYXRpb25Qcm92aWRlciB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9zYXBwaGlyZS12aWV3LWVuY2Fwc3VsYXRpb24nO1xuXG4vKipcbiAqIE5PVEU6IFN1cHBvcnQgZm9yIG11bHRpcGxlIHNlbGVjdGlvbiBpbiBiYXNpYyBzZWxlY3QgaXMgcmVtb3ZlZCwgYmFzZWQgb25cbiAqIGEgVVggZGVjaXNpb24uIFNlZSBjb21taXQgbWVzc2FnZSBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzcC1iYXNpYy1zZWxlY3Q6bm90KFttdWx0aXBsZV0pJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU2VsZWN0VmFsdWVIb2xkZXIsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBCYXNpY1NpbmdsZVNlbGVjdERpcmVjdGl2ZSksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQmFzaWNTaW5nbGVTZWxlY3REaXJlY3RpdmUgZXh0ZW5kcyBTaW5nbGVTZWxlY3REaXJlY3RpdmVCYXNlIHt9XG5cbi8qKlxuICogQWxsb3dzIHVzZXIgdG8gc2VsZWN0IGEgc2luZ2xlIG9wdGlvbiBmcm9tIGEgbGlzdCwgc2ltaWxhciB0byBuYXRpdmUgc2VsZWN0XG4gKiBjb21wb25lbnQuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHRzeFxuICogPHNwLWJhc2ljLXNlbGVjdFxuICogICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYW4gb3B0aW9uXCJcbiAqICAgIHNpemU9XCJzbWFsbFwiXG4gKiAgICB2YXJpYW50PVwiY29udGFpbmVkXCJcbiAqID5cbiAqICAgPHNwLW9wdGlvbiB2YWx1ZT1cIm9wdGlvbjFcIj5GaXJzdCBPcHRpb248L3NwLW9wdGlvbj5cbiAqICAgPHNwLW9wdGlvbiB2YWx1ZT1cIm9wdGlvbjJcIj5TZWNvbmQgT3B0aW9uPC9zcC1vcHRpb24+XG4gKiAgIDxzcC1vcHRpb24gdmFsdWU9XCJvcHRpb24zXCI+VGhpcmQgT3B0aW9uPC9zcC1vcHRpb24+XG4gKiA8L3NwLWJhc2ljLXNlbGVjdD5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzcC1iYXNpYy1zZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vYmFzaWMtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYmFzaWMtc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnc3BCYXNpY1NlbGVjdCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQmFzaWNTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTZWxlY3RDb21wb25lbnRCYXNlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQmFzaWNTZWxlY3RDb21wb25lbnQpLFxuICAgIH0sXG4gICAgVmlld0VuY2Fwc3VsYXRpb25Qcm92aWRlcixcbiAgXSxcbiAgaG9zdDoge1xuICAgICdbYXR0ci5hcmlhLWxhYmVsXSc6ICdudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdudWxsJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgQmFzaWNTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBTZWxlY3RDb21wb25lbnRCYXNlIHtcbiAgLyoqXG4gICAqIFNpemUgb2YgdGhlIGJ1dHRvblxuICAgKi9cbiAgQElucHV0KClcbiAgc2l6ZTogJ3NtYWxsJyB8ICdtZWRpdW0nIHwgJ2xhcmdlJyA9ICdtZWRpdW0nO1xuXG4gIC8qKlxuICAgKiBWaXN1YWwgdmFyaWF0aW9uc1xuICAgKiBUT0RPKHY0KTogcmVtb3ZlICdjb250YWluZWQnIGFuZCAndW5jb250YWluZWQnXG4gICAqIEBkZWZhdWx0ICdzZWNvbmRhcnktZ2hvc3QnXG4gICAqL1xuICBASW5wdXQoKVxuICB2YXJpYW50OlxuICAgIHwgJ3ByaW1hcnknXG4gICAgfCAnc2Vjb25kYXJ5LWZpbGwnXG4gICAgfCAnc2Vjb25kYXJ5LWdob3N0J1xuICAgIHwgJ3RlcnRpYXJ5LWdob3N0J1xuICAgIHwgJ2NvbnRhaW5lZCdcbiAgICB8ICd1bmNvbnRhaW5lZCcgPSAnc2Vjb25kYXJ5LWdob3N0JztcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyUmVmJylcbiAgcHJvdGVjdGVkIHRyaWdnZXJSZWY6IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXJFbGVtZW50UmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByb3RlY3RlZCB0cmlnZ2VyRWxlbWVudFJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKExpc3Rib3hDb21wb25lbnQpXG4gIHByb3RlY3RlZCBsaXN0Ym94OiBMaXN0Ym94Q29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgZm9jdXNlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHZhbHVlSG9sZGVyOiBTZWxlY3RWYWx1ZUhvbGRlcixcbiAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yXG4gICkge1xuICAgIHN1cGVyKHZhbHVlSG9sZGVyKTtcbiAgfVxuXG4gIGZvY3VzKGZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbiA9ICdwcm9ncmFtJykge1xuICAgIGlmICh0aGlzLnRyaWdnZXJFbGVtZW50UmVmKSB7XG4gICAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYShcbiAgICAgICAgdGhpcy50cmlnZ2VyRWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LFxuICAgICAgICBmb2N1c09yaWdpblxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBpc0ZvY3VzZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZm9jdXNlZDtcbiAgfVxuXG4gIF9vbkZvY3VzQ2hhbmdlKGZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbikge1xuICAgIHRoaXMuZm9jdXNlZCA9IEJvb2xlYW4oZm9jdXNPcmlnaW4pO1xuICB9XG5cbiAgZ2V0QnV0dG9uVmFyaWFudCgpIHtcbiAgICBzd2l0Y2ggKHRoaXMudmFyaWFudCkge1xuICAgICAgY2FzZSAncHJpbWFyeSc6XG4gICAgICAgIHJldHVybiAncHJpbWFyeSc7XG4gICAgICBjYXNlICd0ZXJ0aWFyeS1naG9zdCc6XG4gICAgICAgIHJldHVybiAndGVydGlhcnknO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdzZWNvbmRhcnknO1xuICAgIH1cbiAgfVxuXG4gIGdldEJ1dHRvbkFwcGVhcmFuY2UoKSB7XG4gICAgc3dpdGNoICh0aGlzLnZhcmlhbnQpIHtcbiAgICAgIGNhc2UgJ3VuY29udGFpbmVkJzpcbiAgICAgIGNhc2UgJ3NlY29uZGFyeS1naG9zdCc6XG4gICAgICBjYXNlICd0ZXJ0aWFyeS1naG9zdCc6XG4gICAgICAgIHJldHVybiAnZ2hvc3QnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdmaWxsJztcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmVcIj5cbiAgPHNwLWhpZGRlbi1zZWxlY3Q+PC9zcC1oaWRkZW4tc2VsZWN0PlxuICA8YnV0dG9uXG4gICAgc3AtYnV0dG9uXG4gICAgW3ZhcmlhbnRdPVwiZ2V0QnV0dG9uVmFyaWFudCgpXCJcbiAgICBbYXBwZWFyYW5jZV09XCJnZXRCdXR0b25BcHBlYXJhbmNlKClcIlxuICAgIFtzaXplXT1cInNpemVcIlxuICAgIGljb25BbGlnbj1cInJpZ2h0XCJcbiAgICBbc3BQb3BvdmVyVHJpZ2dlckZvcl09XCJwb3BvdmVyXCJcbiAgICBzcFBvcG92ZXJQbGFjZW1lbnQ9XCJib3R0b20gc3RhcnRcIlxuICAgICN0cmlnZ2VyRWxlbWVudFJlZlxuICAgICN0cmlnZ2VyUmVmPVwic3BQb3BvdmVyVHJpZ2dlclwiXG4gICAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgICAoc3BQb3BvdmVyVHJpZ2dlck9wZW5lZCk9XCJfb25PcGVuKClcIlxuICAgIChzcFBvcG92ZXJUcmlnZ2VyQ2xvc2VkKT1cIl9vbkNsb3NlKClcIlxuICAgIGNka01vbml0b3JFbGVtZW50Rm9jdXNcbiAgICAoY2RrRm9jdXNDaGFuZ2UpPVwiX29uRm9jdXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiYXJpYUxhYmVsbGVkYnlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDBcIj5cbiAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgPC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWxlY3Rpb25UZXh0XCI+e3tcbiAgICAgICAgZ2V0U2VsZWN0aW9uVGV4dCgpXG4gICAgICB9fTwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3Atc2VsZWN0aW9uLXRleHRcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPHNwLWljb24gc3BCdXR0b25JY29uIG5hbWU9XCJjaGV2cm9uRG93blwiPjwvc3AtaWNvbj5cbiAgPC9idXR0b24+XG4gIDxuZy10ZW1wbGF0ZSAjcG9wb3Zlcj5cbiAgICA8c3AtcG9wb3ZlciBub1BhZGRpbmc+XG4gICAgICA8c3AtbGlzdGJveFxuICAgICAgICBbc3BMaXN0Ym94SXRlbXNdPVwibGlzdGJveENoaWxkcmVuXCJcbiAgICAgICAgbmF2aWdhdGlvbldyYXBEaXNhYmxlZFxuICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICBbKHNlbGVjdGVkVmFsdWVzKV09XCJsaXN0Ym94VmFsdWVcIlxuICAgICAgICAoc2VsZWN0ZWQpPVwiX2hhbmRsZVNlbGVjdGVkKClcIlxuICAgICAgICBbc2l6ZV09XCJzaXplXCJcbiAgICAgID5cbiAgICAgIDwvc3AtbGlzdGJveD5cbiAgICA8L3NwLXBvcG92ZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtc2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9iYXNpYy1zZWxlY3QvYmFzaWMtc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9iYXNpYy1zZWxlY3QvYmFzaWMtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHlCQUF5QixHQUMxQixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7Ozs7Ozs7Ozs7QUFFeEY7OztHQUdHO0FBVUgsTUFBTSxPQUFPLDBCQUEyQixTQUFRLHlCQUF5Qjs7dUhBQTVELDBCQUEwQjsyR0FBMUIsMEJBQTBCLDBEQVAxQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO1NBQzFEO0tBQ0Y7MkZBRVUsMEJBQTBCO2tCQVR0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxpQ0FBaUM7b0JBQzNDLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwyQkFBMkIsQ0FBQzt5QkFDMUQ7cUJBQ0Y7aUJBQ0Y7O0FBR0Q7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUF1QkgsTUFBTSxPQUFPLG9CQUFxQixTQUFRLG1CQUFtQjtJQWlDM0QsWUFDRSxXQUE4QixFQUN0QixZQUEwQjtRQUVsQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFGWCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWxDcEM7OztXQUdHO1FBRUgsU0FBSSxHQUF1QixJQUFJLENBQUM7UUFFaEM7OztXQUdHO1FBRUgsWUFBTyxHQU9lLGlCQUFpQixDQUFDO1FBV2hDLFlBQU8sR0FBRyxLQUFLLENBQUM7SUFPeEIsQ0FBQztJQUVELEtBQUssQ0FBQyxjQUEyQixTQUFTO1FBQ3hDLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUN4QixJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUNwQyxXQUFXLENBQ1osQ0FBQztTQUNIO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVELGNBQWMsQ0FBQyxXQUF3QjtRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN0QyxDQUFDOztpSEF2RFUsb0JBQW9CO3FHQUFwQixvQkFBb0IsNktBakJwQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1lBQ25ELEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztTQUNwRDtRQUNELHlCQUF5QjtLQUMxQix3TkErQnVDLFVBQVUsdURBR3ZDLGdCQUFnQixvR0NyRzdCLDA2Q0E4Q0E7MkZEMkJhLG9CQUFvQjtrQkF0QmhDLFNBQVM7K0JBQ0UsaUJBQWlCLFlBR2pCLGVBQWUsYUFDZDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7eUJBQ3BEO3dCQUNELHlCQUF5QjtxQkFDMUIsUUFDSzt3QkFDSixtQkFBbUIsRUFBRSxNQUFNO3dCQUMzQix3QkFBd0IsRUFBRSxNQUFNO3FCQUNqQzttSUFRRCxJQUFJO3NCQURILEtBQUs7Z0JBUU4sT0FBTztzQkFETixLQUFLO2dCQVdJLFVBQVU7c0JBRG5CLFNBQVM7dUJBQUMsWUFBWTtnQkFJYixpQkFBaUI7c0JBRDFCLFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUkxQyxPQUFPO3NCQURoQixTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBmb3J3YXJkUmVmLFxuICBJbnB1dCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9wb3BvdmVyL3NyYy9wb3BvdmVyLXRyaWdnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IExpc3Rib3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9saXN0Ym94L3NyYy9saXN0Ym94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGb2N1c01vbml0b3IsIEZvY3VzT3JpZ2luIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgU2VsZWN0Q29tcG9uZW50QmFzZSB9IGZyb20gJy4uL2NvbW1vbi9zZWxlY3QtY29tcG9uZW50LWJhc2UnO1xuaW1wb3J0IHtcbiAgU2VsZWN0VmFsdWVIb2xkZXIsXG4gIFNpbmdsZVNlbGVjdERpcmVjdGl2ZUJhc2UsXG59IGZyb20gJy4uL2NvbW1vbi9zZWxlY3QtdmFsdWUtaG9sZGVyJztcbmltcG9ydCB7IFZpZXdFbmNhcHN1bGF0aW9uUHJvdmlkZXIgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vc2FwcGhpcmUtdmlldy1lbmNhcHN1bGF0aW9uJztcblxuLyoqXG4gKiBOT1RFOiBTdXBwb3J0IGZvciBtdWx0aXBsZSBzZWxlY3Rpb24gaW4gYmFzaWMgc2VsZWN0IGlzIHJlbW92ZWQsIGJhc2VkIG9uXG4gKiBhIFVYIGRlY2lzaW9uLiBTZWUgY29tbWl0IG1lc3NhZ2UgZm9yIG1vcmUgZGV0YWlscy5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnc3AtYmFzaWMtc2VsZWN0Om5vdChbbXVsdGlwbGVdKScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNlbGVjdFZhbHVlSG9sZGVyLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQmFzaWNTaW5nbGVTZWxlY3REaXJlY3RpdmUpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEJhc2ljU2luZ2xlU2VsZWN0RGlyZWN0aXZlIGV4dGVuZHMgU2luZ2xlU2VsZWN0RGlyZWN0aXZlQmFzZSB7fVxuXG4vKipcbiAqIEFsbG93cyB1c2VyIHRvIHNlbGVjdCBhIHNpbmdsZSBvcHRpb24gZnJvbSBhIGxpc3QsIHNpbWlsYXIgdG8gbmF0aXZlIHNlbGVjdFxuICogY29tcG9uZW50LlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0c3hcbiAqIDxzcC1iYXNpYy1zZWxlY3RcbiAqICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IGFuIG9wdGlvblwiXG4gKiAgICBzaXplPVwic21cIlxuICogICAgdmFyaWFudD1cInNlY29uZGFyeVwiXG4gKiA+XG4gKiAgIDxzcC1vcHRpb24gdmFsdWU9XCJvcHRpb24xXCI+Rmlyc3QgT3B0aW9uPC9zcC1vcHRpb24+XG4gKiAgIDxzcC1vcHRpb24gdmFsdWU9XCJvcHRpb24yXCI+U2Vjb25kIE9wdGlvbjwvc3Atb3B0aW9uPlxuICogICA8c3Atb3B0aW9uIHZhbHVlPVwib3B0aW9uM1wiPlRoaXJkIE9wdGlvbjwvc3Atb3B0aW9uPlxuICogPC9zcC1iYXNpYy1zZWxlY3Q+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3AtYmFzaWMtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Jhc2ljLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Jhc2ljLXNlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBleHBvcnRBczogJ3NwQmFzaWNTZWxlY3QnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJhc2ljU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogU2VsZWN0Q29tcG9uZW50QmFzZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEJhc2ljU2VsZWN0Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uUHJvdmlkZXIsXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnbnVsbCcsXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGNsYXNzIEJhc2ljU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgU2VsZWN0Q29tcG9uZW50QmFzZSB7XG4gIC8qKlxuICAgKiBTaXplIG9mIHRoZSBidXR0b25cbiAgICogQGRlZmF1bHQgJ21kJ1xuICAgKi9cbiAgQElucHV0KClcbiAgc2l6ZTogJ3NtJyB8ICdtZCcgfCAnbGcnID0gJ21kJztcblxuICAvKipcbiAgICogVmlzdWFsIHZhcmlhdGlvbnNcbiAgICogQGRlZmF1bHQgJ3NlY29uZGFyeS1naG9zdCdcbiAgICovXG4gIEBJbnB1dCgpXG4gIHZhcmlhbnQ6XG4gICAgfCAncHJpbWFyeSdcbiAgICB8ICdzZWNvbmRhcnknXG4gICAgfCAnc2Vjb25kYXJ5LWdob3N0J1xuICAgIHwgJ3NlY29uZGFyeS10ZXh0J1xuICAgIHwgJ3RlcnRpYXJ5J1xuICAgIHwgJ3RlcnRpYXJ5LWdob3N0J1xuICAgIHwgJ3RlcnRpYXJ5LXRleHQnID0gJ3NlY29uZGFyeS1naG9zdCc7XG5cbiAgQFZpZXdDaGlsZCgndHJpZ2dlclJlZicpXG4gIHByb3RlY3RlZCB0cmlnZ2VyUmVmOiBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyRWxlbWVudFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcm90ZWN0ZWQgdHJpZ2dlckVsZW1lbnRSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZChMaXN0Ym94Q29tcG9uZW50KVxuICBwcm90ZWN0ZWQgbGlzdGJveDogTGlzdGJveENvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGZvY3VzZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB2YWx1ZUhvbGRlcjogU2VsZWN0VmFsdWVIb2xkZXIsXG4gICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvclxuICApIHtcbiAgICBzdXBlcih2YWx1ZUhvbGRlcik7XG4gIH1cblxuICBmb2N1cyhmb2N1c09yaWdpbjogRm9jdXNPcmlnaW4gPSAncHJvZ3JhbScpIHtcbiAgICBpZiAodGhpcy50cmlnZ2VyRWxlbWVudFJlZikge1xuICAgICAgdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEoXG4gICAgICAgIHRoaXMudHJpZ2dlckVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcbiAgICAgICAgZm9jdXNPcmlnaW5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgaXNGb2N1c2VkKCkge1xuICAgIHJldHVybiB0aGlzLmZvY3VzZWQ7XG4gIH1cblxuICBfb25Gb2N1c0NoYW5nZShmb2N1c09yaWdpbjogRm9jdXNPcmlnaW4pIHtcbiAgICB0aGlzLmZvY3VzZWQgPSBCb29sZWFuKGZvY3VzT3JpZ2luKTtcbiAgfVxufVxuIiwiPGRpdiBzdHlsZT1cInBvc2l0aW9uOiByZWxhdGl2ZVwiPlxuICA8c3AtaGlkZGVuLXNlbGVjdD48L3NwLWhpZGRlbi1zZWxlY3Q+XG4gIDxidXR0b25cbiAgICBzcC1idXR0b25cbiAgICBbdmFyaWFudF09XCJ2YXJpYW50XCJcbiAgICBbc2l6ZV09XCJzaXplXCJcbiAgICBpY29uQWxpZ249XCJyaWdodFwiXG4gICAgW3NwUG9wb3ZlclRyaWdnZXJGb3JdPVwicG9wb3ZlclwiXG4gICAgc3BQb3BvdmVyUGxhY2VtZW50PVwiYm90dG9tIHN0YXJ0XCJcbiAgICAjdHJpZ2dlckVsZW1lbnRSZWZcbiAgICAjdHJpZ2dlclJlZj1cInNwUG9wb3ZlclRyaWdnZXJcIlxuICAgIChrZXlkb3duKT1cImhhbmRsZUtleURvd24oJGV2ZW50KVwiXG4gICAgKHNwUG9wb3ZlclRyaWdnZXJPcGVuZWQpPVwiX29uT3BlbigpXCJcbiAgICAoc3BQb3BvdmVyVHJpZ2dlckNsb3NlZCk9XCJfb25DbG9zZSgpXCJcbiAgICBjZGtNb25pdG9yRWxlbWVudEZvY3VzXG4gICAgKGNka0ZvY3VzQ2hhbmdlKT1cIl9vbkZvY3VzQ2hhbmdlKCRldmVudClcIlxuICAgIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5XCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICA+XG4gICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwXCI+XG4gICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgIDwvc3Bhbj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VsZWN0aW9uVGV4dFwiPnt7XG4gICAgICAgIGdldFNlbGVjdGlvblRleHQoKVxuICAgICAgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNwLXNlbGVjdGlvbi10ZXh0XCI+PC9uZy1jb250ZW50PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxzcC1pY29uIHNwQnV0dG9uSWNvbiBuYW1lPVwiY2hldnJvbkRvd25cIj48L3NwLWljb24+XG4gIDwvYnV0dG9uPlxuICA8bmctdGVtcGxhdGUgI3BvcG92ZXI+XG4gICAgPHNwLXBvcG92ZXIgbm9QYWRkaW5nPlxuICAgICAgPHNwLWxpc3Rib3hcbiAgICAgICAgW3NwTGlzdGJveEl0ZW1zXT1cImxpc3Rib3hDaGlsZHJlblwiXG4gICAgICAgIG5hdmlnYXRpb25XcmFwRGlzYWJsZWRcbiAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgWyhzZWxlY3RlZFZhbHVlcyldPVwibGlzdGJveFZhbHVlXCJcbiAgICAgICAgKHNlbGVjdGVkKT1cIl9oYW5kbGVTZWxlY3RlZCgpXCJcbiAgICAgICAgW3NpemVdPVwic2l6ZVwiXG4gICAgICA+XG4gICAgICA8L3NwLWxpc3Rib3g+XG4gICAgPC9zcC1wb3BvdmVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
@@ -291,7 +291,7 @@ export class SelectComponent extends SelectComponentBase {
291
291
  }
292
292
  }
293
293
  SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SelectComponent, deps: [{ token: i1.SelectValueHolder }, { token: i2.FocusMonitor }, { token: i2.InputModalityDetector }, { token: i3.FieldComponent, optional: true }, { token: i4.SearchableSelectDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
294
- SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: SelectComponent, selector: "sp-select", host: { properties: { "class.sapphire-select--error": "_field?.hasError(this)", "class.sapphire-select--md": "_field?.size === \"medium\"", "class.is-focus": "isFocusVisible()", "class.is-disabled": "isDisabled()", "attr.id": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.placeholder": "null" }, classAttribute: "sapphire-select" }, providers: [
294
+ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: SelectComponent, selector: "sp-select", host: { properties: { "class.sapphire-select--error": "_field?.hasError(this)", "class.sapphire-select--md": "_field?.size === \"md\"", "class.is-focus": "isFocusVisible()", "class.is-disabled": "isDisabled()", "attr.id": "null", "attr.aria-label": "null", "attr.aria-labelledby": "null", "attr.placeholder": "null" }, classAttribute: "sapphire-select" }, providers: [
295
295
  {
296
296
  provide: NG_VALUE_ACCESSOR,
297
297
  useExisting: forwardRef(() => SelectComponent),
@@ -305,7 +305,7 @@ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
305
305
  provide: FieldControl,
306
306
  useExisting: forwardRef(() => SelectComponent),
307
307
  },
308
- ], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerRef"], descendants: true }, { propertyName: "triggerElementRef", first: true, predicate: ["triggerElementRef"], descendants: true, read: ElementRef }, { propertyName: "listbox", first: true, predicate: ListboxComponent, descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, read: ElementRef }], exportAs: ["spSelect"], usesInheritance: true, hostDirectives: [{ directive: i5.UseComponentStylesOnHost }], ngImport: i0, template: "<sp-hidden-select></sp-hidden-select>\n<div\n role=\"button\"\n aria-haspopup=\"listbox\"\n class=\"sapphire-select__button\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverTriggerDisabled]=\"disabled\"\n spPopoverTriggerOpenOnPressStart\n spPopoverTriggerCloseOnScroll\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (focus)=\"_onFocus()\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n [spPopoverNonModal]=\"searchable\"\n [id]=\"id\"\n [tabindex]=\"-1\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getAriaLabelledBy()\"\n [attr.aria-describedby]=\"_field?.error?.id || _field?.note?.id\"\n [attr.aria-invalid]=\"_field?.hasError(this) ? true : null\"\n>\n <div class=\"sapphire-select__value\" [id]=\"_valueContainerId\">\n <input\n *ngIf=\"searchable\"\n #searchInput\n tabindex=\"-1\"\n role=\"combobox\"\n class=\"sapphire-select__search-input\"\n [spListboxInput]=\"listbox\"\n [spVisuallyHidden]=\"!_isInputVisible()\"\n [attr.data-hidden]=\"!_isInputVisible()\"\n [placeholder]=\"placeholder || ''\"\n (keydown)=\"_onInputKeydown($event)\"\n (beforeinput)=\"open()\"\n [value]=\"_searchableSelectDirective?.searchValue\"\n (input)=\"_onSearchInput($event)\"\n />\n <ng-container *ngIf=\"!searchable || !_isInputVisible()\">\n <div\n *ngIf=\"selectedOptions.length === 0\"\n class=\"sapphire-select__placeholder\"\n >\n {{ placeholder }}\n </div>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"sapphire-select__icon-container\">\n <sp-icon name=\"chevronDown\"></sp-icon>\n </div>\n</div>\n<ng-template #popover>\n <sp-popover\n [style.display]=\"\n (filteredChildren$ | async)?.length === 0 ? 'none' : undefined\n \"\n noPadding\n noMaxWidth\n [style.min-width]=\"triggerElementRef.offsetWidth + 'px'\"\n >\n <sp-listbox\n [spListboxItems]=\"(filteredChildren$ | async) || undefined\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selectedValuesChange)=\"_searchableSelectDirective?.setSearchValue('')\"\n (selected)=\"_handleSelected()\"\n [size]=\"_field?.size\"\n >\n </sp-listbox>\n </sp-popover>\n</ng-template>\n", styles: [".sapphire-select{position:relative;display:inline-block;color:var(--sapphire-semantic-color-content-default-primary);width:var(--sapphire-semantic-size-width-control-default);font-family:var(--sapphire-semantic-font-name-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-select__button{display:flex;align-items:center;height:var(--sapphire-semantic-size-height-input-lg);box-sizing:border-box;cursor:pointer;padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);border:none;background-color:var(--sapphire-semantic-color-background-field-default);width:100%;outline:0;text-align:left;color:inherit;font-family:inherit;box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-default);border-radius:var(--sapphire-semantic-size-radius-sm);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-select--md .sapphire-select__button{height:var(--sapphire-semantic-size-height-input-md);padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-md);gap:var(--sapphire-semantic-size-spacing-20)}.sapphire-select__value{flex:1 0 0;min-width:0;font-size:var(--sapphire-semantic-size-font-control-default);width:100%;font-weight:var(--sapphire-semantic-font-weight-default-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sapphire-select--md .sapphire-select__value{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__icon-container{line-height:0;width:var(--sapphire-semantic-size-icon-lg);height:var(--sapphire-semantic-size-icon-lg)}.sapphire-select--md .sapphire-select__icon-container{width:var(--sapphire-semantic-size-icon-md);height:var(--sapphire-semantic-size-icon-md)}.sapphire-select__prefix{display:inherit;font-size:var(--sapphire-semantic-size-font-control-default)}.sapphire-select--md .sapphire-select__prefix{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__search-input:not([data-hidden=true]){all:inherit}.sapphire-select__search-input::placeholder{color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__native-select{position:absolute;inset:0;opacity:.01;width:100%;z-index:1}.sapphire-select--error:not(.is-disabled) .sapphire-select__button{box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-error)}.sapphire-select:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-focus-ring)}.sapphire-select--error:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-border-field-error)}.sapphire-select.is-disabled .sapphire-select__button{cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.IconComponent, selector: "sp-icon", inputs: ["name", "size"] }, { kind: "component", type: i8.ListboxComponent, selector: "sp-listbox", inputs: ["selectedValues", "spListboxItems", "disabled", "multiple", "navigationWrapDisabled", "aria-label", "aria-labelledby", "size", "id"], outputs: ["selectedValuesChange", "selected"], exportAs: ["spListbox"] }, { kind: "directive", type: i9.ListboxInputDirective, selector: "input[spListboxInput]", inputs: ["spListboxInput"] }, { kind: "component", type: i10.PopoverComponent, selector: "sp-popover", inputs: ["noPadding", "noMaxWidth", "noAutoFocus", "trapFocus"] }, { kind: "directive", type: i11.PopoverTriggerDirective, selector: "[spPopoverTriggerFor]", inputs: ["spPopoverPlacement", "spPopoverTriggerFor", "spPopoverNonModal", "spPopoverTriggerOpenOnPressStart", "spPopoverTriggerCloseOnScroll", "spPopoverTriggerDisabled"], outputs: ["spPopoverTriggerOpened", "spPopoverTriggerClosed"], exportAs: ["spPopoverTrigger"] }, { kind: "directive", type: i2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i12.VisuallyHiddenDirective, selector: "[spVisuallyHidden]", inputs: ["spVisuallyHidden"] }, { kind: "component", type: i13.HiddenSelectComponent, selector: "sp-hidden-select" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
308
+ ], viewQueries: [{ propertyName: "triggerRef", first: true, predicate: ["triggerRef"], descendants: true }, { propertyName: "triggerElementRef", first: true, predicate: ["triggerElementRef"], descendants: true, read: ElementRef }, { propertyName: "listbox", first: true, predicate: ListboxComponent, descendants: true }, { propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true, read: ElementRef }], exportAs: ["spSelect"], usesInheritance: true, hostDirectives: [{ directive: i5.UseComponentStylesOnHost }], ngImport: i0, template: "<sp-hidden-select></sp-hidden-select>\n<div\n role=\"button\"\n aria-haspopup=\"listbox\"\n class=\"sapphire-select__button\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverTriggerDisabled]=\"disabled\"\n spPopoverTriggerOpenOnPressStart\n spPopoverTriggerCloseOnScroll\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (focus)=\"_onFocus()\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n [spPopoverNonModal]=\"searchable\"\n spPopoverDisablePushInsideViewport=\"true\"\n [id]=\"id\"\n [tabindex]=\"-1\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getAriaLabelledBy()\"\n [attr.aria-describedby]=\"_field?.error?.id || _field?.note?.id\"\n [attr.aria-invalid]=\"_field?.hasError(this) ? true : null\"\n>\n <div class=\"sapphire-select__value\" [id]=\"_valueContainerId\">\n <input\n *ngIf=\"searchable\"\n #searchInput\n tabindex=\"-1\"\n role=\"combobox\"\n class=\"sapphire-select__search-input\"\n [spListboxInput]=\"listbox\"\n [spVisuallyHidden]=\"!_isInputVisible()\"\n [attr.data-hidden]=\"!_isInputVisible()\"\n [placeholder]=\"placeholder || ''\"\n (keydown)=\"_onInputKeydown($event)\"\n (beforeinput)=\"open()\"\n [value]=\"_searchableSelectDirective?.searchValue\"\n (input)=\"_onSearchInput($event)\"\n />\n <ng-container *ngIf=\"!searchable || !_isInputVisible()\">\n <div\n *ngIf=\"selectedOptions.length === 0\"\n class=\"sapphire-select__placeholder\"\n >\n {{ placeholder }}\n </div>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"sapphire-select__icon-container\">\n <sp-icon name=\"chevronDown\"></sp-icon>\n </div>\n</div>\n<ng-template #popover>\n <sp-popover\n [style.display]=\"\n (filteredChildren$ | async)?.length === 0 ? 'none' : undefined\n \"\n noPadding\n noMaxWidth\n [style.min-width]=\"triggerElementRef.offsetWidth + 'px'\"\n >\n <sp-listbox\n [spListboxItems]=\"(filteredChildren$ | async) || undefined\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selectedValuesChange)=\"_searchableSelectDirective?.setSearchValue('')\"\n (selected)=\"_handleSelected()\"\n [size]=\"_field?.size\"\n >\n </sp-listbox>\n </sp-popover>\n</ng-template>\n", styles: [".sapphire-select{position:relative;display:inline-block;color:var(--sapphire-semantic-color-content-default-primary);width:var(--sapphire-semantic-size-width-control-default);font-family:var(--sapphire-semantic-font-name-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-select__button{display:flex;align-items:center;height:var(--sapphire-semantic-size-height-input-lg);box-sizing:border-box;cursor:pointer;padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);border:none;background-color:var(--sapphire-semantic-color-background-field-default);width:100%;outline:0;text-align:left;color:inherit;font-family:inherit;box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-default);border-radius:var(--sapphire-semantic-size-radius-sm);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-select--md .sapphire-select__button{height:var(--sapphire-semantic-size-height-input-md);padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-md);gap:var(--sapphire-semantic-size-spacing-20)}.sapphire-select__value{flex:1 0 0;min-width:0;font-size:var(--sapphire-semantic-size-font-control-default);width:100%;font-weight:var(--sapphire-semantic-font-weight-default-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sapphire-select--md .sapphire-select__value{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__icon-container{line-height:0;width:var(--sapphire-semantic-size-icon-lg);height:var(--sapphire-semantic-size-icon-lg)}.sapphire-select--md .sapphire-select__icon-container{width:var(--sapphire-semantic-size-icon-md);height:var(--sapphire-semantic-size-icon-md)}.sapphire-select__prefix{display:inherit;font-size:var(--sapphire-semantic-size-font-control-default)}.sapphire-select--md .sapphire-select__prefix{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__search-input:not([data-hidden=true]){all:inherit}.sapphire-select__search-input::placeholder{color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__native-select{position:absolute;inset:0;opacity:.01;width:100%;z-index:1}.sapphire-select--error:not(.is-disabled) .sapphire-select__button{box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-error)}.sapphire-select:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-focus-ring)}.sapphire-select--error:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-border-field-error)}.sapphire-select.is-disabled .sapphire-select__button{cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.IconComponent, selector: "sp-icon", inputs: ["name", "size"] }, { kind: "component", type: i8.ListboxComponent, selector: "sp-listbox", inputs: ["selectedValues", "spListboxItems", "disabled", "multiple", "navigationWrapDisabled", "aria-label", "aria-labelledby", "size", "id"], outputs: ["selectedValuesChange", "selected"], exportAs: ["spListbox"] }, { kind: "directive", type: i9.ListboxInputDirective, selector: "input[spListboxInput]", inputs: ["spListboxInput"] }, { kind: "component", type: i10.PopoverComponent, selector: "sp-popover", inputs: ["noPadding", "noMaxWidth", "noAutoFocus", "trapFocus"] }, { kind: "directive", type: i11.PopoverTriggerDirective, selector: "[spPopoverTriggerFor]", inputs: ["spPopoverPlacement", "spPopoverTriggerFor", "spPopoverNonModal", "spPopoverTriggerOpenOnPressStart", "spPopoverTriggerCloseOnScroll", "spPopoverTriggerDisabled", "spPopoverDisablePushInsideViewport"], outputs: ["spPopoverTriggerOpened", "spPopoverTriggerClosed"], exportAs: ["spPopoverTrigger"] }, { kind: "directive", type: i2.CdkMonitorFocus, selector: "[cdkMonitorElementFocus], [cdkMonitorSubtreeFocus]", outputs: ["cdkFocusChange"], exportAs: ["cdkMonitorFocus"] }, { kind: "directive", type: i12.VisuallyHiddenDirective, selector: "[spVisuallyHidden]", inputs: ["spVisuallyHidden"] }, { kind: "component", type: i13.HiddenSelectComponent, selector: "sp-hidden-select" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
309
309
  __decorate([
310
310
  AutoId()
311
311
  ], SelectComponent.prototype, "_valueContainerId", void 0);
@@ -328,14 +328,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
328
328
  ], host: {
329
329
  class: 'sapphire-select',
330
330
  '[class.sapphire-select--error]': '_field?.hasError(this)',
331
- '[class.sapphire-select--md]': '_field?.size === "medium"',
331
+ '[class.sapphire-select--md]': '_field?.size === "md"',
332
332
  '[class.is-focus]': 'isFocusVisible()',
333
333
  '[class.is-disabled]': 'isDisabled()',
334
334
  '[attr.id]': 'null',
335
335
  '[attr.aria-label]': 'null',
336
336
  '[attr.aria-labelledby]': 'null',
337
337
  '[attr.placeholder]': 'null',
338
- }, hostDirectives: [UseComponentStylesOnHost], template: "<sp-hidden-select></sp-hidden-select>\n<div\n role=\"button\"\n aria-haspopup=\"listbox\"\n class=\"sapphire-select__button\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverTriggerDisabled]=\"disabled\"\n spPopoverTriggerOpenOnPressStart\n spPopoverTriggerCloseOnScroll\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (focus)=\"_onFocus()\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n [spPopoverNonModal]=\"searchable\"\n [id]=\"id\"\n [tabindex]=\"-1\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getAriaLabelledBy()\"\n [attr.aria-describedby]=\"_field?.error?.id || _field?.note?.id\"\n [attr.aria-invalid]=\"_field?.hasError(this) ? true : null\"\n>\n <div class=\"sapphire-select__value\" [id]=\"_valueContainerId\">\n <input\n *ngIf=\"searchable\"\n #searchInput\n tabindex=\"-1\"\n role=\"combobox\"\n class=\"sapphire-select__search-input\"\n [spListboxInput]=\"listbox\"\n [spVisuallyHidden]=\"!_isInputVisible()\"\n [attr.data-hidden]=\"!_isInputVisible()\"\n [placeholder]=\"placeholder || ''\"\n (keydown)=\"_onInputKeydown($event)\"\n (beforeinput)=\"open()\"\n [value]=\"_searchableSelectDirective?.searchValue\"\n (input)=\"_onSearchInput($event)\"\n />\n <ng-container *ngIf=\"!searchable || !_isInputVisible()\">\n <div\n *ngIf=\"selectedOptions.length === 0\"\n class=\"sapphire-select__placeholder\"\n >\n {{ placeholder }}\n </div>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"sapphire-select__icon-container\">\n <sp-icon name=\"chevronDown\"></sp-icon>\n </div>\n</div>\n<ng-template #popover>\n <sp-popover\n [style.display]=\"\n (filteredChildren$ | async)?.length === 0 ? 'none' : undefined\n \"\n noPadding\n noMaxWidth\n [style.min-width]=\"triggerElementRef.offsetWidth + 'px'\"\n >\n <sp-listbox\n [spListboxItems]=\"(filteredChildren$ | async) || undefined\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selectedValuesChange)=\"_searchableSelectDirective?.setSearchValue('')\"\n (selected)=\"_handleSelected()\"\n [size]=\"_field?.size\"\n >\n </sp-listbox>\n </sp-popover>\n</ng-template>\n", styles: [".sapphire-select{position:relative;display:inline-block;color:var(--sapphire-semantic-color-content-default-primary);width:var(--sapphire-semantic-size-width-control-default);font-family:var(--sapphire-semantic-font-name-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-select__button{display:flex;align-items:center;height:var(--sapphire-semantic-size-height-input-lg);box-sizing:border-box;cursor:pointer;padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);border:none;background-color:var(--sapphire-semantic-color-background-field-default);width:100%;outline:0;text-align:left;color:inherit;font-family:inherit;box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-default);border-radius:var(--sapphire-semantic-size-radius-sm);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-select--md .sapphire-select__button{height:var(--sapphire-semantic-size-height-input-md);padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-md);gap:var(--sapphire-semantic-size-spacing-20)}.sapphire-select__value{flex:1 0 0;min-width:0;font-size:var(--sapphire-semantic-size-font-control-default);width:100%;font-weight:var(--sapphire-semantic-font-weight-default-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sapphire-select--md .sapphire-select__value{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__icon-container{line-height:0;width:var(--sapphire-semantic-size-icon-lg);height:var(--sapphire-semantic-size-icon-lg)}.sapphire-select--md .sapphire-select__icon-container{width:var(--sapphire-semantic-size-icon-md);height:var(--sapphire-semantic-size-icon-md)}.sapphire-select__prefix{display:inherit;font-size:var(--sapphire-semantic-size-font-control-default)}.sapphire-select--md .sapphire-select__prefix{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__search-input:not([data-hidden=true]){all:inherit}.sapphire-select__search-input::placeholder{color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__native-select{position:absolute;inset:0;opacity:.01;width:100%;z-index:1}.sapphire-select--error:not(.is-disabled) .sapphire-select__button{box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-error)}.sapphire-select:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-focus-ring)}.sapphire-select--error:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-border-field-error)}.sapphire-select.is-disabled .sapphire-select__button{cursor:not-allowed}\n"] }]
338
+ }, hostDirectives: [UseComponentStylesOnHost], template: "<sp-hidden-select></sp-hidden-select>\n<div\n role=\"button\"\n aria-haspopup=\"listbox\"\n class=\"sapphire-select__button\"\n [spPopoverTriggerFor]=\"popover\"\n [spPopoverTriggerDisabled]=\"disabled\"\n spPopoverTriggerOpenOnPressStart\n spPopoverTriggerCloseOnScroll\n spPopoverPlacement=\"bottom start\"\n #triggerElementRef\n #triggerRef=\"spPopoverTrigger\"\n (keydown)=\"handleKeyDown($event)\"\n (spPopoverTriggerClosed)=\"_onClose()\"\n (spPopoverTriggerOpened)=\"_onOpen()\"\n (focus)=\"_onFocus()\"\n cdkMonitorSubtreeFocus\n (cdkFocusChange)=\"_onFocusChange($event)\"\n [spPopoverNonModal]=\"searchable\"\n spPopoverDisablePushInsideViewport=\"true\"\n [id]=\"id\"\n [tabindex]=\"-1\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-labelledby]=\"_getAriaLabelledBy()\"\n [attr.aria-describedby]=\"_field?.error?.id || _field?.note?.id\"\n [attr.aria-invalid]=\"_field?.hasError(this) ? true : null\"\n>\n <div class=\"sapphire-select__value\" [id]=\"_valueContainerId\">\n <input\n *ngIf=\"searchable\"\n #searchInput\n tabindex=\"-1\"\n role=\"combobox\"\n class=\"sapphire-select__search-input\"\n [spListboxInput]=\"listbox\"\n [spVisuallyHidden]=\"!_isInputVisible()\"\n [attr.data-hidden]=\"!_isInputVisible()\"\n [placeholder]=\"placeholder || ''\"\n (keydown)=\"_onInputKeydown($event)\"\n (beforeinput)=\"open()\"\n [value]=\"_searchableSelectDirective?.searchValue\"\n (input)=\"_onSearchInput($event)\"\n />\n <ng-container *ngIf=\"!searchable || !_isInputVisible()\">\n <div\n *ngIf=\"selectedOptions.length === 0\"\n class=\"sapphire-select__placeholder\"\n >\n {{ placeholder }}\n </div>\n <ng-container *ngIf=\"selectedOptions.length > 0\">\n <ng-container *ngIf=\"!selectionText\">{{\n getSelectionText()\n }}</ng-container>\n <ng-content select=\"sp-selection-text\"></ng-content>\n </ng-container>\n </ng-container>\n </div>\n <div class=\"sapphire-select__icon-container\">\n <sp-icon name=\"chevronDown\"></sp-icon>\n </div>\n</div>\n<ng-template #popover>\n <sp-popover\n [style.display]=\"\n (filteredChildren$ | async)?.length === 0 ? 'none' : undefined\n \"\n noPadding\n noMaxWidth\n [style.min-width]=\"triggerElementRef.offsetWidth + 'px'\"\n >\n <sp-listbox\n [spListboxItems]=\"(filteredChildren$ | async) || undefined\"\n navigationWrapDisabled\n [multiple]=\"multiple\"\n [(selectedValues)]=\"listboxValue\"\n (selectedValuesChange)=\"_searchableSelectDirective?.setSearchValue('')\"\n (selected)=\"_handleSelected()\"\n [size]=\"_field?.size\"\n >\n </sp-listbox>\n </sp-popover>\n</ng-template>\n", styles: [".sapphire-select{position:relative;display:inline-block;color:var(--sapphire-semantic-color-content-default-primary);width:var(--sapphire-semantic-size-width-control-default);font-family:var(--sapphire-semantic-font-name-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-select__button{display:flex;align-items:center;height:var(--sapphire-semantic-size-height-input-lg);box-sizing:border-box;cursor:pointer;padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);border:none;background-color:var(--sapphire-semantic-color-background-field-default);width:100%;outline:0;text-align:left;color:inherit;font-family:inherit;box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-default);border-radius:var(--sapphire-semantic-size-radius-sm);gap:var(--sapphire-semantic-size-spacing-30)}.sapphire-select--md .sapphire-select__button{height:var(--sapphire-semantic-size-height-input-md);padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-md);gap:var(--sapphire-semantic-size-spacing-20)}.sapphire-select__value{flex:1 0 0;min-width:0;font-size:var(--sapphire-semantic-size-font-control-default);width:100%;font-weight:var(--sapphire-semantic-font-weight-default-regular);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sapphire-select--md .sapphire-select__value{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__icon-container{line-height:0;width:var(--sapphire-semantic-size-icon-lg);height:var(--sapphire-semantic-size-icon-lg)}.sapphire-select--md .sapphire-select__icon-container{width:var(--sapphire-semantic-size-icon-md);height:var(--sapphire-semantic-size-icon-md)}.sapphire-select__prefix{display:inherit;font-size:var(--sapphire-semantic-size-font-control-default)}.sapphire-select--md .sapphire-select__prefix{font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-select__search-input:not([data-hidden=true]){all:inherit}.sapphire-select__search-input::placeholder{color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-select__native-select{position:absolute;inset:0;opacity:.01;width:100%;z-index:1}.sapphire-select--error:not(.is-disabled) .sapphire-select__button{box-shadow:inset 0 0 0 1px var(--sapphire-semantic-color-border-field-error)}.sapphire-select:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-focus-ring)}.sapphire-select--error:not(.is-disabled).is-focus .sapphire-select__button{box-shadow:inset 0 0 0 var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-border-field-error)}.sapphire-select.is-disabled .sapphire-select__button{cursor:not-allowed}\n"] }]
339
339
  }], ctorParameters: function () { return [{ type: i1.SelectValueHolder }, { type: i2.FocusMonitor }, { type: i2.InputModalityDetector }, { type: i3.FieldComponent, decorators: [{
340
340
  type: Optional
341
341
  }] }, { type: i4.SearchableSelectDirective, decorators: [{
@@ -353,4 +353,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
353
353
  type: ViewChild,
354
354
  args: ['searchInput', { read: ElementRef }]
355
355
  }], _valueContainerId: [] } });
356
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUVWLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV2RixPQUFPLEVBQWdCLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pFLE9BQU8sRUFBa0IsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIseUJBQXlCLEdBQzFCLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUd2Qzs7O0dBR0c7QUFV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RTtnQkFJMUMsT0FBTztzQkFEaEIsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBSW5CLFdBQVc7c0JBRGxCLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFXOUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEZvY3VzTW9uaXRvcixcbiAgRm9jdXNPcmlnaW4sXG4gIElucHV0TW9kYWxpdHlEZXRlY3Rvcixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGVtcHR5LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBdXRvSWQgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vYXV0by1pZC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgVXNlQ29tcG9uZW50U3R5bGVzT25Ib3N0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NhcHBoaXJlLXZpZXctZW5jYXBzdWxhdGlvbic7XG5pbXBvcnQgeyBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3BvcG92ZXIvc3JjL3BvcG92ZXItdHJpZ2dlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGlzdGJveENoaWxkLCBMaXN0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vbGlzdGJveC9wdWJsaWNfYXBpJztcbmltcG9ydCB7IHNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9saXN0Ym94L3NyYy9zZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGaWVsZENvbXBvbmVudCwgRmllbGRDb250cm9sIH0gZnJvbSAnLi4vLi4vLi4vZmllbGQvcHVibGljX2FwaSc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vY29tbW9uL3NlbGVjdC1jb21wb25lbnQtYmFzZSc7XG5pbXBvcnQge1xuICBNdWx0aVNlbGVjdERpcmVjdGl2ZUJhc2UsXG4gIFNlbGVjdFZhbHVlSG9sZGVyLFxuICBTaW5nbGVTZWxlY3REaXJlY3RpdmVCYXNlLFxufSBmcm9tICcuLi9jb21tb24vc2VsZWN0LXZhbHVlLWhvbGRlcic7XG5pbXBvcnQgeyBTZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi9zZWFyY2hhYmxlLXNlbGVjdC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEVuYWJsZXMgbXVsdGlwbGUgc2VsZWN0aW9uLiBXaGVuIHByZXNlbnQsIGB2YWx1ZWAgd2lsbCBiZSBvZiB0eXBlIGBzdHJpbmdbXWAsIGFuZCBgdmFsdWVDaGFuZ2VgXG4gKiB3aWxsIGVtaXQgYHN0cmluZ1tdYC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnc3Atc2VsZWN0W211bHRpcGxlXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNlbGVjdFZhbHVlSG9sZGVyLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTXVsdGlTZWxlY3REaXJlY3RpdmUpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0RGlyZWN0aXZlIGV4dGVuZHMgTXVsdGlTZWxlY3REaXJlY3RpdmVCYXNlIHt9XG5cbi8qKlxuICogRW5hYmxlcyBzaW5nbGUgc2VsZWN0aW9uLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBTZWxlY3QuXG4gKiBXaGVuIHByZXNlbnQsIGB2YWx1ZWAgd2lsbCBiZSBvZiB0eXBlIGBzdHJpbmdgLCBhbmQgYHZhbHVlQ2hhbmdlYCB3aWxsIGVtaXQgYHN0cmluZ2AuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NwLXNlbGVjdDpub3QoW211bHRpcGxlXSknLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTZWxlY3RWYWx1ZUhvbGRlcixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNpbmdsZVNlbGVjdERpcmVjdGl2ZSksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2luZ2xlU2VsZWN0RGlyZWN0aXZlIGV4dGVuZHMgU2luZ2xlU2VsZWN0RGlyZWN0aXZlQmFzZSB7fVxuXG4vKipcbiAqIEFsbG93cyB1c2VyIHRvIHNlbGVjdCBhIHNpbmdsZSBvcHRpb24gZnJvbSBhIGxpc3QsIHNpbWlsYXIgdG8gbmF0aXZlIHNlbGVjdFxuICogY29tcG9uZW50LlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0c3hcbiAqIDxzcC1maWVsZD5cbiAqICAgPHNwLWZpZWxkLWxhYmVsPkxhYmVsIHRleHQ8L3NwLWZpZWxkLWxhYmVsPlxuICogICA8c3Atc2VsZWN0IHBsYWNlaG9sZGVyPVwiU2VsZWN0IGFuIG9wdGlvblwiPlxuICogICAgIDxzcC1vcHRpb24gdmFsdWU9XCJvcHRpb24xXCI+Rmlyc3QgT3B0aW9uPC9zcC1vcHRpb24+XG4gKiAgICAgPHNwLW9wdGlvbiB2YWx1ZT1cIm9wdGlvbjJcIj5TZWNvbmQgT3B0aW9uPC9zcC1vcHRpb24+XG4gKiAgICAgPHNwLW9wdGlvbiB2YWx1ZT1cIm9wdGlvbjNcIj5UaGlyZCBPcHRpb248L3NwLW9wdGlvbj5cbiAqICAgPC9zcC1zZWxlY3Q+XG4gKiA8L3NwLWZpZWxkPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdzcFNlbGVjdCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogU2VsZWN0Q29tcG9uZW50QmFzZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdENvbXBvbmVudCksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBGaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3NhcHBoaXJlLXNlbGVjdCcsXG4gICAgJ1tjbGFzcy5zYXBwaGlyZS1zZWxlY3QtLWVycm9yXSc6ICdfZmllbGQ/Lmhhc0Vycm9yKHRoaXMpJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLXNlbGVjdC0tbWRdJzogJ19maWVsZD8uc2l6ZSA9PT0gXCJtZWRpdW1cIicsXG4gICAgJ1tjbGFzcy5pcy1mb2N1c10nOiAnaXNGb2N1c1Zpc2libGUoKScsXG4gICAgJ1tjbGFzcy5pcy1kaXNhYmxlZF0nOiAnaXNEaXNhYmxlZCgpJyxcbiAgICAnW2F0dHIuaWRdJzogJ251bGwnLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsXSc6ICdudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XSc6ICdudWxsJyxcbiAgICAnW2F0dHIucGxhY2Vob2xkZXJdJzogJ251bGwnLFxuICB9LFxuICBob3N0RGlyZWN0aXZlczogW1VzZUNvbXBvbmVudFN0eWxlc09uSG9zdF0sXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENvbXBvbmVudFxuICBleHRlbmRzIFNlbGVjdENvbXBvbmVudEJhc2VcbiAgaW1wbGVtZW50cyBGaWVsZENvbnRyb2wsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIGZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbiA9IG51bGw7XG4gIGZpbHRlcmVkQ2hpbGRyZW4kOiBPYnNlcnZhYmxlPExpc3Rib3hDaGlsZFtdPiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgQFZpZXdDaGlsZCgndHJpZ2dlclJlZicpXG4gIHByb3RlY3RlZCB0cmlnZ2VyUmVmOiBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyRWxlbWVudFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcm90ZWN0ZWQgdHJpZ2dlckVsZW1lbnRSZWY6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZChMaXN0Ym94Q29tcG9uZW50KVxuICBwcm90ZWN0ZWQgbGlzdGJveDogTGlzdGJveENvbXBvbmVudCB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKCdzZWFyY2hJbnB1dCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICBwcml2YXRlIHNlYXJjaElucHV0PzogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBnZXQgc2VhcmNoYWJsZSgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBpZCBvZiB0cmlnZ2VyIHZhbHVlIGFyZWEsIHdoaWNoIHdpbGwgY29udGFpbiBlaXRoZXIgdGhlIHNlbGVjdGVkIHZhbHVlIG9yIHRoZSBwbGFjZWhvbGRlci5cbiAgICovXG4gIEBBdXRvSWQoKVxuICBfdmFsdWVDb250YWluZXJJZDogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSBkZXN0cm95ZWQgPSBuZXcgU3ViamVjdCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHZhbHVlSG9sZGVyOiBTZWxlY3RWYWx1ZUhvbGRlcixcbiAgICBwcml2YXRlIGZvY3VzTW9uaXRvcjogRm9jdXNNb25pdG9yLFxuICAgIHByaXZhdGUgaW5wdXRNb2RhbGl0eTogSW5wdXRNb2RhbGl0eURldGVjdG9yLFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBfZmllbGQ/OiBGaWVsZENvbXBvbmVudCxcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmU/OiBTZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlXG4gICkge1xuICAgIHN1cGVyKHZhbHVlSG9sZGVyKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5uZ0FmdGVyVmlld0luaXQoKTtcbiAgICBjb25zdCBsaXN0Ym94SXRlbSQgPSB0aGlzLmxpc3Rib3hDaGlsZHJlbi5jaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgodGhpcy5saXN0Ym94Q2hpbGRyZW4pXG4gICAgKTtcbiAgICBjb25zdCBzZWFyY2hhYmxlU2VsZWN0ID0gdGhpcy5fc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZTtcbiAgICBpZiAodGhpcy5zZWFyY2hJbnB1dCAmJiBzZWFyY2hhYmxlU2VsZWN0KSB7XG4gICAgICBjb25zdCBzZWFyY2hJbnB1dFZhbHVlJCA9IHNlYXJjaGFibGVTZWxlY3Quc2VhcmNoVmFsdWVDaGFuZ2UucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSxcbiAgICAgICAgc3RhcnRXaXRoKHNlYXJjaGFibGVTZWxlY3Quc2VhcmNoVmFsdWUpXG4gICAgICApO1xuICAgICAgY29uc3QgZmlsdGVyUmVzdWx0JCA9IGNvbWJpbmVMYXRlc3Qoc2VhcmNoSW5wdXRWYWx1ZSQsIGxpc3Rib3hJdGVtJCkucGlwZShcbiAgICAgICAgbWFwKChbc2VhcmNoUXVlcnldKSA9PiB7XG4gICAgICAgICAgaWYgKCFzZWFyY2hRdWVyeSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgZmlsdGVyZWRDaGlsZHJlbjogdGhpcy5saXN0Ym94Q2hpbGRyZW4udG9BcnJheSgpLFxuICAgICAgICAgICAgICBmaWx0ZXJlZE91dE9wdGlvbnM6IFtdLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHNlYXJjaGFibGVTZWxlY3QuZmlsdGVyTGlzdGJveEl0ZW1zKFxuICAgICAgICAgICAgdGhpcy5saXN0Ym94Q2hpbGRyZW4sXG4gICAgICAgICAgICAob3B0aW9uKSA9PlxuICAgICAgICAgICAgICAhc2VhcmNoYWJsZVNlbGVjdC5maWx0ZXIgfHxcbiAgICAgICAgICAgICAgc2VhcmNoYWJsZVNlbGVjdC5maWx0ZXIob3B0aW9uLCBzZWFyY2hRdWVyeSlcbiAgICAgICAgICApO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICAgIHRoaXMuZmlsdGVyZWRDaGlsZHJlbiQgPSB0aGlzLm11bHRpcGxlXG4gICAgICAgID8gLy8gR3JvdXBpbmcgc2VsZWN0ZWQgb3B0aW9uc1xuICAgICAgICAgIGNvbWJpbmVMYXRlc3QoXG4gICAgICAgICAgICBmaWx0ZXJSZXN1bHQkLFxuICAgICAgICAgICAgdGhpcy52YWx1ZUhvbGRlci52YWx1ZUNoYW5nZS5waXBlKHN0YXJ0V2l0aChlbXB0eSgpKSlcbiAgICAgICAgICApLnBpcGUoXG4gICAgICAgICAgICBtYXAoKFt7IGZpbHRlcmVkQ2hpbGRyZW4gfV0pID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMubGlzdGJveFZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWx0ZXJlZENoaWxkcmVuO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZE91dE9wdGlvbnM6IHNlbGVjdGVkT3B0aW9ucyxcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZENoaWxkcmVuOiBzZWxlY3Rpb25FeGNsdWRlZENoaWxkcmVuLFxuICAgICAgICAgICAgICB9ID0gc2VhcmNoYWJsZVNlbGVjdC5maWx0ZXJMaXN0Ym94SXRlbXMoXG4gICAgICAgICAgICAgICAgZmlsdGVyZWRDaGlsZHJlbixcbiAgICAgICAgICAgICAgICAob3B0aW9uKSA9PiAhdGhpcy5saXN0Ym94VmFsdWUuaW5jbHVkZXMob3B0aW9uLnZhbHVlKVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICA/IFtzZWN0aW9uKHNlbGVjdGVkT3B0aW9ucyldXG4gICAgICAgICAgICAgICAgICA6IChbXSBhcyBMaXN0Ym94Q2hpbGRbXSlcbiAgICAgICAgICAgICAgKS5jb25jYXQoc2VsZWN0aW9uRXhjbHVkZWRDaGlsZHJlbik7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgOiBmaWx0ZXJSZXN1bHQkLnBpcGUobWFwKCh7IGZpbHRlcmVkQ2hpbGRyZW4gfSkgPT4gZmlsdGVyZWRDaGlsZHJlbikpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkQ2hpbGRyZW4kID0gbGlzdGJveEl0ZW0kO1xuICAgIH1cbiAgfVxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICAgIHRoaXMuZGVzdHJveWVkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgX2dldEFyaWFMYWJlbGxlZEJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgLy8gVGhlIGxvZ2ljIGhlcmUgaXMgc2ltaWxhciB0byB0aGUgb25lIGluIHJlYWN0LWFyaWEncyB1c2VTZWxlY3QuXG4gICAgY29uc3QgbGFiZWxsZWRCeSA9IHRoaXMuYXJpYUxhYmVsbGVkYnkgfHwgdGhpcy5fZmllbGQ/LmxhYmVsPy5pZDtcbiAgICByZXR1cm4gW1xuICAgICAgdGhpcy5fdmFsdWVDb250YWluZXJJZCxcbiAgICAgIGxhYmVsbGVkQnksXG4gICAgICB0aGlzLmFyaWFMYWJlbCAmJiAhbGFiZWxsZWRCeSA/IHRoaXMuaWQgOiBudWxsLFxuICAgIF1cbiAgICAgIC5maWx0ZXIoKGkpID0+IGkpXG4gICAgICAuam9pbignICcpO1xuICB9XG5cbiAgaXNGb2N1c2VkKCkge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuZm9jdXNPcmlnaW4pO1xuICB9XG5cbiAgaXNGb2N1c1Zpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaXNGb2N1c2VkKCkgJiZcbiAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgZm9jdXMgZG9lc24ndCBjaGFuZ2Ugd2hlbiBhIGtleSAoZS5nLiBFc2NhcGUpIGlzIHByZXNzZWQgaW4gdGhlIHNlYXJjaCBpbnB1dC5cbiAgICAgICh0aGlzLmlucHV0TW9kYWxpdHkubW9zdFJlY2VudE1vZGFsaXR5ID09PSAna2V5Ym9hcmQnIHx8XG4gICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciB3aGVuIGxhYmVsIGlzIGNsaWNrZWQgYW5kIGZvY3VzT3JpZ2luIGlzIGZvcmNlZCB0byBrZXlib2FyZCwgYnV0IGN1cnJlbnQgbW9kYWxpdHkgaXMgbW91c2UuXG4gICAgICAgIHRoaXMuZm9jdXNPcmlnaW4gPT09ICdrZXlib2FyZCcpICYmXG4gICAgICAhdGhpcy5pc09wZW4oKSAvLyBUaGlzIGlzIGJlY2F1c2UgaW4gc2VhcmNoYWJsZSBzZWxlY3QsIHRoZSBhY3R1YWwgZm9jdXMgaXMgb24gdGhlIGlucHV0LFxuICAgICAgLy8gYnV0IGl0J3MgbWVhbnQgdG8gYmUgc2hvd24gb24gdGhlIGxpc3Rib3guIEl0IGRvZXNuJ3QgbWFrZSBzZW5zZSB0byBzaG93IHRoZSBmb2N1cyBpbiB0d29cbiAgICAgIC8vIHBsYWNlcy5cbiAgICApO1xuICB9XG5cbiAgZm9jdXMoZm9jdXNPcmlnaW46IEZvY3VzT3JpZ2luID0gJ3Byb2dyYW0nKSB7XG4gICAgdGhpcy5mb2N1c01vbml0b3IuZm9jdXNWaWEoXG4gICAgICB0aGlzLnNlYXJjaElucHV0Py5uYXRpdmVFbGVtZW50ID8/IHRoaXMudHJpZ2dlckVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICBmb2N1c09yaWdpblxuICAgICk7XG4gIH1cblxuICBfb25Gb2N1c0NoYW5nZShmb2N1c09yaWdpbjogRm9jdXNPcmlnaW4pIHtcbiAgICB0aGlzLmZvY3VzT3JpZ2luID0gZm9jdXNPcmlnaW47XG4gIH1cblxuICBfb25Gb2N1cygpIHtcbiAgICAvLyBXaGVuZXZlciBmb2N1cyBjb21lcyB0byB0aGUgdHJpZ2dlciAsIGZvcndhcmQgaXQgdG8gdGhlIHNlYXJjaCBpbnB1dC4gSXQncyBuZWVkZWQgZm9yIHdoZW5cbiAgICAvLyB0aGUgdHJpZ2dlciBpcyByZS1mb2N1c2VkIGFmdGVyIHBvcG92ZXIgaXMgY2xvc2VkLlxuICAgIHRoaXMuZm9jdXModGhpcy5mb2N1c09yaWdpbik7XG4gIH1cblxuICBfaXNJbnB1dFZpc2libGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuaXNPcGVuKCkgLyp8fFxuICAgICAgKHRoaXMuc2VhcmNoSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQgPT09IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgdGhpcy5saXN0Ym94VmFsdWUubGVuZ3RoID09PSAwKSovO1xuICB9XG5cbiAgX29uT3BlbigpIHtcbiAgICBzdXBlci5fb25PcGVuKCk7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHRoaXMuX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmUpIHtcbiAgICAgIHRoaXMuX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmUuc2V0U2VhcmNoVmFsdWUoXG4gICAgICAgICh0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlLmNsZWFyU2VhcmNoT25PcGVuXG4gICAgICAgICAgPyAnJ1xuICAgICAgICAgIDogdGhpcy5zZWxlY3RlZE9wdGlvbnNbMF0/LmxhYmVsKSA/PyAnJ1xuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3Qgc2VhcmNoSW5wdXRFbGVtZW50ID0gdGhpcy5zZWFyY2hJbnB1dD8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAodGhpcy5fc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZT8uc2VsZWN0VGV4dE9uT3Blbikge1xuICAgICAgc2VhcmNoSW5wdXRFbGVtZW50Py5zZWxlY3QoKTtcbiAgICB9XG4gICAgY29uc3QgZm9jdXNWaXNpYmxlT25PcGVuID0gdGhpcy5pc0ZvY3VzVmlzaWJsZSgpO1xuICAgIC8vIE1vdmUgZm9jdXMgdG8gdGhlIHNlYXJjaCBpbnB1dC4gVGhlIHRpbWVvdXQgaXMgbmVlZGVkIGJlY2F1c2UgcG9wb3ZlciB3aWxsIGF1dG9mb2N1cyB0aGVcbiAgICAvLyBjb250ZW50LCBhbmQgd2UgbmVlZCB0byBsZXQgdGhlIGZvY3VzIGZpcnN0IGxhbmQgaW4gdGhlIHBvcG92ZXIsIGFuZCB0aGVuIHN0ZWFsIGl0LlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2VhcmNoSW5wdXRFbGVtZW50Py5mb2N1cygpO1xuXG4gICAgICAvLyBOZWVkIHRvIHJ1biB0aGlzIGFsc28gYXN5bmNocm9ub3VzbHksIHRvIGxldCB0aGUgcG9wb3ZlciAoYW5kIGxpc3Rib3gpIG1vdW50XG4gICAgICBpZiAoIWZvY3VzVmlzaWJsZU9uT3BlbiAmJiB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gdG8gcHJldmVudCB0aGUgZmlyc3QgaXRlbSBmcm9tIGJlaW5nIGZvY3VzZWQgd2hlbiB0aGUgZHJvcGRvd24gaXMgb3BlbmVkIHZpYSBtb3VzZVxuICAgICAgICB0aGlzLmxpc3Rib3g/LnNldEFjdGl2ZU9wdGlvbihudWxsKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIF9vbkNsb3NlKCkge1xuICAgIHN1cGVyLl9vbkNsb3NlKCk7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIHRoaXMuX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmUpIHtcbiAgICAgIHRoaXMuX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmUuc2V0U2VhcmNoVmFsdWUoXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25zWzBdPy5sYWJlbCB8fCAnJ1xuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3Qgc2VhcmNoSW5wdXRFbGVtZW50ID0gdGhpcy5zZWFyY2hJbnB1dD8ubmF0aXZlRWxlbWVudDtcbiAgICBzZWFyY2hJbnB1dEVsZW1lbnQ/LnNldFNlbGVjdGlvblJhbmdlKFxuICAgICAgc2VhcmNoSW5wdXRFbGVtZW50LnZhbHVlLmxlbmd0aCxcbiAgICAgIHNlYXJjaElucHV0RWxlbWVudC52YWx1ZS5sZW5ndGhcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEZpZWxkTGFiZWw/KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2ZpZWxkPy5sYWJlbD8uZ2V0VGV4dCgpID8/ICcnO1xuICB9XG5cbiAgX29uSW5wdXRLZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgY29uc3Qgc2VsZWN0VmFsdWUgPSAodG9CZVNlbGVjdGVkOiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGxpc3Rib3hWYWx1ZSA9IHRoaXMubGlzdGJveFZhbHVlO1xuICAgICAgY29uc3QgYWxyZWFkeVNlbGVjdGVkID0gbGlzdGJveFZhbHVlLmluY2x1ZGVzKHRvQmVTZWxlY3RlZCk7XG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSkge1xuICAgICAgICB0aGlzLmxpc3Rib3hWYWx1ZSA9IGFscmVhZHlTZWxlY3RlZFxuICAgICAgICAgID8gbGlzdGJveFZhbHVlLmZpbHRlcigodmFsdWUpID0+IHZhbHVlICE9PSB0b0JlU2VsZWN0ZWQpXG4gICAgICAgICAgOiBbLi4ubGlzdGJveFZhbHVlLCB0b0JlU2VsZWN0ZWRdO1xuICAgICAgfSBlbHNlIGlmICghYWxyZWFkeVNlbGVjdGVkKSB7XG4gICAgICAgIHRoaXMubGlzdGJveFZhbHVlID0gW3RvQmVTZWxlY3RlZF07XG4gICAgICB9XG4gICAgfTtcbiAgICBjb25zdCBmaXJzdE9wdGlvblZhbHVlID0gdGhpcy5vcHRpb25zPy5nZXQoMCk/LnZhbHVlO1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgIGlmICghdGhpcy5pc09wZW4oKSkge1xuICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFc2NhcGUnOlxuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAvLyBTZWxlY3Rpb24gaXMgYWxyZWFkeSBoYW5kbGVkIGlmIHRoZXJlIGlzIGFuIGFjdGl2ZSBvcHRpb25cbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmxpc3Rib3g/LmdldEFjdGl2ZU9wdGlvbigpID09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgICAgZmlyc3RPcHRpb25WYWx1ZVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgc2VsZWN0VmFsdWUoZmlyc3RPcHRpb25WYWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgIGlmICh0aGlzLmlzT3BlbigpICYmICF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgY29uc3QgdG9CZVNlbGVjdGVkID1cbiAgICAgICAgICAgIHRoaXMubGlzdGJveD8uZ2V0QWN0aXZlT3B0aW9uKCkgfHwgZmlyc3RPcHRpb25WYWx1ZTtcbiAgICAgICAgICBpZiAodG9CZVNlbGVjdGVkICE9IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgc2VsZWN0VmFsdWUodG9CZVNlbGVjdGVkKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgX29uU2VhcmNoSW5wdXQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKGV2ZW50LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxJbnB1dEVsZW1lbnQpIHtcbiAgICAgIGNvbnN0IHZhbHVlID0gZXZlbnQudGFyZ2V0Py52YWx1ZTtcbiAgICAgIHRoaXMuX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmU/LnNldFNlYXJjaFZhbHVlKHZhbHVlKTtcbiAgICAgIC8vIGNsZWFyaW5nIHRoZSB2YWx1ZSB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaXMgY2xlYXJlZC5cbiAgICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiAhdmFsdWUgJiYgdGhpcy5saXN0Ym94VmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLmxpc3Rib3hWYWx1ZSA9IFtdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMubGlzdGJveD8uc2V0QWN0aXZlT3B0aW9uKG51bGwpO1xuICB9XG5cbiAgX2hhbmRsZVNlbGVjdGVkKCkge1xuICAgIHN1cGVyLl9oYW5kbGVTZWxlY3RlZCgpO1xuICB9XG5cbiAgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29lcmNlQm9vbGVhblByb3BlcnR5KHRoaXMuZGlzYWJsZWQpO1xuICB9XG59XG4iLCI8c3AtaGlkZGVuLXNlbGVjdD48L3NwLWhpZGRlbi1zZWxlY3Q+XG48ZGl2XG4gIHJvbGU9XCJidXR0b25cIlxuICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gIGNsYXNzPVwic2FwcGhpcmUtc2VsZWN0X19idXR0b25cIlxuICBbc3BQb3BvdmVyVHJpZ2dlckZvcl09XCJwb3BvdmVyXCJcbiAgW3NwUG9wb3ZlclRyaWdnZXJEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIHNwUG9wb3ZlclRyaWdnZXJPcGVuT25QcmVzc1N0YXJ0XG4gIHNwUG9wb3ZlclRyaWdnZXJDbG9zZU9uU2Nyb2xsXG4gIHNwUG9wb3ZlclBsYWNlbWVudD1cImJvdHRvbSBzdGFydFwiXG4gICN0cmlnZ2VyRWxlbWVudFJlZlxuICAjdHJpZ2dlclJlZj1cInNwUG9wb3ZlclRyaWdnZXJcIlxuICAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAoc3BQb3BvdmVyVHJpZ2dlckNsb3NlZCk9XCJfb25DbG9zZSgpXCJcbiAgKHNwUG9wb3ZlclRyaWdnZXJPcGVuZWQpPVwiX29uT3BlbigpXCJcbiAgKGZvY3VzKT1cIl9vbkZvY3VzKClcIlxuICBjZGtNb25pdG9yU3VidHJlZUZvY3VzXG4gIChjZGtGb2N1c0NoYW5nZSk9XCJfb25Gb2N1c0NoYW5nZSgkZXZlbnQpXCJcbiAgW3NwUG9wb3Zlck5vbk1vZGFsXT1cInNlYXJjaGFibGVcIlxuICBbaWRdPVwiaWRcIlxuICBbdGFiaW5kZXhdPVwiLTFcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJfZ2V0QXJpYUxhYmVsbGVkQnkoKVwiXG4gIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiX2ZpZWxkPy5lcnJvcj8uaWQgfHwgX2ZpZWxkPy5ub3RlPy5pZFwiXG4gIFthdHRyLmFyaWEtaW52YWxpZF09XCJfZmllbGQ/Lmhhc0Vycm9yKHRoaXMpID8gdHJ1ZSA6IG51bGxcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2FwcGhpcmUtc2VsZWN0X192YWx1ZVwiIFtpZF09XCJfdmFsdWVDb250YWluZXJJZFwiPlxuICAgIDxpbnB1dFxuICAgICAgKm5nSWY9XCJzZWFyY2hhYmxlXCJcbiAgICAgICNzZWFyY2hJbnB1dFxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICByb2xlPVwiY29tYm9ib3hcIlxuICAgICAgY2xhc3M9XCJzYXBwaGlyZS1zZWxlY3RfX3NlYXJjaC1pbnB1dFwiXG4gICAgICBbc3BMaXN0Ym94SW5wdXRdPVwibGlzdGJveFwiXG4gICAgICBbc3BWaXN1YWxseUhpZGRlbl09XCIhX2lzSW5wdXRWaXNpYmxlKClcIlxuICAgICAgW2F0dHIuZGF0YS1oaWRkZW5dPVwiIV9pc0lucHV0VmlzaWJsZSgpXCJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciB8fCAnJ1wiXG4gICAgICAoa2V5ZG93bik9XCJfb25JbnB1dEtleWRvd24oJGV2ZW50KVwiXG4gICAgICAoYmVmb3JlaW5wdXQpPVwib3BlbigpXCJcbiAgICAgIFt2YWx1ZV09XCJfc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZT8uc2VhcmNoVmFsdWVcIlxuICAgICAgKGlucHV0KT1cIl9vblNlYXJjaElucHV0KCRldmVudClcIlxuICAgIC8+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWFyY2hhYmxlIHx8ICFfaXNJbnB1dFZpc2libGUoKVwiPlxuICAgICAgPGRpdlxuICAgICAgICAqbmdJZj1cInNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPT09IDBcIlxuICAgICAgICBjbGFzcz1cInNhcHBoaXJlLXNlbGVjdF9fcGxhY2Vob2xkZXJcIlxuICAgICAgPlxuICAgICAgICB7eyBwbGFjZWhvbGRlciB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFzZWxlY3Rpb25UZXh0XCI+e3tcbiAgICAgICAgICBnZXRTZWxlY3Rpb25UZXh0KClcbiAgICAgICAgfX08L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic3Atc2VsZWN0aW9uLXRleHRcIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJzYXBwaGlyZS1zZWxlY3RfX2ljb24tY29udGFpbmVyXCI+XG4gICAgPHNwLWljb24gbmFtZT1cImNoZXZyb25Eb3duXCI+PC9zcC1pY29uPlxuICA8L2Rpdj5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNwb3BvdmVyPlxuICA8c3AtcG9wb3ZlclxuICAgIFtzdHlsZS5kaXNwbGF5XT1cIlxuICAgICAgKGZpbHRlcmVkQ2hpbGRyZW4kIHwgYXN5bmMpPy5sZW5ndGggPT09IDAgPyAnbm9uZScgOiB1bmRlZmluZWRcbiAgICBcIlxuICAgIG5vUGFkZGluZ1xuICAgIG5vTWF4V2lkdGhcbiAgICBbc3R5bGUubWluLXdpZHRoXT1cInRyaWdnZXJFbGVtZW50UmVmLm9mZnNldFdpZHRoICsgJ3B4J1wiXG4gID5cbiAgICA8c3AtbGlzdGJveFxuICAgICAgW3NwTGlzdGJveEl0ZW1zXT1cIihmaWx0ZXJlZENoaWxkcmVuJCB8IGFzeW5jKSB8fCB1bmRlZmluZWRcIlxuICAgICAgbmF2aWdhdGlvbldyYXBEaXNhYmxlZFxuICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgIFsoc2VsZWN0ZWRWYWx1ZXMpXT1cImxpc3Rib3hWYWx1ZVwiXG4gICAgICAoc2VsZWN0ZWRWYWx1ZXNDaGFuZ2UpPVwiX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmU/LnNldFNlYXJjaFZhbHVlKCcnKVwiXG4gICAgICAoc2VsZWN0ZWQpPVwiX2hhbmRsZVNlbGVjdGVkKClcIlxuICAgICAgW3NpemVdPVwiX2ZpZWxkPy5zaXplXCJcbiAgICA+XG4gICAgPC9zcC1saXN0Ym94PlxuICA8L3NwLXBvcG92ZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
356
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUVWLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV2RixPQUFPLEVBQWdCLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pFLE9BQU8sRUFBa0IsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIseUJBQXlCLEdBQzFCLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUd2Qzs7O0dBR0c7QUFVSCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsd0JBQXdCOztpSEFBckQsb0JBQW9CO3FHQUFwQixvQkFBb0IsOENBUHBCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7U0FDcEQ7S0FDRjsyRkFFVSxvQkFBb0I7a0JBVGhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDO3lCQUNwRDtxQkFDRjtpQkFDRjs7QUFHRDs7O0dBR0c7QUFVSCxNQUFNLE9BQU8scUJBQXNCLFNBQVEseUJBQXlCOztrSEFBdkQscUJBQXFCO3NHQUFyQixxQkFBcUIsb0RBUHJCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7U0FDckQ7S0FDRjsyRkFFVSxxQkFBcUI7a0JBVGpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDO3lCQUNyRDtxQkFDRjtpQkFDRjs7QUFHRDs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFrQ0gsTUFBTSxPQUFPLGVBQ1gsU0FBUSxtQkFBbUI7SUFrQjNCLElBQUksVUFBVTtRQUNaLE9BQU8sT0FBTyxDQUFDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFVRCxZQUNFLFdBQThCLEVBQ3RCLFlBQTBCLEVBQzFCLGFBQW9DLEVBQ3pCLE1BQXVCLEVBQ3ZCLDBCQUFzRDtRQUV6RSxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFMWCxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFDekIsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDdkIsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUE0QjtRQWhDbkUsZ0JBQVcsR0FBZ0IsSUFBSSxDQUFDO1FBQ3hDLHNCQUFpQixHQUErQixJQUFJLE9BQU8sRUFBRSxDQUFDO1FBa0I5RDs7V0FFRztRQUVILHNCQUFpQixHQUFXLEVBQUUsQ0FBQztRQUV2QixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQVVsQyxDQUFDO0lBRVEsZUFBZTtRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNwRCxTQUFTLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUNoQyxDQUFDO1FBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsV0FBVyxJQUFJLGdCQUFnQixFQUFFO1lBQ3hDLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUMvRCxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUN6QixTQUFTLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLENBQ3hDLENBQUM7WUFDRixNQUFNLGFBQWEsR0FBRyxhQUFhLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUMsSUFBSSxDQUN2RSxHQUFHLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxXQUFXLEVBQUU7b0JBQ2hCLE9BQU87d0JBQ0wsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUU7d0JBQ2hELGtCQUFrQixFQUFFLEVBQUU7cUJBQ3ZCLENBQUM7aUJBQ0g7Z0JBQ0QsT0FBTyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FDeEMsSUFBSSxDQUFDLGVBQWUsRUFDcEIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNULENBQUMsZ0JBQWdCLENBQUMsTUFBTTtvQkFDeEIsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsQ0FDL0MsQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUNILENBQUM7WUFDRixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVE7Z0JBQ3BDLENBQUMsQ0FBQyw0QkFBNEI7b0JBQzVCLGFBQWEsQ0FDWCxhQUFhLEVBQ2IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQ3RELENBQUMsSUFBSSxDQUNKLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLEVBQUUsRUFBRTt3QkFDN0IsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7NEJBQ2xDLE9BQU8sZ0JBQWdCLENBQUM7eUJBQ3pCO3dCQUNELE1BQU0sRUFDSixrQkFBa0IsRUFBRSxlQUFlLEVBQ25DLGdCQUFnQixFQUFFLHlCQUF5QixHQUM1QyxHQUFHLGdCQUFnQixDQUFDLGtCQUFrQixDQUNyQyxnQkFBZ0IsRUFDaEIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUN0RCxDQUFDO3dCQUNGLE9BQU8sQ0FDTCxlQUFlLENBQUMsTUFBTSxHQUFHLENBQUM7NEJBQ3hCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQzs0QkFDNUIsQ0FBQyxDQUFFLEVBQXFCLENBQzNCLENBQUMsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7b0JBQ3RDLENBQUMsQ0FBQyxDQUNIO2dCQUNILENBQUMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1NBQ3pFO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsWUFBWSxDQUFDO1NBQ3ZDO0lBQ0gsQ0FBQztJQUNELFdBQVc7UUFDVCxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsa0VBQWtFO1FBQ2xFLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ2pFLE9BQU87WUFDTCxJQUFJLENBQUMsaUJBQWlCO1lBQ3RCLFVBQVU7WUFDVixJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQy9DO2FBQ0UsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELGNBQWM7UUFDWixPQUFPLENBQ0wsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNoQix1R0FBdUc7WUFDdkcsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGtCQUFrQixLQUFLLFVBQVU7Z0JBQ25ELGlIQUFpSDtnQkFDakgsSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLENBQUM7WUFDbEMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsMEVBQTBFO1FBQ3pGLDRGQUE0RjtRQUM1RixVQUFVO1NBQ1gsQ0FBQztJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBMkIsU0FBUztRQUN4QyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FDeEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLGFBQWEsRUFDeEUsV0FBVyxDQUNaLENBQUM7SUFDSixDQUFDO0lBRUQsY0FBYyxDQUFDLFdBQXdCO1FBQ3JDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRO1FBQ04sNkZBQTZGO1FBQzdGLHFEQUFxRDtRQUNyRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDOzs2Q0FFZ0IsQ0FBQztJQUN4QyxDQUFDO0lBRUQsT0FBTztRQUNMLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUU7WUFDckQsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGNBQWMsQ0FDNUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsaUJBQWlCO2dCQUNoRCxDQUFDLENBQUMsRUFBRTtnQkFDSixDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQzFDLENBQUM7U0FDSDtRQUNELE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxhQUFhLENBQUM7UUFDM0QsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsZ0JBQWdCLEVBQUU7WUFDckQsa0JBQWtCLEVBQUUsTUFBTSxFQUFFLENBQUM7U0FDOUI7UUFDRCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNqRCwyRkFBMkY7UUFDM0Ysc0ZBQXNGO1FBQ3RGLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxrQkFBa0IsRUFBRSxLQUFLLEVBQUUsQ0FBQztZQUU1QiwrRUFBK0U7WUFDL0UsSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQkFDNUQscUZBQXFGO2dCQUNyRixJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQ3JELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxjQUFjLENBQzVDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxJQUFJLEVBQUUsQ0FDckMsQ0FBQztTQUNIO1FBQ0QsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQztRQUMzRCxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FDbkMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFDL0Isa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFUyxhQUFhO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0lBQzdDLENBQUM7SUFFRCxlQUFlLENBQUMsS0FBb0I7UUFDbEMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxZQUFvQixFQUFFLEVBQUU7WUFDM0MsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUN2QyxNQUFNLGVBQWUsR0FBRyxZQUFZLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlO29CQUNqQyxDQUFDLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLFlBQVksQ0FBQztvQkFDeEQsQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEVBQUUsWUFBWSxDQUFDLENBQUM7YUFDckM7aUJBQU0sSUFBSSxDQUFDLGVBQWUsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ3BDO1FBQ0gsQ0FBQyxDQUFDO1FBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDckQsUUFBUSxLQUFLLENBQUMsR0FBRyxFQUFFO1lBQ2pCLEtBQUssU0FBUyxDQUFDO1lBQ2YsS0FBSyxXQUFXO2dCQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDWixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7aUJBQ3hCO2dCQUNELE1BQU07WUFDUixLQUFLLFFBQVE7Z0JBQ1gsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNiLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsNERBQTREO2dCQUM1RCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRTtvQkFDakIsSUFDRSxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLFNBQVM7d0JBQzVDLGdCQUFnQixFQUNoQjt3QkFDQSxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztxQkFDL0I7b0JBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7d0JBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztxQkFDZDtpQkFDRjtxQkFBTTtvQkFDTCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2I7Z0JBQ0QsTUFBTTtZQUNSLEtBQUssS0FBSztnQkFDUixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7b0JBQ25DLE1BQU0sWUFBWSxHQUNoQixJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLGdCQUFnQixDQUFDO29CQUN0RCxJQUFJLFlBQVksSUFBSSxTQUFTLEVBQUU7d0JBQzdCLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztxQkFDM0I7aUJBQ0Y7Z0JBQ0QsTUFBTTtTQUNUO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFZO1FBQ3pCLElBQUksS0FBSyxDQUFDLE1BQU0sWUFBWSxnQkFBZ0IsRUFBRTtZQUM1QyxNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztZQUNsQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZELHVEQUF1RDtZQUN2RCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQzVELElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO2FBQ3hCO1NBQ0Y7UUFFRCxJQUFJLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQsZUFBZTtRQUNiLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzlDLENBQUM7OzRHQS9RVSxlQUFlO2dHQUFmLGVBQWUsd1lBNUJmO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO1lBQzlDLEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRDtZQUNFLE9BQU8sRUFBRSxtQkFBbUI7WUFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7U0FDL0M7UUFDRDtZQUNFLE9BQU8sRUFBRSxZQUFZO1lBQ3JCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO1NBQy9DO0tBQ0Ysd05Bd0J1QyxVQUFVLHVEQUd2QyxnQkFBZ0Isd0hBR08sVUFBVSwwSUNqSTlDLDJ1RkFtRkE7QUR5REU7SUFEQyxNQUFNLEVBQUU7MERBQ3NCOzJGQTNCcEIsZUFBZTtrQkFqQzNCLFNBQVM7K0JBQ0UsV0FBVyxZQUdYLFVBQVUsYUFDVDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzs0QkFDOUMsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZ0JBQWdCLENBQUM7eUJBQy9DO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxZQUFZOzRCQUNyQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQzt5QkFDL0M7cUJBQ0YsUUFDSzt3QkFDSixLQUFLLEVBQUUsaUJBQWlCO3dCQUN4QixnQ0FBZ0MsRUFBRSx3QkFBd0I7d0JBQzFELDZCQUE2QixFQUFFLHVCQUF1Qjt3QkFDdEQsa0JBQWtCLEVBQUUsa0JBQWtCO3dCQUN0QyxxQkFBcUIsRUFBRSxjQUFjO3dCQUNyQyxXQUFXLEVBQUUsTUFBTTt3QkFDbkIsbUJBQW1CLEVBQUUsTUFBTTt3QkFDM0Isd0JBQXdCLEVBQUUsTUFBTTt3QkFDaEMsb0JBQW9CLEVBQUUsTUFBTTtxQkFDN0Isa0JBQ2UsQ0FBQyx3QkFBd0IsQ0FBQzs7MEJBcUN2QyxRQUFROzswQkFDUixRQUFROzRDQTVCRCxVQUFVO3NCQURuQixTQUFTO3VCQUFDLFlBQVk7Z0JBSWIsaUJBQWlCO3NCQUQxQixTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJMUMsT0FBTztzQkFEaEIsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBSW5CLFdBQVc7c0JBRGxCLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFXOUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEZvY3VzTW9uaXRvcixcbiAgRm9jdXNPcmlnaW4sXG4gIElucHV0TW9kYWxpdHlEZXRlY3Rvcixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGVtcHR5LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBdXRvSWQgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vYXV0by1pZC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgVXNlQ29tcG9uZW50U3R5bGVzT25Ib3N0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NhcHBoaXJlLXZpZXctZW5jYXBzdWxhdGlvbic7XG5pbXBvcnQgeyBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3BvcG92ZXIvc3JjL3BvcG92ZXItdHJpZ2dlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGlzdGJveENoaWxkLCBMaXN0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vbGlzdGJveC9wdWJsaWNfYXBpJztcbmltcG9ydCB7IHNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9saXN0Ym94L3NyYy9zZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGaWVsZENvbXBvbmVudCwgRmllbGRDb250cm9sIH0gZnJvbSAnLi4vLi4vLi4vZmllbGQvcHVibGljX2FwaSc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vY29tbW9uL3NlbGVjdC1jb21wb25lbnQtYmFzZSc7XG5pbXBvcnQge1xuICBNdWx0aVNlbGVjdERpcmVjdGl2ZUJhc2UsXG4gIFNlbGVjdFZhbHVlSG9sZGVyLFxuICBTaW5nbGVTZWxlY3REaXJlY3RpdmVCYXNlLFxufSBmcm9tICcuLi9jb21tb24vc2VsZWN0LXZhbHVlLWhvbGRlcic7XG5pbXBvcnQgeyBTZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi9zZWFyY2hhYmxlLXNlbGVjdC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEVuYWJsZXMgbXVsdGlwbGUgc2VsZWN0aW9uLiBXaGVuIHByZXNlbnQsIGB2YWx1ZWAgd2lsbCBiZSBvZiB0eXBlIGBzdHJpbmdbXWAsIGFuZCBgdmFsdWVDaGFuZ2VgXG4gKiB3aWxsIGVtaXQgYHN0cmluZ1tdYC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnc3Atc2VsZWN0W211bHRpcGxlXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNlbGVjdFZhbHVlSG9sZGVyLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTXVsdGlTZWxlY3REaXJlY3RpdmUpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0RGlyZWN0aXZlIGV4dGVuZHMgTXVsdGlTZWxlY3REaXJlY3RpdmVCYXNlIHt9XG5cbi8qKlxuICogRW5hYmxlcyBzaW5nbGUgc2VsZWN0aW9uLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBTZWxlY3QuXG4gKiBXaGVuIHByZXNlbnQsIGB2YWx1ZWAgd2lsbCBiZSBvZiB0eXBlIGBzdHJpbmdgLCBhbmQgYHZhbHVlQ2hhbmdlYCB3aWxsIGVtaXQgYHN0cmluZ2AuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NwLXNlbGVjdDpub3QoW211bHRpcGxlXSknLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTZWxlY3RWYWx1ZUhvbGRlcixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNpbmdsZVNlbGVjdERpcmVjdGl2ZSksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2luZ2xlU2VsZWN0RGlyZWN0aXZlIGV4dGVuZHMgU2luZ2xlU2VsZWN0RGlyZWN0aXZlQmFzZSB7fVxuXG4vKipcbiAqIEFsbG93cyB1c2VyIHRvIHNlbGVjdCBhIHNpbmdsZSBvcHRpb24gZnJvbSBhIGxpc3QsIHNpbWlsYXIgdG8gbmF0aXZlIHNlbGVjdFxuICogY29tcG9uZW50LlxuICpcbiAqIEV4YW1wbGU6XG4gKiBgYGB0c3hcbiAqIDxzcC1maWVsZD5cbiAqICAgPHNwLWZpZWxkLWxhYmVsPkxhYmVsIHRleHQ8L3NwLWZpZWxkLWxhYmVsPlxuICogICA8c3Atc2VsZWN0IHBsYWNlaG9sZGVyPVwiU2VsZWN0IGFuIG9wdGlvblwiPlxuICogICAgIDxzcC1vcHRpb24gdmFsdWU9XCJvcHRpb24xXCI+Rmlyc3QgT3B0aW9uPC9zcC1vcHRpb24+XG4gKiAgICAgPHNwLW9wdGlvbiB2YWx1ZT1cIm9wdGlvbjJcIj5TZWNvbmQgT3B0aW9uPC9zcC1vcHRpb24+XG4gKiAgICAgPHNwLW9wdGlvbiB2YWx1ZT1cIm9wdGlvbjNcIj5UaGlyZCBPcHRpb248L3NwLW9wdGlvbj5cbiAqICAgPC9zcC1zZWxlY3Q+XG4gKiA8L3NwLWZpZWxkPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NwLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdzcFNlbGVjdCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogU2VsZWN0Q29tcG9uZW50QmFzZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdENvbXBvbmVudCksXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBGaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3NhcHBoaXJlLXNlbGVjdCcsXG4gICAgJ1tjbGFzcy5zYXBwaGlyZS1zZWxlY3QtLWVycm9yXSc6ICdfZmllbGQ/Lmhhc0Vycm9yKHRoaXMpJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLXNlbGVjdC0tbWRdJzogJ19maWVsZD8uc2l6ZSA9PT0gXCJtZFwiJyxcbiAgICAnW2NsYXNzLmlzLWZvY3VzXSc6ICdpc0ZvY3VzVmlzaWJsZSgpJyxcbiAgICAnW2NsYXNzLmlzLWRpc2FibGVkXSc6ICdpc0Rpc2FibGVkKCknLFxuICAgICdbYXR0ci5pZF0nOiAnbnVsbCcsXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxdJzogJ251bGwnLFxuICAgICdbYXR0ci5hcmlhLWxhYmVsbGVkYnldJzogJ251bGwnLFxuICAgICdbYXR0ci5wbGFjZWhvbGRlcl0nOiAnbnVsbCcsXG4gIH0sXG4gIGhvc3REaXJlY3RpdmVzOiBbVXNlQ29tcG9uZW50U3R5bGVzT25Ib3N0XSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50XG4gIGV4dGVuZHMgU2VsZWN0Q29tcG9uZW50QmFzZVxuICBpbXBsZW1lbnRzIEZpZWxkQ29udHJvbCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIHByaXZhdGUgZm9jdXNPcmlnaW46IEZvY3VzT3JpZ2luID0gbnVsbDtcbiAgZmlsdGVyZWRDaGlsZHJlbiQ6IE9ic2VydmFibGU8TGlzdGJveENoaWxkW10+ID0gbmV3IFN1YmplY3QoKTtcblxuICBAVmlld0NoaWxkKCd0cmlnZ2VyUmVmJylcbiAgcHJvdGVjdGVkIHRyaWdnZXJSZWY6IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXJFbGVtZW50UmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByb3RlY3RlZCB0cmlnZ2VyRWxlbWVudFJlZjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKExpc3Rib3hDb21wb25lbnQpXG4gIHByb3RlY3RlZCBsaXN0Ym94OiBMaXN0Ym94Q29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pXG4gIHByaXZhdGUgc2VhcmNoSW5wdXQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIGdldCBzZWFyY2hhYmxlKCkge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmUpO1xuICB9XG5cbiAgLyoqXG4gICAqIGlkIG9mIHRyaWdnZXIgdmFsdWUgYXJlYSwgd2hpY2ggd2lsbCBjb250YWluIGVpdGhlciB0aGUgc2VsZWN0ZWQgdmFsdWUgb3IgdGhlIHBsYWNlaG9sZGVyLlxuICAgKi9cbiAgQEF1dG9JZCgpXG4gIF92YWx1ZUNvbnRhaW5lcklkOiBzdHJpbmcgPSAnJztcblxuICBwcml2YXRlIGRlc3Ryb3llZCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgdmFsdWVIb2xkZXI6IFNlbGVjdFZhbHVlSG9sZGVyLFxuICAgIHByaXZhdGUgZm9jdXNNb25pdG9yOiBGb2N1c01vbml0b3IsXG4gICAgcHJpdmF0ZSBpbnB1dE1vZGFsaXR5OiBJbnB1dE1vZGFsaXR5RGV0ZWN0b3IsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIF9maWVsZD86IEZpZWxkQ29tcG9uZW50LFxuICAgIEBPcHRpb25hbCgpIHB1YmxpYyBfc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZT86IFNlYXJjaGFibGVTZWxlY3REaXJlY3RpdmVcbiAgKSB7XG4gICAgc3VwZXIodmFsdWVIb2xkZXIpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGNvbnN0IGxpc3Rib3hJdGVtJCA9IHRoaXMubGlzdGJveENoaWxkcmVuLmNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLmxpc3Rib3hDaGlsZHJlbilcbiAgICApO1xuICAgIGNvbnN0IHNlYXJjaGFibGVTZWxlY3QgPSB0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlO1xuICAgIGlmICh0aGlzLnNlYXJjaElucHV0ICYmIHNlYXJjaGFibGVTZWxlY3QpIHtcbiAgICAgIGNvbnN0IHNlYXJjaElucHV0VmFsdWUkID0gc2VhcmNoYWJsZVNlbGVjdC5zZWFyY2hWYWx1ZUNoYW5nZS5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpLFxuICAgICAgICBzdGFydFdpdGgoc2VhcmNoYWJsZVNlbGVjdC5zZWFyY2hWYWx1ZSlcbiAgICAgICk7XG4gICAgICBjb25zdCBmaWx0ZXJSZXN1bHQkID0gY29tYmluZUxhdGVzdChzZWFyY2hJbnB1dFZhbHVlJCwgbGlzdGJveEl0ZW0kKS5waXBlKFxuICAgICAgICBtYXAoKFtzZWFyY2hRdWVyeV0pID0+IHtcbiAgICAgICAgICBpZiAoIXNlYXJjaFF1ZXJ5KSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICBmaWx0ZXJlZENoaWxkcmVuOiB0aGlzLmxpc3Rib3hDaGlsZHJlbi50b0FycmF5KCksXG4gICAgICAgICAgICAgIGZpbHRlcmVkT3V0T3B0aW9uczogW10sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gc2VhcmNoYWJsZVNlbGVjdC5maWx0ZXJMaXN0Ym94SXRlbXMoXG4gICAgICAgICAgICB0aGlzLmxpc3Rib3hDaGlsZHJlbixcbiAgICAgICAgICAgIChvcHRpb24pID0+XG4gICAgICAgICAgICAgICFzZWFyY2hhYmxlU2VsZWN0LmZpbHRlciB8fFxuICAgICAgICAgICAgICBzZWFyY2hhYmxlU2VsZWN0LmZpbHRlcihvcHRpb24sIHNlYXJjaFF1ZXJ5KVxuICAgICAgICAgICk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgICAgdGhpcy5maWx0ZXJlZENoaWxkcmVuJCA9IHRoaXMubXVsdGlwbGVcbiAgICAgICAgPyAvLyBHcm91cGluZyBzZWxlY3RlZCBvcHRpb25zXG4gICAgICAgICAgY29tYmluZUxhdGVzdChcbiAgICAgICAgICAgIGZpbHRlclJlc3VsdCQsXG4gICAgICAgICAgICB0aGlzLnZhbHVlSG9sZGVyLnZhbHVlQ2hhbmdlLnBpcGUoc3RhcnRXaXRoKGVtcHR5KCkpKVxuICAgICAgICAgICkucGlwZShcbiAgICAgICAgICAgIG1hcCgoW3sgZmlsdGVyZWRDaGlsZHJlbiB9XSkgPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5saXN0Ym94VmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZpbHRlcmVkQ2hpbGRyZW47XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgICAgIGZpbHRlcmVkT3V0T3B0aW9uczogc2VsZWN0ZWRPcHRpb25zLFxuICAgICAgICAgICAgICAgIGZpbHRlcmVkQ2hpbGRyZW46IHNlbGVjdGlvbkV4Y2x1ZGVkQ2hpbGRyZW4sXG4gICAgICAgICAgICAgIH0gPSBzZWFyY2hhYmxlU2VsZWN0LmZpbHRlckxpc3Rib3hJdGVtcyhcbiAgICAgICAgICAgICAgICBmaWx0ZXJlZENoaWxkcmVuLFxuICAgICAgICAgICAgICAgIChvcHRpb24pID0+ICF0aGlzLmxpc3Rib3hWYWx1ZS5pbmNsdWRlcyhvcHRpb24udmFsdWUpXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA+IDBcbiAgICAgICAgICAgICAgICAgID8gW3NlY3Rpb24oc2VsZWN0ZWRPcHRpb25zKV1cbiAgICAgICAgICAgICAgICAgIDogKFtdIGFzIExpc3Rib3hDaGlsZFtdKVxuICAgICAgICAgICAgICApLmNvbmNhdChzZWxlY3Rpb25FeGNsdWRlZENoaWxkcmVuKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgKVxuICAgICAgICA6IGZpbHRlclJlc3VsdCQucGlwZShtYXAoKHsgZmlsdGVyZWRDaGlsZHJlbiB9KSA9PiBmaWx0ZXJlZENoaWxkcmVuKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRDaGlsZHJlbiQgPSBsaXN0Ym94SXRlbSQ7XG4gICAgfVxuICB9XG4gIG5nT25EZXN0cm95KCkge1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQubmV4dCgpO1xuICAgIHRoaXMuZGVzdHJveWVkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBfZ2V0QXJpYUxhYmVsbGVkQnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBUaGUgbG9naWMgaGVyZSBpcyBzaW1pbGFyIHRvIHRoZSBvbmUgaW4gcmVhY3QtYXJpYSdzIHVzZVNlbGVjdC5cbiAgICBjb25zdCBsYWJlbGxlZEJ5ID0gdGhpcy5hcmlhTGFiZWxsZWRieSB8fCB0aGlzLl9maWVsZD8ubGFiZWw/LmlkO1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLl92YWx1ZUNvbnRhaW5lcklkLFxuICAgICAgbGFiZWxsZWRCeSxcbiAgICAgIHRoaXMuYXJpYUxhYmVsICYmICFsYWJlbGxlZEJ5ID8gdGhpcy5pZCA6IG51bGwsXG4gICAgXVxuICAgICAgLmZpbHRlcigoaSkgPT4gaSlcbiAgICAgIC5qb2luKCcgJyk7XG4gIH1cblxuICBpc0ZvY3VzZWQoKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5mb2N1c09yaWdpbik7XG4gIH1cblxuICBpc0ZvY3VzVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5pc0ZvY3VzZWQoKSAmJlxuICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSBmb2N1cyBkb2Vzbid0IGNoYW5nZSB3aGVuIGEga2V5IChlLmcuIEVzY2FwZSkgaXMgcHJlc3NlZCBpbiB0aGUgc2VhcmNoIGlucHV0LlxuICAgICAgKHRoaXMuaW5wdXRNb2RhbGl0eS5tb3N0UmVjZW50TW9kYWxpdHkgPT09ICdrZXlib2FyZCcgfHxcbiAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIHdoZW4gbGFiZWwgaXMgY2xpY2tlZCBhbmQgZm9jdXNPcmlnaW4gaXMgZm9yY2VkIHRvIGtleWJvYXJkLCBidXQgY3VycmVudCBtb2RhbGl0eSBpcyBtb3VzZS5cbiAgICAgICAgdGhpcy5mb2N1c09yaWdpbiA9PT0gJ2tleWJvYXJkJykgJiZcbiAgICAgICF0aGlzLmlzT3BlbigpIC8vIFRoaXMgaXMgYmVjYXVzZSBpbiBzZWFyY2hhYmxlIHNlbGVjdCwgdGhlIGFjdHVhbCBmb2N1cyBpcyBvbiB0aGUgaW5wdXQsXG4gICAgICAvLyBidXQgaXQncyBtZWFudCB0byBiZSBzaG93biBvbiB0aGUgbGlzdGJveC4gSXQgZG9lc24ndCBtYWtlIHNlbnNlIHRvIHNob3cgdGhlIGZvY3VzIGluIHR3b1xuICAgICAgLy8gcGxhY2VzLlxuICAgICk7XG4gIH1cblxuICBmb2N1cyhmb2N1c09yaWdpbjogRm9jdXNPcmlnaW4gPSAncHJvZ3JhbScpIHtcbiAgICB0aGlzLmZvY3VzTW9uaXRvci5mb2N1c1ZpYShcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQgPz8gdGhpcy50cmlnZ2VyRWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCxcbiAgICAgIGZvY3VzT3JpZ2luXG4gICAgKTtcbiAgfVxuXG4gIF9vbkZvY3VzQ2hhbmdlKGZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbikge1xuICAgIHRoaXMuZm9jdXNPcmlnaW4gPSBmb2N1c09yaWdpbjtcbiAgfVxuXG4gIF9vbkZvY3VzKCkge1xuICAgIC8vIFdoZW5ldmVyIGZvY3VzIGNvbWVzIHRvIHRoZSB0cmlnZ2VyICwgZm9yd2FyZCBpdCB0byB0aGUgc2VhcmNoIGlucHV0LiBJdCdzIG5lZWRlZCBmb3Igd2hlblxuICAgIC8vIHRoZSB0cmlnZ2VyIGlzIHJlLWZvY3VzZWQgYWZ0ZXIgcG9wb3ZlciBpcyBjbG9zZWQuXG4gICAgdGhpcy5mb2N1cyh0aGlzLmZvY3VzT3JpZ2luKTtcbiAgfVxuXG4gIF9pc0lucHV0VmlzaWJsZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc09wZW4oKSAvKnx8XG4gICAgICAodGhpcy5zZWFyY2hJbnB1dD8ubmF0aXZlRWxlbWVudCA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJlxuICAgICAgICB0aGlzLmxpc3Rib3hWYWx1ZS5sZW5ndGggPT09IDApKi87XG4gIH1cblxuICBfb25PcGVuKCkge1xuICAgIHN1cGVyLl9vbk9wZW4oKTtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUgJiYgdGhpcy5fc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZSkge1xuICAgICAgdGhpcy5fc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZS5zZXRTZWFyY2hWYWx1ZShcbiAgICAgICAgKHRoaXMuX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmUuY2xlYXJTZWFyY2hPbk9wZW5cbiAgICAgICAgICA/ICcnXG4gICAgICAgICAgOiB0aGlzLnNlbGVjdGVkT3B0aW9uc1swXT8ubGFiZWwpID8/ICcnXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBzZWFyY2hJbnB1dEVsZW1lbnQgPSB0aGlzLnNlYXJjaElucHV0Py5uYXRpdmVFbGVtZW50O1xuICAgIGlmICh0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlPy5zZWxlY3RUZXh0T25PcGVuKSB7XG4gICAgICBzZWFyY2hJbnB1dEVsZW1lbnQ/LnNlbGVjdCgpO1xuICAgIH1cbiAgICBjb25zdCBmb2N1c1Zpc2libGVPbk9wZW4gPSB0aGlzLmlzRm9jdXNWaXNpYmxlKCk7XG4gICAgLy8gTW92ZSBmb2N1cyB0byB0aGUgc2VhcmNoIGlucHV0LiBUaGUgdGltZW91dCBpcyBuZWVkZWQgYmVjYXVzZSBwb3BvdmVyIHdpbGwgYXV0b2ZvY3VzIHRoZVxuICAgIC8vIGNvbnRlbnQsIGFuZCB3ZSBuZWVkIHRvIGxldCB0aGUgZm9jdXMgZmlyc3QgbGFuZCBpbiB0aGUgcG9wb3ZlciwgYW5kIHRoZW4gc3RlYWwgaXQuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZWFyY2hJbnB1dEVsZW1lbnQ/LmZvY3VzKCk7XG5cbiAgICAgIC8vIE5lZWQgdG8gcnVuIHRoaXMgYWxzbyBhc3luY2hyb25vdXNseSwgdG8gbGV0IHRoZSBwb3BvdmVyIChhbmQgbGlzdGJveCkgbW91bnRcbiAgICAgIGlmICghZm9jdXNWaXNpYmxlT25PcGVuICYmIHRoaXMuc2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAvLyB0byBwcmV2ZW50IHRoZSBmaXJzdCBpdGVtIGZyb20gYmVpbmcgZm9jdXNlZCB3aGVuIHRoZSBkcm9wZG93biBpcyBvcGVuZWQgdmlhIG1vdXNlXG4gICAgICAgIHRoaXMubGlzdGJveD8uc2V0QWN0aXZlT3B0aW9uKG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgX29uQ2xvc2UoKSB7XG4gICAgc3VwZXIuX29uQ2xvc2UoKTtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUgJiYgdGhpcy5fc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZSkge1xuICAgICAgdGhpcy5fc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZS5zZXRTZWFyY2hWYWx1ZShcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbnNbMF0/LmxhYmVsIHx8ICcnXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBzZWFyY2hJbnB1dEVsZW1lbnQgPSB0aGlzLnNlYXJjaElucHV0Py5uYXRpdmVFbGVtZW50O1xuICAgIHNlYXJjaElucHV0RWxlbWVudD8uc2V0U2VsZWN0aW9uUmFuZ2UoXG4gICAgICBzZWFyY2hJbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoLFxuICAgICAgc2VhcmNoSW5wdXRFbGVtZW50LnZhbHVlLmxlbmd0aFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RmllbGRMYWJlbD8oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fZmllbGQ/LmxhYmVsPy5nZXRUZXh0KCkgPz8gJyc7XG4gIH1cblxuICBfb25JbnB1dEtleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBjb25zdCBzZWxlY3RWYWx1ZSA9ICh0b0JlU2VsZWN0ZWQ6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgbGlzdGJveFZhbHVlID0gdGhpcy5saXN0Ym94VmFsdWU7XG4gICAgICBjb25zdCBhbHJlYWR5U2VsZWN0ZWQgPSBsaXN0Ym94VmFsdWUuaW5jbHVkZXModG9CZVNlbGVjdGVkKTtcbiAgICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgIHRoaXMubGlzdGJveFZhbHVlID0gYWxyZWFkeVNlbGVjdGVkXG4gICAgICAgICAgPyBsaXN0Ym94VmFsdWUuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IHRvQmVTZWxlY3RlZClcbiAgICAgICAgICA6IFsuLi5saXN0Ym94VmFsdWUsIHRvQmVTZWxlY3RlZF07XG4gICAgICB9IGVsc2UgaWYgKCFhbHJlYWR5U2VsZWN0ZWQpIHtcbiAgICAgICAgdGhpcy5saXN0Ym94VmFsdWUgPSBbdG9CZVNlbGVjdGVkXTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IGZpcnN0T3B0aW9uVmFsdWUgPSB0aGlzLm9wdGlvbnM/LmdldCgwKT8udmFsdWU7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgaWYgKCF0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgIC8vIFNlbGVjdGlvbiBpcyBhbHJlYWR5IGhhbmRsZWQgaWYgdGhlcmUgaXMgYW4gYWN0aXZlIG9wdGlvblxuICAgICAgICBpZiAodGhpcy5pc09wZW4oKSkge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMubGlzdGJveD8uZ2V0QWN0aXZlT3B0aW9uKCkgPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICBmaXJzdE9wdGlvblZhbHVlXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBzZWxlY3RWYWx1ZShmaXJzdE9wdGlvblZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKCF0aGlzLm11bHRpcGxlKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMub3BlbigpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnVGFiJzpcbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKCkgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICBjb25zdCB0b0JlU2VsZWN0ZWQgPVxuICAgICAgICAgICAgdGhpcy5saXN0Ym94Py5nZXRBY3RpdmVPcHRpb24oKSB8fCBmaXJzdE9wdGlvblZhbHVlO1xuICAgICAgICAgIGlmICh0b0JlU2VsZWN0ZWQgIT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBzZWxlY3RWYWx1ZSh0b0JlU2VsZWN0ZWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBfb25TZWFyY2hJbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQudGFyZ2V0IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudCkge1xuICAgICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQ/LnZhbHVlO1xuICAgICAgdGhpcy5fc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZT8uc2V0U2VhcmNoVmFsdWUodmFsdWUpO1xuICAgICAgLy8gY2xlYXJpbmcgdGhlIHZhbHVlIHdoZW4gdGhlIHNlYXJjaCBpbnB1dCBpcyBjbGVhcmVkLlxuICAgICAgaWYgKCF0aGlzLm11bHRpcGxlICYmICF2YWx1ZSAmJiB0aGlzLmxpc3Rib3hWYWx1ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMubGlzdGJveFZhbHVlID0gW107XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5saXN0Ym94Py5zZXRBY3RpdmVPcHRpb24obnVsbCk7XG4gIH1cblxuICBfaGFuZGxlU2VsZWN0ZWQoKSB7XG4gICAgc3VwZXIuX2hhbmRsZVNlbGVjdGVkKCk7XG4gIH1cblxuICBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjb2VyY2VCb29sZWFuUHJvcGVydHkodGhpcy5kaXNhYmxlZCk7XG4gIH1cbn1cbiIsIjxzcC1oaWRkZW4tc2VsZWN0Pjwvc3AtaGlkZGVuLXNlbGVjdD5cbjxkaXZcbiAgcm9sZT1cImJ1dHRvblwiXG4gIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgY2xhc3M9XCJzYXBwaGlyZS1zZWxlY3RfX2J1dHRvblwiXG4gIFtzcFBvcG92ZXJUcmlnZ2VyRm9yXT1cInBvcG92ZXJcIlxuICBbc3BQb3BvdmVyVHJpZ2dlckRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgc3BQb3BvdmVyVHJpZ2dlck9wZW5PblByZXNzU3RhcnRcbiAgc3BQb3BvdmVyVHJpZ2dlckNsb3NlT25TY3JvbGxcbiAgc3BQb3BvdmVyUGxhY2VtZW50PVwiYm90dG9tIHN0YXJ0XCJcbiAgI3RyaWdnZXJFbGVtZW50UmVmXG4gICN0cmlnZ2VyUmVmPVwic3BQb3BvdmVyVHJpZ2dlclwiXG4gIChrZXlkb3duKT1cImhhbmRsZUtleURvd24oJGV2ZW50KVwiXG4gIChzcFBvcG92ZXJUcmlnZ2VyQ2xvc2VkKT1cIl9vbkNsb3NlKClcIlxuICAoc3BQb3BvdmVyVHJpZ2dlck9wZW5lZCk9XCJfb25PcGVuKClcIlxuICAoZm9jdXMpPVwiX29uRm9jdXMoKVwiXG4gIGNka01vbml0b3JTdWJ0cmVlRm9jdXNcbiAgKGNka0ZvY3VzQ2hhbmdlKT1cIl9vbkZvY3VzQ2hhbmdlKCRldmVudClcIlxuICBbc3BQb3BvdmVyTm9uTW9kYWxdPVwic2VhcmNoYWJsZVwiXG4gIHNwUG9wb3ZlckRpc2FibGVQdXNoSW5zaWRlVmlld3BvcnQ9XCJ0cnVlXCJcbiAgW2lkXT1cImlkXCJcbiAgW3RhYmluZGV4XT1cIi0xXCJcbiAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWxcIlxuICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiX2dldEFyaWFMYWJlbGxlZEJ5KClcIlxuICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cIl9maWVsZD8uZXJyb3I/LmlkIHx8IF9maWVsZD8ubm90ZT8uaWRcIlxuICBbYXR0ci5hcmlhLWludmFsaWRdPVwiX2ZpZWxkPy5oYXNFcnJvcih0aGlzKSA/IHRydWUgOiBudWxsXCJcbj5cbiAgPGRpdiBjbGFzcz1cInNhcHBoaXJlLXNlbGVjdF9fdmFsdWVcIiBbaWRdPVwiX3ZhbHVlQ29udGFpbmVySWRcIj5cbiAgICA8aW5wdXRcbiAgICAgICpuZ0lmPVwic2VhcmNoYWJsZVwiXG4gICAgICAjc2VhcmNoSW5wdXRcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgcm9sZT1cImNvbWJvYm94XCJcbiAgICAgIGNsYXNzPVwic2FwcGhpcmUtc2VsZWN0X19zZWFyY2gtaW5wdXRcIlxuICAgICAgW3NwTGlzdGJveElucHV0XT1cImxpc3Rib3hcIlxuICAgICAgW3NwVmlzdWFsbHlIaWRkZW5dPVwiIV9pc0lucHV0VmlzaWJsZSgpXCJcbiAgICAgIFthdHRyLmRhdGEtaGlkZGVuXT1cIiFfaXNJbnB1dFZpc2libGUoKVwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgKGtleWRvd24pPVwiX29uSW5wdXRLZXlkb3duKCRldmVudClcIlxuICAgICAgKGJlZm9yZWlucHV0KT1cIm9wZW4oKVwiXG4gICAgICBbdmFsdWVdPVwiX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmU/LnNlYXJjaFZhbHVlXCJcbiAgICAgIChpbnB1dCk9XCJfb25TZWFyY2hJbnB1dCgkZXZlbnQpXCJcbiAgICAvPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VhcmNoYWJsZSB8fCAhX2lzSW5wdXRWaXNpYmxlKClcIj5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwXCJcbiAgICAgICAgY2xhc3M9XCJzYXBwaGlyZS1zZWxlY3RfX3BsYWNlaG9sZGVyXCJcbiAgICAgID5cbiAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPiAwXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhc2VsZWN0aW9uVGV4dFwiPnt7XG4gICAgICAgICAgZ2V0U2VsZWN0aW9uVGV4dCgpXG4gICAgICAgIH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNwLXNlbGVjdGlvbi10ZXh0XCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwic2FwcGhpcmUtc2VsZWN0X19pY29uLWNvbnRhaW5lclwiPlxuICAgIDxzcC1pY29uIG5hbWU9XCJjaGV2cm9uRG93blwiPjwvc3AtaWNvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjcG9wb3Zlcj5cbiAgPHNwLXBvcG92ZXJcbiAgICBbc3R5bGUuZGlzcGxheV09XCJcbiAgICAgIChmaWx0ZXJlZENoaWxkcmVuJCB8IGFzeW5jKT8ubGVuZ3RoID09PSAwID8gJ25vbmUnIDogdW5kZWZpbmVkXG4gICAgXCJcbiAgICBub1BhZGRpbmdcbiAgICBub01heFdpZHRoXG4gICAgW3N0eWxlLm1pbi13aWR0aF09XCJ0cmlnZ2VyRWxlbWVudFJlZi5vZmZzZXRXaWR0aCArICdweCdcIlxuICA+XG4gICAgPHNwLWxpc3Rib3hcbiAgICAgIFtzcExpc3Rib3hJdGVtc109XCIoZmlsdGVyZWRDaGlsZHJlbiQgfCBhc3luYykgfHwgdW5kZWZpbmVkXCJcbiAgICAgIG5hdmlnYXRpb25XcmFwRGlzYWJsZWRcbiAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICBbKHNlbGVjdGVkVmFsdWVzKV09XCJsaXN0Ym94VmFsdWVcIlxuICAgICAgKHNlbGVjdGVkVmFsdWVzQ2hhbmdlKT1cIl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlPy5zZXRTZWFyY2hWYWx1ZSgnJylcIlxuICAgICAgKHNlbGVjdGVkKT1cIl9oYW5kbGVTZWxlY3RlZCgpXCJcbiAgICAgIFtzaXplXT1cIl9maWVsZD8uc2l6ZVwiXG4gICAgPlxuICAgIDwvc3AtbGlzdGJveD5cbiAgPC9zcC1wb3BvdmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -16,13 +16,13 @@ export class SkeletonComponent {
16
16
  }
17
17
  }
18
18
  SkeletonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- SkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: SkeletonComponent, selector: "sp-skeleton-block, sp-skeleton-circle, sp-skeleton-text", inputs: { index: "index" }, host: { properties: { "style.animation-delay": "_getAnimationDelay(index)" }, classAttribute: "sapphire-skeleton" }, hostDirectives: [{ directive: i1.ThemeCheckDirective }, { directive: i2.UseComponentStylesOnHost }], ngImport: i0, template: '', isInline: true, styles: ["@keyframes skeletonPulse{0%,25%{opacity:1}60%,65%{opacity:var(--sapphire-global-opacity-35)}to{opacity:1}}.sapphire-skeleton{width:100%;background-color:var(--sapphire-global-color-sapphire-100);animation:skeletonPulse infinite cubic-bezier(.25,0,.25,1);animation-duration:var(--sapphire-semantic-time-fade-slow)}.sapphire-skeleton--text{height:calc(var(--sapphire-global-size-ratio-height) * 1em);transform:translateY(calc((1 - var(--sapphire-global-size-ratio-height)) / 2 * 1em));display:inline-block;border-radius:var(--sapphire-semantic-size-radius-sm)}.sapphire-skeleton--circle{height:100%;border-radius:50%}.sapphire-skeleton--block{height:100%;width:100%}:host{display:block}\n"] });
19
+ SkeletonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.0", type: SkeletonComponent, selector: "sp-skeleton-block, sp-skeleton-circle, sp-skeleton-text", inputs: { index: "index" }, host: { properties: { "style.animation-delay": "_getAnimationDelay(index)" }, classAttribute: "sapphire-skeleton" }, hostDirectives: [{ directive: i1.ThemeCheckDirective }, { directive: i2.UseComponentStylesOnHost }], ngImport: i0, template: '', isInline: true, styles: ["@keyframes skeletonPulse{0%,25%{opacity:1}60%,65%{opacity:var(--sapphire-global-opacity-35)}to{opacity:1}}.sapphire-skeleton{width:100%;background-color:var(--sapphire-semantic-color-background-skeleton-default);animation:skeletonPulse infinite cubic-bezier(.25,0,.25,1);animation-duration:var(--sapphire-semantic-time-fade-slow)}.sapphire-skeleton--text{height:calc(var(--sapphire-global-size-ratio-height) * 1em);transform:translateY(calc((1 - var(--sapphire-global-size-ratio-height)) / 2 * 1em));display:inline-block;border-radius:var(--sapphire-semantic-size-radius-sm)}.sapphire-skeleton--circle{height:100%;border-radius:50%}.sapphire-skeleton--block{height:100%;width:100%}:host{display:block}\n"] });
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SkeletonComponent, decorators: [{
21
21
  type: Component,
22
22
  args: [{ selector: 'sp-skeleton-block, sp-skeleton-circle, sp-skeleton-text', template: '', host: {
23
23
  class: 'sapphire-skeleton',
24
24
  '[style.animation-delay]': '_getAnimationDelay(index)',
25
- }, hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost], styles: ["@keyframes skeletonPulse{0%,25%{opacity:1}60%,65%{opacity:var(--sapphire-global-opacity-35)}to{opacity:1}}.sapphire-skeleton{width:100%;background-color:var(--sapphire-global-color-sapphire-100);animation:skeletonPulse infinite cubic-bezier(.25,0,.25,1);animation-duration:var(--sapphire-semantic-time-fade-slow)}.sapphire-skeleton--text{height:calc(var(--sapphire-global-size-ratio-height) * 1em);transform:translateY(calc((1 - var(--sapphire-global-size-ratio-height)) / 2 * 1em));display:inline-block;border-radius:var(--sapphire-semantic-size-radius-sm)}.sapphire-skeleton--circle{height:100%;border-radius:50%}.sapphire-skeleton--block{height:100%;width:100%}:host{display:block}\n"] }]
25
+ }, hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost], styles: ["@keyframes skeletonPulse{0%,25%{opacity:1}60%,65%{opacity:var(--sapphire-global-opacity-35)}to{opacity:1}}.sapphire-skeleton{width:100%;background-color:var(--sapphire-semantic-color-background-skeleton-default);animation:skeletonPulse infinite cubic-bezier(.25,0,.25,1);animation-duration:var(--sapphire-semantic-time-fade-slow)}.sapphire-skeleton--text{height:calc(var(--sapphire-global-size-ratio-height) * 1em);transform:translateY(calc((1 - var(--sapphire-global-size-ratio-height)) / 2 * 1em));display:inline-block;border-radius:var(--sapphire-semantic-size-radius-sm)}.sapphire-skeleton--circle{height:100%;border-radius:50%}.sapphire-skeleton--block{height:100%;width:100%}:host{display:block}\n"] }]
26
26
  }], propDecorators: { index: [{
27
27
  type: Input
28
28
  }] } });