@danske/sapphire-angular 2.3.0 → 2.5.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.
- package/esm2020/lib/checkbox/src/checkbox.component.mjs +20 -4
- package/esm2020/lib/checkbox/src/checkbox.module.mjs +4 -3
- package/esm2020/lib/field/src/field-control.mjs +1 -1
- package/esm2020/lib/field/src/field.component.mjs +24 -9
- package/esm2020/lib/listbox/src/listbox.component.mjs +2 -2
- package/esm2020/lib/menu/src/menu-trigger.directive.mjs +10 -4
- package/esm2020/lib/menu/src/menu.component.mjs +2 -2
- package/esm2020/lib/modal/src/dialog/dialog-trigger.directive.mjs +3 -8
- package/esm2020/lib/modal/src/modal-trigger.directive.mjs +13 -11
- package/esm2020/lib/modal/src/modal.service.mjs +5 -4
- package/esm2020/lib/modal/src/panel/panel-trigger.directive.mjs +3 -8
- package/esm2020/lib/popover/src/popover-trigger.directive.mjs +11 -11
- package/esm2020/lib/popover/src/popover.component.mjs +3 -3
- package/esm2020/lib/segmented-tabs/src/segmented-tab.component.mjs +2 -2
- package/esm2020/lib/select/src/basic-select/basic-select.component.mjs +2 -2
- package/esm2020/lib/select/src/select/select.component.mjs +4 -3
- package/esm2020/lib/text-field/src/text-field.component.mjs +4 -3
- package/esm2020/lib/theme/public_api.mjs +2 -2
- package/esm2020/lib/theme/src/sapphire-overlay.service.mjs +62 -0
- package/esm2020/lib/theme/src/theme-base.directive.mjs +6 -46
- package/esm2020/lib/theme/src/theme.module.mjs +3 -29
- package/esm2020/lib/theme/src/themes.mjs +4 -4
- package/esm2020/lib/tooltip/src/tooltip.directive.mjs +4 -4
- package/fesm2015/danske-sapphire-angular.mjs +299 -312
- package/fesm2015/danske-sapphire-angular.mjs.map +1 -1
- package/fesm2020/danske-sapphire-angular.mjs +296 -308
- package/fesm2020/danske-sapphire-angular.mjs.map +1 -1
- package/lib/checkbox/src/checkbox.component.d.ts +6 -1
- package/lib/checkbox/src/checkbox.module.d.ts +4 -3
- package/lib/field/src/field-control.d.ts +1 -0
- package/lib/field/src/field.component.d.ts +11 -3
- package/lib/modal/src/dialog/dialog-trigger.directive.d.ts +0 -3
- package/lib/modal/src/modal-trigger.directive.d.ts +3 -2
- package/lib/modal/src/modal.service.d.ts +10 -2
- package/lib/modal/src/panel/panel-trigger.directive.d.ts +0 -3
- package/lib/popover/src/popover-trigger.directive.d.ts +4 -3
- package/lib/select/src/select/select.component.d.ts +1 -0
- package/lib/table/src/table-cell.directive.d.ts +1 -1
- package/lib/text-field/src/text-field.component.d.ts +1 -0
- package/lib/theme/public_api.d.ts +1 -1
- package/lib/theme/src/sapphire-overlay.service.d.ts +34 -0
- package/lib/tooltip/src/tooltip.directive.d.ts +2 -2
- package/package.json +3 -3
- package/esm2020/lib/theme/src/sapphire-overlay-container.service.mjs +0 -37
- package/lib/theme/src/sapphire-overlay-container.service.d.ts +0 -14
|
@@ -108,6 +108,7 @@ export class SelectComponent extends SelectComponentBase {
|
|
|
108
108
|
*/
|
|
109
109
|
this._valueContainerId = '';
|
|
110
110
|
this.destroyed = new Subject();
|
|
111
|
+
this.hasDefaultWidth = true;
|
|
111
112
|
}
|
|
112
113
|
ngAfterViewInit() {
|
|
113
114
|
super.ngAfterViewInit();
|
|
@@ -305,7 +306,7 @@ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", versio
|
|
|
305
306
|
provide: FieldControl,
|
|
306
307
|
useExisting: forwardRef(() => SelectComponent),
|
|
307
308
|
},
|
|
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:
|
|
309
|
+
], 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:block;color:var(--sapphire-semantic-color-content-default-primary);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);pointer-events:none}.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
310
|
__decorate([
|
|
310
311
|
AutoId()
|
|
311
312
|
], SelectComponent.prototype, "_valueContainerId", void 0);
|
|
@@ -335,7 +336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
335
336
|
'[attr.aria-label]': 'null',
|
|
336
337
|
'[attr.aria-labelledby]': 'null',
|
|
337
338
|
'[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 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:
|
|
339
|
+
}, 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:block;color:var(--sapphire-semantic-color-content-default-primary);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);pointer-events:none}.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
340
|
}], ctorParameters: function () { return [{ type: i1.SelectValueHolder }, { type: i2.FocusMonitor }, { type: i2.InputModalityDetector }, { type: i3.FieldComponent, decorators: [{
|
|
340
341
|
type: Optional
|
|
341
342
|
}] }, { type: i4.SearchableSelectDirective, decorators: [{
|
|
@@ -353,4 +354,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
353
354
|
type: ViewChild,
|
|
354
355
|
args: ['searchInput', { read: ElementRef }]
|
|
355
356
|
}], _valueContainerId: [] } });
|
|
356
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUVWLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV2RixPQUFPLEVBQWdCLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pFLE9BQU8sRUFBa0IsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIseUJBQXlCLEdBQzFCLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUd2Qzs7O0dBR0c7QUFV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RTtnQkFJMUMsT0FBTztzQkFEaEIsU0FBUzt1QkFBQyxnQkFBZ0I7Z0JBSW5CLFdBQVc7c0JBRGxCLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFXOUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gIEZvY3VzTW9uaXRvcixcbiAgRm9jdXNPcmlnaW4sXG4gIElucHV0TW9kYWxpdHlEZXRlY3Rvcixcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGVtcHR5LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBBdXRvSWQgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vYXV0by1pZC5kZWNvcmF0b3InO1xuaW1wb3J0IHsgVXNlQ29tcG9uZW50U3R5bGVzT25Ib3N0IH0gZnJvbSAnLi4vLi4vLi4vY29tbW9uL3NhcHBoaXJlLXZpZXctZW5jYXBzdWxhdGlvbic7XG5pbXBvcnQgeyBQb3BvdmVyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3BvcG92ZXIvc3JjL3BvcG92ZXItdHJpZ2dlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTGlzdGJveENoaWxkLCBMaXN0Ym94Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vbGlzdGJveC9wdWJsaWNfYXBpJztcbmltcG9ydCB7IHNlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9saXN0Ym94L3NyYy9zZWN0aW9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBGaWVsZENvbXBvbmVudCwgRmllbGRDb250cm9sIH0gZnJvbSAnLi4vLi4vLi4vZmllbGQvcHVibGljX2FwaSc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnRCYXNlIH0gZnJvbSAnLi4vY29tbW9uL3NlbGVjdC1jb21wb25lbnQtYmFzZSc7XG5pbXBvcnQge1xuICBNdWx0aVNlbGVjdERpcmVjdGl2ZUJhc2UsXG4gIFNlbGVjdFZhbHVlSG9sZGVyLFxuICBTaW5nbGVTZWxlY3REaXJlY3RpdmVCYXNlLFxufSBmcm9tICcuLi9jb21tb24vc2VsZWN0LXZhbHVlLWhvbGRlcic7XG5pbXBvcnQgeyBTZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlIH0gZnJvbSAnLi9zZWFyY2hhYmxlLXNlbGVjdC5kaXJlY3RpdmUnO1xuXG4vKipcbiAqIEVuYWJsZXMgbXVsdGlwbGUgc2VsZWN0aW9uLiBXaGVuIHByZXNlbnQsIGB2YWx1ZWAgd2lsbCBiZSBvZiB0eXBlIGBzdHJpbmdbXWAsIGFuZCBgdmFsdWVDaGFuZ2VgXG4gKiB3aWxsIGVtaXQgYHN0cmluZ1tdYC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnc3Atc2VsZWN0W211bHRpcGxlXScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNlbGVjdFZhbHVlSG9sZGVyLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTXVsdGlTZWxlY3REaXJlY3RpdmUpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE11bHRpU2VsZWN0RGlyZWN0aXZlIGV4dGVuZHMgTXVsdGlTZWxlY3REaXJlY3RpdmVCYXNlIHt9XG5cbi8qKlxuICogRW5hYmxlcyBzaW5nbGUgc2VsZWN0aW9uLCB0aGUgZGVmYXVsdCBiZWhhdmlvciBvZiBTZWxlY3QuXG4gKiBXaGVuIHByZXNlbnQsIGB2YWx1ZWAgd2lsbCBiZSBvZiB0eXBlIGBzdHJpbmdgLCBhbmQgYHZhbHVlQ2hhbmdlYCB3aWxsIGVtaXQgYHN0cmluZ2AuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ3NwLXNlbGVjdDpub3QoW211bHRpcGxlXSknLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBTZWxlY3RWYWx1ZUhvbGRlcixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+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==
|
|
357
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VsZWN0L3NyYy9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBRUwsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLEVBQ1YsVUFBVSxFQUVWLFFBQVEsRUFDUixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFNbkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGFBQWEsRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV2RixPQUFPLEVBQWdCLGdCQUFnQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDN0UsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pFLE9BQU8sRUFBa0IsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxFQUNMLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIseUJBQXlCLEdBQzFCLE1BQU0sK0JBQStCLENBQUM7Ozs7Ozs7Ozs7Ozs7OztBQUd2Qzs7O0dBR0c7QUFV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LEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUkxQyxPQUFPO3NCQURoQixTQUFTO3VCQUFDLGdCQUFnQjtnQkFJbkIsV0FBVztzQkFEbEIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQVc5QyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgRm9jdXNNb25pdG9yLFxuICBGb2N1c09yaWdpbixcbiAgSW5wdXRNb2RhbGl0eURldGVjdG9yLFxufSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBjb2VyY2VCb29sZWFuUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZW1wdHksIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEF1dG9JZCB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbi9hdXRvLWlkLmRlY29yYXRvcic7XG5pbXBvcnQgeyBVc2VDb21wb25lbnRTdHlsZXNPbkhvc3QgfSBmcm9tICcuLi8uLi8uLi9jb21tb24vc2FwcGhpcmUtdmlldy1lbmNhcHN1bGF0aW9uJztcbmltcG9ydCB7IFBvcG92ZXJUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vcG9wb3Zlci9zcmMvcG9wb3Zlci10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMaXN0Ym94Q2hpbGQsIExpc3Rib3hDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9saXN0Ym94L3B1YmxpY19hcGknO1xuaW1wb3J0IHsgc2VjdGlvbiB9IGZyb20gJy4uLy4uLy4uL2xpc3Rib3gvc3JjL3NlY3Rpb24uZGlyZWN0aXZlJztcbmltcG9ydCB7IEZpZWxkQ29tcG9uZW50LCBGaWVsZENvbnRyb2wgfSBmcm9tICcuLi8uLi8uLi9maWVsZC9wdWJsaWNfYXBpJztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudEJhc2UgfSBmcm9tICcuLi9jb21tb24vc2VsZWN0LWNvbXBvbmVudC1iYXNlJztcbmltcG9ydCB7XG4gIE11bHRpU2VsZWN0RGlyZWN0aXZlQmFzZSxcbiAgU2VsZWN0VmFsdWVIb2xkZXIsXG4gIFNpbmdsZVNlbGVjdERpcmVjdGl2ZUJhc2UsXG59IGZyb20gJy4uL2NvbW1vbi9zZWxlY3QtdmFsdWUtaG9sZGVyJztcbmltcG9ydCB7IFNlYXJjaGFibGVTZWxlY3REaXJlY3RpdmUgfSBmcm9tICcuL3NlYXJjaGFibGUtc2VsZWN0LmRpcmVjdGl2ZSc7XG5cbi8qKlxuICogRW5hYmxlcyBtdWx0aXBsZSBzZWxlY3Rpb24uIFdoZW4gcHJlc2VudCwgYHZhbHVlYCB3aWxsIGJlIG9mIHR5cGUgYHN0cmluZ1tdYCwgYW5kIGB2YWx1ZUNoYW5nZWBcbiAqIHdpbGwgZW1pdCBgc3RyaW5nW11gLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdzcC1zZWxlY3RbbXVsdGlwbGVdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU2VsZWN0VmFsdWVIb2xkZXIsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBNdWx0aVNlbGVjdERpcmVjdGl2ZSksXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTXVsdGlTZWxlY3REaXJlY3RpdmUgZXh0ZW5kcyBNdWx0aVNlbGVjdERpcmVjdGl2ZUJhc2Uge31cblxuLyoqXG4gKiBFbmFibGVzIHNpbmdsZSBzZWxlY3Rpb24sIHRoZSBkZWZhdWx0IGJlaGF2aW9yIG9mIFNlbGVjdC5cbiAqIFdoZW4gcHJlc2VudCwgYHZhbHVlYCB3aWxsIGJlIG9mIHR5cGUgYHN0cmluZ2AsIGFuZCBgdmFsdWVDaGFuZ2VgIHdpbGwgZW1pdCBgc3RyaW5nYC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnc3Atc2VsZWN0Om5vdChbbXVsdGlwbGVdKScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNlbGVjdFZhbHVlSG9sZGVyLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2luZ2xlU2VsZWN0RGlyZWN0aXZlKSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBTaW5nbGVTZWxlY3REaXJlY3RpdmUgZXh0ZW5kcyBTaW5nbGVTZWxlY3REaXJlY3RpdmVCYXNlIHt9XG5cbi8qKlxuICogQWxsb3dzIHVzZXIgdG8gc2VsZWN0IGEgc2luZ2xlIG9wdGlvbiBmcm9tIGEgbGlzdCwgc2ltaWxhciB0byBuYXRpdmUgc2VsZWN0XG4gKiBjb21wb25lbnQuXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHRzeFxuICogPHNwLWZpZWxkPlxuICogICA8c3AtZmllbGQtbGFiZWw+TGFiZWwgdGV4dDwvc3AtZmllbGQtbGFiZWw+XG4gKiAgIDxzcC1zZWxlY3QgcGxhY2Vob2xkZXI9XCJTZWxlY3QgYW4gb3B0aW9uXCI+XG4gKiAgICAgPHNwLW9wdGlvbiB2YWx1ZT1cIm9wdGlvbjFcIj5GaXJzdCBPcHRpb248L3NwLW9wdGlvbj5cbiAqICAgICA8c3Atb3B0aW9uIHZhbHVlPVwib3B0aW9uMlwiPlNlY29uZCBPcHRpb248L3NwLW9wdGlvbj5cbiAqICAgICA8c3Atb3B0aW9uIHZhbHVlPVwib3B0aW9uM1wiPlRoaXJkIE9wdGlvbjwvc3Atb3B0aW9uPlxuICogICA8L3NwLXNlbGVjdD5cbiAqIDwvc3AtZmllbGQ+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3Atc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuc2NzcyddLFxuICBleHBvcnRBczogJ3NwU2VsZWN0JyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBTZWxlY3RDb21wb25lbnRCYXNlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEZpZWxkQ29udHJvbCxcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNlbGVjdENvbXBvbmVudCksXG4gICAgfSxcbiAgXSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnc2FwcGhpcmUtc2VsZWN0JyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLXNlbGVjdC0tZXJyb3JdJzogJ19maWVsZD8uaGFzRXJyb3IodGhpcyknLFxuICAgICdbY2xhc3Muc2FwcGhpcmUtc2VsZWN0LS1tZF0nOiAnX2ZpZWxkPy5zaXplID09PSBcIm1kXCInLFxuICAgICdbY2xhc3MuaXMtZm9jdXNdJzogJ2lzRm9jdXNWaXNpYmxlKCknLFxuICAgICdbY2xhc3MuaXMtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQoKScsXG4gICAgJ1thdHRyLmlkXSc6ICdudWxsJyxcbiAgICAnW2F0dHIuYXJpYS1sYWJlbF0nOiAnbnVsbCcsXG4gICAgJ1thdHRyLmFyaWEtbGFiZWxsZWRieV0nOiAnbnVsbCcsXG4gICAgJ1thdHRyLnBsYWNlaG9sZGVyXSc6ICdudWxsJyxcbiAgfSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtVc2VDb21wb25lbnRTdHlsZXNPbkhvc3RdLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnRcbiAgZXh0ZW5kcyBTZWxlY3RDb21wb25lbnRCYXNlXG4gIGltcGxlbWVudHMgRmllbGRDb250cm9sLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBmb2N1c09yaWdpbjogRm9jdXNPcmlnaW4gPSBudWxsO1xuICBmaWx0ZXJlZENoaWxkcmVuJDogT2JzZXJ2YWJsZTxMaXN0Ym94Q2hpbGRbXT4gPSBuZXcgU3ViamVjdCgpO1xuXG4gIEBWaWV3Q2hpbGQoJ3RyaWdnZXJSZWYnKVxuICBwcm90ZWN0ZWQgdHJpZ2dlclJlZjogUG9wb3ZlclRyaWdnZXJEaXJlY3RpdmUgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgndHJpZ2dlckVsZW1lbnRSZWYnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJvdGVjdGVkIHRyaWdnZXJFbGVtZW50UmVmOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoTGlzdGJveENvbXBvbmVudClcbiAgcHJvdGVjdGVkIGxpc3Rib3g6IExpc3Rib3hDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHJpdmF0ZSBzZWFyY2hJbnB1dD86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgZ2V0IHNlYXJjaGFibGUoKSB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5fc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZSk7XG4gIH1cblxuICAvKipcbiAgICogaWQgb2YgdHJpZ2dlciB2YWx1ZSBhcmVhLCB3aGljaCB3aWxsIGNvbnRhaW4gZWl0aGVyIHRoZSBzZWxlY3RlZCB2YWx1ZSBvciB0aGUgcGxhY2Vob2xkZXIuXG4gICAqL1xuICBAQXV0b0lkKClcbiAgX3ZhbHVlQ29udGFpbmVySWQ6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgZGVzdHJveWVkID0gbmV3IFN1YmplY3QoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICB2YWx1ZUhvbGRlcjogU2VsZWN0VmFsdWVIb2xkZXIsXG4gICAgcHJpdmF0ZSBmb2N1c01vbml0b3I6IEZvY3VzTW9uaXRvcixcbiAgICBwcml2YXRlIGlucHV0TW9kYWxpdHk6IElucHV0TW9kYWxpdHlEZXRlY3RvcixcbiAgICBAT3B0aW9uYWwoKSBwdWJsaWMgX2ZpZWxkPzogRmllbGRDb21wb25lbnQsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIF9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlPzogU2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZVxuICApIHtcbiAgICBzdXBlcih2YWx1ZUhvbGRlcik7XG4gIH1cblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG4gICAgY29uc3QgbGlzdGJveEl0ZW0kID0gdGhpcy5saXN0Ym94Q2hpbGRyZW4uY2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMubGlzdGJveENoaWxkcmVuKVxuICAgICk7XG4gICAgY29uc3Qgc2VhcmNoYWJsZVNlbGVjdCA9IHRoaXMuX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmU7XG4gICAgaWYgKHRoaXMuc2VhcmNoSW5wdXQgJiYgc2VhcmNoYWJsZVNlbGVjdCkge1xuICAgICAgY29uc3Qgc2VhcmNoSW5wdXRWYWx1ZSQgPSBzZWFyY2hhYmxlU2VsZWN0LnNlYXJjaFZhbHVlQ2hhbmdlLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksXG4gICAgICAgIHN0YXJ0V2l0aChzZWFyY2hhYmxlU2VsZWN0LnNlYXJjaFZhbHVlKVxuICAgICAgKTtcbiAgICAgIGNvbnN0IGZpbHRlclJlc3VsdCQgPSBjb21iaW5lTGF0ZXN0KHNlYXJjaElucHV0VmFsdWUkLCBsaXN0Ym94SXRlbSQpLnBpcGUoXG4gICAgICAgIG1hcCgoW3NlYXJjaFF1ZXJ5XSkgPT4ge1xuICAgICAgICAgIGlmICghc2VhcmNoUXVlcnkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGZpbHRlcmVkQ2hpbGRyZW46IHRoaXMubGlzdGJveENoaWxkcmVuLnRvQXJyYXkoKSxcbiAgICAgICAgICAgICAgZmlsdGVyZWRPdXRPcHRpb25zOiBbXSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBzZWFyY2hhYmxlU2VsZWN0LmZpbHRlckxpc3Rib3hJdGVtcyhcbiAgICAgICAgICAgIHRoaXMubGlzdGJveENoaWxkcmVuLFxuICAgICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgICAgIXNlYXJjaGFibGVTZWxlY3QuZmlsdGVyIHx8XG4gICAgICAgICAgICAgIHNlYXJjaGFibGVTZWxlY3QuZmlsdGVyKG9wdGlvbiwgc2VhcmNoUXVlcnkpXG4gICAgICAgICAgKTtcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgICB0aGlzLmZpbHRlcmVkQ2hpbGRyZW4kID0gdGhpcy5tdWx0aXBsZVxuICAgICAgICA/IC8vIEdyb3VwaW5nIHNlbGVjdGVkIG9wdGlvbnNcbiAgICAgICAgICBjb21iaW5lTGF0ZXN0KFxuICAgICAgICAgICAgZmlsdGVyUmVzdWx0JCxcbiAgICAgICAgICAgIHRoaXMudmFsdWVIb2xkZXIudmFsdWVDaGFuZ2UucGlwZShzdGFydFdpdGgoZW1wdHkoKSkpXG4gICAgICAgICAgKS5waXBlKFxuICAgICAgICAgICAgbWFwKChbeyBmaWx0ZXJlZENoaWxkcmVuIH1dKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmxpc3Rib3hWYWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsdGVyZWRDaGlsZHJlbjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgZmlsdGVyZWRPdXRPcHRpb25zOiBzZWxlY3RlZE9wdGlvbnMsXG4gICAgICAgICAgICAgICAgZmlsdGVyZWRDaGlsZHJlbjogc2VsZWN0aW9uRXhjbHVkZWRDaGlsZHJlbixcbiAgICAgICAgICAgICAgfSA9IHNlYXJjaGFibGVTZWxlY3QuZmlsdGVyTGlzdGJveEl0ZW1zKFxuICAgICAgICAgICAgICAgIGZpbHRlcmVkQ2hpbGRyZW4sXG4gICAgICAgICAgICAgICAgKG9wdGlvbikgPT4gIXRoaXMubGlzdGJveFZhbHVlLmluY2x1ZGVzKG9wdGlvbi52YWx1ZSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMFxuICAgICAgICAgICAgICAgICAgPyBbc2VjdGlvbihzZWxlY3RlZE9wdGlvbnMpXVxuICAgICAgICAgICAgICAgICAgOiAoW10gYXMgTGlzdGJveENoaWxkW10pXG4gICAgICAgICAgICAgICkuY29uY2F0KHNlbGVjdGlvbkV4Y2x1ZGVkQ2hpbGRyZW4pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIDogZmlsdGVyUmVzdWx0JC5waXBlKG1hcCgoeyBmaWx0ZXJlZENoaWxkcmVuIH0pID0+IGZpbHRlcmVkQ2hpbGRyZW4pKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJlZENoaWxkcmVuJCA9IGxpc3Rib3hJdGVtJDtcbiAgICB9XG4gIH1cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcbiAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XG4gICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcbiAgfVxuXG4gIF9nZXRBcmlhTGFiZWxsZWRCeSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIC8vIFRoZSBsb2dpYyBoZXJlIGlzIHNpbWlsYXIgdG8gdGhlIG9uZSBpbiByZWFjdC1hcmlhJ3MgdXNlU2VsZWN0LlxuICAgIGNvbnN0IGxhYmVsbGVkQnkgPSB0aGlzLmFyaWFMYWJlbGxlZGJ5IHx8IHRoaXMuX2ZpZWxkPy5sYWJlbD8uaWQ7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuX3ZhbHVlQ29udGFpbmVySWQsXG4gICAgICBsYWJlbGxlZEJ5LFxuICAgICAgdGhpcy5hcmlhTGFiZWwgJiYgIWxhYmVsbGVkQnkgPyB0aGlzLmlkIDogbnVsbCxcbiAgICBdXG4gICAgICAuZmlsdGVyKChpKSA9PiBpKVxuICAgICAgLmpvaW4oJyAnKTtcbiAgfVxuXG4gIGlzRm9jdXNlZCgpIHtcbiAgICByZXR1cm4gQm9vbGVhbih0aGlzLmZvY3VzT3JpZ2luKTtcbiAgfVxuXG4gIGlzRm9jdXNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmlzRm9jdXNlZCgpICYmXG4gICAgICAvLyBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIGZvY3VzIGRvZXNuJ3QgY2hhbmdlIHdoZW4gYSBrZXkgKGUuZy4gRXNjYXBlKSBpcyBwcmVzc2VkIGluIHRoZSBzZWFyY2ggaW5wdXQuXG4gICAgICAodGhpcy5pbnB1dE1vZGFsaXR5Lm1vc3RSZWNlbnRNb2RhbGl0eSA9PT0gJ2tleWJvYXJkJyB8fFxuICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCBmb3Igd2hlbiBsYWJlbCBpcyBjbGlja2VkIGFuZCBmb2N1c09yaWdpbiBpcyBmb3JjZWQgdG8ga2V5Ym9hcmQsIGJ1dCBjdXJyZW50IG1vZGFsaXR5IGlzIG1vdXNlLlxuICAgICAgICB0aGlzLmZvY3VzT3JpZ2luID09PSAna2V5Ym9hcmQnKSAmJlxuICAgICAgIXRoaXMuaXNPcGVuKCkgLy8gVGhpcyBpcyBiZWNhdXNlIGluIHNlYXJjaGFibGUgc2VsZWN0LCB0aGUgYWN0dWFsIGZvY3VzIGlzIG9uIHRoZSBpbnB1dCxcbiAgICAgIC8vIGJ1dCBpdCdzIG1lYW50IHRvIGJlIHNob3duIG9uIHRoZSBsaXN0Ym94LiBJdCBkb2Vzbid0IG1ha2Ugc2Vuc2UgdG8gc2hvdyB0aGUgZm9jdXMgaW4gdHdvXG4gICAgICAvLyBwbGFjZXMuXG4gICAgKTtcbiAgfVxuXG4gIGZvY3VzKGZvY3VzT3JpZ2luOiBGb2N1c09yaWdpbiA9ICdwcm9ncmFtJykge1xuICAgIHRoaXMuZm9jdXNNb25pdG9yLmZvY3VzVmlhKFxuICAgICAgdGhpcy5zZWFyY2hJbnB1dD8ubmF0aXZlRWxlbWVudCA/PyB0aGlzLnRyaWdnZXJFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50LFxuICAgICAgZm9jdXNPcmlnaW5cbiAgICApO1xuICB9XG5cbiAgX29uRm9jdXNDaGFuZ2UoZm9jdXNPcmlnaW46IEZvY3VzT3JpZ2luKSB7XG4gICAgdGhpcy5mb2N1c09yaWdpbiA9IGZvY3VzT3JpZ2luO1xuICB9XG5cbiAgX29uRm9jdXMoKSB7XG4gICAgLy8gV2hlbmV2ZXIgZm9jdXMgY29tZXMgdG8gdGhlIHRyaWdnZXIgLCBmb3J3YXJkIGl0IHRvIHRoZSBzZWFyY2ggaW5wdXQuIEl0J3MgbmVlZGVkIGZvciB3aGVuXG4gICAgLy8gdGhlIHRyaWdnZXIgaXMgcmUtZm9jdXNlZCBhZnRlciBwb3BvdmVyIGlzIGNsb3NlZC5cbiAgICB0aGlzLmZvY3VzKHRoaXMuZm9jdXNPcmlnaW4pO1xuICB9XG5cbiAgX2lzSW5wdXRWaXNpYmxlKCkge1xuICAgIHJldHVybiB0aGlzLmlzT3BlbigpIC8qfHxcbiAgICAgICh0aGlzLnNlYXJjaElucHV0Py5uYXRpdmVFbGVtZW50ID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50ICYmXG4gICAgICAgIHRoaXMubGlzdGJveFZhbHVlLmxlbmd0aCA9PT0gMCkqLztcbiAgfVxuXG4gIF9vbk9wZW4oKSB7XG4gICAgc3VwZXIuX29uT3BlbigpO1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiB0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlKSB7XG4gICAgICB0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlLnNldFNlYXJjaFZhbHVlKFxuICAgICAgICAodGhpcy5fc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZS5jbGVhclNlYXJjaE9uT3BlblxuICAgICAgICAgID8gJydcbiAgICAgICAgICA6IHRoaXMuc2VsZWN0ZWRPcHRpb25zWzBdPy5sYWJlbCkgPz8gJydcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHNlYXJjaElucHV0RWxlbWVudCA9IHRoaXMuc2VhcmNoSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKHRoaXMuX3NlYXJjaGFibGVTZWxlY3REaXJlY3RpdmU/LnNlbGVjdFRleHRPbk9wZW4pIHtcbiAgICAgIHNlYXJjaElucHV0RWxlbWVudD8uc2VsZWN0KCk7XG4gICAgfVxuICAgIGNvbnN0IGZvY3VzVmlzaWJsZU9uT3BlbiA9IHRoaXMuaXNGb2N1c1Zpc2libGUoKTtcbiAgICAvLyBNb3ZlIGZvY3VzIHRvIHRoZSBzZWFyY2ggaW5wdXQuIFRoZSB0aW1lb3V0IGlzIG5lZWRlZCBiZWNhdXNlIHBvcG92ZXIgd2lsbCBhdXRvZm9jdXMgdGhlXG4gICAgLy8gY29udGVudCwgYW5kIHdlIG5lZWQgdG8gbGV0IHRoZSBmb2N1cyBmaXJzdCBsYW5kIGluIHRoZSBwb3BvdmVyLCBhbmQgdGhlbiBzdGVhbCBpdC5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHNlYXJjaElucHV0RWxlbWVudD8uZm9jdXMoKTtcblxuICAgICAgLy8gTmVlZCB0byBydW4gdGhpcyBhbHNvIGFzeW5jaHJvbm91c2x5LCB0byBsZXQgdGhlIHBvcG92ZXIgKGFuZCBsaXN0Ym94KSBtb3VudFxuICAgICAgaWYgKCFmb2N1c1Zpc2libGVPbk9wZW4gJiYgdGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIHRvIHByZXZlbnQgdGhlIGZpcnN0IGl0ZW0gZnJvbSBiZWluZyBmb2N1c2VkIHdoZW4gdGhlIGRyb3Bkb3duIGlzIG9wZW5lZCB2aWEgbW91c2VcbiAgICAgICAgdGhpcy5saXN0Ym94Py5zZXRBY3RpdmVPcHRpb24obnVsbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBfb25DbG9zZSgpIHtcbiAgICBzdXBlci5fb25DbG9zZSgpO1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiB0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlKSB7XG4gICAgICB0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlLnNldFNlYXJjaFZhbHVlKFxuICAgICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uc1swXT8ubGFiZWwgfHwgJydcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IHNlYXJjaElucHV0RWxlbWVudCA9IHRoaXMuc2VhcmNoSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgc2VhcmNoSW5wdXRFbGVtZW50Py5zZXRTZWxlY3Rpb25SYW5nZShcbiAgICAgIHNlYXJjaElucHV0RWxlbWVudC52YWx1ZS5sZW5ndGgsXG4gICAgICBzZWFyY2hJbnB1dEVsZW1lbnQudmFsdWUubGVuZ3RoXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRGaWVsZExhYmVsPygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9maWVsZD8ubGFiZWw/LmdldFRleHQoKSA/PyAnJztcbiAgfVxuXG4gIF9vbklucHV0S2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IHNlbGVjdFZhbHVlID0gKHRvQmVTZWxlY3RlZDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBsaXN0Ym94VmFsdWUgPSB0aGlzLmxpc3Rib3hWYWx1ZTtcbiAgICAgIGNvbnN0IGFscmVhZHlTZWxlY3RlZCA9IGxpc3Rib3hWYWx1ZS5pbmNsdWRlcyh0b0JlU2VsZWN0ZWQpO1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgdGhpcy5saXN0Ym94VmFsdWUgPSBhbHJlYWR5U2VsZWN0ZWRcbiAgICAgICAgICA/IGxpc3Rib3hWYWx1ZS5maWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gdG9CZVNlbGVjdGVkKVxuICAgICAgICAgIDogWy4uLmxpc3Rib3hWYWx1ZSwgdG9CZVNlbGVjdGVkXTtcbiAgICAgIH0gZWxzZSBpZiAoIWFscmVhZHlTZWxlY3RlZCkge1xuICAgICAgICB0aGlzLmxpc3Rib3hWYWx1ZSA9IFt0b0JlU2VsZWN0ZWRdO1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgZmlyc3RPcHRpb25WYWx1ZSA9IHRoaXMub3B0aW9ucz8uZ2V0KDApPy52YWx1ZTtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKCkpIHtcbiAgICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgLy8gU2VsZWN0aW9uIGlzIGFscmVhZHkgaGFuZGxlZCBpZiB0aGVyZSBpcyBhbiBhY3RpdmUgb3B0aW9uXG4gICAgICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5saXN0Ym94Py5nZXRBY3RpdmVPcHRpb24oKSA9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgIGZpcnN0T3B0aW9uVmFsdWVcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHNlbGVjdFZhbHVlKGZpcnN0T3B0aW9uVmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdUYWInOlxuICAgICAgICBpZiAodGhpcy5pc09wZW4oKSAmJiAhdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgIGNvbnN0IHRvQmVTZWxlY3RlZCA9XG4gICAgICAgICAgICB0aGlzLmxpc3Rib3g/LmdldEFjdGl2ZU9wdGlvbigpIHx8IGZpcnN0T3B0aW9uVmFsdWU7XG4gICAgICAgICAgaWYgKHRvQmVTZWxlY3RlZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHNlbGVjdFZhbHVlKHRvQmVTZWxlY3RlZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIF9vblNlYXJjaElucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGlmIChldmVudC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MSW5wdXRFbGVtZW50KSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGV2ZW50LnRhcmdldD8udmFsdWU7XG4gICAgICB0aGlzLl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlPy5zZXRTZWFyY2hWYWx1ZSh2YWx1ZSk7XG4gICAgICAvLyBjbGVhcmluZyB0aGUgdmFsdWUgd2hlbiB0aGUgc2VhcmNoIGlucHV0IGlzIGNsZWFyZWQuXG4gICAgICBpZiAoIXRoaXMubXVsdGlwbGUgJiYgIXZhbHVlICYmIHRoaXMubGlzdGJveFZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5saXN0Ym94VmFsdWUgPSBbXTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmxpc3Rib3g/LnNldEFjdGl2ZU9wdGlvbihudWxsKTtcbiAgfVxuXG4gIF9oYW5kbGVTZWxlY3RlZCgpIHtcbiAgICBzdXBlci5faGFuZGxlU2VsZWN0ZWQoKTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLmRpc2FibGVkKTtcbiAgfVxuXG4gIGhhc0RlZmF1bHRXaWR0aCA9IHRydWU7XG59XG4iLCI8c3AtaGlkZGVuLXNlbGVjdD48L3NwLWhpZGRlbi1zZWxlY3Q+XG48ZGl2XG4gIHJvbGU9XCJidXR0b25cIlxuICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gIGNsYXNzPVwic2FwcGhpcmUtc2VsZWN0X19idXR0b25cIlxuICBbc3BQb3BvdmVyVHJpZ2dlckZvcl09XCJwb3BvdmVyXCJcbiAgW3NwUG9wb3ZlclRyaWdnZXJEaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIHNwUG9wb3ZlclRyaWdnZXJPcGVuT25QcmVzc1N0YXJ0XG4gIHNwUG9wb3ZlclRyaWdnZXJDbG9zZU9uU2Nyb2xsXG4gIHNwUG9wb3ZlclBsYWNlbWVudD1cImJvdHRvbSBzdGFydFwiXG4gICN0cmlnZ2VyRWxlbWVudFJlZlxuICAjdHJpZ2dlclJlZj1cInNwUG9wb3ZlclRyaWdnZXJcIlxuICAoa2V5ZG93bik9XCJoYW5kbGVLZXlEb3duKCRldmVudClcIlxuICAoc3BQb3BvdmVyVHJpZ2dlckNsb3NlZCk9XCJfb25DbG9zZSgpXCJcbiAgKHNwUG9wb3ZlclRyaWdnZXJPcGVuZWQpPVwiX29uT3BlbigpXCJcbiAgKGZvY3VzKT1cIl9vbkZvY3VzKClcIlxuICBjZGtNb25pdG9yU3VidHJlZUZvY3VzXG4gIChjZGtGb2N1c0NoYW5nZSk9XCJfb25Gb2N1c0NoYW5nZSgkZXZlbnQpXCJcbiAgW3NwUG9wb3Zlck5vbk1vZGFsXT1cInNlYXJjaGFibGVcIlxuICBzcFBvcG92ZXJEaXNhYmxlUHVzaEluc2lkZVZpZXdwb3J0PVwidHJ1ZVwiXG4gIFtpZF09XCJpZFwiXG4gIFt0YWJpbmRleF09XCItMVwiXG4gIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcbiAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cIl9nZXRBcmlhTGFiZWxsZWRCeSgpXCJcbiAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCJfZmllbGQ/LmVycm9yPy5pZCB8fCBfZmllbGQ/Lm5vdGU/LmlkXCJcbiAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIl9maWVsZD8uaGFzRXJyb3IodGhpcykgPyB0cnVlIDogbnVsbFwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzYXBwaGlyZS1zZWxlY3RfX3ZhbHVlXCIgW2lkXT1cIl92YWx1ZUNvbnRhaW5lcklkXCI+XG4gICAgPGlucHV0XG4gICAgICAqbmdJZj1cInNlYXJjaGFibGVcIlxuICAgICAgI3NlYXJjaElucHV0XG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIHJvbGU9XCJjb21ib2JveFwiXG4gICAgICBjbGFzcz1cInNhcHBoaXJlLXNlbGVjdF9fc2VhcmNoLWlucHV0XCJcbiAgICAgIFtzcExpc3Rib3hJbnB1dF09XCJsaXN0Ym94XCJcbiAgICAgIFtzcFZpc3VhbGx5SGlkZGVuXT1cIiFfaXNJbnB1dFZpc2libGUoKVwiXG4gICAgICBbYXR0ci5kYXRhLWhpZGRlbl09XCIhX2lzSW5wdXRWaXNpYmxlKClcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgIChrZXlkb3duKT1cIl9vbklucHV0S2V5ZG93bigkZXZlbnQpXCJcbiAgICAgIChiZWZvcmVpbnB1dCk9XCJvcGVuKClcIlxuICAgICAgW3ZhbHVlXT1cIl9zZWFyY2hhYmxlU2VsZWN0RGlyZWN0aXZlPy5zZWFyY2hWYWx1ZVwiXG4gICAgICAoaW5wdXQpPVwiX29uU2VhcmNoSW5wdXQoJGV2ZW50KVwiXG4gICAgLz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlYXJjaGFibGUgfHwgIV9pc0lucHV0VmlzaWJsZSgpXCI+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRPcHRpb25zLmxlbmd0aCA9PT0gMFwiXG4gICAgICAgIGNsYXNzPVwic2FwcGhpcmUtc2VsZWN0X19wbGFjZWhvbGRlclwiXG4gICAgICA+XG4gICAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXNlbGVjdGlvblRleHRcIj57e1xuICAgICAgICAgIGdldFNlbGVjdGlvblRleHQoKVxuICAgICAgICB9fTwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJzcC1zZWxlY3Rpb24tdGV4dFwiPjwvbmctY29udGVudD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cInNhcHBoaXJlLXNlbGVjdF9faWNvbi1jb250YWluZXJcIj5cbiAgICA8c3AtaWNvbiBuYW1lPVwiY2hldnJvbkRvd25cIj48L3NwLWljb24+XG4gIDwvZGl2PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI3BvcG92ZXI+XG4gIDxzcC1wb3BvdmVyXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiXG4gICAgICAoZmlsdGVyZWRDaGlsZHJlbiQgfCBhc3luYyk/Lmxlbmd0aCA9PT0gMCA/ICdub25lJyA6IHVuZGVmaW5lZFxuICAgIFwiXG4gICAgbm9QYWRkaW5nXG4gICAgbm9NYXhXaWR0aFxuICAgIFtzdHlsZS5taW4td2lkdGhdPVwidHJpZ2dlckVsZW1lbnRSZWYub2Zmc2V0V2lkdGggKyAncHgnXCJcbiAgPlxuICAgIDxzcC1saXN0Ym94XG4gICAgICBbc3BMaXN0Ym94SXRlbXNdPVwiKGZpbHRlcmVkQ2hpbGRyZW4kIHwgYXN5bmMpIHx8IHVuZGVmaW5lZFwiXG4gICAgICBuYXZpZ2F0aW9uV3JhcERpc2FibGVkXG4gICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgWyhzZWxlY3RlZFZhbHVlcyldPVwibGlzdGJveFZhbHVlXCJcbiAgICAgIChzZWxlY3RlZFZhbHVlc0NoYW5nZSk9XCJfc2VhcmNoYWJsZVNlbGVjdERpcmVjdGl2ZT8uc2V0U2VhcmNoVmFsdWUoJycpXCJcbiAgICAgIChzZWxlY3RlZCk9XCJfaGFuZGxlU2VsZWN0ZWQoKVwiXG4gICAgICBbc2l6ZV09XCJfZmllbGQ/LnNpemVcIlxuICAgID5cbiAgICA8L3NwLWxpc3Rib3g+XG4gIDwvc3AtcG9wb3Zlcj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -13,6 +13,7 @@ import * as i5 from "../../field/src/field-note-suffix.directive";
|
|
|
13
13
|
export class TextFieldComponent {
|
|
14
14
|
constructor(field) {
|
|
15
15
|
this.field = field;
|
|
16
|
+
this.hasDefaultWidth = true;
|
|
16
17
|
}
|
|
17
18
|
isCharacterCounterExceeded() {
|
|
18
19
|
return ((this._inputDirective?.valueLength ?? 0) >
|
|
@@ -31,7 +32,7 @@ TextFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", ver
|
|
|
31
32
|
provide: FieldControl,
|
|
32
33
|
useExisting: forwardRef(() => TextFieldComponent),
|
|
33
34
|
},
|
|
34
|
-
], queries: [{ propertyName: "inputElement", first: true, predicate: TextFieldInputDirective, descendants: true, read: ElementRef }, { propertyName: "_inputDirective", first: true, predicate: TextFieldInputDirective, descendants: true }], hostDirectives: [{ directive: i2.ThemeCheckDirective }, { directive: i3.UseComponentStylesOnHost }], ngImport: i0, template: "<ng-content\n select=\"sp-text-field-prefix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"input\"></ng-content>\n<ng-content\n select=\"sp-text-field-postfix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"textarea\"></ng-content>\n\n<span\n *ngIf=\"characterCounterMax !== undefined\"\n spFieldNoteSuffix\n class=\"sapphire-text-field__counter\"\n [class.sapphire-text-field__counter--error]=\"isCharacterCounterExceeded()\"\n >{{ _inputDirective?.valueLength }}/{{ characterCounterMax }}</span\n>\n", styles: [".sapphire-text-field{
|
|
35
|
+
], queries: [{ propertyName: "inputElement", first: true, predicate: TextFieldInputDirective, descendants: true, read: ElementRef }, { propertyName: "_inputDirective", first: true, predicate: TextFieldInputDirective, descendants: true }], hostDirectives: [{ directive: i2.ThemeCheckDirective }, { directive: i3.UseComponentStylesOnHost }], ngImport: i0, template: "<ng-content\n select=\"sp-text-field-prefix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"input\"></ng-content>\n<ng-content\n select=\"sp-text-field-postfix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"textarea\"></ng-content>\n\n<span\n *ngIf=\"characterCounterMax !== undefined\"\n spFieldNoteSuffix\n class=\"sapphire-text-field__counter\"\n [class.sapphire-text-field__counter--error]=\"isCharacterCounterExceeded()\"\n >{{ _inputDirective?.valueLength }}/{{ characterCounterMax }}</span\n>\n", styles: [".sapphire-text-field{outline:solid var(--sapphire-semantic-size-border-sm) var(--sapphire-semantic-color-border-field-default);outline-offset:calc(0px - var(--sapphire-semantic-size-border-sm));box-sizing:border-box;overflow-x:hidden;display:flex;align-items:center;border-radius:var(--sapphire-semantic-size-radius-sm);cursor:text;color:var(--sapphire-semantic-color-content-default-primary);background-color:var(--sapphire-semantic-color-background-field-default);height:var(--sapphire-semantic-size-height-input-lg);font-family:var(--sapphire-semantic-font-name-default);font-size:var(--sapphire-semantic-size-font-control-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-text-field--md{height:var(--sapphire-semantic-size-height-input-md);font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-text-field__input{box-sizing:border-box;width:100%;height:100%;margin:0;padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);line-height:var(--sapphire-semantic-size-line-height-md);font-family:inherit;font-size:inherit;font-weight:var(--sapphire-semantic-font-weight-default-regular);caret-color:var(--sapphire-semantic-color-cursor-default);color:inherit;background-color:transparent;border:none;outline:none}.sapphire-text-field--md .sapphire-text-field__input{padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-md)}.sapphire-text-field__input::placeholder{opacity:1;color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-text-field__input--align-right{text-align:right}.sapphire-text-field:not(.sapphire-text-field--multiline){gap:var(--sapphire-semantic-size-spacing-20)}.sapphire-text-field:has(.sapphire-text-field__prefix) .sapphire-text-field__input{padding-left:0}.sapphire-text-field .sapphire-text-field__prefix{color:var(--sapphire-semantic-color-content-default-primary);flex-shrink:0;z-index:1;margin-left:var(--sapphire-semantic-size-spacing-control-horizontal-lg)}.sapphire-text-field--md .sapphire-text-field__prefix{margin-left:var(--sapphire-semantic-size-spacing-control-horizontal-md)}.sapphire-text-field:has(.sapphire-text-field__postfix) .sapphire-text-field__input{padding-right:0}.sapphire-text-field .sapphire-text-field__postfix{color:var(--sapphire-semantic-color-content-default-primary);flex-shrink:0;z-index:1;margin-right:var(--sapphire-semantic-size-spacing-control-horizontal-lg)}.sapphire-text-field--md .sapphire-text-field__postfix{margin-right:var(--sapphire-semantic-size-spacing-control-horizontal-md)}.sapphire-text-field .sapphire-text-field__prefix--icon,.sapphire-text-field .sapphire-text-field__postfix--icon{width:var(--sapphire-semantic-size-icon-lg);height:var(--sapphire-semantic-size-icon-lg)}.sapphire-text-field--md .sapphire-text-field__prefix--icon,.sapphire-text-field--md .sapphire-text-field__postfix--icon{width:var(--sapphire-semantic-size-icon-md);height:var(--sapphire-semantic-size-icon-md)}.sapphire-text-field--multiline{display:block;line-height:0;height:unset;padding:0}.sapphire-text-field--multiline .sapphire-text-field__input{resize:none;width:100%;padding:var(--sapphire-semantic-size-spacing-control-vertical-lg) var(--sapphire-semantic-size-spacing-control-horizontal-lg);scroll-padding-bottom:var(--sapphire-semantic-size-spacing-control-vertical-lg)}.sapphire-text-field--md .sapphire-text-field--multiline .sapphire-text-field__input{padding:var(--sapphire-semantic-size-spacing-control-vertical-md) var(--sapphire-semantic-size-spacing-control-horizontal-md);scroll-padding-bottom:var(--sapphire-semantic-size-spacing-control-vertical-md)}.sapphire-text-field--multiline.sapphire-text-field--resizable .sapphire-text-field__input{resize:vertical}.sapphire-text-field__counter{color:var(--sapphire-semantic-color-content-default-secondary);padding-left:var(--sapphire-semantic-size-spacing-20);margin-left:auto}.sapphire-text-field__counter--error{color:var(--sapphire-semantic-color-content-negative-secondary-default)}.sapphire-text-field--error{outline:solid var(--sapphire-semantic-size-border-sm) var(--sapphire-semantic-color-border-field-error)}.sapphire-text-field.is-focus,.sapphire-text-field:focus-within{outline:solid var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-focus-ring);outline-offset:calc(0px - var(--sapphire-semantic-size-focus-ring))}.sapphire-text-field.is-focus .sapphire-text-field__input:-webkit-autofill,.sapphire-text-field:focus-within .sapphire-text-field__input:-webkit-autofill{box-shadow:0 0 0 var(--sapphire-semantic-size-height-input-lg) inset var(--sapphire-semantic-color-background-surface)!important}.sapphire-text-field.is-focus .sapphire-text-field__input:autofill,.sapphire-text-field:focus-within .sapphire-text-field__input:autofill{box-shadow:0 0 0 var(--sapphire-semantic-size-height-input-lg) inset var(--sapphire-semantic-color-background-surface)!important}.sapphire-text-field__stepper{display:flex;flex-direction:column;justify-items:stretch;padding:var(--sapphire-semantic-size-spacing-5) calc(var(--sapphire-semantic-size-spacing-5) + var(--sapphire-semantic-size-border-sm));gap:var(--sapphire-semantic-size-spacing-5)}.sapphire-text-field:has(.sapphire-text-field__stepper) .sapphire-text-field__postfix{margin-right:0}.sapphire-text-field__stepper-button{display:flex;align-items:center;justify-content:center;width:var(--sapphire-semantic-size-icon-md);margin:0;padding:0;max-width:-moz-fit-content;max-width:fit-content;flex-shrink:0;border-radius:var(--sapphire-semantic-size-radius-sm);border-style:solid;border-width:0;border-color:transparent;transition-property:opacity,background-color,color;transition-duration:var(--sapphire-semantic-time-fade-quick);transition-timing-function:ease-in-out;cursor:pointer;background-color:var(--sapphire-semantic-color-background-action-tertiary-default);color:var(--sapphire-semantic-color-content-action-tertiary-default)}.sapphire-text-field__stepper-button:not(:active):not(.is-active):not(.js-hover):hover,.sapphire-text-field__stepper-button:not(:active):not(.is-active).is-hover{background-color:var(--sapphire-semantic-color-background-action-tertiary-hover);color:var(--sapphire-semantic-color-content-action-tertiary-hover)}.sapphire-text-field__stepper-button.is-active,.sapphire-text-field__stepper-button:active{background-color:var(--sapphire-semantic-color-background-action-tertiary-active);color:var(--sapphire-semantic-color-content-action-tertiary-active)}.sapphire-text-field--md.sapphire-text-field__stepper-button{width:var(--sapphire-semantic-size-icon-sm)}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.FieldNoteSuffixDirective, selector: "[spFieldNoteSuffix]" }] });
|
|
35
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: TextFieldComponent, decorators: [{
|
|
36
37
|
type: Component,
|
|
37
38
|
args: [{ selector: 'sp-text-field', host: {
|
|
@@ -44,7 +45,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
44
45
|
provide: FieldControl,
|
|
45
46
|
useExisting: forwardRef(() => TextFieldComponent),
|
|
46
47
|
},
|
|
47
|
-
], hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost], template: "<ng-content\n select=\"sp-text-field-prefix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"input\"></ng-content>\n<ng-content\n select=\"sp-text-field-postfix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"textarea\"></ng-content>\n\n<span\n *ngIf=\"characterCounterMax !== undefined\"\n spFieldNoteSuffix\n class=\"sapphire-text-field__counter\"\n [class.sapphire-text-field__counter--error]=\"isCharacterCounterExceeded()\"\n >{{ _inputDirective?.valueLength }}/{{ characterCounterMax }}</span\n>\n", styles: [".sapphire-text-field{
|
|
48
|
+
], hostDirectives: [ThemeCheckDirective, UseComponentStylesOnHost], template: "<ng-content\n select=\"sp-text-field-prefix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"input\"></ng-content>\n<ng-content\n select=\"sp-text-field-postfix\"\n *ngIf=\"!_inputDirective?.textarea\"\n></ng-content>\n<ng-content select=\"textarea\"></ng-content>\n\n<span\n *ngIf=\"characterCounterMax !== undefined\"\n spFieldNoteSuffix\n class=\"sapphire-text-field__counter\"\n [class.sapphire-text-field__counter--error]=\"isCharacterCounterExceeded()\"\n >{{ _inputDirective?.valueLength }}/{{ characterCounterMax }}</span\n>\n", styles: [".sapphire-text-field{outline:solid var(--sapphire-semantic-size-border-sm) var(--sapphire-semantic-color-border-field-default);outline-offset:calc(0px - var(--sapphire-semantic-size-border-sm));box-sizing:border-box;overflow-x:hidden;display:flex;align-items:center;border-radius:var(--sapphire-semantic-size-radius-sm);cursor:text;color:var(--sapphire-semantic-color-content-default-primary);background-color:var(--sapphire-semantic-color-background-field-default);height:var(--sapphire-semantic-size-height-input-lg);font-family:var(--sapphire-semantic-font-name-default);font-size:var(--sapphire-semantic-size-font-control-default);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sapphire-text-field--md{height:var(--sapphire-semantic-size-height-input-md);font-size:var(--sapphire-semantic-size-font-control-md)}.sapphire-text-field__input{box-sizing:border-box;width:100%;height:100%;margin:0;padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-lg);line-height:var(--sapphire-semantic-size-line-height-md);font-family:inherit;font-size:inherit;font-weight:var(--sapphire-semantic-font-weight-default-regular);caret-color:var(--sapphire-semantic-color-cursor-default);color:inherit;background-color:transparent;border:none;outline:none}.sapphire-text-field--md .sapphire-text-field__input{padding:0 var(--sapphire-semantic-size-spacing-control-horizontal-md)}.sapphire-text-field__input::placeholder{opacity:1;color:var(--sapphire-semantic-color-content-default-secondary)}.sapphire-text-field__input--align-right{text-align:right}.sapphire-text-field:not(.sapphire-text-field--multiline){gap:var(--sapphire-semantic-size-spacing-20)}.sapphire-text-field:has(.sapphire-text-field__prefix) .sapphire-text-field__input{padding-left:0}.sapphire-text-field .sapphire-text-field__prefix{color:var(--sapphire-semantic-color-content-default-primary);flex-shrink:0;z-index:1;margin-left:var(--sapphire-semantic-size-spacing-control-horizontal-lg)}.sapphire-text-field--md .sapphire-text-field__prefix{margin-left:var(--sapphire-semantic-size-spacing-control-horizontal-md)}.sapphire-text-field:has(.sapphire-text-field__postfix) .sapphire-text-field__input{padding-right:0}.sapphire-text-field .sapphire-text-field__postfix{color:var(--sapphire-semantic-color-content-default-primary);flex-shrink:0;z-index:1;margin-right:var(--sapphire-semantic-size-spacing-control-horizontal-lg)}.sapphire-text-field--md .sapphire-text-field__postfix{margin-right:var(--sapphire-semantic-size-spacing-control-horizontal-md)}.sapphire-text-field .sapphire-text-field__prefix--icon,.sapphire-text-field .sapphire-text-field__postfix--icon{width:var(--sapphire-semantic-size-icon-lg);height:var(--sapphire-semantic-size-icon-lg)}.sapphire-text-field--md .sapphire-text-field__prefix--icon,.sapphire-text-field--md .sapphire-text-field__postfix--icon{width:var(--sapphire-semantic-size-icon-md);height:var(--sapphire-semantic-size-icon-md)}.sapphire-text-field--multiline{display:block;line-height:0;height:unset;padding:0}.sapphire-text-field--multiline .sapphire-text-field__input{resize:none;width:100%;padding:var(--sapphire-semantic-size-spacing-control-vertical-lg) var(--sapphire-semantic-size-spacing-control-horizontal-lg);scroll-padding-bottom:var(--sapphire-semantic-size-spacing-control-vertical-lg)}.sapphire-text-field--md .sapphire-text-field--multiline .sapphire-text-field__input{padding:var(--sapphire-semantic-size-spacing-control-vertical-md) var(--sapphire-semantic-size-spacing-control-horizontal-md);scroll-padding-bottom:var(--sapphire-semantic-size-spacing-control-vertical-md)}.sapphire-text-field--multiline.sapphire-text-field--resizable .sapphire-text-field__input{resize:vertical}.sapphire-text-field__counter{color:var(--sapphire-semantic-color-content-default-secondary);padding-left:var(--sapphire-semantic-size-spacing-20);margin-left:auto}.sapphire-text-field__counter--error{color:var(--sapphire-semantic-color-content-negative-secondary-default)}.sapphire-text-field--error{outline:solid var(--sapphire-semantic-size-border-sm) var(--sapphire-semantic-color-border-field-error)}.sapphire-text-field.is-focus,.sapphire-text-field:focus-within{outline:solid var(--sapphire-semantic-size-focus-ring) var(--sapphire-semantic-color-focus-ring);outline-offset:calc(0px - var(--sapphire-semantic-size-focus-ring))}.sapphire-text-field.is-focus .sapphire-text-field__input:-webkit-autofill,.sapphire-text-field:focus-within .sapphire-text-field__input:-webkit-autofill{box-shadow:0 0 0 var(--sapphire-semantic-size-height-input-lg) inset var(--sapphire-semantic-color-background-surface)!important}.sapphire-text-field.is-focus .sapphire-text-field__input:autofill,.sapphire-text-field:focus-within .sapphire-text-field__input:autofill{box-shadow:0 0 0 var(--sapphire-semantic-size-height-input-lg) inset var(--sapphire-semantic-color-background-surface)!important}.sapphire-text-field__stepper{display:flex;flex-direction:column;justify-items:stretch;padding:var(--sapphire-semantic-size-spacing-5) calc(var(--sapphire-semantic-size-spacing-5) + var(--sapphire-semantic-size-border-sm));gap:var(--sapphire-semantic-size-spacing-5)}.sapphire-text-field:has(.sapphire-text-field__stepper) .sapphire-text-field__postfix{margin-right:0}.sapphire-text-field__stepper-button{display:flex;align-items:center;justify-content:center;width:var(--sapphire-semantic-size-icon-md);margin:0;padding:0;max-width:-moz-fit-content;max-width:fit-content;flex-shrink:0;border-radius:var(--sapphire-semantic-size-radius-sm);border-style:solid;border-width:0;border-color:transparent;transition-property:opacity,background-color,color;transition-duration:var(--sapphire-semantic-time-fade-quick);transition-timing-function:ease-in-out;cursor:pointer;background-color:var(--sapphire-semantic-color-background-action-tertiary-default);color:var(--sapphire-semantic-color-content-action-tertiary-default)}.sapphire-text-field__stepper-button:not(:active):not(.is-active):not(.js-hover):hover,.sapphire-text-field__stepper-button:not(:active):not(.is-active).is-hover{background-color:var(--sapphire-semantic-color-background-action-tertiary-hover);color:var(--sapphire-semantic-color-content-action-tertiary-hover)}.sapphire-text-field__stepper-button.is-active,.sapphire-text-field__stepper-button:active{background-color:var(--sapphire-semantic-color-background-action-tertiary-active);color:var(--sapphire-semantic-color-content-action-tertiary-active)}.sapphire-text-field--md.sapphire-text-field__stepper-button{width:var(--sapphire-semantic-size-icon-sm)}\n"] }]
|
|
48
49
|
}], ctorParameters: function () { return [{ type: i1.FieldComponent, decorators: [{
|
|
49
50
|
type: Optional
|
|
50
51
|
}] }]; }, propDecorators: { characterCounterMax: [{
|
|
@@ -59,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImpor
|
|
|
59
60
|
type: ContentChild,
|
|
60
61
|
args: [TextFieldInputDirective]
|
|
61
62
|
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3RleHQtZmllbGQvc3JjL3RleHQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90ZXh0LWZpZWxkL3NyYy90ZXh0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixVQUFVLEVBQ1YsS0FBSyxFQUNMLFFBQVEsR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLG9CQUFvQixHQUVyQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzVFLE9BQU8sRUFBa0IsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMENBQTBDLENBQUM7Ozs7Ozs7QUFvQnBGLE1BQU0sT0FBTyxrQkFBa0I7SUFZN0IsWUFBK0IsS0FBc0I7UUFBdEIsVUFBSyxHQUFMLEtBQUssQ0FBaUI7UUFpQjVDLG9CQUFlLEdBQUcsSUFBSSxDQUFDO0lBakJ3QixDQUFDO0lBRXpELDBCQUEwQjtRQUN4QixPQUFPLENBQ0wsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFdBQVcsSUFBSSxDQUFDLENBQUM7WUFDeEMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsS0FBSztRQUNILE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUM7SUFDbEMsQ0FBQzs7K0dBM0JVLGtCQUFrQjttR0FBbEIsa0JBQWtCLDZWQVJsQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLFlBQVk7WUFDckIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUNsRDtLQUNGLG9FQU9hLHVCQUF1QiwyQkFDN0IsVUFBVSwrREFJSix1QkFBdUIscUpDN0N2QywrakJBa0JBOzJGRGtCYSxrQkFBa0I7a0JBbEI5QixTQUFTOytCQUNFLGVBQWUsUUFHbkI7d0JBQ0osS0FBSyxFQUFFLHFCQUFxQjt3QkFDNUIsd0NBQXdDLEVBQUUsMEJBQTBCO3dCQUNwRSxvQ0FBb0MsRUFBRSx1QkFBdUI7d0JBQzdELGlDQUFpQyxFQUFFLHNCQUFzQjtxQkFDMUQsYUFDVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsWUFBWTs0QkFDckIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsbUJBQW1CLENBQUM7eUJBQ2xEO3FCQUNGLGtCQUNlLENBQUMsbUJBQW1CLEVBQUUsd0JBQXdCLENBQUM7OzBCQWNsRCxRQUFROzRDQVZyQixtQkFBbUI7c0JBRGxCLEtBQUs7dUJBQUMscUJBQXFCO2dCQU01QixZQUFZO3NCQUhYLFlBQVk7dUJBQUMsdUJBQXVCLEVBQUU7d0JBQ3JDLElBQUksRUFBRSxVQUFVO3FCQUNqQjtnQkFJRCxlQUFlO3NCQURkLFlBQVk7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIGZvcndhcmRSZWYsXG4gIElucHV0LFxuICBPcHRpb25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBjb2VyY2VCb29sZWFuUHJvcGVydHksXG4gIGNvZXJjZU51bWJlclByb3BlcnR5LFxuICBOdW1iZXJJbnB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IFRoZW1lQ2hlY2tEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi90aGVtZS9zcmMvdGhlbWUtY2hlY2suZGlyZWN0aXZlJztcbmltcG9ydCB7IEZpZWxkQ29tcG9uZW50LCBGaWVsZENvbnRyb2wgfSBmcm9tICcuLi8uLi9maWVsZC9wdWJsaWNfYXBpJztcbmltcG9ydCB7IFRleHRGaWVsZElucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi90ZXh0LWZpZWxkLWlucHV0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBVc2VDb21wb25lbnRTdHlsZXNPbkhvc3QgfSBmcm9tICcuLi8uLi9jb21tb24vc2FwcGhpcmUtdmlldy1lbmNhcHN1bGF0aW9uJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc3AtdGV4dC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LWZpZWxkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGV4dC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdzYXBwaGlyZS10ZXh0LWZpZWxkJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLXRleHQtZmllbGQtLW11bHRpbGluZV0nOiAnX2lucHV0RGlyZWN0aXZlLnRleHRhcmVhJyxcbiAgICAnW2NsYXNzLnNhcHBoaXJlLXRleHQtZmllbGQtLWVycm9yXSc6ICdmaWVsZD8uaGFzRXJyb3IodGhpcyknLFxuICAgICdbY2xhc3Muc2FwcGhpcmUtdGV4dC1maWVsZC0tbWRdJzogJ2ZpZWxkPy5zaXplID09PSBcIm1kXCInLFxuICB9LFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBGaWVsZENvbnRyb2wsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0RmllbGRDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbVGhlbWVDaGVja0RpcmVjdGl2ZSwgVXNlQ29tcG9uZW50U3R5bGVzT25Ib3N0XSxcbn0pXG5leHBvcnQgY2xhc3MgVGV4dEZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgRmllbGRDb250cm9sIHtcbiAgQElucHV0KCdjaGFyYWN0ZXJDb3VudGVyTWF4JylcbiAgY2hhcmFjdGVyQ291bnRlck1heD86IE51bWJlcklucHV0O1xuXG4gIEBDb250ZW50Q2hpbGQoVGV4dEZpZWxkSW5wdXREaXJlY3RpdmUsIHtcbiAgICByZWFkOiBFbGVtZW50UmVmLFxuICB9KVxuICBpbnB1dEVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQgfCBIVE1MVGV4dEFyZWFFbGVtZW50PjtcblxuICBAQ29udGVudENoaWxkKFRleHRGaWVsZElucHV0RGlyZWN0aXZlKVxuICBfaW5wdXREaXJlY3RpdmU/OiBUZXh0RmllbGRJbnB1dERpcmVjdGl2ZTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwdWJsaWMgZmllbGQ/OiBGaWVsZENvbXBvbmVudCkge31cblxuICBpc0NoYXJhY3RlckNvdW50ZXJFeGNlZWRlZCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgKHRoaXMuX2lucHV0RGlyZWN0aXZlPy52YWx1ZUxlbmd0aCA/PyAwKSA+XG4gICAgICBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh0aGlzLmNoYXJhY3RlckNvdW50ZXJNYXgpXG4gICAgKTtcbiAgfVxuXG4gIGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh0aGlzLl9pbnB1dERpcmVjdGl2ZT8uZGlzYWJsZWQpO1xuICB9XG5cbiAgZ2V0SWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5faW5wdXREaXJlY3RpdmU/LmlkO1xuICB9XG5cbiAgcmVhZG9ubHkgaGFzRGVmYXVsdFdpZHRoID0gdHJ1ZTtcbn1cbiIsIjxuZy1jb250ZW50XG4gIHNlbGVjdD1cInNwLXRleHQtZmllbGQtcHJlZml4XCJcbiAgKm5nSWY9XCIhX2lucHV0RGlyZWN0aXZlPy50ZXh0YXJlYVwiXG4+PC9uZy1jb250ZW50PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiaW5wdXRcIj48L25nLWNvbnRlbnQ+XG48bmctY29udGVudFxuICBzZWxlY3Q9XCJzcC10ZXh0LWZpZWxkLXBvc3RmaXhcIlxuICAqbmdJZj1cIiFfaW5wdXREaXJlY3RpdmU/LnRleHRhcmVhXCJcbj48L25nLWNvbnRlbnQ+XG48bmctY29udGVudCBzZWxlY3Q9XCJ0ZXh0YXJlYVwiPjwvbmctY29udGVudD5cblxuPHNwYW5cbiAgKm5nSWY9XCJjaGFyYWN0ZXJDb3VudGVyTWF4ICE9PSB1bmRlZmluZWRcIlxuICBzcEZpZWxkTm90ZVN1ZmZpeFxuICBjbGFzcz1cInNhcHBoaXJlLXRleHQtZmllbGRfX2NvdW50ZXJcIlxuICBbY2xhc3Muc2FwcGhpcmUtdGV4dC1maWVsZF9fY291bnRlci0tZXJyb3JdPVwiaXNDaGFyYWN0ZXJDb3VudGVyRXhjZWVkZWQoKVwiXG4gID57eyBfaW5wdXREaXJlY3RpdmU/LnZhbHVlTGVuZ3RoIH19L3t7IGNoYXJhY3RlckNvdW50ZXJNYXggfX08L3NwYW5cbj5cbiJdfQ==
|
|
@@ -25,10 +25,10 @@ export const DEFAULT_BREAKPOINTS = {
|
|
|
25
25
|
XL: 1400,
|
|
26
26
|
};
|
|
27
27
|
export { SapphireThemeModule } from './src/theme.module';
|
|
28
|
-
export {
|
|
28
|
+
export { SapphireOverlay } from './src/sapphire-overlay.service';
|
|
29
29
|
export { ThemeDefaultDark, ThemeDefault } from './src/themes';
|
|
30
30
|
export { ThemeRootDirective } from './src/theme-root.directive';
|
|
31
31
|
// Exported just for the issue with vscode
|
|
32
32
|
export { ThemeBaseDirective } from './src/theme-base.directive';
|
|
33
33
|
export { ThemeCheckDirective } from './src/theme-check.directive';
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdGhlbWUvcHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0RUFBNEU7QUFDNUUsNkVBQTZFO0FBQzdFLHNEQUFzRDtBQUN0RCxXQUFXO0FBRVg7Ozs7O0dBS0c7QUFDSCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFLckQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFnQjtJQUM5QyxFQUFFLEVBQUUsR0FBRztJQUNQLENBQUMsRUFBRSxHQUFHO0lBQ04sQ0FBQyxFQUFFLEdBQUc7SUFDTixDQUFDLEVBQUUsSUFBSTtJQUNQLEVBQUUsRUFBRSxJQUFJO0NBQ1QsQ0FBQztBQUVGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLDBDQUEwQztBQUMxQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFdlIGhhdmUgc2VwYXJhdGUgcHVibGljX2FwaS50cyBmaWxlIGZvciBlYWNoIGFuZ3VsYXIgbW9kdWxlLCB0byBoYXZlIHRoZW1cbi8vIGV4cG9zZWQgYXMgc2VwYXJhdGUgZW50cnkgcG9pbnRzLiBUaGUgYnVpbGQgaXMgc3RpbGwgbm90IGVtaXR0aW5nIHNlcGFyYXRlXG4vLyBlbnRyeSBwb2ludHMsIHdoaWNoIHdpbGwgYmUgYWRkcmVzc2VkIGluIHRoaXMgdGFzazpcbi8vIFdDQ0otODM4XG5cbi8qKlxuICogSU1QT1JUQU5UOlxuICogQnkgcmUtZXhwb3J0aW5nIHNlbWFudGljIHRva2VucyBmcm9tIEBkYW5za2Uvc2FwcGhpcmUtY3NzLCBhcyBhbiBpbnRlcmZhY2UgdG8gYWxsb3cgdXNlcnMgb2ZcbiAqIEBkYW5za2Uvc2FwcGhpcmUtYW5ndWxhciB0byBhY2Nlc3MgZGVzaWduIHN5c3RlbSB2YWx1ZXMsIHdlIHNob3VsZCBiZSBtaW5kZnVsIG9mIGJyZWFraW5nIGNoYW5nZXNcbiAqIGV2ZXJ5IHRpbWUgQGRhbnNrZS9zYXBwaGlyZS1jc3MgaXMgdXBncmFkZWQgdG8gbmV3IG1ham9yIHZlcnNpb25zLlxuICovXG5leHBvcnQgeyB0b2tlbnMgfSBmcm9tICdAZGFuc2tlL3NhcHBoaXJlLWNzcy90aGVtZXMnO1xuXG5leHBvcnQgdHlwZSBCcmVha3BvaW50ID0gJ1hTJyB8ICdTJyB8ICdNJyB8ICdMJyB8ICdYTCc7XG5leHBvcnQgdHlwZSBCcmVha3BvaW50cyA9IFJlY29yZDxCcmVha3BvaW50LCBudW1iZXI+O1xuXG4vKipcbiAqIEV4cG9ydGluZyBcInRva2Vucy5zaXplLmJyZWFrcG9pbnRcIiBpcyBub3QgZ29vZCBlbm91Z2guXG4gKiBUaGF0IGlzIGEgbWFwIGZyb20gYnJlYWtwb2ludCBuYW1lIHRvIGEgYSBzdHJpbmcgd2hpY2ggaXMgdGhlIGNzcyB2YXJpYWJsZVxuICogdGhhdCB3aWxsIGhhdmUgdGhlIGJyZWFrcG9pbnQgc2l6ZS4gVGhpcyBpcyBub3QgdXNlZnVsIGluIGEgSlMgY29udGV4dC5cbiAqXG4gKiBUT0RPOiBleHBvcnQgc29tZXRoaW5nIHdoaWNoIHVzZXMgdGhlIFwidG9rZW5zLnNpemUuYnJlYWtwb2ludFwiIGFuZCBvZmZlcnNcbiAqIHNvbWV0aGluZyB1c2FibGVkIGluIEpTLlxuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9CUkVBS1BPSU5UUzogQnJlYWtwb2ludHMgPSB7XG4gIFhTOiA1NzYsXG4gIFM6IDc2OCxcbiAgTTogOTYwLFxuICBMOiAxMjAwLFxuICBYTDogMTQwMCxcbn07XG5cbmV4cG9ydCB7IFNhcHBoaXJlVGhlbWVNb2R1bGUgfSBmcm9tICcuL3NyYy90aGVtZS5tb2R1bGUnO1xuZXhwb3J0IHsgU2FwcGhpcmVPdmVybGF5IH0gZnJvbSAnLi9zcmMvc2FwcGhpcmUtb3ZlcmxheS5zZXJ2aWNlJztcbmV4cG9ydCB7IFRoZW1lRGVmYXVsdERhcmssIFRoZW1lRGVmYXVsdCB9IGZyb20gJy4vc3JjL3RoZW1lcyc7XG5leHBvcnQgeyBUaGVtZVJvb3REaXJlY3RpdmUgfSBmcm9tICcuL3NyYy90aGVtZS1yb290LmRpcmVjdGl2ZSc7XG5cbi8vIEV4cG9ydGVkIGp1c3QgZm9yIHRoZSBpc3N1ZSB3aXRoIHZzY29kZVxuZXhwb3J0IHsgVGhlbWVCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvdGhlbWUtYmFzZS5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgVGhlbWVDaGVja0RpcmVjdGl2ZSB9IGZyb20gJy4vc3JjL3RoZW1lLWNoZWNrLmRpcmVjdGl2ZSc7XG4iXX0=
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// eslint-disable-next-line sapphire-angular/cdk-overlay
|
|
2
|
+
import { Overlay } from '@angular/cdk/overlay';
|
|
3
|
+
import { inject, Injectable } from '@angular/core';
|
|
4
|
+
import { ThemeBaseDirective } from './theme-base.directive';
|
|
5
|
+
import { TopLevelThemeRef } from './top-level-theme-ref.service';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
/**
|
|
8
|
+
* NOTE: Providing a theme-aware OverlayContainer was a solution for overlay styles we used to have.
|
|
9
|
+
* It proved error-prone since it can lead to multiple overlay containers, which can cause
|
|
10
|
+
* z-index issues in various scenarios (UC-4160, UC-2897, UC-3843).
|
|
11
|
+
* The current solution applies.
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Sapphire theme aware overlay service.
|
|
15
|
+
* It's a slim wrapper around CDK Overlay service that adds theme styles to the overlay container.
|
|
16
|
+
*/
|
|
17
|
+
export class SapphireOverlay extends Overlay {
|
|
18
|
+
constructor() {
|
|
19
|
+
super(...arguments);
|
|
20
|
+
this.topLevelThemeRef = inject(TopLevelThemeRef);
|
|
21
|
+
this.theme = inject(ThemeBaseDirective, {
|
|
22
|
+
optional: true,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Same as Angular CDK's `overlay.create`,
|
|
27
|
+
* but applies the current theme style on the overlay container.
|
|
28
|
+
* @param overlayConfig The overlay configuration to pass to overlay.create()
|
|
29
|
+
* @param theme The theme to apply. If not provided, the current theme will be used.
|
|
30
|
+
*/
|
|
31
|
+
create(overlayConfig, theme) {
|
|
32
|
+
const overlayRef = super.create(overlayConfig);
|
|
33
|
+
this.applyTheme(overlayRef, theme);
|
|
34
|
+
return overlayRef;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Applies the current theme style on the overlay container.
|
|
38
|
+
* Useful only when the overlay is not created using `SapphireOverlay.create` method.
|
|
39
|
+
* E.g. when using some higher-level service like Dialog from angular CDK.
|
|
40
|
+
* @param overlayRef The overlay reference to apply the theme on.
|
|
41
|
+
* @param theme The theme to apply. If not provided, the current theme will be used.
|
|
42
|
+
*/
|
|
43
|
+
applyTheme(overlayRef, theme) {
|
|
44
|
+
theme = theme || this.theme || this.topLevelThemeRef.getTheme();
|
|
45
|
+
if (!theme) {
|
|
46
|
+
throw new Error('Could not find the current theme needed for overlay container');
|
|
47
|
+
}
|
|
48
|
+
theme?.applyOnDomNode(overlayRef.overlayElement);
|
|
49
|
+
if (overlayRef.backdropElement) {
|
|
50
|
+
theme?.applyOnDomNode(overlayRef.backdropElement);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
SapphireOverlay.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireOverlay, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
55
|
+
SapphireOverlay.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireOverlay, providedIn: 'root' });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: SapphireOverlay, decorators: [{
|
|
57
|
+
type: Injectable,
|
|
58
|
+
args: [{
|
|
59
|
+
providedIn: 'root',
|
|
60
|
+
}]
|
|
61
|
+
}] });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FwcGhpcmUtb3ZlcmxheS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi90aGVtZS9zcmMvc2FwcGhpcmUtb3ZlcmxheS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdEQUF3RDtBQUN4RCxPQUFPLEVBQUUsT0FBTyxFQUE2QixNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUVqRTs7Ozs7R0FLRztBQUVIOzs7R0FHRztBQUlILE1BQU0sT0FBTyxlQUFnQixTQUFRLE9BQU87SUFINUM7O1FBSVUscUJBQWdCLEdBQXFCLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzlELFVBQUssR0FBOEIsTUFBTSxDQUFDLGtCQUFrQixFQUFFO1lBQ3BFLFFBQVEsRUFBRSxJQUFJO1NBQ2YsQ0FBQyxDQUFDO0tBaUNKO0lBL0JDOzs7OztPQUtHO0lBQ0gsTUFBTSxDQUFDLGFBQTZCLEVBQUUsS0FBMEI7UUFDOUQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNuQyxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsVUFBVSxDQUFDLFVBQXNCLEVBQUUsS0FBMEI7UUFDM0QsS0FBSyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNoRSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FDYiwrREFBK0QsQ0FDaEUsQ0FBQztTQUNIO1FBQ0QsS0FBSyxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDakQsSUFBSSxVQUFVLENBQUMsZUFBZSxFQUFFO1lBQzlCLEtBQUssRUFBRSxjQUFjLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQ25EO0lBQ0gsQ0FBQzs7NEdBcENVLGVBQWU7Z0hBQWYsZUFBZSxjQUZkLE1BQU07MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgc2FwcGhpcmUtYW5ndWxhci9jZGstb3ZlcmxheVxuaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGhlbWVCYXNlRGlyZWN0aXZlIH0gZnJvbSAnLi90aGVtZS1iYXNlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBUb3BMZXZlbFRoZW1lUmVmIH0gZnJvbSAnLi90b3AtbGV2ZWwtdGhlbWUtcmVmLnNlcnZpY2UnO1xuXG4vKipcbiAqIE5PVEU6IFByb3ZpZGluZyBhIHRoZW1lLWF3YXJlIE92ZXJsYXlDb250YWluZXIgd2FzIGEgc29sdXRpb24gZm9yIG92ZXJsYXkgc3R5bGVzIHdlIHVzZWQgdG8gaGF2ZS5cbiAqIEl0IHByb3ZlZCBlcnJvci1wcm9uZSBzaW5jZSBpdCBjYW4gbGVhZCB0byBtdWx0aXBsZSBvdmVybGF5IGNvbnRhaW5lcnMsIHdoaWNoIGNhbiBjYXVzZVxuICogei1pbmRleCBpc3N1ZXMgaW4gdmFyaW91cyBzY2VuYXJpb3MgKFVDLTQxNjAsIFVDLTI4OTcsIFVDLTM4NDMpLlxuICogVGhlIGN1cnJlbnQgc29sdXRpb24gYXBwbGllcy5cbiAqL1xuXG4vKipcbiAqIFNhcHBoaXJlIHRoZW1lIGF3YXJlIG92ZXJsYXkgc2VydmljZS5cbiAqIEl0J3MgYSBzbGltIHdyYXBwZXIgYXJvdW5kIENESyBPdmVybGF5IHNlcnZpY2UgdGhhdCBhZGRzIHRoZW1lIHN0eWxlcyB0byB0aGUgb3ZlcmxheSBjb250YWluZXIuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTYXBwaGlyZU92ZXJsYXkgZXh0ZW5kcyBPdmVybGF5IHtcbiAgcHJpdmF0ZSB0b3BMZXZlbFRoZW1lUmVmOiBUb3BMZXZlbFRoZW1lUmVmID0gaW5qZWN0KFRvcExldmVsVGhlbWVSZWYpO1xuICBwcml2YXRlIHRoZW1lOiBUaGVtZUJhc2VEaXJlY3RpdmUgfCBudWxsID0gaW5qZWN0KFRoZW1lQmFzZURpcmVjdGl2ZSwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcblxuICAvKipcbiAgICogU2FtZSBhcyBBbmd1bGFyIENESydzIGBvdmVybGF5LmNyZWF0ZWAsXG4gICAqIGJ1dCBhcHBsaWVzIHRoZSBjdXJyZW50IHRoZW1lIHN0eWxlIG9uIHRoZSBvdmVybGF5IGNvbnRhaW5lci5cbiAgICogQHBhcmFtIG92ZXJsYXlDb25maWcgVGhlIG92ZXJsYXkgY29uZmlndXJhdGlvbiB0byBwYXNzIHRvIG92ZXJsYXkuY3JlYXRlKClcbiAgICogQHBhcmFtIHRoZW1lIFRoZSB0aGVtZSB0byBhcHBseS4gSWYgbm90IHByb3ZpZGVkLCB0aGUgY3VycmVudCB0aGVtZSB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICBjcmVhdGUob3ZlcmxheUNvbmZpZz86IE92ZXJsYXlDb25maWcsIHRoZW1lPzogVGhlbWVCYXNlRGlyZWN0aXZlKSB7XG4gICAgY29uc3Qgb3ZlcmxheVJlZiA9IHN1cGVyLmNyZWF0ZShvdmVybGF5Q29uZmlnKTtcbiAgICB0aGlzLmFwcGx5VGhlbWUob3ZlcmxheVJlZiwgdGhlbWUpO1xuICAgIHJldHVybiBvdmVybGF5UmVmO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZXMgdGhlIGN1cnJlbnQgdGhlbWUgc3R5bGUgb24gdGhlIG92ZXJsYXkgY29udGFpbmVyLlxuICAgKiBVc2VmdWwgb25seSB3aGVuIHRoZSBvdmVybGF5IGlzIG5vdCBjcmVhdGVkIHVzaW5nIGBTYXBwaGlyZU92ZXJsYXkuY3JlYXRlYCBtZXRob2QuXG4gICAqIEUuZy4gd2hlbiB1c2luZyBzb21lIGhpZ2hlci1sZXZlbCBzZXJ2aWNlIGxpa2UgRGlhbG9nIGZyb20gYW5ndWxhciBDREsuXG4gICAqIEBwYXJhbSBvdmVybGF5UmVmIFRoZSBvdmVybGF5IHJlZmVyZW5jZSB0byBhcHBseSB0aGUgdGhlbWUgb24uXG4gICAqIEBwYXJhbSB0aGVtZSBUaGUgdGhlbWUgdG8gYXBwbHkuIElmIG5vdCBwcm92aWRlZCwgdGhlIGN1cnJlbnQgdGhlbWUgd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgYXBwbHlUaGVtZShvdmVybGF5UmVmOiBPdmVybGF5UmVmLCB0aGVtZT86IFRoZW1lQmFzZURpcmVjdGl2ZSkge1xuICAgIHRoZW1lID0gdGhlbWUgfHwgdGhpcy50aGVtZSB8fCB0aGlzLnRvcExldmVsVGhlbWVSZWYuZ2V0VGhlbWUoKTtcbiAgICBpZiAoIXRoZW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdDb3VsZCBub3QgZmluZCB0aGUgY3VycmVudCB0aGVtZSBuZWVkZWQgZm9yIG92ZXJsYXkgY29udGFpbmVyJ1xuICAgICAgKTtcbiAgICB9XG4gICAgdGhlbWU/LmFwcGx5T25Eb21Ob2RlKG92ZXJsYXlSZWYub3ZlcmxheUVsZW1lbnQpO1xuICAgIGlmIChvdmVybGF5UmVmLmJhY2tkcm9wRWxlbWVudCkge1xuICAgICAgdGhlbWU/LmFwcGx5T25Eb21Ob2RlKG92ZXJsYXlSZWYuYmFja2Ryb3BFbGVtZW50KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { Platform } from '@angular/cdk/platform';
|
|
5
|
-
import { DOCUMENT } from '@angular/common';
|
|
1
|
+
// import { SapphireOverlayContainer } from './sapphire-overlay-container.service';
|
|
2
|
+
import { Directive, Optional, SkipSelf, } from '@angular/core';
|
|
3
|
+
import { SapphireOverlay } from './sapphire-overlay.service';
|
|
6
4
|
import * as i0 from "@angular/core";
|
|
7
5
|
import * as i1 from "./top-level-theme-ref.service";
|
|
8
6
|
export class ThemeBaseDirective {
|
|
@@ -32,56 +30,18 @@ export class ThemeBaseDirective {
|
|
|
32
30
|
}
|
|
33
31
|
}
|
|
34
32
|
ThemeBaseDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ThemeBaseDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.TopLevelThemeRef }, { token: ThemeBaseDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
35
|
-
ThemeBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ThemeBaseDirective, isStandalone: true, selector: "[_sp-theme-base]", providers: [
|
|
36
|
-
{
|
|
37
|
-
provide: OverlayContainer,
|
|
38
|
-
useFactory: (existingOverlayContainer, parentTheme, _this, document, platform) => {
|
|
39
|
-
if (!parentTheme || parentTheme.equals(_this)) {
|
|
40
|
-
return existingOverlayContainer;
|
|
41
|
-
}
|
|
42
|
-
return new SapphireOverlayContainer(document, platform);
|
|
43
|
-
},
|
|
44
|
-
deps: [
|
|
45
|
-
[new SkipSelf(), OverlayContainer],
|
|
46
|
-
[new SkipSelf(), new Optional(), forwardRef(() => ThemeBaseDirective)],
|
|
47
|
-
forwardRef(() => ThemeBaseDirective),
|
|
48
|
-
DOCUMENT,
|
|
49
|
-
Platform,
|
|
50
|
-
],
|
|
51
|
-
},
|
|
52
|
-
// It's important to provide a new instance of Overlay that uses the provided OverlayContainer
|
|
53
|
-
Overlay,
|
|
54
|
-
], ngImport: i0 });
|
|
33
|
+
ThemeBaseDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.0", type: ThemeBaseDirective, isStandalone: true, selector: "[_sp-theme-base]", providers: [SapphireOverlay], ngImport: i0 });
|
|
55
34
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.0", ngImport: i0, type: ThemeBaseDirective, decorators: [{
|
|
56
35
|
type: Directive,
|
|
57
36
|
args: [{
|
|
58
37
|
selector: '[_sp-theme-base]',
|
|
59
38
|
// directive.
|
|
60
39
|
standalone: true,
|
|
61
|
-
providers: [
|
|
62
|
-
{
|
|
63
|
-
provide: OverlayContainer,
|
|
64
|
-
useFactory: (existingOverlayContainer, parentTheme, _this, document, platform) => {
|
|
65
|
-
if (!parentTheme || parentTheme.equals(_this)) {
|
|
66
|
-
return existingOverlayContainer;
|
|
67
|
-
}
|
|
68
|
-
return new SapphireOverlayContainer(document, platform);
|
|
69
|
-
},
|
|
70
|
-
deps: [
|
|
71
|
-
[new SkipSelf(), OverlayContainer],
|
|
72
|
-
[new SkipSelf(), new Optional(), forwardRef(() => ThemeBaseDirective)],
|
|
73
|
-
forwardRef(() => ThemeBaseDirective),
|
|
74
|
-
DOCUMENT,
|
|
75
|
-
Platform,
|
|
76
|
-
],
|
|
77
|
-
},
|
|
78
|
-
// It's important to provide a new instance of Overlay that uses the provided OverlayContainer
|
|
79
|
-
Overlay,
|
|
80
|
-
],
|
|
40
|
+
providers: [SapphireOverlay],
|
|
81
41
|
}]
|
|
82
42
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.TopLevelThemeRef }, { type: ThemeBaseDirective, decorators: [{
|
|
83
43
|
type: Optional
|
|
84
44
|
}, {
|
|
85
45
|
type: SkipSelf
|
|
86
46
|
}] }]; } });
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtYmFzZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3RoZW1lL3NyYy90aGVtZS1iYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtRkFBbUY7QUFDbkYsT0FBTyxFQUNMLFNBQVMsRUFFVCxRQUFRLEVBRVIsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBUTdELE1BQU0sT0FBTyxrQkFBa0I7SUFDN0IsWUFDVSxVQUFtQyxFQUNuQyxRQUFtQixFQUNuQixRQUEwQixFQUNWLFdBQStCO1FBSC9DLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDbkIsYUFBUSxHQUFSLFFBQVEsQ0FBa0I7UUFHbEMsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsT0FBb0I7UUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxrQkFBa0I7UUFDeEIsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDO1FBQzVELEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQ3RELE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDekMsSUFBSSxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDekMsT0FBTyxTQUFTLEVBQUUsSUFBSSxDQUFDO2FBQ3hCO1NBQ0Y7UUFDRCxNQUFNLElBQUksS0FBSyxDQUNiLDJEQUEyRCxDQUM1RCxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUF5QjtRQUM5QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLEtBQUssQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ2xFLENBQUM7OytHQS9CVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwrREFGbEIsQ0FBQyxlQUFlLENBQUM7MkZBRWpCLGtCQUFrQjtrQkFOOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixhQUFhO29CQUNiLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzdCOzswQkFNSSxRQUFROzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gaW1wb3J0IHsgU2FwcGhpcmVPdmVybGF5Q29udGFpbmVyIH0gZnJvbSAnLi9zYXBwaGlyZS1vdmVybGF5LWNvbnRhaW5lci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgT3B0aW9uYWwsXG4gIFJlbmRlcmVyMixcbiAgU2tpcFNlbGYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9wTGV2ZWxUaGVtZVJlZiB9IGZyb20gJy4vdG9wLWxldmVsLXRoZW1lLXJlZi5zZXJ2aWNlJztcbmltcG9ydCB7IFNhcHBoaXJlT3ZlcmxheSB9IGZyb20gJy4vc2FwcGhpcmUtb3ZlcmxheS5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW19zcC10aGVtZS1iYXNlXScsIC8vIHNlbGVjdG9yIGlzIGFkZGVkIHRvIHByZXZlbnQgdGhlIHR5cGUgZXJyb3IuIFdlIGRvbid0IGRpcmVjdGx5IHJlbmRlciB0aGlzXG4gIC8vIGRpcmVjdGl2ZS5cbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgcHJvdmlkZXJzOiBbU2FwcGhpcmVPdmVybGF5XSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlbWVCYXNlRGlyZWN0aXZlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSB0aGVtZVJlZjogVG9wTGV2ZWxUaGVtZVJlZixcbiAgICBAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRUaGVtZTogVGhlbWVCYXNlRGlyZWN0aXZlXG4gICkge1xuICAgIGlmICghcGFyZW50VGhlbWUpIHtcbiAgICAgIHRoaXMudGhlbWVSZWYuc2V0VGhlbWUodGhpcyk7XG4gICAgfVxuICB9XG5cbiAgYXBwbHlPbkRvbU5vZGUoZWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbGVtZW50LCB0aGlzLmdldFVuaXF1ZUF0dHJpYnV0ZSgpLCAnJyk7XG4gIH1cblxuICBwcml2YXRlIGdldFVuaXF1ZUF0dHJpYnV0ZSgpIHtcbiAgICBjb25zdCBhdHRyaWJ1dGVzID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYXR0cmlidXRlcztcbiAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgYXR0cmlidXRlcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZSA9IGF0dHJpYnV0ZXMuaXRlbShpbmRleCk7XG4gICAgICBpZiAoYXR0cmlidXRlPy5uYW1lLnN0YXJ0c1dpdGgoJ19uZ2hvc3QnKSkge1xuICAgICAgICByZXR1cm4gYXR0cmlidXRlPy5uYW1lO1xuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ291bGQgbm90IGdldCB1bmlxdWUgYXR0cmlidXRlIGZvciBmb3IgdGhlIHNhcHBoaXJlIHRoZW1lJ1xuICAgICk7XG4gIH1cblxuICBlcXVhbHModGhlbWU6IFRoZW1lQmFzZURpcmVjdGl2ZSkge1xuICAgIHJldHVybiB0aGlzLmdldFVuaXF1ZUF0dHJpYnV0ZSgpID09PSB0aGVtZS5nZXRVbmlxdWVBdHRyaWJ1dGUoKTtcbiAgfVxufVxuIl19
|