@rivet-health/design-system 4.10.1 → 4.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/input/single-select/single-select.component.mjs +3 -3
- package/esm2020/lib/visualization/donut/donut.component.mjs +9 -3
- package/esm2020/lib/visualization/metric/metric.component.mjs +6 -5
- package/fesm2015/rivet-health-design-system.mjs +13 -7
- package/fesm2015/rivet-health-design-system.mjs.map +1 -1
- package/fesm2020/rivet-health-design-system.mjs +13 -7
- package/fesm2020/rivet-health-design-system.mjs.map +1 -1
- package/lib/input/single-select/single-select.component.d.ts +1 -1
- package/lib/visualization/donut/donut.component.d.ts +4 -1
- package/lib/visualization/metric/metric.component.d.ts +1 -1
- package/package.json +1 -1
- package/styles/tokens/typography.css +2 -0
|
@@ -54,10 +54,10 @@ export class SingleSelectComponent extends InputLabelComponent {
|
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
56
|
SingleSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SingleSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
57
|
-
SingleSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SingleSelectComponent, selector: "riv-single-select", inputs: { options: "options", selectedOption: "selectedOption", filterabilityOptions: "filterabilityOptions", loading: "loading", locked: "locked", noOptionsMessage: "noOptionsMessage", nodeTemplate: "nodeTemplate", triggerTemplate: "triggerTemplate", placeholder: "placeholder", disabled: "disabled" }, outputs: { filterQueryChange: "filterQueryChange", selectedOptionChange: "selectedOptionChange" }, 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=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ selectedOption }\"\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 [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container *ngIf=\"selectedOption; else placeholderValue\">\n <span class=\"value\">{{ selectedOption.title }}</span>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon *ngIf=\"!locked\" [name]=\"'ChevronDown'\" [size]=\"16\"></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n</ng-template>\n\n<riv-callout\n *ngIf=\"open\"\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"[\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left'\n ]\"\n (close)=\"open = false\"\n>\n <input\n *ngIf=\"filterabilityOptions.enabled\"\n #filter\n class=\"filter\"\n [placeholder]=\"getFilterPlaceholder()\"\n [value]=\"filterQuery\"\n (input)=\"filterQuery = filter.value; filterQueryChange.emit(filterQuery)\"\n />\n <div class=\"options\">\n <riv-loading-cover [loading]=\"loading\">\n <ng-container *ngIf=\"getNodes(); let nodes\">\n <ng-container *ngIf=\"nodes.length > 0; else empty\">\n <ng-container *ngFor=\"let node of nodes; trackBy: trackBy\">\n <ng-container *ngIf=\"nodeTemplate; else standardTemplate\">\n <button\n class=\"custom-single-select-node\"\n [disabled]=\"node.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate\"\n [ngTemplateOutletContext]=\"{ node }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTemplate>\n <button\n class=\"single-select-node\"\n [class.selected]=\"node?.selected\"\n [class.disabled]=\"node?.disabled\"\n [disabled]=\"node?.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <riv-icon\n [name]=\"'Check'\"\n *ngIf=\"node?.selected\"\n [size]=\"16\"\n ></riv-icon>\n <span class=\"label\">\n <span class=\"label-title\">\n <riv-highlight\n [text]=\"node?.title || ''\"\n [indices]=\"node?.titleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n <span *ngIf=\"node?.subtitle\" class=\"label-subtitle\">\n <riv-highlight\n [text]=\"node?.subtitle || ''\"\n [indices]=\"node?.subtitleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n </span>\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #empty>\n <div class=\"empty\">\n {{ noOptionsMessage }}\n </div>\n </ng-template>\n </ng-container>\n </riv-loading-cover>\n </div>\n</riv-callout>\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)}.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)}.value{font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small);flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-disabled)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-small);background-color:var(--surface-light-2);border-left:var(--border-width) solid var(--border-light)}.filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-disabled)}.options{max-height:50vh;max-width:calc(var(--base-grid-size) * 150);overflow-y:auto}.single-select-node{display:flex;align-items:center;overflow:hidden;flex-grow:1;text-align:left;padding:var(--size-xsmall) var(--size-xsmall) var(--size-xsmall) calc(var(--base-grid-size) * 6);width:100%}.single-select-node.selected{padding-left:var(--size-small)}.single-select-node:hover{background-color:var(--surface-light-2)}.single-select-node.disabled{cursor:default;background-color:var(--surface-light-0)}.single-select-node.disabled .label,.single-select-node.disabled .label-subtitle{color:var(--type-light-disabled)}.single-select-node riv-icon{flex-shrink:0}.single-select-node .label{font-size:calc(var(--base-grid-size) * 4);line-height:calc(var(--base-grid-size) * 6);overflow:hidden;text-overflow:ellipsis;white-space:pre;flex-grow:1;padding:0 calc(var(--base-grid-size) * 2)}.single-select-node .label-subtitle{padding-left:var(--base-grid-size);color:var(--type-light-low-contrast)}.custom-single-select-node{display:block;width:100%;text-align:left}.empty{padding:var(--size-medium);text-align:center;color:var(--type-light-disabled)}\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.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i3.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: i4.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "component", type: i5.InputLabelComponent, selector: "riv-input-label", inputs: ["label", "help", "required", "labelActionText"], outputs: ["labelAction"] }, { kind: "component", type: i6.LoadingCoverComponent, selector: "riv-loading-cover", inputs: ["loading", "loadingSize", "errorMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
57
|
+
SingleSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SingleSelectComponent, selector: "riv-single-select", inputs: { options: "options", selectedOption: "selectedOption", filterabilityOptions: "filterabilityOptions", loading: "loading", locked: "locked", noOptionsMessage: "noOptionsMessage", nodeTemplate: "nodeTemplate", triggerTemplate: "triggerTemplate", placeholder: "placeholder", disabled: "disabled" }, outputs: { filterQueryChange: "filterQueryChange", selectedOptionChange: "selectedOptionChange" }, 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=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ selectedOption }\"\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 [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container *ngIf=\"selectedOption; else placeholderValue\">\n <span class=\"value\">{{ selectedOption.title }}</span>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon *ngIf=\"!locked\" [name]=\"'ChevronDown'\" [size]=\"16\"></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n</ng-template>\n\n<riv-callout\n *ngIf=\"open\"\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"[\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left'\n ]\"\n (close)=\"open = false\"\n>\n <input\n *ngIf=\"filterabilityOptions.enabled\"\n #filter\n class=\"filter\"\n [placeholder]=\"getFilterPlaceholder()\"\n [value]=\"filterQuery\"\n (input)=\"filterQuery = filter.value; filterQueryChange.emit(filterQuery)\"\n />\n <div class=\"options\">\n <riv-loading-cover [loading]=\"loading\">\n <ng-container *ngIf=\"getNodes(); let nodes\">\n <ng-container *ngIf=\"nodes.length > 0; else empty\">\n <ng-container *ngFor=\"let node of nodes; trackBy: trackBy\">\n <ng-container *ngIf=\"nodeTemplate; else standardTemplate\">\n <button\n class=\"custom-single-select-node\"\n [disabled]=\"node.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate\"\n [ngTemplateOutletContext]=\"{ node }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTemplate>\n <button\n class=\"single-select-node\"\n [class.selected]=\"node?.selected\"\n [class.disabled]=\"node?.disabled\"\n [disabled]=\"node?.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <riv-icon\n [name]=\"'Check'\"\n *ngIf=\"node?.selected\"\n [size]=\"16\"\n ></riv-icon>\n <span class=\"label\">\n <span class=\"label-title\">\n <riv-highlight\n [text]=\"node?.title || ''\"\n [indices]=\"node?.titleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n <span *ngIf=\"node?.subtitle\" class=\"label-subtitle\">\n <riv-highlight\n [text]=\"node?.subtitle || ''\"\n [indices]=\"node?.subtitleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n </span>\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #empty>\n <div class=\"empty\">\n {{ noOptionsMessage }}\n </div>\n </ng-template>\n </ng-container>\n </riv-loading-cover>\n </div>\n <div class=\"footer\">\n <ng-content select=\"[footer]\"> </ng-content>\n </div>\n</riv-callout>\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)}.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)}.value{font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small);flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-disabled)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-small);background-color:var(--surface-light-2);border-left:var(--border-width) solid var(--border-light)}.filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-disabled)}.options{max-height:50vh;max-width:calc(var(--base-grid-size) * 150);overflow-y:auto}.single-select-node{display:flex;align-items:center;overflow:hidden;flex-grow:1;text-align:left;padding:var(--size-xsmall) var(--size-xsmall) var(--size-xsmall) calc(var(--base-grid-size) * 6);width:100%}.single-select-node.selected{padding-left:var(--size-small)}.single-select-node:hover{background-color:var(--surface-light-2)}.single-select-node.disabled{cursor:default;background-color:var(--surface-light-0)}.single-select-node.disabled .label,.single-select-node.disabled .label-subtitle{color:var(--type-light-disabled)}.single-select-node riv-icon{flex-shrink:0}.single-select-node .label{font-size:calc(var(--base-grid-size) * 4);line-height:calc(var(--base-grid-size) * 6);overflow:hidden;text-overflow:ellipsis;white-space:pre;flex-grow:1;padding:0 calc(var(--base-grid-size) * 2)}.single-select-node .label-subtitle{padding-left:var(--base-grid-size);color:var(--type-light-low-contrast)}.custom-single-select-node{display:block;width:100%;text-align:left}.empty{padding:var(--size-medium);text-align:center;color:var(--type-light-disabled)}.footer{border-top:var(--border-width) solid var(--border-light-blend);background-color:var(--surface-light-1);border-bottom-left-radius:var(--border-radius-medium);border-bottom-right-radius:var(--border-radius-medium)}\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.CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: i3.HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: i4.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "component", type: i5.InputLabelComponent, selector: "riv-input-label", inputs: ["label", "help", "required", "labelActionText"], outputs: ["labelAction"] }, { kind: "component", type: i6.LoadingCoverComponent, selector: "riv-loading-cover", inputs: ["loading", "loadingSize", "errorMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
58
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SingleSelectComponent, decorators: [{
|
|
59
59
|
type: Component,
|
|
60
|
-
args: [{ selector: 'riv-single-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ selectedOption }\"\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 [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container *ngIf=\"selectedOption; else placeholderValue\">\n <span class=\"value\">{{ selectedOption.title }}</span>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon *ngIf=\"!locked\" [name]=\"'ChevronDown'\" [size]=\"16\"></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n</ng-template>\n\n<riv-callout\n *ngIf=\"open\"\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"[\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left'\n ]\"\n (close)=\"open = false\"\n>\n <input\n *ngIf=\"filterabilityOptions.enabled\"\n #filter\n class=\"filter\"\n [placeholder]=\"getFilterPlaceholder()\"\n [value]=\"filterQuery\"\n (input)=\"filterQuery = filter.value; filterQueryChange.emit(filterQuery)\"\n />\n <div class=\"options\">\n <riv-loading-cover [loading]=\"loading\">\n <ng-container *ngIf=\"getNodes(); let nodes\">\n <ng-container *ngIf=\"nodes.length > 0; else empty\">\n <ng-container *ngFor=\"let node of nodes; trackBy: trackBy\">\n <ng-container *ngIf=\"nodeTemplate; else standardTemplate\">\n <button\n class=\"custom-single-select-node\"\n [disabled]=\"node.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate\"\n [ngTemplateOutletContext]=\"{ node }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTemplate>\n <button\n class=\"single-select-node\"\n [class.selected]=\"node?.selected\"\n [class.disabled]=\"node?.disabled\"\n [disabled]=\"node?.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <riv-icon\n [name]=\"'Check'\"\n *ngIf=\"node?.selected\"\n [size]=\"16\"\n ></riv-icon>\n <span class=\"label\">\n <span class=\"label-title\">\n <riv-highlight\n [text]=\"node?.title || ''\"\n [indices]=\"node?.titleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n <span *ngIf=\"node?.subtitle\" class=\"label-subtitle\">\n <riv-highlight\n [text]=\"node?.subtitle || ''\"\n [indices]=\"node?.subtitleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n </span>\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #empty>\n <div class=\"empty\">\n {{ noOptionsMessage }}\n </div>\n </ng-template>\n </ng-container>\n </riv-loading-cover>\n </div>\n</riv-callout>\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)}.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)}.value{font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small);flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-disabled)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-small);background-color:var(--surface-light-2);border-left:var(--border-width) solid var(--border-light)}.filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-disabled)}.options{max-height:50vh;max-width:calc(var(--base-grid-size) * 150);overflow-y:auto}.single-select-node{display:flex;align-items:center;overflow:hidden;flex-grow:1;text-align:left;padding:var(--size-xsmall) var(--size-xsmall) var(--size-xsmall) calc(var(--base-grid-size) * 6);width:100%}.single-select-node.selected{padding-left:var(--size-small)}.single-select-node:hover{background-color:var(--surface-light-2)}.single-select-node.disabled{cursor:default;background-color:var(--surface-light-0)}.single-select-node.disabled .label,.single-select-node.disabled .label-subtitle{color:var(--type-light-disabled)}.single-select-node riv-icon{flex-shrink:0}.single-select-node .label{font-size:calc(var(--base-grid-size) * 4);line-height:calc(var(--base-grid-size) * 6);overflow:hidden;text-overflow:ellipsis;white-space:pre;flex-grow:1;padding:0 calc(var(--base-grid-size) * 2)}.single-select-node .label-subtitle{padding-left:var(--base-grid-size);color:var(--type-light-low-contrast)}.custom-single-select-node{display:block;width:100%;text-align:left}.empty{padding:var(--size-medium);text-align:center;color:var(--type-light-disabled)}\n"] }]
|
|
60
|
+
args: [{ selector: 'riv-single-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ selectedOption }\"\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 [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container *ngIf=\"selectedOption; else placeholderValue\">\n <span class=\"value\">{{ selectedOption.title }}</span>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon *ngIf=\"!locked\" [name]=\"'ChevronDown'\" [size]=\"16\"></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n</ng-template>\n\n<riv-callout\n *ngIf=\"open\"\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"[\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left'\n ]\"\n (close)=\"open = false\"\n>\n <input\n *ngIf=\"filterabilityOptions.enabled\"\n #filter\n class=\"filter\"\n [placeholder]=\"getFilterPlaceholder()\"\n [value]=\"filterQuery\"\n (input)=\"filterQuery = filter.value; filterQueryChange.emit(filterQuery)\"\n />\n <div class=\"options\">\n <riv-loading-cover [loading]=\"loading\">\n <ng-container *ngIf=\"getNodes(); let nodes\">\n <ng-container *ngIf=\"nodes.length > 0; else empty\">\n <ng-container *ngFor=\"let node of nodes; trackBy: trackBy\">\n <ng-container *ngIf=\"nodeTemplate; else standardTemplate\">\n <button\n class=\"custom-single-select-node\"\n [disabled]=\"node.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate\"\n [ngTemplateOutletContext]=\"{ node }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTemplate>\n <button\n class=\"single-select-node\"\n [class.selected]=\"node?.selected\"\n [class.disabled]=\"node?.disabled\"\n [disabled]=\"node?.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <riv-icon\n [name]=\"'Check'\"\n *ngIf=\"node?.selected\"\n [size]=\"16\"\n ></riv-icon>\n <span class=\"label\">\n <span class=\"label-title\">\n <riv-highlight\n [text]=\"node?.title || ''\"\n [indices]=\"node?.titleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n <span *ngIf=\"node?.subtitle\" class=\"label-subtitle\">\n <riv-highlight\n [text]=\"node?.subtitle || ''\"\n [indices]=\"node?.subtitleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n </span>\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #empty>\n <div class=\"empty\">\n {{ noOptionsMessage }}\n </div>\n </ng-template>\n </ng-container>\n </riv-loading-cover>\n </div>\n <div class=\"footer\">\n <ng-content select=\"[footer]\"> </ng-content>\n </div>\n</riv-callout>\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)}.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)}.value{font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small);flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-disabled)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-small);background-color:var(--surface-light-2);border-left:var(--border-width) solid var(--border-light)}.filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-disabled)}.options{max-height:50vh;max-width:calc(var(--base-grid-size) * 150);overflow-y:auto}.single-select-node{display:flex;align-items:center;overflow:hidden;flex-grow:1;text-align:left;padding:var(--size-xsmall) var(--size-xsmall) var(--size-xsmall) calc(var(--base-grid-size) * 6);width:100%}.single-select-node.selected{padding-left:var(--size-small)}.single-select-node:hover{background-color:var(--surface-light-2)}.single-select-node.disabled{cursor:default;background-color:var(--surface-light-0)}.single-select-node.disabled .label,.single-select-node.disabled .label-subtitle{color:var(--type-light-disabled)}.single-select-node riv-icon{flex-shrink:0}.single-select-node .label{font-size:calc(var(--base-grid-size) * 4);line-height:calc(var(--base-grid-size) * 6);overflow:hidden;text-overflow:ellipsis;white-space:pre;flex-grow:1;padding:0 calc(var(--base-grid-size) * 2)}.single-select-node .label-subtitle{padding-left:var(--base-grid-size);color:var(--type-light-low-contrast)}.custom-single-select-node{display:block;width:100%;text-align:left}.empty{padding:var(--size-medium);text-align:center;color:var(--type-light-disabled)}.footer{border-top:var(--border-width) solid var(--border-light-blend);background-color:var(--surface-light-1);border-bottom-left-radius:var(--border-radius-medium);border-bottom-right-radius:var(--border-radius-medium)}\n"] }]
|
|
61
61
|
}], propDecorators: { options: [{
|
|
62
62
|
type: Input
|
|
63
63
|
}], selectedOption: [{
|
|
@@ -125,4 +125,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
125
125
|
}
|
|
126
126
|
SingleSelectComponent.getFilterAsync = getFilterAsync;
|
|
127
127
|
})(SingleSelectComponent || (SingleSelectComponent = {}));
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9pbnB1dC9zaW5nbGUtc2VsZWN0L3NpbmdsZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvc2luZ2xlLXNlbGVjdC9zaW5nbGUtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUM7QUFDM0IsT0FBTyxFQUVMLFlBQVksRUFDWixJQUFJLEVBQ0osR0FBRyxFQUNILFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7O0FBUTNFLE1BQU0sT0FBTyxxQkFFWCxTQUFRLG1CQUFtQjtJQVI3Qjs7UUFVRSxZQUFPLEdBQVEsRUFBRSxDQUFDO1FBR2xCLG1CQUFjLEdBQWEsSUFBSSxDQUFDO1FBR2hDLHlCQUFvQixHQUErQztZQUNqRSxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7UUFHRixZQUFPLEdBQVksS0FBSyxDQUFDO1FBR3pCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFHeEIscUJBQWdCLEdBQVcsc0JBQXNCLENBQUM7UUFTbEQsZ0JBQVcsR0FBVyxXQUFXLENBQUM7UUFHbEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUd6QixzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRy9DLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUF1QzdDLFNBQUksR0FBWSxLQUFLLENBQUM7S0FDdkI7SUFuQ0MsVUFBVTtRQUNSLE9BQU8sQ0FDTCxJQUFJLENBQUMsbUJBQW1CLEVBQUUsYUFBYTtZQUN2QyxJQUFJLENBQUMscUJBQXFCLEVBQUUsYUFBYSxDQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUNFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPO1lBQ2pDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQ3JDO1lBQ0EsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsV0FBVyxDQUFDO1NBQzlDO1FBQ0QsT0FBTyxtQkFBbUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2pDLEdBQUcsTUFBTTtZQUNULFFBQVEsRUFBRSxNQUFNLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxjQUFjLEVBQUUsRUFBRTtTQUNoRCxDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1NBQ2xCO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxDQUFTLEVBQUUsSUFBbUM7UUFDcEQsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ2pCLENBQUM7O2tIQTlFVSxxQkFBcUI7c0dBQXJCLHFCQUFxQixndEJDN0JsQyxpbklBNEhBOzJGRC9GYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUdaLHVCQUF1QixDQUFDLE1BQU07OEJBTS9DLE9BQU87c0JBRE4sS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sb0JBQW9CO3NCQURuQixLQUFLO2dCQU1OLE9BQU87c0JBRE4sS0FBSztnQkFJTixNQUFNO3NCQURMLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGVBQWU7c0JBRGQsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQU1OLGlCQUFpQjtzQkFEaEIsTUFBTTtnQkFJUCxvQkFBb0I7c0JBRG5CLE1BQU07Z0JBRzJCLG1CQUFtQjtzQkFBcEQsU0FBUzt1QkFBQyxxQkFBcUI7Z0JBQ0kscUJBQXFCO3NCQUF4RCxTQUFTO3VCQUFDLHVCQUF1Qjs7QUF1Q3BDLFdBQWlCLHFCQUFxQjtJQXdCcEMsU0FBZ0IsYUFBYSxDQUMzQixPQUFZLEVBQ1osUUFBaUIsS0FBSztRQUV0QixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDN0IsSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQztZQUMzQixjQUFjLEVBQUUsSUFBSTtZQUNwQixVQUFVLEVBQUUsSUFBSTtZQUNoQixTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUc7U0FDN0IsQ0FBQyxDQUFDO1FBRUgsT0FBTyxTQUFTLE1BQU0sQ0FBQyxLQUFhO1lBQ2xDLElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU8sT0FBTyxDQUFDO1lBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkMsT0FBTyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN6QixPQUFPO29CQUNMLEdBQUcsS0FBSyxDQUFDLElBQUk7b0JBQ2IscUJBQXFCLEVBQUU7d0JBQ3JCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDOzRCQUN2RCxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUM7cUJBQ25CO29CQUNELHdCQUF3QixFQUFFO3dCQUN4QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxLQUFLLFVBQVUsQ0FBQzs0QkFDMUQsRUFBRSxPQUFPLElBQUksRUFBRSxDQUFDO3FCQUNuQjtpQkFDRixDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUM7SUFDSixDQUFDO0lBNUJlLG1DQUFhLGdCQTRCNUIsQ0FBQTtJQUVELFNBQWdCLGNBQWMsQ0FDNUIsTUFBMEIsRUFDMUIsT0FBd0MsRUFDeEMsZ0JBQXdCLEdBQUc7UUFLM0IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUNoQixZQUFZLENBQUMsYUFBYSxDQUFDLEVBQzNCLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUNoQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN2QixHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQzdDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQzFDLENBQ0YsRUFDRCxRQUFRLEVBQUUsRUFDVixHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPO1NBQ3hELENBQUMsQ0FBQyxFQUNILFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQzNDLENBQUM7SUFDSixDQUFDO0lBdkJlLG9DQUFjLGlCQXVCN0IsQ0FBQTtBQUNILENBQUMsRUE5RWdCLHFCQUFxQixLQUFyQixxQkFBcUIsUUE4RXJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgZGVib3VuY2VUaW1lLFxuICBmcm9tLFxuICBtYXAsXG4gIHBhaXJ3aXNlLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi92aXN1YWxpemF0aW9uL2hpZ2hsaWdodC9oaWdobGlnaHQuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0TGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC1sYWJlbC9pbnB1dC1sYWJlbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtc2luZ2xlLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaW5nbGUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTaW5nbGVTZWxlY3RDb21wb25lbnQ8XG4gIFQgZXh0ZW5kcyBTaW5nbGVTZWxlY3RDb21wb25lbnQuT3B0aW9uLFxuPiBleHRlbmRzIElucHV0TGFiZWxDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBvcHRpb25zOiBUW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBzZWxlY3RlZE9wdGlvbjogVCB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlcmFiaWxpdHlPcHRpb25zOiBTaW5nbGVTZWxlY3RDb21wb25lbnQuRmlsdGVyYWJpbGl0eU9wdGlvbnMgPSB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gIH07XG5cbiAgQElucHV0KClcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGxvY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIG5vT3B0aW9uc01lc3NhZ2U6IHN0cmluZyA9ICdObyBhdmFpbGFibGUgb3B0aW9ucyc7XG5cbiAgQElucHV0KClcbiAgbm9kZVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgdHJpZ2dlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdTZWxlY3QuLi4nO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZmlsdGVyUXVlcnk6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXJRdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBPdXRwdXQoKVxuICBzZWxlY3RlZE9wdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICBAVmlld0NoaWxkKCdjdXN0b21UcmlnZ2VyQnV0dG9uJykgY3VzdG9tVHJpZ2dlckJ1dHRvbj86IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3N0YW5kYXJkVHJpZ2dlckJ1dHRvbicpIHN0YW5kYXJkVHJpZ2dlckJ1dHRvbj86IEVsZW1lbnRSZWY7XG5cbiAgZ2V0VHJpZ2dlcigpOiBFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY3VzdG9tVHJpZ2dlckJ1dHRvbj8ubmF0aXZlRWxlbWVudCA/P1xuICAgICAgdGhpcy5zdGFuZGFyZFRyaWdnZXJCdXR0b24/Lm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuICB9XG5cbiAgZ2V0RmlsdGVyUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmZpbHRlcmFiaWxpdHlPcHRpb25zLmVuYWJsZWQgJiZcbiAgICAgIHRoaXMuZmlsdGVyYWJpbGl0eU9wdGlvbnMucGxhY2Vob2xkZXJcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcmFiaWxpdHlPcHRpb25zLnBsYWNlaG9sZGVyO1xuICAgIH1cbiAgICByZXR1cm4gJ0ZpbHRlciBvcHRpb25zLi4uJztcbiAgfVxuXG4gIGdldE5vZGVzKCk6IFNpbmdsZVNlbGVjdENvbXBvbmVudC5Ob2RlPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubWFwKG9wdGlvbiA9PiAoe1xuICAgICAgLi4ub3B0aW9uLFxuICAgICAgc2VsZWN0ZWQ6IG9wdGlvbi5pZCA9PT0gdGhpcy5zZWxlY3RlZE9wdGlvbj8uaWQsXG4gICAgfSkpO1xuICB9XG5cbiAgYWxsb3dlZE9wZW4oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmxvY2tlZCkge1xuICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB0cmFja0J5KF86IG51bWJlciwgbm9kZTogU2luZ2xlU2VsZWN0Q29tcG9uZW50Lk5vZGU8VD4pIHtcbiAgICByZXR1cm4gbm9kZS5pZDtcbiAgfVxuXG4gIG9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBTaW5nbGVTZWxlY3RDb21wb25lbnQge1xuICBleHBvcnQgdHlwZSBPcHRpb24gPSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgIGNvdW50PzogbnVtYmVyO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICB0aXRsZUhpZ2hsaWdodEluZGljZXM/OiBIaWdobGlnaHRDb21wb25lbnQuSGlnaGxpZ2h0SW5kaWNlc1tdO1xuICAgIHN1YnRpdGxlSGlnaGxpZ2h0SW5kaWNlcz86IEhpZ2hsaWdodENvbXBvbmVudC5IaWdobGlnaHRJbmRpY2VzW107XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgTm9kZTxUIGV4dGVuZHMgT3B0aW9uPiA9IFQgJiB7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgRmlsdGVyYWJpbGl0eU9wdGlvbnMgPVxuICAgIHwge1xuICAgICAgICBlbmFibGVkOiBmYWxzZTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZTtcbiAgICAgICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgICB9O1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRGaWx0ZXJTeW5jPFQgZXh0ZW5kcyBTaW5nbGVTZWxlY3RDb21wb25lbnQuT3B0aW9uPihcbiAgICBvcHRpb25zOiBUW10sXG4gICAgZXhhY3Q6IGJvb2xlYW4gPSBmYWxzZSxcbiAgKTogKHF1ZXJ5OiBzdHJpbmcpID0+IFRbXSB7XG4gICAgY29uc3QgZnVzZSA9IG5ldyBGdXNlKG9wdGlvbnMsIHtcbiAgICAgIGtleXM6IFsndGl0bGUnLCAnc3VidGl0bGUnXSxcbiAgICAgIGluY2x1ZGVNYXRjaGVzOiB0cnVlLFxuICAgICAgc2hvdWxkU29ydDogdHJ1ZSxcbiAgICAgIHRocmVzaG9sZDogZXhhY3QgPyAwLjAgOiAwLjYsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gZmlsdGVyKHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICAgIGlmICghcXVlcnkpIHJldHVybiBvcHRpb25zO1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGZ1c2Uuc2VhcmNoKHF1ZXJ5KTtcbiAgICAgIHJldHVybiBtYXRjaGVzLm1hcChtYXRjaCA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ubWF0Y2guaXRlbSxcbiAgICAgICAgICB0aXRsZUhpZ2hsaWdodEluZGljZXM6IFtcbiAgICAgICAgICAgIC4uLihtYXRjaC5tYXRjaGVzPy5maW5kKHJlc3VsdCA9PiByZXN1bHQua2V5ID09PSAndGl0bGUnKVxuICAgICAgICAgICAgICA/LmluZGljZXMgfHwgW10pLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3VidGl0bGVIaWdobGlnaHRJbmRpY2VzOiBbXG4gICAgICAgICAgICAuLi4obWF0Y2gubWF0Y2hlcz8uZmluZChyZXN1bHQgPT4gcmVzdWx0LmtleSA9PT0gJ3N1YnRpdGxlJylcbiAgICAgICAgICAgICAgPy5pbmRpY2VzIHx8IFtdKSxcbiAgICAgICAgICBdLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRGaWx0ZXJBc3luYzxUIGV4dGVuZHMgU2luZ2xlU2VsZWN0Q29tcG9uZW50Lk9wdGlvbj4oXG4gICAgcXVlcnkkOiBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgZmV0Y2hlcjogKHF1ZXJ5OiBzdHJpbmcpID0+IFByb21pc2U8VFtdPixcbiAgICBkZWJvdW5jZUlucHV0OiBudW1iZXIgPSAzMDAsXG4gICk6IE9ic2VydmFibGU8e1xuICAgIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgb3B0aW9uczogVFtdO1xuICB9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5JC5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKGRlYm91bmNlSW5wdXQpLFxuICAgICAgc3dpdGNoTWFwKHF1ZXJ5ID0+XG4gICAgICAgIGZyb20oZmV0Y2hlcihxdWVyeSkpLnBpcGUoXG4gICAgICAgICAgbWFwKG9wdGlvbnMgPT4gKHsgbG9hZGluZzogZmFsc2UsIG9wdGlvbnMgfSkpLFxuICAgICAgICAgIHN0YXJ0V2l0aCh7IGxvYWRpbmc6IHRydWUsIG9wdGlvbnM6IFtdIH0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIHBhaXJ3aXNlKCksXG4gICAgICBtYXAoKFtwcmV2aW91cywgbmV4dF0pID0+ICh7XG4gICAgICAgIGxvYWRpbmc6IG5leHQubG9hZGluZyxcbiAgICAgICAgb3B0aW9uczogbmV4dC5sb2FkaW5nID8gcHJldmlvdXMub3B0aW9ucyA6IG5leHQub3B0aW9ucyxcbiAgICAgIH0pKSxcbiAgICAgIHN0YXJ0V2l0aCh7IGxvYWRpbmc6IGZhbHNlLCBvcHRpb25zOiBbXSB9KSxcbiAgICApO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidHJpZ2dlclRlbXBsYXRlOyBlbHNlIHN0YW5kYXJkVHJpZ2dlclwiPlxuICA8YnV0dG9uXG4gICAgI2N1c3RvbVRyaWdnZXJCdXR0b25cbiAgICAoY2xpY2spPVwiYWxsb3dlZE9wZW4oKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvY2tlZFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cmlnZ2VyVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2VsZWN0ZWRPcHRpb24gfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2J1dHRvbj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNzdGFuZGFyZFRyaWdnZXI+XG4gIDxyaXYtaW5wdXQtbGFiZWxcbiAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgIFtoZWxwXT1cImhlbHBcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2xhYmVsQWN0aW9uVGV4dF09XCJsYWJlbEFjdGlvblRleHRcIlxuICAgIChsYWJlbEFjdGlvbik9XCJsYWJlbEFjdGlvbi5lbWl0KCRldmVudClcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgI3N0YW5kYXJkVHJpZ2dlckJ1dHRvblxuICAgICAgY2xhc3M9XCJ0cmlnZ2VyXCJcbiAgICAgIChjbGljayk9XCJhbGxvd2VkT3BlbigpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2NrZWRcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkT3B0aW9uOyBlbHNlIHBsYWNlaG9sZGVyVmFsdWVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IHNlbGVjdGVkT3B0aW9uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyVmFsdWU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWUgcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlciB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8c3BhbiBjbGFzcz1cImNoZXZyb25cIj5cbiAgICAgICAgPHJpdi1pY29uICpuZ0lmPVwiIWxvY2tlZFwiIFtuYW1lXT1cIidDaGV2cm9uRG93bidcIiBbc2l6ZV09XCIxNlwiPjwvcml2LWljb24+XG4gICAgICAgIDxyaXYtaWNvbiAqbmdJZj1cImxvY2tlZFwiIFtuYW1lXT1cIidMb2NrJ1wiIFtzaXplXT1cIjE2XCI+PC9yaXYtaWNvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9yaXYtaW5wdXQtbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuXG48cml2LWNhbGxvdXRcbiAgKm5nSWY9XCJvcGVuXCJcbiAgW2FuY2hvcl09XCJnZXRUcmlnZ2VyKClcIlxuICBbdGhlbWVdPVwiJ2xpZ2h0J1wiXG4gIFtzaG93Q2FyZXRdPVwiZmFsc2VcIlxuICBbYWxsb3dlZFBvc2l0aW9uc109XCJbXG4gICAgJ3RvcC1sZWZ0JyxcbiAgICAndG9wLWNlbnRlcicsXG4gICAgJ3RvcC1yaWdodCcsXG4gICAgJ2JvdHRvbS1yaWdodCcsXG4gICAgJ2JvdHRvbS1jZW50ZXInLFxuICAgICdib3R0b20tbGVmdCdcbiAgXVwiXG4gIChjbG9zZSk9XCJvcGVuID0gZmFsc2VcIlxuPlxuICA8aW5wdXRcbiAgICAqbmdJZj1cImZpbHRlcmFiaWxpdHlPcHRpb25zLmVuYWJsZWRcIlxuICAgICNmaWx0ZXJcbiAgICBjbGFzcz1cImZpbHRlclwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImdldEZpbHRlclBsYWNlaG9sZGVyKClcIlxuICAgIFt2YWx1ZV09XCJmaWx0ZXJRdWVyeVwiXG4gICAgKGlucHV0KT1cImZpbHRlclF1ZXJ5ID0gZmlsdGVyLnZhbHVlOyBmaWx0ZXJRdWVyeUNoYW5nZS5lbWl0KGZpbHRlclF1ZXJ5KVwiXG4gIC8+XG4gIDxkaXYgY2xhc3M9XCJvcHRpb25zXCI+XG4gICAgPHJpdi1sb2FkaW5nLWNvdmVyIFtsb2FkaW5nXT1cImxvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXROb2RlcygpOyBsZXQgbm9kZXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vZGVzLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBub2RlIG9mIG5vZGVzOyB0cmFja0J5OiB0cmFja0J5XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZVRlbXBsYXRlOyBlbHNlIHN0YW5kYXJkVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLXNpbmdsZS1zZWxlY3Qtbm9kZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm5vZGUuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZE9wdGlvbkNoYW5nZS5lbWl0KG5vZGUpOyBvcGVuID0gZmFsc2VcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibm9kZVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IG5vZGUgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzdGFuZGFyZFRlbXBsYXRlPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaW5nbGUtc2VsZWN0LW5vZGVcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJub2RlPy5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIm5vZGU/LmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibm9kZT8uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZE9wdGlvbkNoYW5nZS5lbWl0KG5vZGUpOyBvcGVuID0gZmFsc2VcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHJpdi1pY29uXG4gICAgICAgICAgICAgICAgICBbbmFtZV09XCInQ2hlY2snXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwibm9kZT8uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgW3NpemVdPVwiMTZcIlxuICAgICAgICAgICAgICAgID48L3Jpdi1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHJpdi1oaWdobGlnaHRcbiAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJub2RlPy50aXRsZSB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2luZGljZXNdPVwibm9kZT8udGl0bGVIaWdobGlnaHRJbmRpY2VzIHx8IFtdXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvcml2LWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibm9kZT8uc3VidGl0bGVcIiBjbGFzcz1cImxhYmVsLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxyaXYtaGlnaGxpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwibm9kZT8uc3VidGl0bGUgfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbmRpY2VzXT1cIm5vZGU/LnN1YnRpdGxlSGlnaGxpZ2h0SW5kaWNlcyB8fCBbXVwiXG4gICAgICAgICAgICAgICAgICAgID48L3Jpdi1oaWdobGlnaHQ+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICAgICAge3sgbm9PcHRpb25zTWVzc2FnZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9yaXYtbG9hZGluZy1jb3Zlcj5cbiAgPC9kaXY+XG48L3Jpdi1jYWxsb3V0PlxuIl19
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2luZ2xlLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi9pbnB1dC9zaW5nbGUtc2VsZWN0L3NpbmdsZS1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvaW5wdXQvc2luZ2xlLXNlbGVjdC9zaW5nbGUtc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLElBQUksTUFBTSxTQUFTLENBQUM7QUFDM0IsT0FBTyxFQUVMLFlBQVksRUFDWixJQUFJLEVBQ0osR0FBRyxFQUNILFFBQVEsRUFDUixTQUFTLEVBQ1QsU0FBUyxHQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7Ozs7Ozs7O0FBUTNFLE1BQU0sT0FBTyxxQkFFWCxTQUFRLG1CQUFtQjtJQVI3Qjs7UUFVRSxZQUFPLEdBQVEsRUFBRSxDQUFDO1FBR2xCLG1CQUFjLEdBQWEsSUFBSSxDQUFDO1FBR2hDLHlCQUFvQixHQUErQztZQUNqRSxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7UUFHRixZQUFPLEdBQVksS0FBSyxDQUFDO1FBR3pCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFHeEIscUJBQWdCLEdBQVcsc0JBQXNCLENBQUM7UUFTbEQsZ0JBQVcsR0FBVyxXQUFXLENBQUM7UUFHbEMsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUd6QixzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRy9DLHlCQUFvQixH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QUFDO0lBdkJlLG9DQUFjLGlCQXVCN0IsQ0FBQTtBQUNILENBQUMsRUE5RWdCLHFCQUFxQixLQUFyQixxQkFBcUIsUUE4RXJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBGdXNlIGZyb20gJ2Z1c2UuanMnO1xuaW1wb3J0IHtcbiAgT2JzZXJ2YWJsZSxcbiAgZGVib3VuY2VUaW1lLFxuICBmcm9tLFxuICBtYXAsXG4gIHBhaXJ3aXNlLFxuICBzdGFydFdpdGgsXG4gIHN3aXRjaE1hcCxcbn0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBIaWdobGlnaHRDb21wb25lbnQgfSBmcm9tICcuLi8uLi92aXN1YWxpemF0aW9uL2hpZ2hsaWdodC9oaWdobGlnaHQuY29tcG9uZW50JztcbmltcG9ydCB7IElucHV0TGFiZWxDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC1sYWJlbC9pbnB1dC1sYWJlbC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtc2luZ2xlLXNlbGVjdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zaW5nbGUtc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2luZ2xlLXNlbGVjdC5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTaW5nbGVTZWxlY3RDb21wb25lbnQ8XG4gIFQgZXh0ZW5kcyBTaW5nbGVTZWxlY3RDb21wb25lbnQuT3B0aW9uLFxuPiBleHRlbmRzIElucHV0TGFiZWxDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBvcHRpb25zOiBUW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBzZWxlY3RlZE9wdGlvbjogVCB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIGZpbHRlcmFiaWxpdHlPcHRpb25zOiBTaW5nbGVTZWxlY3RDb21wb25lbnQuRmlsdGVyYWJpbGl0eU9wdGlvbnMgPSB7XG4gICAgZW5hYmxlZDogZmFsc2UsXG4gIH07XG5cbiAgQElucHV0KClcbiAgbG9hZGluZzogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGxvY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIG5vT3B0aW9uc01lc3NhZ2U6IHN0cmluZyA9ICdObyBhdmFpbGFibGUgb3B0aW9ucyc7XG5cbiAgQElucHV0KClcbiAgbm9kZVRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgdHJpZ2dlclRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgcGxhY2Vob2xkZXI6IHN0cmluZyA9ICdTZWxlY3QuLi4nO1xuXG4gIEBJbnB1dCgpXG4gIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgZmlsdGVyUXVlcnk6IHN0cmluZyA9ICcnO1xuXG4gIEBPdXRwdXQoKVxuICBmaWx0ZXJRdWVyeUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIEBPdXRwdXQoKVxuICBzZWxlY3RlZE9wdGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICBAVmlld0NoaWxkKCdjdXN0b21UcmlnZ2VyQnV0dG9uJykgY3VzdG9tVHJpZ2dlckJ1dHRvbj86IEVsZW1lbnRSZWY7XG4gIEBWaWV3Q2hpbGQoJ3N0YW5kYXJkVHJpZ2dlckJ1dHRvbicpIHN0YW5kYXJkVHJpZ2dlckJ1dHRvbj86IEVsZW1lbnRSZWY7XG5cbiAgZ2V0VHJpZ2dlcigpOiBFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY3VzdG9tVHJpZ2dlckJ1dHRvbj8ubmF0aXZlRWxlbWVudCA/P1xuICAgICAgdGhpcy5zdGFuZGFyZFRyaWdnZXJCdXR0b24/Lm5hdGl2ZUVsZW1lbnRcbiAgICApO1xuICB9XG5cbiAgZ2V0RmlsdGVyUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLmZpbHRlcmFiaWxpdHlPcHRpb25zLmVuYWJsZWQgJiZcbiAgICAgIHRoaXMuZmlsdGVyYWJpbGl0eU9wdGlvbnMucGxhY2Vob2xkZXJcbiAgICApIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcmFiaWxpdHlPcHRpb25zLnBsYWNlaG9sZGVyO1xuICAgIH1cbiAgICByZXR1cm4gJ0ZpbHRlciBvcHRpb25zLi4uJztcbiAgfVxuXG4gIGdldE5vZGVzKCk6IFNpbmdsZVNlbGVjdENvbXBvbmVudC5Ob2RlPFQ+W10ge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMubWFwKG9wdGlvbiA9PiAoe1xuICAgICAgLi4ub3B0aW9uLFxuICAgICAgc2VsZWN0ZWQ6IG9wdGlvbi5pZCA9PT0gdGhpcy5zZWxlY3RlZE9wdGlvbj8uaWQsXG4gICAgfSkpO1xuICB9XG5cbiAgYWxsb3dlZE9wZW4oKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmxvY2tlZCkge1xuICAgICAgdGhpcy5vcGVuID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICB0cmFja0J5KF86IG51bWJlciwgbm9kZTogU2luZ2xlU2VsZWN0Q29tcG9uZW50Lk5vZGU8VD4pIHtcbiAgICByZXR1cm4gbm9kZS5pZDtcbiAgfVxuXG4gIG9wZW46IGJvb2xlYW4gPSBmYWxzZTtcbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBTaW5nbGVTZWxlY3RDb21wb25lbnQge1xuICBleHBvcnQgdHlwZSBPcHRpb24gPSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIHN1YnRpdGxlPzogc3RyaW5nO1xuICAgIGNvdW50PzogbnVtYmVyO1xuICAgIGRpc2FibGVkPzogYm9vbGVhbjtcbiAgICB0aXRsZUhpZ2hsaWdodEluZGljZXM/OiBIaWdobGlnaHRDb21wb25lbnQuSGlnaGxpZ2h0SW5kaWNlc1tdO1xuICAgIHN1YnRpdGxlSGlnaGxpZ2h0SW5kaWNlcz86IEhpZ2hsaWdodENvbXBvbmVudC5IaWdobGlnaHRJbmRpY2VzW107XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgTm9kZTxUIGV4dGVuZHMgT3B0aW9uPiA9IFQgJiB7XG4gICAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIH07XG5cbiAgZXhwb3J0IHR5cGUgRmlsdGVyYWJpbGl0eU9wdGlvbnMgPVxuICAgIHwge1xuICAgICAgICBlbmFibGVkOiBmYWxzZTtcbiAgICAgIH1cbiAgICB8IHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZTtcbiAgICAgICAgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgICB9O1xuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRGaWx0ZXJTeW5jPFQgZXh0ZW5kcyBTaW5nbGVTZWxlY3RDb21wb25lbnQuT3B0aW9uPihcbiAgICBvcHRpb25zOiBUW10sXG4gICAgZXhhY3Q6IGJvb2xlYW4gPSBmYWxzZSxcbiAgKTogKHF1ZXJ5OiBzdHJpbmcpID0+IFRbXSB7XG4gICAgY29uc3QgZnVzZSA9IG5ldyBGdXNlKG9wdGlvbnMsIHtcbiAgICAgIGtleXM6IFsndGl0bGUnLCAnc3VidGl0bGUnXSxcbiAgICAgIGluY2x1ZGVNYXRjaGVzOiB0cnVlLFxuICAgICAgc2hvdWxkU29ydDogdHJ1ZSxcbiAgICAgIHRocmVzaG9sZDogZXhhY3QgPyAwLjAgOiAwLjYsXG4gICAgfSk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gZmlsdGVyKHF1ZXJ5OiBzdHJpbmcpIHtcbiAgICAgIGlmICghcXVlcnkpIHJldHVybiBvcHRpb25zO1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGZ1c2Uuc2VhcmNoKHF1ZXJ5KTtcbiAgICAgIHJldHVybiBtYXRjaGVzLm1hcChtYXRjaCA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ubWF0Y2guaXRlbSxcbiAgICAgICAgICB0aXRsZUhpZ2hsaWdodEluZGljZXM6IFtcbiAgICAgICAgICAgIC4uLihtYXRjaC5tYXRjaGVzPy5maW5kKHJlc3VsdCA9PiByZXN1bHQua2V5ID09PSAndGl0bGUnKVxuICAgICAgICAgICAgICA/LmluZGljZXMgfHwgW10pLFxuICAgICAgICAgIF0sXG4gICAgICAgICAgc3VidGl0bGVIaWdobGlnaHRJbmRpY2VzOiBbXG4gICAgICAgICAgICAuLi4obWF0Y2gubWF0Y2hlcz8uZmluZChyZXN1bHQgPT4gcmVzdWx0LmtleSA9PT0gJ3N1YnRpdGxlJylcbiAgICAgICAgICAgICAgPy5pbmRpY2VzIHx8IFtdKSxcbiAgICAgICAgICBdLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfTtcbiAgfVxuXG4gIGV4cG9ydCBmdW5jdGlvbiBnZXRGaWx0ZXJBc3luYzxUIGV4dGVuZHMgU2luZ2xlU2VsZWN0Q29tcG9uZW50Lk9wdGlvbj4oXG4gICAgcXVlcnkkOiBPYnNlcnZhYmxlPHN0cmluZz4sXG4gICAgZmV0Y2hlcjogKHF1ZXJ5OiBzdHJpbmcpID0+IFByb21pc2U8VFtdPixcbiAgICBkZWJvdW5jZUlucHV0OiBudW1iZXIgPSAzMDAsXG4gICk6IE9ic2VydmFibGU8e1xuICAgIGxvYWRpbmc6IGJvb2xlYW47XG4gICAgb3B0aW9uczogVFtdO1xuICB9PiB7XG4gICAgcmV0dXJuIHF1ZXJ5JC5waXBlKFxuICAgICAgZGVib3VuY2VUaW1lKGRlYm91bmNlSW5wdXQpLFxuICAgICAgc3dpdGNoTWFwKHF1ZXJ5ID0+XG4gICAgICAgIGZyb20oZmV0Y2hlcihxdWVyeSkpLnBpcGUoXG4gICAgICAgICAgbWFwKG9wdGlvbnMgPT4gKHsgbG9hZGluZzogZmFsc2UsIG9wdGlvbnMgfSkpLFxuICAgICAgICAgIHN0YXJ0V2l0aCh7IGxvYWRpbmc6IHRydWUsIG9wdGlvbnM6IFtdIH0pLFxuICAgICAgICApLFxuICAgICAgKSxcbiAgICAgIHBhaXJ3aXNlKCksXG4gICAgICBtYXAoKFtwcmV2aW91cywgbmV4dF0pID0+ICh7XG4gICAgICAgIGxvYWRpbmc6IG5leHQubG9hZGluZyxcbiAgICAgICAgb3B0aW9uczogbmV4dC5sb2FkaW5nID8gcHJldmlvdXMub3B0aW9ucyA6IG5leHQub3B0aW9ucyxcbiAgICAgIH0pKSxcbiAgICAgIHN0YXJ0V2l0aCh7IGxvYWRpbmc6IGZhbHNlLCBvcHRpb25zOiBbXSB9KSxcbiAgICApO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwidHJpZ2dlclRlbXBsYXRlOyBlbHNlIHN0YW5kYXJkVHJpZ2dlclwiPlxuICA8YnV0dG9uXG4gICAgI2N1c3RvbVRyaWdnZXJCdXR0b25cbiAgICAoY2xpY2spPVwiYWxsb3dlZE9wZW4oKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8IGxvY2tlZFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gID5cbiAgICA8bmctY29udGFpbmVyXG4gICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cmlnZ2VyVGVtcGxhdGVcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgc2VsZWN0ZWRPcHRpb24gfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L2J1dHRvbj5cbjwvbmctY29udGFpbmVyPlxuPG5nLXRlbXBsYXRlICNzdGFuZGFyZFRyaWdnZXI+XG4gIDxyaXYtaW5wdXQtbGFiZWxcbiAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgIFtoZWxwXT1cImhlbHBcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2xhYmVsQWN0aW9uVGV4dF09XCJsYWJlbEFjdGlvblRleHRcIlxuICAgIChsYWJlbEFjdGlvbik9XCJsYWJlbEFjdGlvbi5lbWl0KCRldmVudClcIlxuICA+XG4gICAgPGJ1dHRvblxuICAgICAgI3N0YW5kYXJkVHJpZ2dlckJ1dHRvblxuICAgICAgY2xhc3M9XCJ0cmlnZ2VyXCJcbiAgICAgIChjbGljayk9XCJhbGxvd2VkT3BlbigpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCBsb2NrZWRcIlxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNlbGVjdGVkT3B0aW9uOyBlbHNlIHBsYWNlaG9sZGVyVmFsdWVcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ2YWx1ZVwiPnt7IHNlbGVjdGVkT3B0aW9uLnRpdGxlIH19PC9zcGFuPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyVmFsdWU+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwidmFsdWUgcGxhY2Vob2xkZXJcIj57eyBwbGFjZWhvbGRlciB9fTwvc3Bhbj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8c3BhbiBjbGFzcz1cImNoZXZyb25cIj5cbiAgICAgICAgPHJpdi1pY29uICpuZ0lmPVwiIWxvY2tlZFwiIFtuYW1lXT1cIidDaGV2cm9uRG93bidcIiBbc2l6ZV09XCIxNlwiPjwvcml2LWljb24+XG4gICAgICAgIDxyaXYtaWNvbiAqbmdJZj1cImxvY2tlZFwiIFtuYW1lXT1cIidMb2NrJ1wiIFtzaXplXT1cIjE2XCI+PC9yaXYtaWNvbj5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9yaXYtaW5wdXQtbGFiZWw+XG48L25nLXRlbXBsYXRlPlxuXG48cml2LWNhbGxvdXRcbiAgKm5nSWY9XCJvcGVuXCJcbiAgW2FuY2hvcl09XCJnZXRUcmlnZ2VyKClcIlxuICBbdGhlbWVdPVwiJ2xpZ2h0J1wiXG4gIFtzaG93Q2FyZXRdPVwiZmFsc2VcIlxuICBbYWxsb3dlZFBvc2l0aW9uc109XCJbXG4gICAgJ3RvcC1sZWZ0JyxcbiAgICAndG9wLWNlbnRlcicsXG4gICAgJ3RvcC1yaWdodCcsXG4gICAgJ2JvdHRvbS1yaWdodCcsXG4gICAgJ2JvdHRvbS1jZW50ZXInLFxuICAgICdib3R0b20tbGVmdCdcbiAgXVwiXG4gIChjbG9zZSk9XCJvcGVuID0gZmFsc2VcIlxuPlxuICA8aW5wdXRcbiAgICAqbmdJZj1cImZpbHRlcmFiaWxpdHlPcHRpb25zLmVuYWJsZWRcIlxuICAgICNmaWx0ZXJcbiAgICBjbGFzcz1cImZpbHRlclwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImdldEZpbHRlclBsYWNlaG9sZGVyKClcIlxuICAgIFt2YWx1ZV09XCJmaWx0ZXJRdWVyeVwiXG4gICAgKGlucHV0KT1cImZpbHRlclF1ZXJ5ID0gZmlsdGVyLnZhbHVlOyBmaWx0ZXJRdWVyeUNoYW5nZS5lbWl0KGZpbHRlclF1ZXJ5KVwiXG4gIC8+XG4gIDxkaXYgY2xhc3M9XCJvcHRpb25zXCI+XG4gICAgPHJpdi1sb2FkaW5nLWNvdmVyIFtsb2FkaW5nXT1cImxvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJnZXROb2RlcygpOyBsZXQgbm9kZXNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm5vZGVzLmxlbmd0aCA+IDA7IGVsc2UgZW1wdHlcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBub2RlIG9mIG5vZGVzOyB0cmFja0J5OiB0cmFja0J5XCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9kZVRlbXBsYXRlOyBlbHNlIHN0YW5kYXJkVGVtcGxhdGVcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLXNpbmdsZS1zZWxlY3Qtbm9kZVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIm5vZGUuZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZE9wdGlvbkNoYW5nZS5lbWl0KG5vZGUpOyBvcGVuID0gZmFsc2VcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwibm9kZVRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IG5vZGUgfVwiXG4gICAgICAgICAgICAgICAgPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNzdGFuZGFyZFRlbXBsYXRlPlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJzaW5nbGUtc2VsZWN0LW5vZGVcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJub2RlPy5zZWxlY3RlZFwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIm5vZGU/LmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibm9kZT8uZGlzYWJsZWRcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RlZE9wdGlvbkNoYW5nZS5lbWl0KG5vZGUpOyBvcGVuID0gZmFsc2VcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPHJpdi1pY29uXG4gICAgICAgICAgICAgICAgICBbbmFtZV09XCInQ2hlY2snXCJcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwibm9kZT8uc2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgICAgW3NpemVdPVwiMTZcIlxuICAgICAgICAgICAgICAgID48L3Jpdi1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWwtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgPHJpdi1oaWdobGlnaHRcbiAgICAgICAgICAgICAgICAgICAgICBbdGV4dF09XCJub2RlPy50aXRsZSB8fCAnJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2luZGljZXNdPVwibm9kZT8udGl0bGVIaWdobGlnaHRJbmRpY2VzIHx8IFtdXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvcml2LWhpZ2hsaWdodD5cbiAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwibm9kZT8uc3VidGl0bGVcIiBjbGFzcz1cImxhYmVsLXN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxyaXYtaGlnaGxpZ2h0XG4gICAgICAgICAgICAgICAgICAgICAgW3RleHRdPVwibm9kZT8uc3VidGl0bGUgfHwgJydcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbmRpY2VzXT1cIm5vZGU/LnN1YnRpdGxlSGlnaGxpZ2h0SW5kaWNlcyB8fCBbXVwiXG4gICAgICAgICAgICAgICAgICAgID48L3Jpdi1oaWdobGlnaHQ+XG4gICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJlbXB0eVwiPlxuICAgICAgICAgICAge3sgbm9PcHRpb25zTWVzc2FnZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9yaXYtbG9hZGluZy1jb3Zlcj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJmb290ZXJcIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyXVwiPiA8L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9yaXYtY2FsbG91dD5cbiJdfQ==
|
|
@@ -9,6 +9,7 @@ export class DonutComponent {
|
|
|
9
9
|
this.displayLabel = '';
|
|
10
10
|
this.displayValue = '';
|
|
11
11
|
this.data = [];
|
|
12
|
+
this.size = 'medium';
|
|
12
13
|
this.HEIGHT = 256;
|
|
13
14
|
}
|
|
14
15
|
get arcPaths() {
|
|
@@ -32,10 +33,10 @@ export class DonutComponent {
|
|
|
32
33
|
}
|
|
33
34
|
}
|
|
34
35
|
DonutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DonutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
35
|
-
DonutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DonutComponent, selector: "riv-donut", inputs: { displayLabel: "displayLabel", displayValue: "displayValue", data: "data", displayTooltip: "displayTooltip" }, ngImport: i0, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\" [rivTooltip]=\"displayTooltip\"
|
|
36
|
+
DonutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DonutComponent, selector: "riv-donut", inputs: { displayLabel: "displayLabel", displayValue: "displayValue", data: "data", displayTooltip: "displayTooltip", size: "size" }, ngImport: i0, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\" [ngClass]=\"size\" [rivTooltip]=\"displayTooltip\">\n {{ displayValue }}\n </div>\n <div class=\"label\">{{ displayLabel }}</div>\n </div>\n</div>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n", styles: [".container{display:grid;grid-template-rows:1fr;grid-template-columns:1fr;justify-items:center;align-items:center}svg{grid-row:1 / 1;grid-column:1 / 1}.display{grid-row:1 / 1;grid-column:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--size-small)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast)}.value,.label{text-shadow:0 0 var(--size-small) var(--surface-light-0),0 0 var(--size-xsmall) var(--surface-light-0)}.value.xsmall{font:var(--stat-xsmall)}.value.small{font:var(--stat-small)}.value.medium{font:var(--stat-medium)}.value.large{font:var(--stat-large)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i2.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipCloseDelay"] }, { kind: "component", type: i3.ZeroStateComponent, selector: "riv-zero-state", inputs: ["message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
36
37
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DonutComponent, decorators: [{
|
|
37
38
|
type: Component,
|
|
38
|
-
args: [{ selector: 'riv-donut', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\" [rivTooltip]=\"displayTooltip\"
|
|
39
|
+
args: [{ selector: 'riv-donut', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\" [ngClass]=\"size\" [rivTooltip]=\"displayTooltip\">\n {{ displayValue }}\n </div>\n <div class=\"label\">{{ displayLabel }}</div>\n </div>\n</div>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n", styles: [".container{display:grid;grid-template-rows:1fr;grid-template-columns:1fr;justify-items:center;align-items:center}svg{grid-row:1 / 1;grid-column:1 / 1}.display{grid-row:1 / 1;grid-column:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--size-small)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast)}.value,.label{text-shadow:0 0 var(--size-small) var(--surface-light-0),0 0 var(--size-xsmall) var(--surface-light-0)}.value.xsmall{font:var(--stat-xsmall)}.value.small{font:var(--stat-small)}.value.medium{font:var(--stat-medium)}.value.large{font:var(--stat-large)}\n"] }]
|
|
39
40
|
}], propDecorators: { displayLabel: [{
|
|
40
41
|
type: Input
|
|
41
42
|
}], displayValue: [{
|
|
@@ -44,5 +45,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
44
45
|
type: Input
|
|
45
46
|
}], displayTooltip: [{
|
|
46
47
|
type: Input
|
|
48
|
+
}], size: [{
|
|
49
|
+
type: Input
|
|
47
50
|
}] } });
|
|
48
|
-
|
|
51
|
+
(function (DonutComponent) {
|
|
52
|
+
DonutComponent.Sizes = ['xsmall', 'small', 'medium', 'large'];
|
|
53
|
+
})(DonutComponent || (DonutComponent = {}));
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9udXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcml2L3NyYy9saWIvdmlzdWFsaXphdGlvbi9kb251dC9kb251dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi92aXN1YWxpemF0aW9uL2RvbnV0L2RvbnV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sVUFBVSxDQUFDOzs7OztBQVFwQyxNQUFNLE9BQU8sY0FBYztJQU4zQjtRQVFFLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRzFCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBRzFCLFNBQUksR0FBK0IsRUFBRSxDQUFDO1FBTXRDLFNBQUksR0FBd0IsUUFBUSxDQUFDO1FBRTVCLFdBQU0sR0FBRyxHQUFHLENBQUM7S0EyQnZCO0lBekJDLElBQUksUUFBUTtRQUNWLE1BQU0sS0FBSyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxHQUFHLENBQUM7UUFDdEMsTUFBTSxLQUFLLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUN6QixNQUFNLE9BQU8sR0FBRyxHQUFHLEVBQTRCO2FBQzVDLFVBQVUsQ0FBQyxJQUFJLENBQUM7YUFDaEIsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQyxPQUFPLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDMUIsR0FBRyxFQUE0QjthQUM1QixXQUFXLENBQUMsS0FBSyxDQUFDO2FBQ2xCLFdBQVcsQ0FBQyxLQUFLLENBQUM7YUFDbEIsUUFBUSxDQUFDLEtBQUssQ0FBQzthQUNmLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDO2FBQzdCLFFBQVEsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUMxQyxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXO1FBQ3RCLE9BQU8sT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDO0lBQzdDLENBQUM7SUFFRCxJQUFJLEtBQUs7UUFDUCxPQUFPLENBQ0wsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FDdEUsQ0FBQztJQUNKLENBQUM7OzJHQTFDVSxjQUFjOytGQUFkLGNBQWMsdUxDVDNCLHdvQkF3QkE7MkZEZmEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU07OEJBSS9DLFlBQVk7c0JBRFgsS0FBSztnQkFJTixZQUFZO3NCQURYLEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLGNBQWM7c0JBRGIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7O0FBZ0NSLFdBQWlCLGNBQWM7SUFLaEIsb0JBQUssR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBVSxDQUFDO0FBRXZFLENBQUMsRUFQZ0IsY0FBYyxLQUFkLGNBQWMsUUFPOUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgYXJjLCBwaWUgfSBmcm9tICdkMy1zaGFwZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3Jpdi1kb251dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kb251dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RvbnV0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIERvbnV0Q29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgZGlzcGxheUxhYmVsOiBzdHJpbmcgPSAnJztcblxuICBASW5wdXQoKVxuICBkaXNwbGF5VmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIGRhdGE6IERvbnV0Q29tcG9uZW50LkRhdGFQb2ludFtdID0gW107XG5cbiAgQElucHV0KClcbiAgZGlzcGxheVRvb2x0aXA/OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgc2l6ZTogRG9udXRDb21wb25lbnQuU2l6ZSA9ICdtZWRpdW0nO1xuXG4gIHJlYWRvbmx5IEhFSUdIVCA9IDI1NjtcblxuICBnZXQgYXJjUGF0aHMoKSB7XG4gICAgY29uc3Qgb3V0ZXIgPSAodGhpcy5IRUlHSFQgLyAyKSAqIDAuOTtcbiAgICBjb25zdCBpbm5lciA9IG91dGVyIC0gMTI7XG4gICAgY29uc3QgcGllQXJjcyA9IHBpZTxEb251dENvbXBvbmVudC5EYXRhUG9pbnQ+KClcbiAgICAgIC5zb3J0VmFsdWVzKG51bGwpXG4gICAgICAudmFsdWUoZCA9PiBkLnZhbHVlKSh0aGlzLmRhdGEpO1xuICAgIHJldHVybiBwaWVBcmNzLm1hcChwaWVBcmMgPT5cbiAgICAgIGFyYzxEb251dENvbXBvbmVudC5EYXRhUG9pbnQ+KClcbiAgICAgICAgLmlubmVyUmFkaXVzKGlubmVyKVxuICAgICAgICAub3V0ZXJSYWRpdXMob3V0ZXIpXG4gICAgICAgIC5wYWRBbmdsZSgwLjAxMylcbiAgICAgICAgLnN0YXJ0QW5nbGUocGllQXJjLnN0YXJ0QW5nbGUpXG4gICAgICAgIC5lbmRBbmdsZShwaWVBcmMuZW5kQW5nbGUpKHBpZUFyYy5kYXRhKSxcbiAgICApO1xuICB9XG5cbiAgZ2V0RmlsbFN0eWxlKGlkeDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHZhcigke3RoaXMuZGF0YVtpZHhdLmNvbG9yVG9rZW59KWA7XG4gIH1cblxuICBnZXQgZW1wdHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuZGF0YS5sZW5ndGggPT09IDAgfHwgdGhpcy5kYXRhLmV2ZXJ5KHBvaW50ID0+IHBvaW50LnZhbHVlID09PSAwKVxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IG5hbWVzcGFjZSBEb251dENvbXBvbmVudCB7XG4gIGV4cG9ydCB0eXBlIERhdGFQb2ludCA9IHtcbiAgICB2YWx1ZTogbnVtYmVyO1xuICAgIGNvbG9yVG9rZW46IHN0cmluZztcbiAgfTtcbiAgZXhwb3J0IGNvbnN0IFNpemVzID0gWyd4c21hbGwnLCAnc21hbGwnLCAnbWVkaXVtJywgJ2xhcmdlJ10gYXMgY29uc3Q7XG4gIGV4cG9ydCB0eXBlIFNpemUgPSAodHlwZW9mIFNpemVzKVtudW1iZXJdO1xufVxuIiwiPGRpdiAqbmdJZj1cIiFlbXB0eTsgZWxzZSB6ZXJvU3RhdGVcIiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICA8c3ZnXG4gICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgd2lkdGg9XCIxMDAlXCJcbiAgICBbYXR0ci5oZWlnaHRdPVwiSEVJR0hUXCJcbiAgICB2aWV3Qm94PVwiLTEyOCAtMTI4IDI1NiAyNTZcIlxuICA+XG4gICAgPHBhdGhcbiAgICAgICpuZ0Zvcj1cImxldCBwYXRoIG9mIGFyY1BhdGhzOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgIFthdHRyLmRdPVwicGF0aFwiXG4gICAgICBbYXR0ci5maWxsXT1cImdldEZpbGxTdHlsZShpKVwiXG4gICAgPjwvcGF0aD5cbiAgPC9zdmc+XG4gIDxkaXYgY2xhc3M9XCJkaXNwbGF5XCI+XG4gICAgPGRpdiBjbGFzcz1cInZhbHVlXCIgW25nQ2xhc3NdPVwic2l6ZVwiIFtyaXZUb29sdGlwXT1cImRpc3BsYXlUb29sdGlwXCI+XG4gICAgICB7eyBkaXNwbGF5VmFsdWUgfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibGFiZWxcIj57eyBkaXNwbGF5TGFiZWwgfX08L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICN6ZXJvU3RhdGU+XG4gIDxyaXYtemVyby1zdGF0ZT48L3Jpdi16ZXJvLXN0YXRlPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
import * as i1 from "@angular/common";
|
|
4
|
-
import * as i2 from "../../
|
|
4
|
+
import * as i2 from "../../icon/icon.component";
|
|
5
|
+
import * as i3 from "../../modal/tooltip/tooltip.directive";
|
|
5
6
|
export class MetricComponent {
|
|
6
7
|
constructor() {
|
|
7
8
|
this.label = '';
|
|
@@ -16,10 +17,10 @@ export class MetricComponent {
|
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
19
|
MetricComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MetricComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19
|
-
MetricComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MetricComponent, selector: "riv-metric", inputs: { label: "label", value: "value", size: "size", card: "card", help: "help", align: "align", valueColorToken: "valueColorToken" }, ngImport: i0, template: "<div *ngIf=\"card; else content\" class=\"card\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<ng-template #content>\n <div class=\"label\" [ngClass]=\"align\">\n {{ label }}
|
|
20
|
+
MetricComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MetricComponent, selector: "riv-metric", inputs: { label: "label", value: "value", size: "size", card: "card", help: "help", align: "align", valueColorToken: "valueColorToken" }, ngImport: i0, template: "<div *ngIf=\"card; else content\" class=\"card\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<ng-template #content>\n <div class=\"label\" [ngClass]=\"align\">\n {{ label }}\n <span *ngIf=\"help\"\n ><riv-icon [rivTooltip]=\"help\" [name]=\"'Info'\" [size]=\"12\"></riv-icon>\n </span>\n </div>\n <div class=\"content\" [ngClass]=\"align\">\n <div class=\"value\" [ngClass]=\"size\" [style.color]=\"valueColor\">\n {{ value }}\n </div>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".card{border-radius:var(--size-xsmall);border:var(--border-width) solid var(--border-light-blend);padding:var(--size-xlarge)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast);margin-bottom:var(--size-xsmall)}.value.xsmall{font:var(--stat-xsmall)}.value.small{font:var(--stat-small)}.value.medium{font:var(--stat-medium)}.value.large{font:var(--stat-large)}.content{display:flex;align-items:flex-end;gap:var(--size-small)}.right{text-align:end;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipCloseDelay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
20
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MetricComponent, decorators: [{
|
|
21
22
|
type: Component,
|
|
22
|
-
args: [{ selector: 'riv-metric', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"card; else content\" class=\"card\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<ng-template #content>\n <div class=\"label\" [ngClass]=\"align\">\n {{ label }}
|
|
23
|
+
args: [{ selector: 'riv-metric', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"card; else content\" class=\"card\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<ng-template #content>\n <div class=\"label\" [ngClass]=\"align\">\n {{ label }}\n <span *ngIf=\"help\"\n ><riv-icon [rivTooltip]=\"help\" [name]=\"'Info'\" [size]=\"12\"></riv-icon>\n </span>\n </div>\n <div class=\"content\" [ngClass]=\"align\">\n <div class=\"value\" [ngClass]=\"size\" [style.color]=\"valueColor\">\n {{ value }}\n </div>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".card{border-radius:var(--size-xsmall);border:var(--border-width) solid var(--border-light-blend);padding:var(--size-xlarge)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast);margin-bottom:var(--size-xsmall)}.value.xsmall{font:var(--stat-xsmall)}.value.small{font:var(--stat-small)}.value.medium{font:var(--stat-medium)}.value.large{font:var(--stat-large)}.content{display:flex;align-items:flex-end;gap:var(--size-small)}.right{text-align:end;justify-content:flex-end}\n"] }]
|
|
23
24
|
}], propDecorators: { label: [{
|
|
24
25
|
type: Input
|
|
25
26
|
}], value: [{
|
|
@@ -36,6 +37,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
36
37
|
type: Input
|
|
37
38
|
}] } });
|
|
38
39
|
(function (MetricComponent) {
|
|
39
|
-
MetricComponent.Sizes = ['small', 'medium', 'large'];
|
|
40
|
+
MetricComponent.Sizes = ['xsmall', 'small', 'medium', 'large'];
|
|
40
41
|
})(MetricComponent || (MetricComponent = {}));
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWV0cmljLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3Jpdi9zcmMvbGliL3Zpc3VhbGl6YXRpb24vbWV0cmljL21ldHJpYy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yaXYvc3JjL2xpYi92aXN1YWxpemF0aW9uL21ldHJpYy9tZXRyaWMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBUTFFLE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBUUUsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUduQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBR25CLFNBQUksR0FBeUIsUUFBUSxDQUFDO1FBR3RDLFNBQUksR0FBWSxLQUFLLENBQUM7UUFNdEIsVUFBSyxHQUFzQixNQUFNLENBQUM7UUFHbEMsb0JBQWUsR0FBWSw0QkFBNEIsQ0FBQztLQUt6RDtJQUhDLElBQUksVUFBVTtRQUNaLE9BQU8sT0FBTyxJQUFJLENBQUMsZUFBZSxHQUFHLENBQUM7SUFDeEMsQ0FBQzs7NEdBeEJVLGVBQWU7Z0dBQWYsZUFBZSw0TENSNUIseWlCQWlCQTsyRkRUYSxlQUFlO2tCQU4zQixTQUFTOytCQUNFLFlBQVksbUJBR0wsdUJBQXVCLENBQUMsTUFBTTs4QkFJL0MsS0FBSztzQkFESixLQUFLO2dCQUlOLEtBQUs7c0JBREosS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixLQUFLO3NCQURKLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxLQUFLOztBQVFSLFdBQWlCLGVBQWU7SUFDakIscUJBQUssR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBVSxDQUFDO0FBRXZFLENBQUMsRUFIZ0IsZUFBZSxLQUFmLGVBQWUsUUFHL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdyaXYtbWV0cmljJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21ldHJpYy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21ldHJpYy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNZXRyaWNDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBsYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgQElucHV0KClcbiAgdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpXG4gIHNpemU6IE1ldHJpY0NvbXBvbmVudC5TaXplID0gJ21lZGl1bSc7XG5cbiAgQElucHV0KClcbiAgY2FyZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGhlbHA/OiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgYWxpZ24/OiAnbGVmdCcgfCAncmlnaHQnID0gJ2xlZnQnO1xuXG4gIEBJbnB1dCgpXG4gIHZhbHVlQ29sb3JUb2tlbj86IHN0cmluZyA9ICctLXR5cGUtbGlnaHQtaGlnaC1jb250cmFzdCc7XG5cbiAgZ2V0IHZhbHVlQ29sb3IoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHZhcigke3RoaXMudmFsdWVDb2xvclRva2VufSlgO1xuICB9XG59XG5cbmV4cG9ydCBuYW1lc3BhY2UgTWV0cmljQ29tcG9uZW50IHtcbiAgZXhwb3J0IGNvbnN0IFNpemVzID0gWyd4c21hbGwnLCAnc21hbGwnLCAnbWVkaXVtJywgJ2xhcmdlJ10gYXMgY29uc3Q7XG4gIGV4cG9ydCB0eXBlIFNpemUgPSAodHlwZW9mIFNpemVzKVtudW1iZXJdO1xufVxuIiwiPGRpdiAqbmdJZj1cImNhcmQ7IGVsc2UgY29udGVudFwiIGNsYXNzPVwiY2FyZFwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJsYWJlbFwiIFtuZ0NsYXNzXT1cImFsaWduXCI+XG4gICAge3sgbGFiZWwgfX1cbiAgICA8c3BhbiAqbmdJZj1cImhlbHBcIlxuICAgICAgPjxyaXYtaWNvbiBbcml2VG9vbHRpcF09XCJoZWxwXCIgW25hbWVdPVwiJ0luZm8nXCIgW3NpemVdPVwiMTJcIj48L3Jpdi1pY29uPlxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCIgW25nQ2xhc3NdPVwiYWxpZ25cIj5cbiAgICA8ZGl2IGNsYXNzPVwidmFsdWVcIiBbbmdDbGFzc109XCJzaXplXCIgW3N0eWxlLmNvbG9yXT1cInZhbHVlQ29sb3JcIj5cbiAgICAgIHt7IHZhbHVlIH19XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1316,10 +1316,10 @@ class SingleSelectComponent extends InputLabelComponent {
|
|
|
1316
1316
|
}
|
|
1317
1317
|
}
|
|
1318
1318
|
SingleSelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SingleSelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1319
|
-
SingleSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SingleSelectComponent, selector: "riv-single-select", inputs: { options: "options", selectedOption: "selectedOption", filterabilityOptions: "filterabilityOptions", loading: "loading", locked: "locked", noOptionsMessage: "noOptionsMessage", nodeTemplate: "nodeTemplate", triggerTemplate: "triggerTemplate", placeholder: "placeholder", disabled: "disabled" }, outputs: { filterQueryChange: "filterQueryChange", selectedOptionChange: "selectedOptionChange" }, 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=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ selectedOption }\"\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 [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container *ngIf=\"selectedOption; else placeholderValue\">\n <span class=\"value\">{{ selectedOption.title }}</span>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon *ngIf=\"!locked\" [name]=\"'ChevronDown'\" [size]=\"16\"></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n</ng-template>\n\n<riv-callout\n *ngIf=\"open\"\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"[\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left'\n ]\"\n (close)=\"open = false\"\n>\n <input\n *ngIf=\"filterabilityOptions.enabled\"\n #filter\n class=\"filter\"\n [placeholder]=\"getFilterPlaceholder()\"\n [value]=\"filterQuery\"\n (input)=\"filterQuery = filter.value; filterQueryChange.emit(filterQuery)\"\n />\n <div class=\"options\">\n <riv-loading-cover [loading]=\"loading\">\n <ng-container *ngIf=\"getNodes(); let nodes\">\n <ng-container *ngIf=\"nodes.length > 0; else empty\">\n <ng-container *ngFor=\"let node of nodes; trackBy: trackBy\">\n <ng-container *ngIf=\"nodeTemplate; else standardTemplate\">\n <button\n class=\"custom-single-select-node\"\n [disabled]=\"node.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate\"\n [ngTemplateOutletContext]=\"{ node }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTemplate>\n <button\n class=\"single-select-node\"\n [class.selected]=\"node?.selected\"\n [class.disabled]=\"node?.disabled\"\n [disabled]=\"node?.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <riv-icon\n [name]=\"'Check'\"\n *ngIf=\"node?.selected\"\n [size]=\"16\"\n ></riv-icon>\n <span class=\"label\">\n <span class=\"label-title\">\n <riv-highlight\n [text]=\"node?.title || ''\"\n [indices]=\"node?.titleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n <span *ngIf=\"node?.subtitle\" class=\"label-subtitle\">\n <riv-highlight\n [text]=\"node?.subtitle || ''\"\n [indices]=\"node?.subtitleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n </span>\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #empty>\n <div class=\"empty\">\n {{ noOptionsMessage }}\n </div>\n </ng-template>\n </ng-container>\n </riv-loading-cover>\n </div>\n</riv-callout>\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)}.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)}.value{font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small);flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-disabled)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-small);background-color:var(--surface-light-2);border-left:var(--border-width) solid var(--border-light)}.filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-disabled)}.options{max-height:50vh;max-width:calc(var(--base-grid-size) * 150);overflow-y:auto}.single-select-node{display:flex;align-items:center;overflow:hidden;flex-grow:1;text-align:left;padding:var(--size-xsmall) var(--size-xsmall) var(--size-xsmall) calc(var(--base-grid-size) * 6);width:100%}.single-select-node.selected{padding-left:var(--size-small)}.single-select-node:hover{background-color:var(--surface-light-2)}.single-select-node.disabled{cursor:default;background-color:var(--surface-light-0)}.single-select-node.disabled .label,.single-select-node.disabled .label-subtitle{color:var(--type-light-disabled)}.single-select-node riv-icon{flex-shrink:0}.single-select-node .label{font-size:calc(var(--base-grid-size) * 4);line-height:calc(var(--base-grid-size) * 6);overflow:hidden;text-overflow:ellipsis;white-space:pre;flex-grow:1;padding:0 calc(var(--base-grid-size) * 2)}.single-select-node .label-subtitle{padding-left:var(--base-grid-size);color:var(--type-light-low-contrast)}.custom-single-select-node{display:block;width:100%;text-align:left}.empty{padding:var(--size-medium);text-align:center;color:var(--type-light-disabled)}\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: CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "component", type: InputLabelComponent, selector: "riv-input-label", inputs: ["label", "help", "required", "labelActionText"], outputs: ["labelAction"] }, { kind: "component", type: LoadingCoverComponent, selector: "riv-loading-cover", inputs: ["loading", "loadingSize", "errorMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1319
|
+
SingleSelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: SingleSelectComponent, selector: "riv-single-select", inputs: { options: "options", selectedOption: "selectedOption", filterabilityOptions: "filterabilityOptions", loading: "loading", locked: "locked", noOptionsMessage: "noOptionsMessage", nodeTemplate: "nodeTemplate", triggerTemplate: "triggerTemplate", placeholder: "placeholder", disabled: "disabled" }, outputs: { filterQueryChange: "filterQueryChange", selectedOptionChange: "selectedOptionChange" }, 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=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ selectedOption }\"\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 [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container *ngIf=\"selectedOption; else placeholderValue\">\n <span class=\"value\">{{ selectedOption.title }}</span>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon *ngIf=\"!locked\" [name]=\"'ChevronDown'\" [size]=\"16\"></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n</ng-template>\n\n<riv-callout\n *ngIf=\"open\"\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"[\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left'\n ]\"\n (close)=\"open = false\"\n>\n <input\n *ngIf=\"filterabilityOptions.enabled\"\n #filter\n class=\"filter\"\n [placeholder]=\"getFilterPlaceholder()\"\n [value]=\"filterQuery\"\n (input)=\"filterQuery = filter.value; filterQueryChange.emit(filterQuery)\"\n />\n <div class=\"options\">\n <riv-loading-cover [loading]=\"loading\">\n <ng-container *ngIf=\"getNodes(); let nodes\">\n <ng-container *ngIf=\"nodes.length > 0; else empty\">\n <ng-container *ngFor=\"let node of nodes; trackBy: trackBy\">\n <ng-container *ngIf=\"nodeTemplate; else standardTemplate\">\n <button\n class=\"custom-single-select-node\"\n [disabled]=\"node.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate\"\n [ngTemplateOutletContext]=\"{ node }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTemplate>\n <button\n class=\"single-select-node\"\n [class.selected]=\"node?.selected\"\n [class.disabled]=\"node?.disabled\"\n [disabled]=\"node?.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <riv-icon\n [name]=\"'Check'\"\n *ngIf=\"node?.selected\"\n [size]=\"16\"\n ></riv-icon>\n <span class=\"label\">\n <span class=\"label-title\">\n <riv-highlight\n [text]=\"node?.title || ''\"\n [indices]=\"node?.titleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n <span *ngIf=\"node?.subtitle\" class=\"label-subtitle\">\n <riv-highlight\n [text]=\"node?.subtitle || ''\"\n [indices]=\"node?.subtitleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n </span>\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #empty>\n <div class=\"empty\">\n {{ noOptionsMessage }}\n </div>\n </ng-template>\n </ng-container>\n </riv-loading-cover>\n </div>\n <div class=\"footer\">\n <ng-content select=\"[footer]\"> </ng-content>\n </div>\n</riv-callout>\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)}.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)}.value{font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small);flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-disabled)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-small);background-color:var(--surface-light-2);border-left:var(--border-width) solid var(--border-light)}.filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-disabled)}.options{max-height:50vh;max-width:calc(var(--base-grid-size) * 150);overflow-y:auto}.single-select-node{display:flex;align-items:center;overflow:hidden;flex-grow:1;text-align:left;padding:var(--size-xsmall) var(--size-xsmall) var(--size-xsmall) calc(var(--base-grid-size) * 6);width:100%}.single-select-node.selected{padding-left:var(--size-small)}.single-select-node:hover{background-color:var(--surface-light-2)}.single-select-node.disabled{cursor:default;background-color:var(--surface-light-0)}.single-select-node.disabled .label,.single-select-node.disabled .label-subtitle{color:var(--type-light-disabled)}.single-select-node riv-icon{flex-shrink:0}.single-select-node .label{font-size:calc(var(--base-grid-size) * 4);line-height:calc(var(--base-grid-size) * 6);overflow:hidden;text-overflow:ellipsis;white-space:pre;flex-grow:1;padding:0 calc(var(--base-grid-size) * 2)}.single-select-node .label-subtitle{padding-left:var(--base-grid-size);color:var(--type-light-low-contrast)}.custom-single-select-node{display:block;width:100%;text-align:left}.empty{padding:var(--size-medium);text-align:center;color:var(--type-light-disabled)}.footer{border-top:var(--border-width) solid var(--border-light-blend);background-color:var(--surface-light-1);border-bottom-left-radius:var(--border-radius-medium);border-bottom-right-radius:var(--border-radius-medium)}\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: CalloutComponent, selector: "riv-callout", inputs: ["anchor", "isModal", "preferredPosition", "allowedPositions", "fallbackDirection", "showCaret", "theme"], outputs: ["close"] }, { kind: "component", type: HighlightComponent, selector: "riv-highlight", inputs: ["text", "indices"] }, { kind: "component", type: IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "component", type: InputLabelComponent, selector: "riv-input-label", inputs: ["label", "help", "required", "labelActionText"], outputs: ["labelAction"] }, { kind: "component", type: LoadingCoverComponent, selector: "riv-loading-cover", inputs: ["loading", "loadingSize", "errorMessage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1320
1320
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: SingleSelectComponent, decorators: [{
|
|
1321
1321
|
type: Component,
|
|
1322
|
-
args: [{ selector: 'riv-single-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ selectedOption }\"\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 [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container *ngIf=\"selectedOption; else placeholderValue\">\n <span class=\"value\">{{ selectedOption.title }}</span>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon *ngIf=\"!locked\" [name]=\"'ChevronDown'\" [size]=\"16\"></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n</ng-template>\n\n<riv-callout\n *ngIf=\"open\"\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"[\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left'\n ]\"\n (close)=\"open = false\"\n>\n <input\n *ngIf=\"filterabilityOptions.enabled\"\n #filter\n class=\"filter\"\n [placeholder]=\"getFilterPlaceholder()\"\n [value]=\"filterQuery\"\n (input)=\"filterQuery = filter.value; filterQueryChange.emit(filterQuery)\"\n />\n <div class=\"options\">\n <riv-loading-cover [loading]=\"loading\">\n <ng-container *ngIf=\"getNodes(); let nodes\">\n <ng-container *ngIf=\"nodes.length > 0; else empty\">\n <ng-container *ngFor=\"let node of nodes; trackBy: trackBy\">\n <ng-container *ngIf=\"nodeTemplate; else standardTemplate\">\n <button\n class=\"custom-single-select-node\"\n [disabled]=\"node.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate\"\n [ngTemplateOutletContext]=\"{ node }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTemplate>\n <button\n class=\"single-select-node\"\n [class.selected]=\"node?.selected\"\n [class.disabled]=\"node?.disabled\"\n [disabled]=\"node?.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <riv-icon\n [name]=\"'Check'\"\n *ngIf=\"node?.selected\"\n [size]=\"16\"\n ></riv-icon>\n <span class=\"label\">\n <span class=\"label-title\">\n <riv-highlight\n [text]=\"node?.title || ''\"\n [indices]=\"node?.titleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n <span *ngIf=\"node?.subtitle\" class=\"label-subtitle\">\n <riv-highlight\n [text]=\"node?.subtitle || ''\"\n [indices]=\"node?.subtitleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n </span>\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #empty>\n <div class=\"empty\">\n {{ noOptionsMessage }}\n </div>\n </ng-template>\n </ng-container>\n </riv-loading-cover>\n </div>\n</riv-callout>\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)}.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)}.value{font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small);flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-disabled)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-small);background-color:var(--surface-light-2);border-left:var(--border-width) solid var(--border-light)}.filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-disabled)}.options{max-height:50vh;max-width:calc(var(--base-grid-size) * 150);overflow-y:auto}.single-select-node{display:flex;align-items:center;overflow:hidden;flex-grow:1;text-align:left;padding:var(--size-xsmall) var(--size-xsmall) var(--size-xsmall) calc(var(--base-grid-size) * 6);width:100%}.single-select-node.selected{padding-left:var(--size-small)}.single-select-node:hover{background-color:var(--surface-light-2)}.single-select-node.disabled{cursor:default;background-color:var(--surface-light-0)}.single-select-node.disabled .label,.single-select-node.disabled .label-subtitle{color:var(--type-light-disabled)}.single-select-node riv-icon{flex-shrink:0}.single-select-node .label{font-size:calc(var(--base-grid-size) * 4);line-height:calc(var(--base-grid-size) * 6);overflow:hidden;text-overflow:ellipsis;white-space:pre;flex-grow:1;padding:0 calc(var(--base-grid-size) * 2)}.single-select-node .label-subtitle{padding-left:var(--base-grid-size);color:var(--type-light-low-contrast)}.custom-single-select-node{display:block;width:100%;text-align:left}.empty{padding:var(--size-medium);text-align:center;color:var(--type-light-disabled)}\n"] }]
|
|
1322
|
+
args: [{ selector: 'riv-single-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"triggerTemplate; else standardTrigger\">\n <button\n #customTriggerButton\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"triggerTemplate\"\n [ngTemplateOutletContext]=\"{ selectedOption }\"\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 [labelActionText]=\"labelActionText\"\n (labelAction)=\"labelAction.emit($event)\"\n >\n <button\n #standardTriggerButton\n class=\"trigger\"\n (click)=\"allowedOpen()\"\n [disabled]=\"disabled || locked\"\n type=\"button\"\n >\n <ng-container *ngIf=\"selectedOption; else placeholderValue\">\n <span class=\"value\">{{ selectedOption.title }}</span>\n </ng-container>\n <ng-template #placeholderValue>\n <span class=\"value placeholder\">{{ placeholder }}</span>\n </ng-template>\n <span class=\"chevron\">\n <riv-icon *ngIf=\"!locked\" [name]=\"'ChevronDown'\" [size]=\"16\"></riv-icon>\n <riv-icon *ngIf=\"locked\" [name]=\"'Lock'\" [size]=\"16\"></riv-icon>\n </span>\n </button>\n </riv-input-label>\n</ng-template>\n\n<riv-callout\n *ngIf=\"open\"\n [anchor]=\"getTrigger()\"\n [theme]=\"'light'\"\n [showCaret]=\"false\"\n [allowedPositions]=\"[\n 'top-left',\n 'top-center',\n 'top-right',\n 'bottom-right',\n 'bottom-center',\n 'bottom-left'\n ]\"\n (close)=\"open = false\"\n>\n <input\n *ngIf=\"filterabilityOptions.enabled\"\n #filter\n class=\"filter\"\n [placeholder]=\"getFilterPlaceholder()\"\n [value]=\"filterQuery\"\n (input)=\"filterQuery = filter.value; filterQueryChange.emit(filterQuery)\"\n />\n <div class=\"options\">\n <riv-loading-cover [loading]=\"loading\">\n <ng-container *ngIf=\"getNodes(); let nodes\">\n <ng-container *ngIf=\"nodes.length > 0; else empty\">\n <ng-container *ngFor=\"let node of nodes; trackBy: trackBy\">\n <ng-container *ngIf=\"nodeTemplate; else standardTemplate\">\n <button\n class=\"custom-single-select-node\"\n [disabled]=\"node.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <ng-container\n [ngTemplateOutlet]=\"nodeTemplate\"\n [ngTemplateOutletContext]=\"{ node }\"\n ></ng-container>\n </button>\n </ng-container>\n <ng-template #standardTemplate>\n <button\n class=\"single-select-node\"\n [class.selected]=\"node?.selected\"\n [class.disabled]=\"node?.disabled\"\n [disabled]=\"node?.disabled\"\n (click)=\"selectedOptionChange.emit(node); open = false\"\n type=\"button\"\n >\n <riv-icon\n [name]=\"'Check'\"\n *ngIf=\"node?.selected\"\n [size]=\"16\"\n ></riv-icon>\n <span class=\"label\">\n <span class=\"label-title\">\n <riv-highlight\n [text]=\"node?.title || ''\"\n [indices]=\"node?.titleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n <span *ngIf=\"node?.subtitle\" class=\"label-subtitle\">\n <riv-highlight\n [text]=\"node?.subtitle || ''\"\n [indices]=\"node?.subtitleHighlightIndices || []\"\n ></riv-highlight>\n </span>\n </span>\n </button>\n </ng-template>\n </ng-container>\n </ng-container>\n <ng-template #empty>\n <div class=\"empty\">\n {{ noOptionsMessage }}\n </div>\n </ng-template>\n </ng-container>\n </riv-loading-cover>\n </div>\n <div class=\"footer\">\n <ng-content select=\"[footer]\"> </ng-content>\n </div>\n</riv-callout>\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)}.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)}.value{font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small);flex-grow:1;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:pre}.value.placeholder{color:var(--type-light-disabled)}.chevron{display:flex;justify-content:center;align-items:center;padding:var(--size-small);background-color:var(--surface-light-2);border-left:var(--border-width) solid var(--border-light)}.filter{width:100%;outline:none;border:none;border-bottom:var(--border-width) solid var(--border-light);font-size:var(--type-2-font-size);line-height:var(--type-2-line-height-0);color:var(--type-light-high-contrast);padding:var(--size-small)}.filter::placeholder{color:var(--type-light-disabled)}.options{max-height:50vh;max-width:calc(var(--base-grid-size) * 150);overflow-y:auto}.single-select-node{display:flex;align-items:center;overflow:hidden;flex-grow:1;text-align:left;padding:var(--size-xsmall) var(--size-xsmall) var(--size-xsmall) calc(var(--base-grid-size) * 6);width:100%}.single-select-node.selected{padding-left:var(--size-small)}.single-select-node:hover{background-color:var(--surface-light-2)}.single-select-node.disabled{cursor:default;background-color:var(--surface-light-0)}.single-select-node.disabled .label,.single-select-node.disabled .label-subtitle{color:var(--type-light-disabled)}.single-select-node riv-icon{flex-shrink:0}.single-select-node .label{font-size:calc(var(--base-grid-size) * 4);line-height:calc(var(--base-grid-size) * 6);overflow:hidden;text-overflow:ellipsis;white-space:pre;flex-grow:1;padding:0 calc(var(--base-grid-size) * 2)}.single-select-node .label-subtitle{padding-left:var(--base-grid-size);color:var(--type-light-low-contrast)}.custom-single-select-node{display:block;width:100%;text-align:left}.empty{padding:var(--size-medium);text-align:center;color:var(--type-light-disabled)}.footer{border-top:var(--border-width) solid var(--border-light-blend);background-color:var(--surface-light-1);border-bottom-left-radius:var(--border-radius-medium);border-bottom-right-radius:var(--border-radius-medium)}\n"] }]
|
|
1323
1323
|
}], propDecorators: { options: [{
|
|
1324
1324
|
type: Input
|
|
1325
1325
|
}], selectedOption: [{
|
|
@@ -2181,6 +2181,7 @@ class DonutComponent {
|
|
|
2181
2181
|
this.displayLabel = '';
|
|
2182
2182
|
this.displayValue = '';
|
|
2183
2183
|
this.data = [];
|
|
2184
|
+
this.size = 'medium';
|
|
2184
2185
|
this.HEIGHT = 256;
|
|
2185
2186
|
}
|
|
2186
2187
|
get arcPaths() {
|
|
@@ -2204,10 +2205,10 @@ class DonutComponent {
|
|
|
2204
2205
|
}
|
|
2205
2206
|
}
|
|
2206
2207
|
DonutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DonutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2207
|
-
DonutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DonutComponent, selector: "riv-donut", inputs: { displayLabel: "displayLabel", displayValue: "displayValue", data: "data", displayTooltip: "displayTooltip" }, ngImport: i0, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\" [rivTooltip]=\"displayTooltip\"
|
|
2208
|
+
DonutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: DonutComponent, selector: "riv-donut", inputs: { displayLabel: "displayLabel", displayValue: "displayValue", data: "data", displayTooltip: "displayTooltip", size: "size" }, ngImport: i0, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\" [ngClass]=\"size\" [rivTooltip]=\"displayTooltip\">\n {{ displayValue }}\n </div>\n <div class=\"label\">{{ displayLabel }}</div>\n </div>\n</div>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n", styles: [".container{display:grid;grid-template-rows:1fr;grid-template-columns:1fr;justify-items:center;align-items:center}svg{grid-row:1 / 1;grid-column:1 / 1}.display{grid-row:1 / 1;grid-column:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--size-small)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast)}.value,.label{text-shadow:0 0 var(--size-small) var(--surface-light-0),0 0 var(--size-xsmall) var(--surface-light-0)}.value.xsmall{font:var(--stat-xsmall)}.value.small{font:var(--stat-small)}.value.medium{font:var(--stat-medium)}.value.large{font:var(--stat-large)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipCloseDelay"] }, { kind: "component", type: ZeroStateComponent, selector: "riv-zero-state", inputs: ["message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2208
2209
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: DonutComponent, decorators: [{
|
|
2209
2210
|
type: Component,
|
|
2210
|
-
args: [{ selector: 'riv-donut', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\" [rivTooltip]=\"displayTooltip\"
|
|
2211
|
+
args: [{ selector: 'riv-donut', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"!empty; else zeroState\" class=\"container\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"100%\"\n [attr.height]=\"HEIGHT\"\n viewBox=\"-128 -128 256 256\"\n >\n <path\n *ngFor=\"let path of arcPaths; let i = index\"\n [attr.d]=\"path\"\n [attr.fill]=\"getFillStyle(i)\"\n ></path>\n </svg>\n <div class=\"display\">\n <div class=\"value\" [ngClass]=\"size\" [rivTooltip]=\"displayTooltip\">\n {{ displayValue }}\n </div>\n <div class=\"label\">{{ displayLabel }}</div>\n </div>\n</div>\n\n<ng-template #zeroState>\n <riv-zero-state></riv-zero-state>\n</ng-template>\n", styles: [".container{display:grid;grid-template-rows:1fr;grid-template-columns:1fr;justify-items:center;align-items:center}svg{grid-row:1 / 1;grid-column:1 / 1}.display{grid-row:1 / 1;grid-column:1 / 1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--size-small)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast)}.value,.label{text-shadow:0 0 var(--size-small) var(--surface-light-0),0 0 var(--size-xsmall) var(--surface-light-0)}.value.xsmall{font:var(--stat-xsmall)}.value.small{font:var(--stat-small)}.value.medium{font:var(--stat-medium)}.value.large{font:var(--stat-large)}\n"] }]
|
|
2211
2212
|
}], propDecorators: { displayLabel: [{
|
|
2212
2213
|
type: Input
|
|
2213
2214
|
}], displayValue: [{
|
|
@@ -2216,7 +2217,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
2216
2217
|
type: Input
|
|
2217
2218
|
}], displayTooltip: [{
|
|
2218
2219
|
type: Input
|
|
2220
|
+
}], size: [{
|
|
2221
|
+
type: Input
|
|
2219
2222
|
}] } });
|
|
2223
|
+
(function (DonutComponent) {
|
|
2224
|
+
DonutComponent.Sizes = ['xsmall', 'small', 'medium', 'large'];
|
|
2225
|
+
})(DonutComponent || (DonutComponent = {}));
|
|
2220
2226
|
|
|
2221
2227
|
function aggregateValues(values) {
|
|
2222
2228
|
return values.map((v, ix) => v + values.slice(ix + 1).reduce((acc, n) => acc + n, 0));
|
|
@@ -2265,10 +2271,10 @@ class MetricComponent {
|
|
|
2265
2271
|
}
|
|
2266
2272
|
}
|
|
2267
2273
|
MetricComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MetricComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2268
|
-
MetricComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MetricComponent, selector: "riv-metric", inputs: { label: "label", value: "value", size: "size", card: "card", help: "help", align: "align", valueColorToken: "valueColorToken" }, ngImport: i0, template: "<div *ngIf=\"card; else content\" class=\"card\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<ng-template #content>\n <div class=\"label\" [ngClass]=\"align\">\n {{ label }}
|
|
2274
|
+
MetricComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: MetricComponent, selector: "riv-metric", inputs: { label: "label", value: "value", size: "size", card: "card", help: "help", align: "align", valueColorToken: "valueColorToken" }, ngImport: i0, template: "<div *ngIf=\"card; else content\" class=\"card\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<ng-template #content>\n <div class=\"label\" [ngClass]=\"align\">\n {{ label }}\n <span *ngIf=\"help\"\n ><riv-icon [rivTooltip]=\"help\" [name]=\"'Info'\" [size]=\"12\"></riv-icon>\n </span>\n </div>\n <div class=\"content\" [ngClass]=\"align\">\n <div class=\"value\" [ngClass]=\"size\" [style.color]=\"valueColor\">\n {{ value }}\n </div>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".card{border-radius:var(--size-xsmall);border:var(--border-width) solid var(--border-light-blend);padding:var(--size-xlarge)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast);margin-bottom:var(--size-xsmall)}.value.xsmall{font:var(--stat-xsmall)}.value.small{font:var(--stat-small)}.value.medium{font:var(--stat-medium)}.value.large{font:var(--stat-large)}.content{display:flex;align-items:flex-end;gap:var(--size-small)}.right{text-align:end;justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: IconComponent, selector: "riv-icon", inputs: ["name", "size", "customSize", "strokeWidth"] }, { kind: "directive", type: TooltipDirective, selector: "[rivTooltip]", inputs: ["rivTooltip", "rivTooltipTheme", "rivTooltipMaxWidth", "rivTooltipPreferredPosition", "rivTooltipCloseDelay"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2269
2275
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: MetricComponent, decorators: [{
|
|
2270
2276
|
type: Component,
|
|
2271
|
-
args: [{ selector: 'riv-metric', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"card; else content\" class=\"card\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<ng-template #content>\n <div class=\"label\" [ngClass]=\"align\">\n {{ label }}
|
|
2277
|
+
args: [{ selector: 'riv-metric', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"card; else content\" class=\"card\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</div>\n<ng-template #content>\n <div class=\"label\" [ngClass]=\"align\">\n {{ label }}\n <span *ngIf=\"help\"\n ><riv-icon [rivTooltip]=\"help\" [name]=\"'Info'\" [size]=\"12\"></riv-icon>\n </span>\n </div>\n <div class=\"content\" [ngClass]=\"align\">\n <div class=\"value\" [ngClass]=\"size\" [style.color]=\"valueColor\">\n {{ value }}\n </div>\n <ng-content></ng-content>\n </div>\n</ng-template>\n", styles: [".card{border-radius:var(--size-xsmall);border:var(--border-width) solid var(--border-light-blend);padding:var(--size-xlarge)}.label{font-size:var(--type-1-font-size);line-height:var(--type-1-line-height-0);color:var(--type-light-low-contrast);margin-bottom:var(--size-xsmall)}.value.xsmall{font:var(--stat-xsmall)}.value.small{font:var(--stat-small)}.value.medium{font:var(--stat-medium)}.value.large{font:var(--stat-large)}.content{display:flex;align-items:flex-end;gap:var(--size-small)}.right{text-align:end;justify-content:flex-end}\n"] }]
|
|
2272
2278
|
}], propDecorators: { label: [{
|
|
2273
2279
|
type: Input
|
|
2274
2280
|
}], value: [{
|
|
@@ -2285,7 +2291,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
2285
2291
|
type: Input
|
|
2286
2292
|
}] } });
|
|
2287
2293
|
(function (MetricComponent) {
|
|
2288
|
-
MetricComponent.Sizes = ['small', 'medium', 'large'];
|
|
2294
|
+
MetricComponent.Sizes = ['xsmall', 'small', 'medium', 'large'];
|
|
2289
2295
|
})(MetricComponent || (MetricComponent = {}));
|
|
2290
2296
|
|
|
2291
2297
|
class TrendComponent {
|