cps-ui-kit 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/assets/icons/absa-logo.svg +12 -0
- package/assets/icons/access-denied.svg +12 -0
- package/assets/icons/access-menu.svg +11 -0
- package/assets/icons/access-unlock.svg +19 -0
- package/assets/icons/access.svg +9 -0
- package/assets/icons/add-domain.svg +8 -0
- package/assets/icons/add.svg +7 -0
- package/assets/icons/avatar-top-menu.svg +13 -0
- package/assets/icons/avatar.svg +8 -0
- package/assets/icons/bell.svg +7 -0
- package/assets/icons/book.svg +7 -0
- package/assets/icons/bookmark.svg +6 -0
- package/assets/icons/briefcase.svg +12 -0
- package/assets/icons/browse.svg +9 -0
- package/assets/icons/burger-arrow.svg +7 -0
- package/assets/icons/caret-down.svg +6 -0
- package/assets/icons/change.svg +6 -0
- package/assets/icons/checked.svg +15 -0
- package/assets/icons/chevron-down-2.svg +8 -0
- package/assets/icons/chevron-down.svg +6 -0
- package/assets/icons/circle.svg +6 -0
- package/assets/icons/close-x-2.svg +6 -0
- package/assets/icons/close-x.svg +8 -0
- package/assets/icons/community.svg +12 -0
- package/assets/icons/construction.svg +10 -0
- package/assets/icons/controls.svg +29 -0
- package/assets/icons/csv.svg +9 -0
- package/assets/icons/cub.svg +6 -0
- package/assets/icons/database.svg +12 -0
- package/assets/icons/datepicker.svg +8 -0
- package/assets/icons/delete.svg +6 -0
- package/assets/icons/dislike.svg +13 -0
- package/assets/icons/dots.svg +6 -0
- package/assets/icons/download.svg +12 -0
- package/assets/icons/dq.svg +24 -0
- package/assets/icons/dropdown-menu.svg +8 -0
- package/assets/icons/edit.svg +9 -0
- package/assets/icons/expand.svg +9 -0
- package/assets/icons/export.svg +6 -0
- package/assets/icons/eye.svg +8 -0
- package/assets/icons/filter.svg +8 -0
- package/assets/icons/filter_2.svg +11 -0
- package/assets/icons/follow.svg +13 -0
- package/assets/icons/glossary.svg +16 -0
- package/assets/icons/graph.svg +27 -0
- package/assets/icons/grid-view.svg +6 -0
- package/assets/icons/grid.svg +9 -0
- package/assets/icons/health.svg +6 -0
- package/assets/icons/heart.svg +6 -0
- package/assets/icons/help-circle.svg +7 -0
- package/assets/icons/home.svg +21 -0
- package/assets/icons/insight.svg +9 -0
- package/assets/icons/issues.svg +7 -0
- package/assets/icons/jpeg.svg +8 -0
- package/assets/icons/kris.svg +28 -0
- package/assets/icons/last-seen-product.svg +8 -0
- package/assets/icons/like.svg +7 -0
- package/assets/icons/line-vertical.svg +39 -0
- package/assets/icons/lock.svg +7 -0
- package/assets/icons/logout.svg +16 -0
- package/assets/icons/menu-expand.svg +17 -0
- package/assets/icons/minus.svg +10 -0
- package/assets/icons/multiple_users.svg +8 -0
- package/assets/icons/open.svg +7 -0
- package/assets/icons/path.svg +7 -0
- package/assets/icons/pdf.svg +9 -0
- package/assets/icons/plus.svg +6 -0
- package/assets/icons/projects.svg +10 -0
- package/assets/icons/question.svg +13 -0
- package/assets/icons/questions.svg +23 -0
- package/assets/icons/rectangle-rounded.svg +7 -0
- package/assets/icons/refresh-browse.svg +6 -0
- package/assets/icons/remove.svg +9 -0
- package/assets/icons/right.svg +7 -0
- package/assets/icons/schema_filter.svg +7 -0
- package/assets/icons/search.svg +9 -0
- package/assets/icons/settings.svg +9 -0
- package/assets/icons/sliders.svg +13 -0
- package/assets/icons/smart.svg +7 -0
- package/assets/icons/star.svg +6 -0
- package/assets/icons/stepper-completed.svg +6 -0
- package/assets/icons/success.svg +8 -0
- package/assets/icons/suggestion.svg +7 -0
- package/assets/icons/survivorship.svg +25 -0
- package/assets/icons/table-row-error.svg +6 -0
- package/assets/icons/table-row-success.svg +7 -0
- package/assets/icons/table-row-warning.svg +9 -0
- package/assets/icons/toast-error.svg +12 -0
- package/assets/icons/toast-info.svg +12 -0
- package/assets/icons/toast-success.svg +7 -0
- package/assets/icons/toast-warning.svg +12 -0
- package/assets/icons/tools.svg +18 -0
- package/assets/icons/user.svg +7 -0
- package/assets/icons/users.svg +10 -0
- package/assets/icons/vector-down.svg +7 -0
- package/assets/icons/vector-right.svg +6 -0
- package/assets/icons/vector-up.svg +7 -0
- package/assets/icons/vector.svg +7 -0
- package/assets/icons/wallet.svg +10 -0
- package/assets/icons/warning-circle.svg +12 -0
- package/assets/icons/warning.svg +7 -0
- package/assets/icons/widget-button-icon.svg +9 -0
- package/assets/icons/xls.svg +9 -0
- package/esm2020/cps-ui-kit.mjs +5 -0
- package/esm2020/lib/components/cps-button/cps-button.component.mjs +136 -0
- package/esm2020/lib/components/cps-checkbox/cps-checkbox.component.mjs +73 -0
- package/esm2020/lib/components/cps-chip/cps-chip.component.mjs +58 -0
- package/esm2020/lib/components/cps-icon/cps-icon.component.mjs +163 -0
- package/esm2020/lib/components/cps-input/cps-input.component.mjs +168 -0
- package/esm2020/lib/components/cps-radio/cps-radio.component.mjs +76 -0
- package/esm2020/lib/components/cps-select/cps-select.component.mjs +302 -0
- package/esm2020/lib/components/cps-tag/cps-tag.component.mjs +103 -0
- package/esm2020/lib/directives/click-outside.directive.mjs +32 -0
- package/esm2020/lib/pipes/combine-labels.pipe.mjs +24 -0
- package/esm2020/lib/pipes/label-by-value.pipe.mjs +15 -0
- package/esm2020/lib/utils/colors-utils.mjs +55 -0
- package/esm2020/lib/utils/size-utils.mjs +22 -0
- package/esm2020/public-api.mjs +12 -0
- package/fesm2015/cps-ui-kit.mjs +1210 -0
- package/fesm2015/cps-ui-kit.mjs.map +1 -0
- package/fesm2020/cps-ui-kit.mjs +1184 -0
- package/fesm2020/cps-ui-kit.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components/cps-button/cps-button.component.d.ts +28 -0
- package/lib/components/cps-checkbox/cps-checkbox.component.d.ts +25 -0
- package/lib/components/cps-chip/cps-chip.component.d.ts +16 -0
- package/lib/components/cps-icon/cps-icon.component.d.ts +18 -0
- package/lib/components/cps-input/cps-input.component.d.ts +50 -0
- package/lib/components/cps-radio/cps-radio.component.d.ts +30 -0
- package/lib/components/cps-select/cps-select.component.d.ts +54 -0
- package/lib/components/cps-tag/cps-tag.component.d.ts +29 -0
- package/lib/directives/click-outside.directive.d.ts +10 -0
- package/lib/pipes/combine-labels.pipe.d.ts +7 -0
- package/lib/pipes/label-by-value.pipe.d.ts +7 -0
- package/lib/utils/colors-utils.d.ts +6 -0
- package/lib/utils/size-utils.d.ts +5 -0
- package/package.json +40 -0
- package/public-api.d.ts +8 -0
- package/styles/_colors.scss +456 -0
- package/styles/_variables.scss +1 -0
- package/styles/bootstrap-grid.css +4071 -0
- package/styles/styles.scss +2 -0
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Optional, Output, Self, ViewChild } from '@angular/core';
|
|
3
|
+
import { CpsIconComponent } from '../cps-icon/cps-icon.component';
|
|
4
|
+
import { Subscription } from 'rxjs';
|
|
5
|
+
import { convertSize } from '../../utils/size-utils';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "@angular/forms";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
export class CpsInputComponent {
|
|
10
|
+
set value(value) {
|
|
11
|
+
this._value = value;
|
|
12
|
+
this.onChange(value);
|
|
13
|
+
}
|
|
14
|
+
get value() {
|
|
15
|
+
return this._value;
|
|
16
|
+
}
|
|
17
|
+
constructor(_control, _elementRef, cdRef) {
|
|
18
|
+
this._control = _control;
|
|
19
|
+
this._elementRef = _elementRef;
|
|
20
|
+
this.cdRef = cdRef;
|
|
21
|
+
this.label = '';
|
|
22
|
+
this.placeholder = 'Please enter';
|
|
23
|
+
this.hint = '';
|
|
24
|
+
this.disabled = false;
|
|
25
|
+
this.width = '100%';
|
|
26
|
+
this.type = 'text';
|
|
27
|
+
this.loading = false;
|
|
28
|
+
this.clearable = false;
|
|
29
|
+
this.prefixIcon = '';
|
|
30
|
+
this.prefixIconSize = 'small';
|
|
31
|
+
this.prefixText = '';
|
|
32
|
+
this.hideDetails = false;
|
|
33
|
+
this.valueChanged = new EventEmitter();
|
|
34
|
+
this._statusChangesSubscription = new Subscription();
|
|
35
|
+
this._value = '';
|
|
36
|
+
this.error = '';
|
|
37
|
+
this.currentType = '';
|
|
38
|
+
this.prefixWidth = '';
|
|
39
|
+
this.cvtWidth = '';
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
41
|
+
this.onChange = (event) => { };
|
|
42
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
43
|
+
this.onTouched = () => { };
|
|
44
|
+
if (this._control) {
|
|
45
|
+
this._control.valueAccessor = this;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
ngOnInit() {
|
|
49
|
+
this.currentType = this.type;
|
|
50
|
+
this.cvtWidth = convertSize(this.width);
|
|
51
|
+
this._statusChangesSubscription = this._control?.statusChanges?.subscribe(() => {
|
|
52
|
+
this._checkErrors();
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
ngAfterViewInit() {
|
|
56
|
+
let w = 0;
|
|
57
|
+
if (this.prefixText) {
|
|
58
|
+
w = this.prefixTextSpan?.nativeElement?.offsetWidth + 22;
|
|
59
|
+
}
|
|
60
|
+
if (this.prefixIcon) {
|
|
61
|
+
w += 38 - (this.prefixText ? 14 : 0);
|
|
62
|
+
}
|
|
63
|
+
this.prefixWidth = w > 0 ? `${w}px` : '';
|
|
64
|
+
this.cdRef.detectChanges();
|
|
65
|
+
}
|
|
66
|
+
ngOnDestroy() {
|
|
67
|
+
this._statusChangesSubscription?.unsubscribe();
|
|
68
|
+
}
|
|
69
|
+
_checkErrors() {
|
|
70
|
+
const errors = this._control?.errors;
|
|
71
|
+
if (!this._control?.control?.touched || !errors) {
|
|
72
|
+
this.error = '';
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if ('required' in errors) {
|
|
76
|
+
this.error = 'Field is required';
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if ('minlength' in errors) {
|
|
80
|
+
// eslint-disable-next-line dot-notation
|
|
81
|
+
this.error = `Field must contain at least ${errors['minlength'].requiredLength} characters`;
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const errArr = Object.values(errors);
|
|
85
|
+
if (errArr.length < 1) {
|
|
86
|
+
this.error = '';
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const message = errArr.find((msg) => typeof msg === 'string');
|
|
90
|
+
this.error = message || 'Unknown error';
|
|
91
|
+
}
|
|
92
|
+
registerOnChange(fn) {
|
|
93
|
+
this.onChange = fn;
|
|
94
|
+
}
|
|
95
|
+
registerOnTouched(fn) {
|
|
96
|
+
this.onTouched = fn;
|
|
97
|
+
}
|
|
98
|
+
writeValue(value) {
|
|
99
|
+
this.value = value;
|
|
100
|
+
}
|
|
101
|
+
updateValueEvent(event) {
|
|
102
|
+
const value = event?.target?.value || '';
|
|
103
|
+
this._updateValue(value);
|
|
104
|
+
}
|
|
105
|
+
_updateValue(value) {
|
|
106
|
+
this.writeValue(value);
|
|
107
|
+
this.onChange(value);
|
|
108
|
+
this.valueChanged.emit(value);
|
|
109
|
+
}
|
|
110
|
+
clear() {
|
|
111
|
+
if (this.value !== '')
|
|
112
|
+
this._updateValue('');
|
|
113
|
+
}
|
|
114
|
+
togglePassword() {
|
|
115
|
+
this.currentType = this.currentType === 'password' ? 'text' : 'password';
|
|
116
|
+
}
|
|
117
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
118
|
+
setDisabledState(disabled) { }
|
|
119
|
+
onBlur() {
|
|
120
|
+
this._control?.control?.markAsTouched();
|
|
121
|
+
this._checkErrors();
|
|
122
|
+
}
|
|
123
|
+
focus() {
|
|
124
|
+
this._elementRef?.nativeElement?.querySelector('input')?.focus();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
CpsInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsInputComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
128
|
+
CpsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsInputComponent, isStandalone: true, selector: "cps-input", inputs: { label: "label", placeholder: "placeholder", hint: "hint", disabled: "disabled", width: "width", type: "type", loading: "loading", clearable: "clearable", prefixIcon: "prefixIcon", prefixIconSize: "prefixIconSize", prefixText: "prefixText", hideDetails: "hideDetails", value: "value" }, outputs: { valueChanged: "valueChanged" }, viewQueries: [{ propertyName: "prefixTextSpan", first: true, predicate: ["prefixTextSpan"], descendants: true }], ngImport: i0, template: "<div class=\"input-container\">\n <label class=\"label-text\" [ngClass]=\"{ 'label-text-disabled': disabled }\">{{\n label\n }}</label>\n\n <div\n class=\"input-wrap\"\n [ngClass]=\"{\n password: type === 'password',\n 'input-wrap-error': error,\n clearable: clearable,\n }\"\n >\n <input\n [type]=\"currentType\"\n [value]=\"value\"\n (input)=\"updateValueEvent($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngStyle]=\"{\n width: cvtWidth,\n 'padding-left': prefixWidth || 'none'\n }\"\n (blur)=\"onBlur()\"\n />\n\n <div class=\"prefix\">\n <span *ngIf=\"prefixIcon\" class=\"prefix-icon\">\n <cps-icon [icon]=\"prefixIcon\" [size]=\"prefixIconSize\"></cps-icon>\n </span>\n\n <span *ngIf=\"prefixText\" class=\"prefix-text\" #prefixTextSpan>\n {{ prefixText }}\n </span>\n </div>\n\n <div class=\"action-btns\">\n <span *ngIf=\"clearable\" class=\"clear-btn\">\n <cps-icon icon=\"delete\" size=\"small\" (click)=\"clear()\"></cps-icon>\n </span>\n\n <span\n *ngIf=\"type === 'password'\"\n class=\"password-show-btn\"\n [ngClass]=\"{ 'password-show-btn-active': currentType === 'text' }\"\n >\n <cps-icon icon=\"eye\" size=\"18px\" (click)=\"togglePassword()\"></cps-icon>\n </span>\n </div>\n </div>\n\n <div *ngIf=\"loading\" class=\"progress-bar\" [ngStyle]=\"{ width: cvtWidth }\">\n <div class=\"progress-bar-line inc\"></div>\n <div class=\"progress-bar-line dec\"></div>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"hint-text\">{{ hint }}</div>\n <div *ngIf=\"error && !hideDetails\" class=\"error-text\">{{ error }}</div>\n</div>\n", styles: [":host .input-container{gap:.2rem!important;display:flex!important;flex-direction:column!important;font-family:Source Sans Pro,sans-serif}:host .input-container .input-wrap{position:relative;overflow:hidden}:host .input-container .input-wrap:hover input:enabled{border:1px solid var(--cps-color-calm)}:host .input-container .input-wrap-error input{border-color:#c33!important}:host .input-container .input-wrap-error input:not(:focus){background:#fef3f2!important}:host .input-container .input-wrap input{font-size:1rem;color:var(--cps-color-text-dark);background:#ffffff;padding:.375rem .75rem;line-height:1.5;border:1px solid var(--cps-color-text-lightest);transition-duration:.2s;-webkit-appearance:none;appearance:none;border-radius:4px;width:100%}:host .input-container .input-wrap input:focus{border:1px solid var(--cps-color-calm);outline:0}:host .input-container .input-wrap input:disabled{background-color:#f7f7f7;opacity:1}:host .input-container .input-wrap input:focus+.prefix>.prefix-icon,:host .input-container .input-wrap input:hover+.prefix>.prefix-icon{color:var(--cps-color-calm)}:host .input-container .input-wrap .action-btns{display:flex;align-items:center;position:absolute;top:50%;right:.75rem;margin-top:-.5rem}:host .input-container .input-wrap .action-btns .clear-btn{cursor:pointer;color:var(--cps-color-calm)}:host .input-container .input-wrap .action-btns .clear-btn cps-icon{opacity:.5;transition-duration:.2s}:host .input-container .input-wrap .action-btns .clear-btn cps-icon:hover{opacity:1}:host .input-container .input-wrap .action-btns .password-show-btn{margin-left:.5rem;cursor:pointer;color:var(--cps-color-text-mild)}:host .input-container .input-wrap .action-btns .password-show-btn-active{color:var(--cps-color-calm)}:host .input-container .input-wrap .action-btns .password-show-btn cps-icon{transition-duration:.2s}:host .input-container .input-wrap .action-btns .password-show-btn cps-icon:hover{color:var(--cps-color-calm)}:host .input-container .input-wrap .prefix{height:-webkit-fill-available;display:flex;align-items:center;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}:host .input-container .input-wrap .prefix:hover .prefix-icon{color:var(--cps-color-calm)}:host .input-container .input-wrap .prefix-icon{transition-duration:.2s;height:-webkit-fill-available;margin-right:.5rem}:host .input-container .input-wrap .prefix-text{color:var(--cps-color-text-mild)}:host .input-container .password.clearable>input{padding-right:3.8rem}:host .input-container .password>input,:host .input-container .clearable>input{padding-right:2.2rem}:host .input-container .hint-text{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;cursor:default}:host .input-container .error-text{color:#c33;font-weight:700;font-size:.75rem;min-height:1.125rem;cursor:default}:host .input-container .label-text{color:var(--cps-color-text-dark);font-size:.875rem}:host .input-container .label-text-disabled{color:var(--cps-color-text-mild)}:host .input-container ::placeholder{color:var(--cps-color-text-lightest);font-style:italic;opacity:1}:host .input-container .progress-bar{margin-top:-6px;margin-bottom:1px;position:relative;height:3px;overflow-x:hidden;border-radius:4px}:host .input-container .progress-bar-line{position:absolute;background:var(--cps-color-calm);opacity:.3;height:3px;left:-5%;top:0}:host .input-container .progress-bar .inc{animation:increase 2s infinite}:host .input-container .progress-bar .dec{animation:decrease 2s .5s infinite}@keyframes increase{0%{left:-5%;width:5%}to{left:130%;width:100%}}@keyframes decrease{0%{left:-80%;width:80%}to{left:110%;width:10%}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: CpsIconComponent, selector: "cps-icon", inputs: ["icon", "size", "color"] }] });
|
|
129
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsInputComponent, decorators: [{
|
|
130
|
+
type: Component,
|
|
131
|
+
args: [{ standalone: true, imports: [CommonModule, CpsIconComponent], selector: 'cps-input', template: "<div class=\"input-container\">\n <label class=\"label-text\" [ngClass]=\"{ 'label-text-disabled': disabled }\">{{\n label\n }}</label>\n\n <div\n class=\"input-wrap\"\n [ngClass]=\"{\n password: type === 'password',\n 'input-wrap-error': error,\n clearable: clearable,\n }\"\n >\n <input\n [type]=\"currentType\"\n [value]=\"value\"\n (input)=\"updateValueEvent($event)\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [ngStyle]=\"{\n width: cvtWidth,\n 'padding-left': prefixWidth || 'none'\n }\"\n (blur)=\"onBlur()\"\n />\n\n <div class=\"prefix\">\n <span *ngIf=\"prefixIcon\" class=\"prefix-icon\">\n <cps-icon [icon]=\"prefixIcon\" [size]=\"prefixIconSize\"></cps-icon>\n </span>\n\n <span *ngIf=\"prefixText\" class=\"prefix-text\" #prefixTextSpan>\n {{ prefixText }}\n </span>\n </div>\n\n <div class=\"action-btns\">\n <span *ngIf=\"clearable\" class=\"clear-btn\">\n <cps-icon icon=\"delete\" size=\"small\" (click)=\"clear()\"></cps-icon>\n </span>\n\n <span\n *ngIf=\"type === 'password'\"\n class=\"password-show-btn\"\n [ngClass]=\"{ 'password-show-btn-active': currentType === 'text' }\"\n >\n <cps-icon icon=\"eye\" size=\"18px\" (click)=\"togglePassword()\"></cps-icon>\n </span>\n </div>\n </div>\n\n <div *ngIf=\"loading\" class=\"progress-bar\" [ngStyle]=\"{ width: cvtWidth }\">\n <div class=\"progress-bar-line inc\"></div>\n <div class=\"progress-bar-line dec\"></div>\n </div>\n <div *ngIf=\"!error && !hideDetails\" class=\"hint-text\">{{ hint }}</div>\n <div *ngIf=\"error && !hideDetails\" class=\"error-text\">{{ error }}</div>\n</div>\n", styles: [":host .input-container{gap:.2rem!important;display:flex!important;flex-direction:column!important;font-family:Source Sans Pro,sans-serif}:host .input-container .input-wrap{position:relative;overflow:hidden}:host .input-container .input-wrap:hover input:enabled{border:1px solid var(--cps-color-calm)}:host .input-container .input-wrap-error input{border-color:#c33!important}:host .input-container .input-wrap-error input:not(:focus){background:#fef3f2!important}:host .input-container .input-wrap input{font-size:1rem;color:var(--cps-color-text-dark);background:#ffffff;padding:.375rem .75rem;line-height:1.5;border:1px solid var(--cps-color-text-lightest);transition-duration:.2s;-webkit-appearance:none;appearance:none;border-radius:4px;width:100%}:host .input-container .input-wrap input:focus{border:1px solid var(--cps-color-calm);outline:0}:host .input-container .input-wrap input:disabled{background-color:#f7f7f7;opacity:1}:host .input-container .input-wrap input:focus+.prefix>.prefix-icon,:host .input-container .input-wrap input:hover+.prefix>.prefix-icon{color:var(--cps-color-calm)}:host .input-container .input-wrap .action-btns{display:flex;align-items:center;position:absolute;top:50%;right:.75rem;margin-top:-.5rem}:host .input-container .input-wrap .action-btns .clear-btn{cursor:pointer;color:var(--cps-color-calm)}:host .input-container .input-wrap .action-btns .clear-btn cps-icon{opacity:.5;transition-duration:.2s}:host .input-container .input-wrap .action-btns .clear-btn cps-icon:hover{opacity:1}:host .input-container .input-wrap .action-btns .password-show-btn{margin-left:.5rem;cursor:pointer;color:var(--cps-color-text-mild)}:host .input-container .input-wrap .action-btns .password-show-btn-active{color:var(--cps-color-calm)}:host .input-container .input-wrap .action-btns .password-show-btn cps-icon{transition-duration:.2s}:host .input-container .input-wrap .action-btns .password-show-btn cps-icon:hover{color:var(--cps-color-calm)}:host .input-container .input-wrap .prefix{height:-webkit-fill-available;display:flex;align-items:center;position:absolute;top:50%;left:.75rem;transform:translateY(-50%)}:host .input-container .input-wrap .prefix:hover .prefix-icon{color:var(--cps-color-calm)}:host .input-container .input-wrap .prefix-icon{transition-duration:.2s;height:-webkit-fill-available;margin-right:.5rem}:host .input-container .input-wrap .prefix-text{color:var(--cps-color-text-mild)}:host .input-container .password.clearable>input{padding-right:3.8rem}:host .input-container .password>input,:host .input-container .clearable>input{padding-right:2.2rem}:host .input-container .hint-text{color:var(--cps-color-text-mild);font-size:.75rem;min-height:1.125rem;cursor:default}:host .input-container .error-text{color:#c33;font-weight:700;font-size:.75rem;min-height:1.125rem;cursor:default}:host .input-container .label-text{color:var(--cps-color-text-dark);font-size:.875rem}:host .input-container .label-text-disabled{color:var(--cps-color-text-mild)}:host .input-container ::placeholder{color:var(--cps-color-text-lightest);font-style:italic;opacity:1}:host .input-container .progress-bar{margin-top:-6px;margin-bottom:1px;position:relative;height:3px;overflow-x:hidden;border-radius:4px}:host .input-container .progress-bar-line{position:absolute;background:var(--cps-color-calm);opacity:.3;height:3px;left:-5%;top:0}:host .input-container .progress-bar .inc{animation:increase 2s infinite}:host .input-container .progress-bar .dec{animation:decrease 2s .5s infinite}@keyframes increase{0%{left:-5%;width:5%}to{left:130%;width:100%}}@keyframes decrease{0%{left:-80%;width:80%}to{left:110%;width:10%}}\n"] }]
|
|
132
|
+
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
|
133
|
+
type: Self
|
|
134
|
+
}, {
|
|
135
|
+
type: Optional
|
|
136
|
+
}] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { label: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}], placeholder: [{
|
|
139
|
+
type: Input
|
|
140
|
+
}], hint: [{
|
|
141
|
+
type: Input
|
|
142
|
+
}], disabled: [{
|
|
143
|
+
type: Input
|
|
144
|
+
}], width: [{
|
|
145
|
+
type: Input
|
|
146
|
+
}], type: [{
|
|
147
|
+
type: Input
|
|
148
|
+
}], loading: [{
|
|
149
|
+
type: Input
|
|
150
|
+
}], clearable: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], prefixIcon: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], prefixIconSize: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], prefixText: [{
|
|
157
|
+
type: Input
|
|
158
|
+
}], hideDetails: [{
|
|
159
|
+
type: Input
|
|
160
|
+
}], value: [{
|
|
161
|
+
type: Input
|
|
162
|
+
}], valueChanged: [{
|
|
163
|
+
type: Output
|
|
164
|
+
}], prefixTextSpan: [{
|
|
165
|
+
type: ViewChild,
|
|
166
|
+
args: ['prefixTextSpan']
|
|
167
|
+
}] } });
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy1pbnB1dC9jcHMtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLWlucHV0L2Nwcy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUdMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNKLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFTckQsTUFBTSxPQUFPLGlCQUFpQjtJQWM1QixJQUFhLEtBQUssQ0FBRSxLQUFhO1FBQy9CLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUNyQixDQUFDO0lBZUQsWUFDOEIsUUFBbUIsRUFDdkMsV0FBb0MsRUFDcEMsS0FBd0I7UUFGSixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ3ZDLGdCQUFXLEdBQVgsV0FBVyxDQUF5QjtRQUNwQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQXJDekIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLGdCQUFXLEdBQUcsY0FBYyxDQUFDO1FBQzdCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFVBQUssR0FBb0IsTUFBTSxDQUFDO1FBQ2hDLFNBQUksR0FBbUMsTUFBTSxDQUFDO1FBQzlDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLG1CQUFjLEdBQWlCLE9BQU8sQ0FBQztRQUN2QyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBVW5CLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUk1QywrQkFBMEIsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU5RCxXQUFNLEdBQUcsRUFBRSxDQUFDO1FBRXBCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBb0VkLGdFQUFnRTtRQUNoRSxhQUFRLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUM5QixnRUFBZ0U7UUFDaEUsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztRQWhFbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV4QyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUN2RSxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDdEIsQ0FBQyxDQUNjLENBQUM7SUFDcEIsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsQ0FBQyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLFdBQVcsR0FBRyxFQUFFLENBQUM7U0FDMUQ7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFTyxZQUFZO1FBQ2xCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO1FBRXJDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDL0MsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDaEIsT0FBTztTQUNSO1FBRUQsSUFBSSxVQUFVLElBQUksTUFBTSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsbUJBQW1CLENBQUM7WUFDakMsT0FBTztTQUNSO1FBRUQsSUFBSSxXQUFXLElBQUksTUFBTSxFQUFFO1lBQ3pCLHdDQUF3QztZQUN4QyxJQUFJLENBQUMsS0FBSyxHQUFHLCtCQUErQixNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsY0FBYyxhQUFhLENBQUM7WUFDNUYsT0FBTztTQUNSO1FBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLE9BQU87U0FDUjtRQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLE9BQU8sR0FBRyxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBRTlELElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxJQUFJLGVBQWUsQ0FBQztJQUMxQyxDQUFDO0lBT0QsZ0JBQWdCLENBQUUsRUFBTztRQUN2QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUUsRUFBTztRQUN4QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsVUFBVSxDQUFFLEtBQWE7UUFDdkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELGdCQUFnQixDQUFFLEtBQVU7UUFDMUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLFlBQVksQ0FBRSxLQUFhO1FBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsS0FBSztRQUNILElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFO1lBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsS0FBSyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQzNFLENBQUM7SUFFRCxnRUFBZ0U7SUFDaEUsZ0JBQWdCLENBQUUsUUFBaUIsSUFBRyxDQUFDO0lBRXZDLE1BQU07UUFDSixJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDbkUsQ0FBQzs7OEdBcEpVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDBnQkMzQjlCLDZ2REEwREEseW5IRHBDWSxZQUFZLHNUQUFFLGdCQUFnQjsyRkFLN0IsaUJBQWlCO2tCQVA3QixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxnQkFBZ0IsQ0FBQyxZQUMvQixXQUFXOzswQkF5Q2xCLElBQUk7OzBCQUFJLFFBQVE7cUdBbkNWLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDTyxLQUFLO3NCQUFqQixLQUFLO2dCQVNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBRXNCLGNBQWM7c0JBQTFDLFNBQVM7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ3BzSWNvbkNvbXBvbmVudCwgaWNvblNpemVUeXBlIH0gZnJvbSAnLi4vY3BzLWljb24vY3BzLWljb24uY29tcG9uZW50JztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY29udmVydFNpemUgfSBmcm9tICcuLi8uLi91dGlscy9zaXplLXV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENwc0ljb25Db21wb25lbnRdLFxuICBzZWxlY3RvcjogJ2Nwcy1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcHMtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcHMtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcHNJbnB1dENvbXBvbmVudFxuaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdQbGVhc2UgZW50ZXInO1xuICBASW5wdXQoKSBoaW50ID0gJyc7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHdpZHRoOiBudW1iZXIgfCBzdHJpbmcgPSAnMTAwJSc7XG4gIEBJbnB1dCgpIHR5cGU6ICd0ZXh0JyB8ICdudW1iZXInIHwgJ3Bhc3N3b3JkJyA9ICd0ZXh0JztcbiAgQElucHV0KCkgbG9hZGluZyA9IGZhbHNlO1xuICBASW5wdXQoKSBjbGVhcmFibGUgPSBmYWxzZTtcbiAgQElucHV0KCkgcHJlZml4SWNvbiA9ICcnO1xuICBASW5wdXQoKSBwcmVmaXhJY29uU2l6ZTogaWNvblNpemVUeXBlID0gJ3NtYWxsJztcbiAgQElucHV0KCkgcHJlZml4VGV4dCA9ICcnO1xuICBASW5wdXQoKSBoaWRlRGV0YWlscyA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXQgdmFsdWUgKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHZhbHVlICgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblxuICBAVmlld0NoaWxkKCdwcmVmaXhUZXh0U3BhbicpIHByZWZpeFRleHRTcGFuOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgX3N0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBwcml2YXRlIF92YWx1ZSA9ICcnO1xuXG4gIGVycm9yID0gJyc7XG4gIGN1cnJlbnRUeXBlID0gJyc7XG4gIHByZWZpeFdpZHRoID0gJyc7XG4gIGN2dFdpZHRoID0gJyc7XG5cbiAgY29uc3RydWN0b3IgKFxuICAgIEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICAgIGlmICh0aGlzLl9jb250cm9sKSB7XG4gICAgICB0aGlzLl9jb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0ICgpOiB2b2lkIHtcbiAgICB0aGlzLmN1cnJlbnRUeXBlID0gdGhpcy50eXBlO1xuICAgIHRoaXMuY3Z0V2lkdGggPSBjb252ZXJ0U2l6ZSh0aGlzLndpZHRoKTtcblxuICAgIHRoaXMuX3N0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24gPSB0aGlzLl9jb250cm9sPy5zdGF0dXNDaGFuZ2VzPy5zdWJzY3JpYmUoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIHRoaXMuX2NoZWNrRXJyb3JzKCk7XG4gICAgICB9XG4gICAgKSBhcyBTdWJzY3JpcHRpb247XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQgKCkge1xuICAgIGxldCB3ID0gMDtcbiAgICBpZiAodGhpcy5wcmVmaXhUZXh0KSB7XG4gICAgICB3ID0gdGhpcy5wcmVmaXhUZXh0U3Bhbj8ubmF0aXZlRWxlbWVudD8ub2Zmc2V0V2lkdGggKyAyMjtcbiAgICB9XG4gICAgaWYgKHRoaXMucHJlZml4SWNvbikge1xuICAgICAgdyArPSAzOCAtICh0aGlzLnByZWZpeFRleHQgPyAxNCA6IDApO1xuICAgIH1cbiAgICB0aGlzLnByZWZpeFdpZHRoID0gdyA+IDAgPyBgJHt3fXB4YCA6ICcnO1xuICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3kgKCkge1xuICAgIHRoaXMuX3N0YXR1c0NoYW5nZXNTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja0Vycm9ycyAoKSB7XG4gICAgY29uc3QgZXJyb3JzID0gdGhpcy5fY29udHJvbD8uZXJyb3JzO1xuXG4gICAgaWYgKCF0aGlzLl9jb250cm9sPy5jb250cm9sPy50b3VjaGVkIHx8ICFlcnJvcnMpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoJ3JlcXVpcmVkJyBpbiBlcnJvcnMpIHtcbiAgICAgIHRoaXMuZXJyb3IgPSAnRmllbGQgaXMgcmVxdWlyZWQnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICgnbWlubGVuZ3RoJyBpbiBlcnJvcnMpIHtcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBkb3Qtbm90YXRpb25cbiAgICAgIHRoaXMuZXJyb3IgPSBgRmllbGQgbXVzdCBjb250YWluIGF0IGxlYXN0ICR7ZXJyb3JzWydtaW5sZW5ndGgnXS5yZXF1aXJlZExlbmd0aH0gY2hhcmFjdGVyc2A7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXJyQXJyID0gT2JqZWN0LnZhbHVlcyhlcnJvcnMpO1xuICAgIGlmIChlcnJBcnIubGVuZ3RoIDwgMSkge1xuICAgICAgdGhpcy5lcnJvciA9ICcnO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBtZXNzYWdlID0gZXJyQXJyLmZpbmQoKG1zZykgPT4gdHlwZW9mIG1zZyA9PT0gJ3N0cmluZycpO1xuXG4gICAgdGhpcy5lcnJvciA9IG1lc3NhZ2UgfHwgJ1Vua25vd24gZXJyb3InO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvbkNoYW5nZSA9IChldmVudDogYW55KSA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlIChmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQgKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSAodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlRXZlbnQgKGV2ZW50OiBhbnkpIHtcbiAgICBjb25zdCB2YWx1ZSA9IGV2ZW50Py50YXJnZXQ/LnZhbHVlIHx8ICcnO1xuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlICh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIGNsZWFyICgpIHtcbiAgICBpZiAodGhpcy52YWx1ZSAhPT0gJycpIHRoaXMuX3VwZGF0ZVZhbHVlKCcnKTtcbiAgfVxuXG4gIHRvZ2dsZVBhc3N3b3JkICgpIHtcbiAgICB0aGlzLmN1cnJlbnRUeXBlID0gdGhpcy5jdXJyZW50VHlwZSA9PT0gJ3Bhc3N3b3JkJyA/ICd0ZXh0JyA6ICdwYXNzd29yZCc7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHNldERpc2FibGVkU3RhdGUgKGRpc2FibGVkOiBib29sZWFuKSB7fVxuXG4gIG9uQmx1ciAoKSB7XG4gICAgdGhpcy5fY29udHJvbD8uY29udHJvbD8ubWFya0FzVG91Y2hlZCgpO1xuICAgIHRoaXMuX2NoZWNrRXJyb3JzKCk7XG4gIH1cblxuICBmb2N1cyAoKSB7XG4gICAgdGhpcy5fZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcignaW5wdXQnKT8uZm9jdXMoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxuICA8bGFiZWwgY2xhc3M9XCJsYWJlbC10ZXh0XCIgW25nQ2xhc3NdPVwieyAnbGFiZWwtdGV4dC1kaXNhYmxlZCc6IGRpc2FibGVkIH1cIj57e1xuICAgIGxhYmVsXG4gIH19PC9sYWJlbD5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJpbnB1dC13cmFwXCJcbiAgICBbbmdDbGFzc109XCJ7XG4gICAgICBwYXNzd29yZDogdHlwZSA9PT0gJ3Bhc3N3b3JkJyxcbiAgICAgICdpbnB1dC13cmFwLWVycm9yJzogZXJyb3IsXG4gICAgICBjbGVhcmFibGU6IGNsZWFyYWJsZSxcbiAgICB9XCJcbiAgPlxuICAgIDxpbnB1dFxuICAgICAgW3R5cGVdPVwiY3VycmVudFR5cGVcIlxuICAgICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICAgIChpbnB1dCk9XCJ1cGRhdGVWYWx1ZUV2ZW50KCRldmVudClcIlxuICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgIHdpZHRoOiBjdnRXaWR0aCxcbiAgICAgICAgJ3BhZGRpbmctbGVmdCc6IHByZWZpeFdpZHRoIHx8ICdub25lJ1xuICAgICAgfVwiXG4gICAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgLz5cblxuICAgIDxkaXYgY2xhc3M9XCJwcmVmaXhcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwicHJlZml4SWNvblwiIGNsYXNzPVwicHJlZml4LWljb25cIj5cbiAgICAgICAgPGNwcy1pY29uIFtpY29uXT1cInByZWZpeEljb25cIiBbc2l6ZV09XCJwcmVmaXhJY29uU2l6ZVwiPjwvY3BzLWljb24+XG4gICAgICA8L3NwYW4+XG5cbiAgICAgIDxzcGFuICpuZ0lmPVwicHJlZml4VGV4dFwiIGNsYXNzPVwicHJlZml4LXRleHRcIiAjcHJlZml4VGV4dFNwYW4+XG4gICAgICAgIHt7IHByZWZpeFRleHQgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb24tYnRuc1wiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjbGVhcmFibGVcIiBjbGFzcz1cImNsZWFyLWJ0blwiPlxuICAgICAgICA8Y3BzLWljb24gaWNvbj1cImRlbGV0ZVwiIHNpemU9XCJzbWFsbFwiIChjbGljayk9XCJjbGVhcigpXCI+PC9jcHMtaWNvbj5cbiAgICAgIDwvc3Bhbj5cblxuICAgICAgPHNwYW5cbiAgICAgICAgKm5nSWY9XCJ0eXBlID09PSAncGFzc3dvcmQnXCJcbiAgICAgICAgY2xhc3M9XCJwYXNzd29yZC1zaG93LWJ0blwiXG4gICAgICAgIFtuZ0NsYXNzXT1cInsgJ3Bhc3N3b3JkLXNob3ctYnRuLWFjdGl2ZSc6IGN1cnJlbnRUeXBlID09PSAndGV4dCcgfVwiXG4gICAgICA+XG4gICAgICAgIDxjcHMtaWNvbiBpY29uPVwiZXllXCIgc2l6ZT1cIjE4cHhcIiAoY2xpY2spPVwidG9nZ2xlUGFzc3dvcmQoKVwiPjwvY3BzLWljb24+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgKm5nSWY9XCJsb2FkaW5nXCIgY2xhc3M9XCJwcm9ncmVzcy1iYXJcIiBbbmdTdHlsZV09XCJ7IHdpZHRoOiBjdnRXaWR0aCB9XCI+XG4gICAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWJhci1saW5lIGluY1wiPjwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzcy1iYXItbGluZSBkZWNcIj48L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgKm5nSWY9XCIhZXJyb3IgJiYgIWhpZGVEZXRhaWxzXCIgY2xhc3M9XCJoaW50LXRleHRcIj57eyBoaW50IH19PC9kaXY+XG4gIDxkaXYgKm5nSWY9XCJlcnJvciAmJiAhaGlkZURldGFpbHNcIiBjbGFzcz1cImVycm9yLXRleHRcIj57eyBlcnJvciB9fTwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, Input, Optional, Output, Self } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/forms";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
export class CpsRadioComponent {
|
|
7
|
+
set value(value) {
|
|
8
|
+
this._value = value;
|
|
9
|
+
this.onChange(value);
|
|
10
|
+
}
|
|
11
|
+
get value() {
|
|
12
|
+
return this._value;
|
|
13
|
+
}
|
|
14
|
+
constructor(_control) {
|
|
15
|
+
this._control = _control;
|
|
16
|
+
this.options = [];
|
|
17
|
+
this.groupLabel = '';
|
|
18
|
+
this.vertical = false;
|
|
19
|
+
this.disabled = false;
|
|
20
|
+
this.valueChanged = new EventEmitter();
|
|
21
|
+
this._value = undefined;
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
23
|
+
this.onChange = (event) => { };
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
25
|
+
this.onTouched = () => { };
|
|
26
|
+
if (this._control) {
|
|
27
|
+
this._control.valueAccessor = this;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
registerOnChange(fn) {
|
|
31
|
+
this.onChange = fn;
|
|
32
|
+
}
|
|
33
|
+
registerOnTouched(fn) {
|
|
34
|
+
this.onTouched = fn;
|
|
35
|
+
}
|
|
36
|
+
writeValue(value) {
|
|
37
|
+
this.value = value;
|
|
38
|
+
}
|
|
39
|
+
updateValueEvent(event) {
|
|
40
|
+
event.preventDefault();
|
|
41
|
+
if (this.disabled)
|
|
42
|
+
return;
|
|
43
|
+
const value = event?.target?.value || '';
|
|
44
|
+
this._updateValue(value);
|
|
45
|
+
}
|
|
46
|
+
_updateValue(value) {
|
|
47
|
+
this.writeValue(value);
|
|
48
|
+
this.onChange(value);
|
|
49
|
+
this.valueChanged.emit(value);
|
|
50
|
+
}
|
|
51
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
52
|
+
setDisabledState(disabled) { }
|
|
53
|
+
}
|
|
54
|
+
CpsRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsRadioComponent, deps: [{ token: i1.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
55
|
+
CpsRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CpsRadioComponent, isStandalone: true, selector: "cps-radio", inputs: { options: "options", groupLabel: "groupLabel", vertical: "vertical", disabled: "disabled", value: "value" }, outputs: { valueChanged: "valueChanged" }, ngImport: i0, template: "<div class=\"radio-group\">\n <div class=\"radio-group-label\" *ngIf=\"groupLabel\">\n <span>{{ groupLabel }}</span>\n </div>\n <div\n class=\"radio-group-content\"\n [ngClass]=\"\n vertical\n ? 'radio-group-content-vertical'\n : 'radio-group-content-horizontal'\n \"\n >\n <label\n *ngFor=\"let option of options\"\n class=\"radio-group-content-button\"\n [ngStyle]=\"{\n cursor: option.disabled || disabled ? 'default' : 'pointer'\n }\"\n >\n <input\n type=\"radio\"\n [disabled]=\"option.disabled || disabled\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n (change)=\"updateValueEvent($event)\"\n />\n <span class=\"radio-group-content-button-label\">{{ option.label }}</span>\n </label>\n </div>\n</div>\n", styles: [":host{width:-moz-fit-content;width:fit-content;display:inline-block}:host .radio-group-label{color:var(--cps-color-text-dark);margin-bottom:.75rem}:host .radio-group-content{margin-left:.5rem;gap:1.25rem}:host .radio-group-content-vertical{display:grid}:host .radio-group-content-horizontal{display:flex;flex-direction:row;flex-wrap:wrap}:host .radio-group-content-button{display:grid;grid-template-columns:1em auto;gap:.75em}:host .radio-group-content-button-label{font-size:1rem;align-self:center;color:var(--cps-color-text-dark)}:host .radio-group-content-button input[type=radio]{-webkit-appearance:none;appearance:none;background-color:transparent;margin:0;cursor:pointer;font:inherit;color:var(--cps-color-text-dark);width:1.25em;height:1.25em;border:.15em solid currentColor;border-radius:50%;transform:translateY(-.075em);display:grid;place-content:center}:host .radio-group-content-button input[type=radio]:hover,:host .radio-group-content-button input[type=radio]:checked{color:var(--cps-color-calm)}:host .radio-group-content-button input[type=radio]:disabled{color:var(--cps-color-text-lightest);cursor:default}:host .radio-group-content-button input[type=radio]:before{content:\"\";width:.625em;height:.625em;border-radius:50%;transform:scale(0);transition:.12s transform ease-in-out;box-shadow:inset 1em 1em var(--cps-color-calm);background-color:CanvasText}:host .radio-group-content-button input[type=radio][disabled]:before{box-shadow:inset 1em 1em var(--cps-color-text-lightest)}:host .radio-group-content-button input[type=radio]:disabled+.radio-group-content-button-label{color:var(--cps-color-text-light)}:host .radio-group-content-button input[type=radio]:checked:before{transform:scale(1)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
56
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CpsRadioComponent, decorators: [{
|
|
57
|
+
type: Component,
|
|
58
|
+
args: [{ standalone: true, imports: [CommonModule], selector: 'cps-radio', template: "<div class=\"radio-group\">\n <div class=\"radio-group-label\" *ngIf=\"groupLabel\">\n <span>{{ groupLabel }}</span>\n </div>\n <div\n class=\"radio-group-content\"\n [ngClass]=\"\n vertical\n ? 'radio-group-content-vertical'\n : 'radio-group-content-horizontal'\n \"\n >\n <label\n *ngFor=\"let option of options\"\n class=\"radio-group-content-button\"\n [ngStyle]=\"{\n cursor: option.disabled || disabled ? 'default' : 'pointer'\n }\"\n >\n <input\n type=\"radio\"\n [disabled]=\"option.disabled || disabled\"\n [value]=\"option.value\"\n [checked]=\"value === option.value\"\n (change)=\"updateValueEvent($event)\"\n />\n <span class=\"radio-group-content-button-label\">{{ option.label }}</span>\n </label>\n </div>\n</div>\n", styles: [":host{width:-moz-fit-content;width:fit-content;display:inline-block}:host .radio-group-label{color:var(--cps-color-text-dark);margin-bottom:.75rem}:host .radio-group-content{margin-left:.5rem;gap:1.25rem}:host .radio-group-content-vertical{display:grid}:host .radio-group-content-horizontal{display:flex;flex-direction:row;flex-wrap:wrap}:host .radio-group-content-button{display:grid;grid-template-columns:1em auto;gap:.75em}:host .radio-group-content-button-label{font-size:1rem;align-self:center;color:var(--cps-color-text-dark)}:host .radio-group-content-button input[type=radio]{-webkit-appearance:none;appearance:none;background-color:transparent;margin:0;cursor:pointer;font:inherit;color:var(--cps-color-text-dark);width:1.25em;height:1.25em;border:.15em solid currentColor;border-radius:50%;transform:translateY(-.075em);display:grid;place-content:center}:host .radio-group-content-button input[type=radio]:hover,:host .radio-group-content-button input[type=radio]:checked{color:var(--cps-color-calm)}:host .radio-group-content-button input[type=radio]:disabled{color:var(--cps-color-text-lightest);cursor:default}:host .radio-group-content-button input[type=radio]:before{content:\"\";width:.625em;height:.625em;border-radius:50%;transform:scale(0);transition:.12s transform ease-in-out;box-shadow:inset 1em 1em var(--cps-color-calm);background-color:CanvasText}:host .radio-group-content-button input[type=radio][disabled]:before{box-shadow:inset 1em 1em var(--cps-color-text-lightest)}:host .radio-group-content-button input[type=radio]:disabled+.radio-group-content-button-label{color:var(--cps-color-text-light)}:host .radio-group-content-button input[type=radio]:checked:before{transform:scale(1)}\n"] }]
|
|
59
|
+
}], ctorParameters: function () { return [{ type: i1.NgControl, decorators: [{
|
|
60
|
+
type: Self
|
|
61
|
+
}, {
|
|
62
|
+
type: Optional
|
|
63
|
+
}] }]; }, propDecorators: { options: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], groupLabel: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], vertical: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], disabled: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], value: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], valueChanged: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3BzLXJhZGlvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nwcy11aS1raXQvc3JjL2xpYi9jb21wb25lbnRzL2Nwcy1yYWRpby9jcHMtcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3BzLXVpLWtpdC9zcmMvbGliL2NvbXBvbmVudHMvY3BzLXJhZGlvL2Nwcy1yYWRpby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sSUFBSSxFQUNMLE1BQU0sZUFBZSxDQUFDOzs7O0FBZ0J2QixNQUFNLE9BQU8saUJBQWlCO0lBSzVCLElBQWEsS0FBSyxDQUFFLEtBQVU7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDcEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3JCLENBQUM7SUFNRCxZQUF5QyxRQUFtQjtRQUFuQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBakJuRCxZQUFPLEdBQUcsRUFBbUIsQ0FBQztRQUM5QixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQVVoQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFN0MsV0FBTSxHQUFRLFNBQVMsQ0FBQztRQVFoQyxnRUFBZ0U7UUFDaEUsYUFBUSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDOUIsZ0VBQWdFO1FBQ2hFLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFSbkIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztTQUNwQztJQUNILENBQUM7SUFPRCxnQkFBZ0IsQ0FBRSxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxpQkFBaUIsQ0FBRSxFQUFPO1FBQ3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVLENBQUUsS0FBVTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDO0lBRUQsZ0JBQWdCLENBQUUsS0FBVTtRQUMxQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFDMUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLE1BQU0sRUFBRSxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVPLFlBQVksQ0FBRSxLQUFVO1FBQzlCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsZ0VBQWdFO0lBQ2hFLGdCQUFnQixDQUFFLFFBQWlCLElBQUcsQ0FBQzs7OEdBdkQ1QixpQkFBaUI7a0dBQWpCLGlCQUFpQixzT0N4QjlCLHUxQkE4QkEsMnVERFhZLFlBQVk7MkZBS1gsaUJBQWlCO2tCQVA3QixTQUFTO2lDQUNJLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxZQUNiLFdBQVc7OzBCQXNCUCxJQUFJOzswQkFBSSxRQUFROzRDQWpCckIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNPLEtBQUs7c0JBQWpCLEtBQUs7Z0JBU0ksWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNlbGZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgdHlwZSBSYWRpb09wdGlvbiA9IHtcbiAgdmFsdWU6IGFueTtcbiAgbGFiZWw6IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBzZWxlY3RvcjogJ2Nwcy1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jcHMtcmFkaW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jcHMtcmFkaW8uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDcHNSYWRpb0NvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCkgb3B0aW9ucyA9IFtdIGFzIFJhZGlvT3B0aW9uW107XG4gIEBJbnB1dCgpIGdyb3VwTGFiZWwgPSAnJztcbiAgQElucHV0KCkgdmVydGljYWwgPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0IHZhbHVlICh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgfVxuXG4gIGdldCB2YWx1ZSAoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5fdmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHByaXZhdGUgX3ZhbHVlOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IgKEBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBfY29udHJvbDogTmdDb250cm9sKSB7XG4gICAgaWYgKHRoaXMuX2NvbnRyb2wpIHtcbiAgICAgIHRoaXMuX2NvbnRyb2wudmFsdWVBY2Nlc3NvciA9IHRoaXM7XG4gICAgfVxuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvbkNoYW5nZSA9IChldmVudDogYW55KSA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlIChmbjogYW55KSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQgKGZuOiBhbnkpIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSAodmFsdWU6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlRXZlbnQgKGV2ZW50OiBhbnkpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XG4gICAgY29uc3QgdmFsdWUgPSBldmVudD8udGFyZ2V0Py52YWx1ZSB8fCAnJztcbiAgICB0aGlzLl91cGRhdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZSAodmFsdWU6IGFueSkge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh2YWx1ZSk7XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIHNldERpc2FibGVkU3RhdGUgKGRpc2FibGVkOiBib29sZWFuKSB7fVxufVxuIiwiPGRpdiBjbGFzcz1cInJhZGlvLWdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJyYWRpby1ncm91cC1sYWJlbFwiICpuZ0lmPVwiZ3JvdXBMYWJlbFwiPlxuICAgIDxzcGFuPnt7IGdyb3VwTGFiZWwgfX08L3NwYW4+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgY2xhc3M9XCJyYWRpby1ncm91cC1jb250ZW50XCJcbiAgICBbbmdDbGFzc109XCJcbiAgICAgIHZlcnRpY2FsXG4gICAgICAgID8gJ3JhZGlvLWdyb3VwLWNvbnRlbnQtdmVydGljYWwnXG4gICAgICAgIDogJ3JhZGlvLWdyb3VwLWNvbnRlbnQtaG9yaXpvbnRhbCdcbiAgICBcIlxuICA+XG4gICAgPGxhYmVsXG4gICAgICAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIlxuICAgICAgY2xhc3M9XCJyYWRpby1ncm91cC1jb250ZW50LWJ1dHRvblwiXG4gICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAgIGN1cnNvcjogb3B0aW9uLmRpc2FibGVkIHx8IGRpc2FibGVkID8gJ2RlZmF1bHQnIDogJ3BvaW50ZXInXG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZCB8fCBkaXNhYmxlZFwiXG4gICAgICAgIFt2YWx1ZV09XCJvcHRpb24udmFsdWVcIlxuICAgICAgICBbY2hlY2tlZF09XCJ2YWx1ZSA9PT0gb3B0aW9uLnZhbHVlXCJcbiAgICAgICAgKGNoYW5nZSk9XCJ1cGRhdGVWYWx1ZUV2ZW50KCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxzcGFuIGNsYXNzPVwicmFkaW8tZ3JvdXAtY29udGVudC1idXR0b24tbGFiZWxcIj57eyBvcHRpb24ubGFiZWwgfX08L3NwYW4+XG4gICAgPC9sYWJlbD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|