otimus-library 0.0.68 → 0.0.70
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/esm2022/lib/components/oc-autocomplete/oc-autocomplete.component.mjs +3 -3
- package/esm2022/lib/components/oc-input/oc-input.component.mjs +19 -5
- package/esm2022/lib/components/oc-modal/oc-modal.component.mjs +3 -3
- package/fesm2022/otimus-library.mjs +22 -8
- package/fesm2022/otimus-library.mjs.map +1 -1
- package/lib/components/oc-input/oc-input.component.d.ts +8 -3
- package/package.json +1 -1
- package/styles/components/inputs.scss +84 -1
|
@@ -94,11 +94,11 @@ export class OcAutocompleteComponent {
|
|
|
94
94
|
this.ocValue = '';
|
|
95
95
|
}
|
|
96
96
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: OcAutocompleteComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
97
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.5", type: OcAutocompleteComponent, isStandalone: true, selector: "oc-autocomplete", inputs: { ocPlaceholder: "ocPlaceholder", ocError: "ocError", ocSize: "ocSize", ocData: "ocData", ocValue: "ocValue", ocClearOnChange: "ocClearOnChange", ocWidth: "ocWidth" }, outputs: { ocValueChange: "ocValueChange", ocChange: "ocChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "options", first: true, predicate: ["options"], descendants: true }, { propertyName: "outerDiv", first: true, predicate: ["outerDiv"], descendants: true }], ngImport: i0, template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError\r\n }\"\r\n [ngStyle]=\"{\r\n width: ocWidth || '100%'\r\n }\"\r\n >\r\n <input #input (click)=\"toggleOptions()\" type=\"text\" (input)=\"filterData(ocValue)\" [(ngModel)]=\"ocValue\" (ngModelChange)=\"ocValue = $event; ocValueChange.emit($event)\">\r\n <label>{{ocPlaceholder}}</label>\r\n</div>\r\n\r\n<div \r\n class=\"oc-options-div\"\r\n>\r\n @if(isOptionsShown){\r\n <ul #options class=\"oc-options\">\r\n @if(!filteredData.length){\r\n <li class=\"no-options\">\r\n Nenhuma op\u00E7\u00E3o dispon\u00EDvel\r\n </li>\r\n }@else {\r\n @for(data of filteredData; track data.value) {\r\n <li>\r\n <button type=\"button\" (click)=\"selectValue(data.value)\">\r\n {{data.name}}\r\n </button>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [".oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}.small input,.small textarea,.small select{padding:.3rem .7rem;border-radius:.5rem}.small label{padding:.5rem .7rem}.small input:focus~label,.small input:not(:placeholder-shown)~label,.small textarea:focus~label,.small textarea:not(:placeholder-shown)~label,.small select:focus~label,.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.large input,.large textarea,.large select{padding:1rem;border-radius:1rem}.large label{padding:1rem .7rem}.large input:focus~label,.large input:not(:placeholder-shown)~label,.large textarea:focus~label,.large textarea:not(:placeholder-shown)~label,.large select:focus~label,.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box{position:relative}.oc-options-div{position:absolute;min-width:20vw}.oc-options{display:flex;flex-direction:column;list-style:none;max-height:40vh;background-color:#f8f9ff;border:2px solid #ffffff;box-shadow:0 4px 8.7px #00000021;padding:0;border-radius:.5rem;overflow:hidden;width:100%;position:absolute;top:50%;overflow-y:auto;z-index:15}.oc-options>li{padding:0;margin:0}.oc-options>li button{width:100%;text-align:left;padding:.6rem;border:none;background-color:#f8f9ff;cursor:pointer}.oc-options>li button:hover{filter:brightness(.9)}.no-options{padding:.6rem!important;color:#8f9596}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
97
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.5", type: OcAutocompleteComponent, isStandalone: true, selector: "oc-autocomplete", inputs: { ocPlaceholder: "ocPlaceholder", ocError: "ocError", ocSize: "ocSize", ocData: "ocData", ocValue: "ocValue", ocClearOnChange: "ocClearOnChange", ocWidth: "ocWidth" }, outputs: { ocValueChange: "ocValueChange", ocChange: "ocChange" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "options", first: true, predicate: ["options"], descendants: true }, { propertyName: "outerDiv", first: true, predicate: ["outerDiv"], descendants: true }], ngImport: i0, template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError\r\n }\"\r\n [ngStyle]=\"{\r\n width: ocWidth || '100%'\r\n }\"\r\n >\r\n <input #input (click)=\"toggleOptions()\" type=\"text\" (input)=\"filterData(ocValue)\" [(ngModel)]=\"ocValue\" (ngModelChange)=\"ocValue = $event; ocValueChange.emit($event)\">\r\n <label>{{ocPlaceholder}}</label>\r\n</div>\r\n\r\n<div \r\n class=\"oc-options-div\"\r\n>\r\n @if(isOptionsShown){\r\n <ul #options class=\"oc-options\">\r\n @if(!filteredData.length){\r\n <li class=\"no-options\">\r\n Nenhuma op\u00E7\u00E3o dispon\u00EDvel\r\n </li>\r\n }@else {\r\n @for(data of filteredData; track data.value) {\r\n <li>\r\n <button type=\"button\" (click)=\"selectValue(data.value)\">\r\n {{data.name}}\r\n </button>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [".oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;pointer-events:none;font-size:1.5rem}.oc-input-box.suffix .material-symbols-outlined{position:absolute;right:0;pointer-events:none;font-size:1.5rem}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box.prefix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:2.5rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:2.5rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}.small input,.small textarea,.small select{padding:.3rem .7rem;border-radius:.5rem}.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}.small.prefix label{padding:.45rem 2.5rem}.small.suffix .material-symbols-outlined{padding:.35rem .7rem}.small.suffix label{padding:.45rem .7rem}.small label{padding:.5rem .7rem}.small input:focus~label,.small input:not(:placeholder-shown)~label,.small textarea:focus~label,.small textarea:not(:placeholder-shown)~label,.small select:focus~label,.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.large input,.large textarea,.large select{padding:1rem;border-radius:1rem}.large label,.large.prefix .material-symbols-outlined{padding:1rem .7rem}.large.prefix input{padding-left:2.5rem}.large.prefix label{padding:1.1rem 2.5rem}.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.large.suffix input{padding-right:2.5rem}.large.suffix label{padding:1.1rem .7rem}.large input:focus~label,.large input:not(:placeholder-shown)~label,.large textarea:focus~label,.large textarea:not(:placeholder-shown)~label,.large select:focus~label,.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box{position:relative}.oc-options-div{position:absolute;min-width:20vw}.oc-options{display:flex;flex-direction:column;list-style:none;max-height:40vh;background-color:#f8f9ff;border:2px solid #ffffff;box-shadow:0 4px 8.7px #00000021;padding:0;border-radius:.5rem;overflow:hidden;width:100%;position:absolute;top:50%;overflow-y:auto;z-index:15}.oc-options>li{padding:0;margin:0}.oc-options>li button{width:100%;text-align:left;padding:.6rem;border:none;background-color:#f8f9ff;cursor:pointer}.oc-options>li button:hover{filter:brightness(.9)}.no-options{padding:.6rem!important;color:#8f9596}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
|
|
98
98
|
}
|
|
99
99
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: OcAutocompleteComponent, decorators: [{
|
|
100
100
|
type: Component,
|
|
101
|
-
args: [{ selector: 'oc-autocomplete', standalone: true, imports: [CommonModule, FormsModule], template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError\r\n }\"\r\n [ngStyle]=\"{\r\n width: ocWidth || '100%'\r\n }\"\r\n >\r\n <input #input (click)=\"toggleOptions()\" type=\"text\" (input)=\"filterData(ocValue)\" [(ngModel)]=\"ocValue\" (ngModelChange)=\"ocValue = $event; ocValueChange.emit($event)\">\r\n <label>{{ocPlaceholder}}</label>\r\n</div>\r\n\r\n<div \r\n class=\"oc-options-div\"\r\n>\r\n @if(isOptionsShown){\r\n <ul #options class=\"oc-options\">\r\n @if(!filteredData.length){\r\n <li class=\"no-options\">\r\n Nenhuma op\u00E7\u00E3o dispon\u00EDvel\r\n </li>\r\n }@else {\r\n @for(data of filteredData; track data.value) {\r\n <li>\r\n <button type=\"button\" (click)=\"selectValue(data.value)\">\r\n {{data.name}}\r\n </button>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [".oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}.small input,.small textarea,.small select{padding:.3rem .7rem;border-radius:.5rem}.small label{padding:.5rem .7rem}.small input:focus~label,.small input:not(:placeholder-shown)~label,.small textarea:focus~label,.small textarea:not(:placeholder-shown)~label,.small select:focus~label,.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.large input,.large textarea,.large select{padding:1rem;border-radius:1rem}.large label{padding:1rem .7rem}.large input:focus~label,.large input:not(:placeholder-shown)~label,.large textarea:focus~label,.large textarea:not(:placeholder-shown)~label,.large select:focus~label,.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box{position:relative}.oc-options-div{position:absolute;min-width:20vw}.oc-options{display:flex;flex-direction:column;list-style:none;max-height:40vh;background-color:#f8f9ff;border:2px solid #ffffff;box-shadow:0 4px 8.7px #00000021;padding:0;border-radius:.5rem;overflow:hidden;width:100%;position:absolute;top:50%;overflow-y:auto;z-index:15}.oc-options>li{padding:0;margin:0}.oc-options>li button{width:100%;text-align:left;padding:.6rem;border:none;background-color:#f8f9ff;cursor:pointer}.oc-options>li button:hover{filter:brightness(.9)}.no-options{padding:.6rem!important;color:#8f9596}\n"] }]
|
|
101
|
+
args: [{ selector: 'oc-autocomplete', standalone: true, imports: [CommonModule, FormsModule], template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError\r\n }\"\r\n [ngStyle]=\"{\r\n width: ocWidth || '100%'\r\n }\"\r\n >\r\n <input #input (click)=\"toggleOptions()\" type=\"text\" (input)=\"filterData(ocValue)\" [(ngModel)]=\"ocValue\" (ngModelChange)=\"ocValue = $event; ocValueChange.emit($event)\">\r\n <label>{{ocPlaceholder}}</label>\r\n</div>\r\n\r\n<div \r\n class=\"oc-options-div\"\r\n>\r\n @if(isOptionsShown){\r\n <ul #options class=\"oc-options\">\r\n @if(!filteredData.length){\r\n <li class=\"no-options\">\r\n Nenhuma op\u00E7\u00E3o dispon\u00EDvel\r\n </li>\r\n }@else {\r\n @for(data of filteredData; track data.value) {\r\n <li>\r\n <button type=\"button\" (click)=\"selectValue(data.value)\">\r\n {{data.name}}\r\n </button>\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [".oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;pointer-events:none;font-size:1.5rem}.oc-input-box.suffix .material-symbols-outlined{position:absolute;right:0;pointer-events:none;font-size:1.5rem}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box.prefix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:2.5rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:2.5rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}.small input,.small textarea,.small select{padding:.3rem .7rem;border-radius:.5rem}.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}.small.prefix label{padding:.45rem 2.5rem}.small.suffix .material-symbols-outlined{padding:.35rem .7rem}.small.suffix label{padding:.45rem .7rem}.small label{padding:.5rem .7rem}.small input:focus~label,.small input:not(:placeholder-shown)~label,.small textarea:focus~label,.small textarea:not(:placeholder-shown)~label,.small select:focus~label,.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.large input,.large textarea,.large select{padding:1rem;border-radius:1rem}.large label,.large.prefix .material-symbols-outlined{padding:1rem .7rem}.large.prefix input{padding-left:2.5rem}.large.prefix label{padding:1.1rem 2.5rem}.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.large.suffix input{padding-right:2.5rem}.large.suffix label{padding:1.1rem .7rem}.large input:focus~label,.large input:not(:placeholder-shown)~label,.large textarea:focus~label,.large textarea:not(:placeholder-shown)~label,.large select:focus~label,.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box{position:relative}.oc-options-div{position:absolute;min-width:20vw}.oc-options{display:flex;flex-direction:column;list-style:none;max-height:40vh;background-color:#f8f9ff;border:2px solid #ffffff;box-shadow:0 4px 8.7px #00000021;padding:0;border-radius:.5rem;overflow:hidden;width:100%;position:absolute;top:50%;overflow-y:auto;z-index:15}.oc-options>li{padding:0;margin:0}.oc-options>li button{width:100%;text-align:left;padding:.6rem;border:none;background-color:#f8f9ff;cursor:pointer}.oc-options>li button:hover{filter:brightness(.9)}.no-options{padding:.6rem!important;color:#8f9596}\n"] }]
|
|
102
102
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { input: [{
|
|
103
103
|
type: ViewChild,
|
|
104
104
|
args: ['input']
|
|
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
|
|
|
127
127
|
}], ocChange: [{
|
|
128
128
|
type: Output
|
|
129
129
|
}] } });
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hdXRvY29tcGxldGUvb2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hdXRvY29tcGxldGUvb2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBUzdDLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFBb0IsUUFBbUIsRUFBVSxFQUFjO1FBQTNDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBUXRELFdBQU0sR0FBaUMsUUFBUSxDQUFBO1FBQy9DLFdBQU0sR0FBeUIsRUFBRSxDQUFBO1FBQ2pDLFlBQU8sR0FBVyxFQUFFLENBQUE7UUFDcEIsb0JBQWUsR0FBWSxLQUFLLENBQUE7UUFHL0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFBO1FBQzFDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFBO1FBRS9DLG1CQUFjLEdBQVksS0FBSyxDQUFBO1FBQy9CLGlCQUFZLEdBQXlCLEVBQUUsQ0FBQTtRQUN2QyxrQkFBYSxHQUF1QjtZQUNsQyxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQTtJQXRC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QWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPY0F1dG9Db21wbGV0ZVR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL29jLWF1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdvYy1hdXRvY29tcGxldGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vYy1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9vYy1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPY0F1dG9jb21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cclxuICBcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0ITogRWxlbWVudFJlZlxyXG4gIEBWaWV3Q2hpbGQoJ29wdGlvbnMnKSBvcHRpb25zITogRWxlbWVudFJlZlxyXG4gIEBWaWV3Q2hpbGQoJ291dGVyRGl2Jykgb3V0ZXJEaXYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PlxyXG5cclxuICBASW5wdXQoKSBvY1BsYWNlaG9sZGVyPzogc3RyaW5nXHJcbiAgQElucHV0KCkgb2NFcnJvcj86IHN0cmluZ1xyXG4gIEBJbnB1dCgpIG9jU2l6ZTogJ3NtYWxsJyB8ICdsYXJnZScgfCAnbWVkaXVtJyA9ICdtZWRpdW0nXHJcbiAgQElucHV0KCkgb2NEYXRhOiBPY0F1dG9Db21wbGV0ZVR5cGVbXSA9IFtdXHJcbiAgQElucHV0KCkgb2NWYWx1ZTogc3RyaW5nID0gJydcclxuICBASW5wdXQoKSBvY0NsZWFyT25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZSBcclxuICBASW5wdXQoKSBvY1dpZHRoPzogc3RyaW5nXHJcbiAgXHJcbiAgQE91dHB1dCgpIG9jVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxyXG4gIEBPdXRwdXQoKSBvY0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXHJcblxyXG4gIGlzT3B0aW9uc1Nob3duOiBib29sZWFuID0gZmFsc2VcclxuICBmaWx0ZXJlZERhdGE6IE9jQXV0b0NvbXBsZXRlVHlwZVtdID0gW11cclxuICBzZWxlY3RlZFZhbHVlOiBPY0F1dG9Db21wbGV0ZVR5cGUgPSB7XHJcbiAgICBuYW1lOiAnJyxcclxuICAgIHZhbHVlOiBudWxsXHJcbiAgfVxyXG5cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PntcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLm9jRGF0YVxyXG4gICAgICBjb25zdCBpbnB1dEJveCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5vY0RhdGEuZmluZChlbCA9PiBlbC52YWx1ZSA9PT0gdGhpcy5vY1ZhbHVlKVxyXG4gICAgICBpZihmb3VuZCl7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZm91bmRcclxuICAgICAgICB0aGlzLm9jVmFsdWUgPSBmb3VuZC5uYW1lXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpbnB1dEJveCkge1xyXG4gICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGlucHV0Qm94LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XHJcbiAgXHJcbiAgICAgICAgaWYgKGlucHV0RWxlbWVudCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoaW5wdXRFbGVtZW50LCAncGxhY2Vob2xkZXInLCAnJylcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sNTApXHJcbiAgfVxyXG5cclxuICBjbG9zZU9uQ2xpY2tPdXQoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywoZTpFdmVudCk9PntcclxuICAgICAgaWYodGhpcy5pbnB1dCAmJiB0aGlzLm9wdGlvbnMpe1xyXG4gICAgICAgIGlmKGUudGFyZ2V0ICE9PSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgJiYgZS50YXJnZXQhPT10aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgICAgICB0aGlzLmlzT3B0aW9uc1Nob3duID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZmluZEJ5VHlwaW5nKClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBmaW5kQnlUeXBpbmcoKSB7XHJcbiAgICBjb25zdCBmb3VuZFZhbHVlID0gdGhpcy5vY0RhdGEuZmluZChkYXRhID0+IGRhdGEubmFtZS50b0xvd2VyQ2FzZSgpID09PSB0aGlzLm9jVmFsdWUudG9Mb3dlckNhc2UoKSlcclxuXHJcbiAgICBpZighZm91bmRWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB7XHJcbiAgICAgICBuYW1lOiAnJyxcclxuICAgICAgIHZhbHVlOiBudWxsXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vY1ZhbHVlID0gJydcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBmb3VuZFZhbHVlXHJcbiAgfVxyXG5cclxuICBmaWx0ZXJEYXRhKG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5pc09wdGlvbnNTaG93biA9IHRydWVcclxuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5vY0RhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmFtZS50b0xvd2VyQ2FzZSgpKSlcclxuICB9XHJcblxyXG4gIHRvZ2dsZU9wdGlvbnMoKSB7XHJcbiAgICB0aGlzLmNsb3NlT25DbGlja091dCgpXHJcbiAgICB0aGlzLmlzT3B0aW9uc1Nob3duID0gIXRoaXMuaXNPcHRpb25zU2hvd25cclxuICB9XHJcblxyXG4gIHNlbGVjdFZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgIGNvbnN0IGZvdW5kVmFsdWUgPSB0aGlzLm9jRGF0YS5maW5kKChkYXRhKSA9PiBkYXRhLnZhbHVlID09PSB2YWx1ZSlcclxuICAgIFxyXG4gICAgaWYoIWZvdW5kVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0ge1xyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiBudWxsXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZm91bmRWYWx1ZVxyXG4gICAgaWYodGhpcy5vY0NsZWFyT25DaGFuZ2Upe1xyXG4gICAgICB0aGlzLm9jVmFsdWUgPSAnJ1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMub2NWYWx1ZSA9IGZvdW5kVmFsdWUubmFtZVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub2NDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkVmFsdWUudmFsdWUpXHJcbiAgfVxyXG5cclxuICBjbGVhclZhbHVlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0ge1xyXG4gICAgICBuYW1lOiAnJyxcclxuICAgICAgdmFsdWU6IG51bGxcclxuICAgIH1cclxuICAgIHRoaXMub2NWYWx1ZSA9ICcnXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJvYy1pbnB1dC1ib3hcIiBbbmdDbGFzc109XCJ7XHJcbiAgJ3NtYWxsJzogb2NTaXplID09PSAnc21hbGwnLFxyXG4gICdsYXJnZSc6IG9jU2l6ZSA9PT0gJ2xhcmdlJyxcclxuICBlcnJvcjogISFvY0Vycm9yXHJcbiAgfVwiXHJcbiAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgIHdpZHRoOiBvY1dpZHRoIHx8ICcxMDAlJ1xyXG4gICAgfVwiXHJcbiAgPlxyXG4gIDxpbnB1dCAjaW5wdXQgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbnMoKVwiIHR5cGU9XCJ0ZXh0XCIgKGlucHV0KT1cImZpbHRlckRhdGEob2NWYWx1ZSlcIiBbKG5nTW9kZWwpXT1cIm9jVmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvY1ZhbHVlID0gJGV2ZW50OyBvY1ZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiPlxyXG4gIDxsYWJlbD57e29jUGxhY2Vob2xkZXJ9fTwvbGFiZWw+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBcclxuICBjbGFzcz1cIm9jLW9wdGlvbnMtZGl2XCJcclxuPlxyXG4gIEBpZihpc09wdGlvbnNTaG93bil7XHJcbiAgICA8dWwgI29wdGlvbnMgY2xhc3M9XCJvYy1vcHRpb25zXCI+XHJcbiAgICAgIEBpZighZmlsdGVyZWREYXRhLmxlbmd0aCl7XHJcbiAgICAgICAgPGxpIGNsYXNzPVwibm8tb3B0aW9uc1wiPlxyXG4gICAgICAgICAgTmVuaHVtYSBvcMOnw6NvIGRpc3BvbsOtdmVsXHJcbiAgICAgICAgPC9saT5cclxuICAgICAgfUBlbHNlIHtcclxuICAgICAgICBAZm9yKGRhdGEgb2YgZmlsdGVyZWREYXRhOyB0cmFjayBkYXRhLnZhbHVlKSB7XHJcbiAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzZWxlY3RWYWx1ZShkYXRhLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgIHt7ZGF0YS5uYW1lfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgPC91bD5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hdXRvY29tcGxldGUvb2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hdXRvY29tcGxldGUvb2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBYSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEksT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBUzdDLE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsWUFBb0IsUUFBbUIsRUFBVSxFQUFjO1FBQTNDLGFBQVEsR0FBUixRQUFRLENBQVc7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBUXRELFdBQU0sR0FBaUMsUUFBUSxDQUFBO1FBQy9DLFdBQU0sR0FBeUIsRUFBRSxDQUFBO1FBQ2pDLFlBQU8sR0FBVyxFQUFFLENBQUE7UUFDcEIsb0JBQWUsR0FBWSxLQUFLLENBQUE7UUFHL0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFBO1FBQzFDLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFBO1FBRS9DLG1CQUFjLEdBQVksS0FBSyxDQUFBO1FBQy9CLGlCQUFZLEdBQXlCLEVBQUUsQ0FBQTtRQUN2QyxrQkFBYSxHQUF1QjtZQUNsQyxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQTtJQXRCaUUsQ0FBQztJQXlCbkUsZUFBZTtRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUE7WUFDL0IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7WUFFdkMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUMvRCxJQUFHLEtBQUssRUFBQztnQkFDUCxJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQTtnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFBO2FBQzFCO1lBRUQsSUFBSSxRQUFRLEVBQUU7Z0JBQ1osTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFFckQsSUFBSSxZQUFZLEVBQUU7b0JBQ2hCLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsRUFBRSxDQUFDLENBQUE7aUJBQzVEO2FBQ0Y7UUFDSCxDQUFDLEVBQUMsRUFBRSxDQUFDLENBQUE7SUFDUCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUMsQ0FBQyxDQUFPLEVBQUMsRUFBRTtZQUNoRCxJQUFHLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBQztnQkFDNUIsSUFBRyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUM7b0JBQ2hGLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO2lCQUM3QjthQUNGO1lBQ0QsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFBO1FBQ3JCLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELFlBQVk7UUFDVixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFBO1FBRW5HLElBQUcsQ0FBQyxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHO2dCQUNwQixJQUFJLEVBQUUsRUFBRTtnQkFDUixLQUFLLEVBQUUsSUFBSTthQUNYLENBQUE7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQTtZQUNqQixPQUFNO1NBQ1A7UUFDRCxJQUFJLENBQUMsYUFBYSxHQUFHLFVBQVUsQ0FBQTtJQUNqQyxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUE7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDdEcsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUE7UUFDdEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUE7SUFDNUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFzQjtRQUNoQyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQTtRQUVuRSxJQUFHLENBQUMsVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRztnQkFDbkIsSUFBSSxFQUFFLEVBQUU7Z0JBQ1IsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFBO1lBQ0QsT0FBTTtTQUNQO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUE7UUFDL0IsSUFBRyxJQUFJLENBQUMsZUFBZSxFQUFDO1lBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO1NBQ2xCO2FBQUk7WUFDSCxJQUFJLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUE7U0FDL0I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzlDLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLGFBQWEsR0FBRztZQUNuQixJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQTtRQUNELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFBO0lBQ25CLENBQUM7OEdBN0dVLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDBrQkNacEMsZy9CQWtDQSxvbEhEMUJZLFlBQVksaU5BQUUsV0FBVzs7MkZBSXhCLHVCQUF1QjtrQkFQbkMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDO3VHQU9oQixLQUFLO3NCQUF4QixTQUFTO3VCQUFDLE9BQU87Z0JBQ0ksT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUNHLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFFWixhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPY0F1dG9Db21wbGV0ZVR5cGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL29jLWF1dG9jb21wbGV0ZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdvYy1hdXRvY29tcGxldGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vYy1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9vYy1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPY0F1dG9jb21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cclxuICBcclxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0ITogRWxlbWVudFJlZlxyXG4gIEBWaWV3Q2hpbGQoJ29wdGlvbnMnKSBvcHRpb25zITogRWxlbWVudFJlZlxyXG4gIEBWaWV3Q2hpbGQoJ291dGVyRGl2Jykgb3V0ZXJEaXYhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PlxyXG5cclxuICBASW5wdXQoKSBvY1BsYWNlaG9sZGVyPzogc3RyaW5nXHJcbiAgQElucHV0KCkgb2NFcnJvcj86IHN0cmluZ1xyXG4gIEBJbnB1dCgpIG9jU2l6ZTogJ3NtYWxsJyB8ICdsYXJnZScgfCAnbWVkaXVtJyA9ICdtZWRpdW0nXHJcbiAgQElucHV0KCkgb2NEYXRhOiBPY0F1dG9Db21wbGV0ZVR5cGVbXSA9IFtdXHJcbiAgQElucHV0KCkgb2NWYWx1ZTogc3RyaW5nID0gJydcclxuICBASW5wdXQoKSBvY0NsZWFyT25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZSBcclxuICBASW5wdXQoKSBvY1dpZHRoPzogc3RyaW5nXHJcbiAgXHJcbiAgQE91dHB1dCgpIG9jVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxyXG4gIEBPdXRwdXQoKSBvY0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpXHJcblxyXG4gIGlzT3B0aW9uc1Nob3duOiBib29sZWFuID0gZmFsc2VcclxuICBmaWx0ZXJlZERhdGE6IE9jQXV0b0NvbXBsZXRlVHlwZVtdID0gW11cclxuICBzZWxlY3RlZFZhbHVlOiBPY0F1dG9Db21wbGV0ZVR5cGUgPSB7XHJcbiAgICBuYW1lOiAnJyxcclxuICAgIHZhbHVlOiBudWxsXHJcbiAgfVxyXG5cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PntcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLm9jRGF0YVxyXG4gICAgICBjb25zdCBpbnB1dEJveCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5vY0RhdGEuZmluZChlbCA9PiBlbC52YWx1ZSA9PT0gdGhpcy5vY1ZhbHVlKVxyXG4gICAgICBpZihmb3VuZCl7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZm91bmRcclxuICAgICAgICB0aGlzLm9jVmFsdWUgPSBmb3VuZC5uYW1lXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChpbnB1dEJveCkge1xyXG4gICAgICAgIGNvbnN0IGlucHV0RWxlbWVudCA9IGlucHV0Qm94LnF1ZXJ5U2VsZWN0b3IoJ2lucHV0Jyk7XHJcbiAgXHJcbiAgICAgICAgaWYgKGlucHV0RWxlbWVudCkge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoaW5wdXRFbGVtZW50LCAncGxhY2Vob2xkZXInLCAnJylcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sNTApXHJcbiAgfVxyXG5cclxuICBjbG9zZU9uQ2xpY2tPdXQoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywoZTpFdmVudCk9PntcclxuICAgICAgaWYodGhpcy5pbnB1dCAmJiB0aGlzLm9wdGlvbnMpe1xyXG4gICAgICAgIGlmKGUudGFyZ2V0ICE9PSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgJiYgZS50YXJnZXQhPT10aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgICAgICB0aGlzLmlzT3B0aW9uc1Nob3duID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZmluZEJ5VHlwaW5nKClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBmaW5kQnlUeXBpbmcoKSB7XHJcbiAgICBjb25zdCBmb3VuZFZhbHVlID0gdGhpcy5vY0RhdGEuZmluZChkYXRhID0+IGRhdGEubmFtZS50b0xvd2VyQ2FzZSgpID09PSB0aGlzLm9jVmFsdWUudG9Mb3dlckNhc2UoKSlcclxuXHJcbiAgICBpZighZm91bmRWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB7XHJcbiAgICAgICBuYW1lOiAnJyxcclxuICAgICAgIHZhbHVlOiBudWxsXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5vY1ZhbHVlID0gJydcclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBmb3VuZFZhbHVlXHJcbiAgfVxyXG5cclxuICBmaWx0ZXJEYXRhKG5hbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5pc09wdGlvbnNTaG93biA9IHRydWVcclxuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5vY0RhdGEuZmlsdGVyKGRhdGEgPT4gZGF0YS5uYW1lLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMobmFtZS50b0xvd2VyQ2FzZSgpKSlcclxuICB9XHJcblxyXG4gIHRvZ2dsZU9wdGlvbnMoKSB7XHJcbiAgICB0aGlzLmNsb3NlT25DbGlja091dCgpXHJcbiAgICB0aGlzLmlzT3B0aW9uc1Nob3duID0gIXRoaXMuaXNPcHRpb25zU2hvd25cclxuICB9XHJcblxyXG4gIHNlbGVjdFZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpIHtcclxuICAgIGNvbnN0IGZvdW5kVmFsdWUgPSB0aGlzLm9jRGF0YS5maW5kKChkYXRhKSA9PiBkYXRhLnZhbHVlID09PSB2YWx1ZSlcclxuICAgIFxyXG4gICAgaWYoIWZvdW5kVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0ge1xyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiBudWxsXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZm91bmRWYWx1ZVxyXG4gICAgaWYodGhpcy5vY0NsZWFyT25DaGFuZ2Upe1xyXG4gICAgICB0aGlzLm9jVmFsdWUgPSAnJ1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMub2NWYWx1ZSA9IGZvdW5kVmFsdWUubmFtZVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub2NDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkVmFsdWUudmFsdWUpXHJcbiAgfVxyXG5cclxuICBjbGVhclZhbHVlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0ge1xyXG4gICAgICBuYW1lOiAnJyxcclxuICAgICAgdmFsdWU6IG51bGxcclxuICAgIH1cclxuICAgIHRoaXMub2NWYWx1ZSA9ICcnXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJvYy1pbnB1dC1ib3hcIiBbbmdDbGFzc109XCJ7XHJcbiAgJ3NtYWxsJzogb2NTaXplID09PSAnc21hbGwnLFxyXG4gICdsYXJnZSc6IG9jU2l6ZSA9PT0gJ2xhcmdlJyxcclxuICBlcnJvcjogISFvY0Vycm9yXHJcbiAgfVwiXHJcbiAgICBbbmdTdHlsZV09XCJ7XHJcbiAgICAgIHdpZHRoOiBvY1dpZHRoIHx8ICcxMDAlJ1xyXG4gICAgfVwiXHJcbiAgPlxyXG4gIDxpbnB1dCAjaW5wdXQgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbnMoKVwiIHR5cGU9XCJ0ZXh0XCIgKGlucHV0KT1cImZpbHRlckRhdGEob2NWYWx1ZSlcIiBbKG5nTW9kZWwpXT1cIm9jVmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvY1ZhbHVlID0gJGV2ZW50OyBvY1ZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiPlxyXG4gIDxsYWJlbD57e29jUGxhY2Vob2xkZXJ9fTwvbGFiZWw+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBcclxuICBjbGFzcz1cIm9jLW9wdGlvbnMtZGl2XCJcclxuPlxyXG4gIEBpZihpc09wdGlvbnNTaG93bil7XHJcbiAgICA8dWwgI29wdGlvbnMgY2xhc3M9XCJvYy1vcHRpb25zXCI+XHJcbiAgICAgIEBpZighZmlsdGVyZWREYXRhLmxlbmd0aCl7XHJcbiAgICAgICAgPGxpIGNsYXNzPVwibm8tb3B0aW9uc1wiPlxyXG4gICAgICAgICAgTmVuaHVtYSBvcMOnw6NvIGRpc3BvbsOtdmVsXHJcbiAgICAgICAgPC9saT5cclxuICAgICAgfUBlbHNlIHtcclxuICAgICAgICBAZm9yKGRhdGEgb2YgZmlsdGVyZWREYXRhOyB0cmFjayBkYXRhLnZhbHVlKSB7XHJcbiAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzZWxlY3RWYWx1ZShkYXRhLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgIHt7ZGF0YS5uYW1lfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8L2xpPlxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgPC91bD5cclxuICB9XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { Component, ContentChild, Input, ViewEncapsulation } from '@angular/core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/common";
|
|
5
5
|
export class OcInputComponent {
|
|
@@ -9,6 +9,8 @@ export class OcInputComponent {
|
|
|
9
9
|
this.ocSize = 'medium';
|
|
10
10
|
this.ocPlaceholder = '';
|
|
11
11
|
this.inputId = `oc-${Math.random()}`;
|
|
12
|
+
this.hasSuffix = false;
|
|
13
|
+
this.hasPrefix = false;
|
|
12
14
|
}
|
|
13
15
|
ngAfterViewInit() {
|
|
14
16
|
const inputBox = this.el.nativeElement;
|
|
@@ -19,13 +21,25 @@ export class OcInputComponent {
|
|
|
19
21
|
}
|
|
20
22
|
}
|
|
21
23
|
}
|
|
24
|
+
ngAfterContentInit() {
|
|
25
|
+
if (this.ocPrefix)
|
|
26
|
+
this.hasPrefix = true;
|
|
27
|
+
if (this.ocSuffix)
|
|
28
|
+
this.hasSuffix = true;
|
|
29
|
+
}
|
|
22
30
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: OcInputComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: OcInputComponent, isStandalone: true, selector: "oc-input", inputs: { ocError: "ocError", ocSize: "ocSize", ocPlaceholder: "ocPlaceholder", ocWidth: "ocWidth" }, ngImport: i0, template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError\r\n}\"\r\n [ngStyle]=\"{\r\n width: ocWidth || '100%'\r\n }\"\r\n [id]=\"inputId\">\r\n <ng-content></ng-content>\r\n <label>{{ocPlaceholder}}</label>\r\n <small\r\n *ngIf=\"ocError\"\r\n class=\"error-msg\"\r\n >{{ocError}}</small>\r\n</div>\r\n\r\n", styles: [".oc-input-box{position:relative}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}.small input,.small textarea,.small select{padding:.3rem .7rem;border-radius:.5rem}.small label{padding:.5rem .7rem}.small input:focus~label,.small input:not(:placeholder-shown)~label,.small textarea:focus~label,.small textarea:not(:placeholder-shown)~label,.small select:focus~label,.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.large input,.large textarea,.large select{padding:1rem;border-radius:1rem}.large label{padding:1rem .7rem}.large input:focus~label,.large input:not(:placeholder-shown)~label,.large textarea:focus~label,.large textarea:not(:placeholder-shown)~label,.large select:focus~label,.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
31
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.5", type: OcInputComponent, isStandalone: true, selector: "oc-input", inputs: { ocError: "ocError", ocSize: "ocSize", ocPlaceholder: "ocPlaceholder", ocWidth: "ocWidth" }, queries: [{ propertyName: "ocPrefix", first: true, predicate: ["ocPrefix"], descendants: true }, { propertyName: "ocSuffix", first: true, predicate: ["ocSuffix"], descendants: true }], ngImport: i0, template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError,\r\n prefix: hasPrefix,\r\n suffix: hasSuffix\r\n}\"\r\n [ngStyle]=\"{\r\n width: ocWidth || '100%'\r\n }\"\r\n [id]=\"inputId\">\r\n <ng-content></ng-content>\r\n <ng-content select=\"ocPrefix\"></ng-content>\r\n <ng-content select=\"ocSuffix\"></ng-content>\r\n <label>{{ocPlaceholder}}</label>\r\n <small\r\n *ngIf=\"ocError\"\r\n class=\"error-msg\"\r\n >{{ocError}}</small>\r\n</div>\r\n\r\n", styles: [".oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;pointer-events:none;font-size:1.5rem}.oc-input-box.suffix .material-symbols-outlined{position:absolute;right:0;pointer-events:none;font-size:1.5rem}.oc-input-box{position:relative}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box.prefix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:2.5rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:2.5rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}.small input,.small textarea,.small select{padding:.3rem .7rem;border-radius:.5rem}.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}.small.prefix label{padding:.45rem 2.5rem}.small.suffix .material-symbols-outlined{padding:.35rem .7rem}.small.suffix label{padding:.45rem .7rem}.small label{padding:.5rem .7rem}.small input:focus~label,.small input:not(:placeholder-shown)~label,.small textarea:focus~label,.small textarea:not(:placeholder-shown)~label,.small select:focus~label,.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.large input,.large textarea,.large select{padding:1rem;border-radius:1rem}.large label,.large.prefix .material-symbols-outlined{padding:1rem .7rem}.large.prefix input{padding-left:2.5rem}.large.prefix label{padding:1.1rem 2.5rem}.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.large.suffix input{padding-right:2.5rem}.large.suffix label{padding:1.1rem .7rem}.large input:focus~label,.large input:not(:placeholder-shown)~label,.large textarea:focus~label,.large textarea:not(:placeholder-shown)~label,.large select:focus~label,.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
24
32
|
}
|
|
25
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImport: i0, type: OcInputComponent, decorators: [{
|
|
26
34
|
type: Component,
|
|
27
|
-
args: [{ selector: 'oc-input', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError\r\n}\"\r\n [ngStyle]=\"{\r\n width: ocWidth || '100%'\r\n }\"\r\n [id]=\"inputId\">\r\n <ng-content></ng-content>\r\n <label>{{ocPlaceholder}}</label>\r\n <small\r\n *ngIf=\"ocError\"\r\n class=\"error-msg\"\r\n >{{ocError}}</small>\r\n</div>\r\n\r\n", styles: [".oc-input-box{position:relative}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}.small input,.small textarea,.small select{padding:.3rem .7rem;border-radius:.5rem}.small label{padding:.5rem .7rem}.small input:focus~label,.small input:not(:placeholder-shown)~label,.small textarea:focus~label,.small textarea:not(:placeholder-shown)~label,.small select:focus~label,.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.large input,.large textarea,.large select{padding:1rem;border-radius:1rem}.large label{padding:1rem .7rem}.large input:focus~label,.large input:not(:placeholder-shown)~label,.large textarea:focus~label,.large textarea:not(:placeholder-shown)~label,.large select:focus~label,.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}\n"] }]
|
|
28
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: {
|
|
35
|
+
args: [{ selector: 'oc-input', standalone: true, imports: [CommonModule], encapsulation: ViewEncapsulation.None, template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError,\r\n prefix: hasPrefix,\r\n suffix: hasSuffix\r\n}\"\r\n [ngStyle]=\"{\r\n width: ocWidth || '100%'\r\n }\"\r\n [id]=\"inputId\">\r\n <ng-content></ng-content>\r\n <ng-content select=\"ocPrefix\"></ng-content>\r\n <ng-content select=\"ocSuffix\"></ng-content>\r\n <label>{{ocPlaceholder}}</label>\r\n <small\r\n *ngIf=\"ocError\"\r\n class=\"error-msg\"\r\n >{{ocError}}</small>\r\n</div>\r\n\r\n", styles: [".oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;pointer-events:none;font-size:1.5rem}.oc-input-box.suffix .material-symbols-outlined{position:absolute;right:0;pointer-events:none;font-size:1.5rem}.oc-input-box{position:relative}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box.prefix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:2.5rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:2.5rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}.small input,.small textarea,.small select{padding:.3rem .7rem;border-radius:.5rem}.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}.small.prefix label{padding:.45rem 2.5rem}.small.suffix .material-symbols-outlined{padding:.35rem .7rem}.small.suffix label{padding:.45rem .7rem}.small label{padding:.5rem .7rem}.small input:focus~label,.small input:not(:placeholder-shown)~label,.small textarea:focus~label,.small textarea:not(:placeholder-shown)~label,.small select:focus~label,.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.large input,.large textarea,.large select{padding:1rem;border-radius:1rem}.large label,.large.prefix .material-symbols-outlined{padding:1rem .7rem}.large.prefix input{padding-left:2.5rem}.large.prefix label{padding:1.1rem 2.5rem}.large.suffix .material-symbols-outlined{padding:.9rem .7rem}.large.suffix input{padding-right:2.5rem}.large.suffix label{padding:1.1rem .7rem}.large input:focus~label,.large input:not(:placeholder-shown)~label,.large textarea:focus~label,.large textarea:not(:placeholder-shown)~label,.large select:focus~label,.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}\n"] }]
|
|
36
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { ocPrefix: [{
|
|
37
|
+
type: ContentChild,
|
|
38
|
+
args: ['ocPrefix']
|
|
39
|
+
}], ocSuffix: [{
|
|
40
|
+
type: ContentChild,
|
|
41
|
+
args: ['ocSuffix']
|
|
42
|
+
}], ocError: [{
|
|
29
43
|
type: Input
|
|
30
44
|
}], ocSize: [{
|
|
31
45
|
type: Input
|
|
@@ -34,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.5", ngImpor
|
|
|
34
48
|
}], ocWidth: [{
|
|
35
49
|
type: Input
|
|
36
50
|
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb3RpbXVzLWxpYnJhcnkvc3JjL2xpYi9jb21wb25lbnRzL29jLWlucHV0L29jLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1pbnB1dC9vYy1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFtQyxTQUFTLEVBQUUsWUFBWSxFQUFjLEtBQUssRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVVySixNQUFNLE9BQU8sZ0JBQWdCO0lBVzNCLFlBQW9CLEVBQWMsRUFBVSxRQUFtQjtRQUEzQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQVB0RCxXQUFNLEdBQWtDLFFBQVEsQ0FBQztRQUNqRCxrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQUVwQyxZQUFPLEdBQVcsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUN4QyxjQUFTLEdBQVksS0FBSyxDQUFBO1FBQzFCLGNBQVMsR0FBWSxLQUFLLENBQUE7SUFFd0MsQ0FBQztJQUVuRSxlQUFlO1FBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFFdkMsSUFBSSxRQUFRLEVBQUU7WUFDWixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXJELElBQUksWUFBWSxFQUFFO2dCQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQzdEO1NBQ0Y7SUFFSCxDQUFDO0lBQ0Qsa0JBQWtCO1FBQ2hCLElBQUcsSUFBSSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQTtRQUN2QyxJQUFHLElBQUksQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUE7SUFDekMsQ0FBQzs4R0E1QlUsZ0JBQWdCO2tHQUFoQixnQkFBZ0IsbVdDWDdCLHNpQkFxQkEsMGhHRGZZLFlBQVk7OzJGQUtYLGdCQUFnQjtrQkFSNUIsU0FBUzsrQkFDRSxVQUFVLGNBQ1IsSUFBSSxXQUNQLENBQUMsWUFBWSxDQUFDLGlCQUdSLGlCQUFpQixDQUFDLElBQUk7dUdBR1gsUUFBUTtzQkFBakMsWUFBWTt1QkFBQyxVQUFVO2dCQUNFLFFBQVE7c0JBQWpDLFlBQVk7dUJBQUMsVUFBVTtnQkFDZixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIElucHV0LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnb2MtaW5wdXQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29jLWlucHV0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9vYy1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcclxufSlcclxuZXhwb3J0IGNsYXNzIE9jSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRJbml0IHtcclxuICBAQ29udGVudENoaWxkKCdvY1ByZWZpeCcpIG9jUHJlZml4OiBhbnlcclxuICBAQ29udGVudENoaWxkKCdvY1N1ZmZpeCcpIG9jU3VmZml4OiBhbnlcclxuICBASW5wdXQoKSBvY0Vycm9yPzogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG9jU2l6ZT86ICdzbWFsbCcgfCAnbWVkaXVtJyB8ICdsYXJnZScgPSAnbWVkaXVtJztcclxuICBASW5wdXQoKSBvY1BsYWNlaG9sZGVyOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBvY1dpZHRoPzogc3RyaW5nXHJcbiAgaW5wdXRJZDogc3RyaW5nID0gYG9jLSR7TWF0aC5yYW5kb20oKX1gO1xyXG4gIGhhc1N1ZmZpeDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgaGFzUHJlZml4OiBib29sZWFuID0gZmFsc2VcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBjb25zdCBpbnB1dEJveCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICBpZiAoaW5wdXRCb3gpIHtcclxuICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gaW5wdXRCb3gucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcclxuXHJcbiAgICAgIGlmIChpbnB1dEVsZW1lbnQpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShpbnB1dEVsZW1lbnQsICdwbGFjZWhvbGRlcicsICcnKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICB9IFxyXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcclxuICAgIGlmKHRoaXMub2NQcmVmaXgpIHRoaXMuaGFzUHJlZml4ID0gdHJ1ZVxyXG4gICAgaWYodGhpcy5vY1N1ZmZpeCkgdGhpcy5oYXNTdWZmaXggPSB0cnVlXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJvYy1pbnB1dC1ib3hcIiBbbmdDbGFzc109XCJ7XHJcbiAgJ3NtYWxsJzogb2NTaXplID09PSAnc21hbGwnLFxyXG4gICdsYXJnZSc6IG9jU2l6ZSA9PT0gJ2xhcmdlJyxcclxuICBlcnJvcjogISFvY0Vycm9yLFxyXG4gIHByZWZpeDogaGFzUHJlZml4LFxyXG4gIHN1ZmZpeDogaGFzU3VmZml4XHJcbn1cIlxyXG4gIFtuZ1N0eWxlXT1cIntcclxuICAgIHdpZHRoOiBvY1dpZHRoIHx8ICcxMDAlJ1xyXG4gIH1cIlxyXG4gIFtpZF09XCJpbnB1dElkXCI+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIm9jUHJlZml4XCI+PC9uZy1jb250ZW50PlxyXG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIm9jU3VmZml4XCI+PC9uZy1jb250ZW50PlxyXG4gIDxsYWJlbD57e29jUGxhY2Vob2xkZXJ9fTwvbGFiZWw+XHJcbiAgPHNtYWxsXHJcbiAgICAqbmdJZj1cIm9jRXJyb3JcIlxyXG4gICAgY2xhc3M9XCJlcnJvci1tc2dcIlxyXG4gID57e29jRXJyb3J9fTwvc21hbGw+XHJcbjwvZGl2PlxyXG5cclxuIl19
|