iptdevs-design-system
Version:
Library common elements into IPT Plattform.
104 lines • 12.5 kB
JavaScript
import { Component, Input, Output, EventEmitter } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/forms";
export class SelectComponent {
constructor() {
this.boxShadow = 0;
this.clicked = false;
this.disabledSel = false;
this.eventSelect = new EventEmitter();
}
// type viene de otro componente -> indica de que tipo es el arreglo si pregrade, posgrade o modo
set control(value) {
if (this.formControl !== value) {
this.formControl = value;
}
}
ngOnChanges(changes) {
if (changes['data']) {
this.setBinding();
}
}
ngOnInit() {
this.setBinding();
}
seleccionar(evt) {
if (this.eventSelect.emit(evt) !== this.defaultText) {
this.boxShadow = 1;
}
else {
this.boxShadow = 2;
}
}
setBinding() {
if (this.initialValue !== '') {
this.binding = this.initialValue;
}
else {
this.binding = this.defaultText;
}
}
click(value) {
this.clicked = value.isTrusted;
}
get textClass() {
return this.defaultText === '' ? 'selected' : 'select';
}
get labelClass() {
return (this.clicked || this.initialValue !== '') ? 'labelUp' : 'label';
}
}
SelectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: SelectComponent, selector: "ipt-select", inputs: { isRequired: "isRequired", data: "data", defaultText: "defaultText", selectCode: "selectCode", disabledSel: "disabledSel", initialValue: "initialValue", label: "label", control: "control" }, outputs: { eventSelect: "eventSelect" }, usesOnChanges: true, ngImport: i0, template: `
<div class="select-container">
<label [ngClass]="labelClass">{{ defaultText }}</label>
<select
[(ngModel)]="binding"
(ngModelChange)="seleccionar($event)"
(click)="click($event)"
[ngClass]="textClass"
[disabled]="disabledSel">
<option *ngFor="let item of data; index as i" [value]="item.code">
{{ label === 'displayName' ? item.displayName : item.name }} {{ item.prefix }}
</option>
</select>
</div>
`, isInline: true, styles: ["*{font-family:Poppins,sans-serif}.select-container{position:relative;margin-top:30px}.select{box-shadow:#64646f33 0 7px 29px;border-radius:3px;border:none;outline:none;display:block;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;height:28px;padding-left:9px;background-color:#fff;-webkit-appearance:none}.selected{box-shadow:#64646f33 0 7px 29px;border-radius:3px;border:none;outline:none;transition:.5s;font-weight:300;width:-webkit-fill-available;width:-moz-available;height:28px;background-color:#fff;padding-left:10px}select:hover{box-shadow:#00000029 0 3px 6px,#0000003b 0 3px 6px}.select:focus{box-shadow:#00000029 0 3px 6px,#0000003b 0 3px 6px;transition:0s;border:1.5px solid #1c77f7}.label{color:#999;font-size:15px;font-weight:400;position:absolute;pointer-events:none;left:9px;top:7px;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.labelUp{color:#1c77f7;font-size:15px;font-weight:400;position:absolute;pointer-events:none;left:9px;top:-20px;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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"] }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: SelectComponent, decorators: [{
type: Component,
args: [{ selector: 'ipt-select', template: `
<div class="select-container">
<label [ngClass]="labelClass">{{ defaultText }}</label>
<select
[(ngModel)]="binding"
(ngModelChange)="seleccionar($event)"
(click)="click($event)"
[ngClass]="textClass"
[disabled]="disabledSel">
<option *ngFor="let item of data; index as i" [value]="item.code">
{{ label === 'displayName' ? item.displayName : item.name }} {{ item.prefix }}
</option>
</select>
</div>
`, styles: ["*{font-family:Poppins,sans-serif}.select-container{position:relative;margin-top:30px}.select{box-shadow:#64646f33 0 7px 29px;border-radius:3px;border:none;outline:none;display:block;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;height:28px;padding-left:9px;background-color:#fff;-webkit-appearance:none}.selected{box-shadow:#64646f33 0 7px 29px;border-radius:3px;border:none;outline:none;transition:.5s;font-weight:300;width:-webkit-fill-available;width:-moz-available;height:28px;background-color:#fff;padding-left:10px}select:hover{box-shadow:#00000029 0 3px 6px,#0000003b 0 3px 6px}.select:focus{box-shadow:#00000029 0 3px 6px,#0000003b 0 3px 6px;transition:0s;border:1.5px solid #1c77f7}.label{color:#999;font-size:15px;font-weight:400;position:absolute;pointer-events:none;left:9px;top:7px;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}.labelUp{color:#1c77f7;font-size:15px;font-weight:400;position:absolute;pointer-events:none;left:9px;top:-20px;transition:.2s ease all;-moz-transition:.2s ease all;-webkit-transition:.2s ease all}\n"] }]
}], propDecorators: { isRequired: [{
type: Input
}], data: [{
type: Input
}], defaultText: [{
type: Input
}], selectCode: [{
type: Input
}], disabledSel: [{
type: Input
}], initialValue: [{
type: Input
}], label: [{
type: Input
}], eventSelect: [{
type: Output
}], control: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL2F0b21zL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7O0FBc0J0RixNQUFNLE9BQU8sZUFBZTtJQW5CNUI7UUFzQkUsY0FBUyxHQUFXLENBQUMsQ0FBQztRQUV0QixZQUFPLEdBQVksS0FBSyxDQUFDO1FBT2hCLGdCQUFXLEdBQVcsS0FBSyxDQUFDO1FBSTNCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztLQThDcEQ7SUE3Q0MsaUdBQWlHO0lBQ2pHLElBQWEsT0FBTyxDQUFDLEtBQXNCO1FBQ3pDLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxLQUFLLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFvQixDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBQ0QsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVc7UUFDckIsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25ELElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztTQUNwQjtJQUNILENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFLEVBQUU7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQ2xDO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQsS0FBSyxDQUFDLEtBQWlCO1FBQ3JCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztJQUNqQyxDQUFDO0lBR0QsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFdBQVcsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDMUUsQ0FBQzs7NEdBNURVLGVBQWU7Z0dBQWYsZUFBZSx3VEFqQmhCOzs7Ozs7Ozs7Ozs7OztHQWNUOzJGQUdVLGVBQWU7a0JBbkIzQixTQUFTOytCQUNFLFlBQVksWUFDWjs7Ozs7Ozs7Ozs7Ozs7R0FjVDs4QkFVUSxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFSSxXQUFXO3NCQUFwQixNQUFNO2dCQUVNLE9BQU87c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXB0LXNlbGVjdCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInNlbGVjdC1jb250YWluZXJcIj5cbiAgICAgIDxsYWJlbCBbbmdDbGFzc109XCJsYWJlbENsYXNzXCI+e3sgZGVmYXVsdFRleHQgfX08L2xhYmVsPlxuICAgICAgPHNlbGVjdFxuICAgICAgICBbKG5nTW9kZWwpXT1cImJpbmRpbmdcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY2Npb25hcigkZXZlbnQpXCJcbiAgICAgICAgKGNsaWNrKT1cImNsaWNrKCRldmVudClcIlxuICAgICAgICBbbmdDbGFzc109XCJ0ZXh0Q2xhc3NcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRTZWxcIj5cbiAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhOyBpbmRleCBhcyBpXCIgW3ZhbHVlXT1cIml0ZW0uY29kZVwiPlxuICAgICAgICB7eyBsYWJlbCA9PT0gJ2Rpc3BsYXlOYW1lJyA/IGl0ZW0uZGlzcGxheU5hbWUgOiBpdGVtLm5hbWUgfX0ge3sgaXRlbS5wcmVmaXggfX1cbiAgICAgIDwvb3B0aW9uPlxuICAgICAgPC9zZWxlY3Q+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlVXJsczogWycuL3NlbGVjdC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50IHtcblxuICBiaW5kaW5nOiBhbnk7XG4gIGJveFNoYWRvdzogbnVtYmVyID0gMDtcbiAgZm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcbiAgY2xpY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGlzUmVxdWlyZWQhOiBib29sZWFuOyAvLyB0ZW1hcyBkZSB2YWxpZGFjaW9uXG4gIC8vIG9iamV0byBxdWUgbWUgdHJhZSBlbCBsaXN0YWRvXG4gIEBJbnB1dCgpIGRhdGEhOiBhbnlbXTsgLy8gcmVjaWJlIHVuIGFycmF5IGRlIGN1YWxxdWllciBjb3NhXG4gIEBJbnB1dCgpIGRlZmF1bHRUZXh0ITogYW55O1xuICBASW5wdXQoKSBzZWxlY3RDb2RlITpzdHJpbmc7XG4gIEBJbnB1dCgpIGRpc2FibGVkU2VsOmJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaW5pdGlhbFZhbHVlITogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbCE6IHN0cmluZztcblxuICBAT3V0cHV0KCkgZXZlbnRTZWxlY3QgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcbiAgLy8gdHlwZSB2aWVuZSBkZSBvdHJvIGNvbXBvbmVudGUgLT4gaW5kaWNhIGRlIHF1ZSB0aXBvIGVzIGVsIGFycmVnbG8gc2kgcHJlZ3JhZGUsIHBvc2dyYWRlIG8gbW9kb1xuICBASW5wdXQoKSBzZXQgY29udHJvbCh2YWx1ZTogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wgIT09IHZhbHVlKSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sID0gdmFsdWUgYXMgRm9ybUNvbnRyb2w7XG4gICAgfVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydkYXRhJ10pIHtcbiAgICAgIHRoaXMuc2V0QmluZGluZygpO1xuICAgIH1cbiAgfVxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNldEJpbmRpbmcoKTtcbiAgfVxuXG4gIHNlbGVjY2lvbmFyKGV2dDogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZXZlbnRTZWxlY3QuZW1pdChldnQpICE9PSB0aGlzLmRlZmF1bHRUZXh0KSB7XG4gICAgICB0aGlzLmJveFNoYWRvdyA9IDE7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYm94U2hhZG93ID0gMjtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEJpbmRpbmcoKSB7XG4gICAgaWYgKHRoaXMuaW5pdGlhbFZhbHVlICE9PSAnJykge1xuICAgICAgdGhpcy5iaW5kaW5nID0gdGhpcy5pbml0aWFsVmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYmluZGluZyA9IHRoaXMuZGVmYXVsdFRleHQ7XG4gICAgfVxuICB9XG5cbiAgY2xpY2sodmFsdWU6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmNsaWNrZWQgPSB2YWx1ZS5pc1RydXN0ZWQ7XG4gIH1cblxuXG4gIHB1YmxpYyBnZXQgdGV4dENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZGVmYXVsdFRleHQgPT09ICcnID8gJ3NlbGVjdGVkJyA6ICdzZWxlY3QnO1xuICB9XG5cbiAgcHVibGljIGdldCBsYWJlbENsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICh0aGlzLmNsaWNrZWQgfHwgdGhpcy5pbml0aWFsVmFsdWUgIT09ICcnKSA/ICdsYWJlbFVwJyA6ICdsYWJlbCc7XG4gIH1cblxufVxuIl19