flexacore-ui-dev
Version:
Universal UI Framework for CDN, React, Angular, Vue, Svelte with TypeScript support
109 lines (108 loc) • 3.51 kB
JavaScript
;
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.FCSelectComponent = void 0;
const core_1 = require("@angular/core");
const forms_1 = require("@angular/forms");
let FCSelectComponent = class FCSelectComponent {
constructor() {
this.options = [];
this.placeholder = '';
this.disabled = false;
this.size = 'md';
this.valueChange = new core_1.EventEmitter();
this.value = '';
this.onChange = (value) => { };
this.onTouched = () => { };
}
get classes() {
return [
'fc-select',
`fc-select-${this.size}`
];
}
handleChange(event) {
const target = event.target;
this.value = target.value;
this.onChange(this.value);
this.valueChange.emit(this.value);
}
onBlur() {
this.onTouched();
}
onFocus() {
// Focus event handling if needed
}
writeValue(value) {
this.value = value || '';
}
registerOnChange(fn) {
this.onChange = fn;
}
registerOnTouched(fn) {
this.onTouched = fn;
}
setDisabledState(isDisabled) {
this.disabled = isDisabled;
}
};
exports.FCSelectComponent = FCSelectComponent;
__decorate([
(0, core_1.Input)(),
__metadata("design:type", Array)
], FCSelectComponent.prototype, "options", void 0);
__decorate([
(0, core_1.Input)(),
__metadata("design:type", String)
], FCSelectComponent.prototype, "placeholder", void 0);
__decorate([
(0, core_1.Input)(),
__metadata("design:type", Boolean)
], FCSelectComponent.prototype, "disabled", void 0);
__decorate([
(0, core_1.Input)(),
__metadata("design:type", String)
], FCSelectComponent.prototype, "size", void 0);
__decorate([
(0, core_1.Output)(),
__metadata("design:type", Object)
], FCSelectComponent.prototype, "valueChange", void 0);
exports.FCSelectComponent = FCSelectComponent = __decorate([
(0, core_1.Component)({
selector: 'fc-select',
template: `
<select
[ngClass]="classes"
[value]="value"
[disabled]="disabled"
(change)="handleChange($event)"
(blur)="onBlur()"
(focus)="onFocus()"
>
<option value="" *ngIf="placeholder">{{ placeholder }}</option>
<option
*ngFor="let option of options"
[value]="option.value"
[disabled]="option.disabled"
>
{{ option.label }}
</option>
</select>
`,
providers: [
{
provide: forms_1.NG_VALUE_ACCESSOR,
useExisting: (0, core_1.forwardRef)(() => FCSelectComponent),
multi: true
}
]
})
], FCSelectComponent);