@rivet-health/design-system 40.29.0 → 40.31.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/input/select/select/select.component.mjs +6 -3
- package/esm2020/lib/input/select/select-node/select-node.component.mjs +5 -3
- package/esm2020/lib/table/table/state-helpers/collapse-helpers.mjs +53 -0
- package/esm2020/lib/table/table/state-helpers/column-helpers.mjs +19 -1
- package/esm2020/lib/table/table/state-helpers/display-helpers.mjs +5 -3
- package/esm2020/lib/table/table/state-helpers/nesting-helpers.mjs +115 -0
- package/esm2020/lib/table/table/state-helpers/order-helpers.mjs +22 -1
- package/esm2020/lib/table/table/state-helpers/pagination-helpers.mjs +3 -45
- package/esm2020/lib/table/table/state-helpers/result-helpers.mjs +5 -12
- package/esm2020/lib/table/table/state.mjs +520 -247
- package/esm2020/lib/table/table/table/table.component.mjs +46 -3
- package/fesm2015/rivet-health-design-system.mjs +668 -198
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +786 -309
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/lib/input/select/select/select.component.d.ts +8 -1
- package/lib/input/select/select-node/select-node.component.d.ts +10 -2
- package/lib/table/table/state-helpers/collapse-helpers.d.ts +7 -0
- package/lib/table/table/state-helpers/column-helpers.d.ts +1 -0
- package/lib/table/table/state-helpers/nesting-helpers.d.ts +12 -0
- package/lib/table/table/state-helpers/order-helpers.d.ts +1 -0
- package/lib/table/table/state-helpers/pagination-helpers.d.ts +1 -2
- package/lib/table/table/state-helpers/result-helpers.d.ts +5 -6
- package/lib/table/table/state.d.ts +37 -25
- package/lib/table/table/table/table.component.d.ts +10 -1
- package/package.json +1 -1
|
@@ -122,10 +122,10 @@ export class SelectComponent extends InputLabelComponent {
|
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
124
|
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
125
|
-
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SelectComponent, selector: "riv-select", inputs: { manager: "manager", size: "size", disabled: "disabled", locked: "locked", grow: "grow", allowedCalloutPositions: "allowedCalloutPositions", preferredCalloutPosition: "preferredCalloutPosition" }, queries: [{ propertyName: "triggerTemplate", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "customSelectedOptionsTemplate", first: true, predicate: ["customSelectedOptions"], descendants: true }, { propertyName: "optionTemplate", first: true, predicate: ["option"], descendants: true }, { propertyName: "headerTemplate", first: true, predicate: ["header"], descendants: true }, { propertyName: "footerTemplate", first: true, predicate: ["footer"], descendants: true }], viewQueries: [{ propertyName: "customTriggerButton", first: true, predicate: ["customTriggerButton"], descendants: true }, { propertyName: "standardTriggerButton", first: true, predicate: ["standardTriggerButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <ng-template #content>\n <riv-loading-cover [loading]=\"s.load.loading\">\n <div\n class=\"content-body\"\n [class.inline]=\"s.display.inline\"\n [ngStyle]=\"{\n 'max-height': s.display.maxHeight,\n 'max-width': s.display.maxWidth,\n 'min-height': s.display.minHeight,\n 'min-width': s.display.minWidth\n }\"\n >\n <header *ngIf=\"headerTemplate\">\n <ng-container\n *ngTemplateOutlet=\"headerTemplate; context: { state: s }\"\n ></ng-container>\n </header>\n <riv-search\n *ngIf=\"s.query.showSearch\"\n [value]=\"s.query.search\"\n [placeholder]=\"s.query.searchPlaceholder\"\n [autoFocus]=\"true\"\n (valueChange)=\"searchChange($event)\"\n ></riv-search>\n <div *ngIf=\"s.query.showOrder\">\n <span class=\"order-by\">Sort by:</span>\n <riv-select [manager]=\"orderByManager\">\n <ng-template #trigger let-state=\"state\">\n <span\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"state.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n >\n {{ getSelectedOrderByOption(s)?.title }}\n </span>\n </ng-template>\n </riv-select>\n </div>\n <div class=\"options\">\n <riv-select-node\n *ngIf=\"\n s.selection.allowMultiSelect &&\n s.selection.allowSelectAll &&\n !s.display.zeroStateMessage\n \"\n [mode]=\"'multi'\"\n [node]=\"{\n id: '__NOOP__',\n title: s.query.search ? 'Select all matching' : 'Select all',\n selected: s.selection.visibleSelectionState,\n selectable: true,\n expandable: false,\n expanded: false\n }\"\n (selectChange)=\"\n manager?.actions?.next({ type: 'visibleSelectedChange' })\n \"\n ></riv-select-node>\n <div\n *ngFor=\"let group of s.fullOptionGroups; trackBy: trackBySymbol\"\n class=\"group\"\n [class.divider]=\"s.display.dividers\"\n >\n <span *ngIf=\"group.header; let header\" class=\"header\">\n {{ header }}\n <riv-help\n *ngIf=\"group.help; let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <ng-container\n *ngFor=\"let option of group.options; trackBy: trackByOption\"\n >\n <ng-container *ngIf=\"optionTemplate; else standardTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ node: option }\"\n ></ng-container>\n </ng-container>\n <ng-template #standardTemplate>\n <riv-select-node\n [mode]=\"s.selection.allowMultiSelect ? 'multi' : 'single'\"\n [node]=\"option\"\n [showSingleSelected]=\"s.display.showSingleSelected\"\n (selectChange)=\"\n selectChange(s.selection.allowMultiSelect, $event)\n \"\n (expandChange)=\"\n manager?.actions?.next({\n type: 'toggleOptionExpanded',\n id: $event\n })\n \"\n ></riv-select-node>\n </ng-template>\n </ng-container>\n </div>\n <span\n *ngIf=\"s.display.displayLimitMessage; let message\"\n class=\"display-limit\"\n >\n {{ message }}\n </span>\n <riv-zero-state\n *ngIf=\"s.display.zeroStateMessage; let message\"\n [message]=\"message\"\n ></riv-zero-state>\n </div>\n <footer *ngIf=\"footerTemplate\" class=\"custom-footer\">\n <ng-container\n *ngTemplateOutlet=\"footerTemplate; context: { state: s }\"\n ></ng-container>\n </footer>\n </div>\n </riv-loading-cover>\n </ng-template>\n\n <ng-container *ngIf=\"!s.display.inline; else content\">\n <ng-container *ngIf=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n [attr.aria-disabled]=\"disabled || locked ? 'true' : null\"\n type=\"button\"\n class=\"custom-trigger-button\"\n [class.grow]=\"grow\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ state: s }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTrigger>\n <riv-input-label\n [label]=\"label\"\n [help]=\"help\"\n [required]=\"required\"\n [state]=\"state\"\n [errorMessage]=\"errorMessage\"\n [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n [class.small]=\"size === 'small'\"\n [class.large]=\"size === 'large'\"\n [class.warning]=\"state === 'warning'\"\n [class.error]=\"state === 'error'\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n [attr.aria-disabled]=\"disabled || locked ? 'true' : null\"\n type=\"button\"\n >\n <ng-container\n *ngIf=\"s.selection.selected.size; else placeholderValue\"\n >\n <ng-container\n *ngIf=\"\n customSelectedOptionsTemplate;\n else standardSelectedOptionsTemplate\n \"\n >\n <span class=\"value\">\n <ng-container\n [ngTemplateOutlet]=\"customSelectedOptionsTemplate\"\n [ngTemplateOutletContext]=\"{ selected: s.selection.selected }\"\n ></ng-container>\n </span>\n </ng-container>\n <ng-template #standardSelectedOptionsTemplate>\n <span class=\"value\">{{\n s.display.formattedSelectedOptions\n }}</span>\n <span *ngIf=\"s.display.pillCount > 1\" class=\"selected-count\">\n {{ s.display.pillCount | rivNumber }}\n </span>\n </ng-template>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ s.display.placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon\n *ngIf=\"!locked\"\n [name]=\"s.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [size]=\"20\"\n ></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"20\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n </ng-template>\n\n <ng-container *ngIf=\"s.display.open\">\n <riv-callout\n *riv-overlay\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"allowedCalloutPositions\"\n [preferredPosition]=\"preferredCalloutPosition\"\n (close)=\"manager?.actions?.next({ type: 'openChange', open: false })\"\n >\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </riv-callout>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [".trigger{width:100%;border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-small);display:flex;gap:var(--size-small);background-color:var(--surface-light-0);cursor:pointer;padding-left:var(--size-small)}.trigger:focus{outline:none;border:var(--border-width) solid var(--purp-60)}.trigger:disabled{color:var(--type-light-disabled);background-color:var(--surface-light-1);cursor:default}.selected-count{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);font-weight:var(--font-weight-normal);color:var(--type-dark-body);border-radius:calc(var(--base-grid-size) * 3);background-color:var(--brand);padding:calc(var(--base-grid-size) / 4) calc(var(--base-grid-size) * 2);align-self:center}.value{font:var(--input-medium);color:var(--type-light-high-contrast);padding:var(--size-small) 0;flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-low-contrast)}.trigger.small .value{font:var(--input-small)}.trigger.large .value{font:var(--input-large);padding:var(--size-medium) var(--size-xsmall)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-xsmall) calc(var(--base-grid-size) * 1.5)}.trigger.warning{border-color:var(--surface-dark-caution)}.trigger.error{border-color:var(--surface-dark-danger);box-shadow:inset 0 0 0 var(--border-width-large) var(--surface-dark-danger)}.custom-trigger-button{max-width:100%}.custom-trigger-button.grow{display:flex;flex-direction:column;width:100%}.order-by{font:var(--input-medium);color:var(--type-light-low-contrast)}.content-body{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-large)}.content-body:not(.inline){max-height:50vh;min-width:calc(var(--base-grid-size) * 75);max-width:50vw}.options{flex-grow:1;overflow-y:auto;gap:var(--size-medium)}.options,.group{display:flex;flex-direction:column}.group{gap:var(--size-xsmall)}.group.divider:not(:last-child){padding-bottom:var(--size-medium);border-bottom:var(--border-width) solid var(--border-light)}.display-limit{font:var(--body-small);color:var(--type-light-disabled);padding:var(--size-small);text-align:center}.header{font:var(--input-medium);color:var(--type-light-low-contrast);padding:var(--size-xsmall) 0;display:flex;align-items:center;gap:var(--size-small)}.custom-footer{padding-top:var(--size-large);border-top:var(--border-width) solid var(--border-light)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "component", type: i3.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i4.HelpComponent, selector: "riv-help", inputs: ["help", "size"] }, { kind: "component", type: i5.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "component", type: i6.InputLabelComponent, selector: "riv-input-label", inputs: ["label", "help", "required", "labelActionText", "errorMessage", "state"], outputs: ["labelAction"] }, { kind: "component", type: i7.LoadingCoverComponent, selector: "riv-loading-cover", inputs: ["loading", "loadingSize", "zIndexOverride", "errorMessage"] }, { kind: "directive", type: i8.OverlayDirective, selector: "[riv-overlay]" }, { kind: "component", type: i9.SearchComponent, selector: "riv-search", inputs: ["placeholder", "name", "labelTemplate"] }, { kind: "component", type: SelectComponent, selector: "riv-select", inputs: ["manager", "size", "disabled", "locked", "grow", "allowedCalloutPositions", "preferredCalloutPosition"] }, { kind: "component", type: i10.SelectNodeComponent, selector: "riv-select-node", inputs: ["mode", "node", "showSingleSelected"], outputs: ["selectChange", "expandChange"] }, { kind: "component", type: i11.ZeroStateComponent, selector: "riv-zero-state", inputs: ["message", "title", "icon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.NumberPipe, name: "rivNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
125
|
+
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SelectComponent, selector: "riv-select", inputs: { manager: "manager", size: "size", disabled: "disabled", locked: "locked", grow: "grow", allowedCalloutPositions: "allowedCalloutPositions", preferredCalloutPosition: "preferredCalloutPosition" }, queries: [{ propertyName: "triggerTemplate", first: true, predicate: ["trigger"], descendants: true }, { propertyName: "customSelectedOptionsTemplate", first: true, predicate: ["customSelectedOptions"], descendants: true }, { propertyName: "optionTemplate", first: true, predicate: ["option"], descendants: true }, { propertyName: "optionTitleTemplate", first: true, predicate: ["optionTitle"], descendants: true }, { propertyName: "headerTemplate", first: true, predicate: ["header"], descendants: true }, { propertyName: "footerTemplate", first: true, predicate: ["footer"], descendants: true }], viewQueries: [{ propertyName: "customTriggerButton", first: true, predicate: ["customTriggerButton"], descendants: true }, { propertyName: "standardTriggerButton", first: true, predicate: ["standardTriggerButton"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <ng-template #content>\n <riv-loading-cover [loading]=\"s.load.loading\">\n <div\n class=\"content-body\"\n [class.inline]=\"s.display.inline\"\n [ngStyle]=\"{\n 'max-height': s.display.maxHeight,\n 'max-width': s.display.maxWidth,\n 'min-height': s.display.minHeight,\n 'min-width': s.display.minWidth\n }\"\n >\n <header *ngIf=\"headerTemplate\">\n <ng-container\n *ngTemplateOutlet=\"headerTemplate; context: { state: s }\"\n ></ng-container>\n </header>\n <riv-search\n *ngIf=\"s.query.showSearch\"\n [value]=\"s.query.search\"\n [placeholder]=\"s.query.searchPlaceholder\"\n [autoFocus]=\"true\"\n (valueChange)=\"searchChange($event)\"\n ></riv-search>\n <div *ngIf=\"s.query.showOrder\">\n <span class=\"order-by\">Sort by:</span>\n <riv-select [manager]=\"orderByManager\">\n <ng-template #trigger let-state=\"state\">\n <span\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"state.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n >\n {{ getSelectedOrderByOption(s)?.title }}\n </span>\n </ng-template>\n </riv-select>\n </div>\n <div class=\"options\">\n <riv-select-node\n *ngIf=\"\n s.selection.allowMultiSelect &&\n s.selection.allowSelectAll &&\n !s.display.zeroStateMessage\n \"\n [mode]=\"'multi'\"\n [node]=\"{\n id: '__NOOP__',\n title: s.query.search ? 'Select all matching' : 'Select all',\n selected: s.selection.visibleSelectionState,\n selectable: true,\n expandable: false,\n expanded: false\n }\"\n (selectChange)=\"\n manager?.actions?.next({ type: 'visibleSelectedChange' })\n \"\n ></riv-select-node>\n <div\n *ngFor=\"let group of s.fullOptionGroups; trackBy: trackBySymbol\"\n class=\"group\"\n [class.divider]=\"s.display.dividers\"\n >\n <span *ngIf=\"group.header; let header\" class=\"header\">\n {{ header }}\n <riv-help\n *ngIf=\"group.help; let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <ng-container\n *ngFor=\"let option of group.options; trackBy: trackByOption\"\n >\n <ng-container *ngIf=\"optionTemplate; else standardTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ node: option }\"\n ></ng-container>\n </ng-container>\n <ng-template #standardTemplate>\n <riv-select-node\n [mode]=\"s.selection.allowMultiSelect ? 'multi' : 'single'\"\n [node]=\"option\"\n [showSingleSelected]=\"s.display.showSingleSelected\"\n [titleTemplate]=\"optionTitleTemplate\"\n (selectChange)=\"\n selectChange(s.selection.allowMultiSelect, $event)\n \"\n (expandChange)=\"\n manager?.actions?.next({\n type: 'toggleOptionExpanded',\n id: $event\n })\n \"\n ></riv-select-node>\n </ng-template>\n </ng-container>\n </div>\n <span\n *ngIf=\"s.display.displayLimitMessage; let message\"\n class=\"display-limit\"\n >\n {{ message }}\n </span>\n <riv-zero-state\n *ngIf=\"s.display.zeroStateMessage; let message\"\n [message]=\"message\"\n ></riv-zero-state>\n </div>\n <footer *ngIf=\"footerTemplate\" class=\"custom-footer\">\n <ng-container\n *ngTemplateOutlet=\"footerTemplate; context: { state: s }\"\n ></ng-container>\n </footer>\n </div>\n </riv-loading-cover>\n </ng-template>\n\n <ng-container *ngIf=\"!s.display.inline; else content\">\n <ng-container *ngIf=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n [attr.aria-disabled]=\"disabled || locked ? 'true' : null\"\n type=\"button\"\n class=\"custom-trigger-button\"\n [class.grow]=\"grow\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ state: s }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTrigger>\n <riv-input-label\n [label]=\"label\"\n [help]=\"help\"\n [required]=\"required\"\n [state]=\"state\"\n [errorMessage]=\"errorMessage\"\n [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n [class.small]=\"size === 'small'\"\n [class.large]=\"size === 'large'\"\n [class.warning]=\"state === 'warning'\"\n [class.error]=\"state === 'error'\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n [attr.aria-disabled]=\"disabled || locked ? 'true' : null\"\n type=\"button\"\n >\n <ng-container\n *ngIf=\"s.selection.selected.size; else placeholderValue\"\n >\n <ng-container\n *ngIf=\"\n customSelectedOptionsTemplate;\n else standardSelectedOptionsTemplate\n \"\n >\n <span class=\"value\">\n <ng-container\n [ngTemplateOutlet]=\"customSelectedOptionsTemplate\"\n [ngTemplateOutletContext]=\"{ selected: s.selection.selected }\"\n ></ng-container>\n </span>\n </ng-container>\n <ng-template #standardSelectedOptionsTemplate>\n <span class=\"value\">{{\n s.display.formattedSelectedOptions\n }}</span>\n <span *ngIf=\"s.display.pillCount > 1\" class=\"selected-count\">\n {{ s.display.pillCount | rivNumber }}\n </span>\n </ng-template>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ s.display.placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon\n *ngIf=\"!locked\"\n [name]=\"s.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [size]=\"20\"\n ></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"20\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n </ng-template>\n\n <ng-container *ngIf=\"s.display.open\">\n <riv-callout\n *riv-overlay\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"allowedCalloutPositions\"\n [preferredPosition]=\"preferredCalloutPosition\"\n (close)=\"manager?.actions?.next({ type: 'openChange', open: false })\"\n >\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </riv-callout>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [".trigger{width:100%;border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-small);display:flex;gap:var(--size-small);background-color:var(--surface-light-0);cursor:pointer;padding-left:var(--size-small)}.trigger:focus{outline:none;border:var(--border-width) solid var(--purp-60)}.trigger:disabled{color:var(--type-light-disabled);background-color:var(--surface-light-1);cursor:default}.selected-count{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);font-weight:var(--font-weight-normal);color:var(--type-dark-body);border-radius:calc(var(--base-grid-size) * 3);background-color:var(--brand);padding:calc(var(--base-grid-size) / 4) calc(var(--base-grid-size) * 2);align-self:center}.value{font:var(--input-medium);color:var(--type-light-high-contrast);padding:var(--size-small) 0;flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-low-contrast)}.trigger.small .value{font:var(--input-small)}.trigger.large .value{font:var(--input-large);padding:var(--size-medium) var(--size-xsmall)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-xsmall) calc(var(--base-grid-size) * 1.5)}.trigger.warning{border-color:var(--surface-dark-caution)}.trigger.error{border-color:var(--surface-dark-danger);box-shadow:inset 0 0 0 var(--border-width-large) var(--surface-dark-danger)}.custom-trigger-button{max-width:100%}.custom-trigger-button.grow{display:flex;flex-direction:column;width:100%}.order-by{font:var(--input-medium);color:var(--type-light-low-contrast)}.content-body{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-large)}.content-body:not(.inline){max-height:50vh;min-width:calc(var(--base-grid-size) * 75);max-width:50vw}.options{flex-grow:1;overflow-y:auto;gap:var(--size-medium)}.options,.group{display:flex;flex-direction:column}.group{gap:var(--size-xsmall)}.group.divider:not(:last-child){padding-bottom:var(--size-medium);border-bottom:var(--border-width) solid var(--border-light)}.display-limit{font:var(--body-small);color:var(--type-light-disabled);padding:var(--size-small);text-align:center}.header{font:var(--input-medium);color:var(--type-light-low-contrast);padding:var(--size-xsmall) 0;display:flex;align-items:center;gap:var(--size-small)}.custom-footer{padding-top:var(--size-large);border-top:var(--border-width) solid var(--border-light)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.ButtonComponent, selector: "[rivButton]", inputs: ["locked", "disabled", "loading", "full", "size", "variant", "icon", "iconPosition", "current"] }, { kind: "component", type: i3.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i4.HelpComponent, selector: "riv-help", inputs: ["help", "size"] }, { kind: "component", type: i5.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "component", type: i6.InputLabelComponent, selector: "riv-input-label", inputs: ["label", "help", "required", "labelActionText", "errorMessage", "state"], outputs: ["labelAction"] }, { kind: "component", type: i7.LoadingCoverComponent, selector: "riv-loading-cover", inputs: ["loading", "loadingSize", "zIndexOverride", "errorMessage"] }, { kind: "directive", type: i8.OverlayDirective, selector: "[riv-overlay]" }, { kind: "component", type: i9.SearchComponent, selector: "riv-search", inputs: ["placeholder", "name", "labelTemplate"] }, { kind: "component", type: SelectComponent, selector: "riv-select", inputs: ["manager", "size", "disabled", "locked", "grow", "allowedCalloutPositions", "preferredCalloutPosition"] }, { kind: "component", type: i10.SelectNodeComponent, selector: "riv-select-node", inputs: ["mode", "node", "showSingleSelected", "titleTemplate"], outputs: ["selectChange", "expandChange"] }, { kind: "component", type: i11.ZeroStateComponent, selector: "riv-zero-state", inputs: ["message", "title", "icon"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i12.NumberPipe, name: "rivNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
126
126
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectComponent, decorators: [{
|
|
127
127
|
type: Component,
|
|
128
|
-
args: [{ selector: 'riv-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <ng-template #content>\n <riv-loading-cover [loading]=\"s.load.loading\">\n <div\n class=\"content-body\"\n [class.inline]=\"s.display.inline\"\n [ngStyle]=\"{\n 'max-height': s.display.maxHeight,\n 'max-width': s.display.maxWidth,\n 'min-height': s.display.minHeight,\n 'min-width': s.display.minWidth\n }\"\n >\n <header *ngIf=\"headerTemplate\">\n <ng-container\n *ngTemplateOutlet=\"headerTemplate; context: { state: s }\"\n ></ng-container>\n </header>\n <riv-search\n *ngIf=\"s.query.showSearch\"\n [value]=\"s.query.search\"\n [placeholder]=\"s.query.searchPlaceholder\"\n [autoFocus]=\"true\"\n (valueChange)=\"searchChange($event)\"\n ></riv-search>\n <div *ngIf=\"s.query.showOrder\">\n <span class=\"order-by\">Sort by:</span>\n <riv-select [manager]=\"orderByManager\">\n <ng-template #trigger let-state=\"state\">\n <span\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"state.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n >\n {{ getSelectedOrderByOption(s)?.title }}\n </span>\n </ng-template>\n </riv-select>\n </div>\n <div class=\"options\">\n <riv-select-node\n *ngIf=\"\n s.selection.allowMultiSelect &&\n s.selection.allowSelectAll &&\n !s.display.zeroStateMessage\n \"\n [mode]=\"'multi'\"\n [node]=\"{\n id: '__NOOP__',\n title: s.query.search ? 'Select all matching' : 'Select all',\n selected: s.selection.visibleSelectionState,\n selectable: true,\n expandable: false,\n expanded: false\n }\"\n (selectChange)=\"\n manager?.actions?.next({ type: 'visibleSelectedChange' })\n \"\n ></riv-select-node>\n <div\n *ngFor=\"let group of s.fullOptionGroups; trackBy: trackBySymbol\"\n class=\"group\"\n [class.divider]=\"s.display.dividers\"\n >\n <span *ngIf=\"group.header; let header\" class=\"header\">\n {{ header }}\n <riv-help\n *ngIf=\"group.help; let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <ng-container\n *ngFor=\"let option of group.options; trackBy: trackByOption\"\n >\n <ng-container *ngIf=\"optionTemplate; else standardTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ node: option }\"\n ></ng-container>\n </ng-container>\n <ng-template #standardTemplate>\n <riv-select-node\n [mode]=\"s.selection.allowMultiSelect ? 'multi' : 'single'\"\n [node]=\"option\"\n [showSingleSelected]=\"s.display.showSingleSelected\"\n (selectChange)=\"\n selectChange(s.selection.allowMultiSelect, $event)\n \"\n (expandChange)=\"\n manager?.actions?.next({\n type: 'toggleOptionExpanded',\n id: $event\n })\n \"\n ></riv-select-node>\n </ng-template>\n </ng-container>\n </div>\n <span\n *ngIf=\"s.display.displayLimitMessage; let message\"\n class=\"display-limit\"\n >\n {{ message }}\n </span>\n <riv-zero-state\n *ngIf=\"s.display.zeroStateMessage; let message\"\n [message]=\"message\"\n ></riv-zero-state>\n </div>\n <footer *ngIf=\"footerTemplate\" class=\"custom-footer\">\n <ng-container\n *ngTemplateOutlet=\"footerTemplate; context: { state: s }\"\n ></ng-container>\n </footer>\n </div>\n </riv-loading-cover>\n </ng-template>\n\n <ng-container *ngIf=\"!s.display.inline; else content\">\n <ng-container *ngIf=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n [attr.aria-disabled]=\"disabled || locked ? 'true' : null\"\n type=\"button\"\n class=\"custom-trigger-button\"\n [class.grow]=\"grow\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ state: s }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTrigger>\n <riv-input-label\n [label]=\"label\"\n [help]=\"help\"\n [required]=\"required\"\n [state]=\"state\"\n [errorMessage]=\"errorMessage\"\n [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n [class.small]=\"size === 'small'\"\n [class.large]=\"size === 'large'\"\n [class.warning]=\"state === 'warning'\"\n [class.error]=\"state === 'error'\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n [attr.aria-disabled]=\"disabled || locked ? 'true' : null\"\n type=\"button\"\n >\n <ng-container\n *ngIf=\"s.selection.selected.size; else placeholderValue\"\n >\n <ng-container\n *ngIf=\"\n customSelectedOptionsTemplate;\n else standardSelectedOptionsTemplate\n \"\n >\n <span class=\"value\">\n <ng-container\n [ngTemplateOutlet]=\"customSelectedOptionsTemplate\"\n [ngTemplateOutletContext]=\"{ selected: s.selection.selected }\"\n ></ng-container>\n </span>\n </ng-container>\n <ng-template #standardSelectedOptionsTemplate>\n <span class=\"value\">{{\n s.display.formattedSelectedOptions\n }}</span>\n <span *ngIf=\"s.display.pillCount > 1\" class=\"selected-count\">\n {{ s.display.pillCount | rivNumber }}\n </span>\n </ng-template>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ s.display.placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon\n *ngIf=\"!locked\"\n [name]=\"s.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [size]=\"20\"\n ></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"20\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n </ng-template>\n\n <ng-container *ngIf=\"s.display.open\">\n <riv-callout\n *riv-overlay\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"allowedCalloutPositions\"\n [preferredPosition]=\"preferredCalloutPosition\"\n (close)=\"manager?.actions?.next({ type: 'openChange', open: false })\"\n >\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </riv-callout>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [".trigger{width:100%;border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-small);display:flex;gap:var(--size-small);background-color:var(--surface-light-0);cursor:pointer;padding-left:var(--size-small)}.trigger:focus{outline:none;border:var(--border-width) solid var(--purp-60)}.trigger:disabled{color:var(--type-light-disabled);background-color:var(--surface-light-1);cursor:default}.selected-count{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);font-weight:var(--font-weight-normal);color:var(--type-dark-body);border-radius:calc(var(--base-grid-size) * 3);background-color:var(--brand);padding:calc(var(--base-grid-size) / 4) calc(var(--base-grid-size) * 2);align-self:center}.value{font:var(--input-medium);color:var(--type-light-high-contrast);padding:var(--size-small) 0;flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-low-contrast)}.trigger.small .value{font:var(--input-small)}.trigger.large .value{font:var(--input-large);padding:var(--size-medium) var(--size-xsmall)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-xsmall) calc(var(--base-grid-size) * 1.5)}.trigger.warning{border-color:var(--surface-dark-caution)}.trigger.error{border-color:var(--surface-dark-danger);box-shadow:inset 0 0 0 var(--border-width-large) var(--surface-dark-danger)}.custom-trigger-button{max-width:100%}.custom-trigger-button.grow{display:flex;flex-direction:column;width:100%}.order-by{font:var(--input-medium);color:var(--type-light-low-contrast)}.content-body{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-large)}.content-body:not(.inline){max-height:50vh;min-width:calc(var(--base-grid-size) * 75);max-width:50vw}.options{flex-grow:1;overflow-y:auto;gap:var(--size-medium)}.options,.group{display:flex;flex-direction:column}.group{gap:var(--size-xsmall)}.group.divider:not(:last-child){padding-bottom:var(--size-medium);border-bottom:var(--border-width) solid var(--border-light)}.display-limit{font:var(--body-small);color:var(--type-light-disabled);padding:var(--size-small);text-align:center}.header{font:var(--input-medium);color:var(--type-light-low-contrast);padding:var(--size-xsmall) 0;display:flex;align-items:center;gap:var(--size-small)}.custom-footer{padding-top:var(--size-large);border-top:var(--border-width) solid var(--border-light)}\n"] }]
|
|
128
|
+
args: [{ selector: 'riv-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"manager?.state | async; let s\">\n <ng-template #content>\n <riv-loading-cover [loading]=\"s.load.loading\">\n <div\n class=\"content-body\"\n [class.inline]=\"s.display.inline\"\n [ngStyle]=\"{\n 'max-height': s.display.maxHeight,\n 'max-width': s.display.maxWidth,\n 'min-height': s.display.minHeight,\n 'min-width': s.display.minWidth\n }\"\n >\n <header *ngIf=\"headerTemplate\">\n <ng-container\n *ngTemplateOutlet=\"headerTemplate; context: { state: s }\"\n ></ng-container>\n </header>\n <riv-search\n *ngIf=\"s.query.showSearch\"\n [value]=\"s.query.search\"\n [placeholder]=\"s.query.searchPlaceholder\"\n [autoFocus]=\"true\"\n (valueChange)=\"searchChange($event)\"\n ></riv-search>\n <div *ngIf=\"s.query.showOrder\">\n <span class=\"order-by\">Sort by:</span>\n <riv-select [manager]=\"orderByManager\">\n <ng-template #trigger let-state=\"state\">\n <span\n rivButton\n [variant]=\"'ghost'\"\n [size]=\"'small'\"\n [icon]=\"state.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [iconPosition]=\"'last'\"\n >\n {{ getSelectedOrderByOption(s)?.title }}\n </span>\n </ng-template>\n </riv-select>\n </div>\n <div class=\"options\">\n <riv-select-node\n *ngIf=\"\n s.selection.allowMultiSelect &&\n s.selection.allowSelectAll &&\n !s.display.zeroStateMessage\n \"\n [mode]=\"'multi'\"\n [node]=\"{\n id: '__NOOP__',\n title: s.query.search ? 'Select all matching' : 'Select all',\n selected: s.selection.visibleSelectionState,\n selectable: true,\n expandable: false,\n expanded: false\n }\"\n (selectChange)=\"\n manager?.actions?.next({ type: 'visibleSelectedChange' })\n \"\n ></riv-select-node>\n <div\n *ngFor=\"let group of s.fullOptionGroups; trackBy: trackBySymbol\"\n class=\"group\"\n [class.divider]=\"s.display.dividers\"\n >\n <span *ngIf=\"group.header; let header\" class=\"header\">\n {{ header }}\n <riv-help\n *ngIf=\"group.help; let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <ng-container\n *ngFor=\"let option of group.options; trackBy: trackByOption\"\n >\n <ng-container *ngIf=\"optionTemplate; else standardTemplate\">\n <ng-container\n [ngTemplateOutlet]=\"optionTemplate\"\n [ngTemplateOutletContext]=\"{ node: option }\"\n ></ng-container>\n </ng-container>\n <ng-template #standardTemplate>\n <riv-select-node\n [mode]=\"s.selection.allowMultiSelect ? 'multi' : 'single'\"\n [node]=\"option\"\n [showSingleSelected]=\"s.display.showSingleSelected\"\n [titleTemplate]=\"optionTitleTemplate\"\n (selectChange)=\"\n selectChange(s.selection.allowMultiSelect, $event)\n \"\n (expandChange)=\"\n manager?.actions?.next({\n type: 'toggleOptionExpanded',\n id: $event\n })\n \"\n ></riv-select-node>\n </ng-template>\n </ng-container>\n </div>\n <span\n *ngIf=\"s.display.displayLimitMessage; let message\"\n class=\"display-limit\"\n >\n {{ message }}\n </span>\n <riv-zero-state\n *ngIf=\"s.display.zeroStateMessage; let message\"\n [message]=\"message\"\n ></riv-zero-state>\n </div>\n <footer *ngIf=\"footerTemplate\" class=\"custom-footer\">\n <ng-container\n *ngTemplateOutlet=\"footerTemplate; context: { state: s }\"\n ></ng-container>\n </footer>\n </div>\n </riv-loading-cover>\n </ng-template>\n\n <ng-container *ngIf=\"!s.display.inline; else content\">\n <ng-container *ngIf=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n [attr.aria-disabled]=\"disabled || locked ? 'true' : null\"\n type=\"button\"\n class=\"custom-trigger-button\"\n [class.grow]=\"grow\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ state: s }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTrigger>\n <riv-input-label\n [label]=\"label\"\n [help]=\"help\"\n [required]=\"required\"\n [state]=\"state\"\n [errorMessage]=\"errorMessage\"\n [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n [class.small]=\"size === 'small'\"\n [class.large]=\"size === 'large'\"\n [class.warning]=\"state === 'warning'\"\n [class.error]=\"state === 'error'\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n [attr.aria-disabled]=\"disabled || locked ? 'true' : null\"\n type=\"button\"\n >\n <ng-container\n *ngIf=\"s.selection.selected.size; else placeholderValue\"\n >\n <ng-container\n *ngIf=\"\n customSelectedOptionsTemplate;\n else standardSelectedOptionsTemplate\n \"\n >\n <span class=\"value\">\n <ng-container\n [ngTemplateOutlet]=\"customSelectedOptionsTemplate\"\n [ngTemplateOutletContext]=\"{ selected: s.selection.selected }\"\n ></ng-container>\n </span>\n </ng-container>\n <ng-template #standardSelectedOptionsTemplate>\n <span class=\"value\">{{\n s.display.formattedSelectedOptions\n }}</span>\n <span *ngIf=\"s.display.pillCount > 1\" class=\"selected-count\">\n {{ s.display.pillCount | rivNumber }}\n </span>\n </ng-template>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ s.display.placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon\n *ngIf=\"!locked\"\n [name]=\"s.display.open ? 'ChevronUp' : 'ChevronDown'\"\n [size]=\"20\"\n ></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"20\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n </ng-template>\n\n <ng-container *ngIf=\"s.display.open\">\n <riv-callout\n *riv-overlay\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"allowedCalloutPositions\"\n [preferredPosition]=\"preferredCalloutPosition\"\n (close)=\"manager?.actions?.next({ type: 'openChange', open: false })\"\n >\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </riv-callout>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [".trigger{width:100%;border:var(--border-width) solid var(--border-light);border-radius:var(--border-radius-small);display:flex;gap:var(--size-small);background-color:var(--surface-light-0);cursor:pointer;padding-left:var(--size-small)}.trigger:focus{outline:none;border:var(--border-width) solid var(--purp-60)}.trigger:disabled{color:var(--type-light-disabled);background-color:var(--surface-light-1);cursor:default}.selected-count{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);font-weight:var(--font-weight-normal);color:var(--type-dark-body);border-radius:calc(var(--base-grid-size) * 3);background-color:var(--brand);padding:calc(var(--base-grid-size) / 4) calc(var(--base-grid-size) * 2);align-self:center}.value{font:var(--input-medium);color:var(--type-light-high-contrast);padding:var(--size-small) 0;flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-low-contrast)}.trigger.small .value{font:var(--input-small)}.trigger.large .value{font:var(--input-large);padding:var(--size-medium) var(--size-xsmall)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-xsmall) calc(var(--base-grid-size) * 1.5)}.trigger.warning{border-color:var(--surface-dark-caution)}.trigger.error{border-color:var(--surface-dark-danger);box-shadow:inset 0 0 0 var(--border-width-large) var(--surface-dark-danger)}.custom-trigger-button{max-width:100%}.custom-trigger-button.grow{display:flex;flex-direction:column;width:100%}.order-by{font:var(--input-medium);color:var(--type-light-low-contrast)}.content-body{padding:var(--size-large);display:flex;flex-direction:column;gap:var(--size-large)}.content-body:not(.inline){max-height:50vh;min-width:calc(var(--base-grid-size) * 75);max-width:50vw}.options{flex-grow:1;overflow-y:auto;gap:var(--size-medium)}.options,.group{display:flex;flex-direction:column}.group{gap:var(--size-xsmall)}.group.divider:not(:last-child){padding-bottom:var(--size-medium);border-bottom:var(--border-width) solid var(--border-light)}.display-limit{font:var(--body-small);color:var(--type-light-disabled);padding:var(--size-small);text-align:center}.header{font:var(--input-medium);color:var(--type-light-low-contrast);padding:var(--size-xsmall) 0;display:flex;align-items:center;gap:var(--size-small)}.custom-footer{padding-top:var(--size-large);border-top:var(--border-width) solid var(--border-light)}\n"] }]
|
|
129
129
|
}], propDecorators: { manager: [{
|
|
130
130
|
type: Input
|
|
131
131
|
}], size: [{
|
|
@@ -149,6 +149,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
149
149
|
}], optionTemplate: [{
|
|
150
150
|
type: ContentChild,
|
|
151
151
|
args: ['option']
|
|
152
|
+
}], optionTitleTemplate: [{
|
|
153
|
+
type: ContentChild,
|
|
154
|
+
args: ['optionTitle']
|
|
152
155
|
}], headerTemplate: [{
|
|
153
156
|
type: ContentChild,
|
|
154
157
|
args: ['header']
|
|
@@ -165,4 +168,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
165
168
|
(function (SelectComponent) {
|
|
166
169
|
SelectComponent.Sizes = ['small', 'medium', 'large'];
|
|
167
170
|
})(SelectComponent || (SelectComponent = {}));
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2lucHV0L3NlbGVjdC9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2lucHV0L3NlbGVjdC9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFckMsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUXhHLE1BQU0sT0FBTyxlQUNYLFNBQVEsbUJBQW1CO0lBUDdCOztRQWNFLFNBQUksR0FBeUIsUUFBUSxDQUFDO1FBR3RDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUV4QixzRUFBc0U7UUFFdEUsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUd0Qiw0QkFBdUIsR0FBd0M7WUFDN0QsR0FBRyxvQ0FBb0M7U0FDeEMsQ0FBQztRQUdGLDZCQUF3QixHQUFzQyxjQUFjLENBQUM7UUFpR3BFLHdCQUFtQixHQUMxQjtZQUNFO2dCQUNFLE9BQU8sRUFBRTtvQkFDUDt3QkFDRSxFQUFFLEVBQUUsT0FBTzt3QkFD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QkFBQyx1QkFBdUI7Z0JBTXJDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxRQUFRO2dCQUl0QixjQUFjO3NCQURiLFlBQVk7dUJBQUMsUUFBUTtnQkFJdEIsY0FBYztzQkFEYixZQUFZO3VCQUFDLFFBQVE7Z0JBSXRCLG1CQUFtQjtzQkFEbEIsU0FBUzt1QkFBQyxxQkFBcUI7Z0JBSWhDLHFCQUFxQjtzQkFEcEIsU0FBUzt1QkFBQyx1QkFBdUI7O0FBNkhwQyxXQUFpQixlQUFlO0lBT2pCLHFCQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBVSxDQUFDO0FBRTdELENBQUMsRUFUZ0IsZUFBZSxLQUFmLGVBQWUsUUFTL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBza2lwLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IElucHV0TGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi8uLi9pbnB1dC1sYWJlbC9pbnB1dC1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUml2U2VsZWN0IH0gZnJvbSAnLi4vc3RhdGUnO1xuaW1wb3J0IHsgQ2FsbG91dENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL292ZXJsYXkvY2FsbG91dC9jYWxsb3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBkZWZhdWx0U2VsZWN0QWxsb3dlZENhbGxvdXRQb3NpdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9vdmVybGF5L2NhbGxvdXQvc2VsZWN0LWNhbGxvdXQtZGVmYXVsdHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQ8TyBleHRlbmRzIFJpdlNlbGVjdC5CYXNlT3B0aW9uPlxuICBleHRlbmRzIElucHV0TGFiZWxDb21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBASW5wdXQoKVxuICBtYW5hZ2VyPzogUml2U2VsZWN0Lk1hbmFnZXI8Tz47XG5cbiAgQElucHV0KClcbiAgc2l6ZTogU2VsZWN0Q29tcG9uZW50LlNpemUgPSAnbWVkaXVtJztcblxuICBASW5wdXQoKVxuICBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGxvY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBTdHJldGNoZXMgYSBjdXN0b20gdHJpZ2dlciB0byBmaWxsIHRoZSB3aWR0aCBvZiB0aGlzIGNvbXBvbmVudC4gKi9cbiAgQElucHV0KClcbiAgZ3JvdzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGFsbG93ZWRDYWxsb3V0UG9zaXRpb25zOiBDYWxsb3V0Q29tcG9uZW50LkFuY2hvcmVkUG9zaXRpb25bXSA9IFtcbiAgICAuLi5kZWZhdWx0U2VsZWN0QWxsb3dlZENhbGxvdXRQb3NpdGlvbnMsXG4gIF07XG5cbiAgQElucHV0KClcbiAgcHJlZmVycmVkQ2FsbG91dFBvc2l0aW9uOiBDYWxsb3V0Q29tcG9uZW50LkFuY2hvcmVkUG9zaXRpb24gPSAnYm90dG9tLXJpZ2h0JztcblxuICBAQ29udGVudENoaWxkKCd0cmlnZ2VyJylcbiAgdHJpZ2dlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyBzdGF0ZTogUml2U2VsZWN0LkZ1bGxTdGF0ZTxPPiB9PjtcblxuICBAQ29udGVudENoaWxkKCdjdXN0b21TZWxlY3RlZE9wdGlvbnMnKVxuICBjdXN0b21TZWxlY3RlZE9wdGlvbnNUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHtcbiAgICBzZWxlY3RlZDogUml2U2VsZWN0Lk9wdGlvblNldDxPPjtcbiAgfT47XG5cbiAgQENvbnRlbnRDaGlsZCgnb3B0aW9uJylcbiAgb3B0aW9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx7IG5vZGU6IFJpdlNlbGVjdC5GdWxsT3B0aW9uPE8+IH0+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2hlYWRlcicpXG4gIGhlYWRlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyBzdGF0ZTogUml2U2VsZWN0LkZ1bGxTdGF0ZTxPPiB9PjtcblxuICBAQ29udGVudENoaWxkKCdmb290ZXInKVxuICBmb290ZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgc3RhdGU6IFJpdlNlbGVjdC5GdWxsU3RhdGU8Tz4gfT47XG5cbiAgQFZpZXdDaGlsZCgnY3VzdG9tVHJpZ2dlckJ1dHRvbicpXG4gIGN1c3RvbVRyaWdnZXJCdXR0b24/OiBFbGVtZW50UmVmO1xuXG4gIEBWaWV3Q2hpbGQoJ3N0YW5kYXJkVHJpZ2dlckJ1dHRvbicpXG4gIHN0YW5kYXJkVHJpZ2dlckJ1dHRvbj86IEVsZW1lbnRSZWY7XG5cbiAgb3JkZXJCeU1hbmFnZXI/OiBSaXZTZWxlY3QuTWFuYWdlcjxTZWxlY3RDb21wb25lbnQuT3JkZXJCeU9wdGlvbj47XG4gIHByaXZhdGUgb3JkZXJCeVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLm9yZGVyQnlNYW5hZ2VyID0gUml2U2VsZWN0LmNyZWF0ZUluTWVtb3J5TWFuYWdlcihcbiAgICAgICgpID0+IHRoaXMub3JkZXJCeU9wdGlvbkdyb3VwcyxcbiAgICAgIHtcbiAgICAgICAgc2hvd1NpbmdsZVNlbGVjdGVkOiB0cnVlLFxuICAgICAgICBpbml0aWFsU3RhdGU6IHtcbiAgICAgICAgICBzZWxlY3Rpb246IHtcbiAgICAgICAgICAgIHNlbGVjdGVkOiBuZXcgUml2U2VsZWN0Lk9wdGlvblNldChbXG4gICAgICAgICAgICAgIHRoaXMub3JkZXJCeU9wdGlvbkdyb3Vwc1swXS5vcHRpb25zLmZpbmQoXG4gICAgICAgICAgICAgICAgKHsgaWQgfSkgPT4gaWQgPT09ICd0aXRsZScsXG4gICAgICAgICAgICAgICkhLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIHRoaXMub3JkZXJCeVN1YnNjcmlwdGlvbiA9IHRoaXMub3JkZXJCeU1hbmFnZXIuc3RhdGVcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocyA9PiBbLi4ucy5zZWxlY3Rpb24uc2VsZWN0ZWRdWzBdPy5pZCA/PyBudWxsKSxcbiAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKHByZXYsIGN1cnJlbnQpID0+IHByZXYgPT09IGN1cnJlbnQpLFxuICAgICAgICBza2lwKDEpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZShvcmRlciA9PiB7XG4gICAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgICB0eXBlOiAnb3JkZXJDaGFuZ2UnLFxuICAgICAgICAgIHBheWxvYWQ6IG9yZGVyLFxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5vcmRlckJ5U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgZ2V0VHJpZ2dlcigpOiBFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY3VzdG9tVHJpZ2dlckJ1dHRvbj8ubmF0aXZlRWxlbWVudCA/P1xuICAgICAgdGhpcy5zdGFuZGFyZFRyaWdnZXJCdXR0b24/Lm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuICB9XG5cbiAgYWxsb3dlZE9wZW4oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmxvY2tlZCkge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnb3BlbkNoYW5nZScsXG4gICAgICAgIG9wZW46IHRydWUsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDaGFuZ2UobXVsdGk6IGJvb2xlYW4sIGlkOiBPWydpZCddKSB7XG4gICAgaWYgKG11bHRpKSB7XG4gICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICAgIHR5cGU6ICd0b2dnbGVPcHRpb25TZWxlY3RlZCcsXG4gICAgICAgIGlkLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgdHlwZTogJ3NldFNlbGVjdGVkT3B0aW9uJyxcbiAgICAgICAgaWQsXG4gICAgICB9KTtcbiAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgdHlwZTogJ29wZW5DaGFuZ2UnLFxuICAgICAgICBvcGVuOiBmYWxzZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlYWRvbmx5IG9yZGVyQnlPcHRpb25Hcm91cHM6IFJpdlNlbGVjdC5PcHRpb25Hcm91cDxTZWxlY3RDb21wb25lbnQuT3JkZXJCeU9wdGlvbj5bXSA9XG4gICAgW1xuICAgICAge1xuICAgICAgICBvcHRpb25zOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICd0aXRsZScsXG4gICAgICAgICAgICB0aXRsZTogJ0EtWicsXG4gICAgICAgICAgICBoZWxwOiAnU29ydHMgdmFsdWVzIGluIGFscGhhbnVtZXJpYyBvcmRlciAoQS1aLCAwLTkpJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiAnY291bnQnLFxuICAgICAgICAgICAgdGl0bGU6ICdWb2x1bWUnLFxuICAgICAgICAgICAgaGVscDogJ1NvcnRzIHZhbHVlcyBieSBjb3VudCAoaGlnaGVzdCB0byBsb3dlc3QpJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdO1xuXG4gIGdldFNlbGVjdGVkT3JkZXJCeU9wdGlvbihcbiAgICBzdGF0ZTogUml2U2VsZWN0LkZ1bGxTdGF0ZTxPPixcbiAgKTogU2VsZWN0Q29tcG9uZW50Lk9yZGVyQnlPcHRpb24gfCBudWxsIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5vcmRlckJ5T3B0aW9uR3JvdXBzWzBdLm9wdGlvbnMuZmluZChcbiAgICAgICAgKHsgaWQgfSkgPT4gaWQgPT09IHN0YXRlLnF1ZXJ5Lm9yZGVyLFxuICAgICAgKSA/PyBudWxsXG4gICAgKTtcbiAgfVxuXG4gIHNlYXJjaENoYW5nZSA9IGRlYm91bmNlKChxdWVyeTogc3RyaW5nKSA9PiB7XG4gICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHsgdHlwZTogJ3NlYXJjaENoYW5nZScsIHBheWxvYWQ6IHF1ZXJ5IH0pO1xuICB9LCA1MDApO1xuXG4gIC8vIHRyYWNrQnlTeW1ib2wgZm9yIG91ciBvcHRpb24gZ3JvdXBzIHRoYXQgZG9uJ3QgaGF2ZSBhIGdvb2QgaWRlbnRpdHkuXG4gIC8vIHRoaXMgbGF6aWx5IGF0dGFjaGVzIGEgSmF2YXNjcmlwdCBzeW1ib2wgdG8gYW55IHZhbHVlIGFuZCByZXR1cm5zIGl0LlxuICAvLyBTeW1ib2xzIGFyZSBndWFyYW50ZWVkIHVuaXF1ZSBhbmQgdGhleSBkbyBub3QgZXhpc3QgaW4gSlNPTiwgc28gdGhleVxuICAvLyBkbyBub3QgaW50ZXJmZXJlIHdpdGggYW55IHR5cGVzIG9yIHNlcmlhbGl6YXRpb24gZm9yIEFQSSBjYWxscy4gVGhlXG4gIC8vIG9ubHkgcHVycG9zZSB0aGV5IHNlcnZlIGlzIHRvIHRlbGwgbmdGb3Igd2hpY2ggb2JqZWN0cyBhcmUgc3RpbGwgaW5cbiAgLy8gdGhlIGFycmF5LiBOb3RlOiB0aGlzIGlzIG9ubHkgc2FmZSBvbiBhbiBhcnJheSBvZiBvYmplY3RzLlxuICB0cmFja0J5U3ltYm9sKF86IG51bWJlciwgdmFsdWU6IGFueSkge1xuICAgIGlmICghdmFsdWUuX3RyYWNraW5nU3ltYm9sKSB7XG4gICAgICB2YWx1ZS5fdHJhY2tpbmdTeW1ib2wgPSBTeW1ib2woKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLl90cmFja2luZ1N5bWJvbDtcbiAgfVxuXG4gIHRyYWNrQnlPcHRpb24oXzogbnVtYmVyLCBvcHRpb246IFJpdlNlbGVjdC5GdWxsT3B0aW9uPE8+KTogc3RyaW5nIHwgbnVtYmVyIHtcbiAgICByZXR1cm4gb3B0aW9uLmlkO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgU2VsZWN0Q29tcG9uZW50IHtcbiAgZXhwb3J0IHR5cGUgT3JkZXJCeU9wdGlvbiA9IHtcbiAgICBpZDogUml2U2VsZWN0Lk9yZGVyQnk7XG4gICAgdGl0bGU6IHN0cmluZztcbiAgICBoZWxwOiBzdHJpbmc7XG4gIH07XG5cbiAgZXhwb3J0IGNvbnN0IFNpemVzID0gWydzbWFsbCcsICdtZWRpdW0nLCAnbGFyZ2UnXSBhcyBjb25zdDtcbiAgZXhwb3J0IHR5cGUgU2l6ZSA9ICh0eXBlb2YgU2l6ZXMpW251bWJlcl07XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibWFuYWdlcj8uc3RhdGUgfCBhc3luYzsgbGV0IHNcIj5cbiAgPG5nLXRlbXBsYXRlICNjb250ZW50PlxuICAgIDxyaXYtbG9hZGluZy1jb3ZlciBbbG9hZGluZ109XCJzLmxvYWQubG9hZGluZ1wiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImNvbnRlbnQtYm9keVwiXG4gICAgICAgIFtjbGFzcy5pbmxpbmVdPVwicy5kaXNwbGF5LmlubGluZVwiXG4gICAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgICAnbWF4LWhlaWdodCc6IHMuZGlzcGxheS5tYXhIZWlnaHQsXG4gICAgICAgICAgJ21heC13aWR0aCc6IHMuZGlzcGxheS5tYXhXaWR0aCxcbiAgICAgICAgICAnbWluLWhlaWdodCc6IHMuZGlzcGxheS5taW5IZWlnaHQsXG4gICAgICAgICAgJ21pbi13aWR0aCc6IHMuZGlzcGxheS5taW5XaWR0aFxuICAgICAgICB9XCJcbiAgICAgID5cbiAgICAgICAgPGhlYWRlciAqbmdJZj1cImhlYWRlclRlbXBsYXRlXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoZWFkZXJUZW1wbGF0ZTsgY29udGV4dDogeyBzdGF0ZTogcyB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvaGVhZGVyPlxuICAgICAgICA8cml2LXNlYXJjaFxuICAgICAgICAgICpuZ0lmPVwicy5xdWVyeS5zaG93U2VhcmNoXCJcbiAgICAgICAgICBbdmFsdWVdPVwicy5xdWVyeS5zZWFyY2hcIlxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzLnF1ZXJ5LnNlYXJjaFBsYWNlaG9sZGVyXCJcbiAgICAgICAgICBbYXV0b0ZvY3VzXT1cInRydWVcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZWFyY2hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgID48L3Jpdi1zZWFyY2g+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJzLnF1ZXJ5LnNob3dPcmRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwib3JkZXItYnlcIj5Tb3J0IGJ5Ojwvc3Bhbj5cbiAgICAgICAgICA8cml2LXNlbGVjdCBbbWFuYWdlcl09XCJvcmRlckJ5TWFuYWdlclwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICN0cmlnZ2VyIGxldC1zdGF0ZT1cInN0YXRlXCI+XG4gICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgcml2QnV0dG9uXG4gICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwiJ2dob3N0J1wiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwic3RhdGUuZGlzcGxheS5vcGVuID8gJ0NoZXZyb25VcCcgOiAnQ2hldnJvbkRvd24nXCJcbiAgICAgICAgICAgICAgICBbaWNvblBvc2l0aW9uXT1cIidsYXN0J1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBnZXRTZWxlY3RlZE9yZGVyQnlPcHRpb24ocyk/LnRpdGxlIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9yaXYtc2VsZWN0PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm9wdGlvbnNcIj5cbiAgICAgICAgICA8cml2LXNlbGVjdC1ub2RlXG4gICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICBzLnNlbGVjdGlvbi5hbGxvd011bHRpU2VsZWN0ICYmXG4gICAgICAgICAgICAgIHMuc2VsZWN0aW9uLmFsbG93U2VsZWN0QWxsICYmXG4gICAgICAgICAgICAgICFzLmRpc3BsYXkuemVyb1N0YXRlTWVzc2FnZVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIFttb2RlXT1cIidtdWx0aSdcIlxuICAgICAgICAgICAgW25vZGVdPVwie1xuICAgICAgICAgICAgICBpZDogJ19fTk9PUF9fJyxcbiAgICAgICAgICAgICAgdGl0bGU6IHMucXVlcnkuc2VhcmNoID8gJ1NlbGVjdCBhbGwgbWF0Y2hpbmcnIDogJ1NlbGVjdCBhbGwnLFxuICAgICAgICAgICAgICBzZWxlY3RlZDogcy5zZWxlY3Rpb24udmlzaWJsZVNlbGVjdGlvblN0YXRlLFxuICAgICAgICAgICAgICBzZWxlY3RhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICBleHBhbmRhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgZXhwYW5kZWQ6IGZhbHNlXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIChzZWxlY3RDaGFuZ2UpPVwiXG4gICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAndmlzaWJsZVNlbGVjdGVkQ2hhbmdlJyB9KVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+PC9yaXYtc2VsZWN0LW5vZGU+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IGdyb3VwIG9mIHMuZnVsbE9wdGlvbkdyb3VwczsgdHJhY2tCeTogdHJhY2tCeVN5bWJvbFwiXG4gICAgICAgICAgICBjbGFzcz1cImdyb3VwXCJcbiAgICAgICAgICAgIFtjbGFzcy5kaXZpZGVyXT1cInMuZGlzcGxheS5kaXZpZGVyc1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJncm91cC5oZWFkZXI7IGxldCBoZWFkZXJcIiBjbGFzcz1cImhlYWRlclwiPlxuICAgICAgICAgICAgICB7eyBoZWFkZXIgfX1cbiAgICAgICAgICAgICAgPHJpdi1oZWxwXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJncm91cC5oZWxwOyBsZXQgaGVscFwiXG4gICAgICAgICAgICAgICAgW2hlbHBdPVwiaGVscFwiXG4gICAgICAgICAgICAgICAgW3NpemVdPVwiMTJcIlxuICAgICAgICAgICAgICA+PC9yaXYtaGVscD5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBncm91cC5vcHRpb25zOyB0cmFja0J5OiB0cmFja0J5T3B0aW9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvblRlbXBsYXRlOyBlbHNlIHN0YW5kYXJkVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJvcHRpb25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBub2RlOiBvcHRpb24gfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzdGFuZGFyZFRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDxyaXYtc2VsZWN0LW5vZGVcbiAgICAgICAgICAgICAgICAgIFttb2RlXT1cInMuc2VsZWN0aW9uLmFsbG93TXVsdGlTZWxlY3QgPyAnbXVsdGknIDogJ3NpbmdsZSdcIlxuICAgICAgICAgICAgICAgICAgW25vZGVdPVwib3B0aW9uXCJcbiAgICAgICAgICAgICAgICAgIFtzaG93U2luZ2xlU2VsZWN0ZWRdPVwicy5kaXNwbGF5LnNob3dTaW5nbGVTZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgICAoc2VsZWN0Q2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RDaGFuZ2Uocy5zZWxlY3Rpb24uYWxsb3dNdWx0aVNlbGVjdCwgJGV2ZW50KVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgIChleHBhbmRDaGFuZ2UpPVwiXG4gICAgICAgICAgICAgICAgICAgIG1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoe1xuICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0b2dnbGVPcHRpb25FeHBhbmRlZCcsXG4gICAgICAgICAgICAgICAgICAgICAgaWQ6ICRldmVudFxuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+PC9yaXYtc2VsZWN0LW5vZGU+XG4gICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCJzLmRpc3BsYXkuZGlzcGxheUxpbWl0TWVzc2FnZTsgbGV0IG1lc3NhZ2VcIlxuICAgICAgICAgICAgY2xhc3M9XCJkaXNwbGF5LWxpbWl0XCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBtZXNzYWdlIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxyaXYtemVyby1zdGF0ZVxuICAgICAgICAgICAgKm5nSWY9XCJzLmRpc3BsYXkuemVyb1N0YXRlTWVzc2FnZTsgbGV0IG1lc3NhZ2VcIlxuICAgICAgICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXG4gICAgICAgICAgPjwvcml2LXplcm8tc3RhdGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8Zm9vdGVyICpuZ0lmPVwiZm9vdGVyVGVtcGxhdGVcIiBjbGFzcz1cImN1c3RvbS1mb290ZXJcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlclRlbXBsYXRlOyBjb250ZXh0OiB7IHN0YXRlOiBzIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9mb290ZXI+XG4gICAgICA8L2Rpdj5cbiAgICA8L3Jpdi1sb2FkaW5nLWNvdmVyPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcy5kaXNwbGF5LmlubGluZTsgZWxzZSBjb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRyaWdnZXJUZW1wbGF0ZTsgZWxzZSBzdGFuZGFyZFRyaWdnZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgI2N1c3RvbVRyaWdnZXJCdXR0b25cbiAgICAgICAgKGNsaWNrKT1cImFsbG93ZWRPcGVuKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9ja2VkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2NrZWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiY3VzdG9tLXRyaWdnZXItYnV0dG9uXCJcbiAgICAgICAgW2NsYXNzLmdyb3ddPVwiZ3Jvd1wiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cmlnZ2VyVGVtcGxhdGVcIlxuICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHN0YXRlOiBzIH1cIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctdGVtcGxhdGUgI3N0YW5kYXJkVHJpZ2dlcj5cbiAgICAgIDxyaXYtaW5wdXQtbGFiZWxcbiAgICAgICAgW2xhYmVsXT1cImxhYmVsXCJcbiAgICAgICAgW2hlbHBdPVwiaGVscFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICAgIFtzdGF0ZV09XCJzdGF0ZVwiXG4gICAgICAgIFtlcnJvck1lc3NhZ2VdPVwiZXJyb3JNZXNzYWdlXCJcbiAgICAgICAgW2xhYmVsQWN0aW9uVGV4dF09XCJsYWJlbEFjdGlvblRleHRcIlxuICAgICAgICAobGFiZWxBY3Rpb24pPVwibGFiZWxBY3Rpb24uZW1pdCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICNzdGFuZGFyZFRyaWdnZXJCdXR0b25cbiAgICAgICAgICBjbGFzcz1cInRyaWdnZXJcIlxuICAgICAgICAgIFtjbGFzcy5zbWFsbF09XCJzaXplID09PSAnc21hbGwnXCJcbiAgICAgICAgICBbY2xhc3MubGFyZ2VdPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiXG4gICAgICAgICAgW2NsYXNzLndhcm5pbmddPVwic3RhdGUgPT09ICd3YXJuaW5nJ1wiXG4gICAgICAgICAgW2NsYXNzLmVycm9yXT1cInN0YXRlID09PSAnZXJyb3InXCJcbiAgICAgICAgICAoY2xpY2spPVwiYWxsb3dlZE9wZW4oKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvY2tlZFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2NrZWQgPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0lmPVwicy5zZWxlY3Rpb24uc2VsZWN0ZWQuc2l6ZTsgZWxzZSBwbGFjZWhvbGRlclZhbHVlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgICAgY3VzdG9tU2VsZWN0ZWRPcHRpb25zVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgZWxzZSBzdGFuZGFyZFNlbGVjdGVkT3B0aW9uc1RlbXBsYXRlXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjdXN0b21TZWxlY3RlZE9wdGlvbnNUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzZWxlY3RlZDogcy5zZWxlY3Rpb24uc2VsZWN0ZWQgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjc3RhbmRhcmRTZWxlY3RlZE9wdGlvbnNUZW1wbGF0ZT5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7XG4gICAgICAgICAgICAgICAgcy5kaXNwbGF5LmZvcm1hdHRlZFNlbGVjdGVkT3B0aW9uc1xuICAgICAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJzLmRpc3BsYXkucGlsbENvdW50ID4gMVwiIGNsYXNzPVwic2VsZWN0ZWQtY291bnRcIj5cbiAgICAgICAgICAgICAgICB7eyBzLmRpc3BsYXkucGlsbENvdW50IHwgcml2TnVtYmVyIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlclZhbHVlPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZSBwbGFjZWhvbGRlclwiPnt7IHMuZGlzcGxheS5wbGFjZWhvbGRlciB9fTwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2hldnJvblwiPlxuICAgICAgICAgICAgPHJpdi1pY29uXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWxvY2tlZFwiXG4gICAgICAgICAgICAgIFtuYW1lXT1cInMuZGlzcGxheS5vcGVuID8gJ0NoZXZyb25VcCcgOiAnQ2hldnJvbkRvd24nXCJcbiAgICAgICAgICAgICAgW3NpemVdPVwiMjBcIlxuICAgICAgICAgICAgPjwvcml2LWljb24+XG4gICAgICAgICAgICA8cml2LWljb24gKm5nSWY9XCJsb2NrZWRcIiBbbmFtZV09XCInTG9jaydcIiBbc2l6ZV09XCIyMFwiPjwvcml2LWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvcml2LWlucHV0LWxhYmVsPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicy5kaXNwbGF5Lm9wZW5cIj5cbiAgICAgIDxyaXYtY2FsbG91dFxuICAgICAgICAqcml2LW92ZXJsYXlcbiAgICAgICAgW2FuY2hvcl09XCJnZXRUcmlnZ2VyKClcIlxuICAgICAgICBbdGhlbWVdPVwiJ2xpZ2h0J1wiXG4gICAgICAgIFtzaG93Q2FyZXRdPVwiZmFsc2VcIlxuICAgICAgICBbYWxsb3dlZFBvc2l0aW9uc109XCJhbGxvd2VkQ2FsbG91dFBvc2l0aW9uc1wiXG4gICAgICAgIFtwcmVmZXJyZWRQb3NpdGlvbl09XCJwcmVmZXJyZWRDYWxsb3V0UG9zaXRpb25cIlxuICAgICAgICAoY2xvc2UpPVwibWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7IHR5cGU6ICdvcGVuQ2hhbmdlJywgb3BlbjogZmFsc2UgfSlcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvcml2LWNhbGxvdXQ+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
171
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2lucHV0L3NlbGVjdC9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2lucHV0L3NlbGVjdC9zZWxlY3Qvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFFWixLQUFLLEVBSUwsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFckMsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sa0RBQWtELENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBUXhHLE1BQU0sT0FBTyxlQUNYLFNBQVEsbUJBQW1CO0lBUDdCOztRQWNFLFNBQUksR0FBeUIsUUFBUSxDQUFDO1FBR3RDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFHMUIsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUV4QixzRUFBc0U7UUFFdEUsU0FBSSxHQUFZLEtBQUssQ0FBQztRQUd0Qiw0QkFBdUIsR0FBd0M7WUFDN0QsR0FBRyxvQ0FBb0M7U0FDeEMsQ0FBQztRQUdGLDZCQUF3QixHQUFzQyxjQUFjLENBQUM7UUF3R3BFLHdCQUFtQixHQUMxQjtZQUNFO2dCQUNFLE9BQU8sRUFBRTtvQkFDUDt3QkFDRSxFQUFFLEVBQUUsT0FBTzt3QkFD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QkFBQyx1QkFBdUI7Z0JBTXJDLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxRQUFRO2dCQVF0QixtQkFBbUI7c0JBRGxCLFlBQVk7dUJBQUMsYUFBYTtnQkFJM0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLFFBQVE7Z0JBSXRCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxRQUFRO2dCQUl0QixtQkFBbUI7c0JBRGxCLFNBQVM7dUJBQUMscUJBQXFCO2dCQUloQyxxQkFBcUI7c0JBRHBCLFNBQVM7dUJBQUMsdUJBQXVCOztBQTZIcEMsV0FBaUIsZUFBZTtJQU9qQixxQkFBSyxHQUFHLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQVUsQ0FBQztBQUU3RCxDQUFDLEVBVGdCLGVBQWUsS0FBZixlQUFlLFFBUy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVib3VuY2UgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2tpcCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBJbnB1dExhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaW5wdXQtbGFiZWwvaW5wdXQtbGFiZWwuY29tcG9uZW50JztcbmltcG9ydCB7IFJpdlNlbGVjdCB9IGZyb20gJy4uL3N0YXRlJztcbmltcG9ydCB7IENhbGxvdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9vdmVybGF5L2NhbGxvdXQvY2FsbG91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgZGVmYXVsdFNlbGVjdEFsbG93ZWRDYWxsb3V0UG9zaXRpb25zIH0gZnJvbSAnLi4vLi4vLi4vb3ZlcmxheS9jYWxsb3V0L3NlbGVjdC1jYWxsb3V0LWRlZmF1bHRzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PE8gZXh0ZW5kcyBSaXZTZWxlY3QuQmFzZU9wdGlvbj5cbiAgZXh0ZW5kcyBJbnB1dExhYmVsQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KClcbiAgbWFuYWdlcj86IFJpdlNlbGVjdC5NYW5hZ2VyPE8+O1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IFNlbGVjdENvbXBvbmVudC5TaXplID0gJ21lZGl1bSc7XG5cbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBsb2NrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogU3RyZXRjaGVzIGEgY3VzdG9tIHRyaWdnZXIgdG8gZmlsbCB0aGUgd2lkdGggb2YgdGhpcyBjb21wb25lbnQuICovXG4gIEBJbnB1dCgpXG4gIGdyb3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBhbGxvd2VkQ2FsbG91dFBvc2l0aW9uczogQ2FsbG91dENvbXBvbmVudC5BbmNob3JlZFBvc2l0aW9uW10gPSBbXG4gICAgLi4uZGVmYXVsdFNlbGVjdEFsbG93ZWRDYWxsb3V0UG9zaXRpb25zLFxuICBdO1xuXG4gIEBJbnB1dCgpXG4gIHByZWZlcnJlZENhbGxvdXRQb3NpdGlvbjogQ2FsbG91dENvbXBvbmVudC5BbmNob3JlZFBvc2l0aW9uID0gJ2JvdHRvbS1yaWdodCc7XG5cbiAgQENvbnRlbnRDaGlsZCgndHJpZ2dlcicpXG4gIHRyaWdnZXJUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgc3RhdGU6IFJpdlNlbGVjdC5GdWxsU3RhdGU8Tz4gfT47XG5cbiAgQENvbnRlbnRDaGlsZCgnY3VzdG9tU2VsZWN0ZWRPcHRpb25zJylcbiAgY3VzdG9tU2VsZWN0ZWRPcHRpb25zVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx7XG4gICAgc2VsZWN0ZWQ6IFJpdlNlbGVjdC5PcHRpb25TZXQ8Tz47XG4gIH0+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvbicpXG4gIG9wdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyBub2RlOiBSaXZTZWxlY3QuRnVsbE9wdGlvbjxPPiB9PjtcblxuICAvKipcbiAgICogUmVwbGFjZXMgb25seSBhbiBvcHRpb24ncyB0aXRsZSwga2VlcGluZyB0aGUgc3RhbmRhcmQgcm93J3MgY2hlY2tib3gsXG4gICAqIGNvdW50LCBoZWxwLCBhbmQgZXhwYW5kIGNvbnRyb2xzLiBJZ25vcmVkIHdoZW4gYCNvcHRpb25gIGlzIHNldC5cbiAgICovXG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvblRpdGxlJylcbiAgb3B0aW9uVGl0bGVUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgbm9kZTogUml2U2VsZWN0LkZ1bGxPcHRpb248Tz4gfT47XG5cbiAgQENvbnRlbnRDaGlsZCgnaGVhZGVyJylcbiAgaGVhZGVyVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx7IHN0YXRlOiBSaXZTZWxlY3QuRnVsbFN0YXRlPE8+IH0+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2Zvb3RlcicpXG4gIGZvb3RlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyBzdGF0ZTogUml2U2VsZWN0LkZ1bGxTdGF0ZTxPPiB9PjtcblxuICBAVmlld0NoaWxkKCdjdXN0b21UcmlnZ2VyQnV0dG9uJylcbiAgY3VzdG9tVHJpZ2dlckJ1dHRvbj86IEVsZW1lbnRSZWY7XG5cbiAgQFZpZXdDaGlsZCgnc3RhbmRhcmRUcmlnZ2VyQnV0dG9uJylcbiAgc3RhbmRhcmRUcmlnZ2VyQnV0dG9uPzogRWxlbWVudFJlZjtcblxuICBvcmRlckJ5TWFuYWdlcj86IFJpdlNlbGVjdC5NYW5hZ2VyPFNlbGVjdENvbXBvbmVudC5PcmRlckJ5T3B0aW9uPjtcbiAgcHJpdmF0ZSBvcmRlckJ5U3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3JkZXJCeU1hbmFnZXIgPSBSaXZTZWxlY3QuY3JlYXRlSW5NZW1vcnlNYW5hZ2VyKFxuICAgICAgKCkgPT4gdGhpcy5vcmRlckJ5T3B0aW9uR3JvdXBzLFxuICAgICAge1xuICAgICAgICBzaG93U2luZ2xlU2VsZWN0ZWQ6IHRydWUsXG4gICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgIHNlbGVjdGlvbjoge1xuICAgICAgICAgICAgc2VsZWN0ZWQ6IG5ldyBSaXZTZWxlY3QuT3B0aW9uU2V0KFtcbiAgICAgICAgICAgICAgdGhpcy5vcmRlckJ5T3B0aW9uR3JvdXBzWzBdLm9wdGlvbnMuZmluZChcbiAgICAgICAgICAgICAgICAoeyBpZCB9KSA9PiBpZCA9PT0gJ3RpdGxlJyxcbiAgICAgICAgICAgICAgKSEsXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgdGhpcy5vcmRlckJ5U3Vic2NyaXB0aW9uID0gdGhpcy5vcmRlckJ5TWFuYWdlci5zdGF0ZVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcChzID0+IFsuLi5zLnNlbGVjdGlvbi5zZWxlY3RlZF1bMF0/LmlkID8/IG51bGwpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgocHJldiwgY3VycmVudCkgPT4gcHJldiA9PT0gY3VycmVudCksXG4gICAgICAgIHNraXAoMSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKG9yZGVyID0+IHtcbiAgICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICAgIHR5cGU6ICdvcmRlckNoYW5nZScsXG4gICAgICAgICAgcGF5bG9hZDogb3JkZXIsXG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLm9yZGVyQnlTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBnZXRUcmlnZ2VyKCk6IEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5jdXN0b21UcmlnZ2VyQnV0dG9uPy5uYXRpdmVFbGVtZW50ID8/XG4gICAgICB0aGlzLnN0YW5kYXJkVHJpZ2dlckJ1dHRvbj8ubmF0aXZlRWxlbWVudFxuICAgICk7XG4gIH1cblxuICBhbGxvd2VkT3BlbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMubG9ja2VkKSB7XG4gICAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnMubmV4dCh7XG4gICAgICAgIHR5cGU6ICdvcGVuQ2hhbmdlJyxcbiAgICAgICAgb3BlbjogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdENoYW5nZShtdWx0aTogYm9vbGVhbiwgaWQ6IE9bJ2lkJ10pIHtcbiAgICBpZiAobXVsdGkpIHtcbiAgICAgIHRoaXMubWFuYWdlcj8uYWN0aW9ucy5uZXh0KHtcbiAgICAgICAgdHlwZTogJ3RvZ2dsZU9wdGlvblNlbGVjdGVkJyxcbiAgICAgICAgaWQsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnc2V0U2VsZWN0ZWRPcHRpb24nLFxuICAgICAgICBpZCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5tYW5hZ2VyPy5hY3Rpb25zLm5leHQoe1xuICAgICAgICB0eXBlOiAnb3BlbkNoYW5nZScsXG4gICAgICAgIG9wZW46IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcmVhZG9ubHkgb3JkZXJCeU9wdGlvbkdyb3VwczogUml2U2VsZWN0Lk9wdGlvbkdyb3VwPFNlbGVjdENvbXBvbmVudC5PcmRlckJ5T3B0aW9uPltdID1cbiAgICBbXG4gICAgICB7XG4gICAgICAgIG9wdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpZDogJ3RpdGxlJyxcbiAgICAgICAgICAgIHRpdGxlOiAnQS1aJyxcbiAgICAgICAgICAgIGhlbHA6ICdTb3J0cyB2YWx1ZXMgaW4gYWxwaGFudW1lcmljIG9yZGVyIChBLVosIDAtOSknLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6ICdjb3VudCcsXG4gICAgICAgICAgICB0aXRsZTogJ1ZvbHVtZScsXG4gICAgICAgICAgICBoZWxwOiAnU29ydHMgdmFsdWVzIGJ5IGNvdW50IChoaWdoZXN0IHRvIGxvd2VzdCknLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIF07XG5cbiAgZ2V0U2VsZWN0ZWRPcmRlckJ5T3B0aW9uKFxuICAgIHN0YXRlOiBSaXZTZWxlY3QuRnVsbFN0YXRlPE8+LFxuICApOiBTZWxlY3RDb21wb25lbnQuT3JkZXJCeU9wdGlvbiB8IG51bGwge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLm9yZGVyQnlPcHRpb25Hcm91cHNbMF0ub3B0aW9ucy5maW5kKFxuICAgICAgICAoeyBpZCB9KSA9PiBpZCA9PT0gc3RhdGUucXVlcnkub3JkZXIsXG4gICAgICApID8/IG51bGxcbiAgICApO1xuICB9XG5cbiAgc2VhcmNoQ2hhbmdlID0gZGVib3VuY2UoKHF1ZXJ5OiBzdHJpbmcpID0+IHtcbiAgICB0aGlzLm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnc2VhcmNoQ2hhbmdlJywgcGF5bG9hZDogcXVlcnkgfSk7XG4gIH0sIDUwMCk7XG5cbiAgLy8gdHJhY2tCeVN5bWJvbCBmb3Igb3VyIG9wdGlvbiBncm91cHMgdGhhdCBkb24ndCBoYXZlIGEgZ29vZCBpZGVudGl0eS5cbiAgLy8gdGhpcyBsYXppbHkgYXR0YWNoZXMgYSBKYXZhc2NyaXB0IHN5bWJvbCB0byBhbnkgdmFsdWUgYW5kIHJldHVybnMgaXQuXG4gIC8vIFN5bWJvbHMgYXJlIGd1YXJhbnRlZWQgdW5pcXVlIGFuZCB0aGV5IGRvIG5vdCBleGlzdCBpbiBKU09OLCBzbyB0aGV5XG4gIC8vIGRvIG5vdCBpbnRlcmZlcmUgd2l0aCBhbnkgdHlwZXMgb3Igc2VyaWFsaXphdGlvbiBmb3IgQVBJIGNhbGxzLiBUaGVcbiAgLy8gb25seSBwdXJwb3NlIHRoZXkgc2VydmUgaXMgdG8gdGVsbCBuZ0ZvciB3aGljaCBvYmplY3RzIGFyZSBzdGlsbCBpblxuICAvLyB0aGUgYXJyYXkuIE5vdGU6IHRoaXMgaXMgb25seSBzYWZlIG9uIGFuIGFycmF5IG9mIG9iamVjdHMuXG4gIHRyYWNrQnlTeW1ib2woXzogbnVtYmVyLCB2YWx1ZTogYW55KSB7XG4gICAgaWYgKCF2YWx1ZS5fdHJhY2tpbmdTeW1ib2wpIHtcbiAgICAgIHZhbHVlLl90cmFja2luZ1N5bWJvbCA9IFN5bWJvbCgpO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUuX3RyYWNraW5nU3ltYm9sO1xuICB9XG5cbiAgdHJhY2tCeU9wdGlvbihfOiBudW1iZXIsIG9wdGlvbjogUml2U2VsZWN0LkZ1bGxPcHRpb248Tz4pOiBzdHJpbmcgfCBudW1iZXIge1xuICAgIHJldHVybiBvcHRpb24uaWQ7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBTZWxlY3RDb21wb25lbnQge1xuICBleHBvcnQgdHlwZSBPcmRlckJ5T3B0aW9uID0ge1xuICAgIGlkOiBSaXZTZWxlY3QuT3JkZXJCeTtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGhlbHA6IHN0cmluZztcbiAgfTtcblxuICBleHBvcnQgY29uc3QgU2l6ZXMgPSBbJ3NtYWxsJywgJ21lZGl1bScsICdsYXJnZSddIGFzIGNvbnN0O1xuICBleHBvcnQgdHlwZSBTaXplID0gKHR5cGVvZiBTaXplcylbbnVtYmVyXTtcbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJtYW5hZ2VyPy5zdGF0ZSB8IGFzeW5jOyBsZXQgc1wiPlxuICA8bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPHJpdi1sb2FkaW5nLWNvdmVyIFtsb2FkaW5nXT1cInMubG9hZC5sb2FkaW5nXCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiY29udGVudC1ib2R5XCJcbiAgICAgICAgW2NsYXNzLmlubGluZV09XCJzLmRpc3BsYXkuaW5saW5lXCJcbiAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICdtYXgtaGVpZ2h0Jzogcy5kaXNwbGF5Lm1heEhlaWdodCxcbiAgICAgICAgICAnbWF4LXdpZHRoJzogcy5kaXNwbGF5Lm1heFdpZHRoLFxuICAgICAgICAgICdtaW4taGVpZ2h0Jzogcy5kaXNwbGF5Lm1pbkhlaWdodCxcbiAgICAgICAgICAnbWluLXdpZHRoJzogcy5kaXNwbGF5Lm1pbldpZHRoXG4gICAgICAgIH1cIlxuICAgICAgPlxuICAgICAgICA8aGVhZGVyICpuZ0lmPVwiaGVhZGVyVGVtcGxhdGVcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImhlYWRlclRlbXBsYXRlOyBjb250ZXh0OiB7IHN0YXRlOiBzIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9oZWFkZXI+XG4gICAgICAgIDxyaXYtc2VhcmNoXG4gICAgICAgICAgKm5nSWY9XCJzLnF1ZXJ5LnNob3dTZWFyY2hcIlxuICAgICAgICAgIFt2YWx1ZV09XCJzLnF1ZXJ5LnNlYXJjaFwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInMucXVlcnkuc2VhcmNoUGxhY2Vob2xkZXJcIlxuICAgICAgICAgIFthdXRvRm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cInNlYXJjaENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgPjwvcml2LXNlYXJjaD5cbiAgICAgICAgPGRpdiAqbmdJZj1cInMucXVlcnkuc2hvd09yZGVyXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJvcmRlci1ieVwiPlNvcnQgYnk6PC9zcGFuPlxuICAgICAgICAgIDxyaXYtc2VsZWN0IFttYW5hZ2VyXT1cIm9yZGVyQnlNYW5hZ2VyXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3RyaWdnZXIgbGV0LXN0YXRlPVwic3RhdGVcIj5cbiAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICByaXZCdXR0b25cbiAgICAgICAgICAgICAgICBbdmFyaWFudF09XCInZ2hvc3QnXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCInc21hbGwnXCJcbiAgICAgICAgICAgICAgICBbaWNvbl09XCJzdGF0ZS5kaXNwbGF5Lm9wZW4gPyAnQ2hldnJvblVwJyA6ICdDaGV2cm9uRG93bidcIlxuICAgICAgICAgICAgICAgIFtpY29uUG9zaXRpb25dPVwiJ2xhc3QnXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGdldFNlbGVjdGVkT3JkZXJCeU9wdGlvbihzKT8udGl0bGUgfX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8L3Jpdi1zZWxlY3Q+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uc1wiPlxuICAgICAgICAgIDxyaXYtc2VsZWN0LW5vZGVcbiAgICAgICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgICAgIHMuc2VsZWN0aW9uLmFsbG93TXVsdGlTZWxlY3QgJiZcbiAgICAgICAgICAgICAgcy5zZWxlY3Rpb24uYWxsb3dTZWxlY3RBbGwgJiZcbiAgICAgICAgICAgICAgIXMuZGlzcGxheS56ZXJvU3RhdGVNZXNzYWdlXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgW21vZGVdPVwiJ211bHRpJ1wiXG4gICAgICAgICAgICBbbm9kZV09XCJ7XG4gICAgICAgICAgICAgIGlkOiAnX19OT09QX18nLFxuICAgICAgICAgICAgICB0aXRsZTogcy5xdWVyeS5zZWFyY2ggPyAnU2VsZWN0IGFsbCBtYXRjaGluZycgOiAnU2VsZWN0IGFsbCcsXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiBzLnNlbGVjdGlvbi52aXNpYmxlU2VsZWN0aW9uU3RhdGUsXG4gICAgICAgICAgICAgIHNlbGVjdGFibGU6IHRydWUsXG4gICAgICAgICAgICAgIGV4cGFuZGFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICBleHBhbmRlZDogZmFsc2VcbiAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgKHNlbGVjdENoYW5nZSk9XCJcbiAgICAgICAgICAgICAgbWFuYWdlcj8uYWN0aW9ucz8ubmV4dCh7IHR5cGU6ICd2aXNpYmxlU2VsZWN0ZWRDaGFuZ2UnIH0pXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID48L3Jpdi1zZWxlY3Qtbm9kZT5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZ3JvdXAgb2Ygcy5mdWxsT3B0aW9uR3JvdXBzOyB0cmFja0J5OiB0cmFja0J5U3ltYm9sXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ3JvdXBcIlxuICAgICAgICAgICAgW2NsYXNzLmRpdmlkZXJdPVwicy5kaXNwbGF5LmRpdmlkZXJzXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImdyb3VwLmhlYWRlcjsgbGV0IGhlYWRlclwiIGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICAgIHt7IGhlYWRlciB9fVxuICAgICAgICAgICAgICA8cml2LWhlbHBcbiAgICAgICAgICAgICAgICAqbmdJZj1cImdyb3VwLmhlbHA7IGxldCBoZWxwXCJcbiAgICAgICAgICAgICAgICBbaGVscF09XCJoZWxwXCJcbiAgICAgICAgICAgICAgICBbc2l6ZV09XCIxMlwiXG4gICAgICAgICAgICAgID48L3Jpdi1oZWxwPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGdyb3VwLm9wdGlvbnM7IHRyYWNrQnk6IHRyYWNrQnlPcHRpb25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9uVGVtcGxhdGU7IGVsc2Ugc3RhbmRhcmRUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIm9wdGlvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IG5vZGU6IG9wdGlvbiB9XCJcbiAgICAgICAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI3N0YW5kYXJkVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPHJpdi1zZWxlY3Qtbm9kZVxuICAgICAgICAgICAgICAgICAgW21vZGVdPVwicy5zZWxlY3Rpb24uYWxsb3dNdWx0aVNlbGVjdCA/ICdtdWx0aScgOiAnc2luZ2xlJ1wiXG4gICAgICAgICAgICAgICAgICBbbm9kZV09XCJvcHRpb25cIlxuICAgICAgICAgICAgICAgICAgW3Nob3dTaW5nbGVTZWxlY3RlZF09XCJzLmRpc3BsYXkuc2hvd1NpbmdsZVNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgIFt0aXRsZVRlbXBsYXRlXT1cIm9wdGlvblRpdGxlVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgKHNlbGVjdENoYW5nZSk9XCJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0Q2hhbmdlKHMuc2VsZWN0aW9uLmFsbG93TXVsdGlTZWxlY3QsICRldmVudClcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAoZXhwYW5kQ2hhbmdlKT1cIlxuICAgICAgICAgICAgICAgICAgICBtYW5hZ2VyPy5hY3Rpb25zPy5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAndG9nZ2xlT3B0aW9uRXhwYW5kZWQnLFxuICAgICAgICAgICAgICAgICAgICAgIGlkOiAkZXZlbnRcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgPjwvcml2LXNlbGVjdC1ub2RlPlxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwicy5kaXNwbGF5LmRpc3BsYXlMaW1pdE1lc3NhZ2U7IGxldCBtZXNzYWdlXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZGlzcGxheS1saW1pdFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgbWVzc2FnZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8cml2LXplcm8tc3RhdGVcbiAgICAgICAgICAgICpuZ0lmPVwicy5kaXNwbGF5Lnplcm9TdGF0ZU1lc3NhZ2U7IGxldCBtZXNzYWdlXCJcbiAgICAgICAgICAgIFttZXNzYWdlXT1cIm1lc3NhZ2VcIlxuICAgICAgICAgID48L3Jpdi16ZXJvLXN0YXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZvb3RlciAqbmdJZj1cImZvb3RlclRlbXBsYXRlXCIgY2xhc3M9XCJjdXN0b20tZm9vdGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJUZW1wbGF0ZTsgY29udGV4dDogeyBzdGF0ZTogcyB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZm9vdGVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9yaXYtbG9hZGluZy1jb3Zlcj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXMuZGlzcGxheS5pbmxpbmU7IGVsc2UgY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0cmlnZ2VyVGVtcGxhdGU7IGVsc2Ugc3RhbmRhcmRUcmlnZ2VyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICNjdXN0b21UcmlnZ2VyQnV0dG9uXG4gICAgICAgIChjbGljayk9XCJhbGxvd2VkT3BlbigpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvY2tlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9ja2VkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImN1c3RvbS10cmlnZ2VyLWJ1dHRvblwiXG4gICAgICAgIFtjbGFzcy5ncm93XT1cImdyb3dcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwidHJpZ2dlclRlbXBsYXRlXCJcbiAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBzdGF0ZTogcyB9XCJcbiAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNzdGFuZGFyZFRyaWdnZXI+XG4gICAgICA8cml2LWlucHV0LWxhYmVsXG4gICAgICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgICAgIFtoZWxwXT1cImhlbHBcIlxuICAgICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgICAgICBbc3RhdGVdPVwic3RhdGVcIlxuICAgICAgICBbZXJyb3JNZXNzYWdlXT1cImVycm9yTWVzc2FnZVwiXG4gICAgICAgIFtsYWJlbEFjdGlvblRleHRdPVwibGFiZWxBY3Rpb25UZXh0XCJcbiAgICAgICAgKGxhYmVsQWN0aW9uKT1cImxhYmVsQWN0aW9uLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAjc3RhbmRhcmRUcmlnZ2VyQnV0dG9uXG4gICAgICAgICAgY2xhc3M9XCJ0cmlnZ2VyXCJcbiAgICAgICAgICBbY2xhc3Muc21hbGxdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXG4gICAgICAgICAgW2NsYXNzLmxhcmdlXT1cInNpemUgPT09ICdsYXJnZSdcIlxuICAgICAgICAgIFtjbGFzcy53YXJuaW5nXT1cInN0YXRlID09PSAnd2FybmluZydcIlxuICAgICAgICAgIFtjbGFzcy5lcnJvcl09XCJzdGF0ZSA9PT0gJ2Vycm9yJ1wiXG4gICAgICAgICAgKGNsaWNrKT1cImFsbG93ZWRPcGVuKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2NrZWRcIlxuICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgbG9ja2VkID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdJZj1cInMuc2VsZWN0aW9uLnNlbGVjdGVkLnNpemU7IGVsc2UgcGxhY2Vob2xkZXJWYWx1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgICAgICAgIGN1c3RvbVNlbGVjdGVkT3B0aW9uc1RlbXBsYXRlO1xuICAgICAgICAgICAgICAgIGVsc2Ugc3RhbmRhcmRTZWxlY3RlZE9wdGlvbnNUZW1wbGF0ZVxuICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInZhbHVlXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tU2VsZWN0ZWRPcHRpb25zVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2VsZWN0ZWQ6IHMuc2VsZWN0aW9uLnNlbGVjdGVkIH1cIlxuICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI3N0YW5kYXJkU2VsZWN0ZWRPcHRpb25zVGVtcGxhdGU+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWVcIj57e1xuICAgICAgICAgICAgICAgIHMuZGlzcGxheS5mb3JtYXR0ZWRTZWxlY3RlZE9wdGlvbnNcbiAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwicy5kaXNwbGF5LnBpbGxDb3VudCA+IDFcIiBjbGFzcz1cInNlbGVjdGVkLWNvdW50XCI+XG4gICAgICAgICAgICAgICAge3sgcy5kaXNwbGF5LnBpbGxDb3VudCB8IHJpdk51bWJlciB9fVxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcGxhY2Vob2xkZXJWYWx1ZT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWUgcGxhY2Vob2xkZXJcIj57eyBzLmRpc3BsYXkucGxhY2Vob2xkZXIgfX08L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImNoZXZyb25cIj5cbiAgICAgICAgICAgIDxyaXYtaWNvblxuICAgICAgICAgICAgICAqbmdJZj1cIiFsb2NrZWRcIlxuICAgICAgICAgICAgICBbbmFtZV09XCJzLmRpc3BsYXkub3BlbiA/ICdDaGV2cm9uVXAnIDogJ0NoZXZyb25Eb3duJ1wiXG4gICAgICAgICAgICAgIFtzaXplXT1cIjIwXCJcbiAgICAgICAgICAgID48L3Jpdi1pY29uPlxuICAgICAgICAgICAgPHJpdi1pY29uICpuZ0lmPVwibG9ja2VkXCIgW25hbWVdPVwiJ0xvY2snXCIgW3NpemVdPVwiMjBcIj48L3Jpdi1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L3Jpdi1pbnB1dC1sYWJlbD5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInMuZGlzcGxheS5vcGVuXCI+XG4gICAgICA8cml2LWNhbGxvdXRcbiAgICAgICAgKnJpdi1vdmVybGF5XG4gICAgICAgIFthbmNob3JdPVwiZ2V0VHJpZ2dlcigpXCJcbiAgICAgICAgW3RoZW1lXT1cIidsaWdodCdcIlxuICAgICAgICBbc2hvd0NhcmV0XT1cImZhbHNlXCJcbiAgICAgICAgW2FsbG93ZWRQb3NpdGlvbnNdPVwiYWxsb3dlZENhbGxvdXRQb3NpdGlvbnNcIlxuICAgICAgICBbcHJlZmVycmVkUG9zaXRpb25dPVwicHJlZmVycmVkQ2FsbG91dFBvc2l0aW9uXCJcbiAgICAgICAgKGNsb3NlKT1cIm1hbmFnZXI/LmFjdGlvbnM/Lm5leHQoeyB0eXBlOiAnb3BlbkNoYW5nZScsIG9wZW46IGZhbHNlIH0pXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3Jpdi1jYWxsb3V0PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -37,16 +37,18 @@ export class SelectNodeComponent {
|
|
|
37
37
|
}
|
|
38
38
|
}
|
|
39
39
|
SelectNodeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
-
SelectNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SelectNodeComponent, selector: "riv-select-node", inputs: { mode: "mode", node: "node", showSingleSelected: "showSingleSelected" }, outputs: { selectChange: "selectChange", expandChange: "expandChange" }, ngImport: i0, template: "<ng-template #title let-n=\"node\">\n <riv-highlight\n class=\"title\"\n [text]=\"n.title\"\n [indices]=\"n.titleHighlightIndices ?? []\"\n ></riv-highlight>\n <span *ngIf=\"n.subtitle\"> </span>\n <riv-highlight\n *ngIf=\"n.subtitle\"\n class=\"subtitle\"\n [text]=\"n.subtitle\"\n [indices]=\"n.subtitleHighlightIndices ?? []\"\n ></riv-highlight>\n</ng-template>\n\n<ng-container *ngIf=\"node; let n\">\n <ng-container *ngIf=\"mode === 'multi'\">\n <div\n #row\n class=\"row\"\n [rivTooltip]=\"\n getDisabled(n) && !getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n >\n <label rivTruncate [class.disabled]=\"getDisabled(n)\">\n <riv-checkbox\n *ngIf=\"n.selectable\"\n [value]=\"n.selected === true\"\n [indeterminate]=\"n.selected === 'indeterminate'\"\n [disabled]=\"getDisabled(n)\"\n (valueChange)=\"selectChange.emit(getId(n))\"\n >\n </riv-checkbox>\n <span\n rivTruncate\n class=\"name\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n >\n <ng-container\n *ngTemplateOutlet=\"title; context: { node: n }\"\n ></ng-container>\n </span>\n <span class=\"help\">\n <riv-help\n *ngIf=\"getHelp(n); let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <span\n class=\"spacer\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n ></span>\n <span *ngIf=\"includeCount()\" class=\"count\">\n {{ getCount(n) | rivNumber }}\n </span>\n </label>\n <button\n *ngIf=\"n.children?.length\"\n class=\"expand\"\n [disabled]=\"!n.expandable\"\n [attr.aria-disabled]=\"!n.expandable ? 'true' : null\"\n (click)=\"expandChange.emit(getId(n))\"\n >\n <riv-icon\n [size]=\"20\"\n [name]=\"n.expanded ? 'ChevronUp' : 'ChevronDown'\"\n ></riv-icon>\n </button>\n </div>\n <div *ngIf=\"n.expanded\" class=\"children\">\n <riv-select-node\n *ngFor=\"let child of n.children\"\n [mode]=\"mode\"\n [node]=\"child\"\n [showSingleSelected]=\"showSingleSelected\"\n (selectChange)=\"selectChange.emit($event)\"\n (expandChange)=\"expandChange.emit($event)\"\n ></riv-select-node>\n </div>\n </ng-container>\n <ng-container *ngIf=\"mode === 'single'\">\n <div\n #row\n class=\"row\"\n [rivTooltip]=\"\n getDisabled(n) && !getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n >\n <button\n class=\"single\"\n [disabled]=\"getDisabled(n)\"\n [attr.aria-disabled]=\"getDisabled(n) ? 'true' : null\"\n (click)=\"selectChange.emit(getId(n))\"\n >\n <span\n class=\"label\"\n rivTruncate\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n >\n <ng-container\n *ngTemplateOutlet=\"title; context: { node: n }\"\n ></ng-container>\n </span>\n <span class=\"help\">\n <riv-help\n *ngIf=\"getHelp(n); let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <span\n class=\"spacer\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n ></span>\n <riv-icon\n *ngIf=\"showSingleSelected && n.selected\"\n [name]=\"'Check'\"\n [size]=\"16\"\n ></riv-icon>\n <span *ngIf=\"includeCount()\" class=\"count\">\n {{ getCount(n) | rivNumber }}\n </span>\n </button>\n </div>\n </ng-container>\n</ng-container>\n", styles: [".row{display:flex;align-items:center}.row label{flex-grow:1;border-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-xsmall);font:var(--input-medium);display:flex;align-items:center;gap:var(--size-small)}.row label:hover:not(.disabled){cursor:pointer;background-color:var(--surface-light-2)}.spacer{flex-grow:1;min-width:1px;align-self:stretch}.subtitle,.count{color:var(--type-light-low-contrast)}.expand{cursor:pointer;color:var(--purp-80);display:inline-flex;transition:background-color var(--medium-transition);border-radius:var(--border-radius-small);padding:var(--size-xsmall)}.expand:hover{background-color:var(--black-20)}.expand:active{background-color:var(--black-40)}.expand:disabled{color:var(--type-light-disabled)}.expand:disabled:hover{background-color:transparent}.children{padding-left:var(--size-large)}.single{border-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-xsmall);font:var(--input-medium);display:flex;align-items:baseline;gap:var(--size-small);text-align:left;width:100%}.single:hover:not(:disabled){cursor:pointer;background-color:var(--surface-light-2)}.single:active:not(:disabled){cursor:pointer;background-color:var(--surface-light-3)}.disabled .title,:disabled .title,.disabled .subtitle,:disabled .subtitle,.disabled .count,:disabled .count{color:var(--type-light-disabled)}riv-help{align-self:center;color:var(--type-light-low-contrast)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.CheckboxComponent, selector: "riv-checkbox", inputs: ["name", "identifier", "value", "checkedColorToken", "indeterminateColorToken", "checkboxTooltip", "indeterminate", "disabled", "required", "state", "errorMessage", "ariaLabel"], outputs: ["valueChange"] }, { kind: "component", type: i3.HelpComponent, selector: "riv-help", inputs: ["help", "size"] }, { kind: "component", type: i4.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: i5.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "component", type: SelectNodeComponent, selector: "riv-select-node", inputs: ["mode", "node", "showSingleSelected"], outputs: ["selectChange", "expandChange"] }, { kind: "directive", type: i6.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipAnchor", "rivTooltipCloseDelay", "rivTooltipOpenDelay", "rivTooltipGracePeriod"] }, { kind: "component", type: i7.TruncateComponent, selector: "[rivTruncate]", inputs: ["maxTooltipWidth"] }, { kind: "pipe", type: i8.NumberPipe, name: "rivNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
40
|
+
SelectNodeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: SelectNodeComponent, selector: "riv-select-node", inputs: { mode: "mode", node: "node", showSingleSelected: "showSingleSelected", titleTemplate: "titleTemplate" }, outputs: { selectChange: "selectChange", expandChange: "expandChange" }, ngImport: i0, template: "<ng-template #title let-n=\"node\">\n <riv-highlight\n class=\"title\"\n [text]=\"n.title\"\n [indices]=\"n.titleHighlightIndices ?? []\"\n ></riv-highlight>\n <span *ngIf=\"n.subtitle\"> </span>\n <riv-highlight\n *ngIf=\"n.subtitle\"\n class=\"subtitle\"\n [text]=\"n.subtitle\"\n [indices]=\"n.subtitleHighlightIndices ?? []\"\n ></riv-highlight>\n</ng-template>\n\n<ng-container *ngIf=\"node; let n\">\n <ng-container *ngIf=\"mode === 'multi'\">\n <div\n #row\n class=\"row\"\n [rivTooltip]=\"\n getDisabled(n) && !getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n >\n <label rivTruncate [class.disabled]=\"getDisabled(n)\">\n <riv-checkbox\n *ngIf=\"n.selectable\"\n [value]=\"n.selected === true\"\n [indeterminate]=\"n.selected === 'indeterminate'\"\n [disabled]=\"getDisabled(n)\"\n (valueChange)=\"selectChange.emit(getId(n))\"\n >\n </riv-checkbox>\n <span\n rivTruncate\n class=\"name\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n >\n <ng-container\n *ngTemplateOutlet=\"titleTemplate ?? title; context: { node: n }\"\n ></ng-container>\n </span>\n <span class=\"help\">\n <riv-help\n *ngIf=\"getHelp(n); let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <span\n class=\"spacer\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n ></span>\n <span *ngIf=\"includeCount()\" class=\"count\">\n {{ getCount(n) | rivNumber }}\n </span>\n </label>\n <button\n *ngIf=\"n.children?.length\"\n class=\"expand\"\n [disabled]=\"!n.expandable\"\n [attr.aria-disabled]=\"!n.expandable ? 'true' : null\"\n (click)=\"expandChange.emit(getId(n))\"\n >\n <riv-icon\n [size]=\"20\"\n [name]=\"n.expanded ? 'ChevronUp' : 'ChevronDown'\"\n ></riv-icon>\n </button>\n </div>\n <div *ngIf=\"n.expanded\" class=\"children\">\n <riv-select-node\n *ngFor=\"let child of n.children\"\n [mode]=\"mode\"\n [node]=\"child\"\n [showSingleSelected]=\"showSingleSelected\"\n [titleTemplate]=\"titleTemplate\"\n (selectChange)=\"selectChange.emit($event)\"\n (expandChange)=\"expandChange.emit($event)\"\n ></riv-select-node>\n </div>\n </ng-container>\n <ng-container *ngIf=\"mode === 'single'\">\n <div\n #row\n class=\"row\"\n [rivTooltip]=\"\n getDisabled(n) && !getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n >\n <button\n class=\"single\"\n [disabled]=\"getDisabled(n)\"\n [attr.aria-disabled]=\"getDisabled(n) ? 'true' : null\"\n (click)=\"selectChange.emit(getId(n))\"\n >\n <span\n class=\"label\"\n rivTruncate\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n >\n <ng-container\n *ngTemplateOutlet=\"titleTemplate ?? title; context: { node: n }\"\n ></ng-container>\n </span>\n <span class=\"help\">\n <riv-help\n *ngIf=\"getHelp(n); let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <span\n class=\"spacer\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n ></span>\n <riv-icon\n *ngIf=\"showSingleSelected && n.selected\"\n [name]=\"'Check'\"\n [size]=\"16\"\n ></riv-icon>\n <span *ngIf=\"includeCount()\" class=\"count\">\n {{ getCount(n) | rivNumber }}\n </span>\n </button>\n </div>\n </ng-container>\n</ng-container>\n", styles: [".row{display:flex;align-items:center}.row label{flex-grow:1;border-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-xsmall);font:var(--input-medium);display:flex;align-items:center;gap:var(--size-small)}.row label:hover:not(.disabled){cursor:pointer;background-color:var(--surface-light-2)}.spacer{flex-grow:1;min-width:1px;align-self:stretch}.subtitle,.count{color:var(--type-light-low-contrast)}.expand{cursor:pointer;color:var(--purp-80);display:inline-flex;transition:background-color var(--medium-transition);border-radius:var(--border-radius-small);padding:var(--size-xsmall)}.expand:hover{background-color:var(--black-20)}.expand:active{background-color:var(--black-40)}.expand:disabled{color:var(--type-light-disabled)}.expand:disabled:hover{background-color:transparent}.children{padding-left:var(--size-large)}.single{border-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-xsmall);font:var(--input-medium);display:flex;align-items:baseline;gap:var(--size-small);text-align:left;width:100%}.single:hover:not(:disabled){cursor:pointer;background-color:var(--surface-light-2)}.single:active:not(:disabled){cursor:pointer;background-color:var(--surface-light-3)}.disabled .title,:disabled .title,.disabled .subtitle,:disabled .subtitle,.disabled .count,:disabled .count{color:var(--type-light-disabled)}riv-help{align-self:center;color:var(--type-light-low-contrast)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.CheckboxComponent, selector: "riv-checkbox", inputs: ["name", "identifier", "value", "checkedColorToken", "indeterminateColorToken", "checkboxTooltip", "indeterminate", "disabled", "required", "state", "errorMessage", "ariaLabel"], outputs: ["valueChange"] }, { kind: "component", type: i3.HelpComponent, selector: "riv-help", inputs: ["help", "size"] }, { kind: "component", type: i4.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: i5.IconComponent, selector: "riv-icon", inputs: ["name", "fillColor", "size", "customSize", "strokeWidth"] }, { kind: "component", type: SelectNodeComponent, selector: "riv-select-node", inputs: ["mode", "node", "showSingleSelected", "titleTemplate"], outputs: ["selectChange", "expandChange"] }, { kind: "directive", type: i6.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipAnchor", "rivTooltipCloseDelay", "rivTooltipOpenDelay", "rivTooltipGracePeriod"] }, { kind: "component", type: i7.TruncateComponent, selector: "[rivTruncate]", inputs: ["maxTooltipWidth"] }, { kind: "pipe", type: i8.NumberPipe, name: "rivNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
41
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: SelectNodeComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
|
-
args: [{ selector: 'riv-select-node', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #title let-n=\"node\">\n <riv-highlight\n class=\"title\"\n [text]=\"n.title\"\n [indices]=\"n.titleHighlightIndices ?? []\"\n ></riv-highlight>\n <span *ngIf=\"n.subtitle\"> </span>\n <riv-highlight\n *ngIf=\"n.subtitle\"\n class=\"subtitle\"\n [text]=\"n.subtitle\"\n [indices]=\"n.subtitleHighlightIndices ?? []\"\n ></riv-highlight>\n</ng-template>\n\n<ng-container *ngIf=\"node; let n\">\n <ng-container *ngIf=\"mode === 'multi'\">\n <div\n #row\n class=\"row\"\n [rivTooltip]=\"\n getDisabled(n) && !getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n >\n <label rivTruncate [class.disabled]=\"getDisabled(n)\">\n <riv-checkbox\n *ngIf=\"n.selectable\"\n [value]=\"n.selected === true\"\n [indeterminate]=\"n.selected === 'indeterminate'\"\n [disabled]=\"getDisabled(n)\"\n (valueChange)=\"selectChange.emit(getId(n))\"\n >\n </riv-checkbox>\n <span\n rivTruncate\n class=\"name\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n >\n <ng-container\n *ngTemplateOutlet=\"title; context: { node: n }\"\n ></ng-container>\n </span>\n <span class=\"help\">\n <riv-help\n *ngIf=\"getHelp(n); let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <span\n class=\"spacer\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n ></span>\n <span *ngIf=\"includeCount()\" class=\"count\">\n {{ getCount(n) | rivNumber }}\n </span>\n </label>\n <button\n *ngIf=\"n.children?.length\"\n class=\"expand\"\n [disabled]=\"!n.expandable\"\n [attr.aria-disabled]=\"!n.expandable ? 'true' : null\"\n (click)=\"expandChange.emit(getId(n))\"\n >\n <riv-icon\n [size]=\"20\"\n [name]=\"n.expanded ? 'ChevronUp' : 'ChevronDown'\"\n ></riv-icon>\n </button>\n </div>\n <div *ngIf=\"n.expanded\" class=\"children\">\n <riv-select-node\n *ngFor=\"let child of n.children\"\n [mode]=\"mode\"\n [node]=\"child\"\n [showSingleSelected]=\"showSingleSelected\"\n (selectChange)=\"selectChange.emit($event)\"\n (expandChange)=\"expandChange.emit($event)\"\n ></riv-select-node>\n </div>\n </ng-container>\n <ng-container *ngIf=\"mode === 'single'\">\n <div\n #row\n class=\"row\"\n [rivTooltip]=\"\n getDisabled(n) && !getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n >\n <button\n class=\"single\"\n [disabled]=\"getDisabled(n)\"\n [attr.aria-disabled]=\"getDisabled(n) ? 'true' : null\"\n (click)=\"selectChange.emit(getId(n))\"\n >\n <span\n class=\"label\"\n rivTruncate\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n >\n <ng-container\n *ngTemplateOutlet=\"title; context: { node: n }\"\n ></ng-container>\n </span>\n <span class=\"help\">\n <riv-help\n *ngIf=\"getHelp(n); let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <span\n class=\"spacer\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n ></span>\n <riv-icon\n *ngIf=\"showSingleSelected && n.selected\"\n [name]=\"'Check'\"\n [size]=\"16\"\n ></riv-icon>\n <span *ngIf=\"includeCount()\" class=\"count\">\n {{ getCount(n) | rivNumber }}\n </span>\n </button>\n </div>\n </ng-container>\n</ng-container>\n", styles: [".row{display:flex;align-items:center}.row label{flex-grow:1;border-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-xsmall);font:var(--input-medium);display:flex;align-items:center;gap:var(--size-small)}.row label:hover:not(.disabled){cursor:pointer;background-color:var(--surface-light-2)}.spacer{flex-grow:1;min-width:1px;align-self:stretch}.subtitle,.count{color:var(--type-light-low-contrast)}.expand{cursor:pointer;color:var(--purp-80);display:inline-flex;transition:background-color var(--medium-transition);border-radius:var(--border-radius-small);padding:var(--size-xsmall)}.expand:hover{background-color:var(--black-20)}.expand:active{background-color:var(--black-40)}.expand:disabled{color:var(--type-light-disabled)}.expand:disabled:hover{background-color:transparent}.children{padding-left:var(--size-large)}.single{border-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-xsmall);font:var(--input-medium);display:flex;align-items:baseline;gap:var(--size-small);text-align:left;width:100%}.single:hover:not(:disabled){cursor:pointer;background-color:var(--surface-light-2)}.single:active:not(:disabled){cursor:pointer;background-color:var(--surface-light-3)}.disabled .title,:disabled .title,.disabled .subtitle,:disabled .subtitle,.disabled .count,:disabled .count{color:var(--type-light-disabled)}riv-help{align-self:center;color:var(--type-light-low-contrast)}\n"] }]
|
|
43
|
+
args: [{ selector: 'riv-select-node', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #title let-n=\"node\">\n <riv-highlight\n class=\"title\"\n [text]=\"n.title\"\n [indices]=\"n.titleHighlightIndices ?? []\"\n ></riv-highlight>\n <span *ngIf=\"n.subtitle\"> </span>\n <riv-highlight\n *ngIf=\"n.subtitle\"\n class=\"subtitle\"\n [text]=\"n.subtitle\"\n [indices]=\"n.subtitleHighlightIndices ?? []\"\n ></riv-highlight>\n</ng-template>\n\n<ng-container *ngIf=\"node; let n\">\n <ng-container *ngIf=\"mode === 'multi'\">\n <div\n #row\n class=\"row\"\n [rivTooltip]=\"\n getDisabled(n) && !getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n >\n <label rivTruncate [class.disabled]=\"getDisabled(n)\">\n <riv-checkbox\n *ngIf=\"n.selectable\"\n [value]=\"n.selected === true\"\n [indeterminate]=\"n.selected === 'indeterminate'\"\n [disabled]=\"getDisabled(n)\"\n (valueChange)=\"selectChange.emit(getId(n))\"\n >\n </riv-checkbox>\n <span\n rivTruncate\n class=\"name\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n >\n <ng-container\n *ngTemplateOutlet=\"titleTemplate ?? title; context: { node: n }\"\n ></ng-container>\n </span>\n <span class=\"help\">\n <riv-help\n *ngIf=\"getHelp(n); let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <span\n class=\"spacer\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n ></span>\n <span *ngIf=\"includeCount()\" class=\"count\">\n {{ getCount(n) | rivNumber }}\n </span>\n </label>\n <button\n *ngIf=\"n.children?.length\"\n class=\"expand\"\n [disabled]=\"!n.expandable\"\n [attr.aria-disabled]=\"!n.expandable ? 'true' : null\"\n (click)=\"expandChange.emit(getId(n))\"\n >\n <riv-icon\n [size]=\"20\"\n [name]=\"n.expanded ? 'ChevronUp' : 'ChevronDown'\"\n ></riv-icon>\n </button>\n </div>\n <div *ngIf=\"n.expanded\" class=\"children\">\n <riv-select-node\n *ngFor=\"let child of n.children\"\n [mode]=\"mode\"\n [node]=\"child\"\n [showSingleSelected]=\"showSingleSelected\"\n [titleTemplate]=\"titleTemplate\"\n (selectChange)=\"selectChange.emit($event)\"\n (expandChange)=\"expandChange.emit($event)\"\n ></riv-select-node>\n </div>\n </ng-container>\n <ng-container *ngIf=\"mode === 'single'\">\n <div\n #row\n class=\"row\"\n [rivTooltip]=\"\n getDisabled(n) && !getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n >\n <button\n class=\"single\"\n [disabled]=\"getDisabled(n)\"\n [attr.aria-disabled]=\"getDisabled(n) ? 'true' : null\"\n (click)=\"selectChange.emit(getId(n))\"\n >\n <span\n class=\"label\"\n rivTruncate\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n >\n <ng-container\n *ngTemplateOutlet=\"titleTemplate ?? title; context: { node: n }\"\n ></ng-container>\n </span>\n <span class=\"help\">\n <riv-help\n *ngIf=\"getHelp(n); let help\"\n [help]=\"help\"\n [size]=\"12\"\n ></riv-help>\n </span>\n <span\n class=\"spacer\"\n [rivTooltip]=\"\n getDisabled(n) && getHelp(n) ? getDisabledExplanation(n) : undefined\n \"\n [rivTooltipAnchor]=\"row\"\n ></span>\n <riv-icon\n *ngIf=\"showSingleSelected && n.selected\"\n [name]=\"'Check'\"\n [size]=\"16\"\n ></riv-icon>\n <span *ngIf=\"includeCount()\" class=\"count\">\n {{ getCount(n) | rivNumber }}\n </span>\n </button>\n </div>\n </ng-container>\n</ng-container>\n", styles: [".row{display:flex;align-items:center}.row label{flex-grow:1;border-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-xsmall);font:var(--input-medium);display:flex;align-items:center;gap:var(--size-small)}.row label:hover:not(.disabled){cursor:pointer;background-color:var(--surface-light-2)}.spacer{flex-grow:1;min-width:1px;align-self:stretch}.subtitle,.count{color:var(--type-light-low-contrast)}.expand{cursor:pointer;color:var(--purp-80);display:inline-flex;transition:background-color var(--medium-transition);border-radius:var(--border-radius-small);padding:var(--size-xsmall)}.expand:hover{background-color:var(--black-20)}.expand:active{background-color:var(--black-40)}.expand:disabled{color:var(--type-light-disabled)}.expand:disabled:hover{background-color:transparent}.children{padding-left:var(--size-large)}.single{border-radius:var(--border-radius-medium);padding:var(--size-small) var(--size-xsmall);font:var(--input-medium);display:flex;align-items:baseline;gap:var(--size-small);text-align:left;width:100%}.single:hover:not(:disabled){cursor:pointer;background-color:var(--surface-light-2)}.single:active:not(:disabled){cursor:pointer;background-color:var(--surface-light-3)}.disabled .title,:disabled .title,.disabled .subtitle,:disabled .subtitle,.disabled .count,:disabled .count{color:var(--type-light-disabled)}riv-help{align-self:center;color:var(--type-light-low-contrast)}\n"] }]
|
|
44
44
|
}], propDecorators: { mode: [{
|
|
45
45
|
type: Input
|
|
46
46
|
}], node: [{
|
|
47
47
|
type: Input
|
|
48
48
|
}], showSingleSelected: [{
|
|
49
49
|
type: Input
|
|
50
|
+
}], titleTemplate: [{
|
|
51
|
+
type: Input
|
|
50
52
|
}], selectChange: [{
|
|
51
53
|
type: Output
|
|
52
54
|
}], expandChange: [{
|
|
@@ -55,4 +57,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
55
57
|
(function (SelectNodeComponent) {
|
|
56
58
|
SelectNodeComponent.modes = ['single', 'multi'];
|
|
57
59
|
})(SelectNodeComponent || (SelectNodeComponent = {}));
|
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvc2VsZWN0L3NlbGVjdC1ub2RlL3NlbGVjdC1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2lucHV0L3NlbGVjdC9zZWxlY3Qtbm9kZS9zZWxlY3Qtbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVN2QixNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBaUJFLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUczQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0EyQjVDO0lBekJDLFlBQVk7UUFDVixPQUFPLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEtBQUssUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCw2RUFBNkU7SUFDN0Usd0VBQXdFO0lBQ3hFLG9EQUFvRDtJQUNwRCxtR0FBbUc7SUFDbkcsS0FBSyxDQUFDLElBQTZCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQTZCO1FBQ3ZDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUE2QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELHNCQUFzQixDQUNwQixJQUE2QjtRQUU3QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQTZCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOztpSEF4Q1UsbUJBQW1CO3FHQUFuQixtQkFBbUIsa05DZmhDLHlvSUEySUEsczhFRDVIYSxtQkFBbUI7NEZBQW5CLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsSUFBSTtzQkFESCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxNQUFNO2dCQUlQLFlBQVk7c0JBRFgsTUFBTTs7QUE4QlQsV0FBaUIsbUJBQW1CO0lBQ3JCLHlCQUFLLEdBQUcsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFVLENBQUM7QUFFcEQsQ0FBQyxFQUhnQixtQkFBbUIsS0FBbkIsbUJBQW1CLFFBR25DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJpdlNlbGVjdCB9IGZyb20gJy4uL3N0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXNlbGVjdC1ub2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LW5vZGUuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Tm9kZUNvbXBvbmVudDxPIGV4dGVuZHMgUml2U2VsZWN0LkJhc2VPcHRpb24+IHtcbiAgQElucHV0KClcbiAgbW9kZT86IFNlbGVjdE5vZGVDb21wb25lbnQuTW9kZTtcblxuICBASW5wdXQoKVxuICBub2RlPzogUml2U2VsZWN0LkZ1bGxPcHRpb248Tz47XG5cbiAgQElucHV0KClcbiAgc2hvd1NpbmdsZVNlbGVjdGVkPzogYm9vbGVhbjtcblxuICBAT3V0cHV0KClcbiAgc2VsZWN0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxPWydpZCddPigpO1xuXG4gIEBPdXRwdXQoKVxuICBleHBhbmRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE9bJ2lkJ10+KCk7XG5cbiAgaW5jbHVkZUNvdW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgdGhpcy5ub2RlPy5jb3VudCA9PT0gJ251bWJlcic7XG4gIH1cblxuICAvLyBUT0RPOiB0aGVzZSB0d28gZnVuY3Rpb25zIGNhbiBwcm9iYWJseSBnbyBhd2F5IG9uY2Ugd2UgdXBncmFkZSBBbmd1bGFyIGFuZFxuICAvLyBnZXQgYmV0dGVyIHR5cGUgc2FmZXR5IGluIHRlbXBsYXRlIGNvZGUuIChBbmd1bGFyIGNoYW5nZXMgdGhlIHR5cGUgb2ZcbiAgLy8gdGhpcy5ub2RlIGZyb20gRnVsbE9wdGlvbjxPPiB0byBGdWxsT3B0aW9uPGFueT4uKVxuICAvLyBodHRwczovL3d3dy5ub3Rpb24uc28vcml2ZXQvUmVzb2x2ZS1UT0RPcy1hZnRlci1Bbmd1bGFyLXVwZ3JhZGUtMWYyNjY3ZWIyYTMxODBiNzlmNmFkOTJhN2U1NzZmMDhcbiAgZ2V0SWQobm9kZTogUml2U2VsZWN0LkZ1bGxPcHRpb248Tz4pOiBPWydpZCddIHtcbiAgICByZXR1cm4gbm9kZS5pZDtcbiAgfVxuICBnZXREaXNhYmxlZChub2RlOiBSaXZTZWxlY3QuRnVsbE9wdGlvbjxPPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIW5vZGUuZGlzYWJsZWQ7XG4gIH1cbiAgZ2V0SGVscChub2RlOiBSaXZTZWxlY3QuRnVsbE9wdGlvbjxPPik6IE9bJ2hlbHAnXSB7XG4gICAgcmV0dXJuIG5vZGUuaGVscDtcbiAgfVxuICBnZXREaXNhYmxlZEV4cGxhbmF0aW9uKFxuICAgIG5vZGU6IFJpdlNlbGVjdC5GdWxsT3B0aW9uPE8+LFxuICApOiBPWydkaXNhYmxlZEV4cGxhbmF0aW9uJ10ge1xuICAgIHJldHVybiBub2RlLmRpc2FibGVkRXhwbGFuYXRpb247XG4gIH1cbiAgZ2V0Q291bnQobm9kZTogUml2U2VsZWN0LkZ1bGxPcHRpb248Tz4pOiBPWydjb3VudCddIHtcbiAgICByZXR1cm4gbm9kZS5jb3VudDtcbiAgfVxufVxuXG5leHBvcnQgbmFtZXNwYWNlIFNlbGVjdE5vZGVDb21wb25lbnQge1xuICBleHBvcnQgY29uc3QgbW9kZXMgPSBbJ3NpbmdsZScsICdtdWx0aSddIGFzIGNvbnN0O1xuICBleHBvcnQgdHlwZSBNb2RlID0gKHR5cGVvZiBtb2RlcylbbnVtYmVyXTtcbn1cbiIsIjxuZy10ZW1wbGF0ZSAjdGl0bGUgbGV0LW49XCJub2RlXCI+XG4gIDxyaXYtaGlnaGxpZ2h0XG4gICAgY2xhc3M9XCJ0aXRsZVwiXG4gICAgW3RleHRdPVwibi50aXRsZVwiXG4gICAgW2luZGljZXNdPVwibi50aXRsZUhpZ2hsaWdodEluZGljZXMgPz8gW11cIlxuICA+PC9yaXYtaGlnaGxpZ2h0PlxuICA8c3BhbiAqbmdJZj1cIm4uc3VidGl0bGVcIj4mbmJzcDs8L3NwYW4+XG4gIDxyaXYtaGlnaGxpZ2h0XG4gICAgKm5nSWY9XCJuLnN1YnRpdGxlXCJcbiAgICBjbGFzcz1cInN1YnRpdGxlXCJcbiAgICBbdGV4dF09XCJuLnN1YnRpdGxlXCJcbiAgICBbaW5kaWNlc109XCJuLnN1YnRpdGxlSGlnaGxpZ2h0SW5kaWNlcyA/PyBbXVwiXG4gID48L3Jpdi1oaWdobGlnaHQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwibm9kZTsgbGV0IG5cIj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICdtdWx0aSdcIj5cbiAgICA8ZGl2XG4gICAgICAjcm93XG4gICAgICBjbGFzcz1cInJvd1wiXG4gICAgICBbcml2VG9vbHRpcF09XCJcbiAgICAgICAgZ2V0RGlzYWJsZWQobikgJiYgIWdldEhlbHAobikgPyBnZXREaXNhYmxlZEV4cGxhbmF0aW9uKG4pIDogdW5kZWZpbmVkXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxsYWJlbCByaXZUcnVuY2F0ZSBbY2xhc3MuZGlzYWJsZWRdPVwiZ2V0RGlzYWJsZWQobilcIj5cbiAgICAgICAgPHJpdi1jaGVja2JveFxuICAgICAgICAgICpuZ0lmPVwibi5zZWxlY3RhYmxlXCJcbiAgICAgICAgICBbdmFsdWVdPVwibi5zZWxlY3RlZCA9PT0gdHJ1ZVwiXG4gICAgICAgICAgW2luZGV0ZXJtaW5hdGVdPVwibi5zZWxlY3RlZCA9PT0gJ2luZGV0ZXJtaW5hdGUnXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZ2V0RGlzYWJsZWQobilcIlxuICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJzZWxlY3RDaGFuZ2UuZW1pdChnZXRJZChuKSlcIlxuICAgICAgICA+XG4gICAgICAgIDwvcml2LWNoZWNrYm94PlxuICAgICAgICA8c3BhblxuICAgICAgICAgIHJpdlRydW5jYXRlXG4gICAgICAgICAgY2xhc3M9XCJuYW1lXCJcbiAgICAgICAgICBbcml2VG9vbHRpcF09XCJcbiAgICAgICAgICAgIGdldERpc2FibGVkKG4pICYmIGdldEhlbHAobikgPyBnZXREaXNhYmxlZEV4cGxhbmF0aW9uKG4pIDogdW5kZWZpbmVkXG4gICAgICAgICAgXCJcbiAgICAgICAgICBbcml2VG9vbHRpcEFuY2hvcl09XCJyb3dcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0aXRsZTsgY29udGV4dDogeyBub2RlOiBuIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImhlbHBcIj5cbiAgICAgICAgICA8cml2LWhlbHBcbiAgICAgICAgICAgICpuZ0lmPVwiZ2V0SGVscChuKTsgbGV0IGhlbHBcIlxuICAgICAgICAgICAgW2hlbHBdPVwiaGVscFwiXG4gICAgICAgICAgICBbc2l6ZV09XCIxMlwiXG4gICAgICAgICAgPjwvcml2LWhlbHA+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNwYWNlclwiXG4gICAgICAgICAgW3JpdlRvb2x0aXBdPVwiXG4gICAgICAgICAgICBnZXREaXNhYmxlZChuKSAmJiBnZXRIZWxwKG4pID8gZ2V0RGlzYWJsZWRFeHBsYW5hdGlvbihuKSA6IHVuZGVmaW5lZFxuICAgICAgICAgIFwiXG4gICAgICAgICAgW3JpdlRvb2x0aXBBbmNob3JdPVwicm93XCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpbmNsdWRlQ291bnQoKVwiIGNsYXNzPVwiY291bnRcIj5cbiAgICAgICAgICB7eyBnZXRDb3VudChuKSB8IHJpdk51bWJlciB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIm4uY2hpbGRyZW4/Lmxlbmd0aFwiXG4gICAgICAgIGNsYXNzPVwiZXhwYW5kXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFuLmV4cGFuZGFibGVcIlxuICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIiFuLmV4cGFuZGFibGUgPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgICAgKGNsaWNrKT1cImV4cGFuZENoYW5nZS5lbWl0KGdldElkKG4pKVwiXG4gICAgICA+XG4gICAgICAgIDxyaXYtaWNvblxuICAgICAgICAgIFtzaXplXT1cIjIwXCJcbiAgICAgICAgICBbbmFtZV09XCJuLmV4cGFuZGVkID8gJ0NoZXZyb25VcCcgOiAnQ2hldnJvbkRvd24nXCJcbiAgICAgICAgPjwvcml2LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibi5leHBhbmRlZFwiIGNsYXNzPVwiY2hpbGRyZW5cIj5cbiAgICAgIDxyaXYtc2VsZWN0LW5vZGVcbiAgICAgICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIG4uY2hpbGRyZW5cIlxuICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgW25vZGVdPVwiY2hpbGRcIlxuICAgICAgICBbc2hvd1NpbmdsZVNlbGVjdGVkXT1cInNob3dTaW5nbGVTZWxlY3RlZFwiXG4gICAgICAgIChzZWxlY3RDaGFuZ2UpPVwic2VsZWN0Q2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgIChleHBhbmRDaGFuZ2UpPVwiZXhwYW5kQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9yaXYtc2VsZWN0LW5vZGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibW9kZSA9PT0gJ3NpbmdsZSdcIj5cbiAgICA8ZGl2XG4gICAgICAjcm93XG4gICAgICBjbGFzcz1cInJvd1wiXG4gICAgICBbcml2VG9vbHRpcF09XCJcbiAgICAgICAgZ2V0RGlzYWJsZWQobikgJiYgIWdldEhlbHAobikgPyBnZXREaXNhYmxlZEV4cGxhbmF0aW9uKG4pIDogdW5kZWZpbmVkXG4gICAgICBcIlxuICAgID5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2xhc3M9XCJzaW5nbGVcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZ2V0RGlzYWJsZWQobilcIlxuICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cImdldERpc2FibGVkKG4pID8gJ3RydWUnIDogbnVsbFwiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RDaGFuZ2UuZW1pdChnZXRJZChuKSlcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwibGFiZWxcIlxuICAgICAgICAgIHJpdlRydW5jYXRlXG4gICAgICAgICAgW3JpdlRvb2x0aXBdPVwiXG4gICAgICAgICAgICBnZXREaXNhYmxlZChuKSAmJiBnZXRIZWxwKG4pID8gZ2V0RGlzYWJsZWRFeHBsYW5hdGlvbihuKSA6IHVuZGVmaW5lZFxuICAgICAgICAgIFwiXG4gICAgICAgICAgW3JpdlRvb2x0aXBBbmNob3JdPVwicm93XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGl0bGU7IGNvbnRleHQ6IHsgbm9kZTogbiB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWxwXCI+XG4gICAgICAgICAgPHJpdi1oZWxwXG4gICAgICAgICAgICAqbmdJZj1cImdldEhlbHAobik7IGxldCBoZWxwXCJcbiAgICAgICAgICAgIFtoZWxwXT1cImhlbHBcIlxuICAgICAgICAgICAgW3NpemVdPVwiMTJcIlxuICAgICAgICAgID48L3Jpdi1oZWxwPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJzcGFjZXJcIlxuICAgICAgICAgIFtyaXZUb29sdGlwXT1cIlxuICAgICAgICAgICAgZ2V0RGlzYWJsZWQobikgJiYgZ2V0SGVscChuKSA/IGdldERpc2FibGVkRXhwbGFuYXRpb24obikgOiB1bmRlZmluZWRcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtyaXZUb29sdGlwQW5jaG9yXT1cInJvd1wiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgIDxyaXYtaWNvblxuICAgICAgICAgICpuZ0lmPVwic2hvd1NpbmdsZVNlbGVjdGVkICYmIG4uc2VsZWN0ZWRcIlxuICAgICAgICAgIFtuYW1lXT1cIidDaGVjaydcIlxuICAgICAgICAgIFtzaXplXT1cIjE2XCJcbiAgICAgICAgPjwvcml2LWljb24+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaW5jbHVkZUNvdW50KClcIiBjbGFzcz1cImNvdW50XCI+XG4gICAgICAgICAge3sgZ2V0Q291bnQobikgfCByaXZOdW1iZXIgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW5vZGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvc2VsZWN0L3NlbGVjdC1ub2RlL3NlbGVjdC1ub2RlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL2lucHV0L3NlbGVjdC9zZWxlY3Qtbm9kZS9zZWxlY3Qtbm9kZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7OztBQVN2QixNQUFNLE9BQU8sbUJBQW1CO0lBTmhDO1FBeUJFLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUczQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7S0EyQjVDO0lBekJDLFlBQVk7UUFDVixPQUFPLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEtBQUssUUFBUSxDQUFDO0lBQzlDLENBQUM7SUFFRCw2RUFBNkU7SUFDN0Usd0VBQXdFO0lBQ3hFLG9EQUFvRDtJQUNwRCxtR0FBbUc7SUFDbkcsS0FBSyxDQUFDLElBQTZCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBQ0QsV0FBVyxDQUFDLElBQTZCO1FBQ3ZDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUNELE9BQU8sQ0FBQyxJQUE2QjtRQUNuQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDbkIsQ0FBQztJQUNELHNCQUFzQixDQUNwQixJQUE2QjtRQUU3QixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQztJQUNsQyxDQUFDO0lBQ0QsUUFBUSxDQUFDLElBQTZCO1FBQ3BDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOztpSEFoRFUsbUJBQW1CO3FHQUFuQixtQkFBbUIsa1BDaEJoQyxzdElBNElBLHM4RUQ1SGEsbUJBQW1COzRGQUFuQixtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsaUJBQWlCLG1CQUdWLHVCQUF1QixDQUFDLE1BQU07OEJBSS9DLElBQUk7c0JBREgsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQVNOLGFBQWE7c0JBRFosS0FBSztnQkFJTixZQUFZO3NCQURYLE1BQU07Z0JBSVAsWUFBWTtzQkFEWCxNQUFNOztBQThCVCxXQUFpQixtQkFBbUI7SUFDckIseUJBQUssR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQVUsQ0FBQztBQUVwRCxDQUFDLEVBSGdCLG1CQUFtQixLQUFuQixtQkFBbUIsUUFHbkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJpdlNlbGVjdCB9IGZyb20gJy4uL3N0YXRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncml2LXNlbGVjdC1ub2RlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1ub2RlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LW5vZGUuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Tm9kZUNvbXBvbmVudDxPIGV4dGVuZHMgUml2U2VsZWN0LkJhc2VPcHRpb24+IHtcbiAgQElucHV0KClcbiAgbW9kZT86IFNlbGVjdE5vZGVDb21wb25lbnQuTW9kZTtcblxuICBASW5wdXQoKVxuICBub2RlPzogUml2U2VsZWN0LkZ1bGxPcHRpb248Tz47XG5cbiAgQElucHV0KClcbiAgc2hvd1NpbmdsZVNlbGVjdGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmVuZGVycyBpbiBwbGFjZSBvZiB0aGUgZGVmYXVsdCB0aXRsZS4gVGhlIGRlZmF1bHQgaGlnaGxpZ2h0cyBzZWFyY2hcbiAgICogbWF0Y2hlczsgYSBjdXN0b20gdGl0bGUgY2FuIHVzZSB0aGUgbm9kZSdzIGB0aXRsZUhpZ2hsaWdodEluZGljZXNgIHRvIGRvXG4gICAqIHRoZSBzYW1lLlxuICAgKi9cbiAgQElucHV0KClcbiAgdGl0bGVUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHsgbm9kZTogUml2U2VsZWN0LkZ1bGxPcHRpb248Tz4gfT47XG5cbiAgQE91dHB1dCgpXG4gIHNlbGVjdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8T1snaWQnXT4oKTtcblxuICBAT3V0cHV0KClcbiAgZXhwYW5kQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxPWydpZCddPigpO1xuXG4gIGluY2x1ZGVDb3VudCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHRoaXMubm9kZT8uY291bnQgPT09ICdudW1iZXInO1xuICB9XG5cbiAgLy8gVE9ETzogdGhlc2UgdHdvIGZ1bmN0aW9ucyBjYW4gcHJvYmFibHkgZ28gYXdheSBvbmNlIHdlIHVwZ3JhZGUgQW5ndWxhciBhbmRcbiAgLy8gZ2V0IGJldHRlciB0eXBlIHNhZmV0eSBpbiB0ZW1wbGF0ZSBjb2RlLiAoQW5ndWxhciBjaGFuZ2VzIHRoZSB0eXBlIG9mXG4gIC8vIHRoaXMubm9kZSBmcm9tIEZ1bGxPcHRpb248Tz4gdG8gRnVsbE9wdGlvbjxhbnk+LilcbiAgLy8gaHR0cHM6Ly93d3cubm90aW9uLnNvL3JpdmV0L1Jlc29sdmUtVE9ET3MtYWZ0ZXItQW5ndWxhci11cGdyYWRlLTFmMjY2N2ViMmEzMTgwYjc5ZjZhZDkyYTdlNTc2ZjA4XG4gIGdldElkKG5vZGU6IFJpdlNlbGVjdC5GdWxsT3B0aW9uPE8+KTogT1snaWQnXSB7XG4gICAgcmV0dXJuIG5vZGUuaWQ7XG4gIH1cbiAgZ2V0RGlzYWJsZWQobm9kZTogUml2U2VsZWN0LkZ1bGxPcHRpb248Tz4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFub2RlLmRpc2FibGVkO1xuICB9XG4gIGdldEhlbHAobm9kZTogUml2U2VsZWN0LkZ1bGxPcHRpb248Tz4pOiBPWydoZWxwJ10ge1xuICAgIHJldHVybiBub2RlLmhlbHA7XG4gIH1cbiAgZ2V0RGlzYWJsZWRFeHBsYW5hdGlvbihcbiAgICBub2RlOiBSaXZTZWxlY3QuRnVsbE9wdGlvbjxPPixcbiAgKTogT1snZGlzYWJsZWRFeHBsYW5hdGlvbiddIHtcbiAgICByZXR1cm4gbm9kZS5kaXNhYmxlZEV4cGxhbmF0aW9uO1xuICB9XG4gIGdldENvdW50KG5vZGU6IFJpdlNlbGVjdC5GdWxsT3B0aW9uPE8+KTogT1snY291bnQnXSB7XG4gICAgcmV0dXJuIG5vZGUuY291bnQ7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBTZWxlY3ROb2RlQ29tcG9uZW50IHtcbiAgZXhwb3J0IGNvbnN0IG1vZGVzID0gWydzaW5nbGUnLCAnbXVsdGknXSBhcyBjb25zdDtcbiAgZXhwb3J0IHR5cGUgTW9kZSA9ICh0eXBlb2YgbW9kZXMpW251bWJlcl07XG59XG4iLCI8bmctdGVtcGxhdGUgI3RpdGxlIGxldC1uPVwibm9kZVwiPlxuICA8cml2LWhpZ2hsaWdodFxuICAgIGNsYXNzPVwidGl0bGVcIlxuICAgIFt0ZXh0XT1cIm4udGl0bGVcIlxuICAgIFtpbmRpY2VzXT1cIm4udGl0bGVIaWdobGlnaHRJbmRpY2VzID8/IFtdXCJcbiAgPjwvcml2LWhpZ2hsaWdodD5cbiAgPHNwYW4gKm5nSWY9XCJuLnN1YnRpdGxlXCI+Jm5ic3A7PC9zcGFuPlxuICA8cml2LWhpZ2hsaWdodFxuICAgICpuZ0lmPVwibi5zdWJ0aXRsZVwiXG4gICAgY2xhc3M9XCJzdWJ0aXRsZVwiXG4gICAgW3RleHRdPVwibi5zdWJ0aXRsZVwiXG4gICAgW2luZGljZXNdPVwibi5zdWJ0aXRsZUhpZ2hsaWdodEluZGljZXMgPz8gW11cIlxuICA+PC9yaXYtaGlnaGxpZ2h0PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vZGU7IGxldCBuXCI+XG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJtb2RlID09PSAnbXVsdGknXCI+XG4gICAgPGRpdlxuICAgICAgI3Jvd1xuICAgICAgY2xhc3M9XCJyb3dcIlxuICAgICAgW3JpdlRvb2x0aXBdPVwiXG4gICAgICAgIGdldERpc2FibGVkKG4pICYmICFnZXRIZWxwKG4pID8gZ2V0RGlzYWJsZWRFeHBsYW5hdGlvbihuKSA6IHVuZGVmaW5lZFxuICAgICAgXCJcbiAgICA+XG4gICAgICA8bGFiZWwgcml2VHJ1bmNhdGUgW2NsYXNzLmRpc2FibGVkXT1cImdldERpc2FibGVkKG4pXCI+XG4gICAgICAgIDxyaXYtY2hlY2tib3hcbiAgICAgICAgICAqbmdJZj1cIm4uc2VsZWN0YWJsZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cIm4uc2VsZWN0ZWQgPT09IHRydWVcIlxuICAgICAgICAgIFtpbmRldGVybWluYXRlXT1cIm4uc2VsZWN0ZWQgPT09ICdpbmRldGVybWluYXRlJ1wiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImdldERpc2FibGVkKG4pXCJcbiAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwic2VsZWN0Q2hhbmdlLmVtaXQoZ2V0SWQobikpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3Jpdi1jaGVja2JveD5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICByaXZUcnVuY2F0ZVxuICAgICAgICAgIGNsYXNzPVwibmFtZVwiXG4gICAgICAgICAgW3JpdlRvb2x0aXBdPVwiXG4gICAgICAgICAgICBnZXREaXNhYmxlZChuKSAmJiBnZXRIZWxwKG4pID8gZ2V0RGlzYWJsZWRFeHBsYW5hdGlvbihuKSA6IHVuZGVmaW5lZFxuICAgICAgICAgIFwiXG4gICAgICAgICAgW3JpdlRvb2x0aXBBbmNob3JdPVwicm93XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwidGl0bGVUZW1wbGF0ZSA/PyB0aXRsZTsgY29udGV4dDogeyBub2RlOiBuIH1cIlxuICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImhlbHBcIj5cbiAgICAgICAgICA8cml2LWhlbHBcbiAgICAgICAgICAgICpuZ0lmPVwiZ2V0SGVscChuKTsgbGV0IGhlbHBcIlxuICAgICAgICAgICAgW2hlbHBdPVwiaGVscFwiXG4gICAgICAgICAgICBbc2l6ZV09XCIxMlwiXG4gICAgICAgICAgPjwvcml2LWhlbHA+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cInNwYWNlclwiXG4gICAgICAgICAgW3JpdlRvb2x0aXBdPVwiXG4gICAgICAgICAgICBnZXREaXNhYmxlZChuKSAmJiBnZXRIZWxwKG4pID8gZ2V0RGlzYWJsZWRFeHBsYW5hdGlvbihuKSA6IHVuZGVmaW5lZFxuICAgICAgICAgIFwiXG4gICAgICAgICAgW3JpdlRvb2x0aXBBbmNob3JdPVwicm93XCJcbiAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJpbmNsdWRlQ291bnQoKVwiIGNsYXNzPVwiY291bnRcIj5cbiAgICAgICAgICB7eyBnZXRDb3VudChuKSB8IHJpdk51bWJlciB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cIm4uY2hpbGRyZW4/Lmxlbmd0aFwiXG4gICAgICAgIGNsYXNzPVwiZXhwYW5kXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFuLmV4cGFuZGFibGVcIlxuICAgICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIiFuLmV4cGFuZGFibGUgPyAndHJ1ZScgOiBudWxsXCJcbiAgICAgICAgKGNsaWNrKT1cImV4cGFuZENoYW5nZS5lbWl0KGdldElkKG4pKVwiXG4gICAgICA+XG4gICAgICAgIDxyaXYtaWNvblxuICAgICAgICAgIFtzaXplXT1cIjIwXCJcbiAgICAgICAgICBbbmFtZV09XCJuLmV4cGFuZGVkID8gJ0NoZXZyb25VcCcgOiAnQ2hldnJvbkRvd24nXCJcbiAgICAgICAgPjwvcml2LWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwibi5leHBhbmRlZFwiIGNsYXNzPVwiY2hpbGRyZW5cIj5cbiAgICAgIDxyaXYtc2VsZWN0LW5vZGVcbiAgICAgICAgKm5nRm9yPVwibGV0IGNoaWxkIG9mIG4uY2hpbGRyZW5cIlxuICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgW25vZGVdPVwiY2hpbGRcIlxuICAgICAgICBbc2hvd1NpbmdsZVNlbGVjdGVkXT1cInNob3dTaW5nbGVTZWxlY3RlZFwiXG4gICAgICAgIFt0aXRsZVRlbXBsYXRlXT1cInRpdGxlVGVtcGxhdGVcIlxuICAgICAgICAoc2VsZWN0Q2hhbmdlKT1cInNlbGVjdENoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgICAoZXhwYW5kQ2hhbmdlKT1cImV4cGFuZENoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgPjwvcml2LXNlbGVjdC1ub2RlPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICdzaW5nbGUnXCI+XG4gICAgPGRpdlxuICAgICAgI3Jvd1xuICAgICAgY2xhc3M9XCJyb3dcIlxuICAgICAgW3JpdlRvb2x0aXBdPVwiXG4gICAgICAgIGdldERpc2FibGVkKG4pICYmICFnZXRIZWxwKG4pID8gZ2V0RGlzYWJsZWRFeHBsYW5hdGlvbihuKSA6IHVuZGVmaW5lZFxuICAgICAgXCJcbiAgICA+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2luZ2xlXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImdldERpc2FibGVkKG4pXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJnZXREaXNhYmxlZChuKSA/ICd0cnVlJyA6IG51bGxcIlxuICAgICAgICAoY2xpY2spPVwic2VsZWN0Q2hhbmdlLmVtaXQoZ2V0SWQobikpXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBjbGFzcz1cImxhYmVsXCJcbiAgICAgICAgICByaXZUcnVuY2F0ZVxuICAgICAgICAgIFtyaXZUb29sdGlwXT1cIlxuICAgICAgICAgICAgZ2V0RGlzYWJsZWQobikgJiYgZ2V0SGVscChuKSA/IGdldERpc2FibGVkRXhwbGFuYXRpb24obikgOiB1bmRlZmluZWRcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtyaXZUb29sdGlwQW5jaG9yXT1cInJvd1wiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cInRpdGxlVGVtcGxhdGUgPz8gdGl0bGU7IGNvbnRleHQ6IHsgbm9kZTogbiB9XCJcbiAgICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJoZWxwXCI+XG4gICAgICAgICAgPHJpdi1oZWxwXG4gICAgICAgICAgICAqbmdJZj1cImdldEhlbHAobik7IGxldCBoZWxwXCJcbiAgICAgICAgICAgIFtoZWxwXT1cImhlbHBcIlxuICAgICAgICAgICAgW3NpemVdPVwiMTJcIlxuICAgICAgICAgID48L3Jpdi1oZWxwPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxzcGFuXG4gICAgICAgICAgY2xhc3M9XCJzcGFjZXJcIlxuICAgICAgICAgIFtyaXZUb29sdGlwXT1cIlxuICAgICAgICAgICAgZ2V0RGlzYWJsZWQobikgJiYgZ2V0SGVscChuKSA/IGdldERpc2FibGVkRXhwbGFuYXRpb24obikgOiB1bmRlZmluZWRcbiAgICAgICAgICBcIlxuICAgICAgICAgIFtyaXZUb29sdGlwQW5jaG9yXT1cInJvd1wiXG4gICAgICAgID48L3NwYW4+XG4gICAgICAgIDxyaXYtaWNvblxuICAgICAgICAgICpuZ0lmPVwic2hvd1NpbmdsZVNlbGVjdGVkICYmIG4uc2VsZWN0ZWRcIlxuICAgICAgICAgIFtuYW1lXT1cIidDaGVjaydcIlxuICAgICAgICAgIFtzaXplXT1cIjE2XCJcbiAgICAgICAgPjwvcml2LWljb24+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaW5jbHVkZUNvdW50KClcIiBjbGFzcz1cImNvdW50XCI+XG4gICAgICAgICAge3sgZ2V0Q291bnQobikgfCByaXZOdW1iZXIgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export var TableCollapseHelpers;
|
|
2
|
+
(function (TableCollapseHelpers) {
|
|
3
|
+
function toggleRowCollapse(state, id) {
|
|
4
|
+
const currentSet = state.collapseState.collapsedRows;
|
|
5
|
+
const newSet = new Set(currentSet);
|
|
6
|
+
const isCollapsedBeforeToggle = newSet.has(id);
|
|
7
|
+
if (isCollapsedBeforeToggle) {
|
|
8
|
+
newSet.delete(id);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
newSet.add(id);
|
|
12
|
+
}
|
|
13
|
+
return {
|
|
14
|
+
...state,
|
|
15
|
+
collapseState: {
|
|
16
|
+
...state.collapseState,
|
|
17
|
+
collapsedRows: newSet,
|
|
18
|
+
},
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
TableCollapseHelpers.toggleRowCollapse = toggleRowCollapse;
|
|
22
|
+
function toggleHeaderCollapse(state, id) {
|
|
23
|
+
const currentSet = state.collapseState.collapsedHeaders;
|
|
24
|
+
const newSet = new Set(currentSet);
|
|
25
|
+
const isCollapsedBeforeToggle = newSet.has(id);
|
|
26
|
+
if (isCollapsedBeforeToggle) {
|
|
27
|
+
newSet.delete(id);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
newSet.add(id);
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
...state,
|
|
34
|
+
collapseState: {
|
|
35
|
+
...state.collapseState,
|
|
36
|
+
collapsedHeaders: newSet,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
TableCollapseHelpers.toggleHeaderCollapse = toggleHeaderCollapse;
|
|
41
|
+
function isRowCollapsed(state, id) {
|
|
42
|
+
return state.collapseState.collapsedRows.has(id);
|
|
43
|
+
}
|
|
44
|
+
TableCollapseHelpers.isRowCollapsed = isRowCollapsed;
|
|
45
|
+
function isHeaderCollapsed(state, id) {
|
|
46
|
+
if (!id) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
return state.collapseState.collapsedHeaders.has(id);
|
|
50
|
+
}
|
|
51
|
+
TableCollapseHelpers.isHeaderCollapsed = isHeaderCollapsed;
|
|
52
|
+
})(TableCollapseHelpers || (TableCollapseHelpers = {}));
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sbGFwc2UtaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3RhYmxlL3RhYmxlL3N0YXRlLWhlbHBlcnMvY29sbGFwc2UtaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLEtBQVcsb0JBQW9CLENBOEVwQztBQTlFRCxXQUFpQixvQkFBb0I7SUFDbkMsU0FBZ0IsaUJBQWlCLENBTS9CLEtBQXFDLEVBQ3JDLEVBQVc7UUFFWCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQztRQUNyRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuQyxNQUFNLHVCQUF1QixHQUFZLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFeEQsSUFBSSx1QkFBdUIsRUFBRTtZQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ25CO2FBQU07WUFDTCxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ2hCO1FBRUQsT0FBTztZQUNMLEdBQUcsS0FBSztZQUNSLGFBQWEsRUFBRTtnQkFDYixHQUFHLEtBQUssQ0FBQyxhQUFhO2dCQUN0QixhQUFhLEVBQUUsTUFBTTthQUN0QjtTQUNGLENBQUM7SUFDSixDQUFDO0lBMUJlLHNDQUFpQixvQkEwQmhDLENBQUE7SUFFRCxTQUFnQixvQkFBb0IsQ0FNbEMsS0FBcUMsRUFDckMsRUFBVTtRQUVWLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7UUFDeEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbkMsTUFBTSx1QkFBdUIsR0FBWSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRXhELElBQUksdUJBQXVCLEVBQUU7WUFDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNuQjthQUFNO1lBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNoQjtRQUVELE9BQU87WUFDTCxHQUFHLEtBQUs7WUFDUixhQUFhLEVBQUU7Z0JBQ2IsR0FBRyxLQUFLLENBQUMsYUFBYTtnQkFDdEIsZ0JBQWdCLEVBQUUsTUFBTTthQUN6QjtTQUNGLENBQUM7SUFDSixDQUFDO0lBM0JlLHlDQUFvQix1QkEyQm5DLENBQUE7SUFFRCxTQUFnQixjQUFjLENBSzVCLEtBQXFDLEVBQUUsRUFBVztRQUNsRCxPQUFPLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBUGUsbUNBQWMsaUJBTzdCLENBQUE7SUFFRCxTQUFnQixpQkFBaUIsQ0FLL0IsS0FBcUMsRUFBRSxFQUFpQjtRQUN4RCxJQUFJLENBQUMsRUFBRSxFQUFFO1lBQ1AsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQVZlLHNDQUFpQixvQkFVaEMsQ0FBQTtBQUNILENBQUMsRUE5RWdCLG9CQUFvQixLQUFwQixvQkFBb0IsUUE4RXBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUml2VGFibGUgfSBmcm9tICcuLi9zdGF0ZSc7XG5cbmV4cG9ydCBuYW1lc3BhY2UgVGFibGVDb2xsYXBzZUhlbHBlcnMge1xuICBleHBvcnQgZnVuY3Rpb24gdG9nZ2xlUm93Q29sbGFwc2U8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihcbiAgICBzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LFxuICAgIGlkOiBSWydpZCddLFxuICApOiBSaXZUYWJsZS5Db3JlU3RhdGU8UiwgQywgRiwgRz4ge1xuICAgIGNvbnN0IGN1cnJlbnRTZXQgPSBzdGF0ZS5jb2xsYXBzZVN0YXRlLmNvbGxhcHNlZFJvd3M7XG4gICAgY29uc3QgbmV3U2V0ID0gbmV3IFNldChjdXJyZW50U2V0KTtcbiAgICBjb25zdCBpc0NvbGxhcHNlZEJlZm9yZVRvZ2dsZTogYm9vbGVhbiA9IG5ld1NldC5oYXMoaWQpO1xuXG4gICAgaWYgKGlzQ29sbGFwc2VkQmVmb3JlVG9nZ2xlKSB7XG4gICAgICBuZXdTZXQuZGVsZXRlKGlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3U2V0LmFkZChpZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN0YXRlLFxuICAgICAgY29sbGFwc2VTdGF0ZToge1xuICAgICAgICAuLi5zdGF0ZS5jb2xsYXBzZVN0YXRlLFxuICAgICAgICBjb2xsYXBzZWRSb3dzOiBuZXdTZXQsXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gdG9nZ2xlSGVhZGVyQ29sbGFwc2U8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihcbiAgICBzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LFxuICAgIGlkOiBzdHJpbmcsXG4gICk6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPiB7XG4gICAgY29uc3QgY3VycmVudFNldCA9IHN0YXRlLmNvbGxhcHNlU3RhdGUuY29sbGFwc2VkSGVhZGVycztcbiAgICBjb25zdCBuZXdTZXQgPSBuZXcgU2V0KGN1cnJlbnRTZXQpO1xuXG4gICAgY29uc3QgaXNDb2xsYXBzZWRCZWZvcmVUb2dnbGU6IGJvb2xlYW4gPSBuZXdTZXQuaGFzKGlkKTtcblxuICAgIGlmIChpc0NvbGxhcHNlZEJlZm9yZVRvZ2dsZSkge1xuICAgICAgbmV3U2V0LmRlbGV0ZShpZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld1NldC5hZGQoaWQpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIGNvbGxhcHNlU3RhdGU6IHtcbiAgICAgICAgLi4uc3RhdGUuY29sbGFwc2VTdGF0ZSxcbiAgICAgICAgY29sbGFwc2VkSGVhZGVyczogbmV3U2V0LFxuICAgICAgfSxcbiAgICB9O1xuICB9XG5cbiAgZXhwb3J0IGZ1bmN0aW9uIGlzUm93Q29sbGFwc2VkPFxuICAgIFIgZXh0ZW5kcyBSaXZUYWJsZS5Sb3csXG4gICAgQyBleHRlbmRzIFJpdlRhYmxlLkNvbHVtbixcbiAgICBGIGV4dGVuZHMgUml2VGFibGUuRmlsdGVycyxcbiAgICBHIGV4dGVuZHMgUml2VGFibGUuR3JvdXAsXG4gID4oc3RhdGU6IFJpdlRhYmxlLkNvcmVTdGF0ZTxSLCBDLCBGLCBHPiwgaWQ6IFJbJ2lkJ10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3RhdGUuY29sbGFwc2VTdGF0ZS5jb2xsYXBzZWRSb3dzLmhhcyhpZCk7XG4gIH1cblxuICBleHBvcnQgZnVuY3Rpb24gaXNIZWFkZXJDb2xsYXBzZWQ8XG4gICAgUiBleHRlbmRzIFJpdlRhYmxlLlJvdyxcbiAgICBDIGV4dGVuZHMgUml2VGFibGUuQ29sdW1uLFxuICAgIEYgZXh0ZW5kcyBSaXZUYWJsZS5GaWx0ZXJzLFxuICAgIEcgZXh0ZW5kcyBSaXZUYWJsZS5Hcm91cCxcbiAgPihzdGF0ZTogUml2VGFibGUuQ29yZVN0YXRlPFIsIEMsIEYsIEc+LCBpZDogc3RyaW5nIHwgbnVsbCk6IGJvb2xlYW4ge1xuICAgIGlmICghaWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHN0YXRlLmNvbGxhcHNlU3RhdGUuY29sbGFwc2VkSGVhZGVycy5oYXMoaWQpO1xuICB9XG59XG4iXX0=
|