ngx-nebular-formly
Version:
Ngx Formly integration for Nebular UI
122 lines (121 loc) • 9.54 kB
JavaScript
import { ChangeDetectionStrategy, Component } from '@angular/core';
import { FieldType } from '@ngx-formly/core';
export class SelectTypeComponent extends FieldType {
constructor() {
super(...arguments);
this.defaultOptions = {
templateOptions: {
options: [],
multiple: false,
isGroup: false,
status: 'basic',
size: 'medium',
filled: 'false',
shape: 'rectangle',
},
};
}
onSelectedChange(value) {
if (this.to.selectedChange) {
this.to.selectedChange(this.field, value);
}
}
}
SelectTypeComponent.decorators = [
{ type: Component, args: [{
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'nbf-nebular-formly-select',
template: `
<nb-select
*ngIf="to.groupProp; else noGroup"
[]="formControl"
[]="to.multiple"
[]="id"
[]="field"
[]="to.placeholder"
[]="to.required"
(selectedChange)="onSelectedChange($event)"
[]="to.disabled"
[]="to.status"
[]="to.size"
[]="to.filled"
[]="to.shape"
>
<nb-option-group
*ngFor="let option of to.options | formlySelectOptions: field | async"
[]="option.label"
>
<nb-option
*ngFor="let opt of option.group"
[]="opt.value"
[]="opt.disabled"
>
{{ opt.label }}
</nb-option>
</nb-option-group>
</nb-select>
<ng-template
<nb-select
[]="formControl"
[]="to.multiple"
[]="id"
[]="field"
[]="to.placeholder"
[]="to.required"
(selectedChange)="onSelectedChange($event)"
[]="to.disabled"
[]="to.status"
[]="to.size"
[]="to.filled"
[]="to.shape"
>
<nb-option
*ngFor="let opt of to.options | formlySelectOptions: field | async"
[]="opt.value"
[]="opt.disabled"
>
{{ opt.label }}
</nb-option>
</nb-select>
</ng-template>
`
},] }
];
// [
// {
// "label": "Male",
// "group": [
// {
// "label": "Iron Man",
// "value": "iron_man",
// "disabled": false
// },
// {
// "label": "Captain America",
// "value": "captain_america",
// "disabled": false
// },
// {
// "label": "Hulk",
// "value": "hulk",
// "disabled": false
// }
// ]
// },
// {
// "label": "Female",
// "group": [
// {
// "label": "Black Widow",
// "value": "black_widow",
// "disabled": false
// },
// {
// "label": "Captain Marvel",
// "value": "captain_marvel",
// "disabled": false
// }
// ]
// }
// ]
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZWJ1bGFyLWZvcm1seS9zcmMvbGliL3NlbGVjdC9zZWxlY3QudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQTZEN0MsTUFBTSxPQUFPLG1CQUFvQixTQUFRLFNBQVM7SUEzRGxEOztRQTREUyxtQkFBYyxHQUFHO1lBQ3RCLGVBQWUsRUFBRTtnQkFDZixPQUFPLEVBQUUsRUFBRTtnQkFDWCxRQUFRLEVBQUUsS0FBSztnQkFDZixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsT0FBTztnQkFDZixJQUFJLEVBQUUsUUFBUTtnQkFDZCxNQUFNLEVBQUUsT0FBTztnQkFDZixLQUFLLEVBQUUsV0FBVzthQUNuQjtTQUNGLENBQUM7SUFPSixDQUFDO0lBTFEsZ0JBQWdCLENBQUMsS0FBYTtRQUNuQyxJQUFJLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxFQUFFO1lBQzFCLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDM0M7SUFDSCxDQUFDOzs7WUE1RUYsU0FBUyxTQUFDO2dCQUNULGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUMvQyxRQUFRLEVBQUUsMkJBQTJCO2dCQUNyQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXNEVDthQUNGOztBQXFCRCxJQUFJO0FBQ0osTUFBTTtBQUNOLHVCQUF1QjtBQUN2QixpQkFBaUI7QUFDakIsVUFBVTtBQUNWLCtCQUErQjtBQUMvQiwrQkFBK0I7QUFDL0IsNEJBQTRCO0FBQzVCLFdBQVc7QUFDWCxVQUFVO0FBQ1Ysc0NBQXNDO0FBQ3RDLHNDQUFzQztBQUN0Qyw0QkFBNEI7QUFDNUIsV0FBVztBQUNYLFVBQVU7QUFDViwyQkFBMkI7QUFDM0IsMkJBQTJCO0FBQzNCLDRCQUE0QjtBQUM1QixVQUFVO0FBQ1YsUUFBUTtBQUNSLE9BQU87QUFDUCxNQUFNO0FBQ04seUJBQXlCO0FBQ3pCLGlCQUFpQjtBQUNqQixVQUFVO0FBQ1Ysa0NBQWtDO0FBQ2xDLGtDQUFrQztBQUNsQyw0QkFBNEI7QUFDNUIsV0FBVztBQUNYLFVBQVU7QUFDVixxQ0FBcUM7QUFDckMscUNBQXFDO0FBQ3JDLDRCQUE0QjtBQUM1QixVQUFVO0FBQ1YsUUFBUTtBQUNSLE1BQU07QUFDTixJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgc2VsZWN0b3I6ICduYmYtbmVidWxhci1mb3JtbHktc2VsZWN0JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5iLXNlbGVjdFxyXG4gICAgICAqbmdJZj1cInRvLmdyb3VwUHJvcDsgZWxzZSBub0dyb3VwXCJcclxuICAgICAgW2Zvcm1Db250cm9sXT1cImZvcm1Db250cm9sXCJcclxuICAgICAgW211bHRpcGxlXT1cInRvLm11bHRpcGxlXCJcclxuICAgICAgW2lkXT1cImlkXCJcclxuICAgICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwidG8ucGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwidG8ucmVxdWlyZWRcIlxyXG4gICAgICAoc2VsZWN0ZWRDaGFuZ2UpPVwib25TZWxlY3RlZENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW2Rpc2FibGVkXT1cInRvLmRpc2FibGVkXCJcclxuICAgICAgW3N0YXR1c109XCJ0by5zdGF0dXNcIlxyXG4gICAgICBbc2l6ZV09XCJ0by5zaXplXCJcclxuICAgICAgW2ZpbGxlZF09XCJ0by5maWxsZWRcIlxyXG4gICAgICBbc2hhcGVdPVwidG8uc2hhcGVcIlxyXG4gICAgPlxyXG4gICAgICA8bmItb3B0aW9uLWdyb3VwXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiB0by5vcHRpb25zIHwgZm9ybWx5U2VsZWN0T3B0aW9uczogZmllbGQgfCBhc3luY1wiXHJcbiAgICAgICAgW3RpdGxlXT1cIm9wdGlvbi5sYWJlbFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmItb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0IG9mIG9wdGlvbi5ncm91cFwiXHJcbiAgICAgICAgICBbdmFsdWVdPVwib3B0LnZhbHVlXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJvcHQuZGlzYWJsZWRcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIHt7IG9wdC5sYWJlbCB9fVxyXG4gICAgICAgIDwvbmItb3B0aW9uPlxyXG4gICAgICA8L25iLW9wdGlvbi1ncm91cD5cclxuICAgIDwvbmItc2VsZWN0PlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjbm9Hcm91cD5cclxuICAgICAgPG5iLXNlbGVjdFxyXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXHJcbiAgICAgICAgW211bHRpcGxlXT1cInRvLm11bHRpcGxlXCJcclxuICAgICAgICBbaWRdPVwiaWRcIlxyXG4gICAgICAgIFtmb3JtbHlBdHRyaWJ1dGVzXT1cImZpZWxkXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwidG8ucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgIFtyZXF1aXJlZF09XCJ0by5yZXF1aXJlZFwiXHJcbiAgICAgICAgKHNlbGVjdGVkQ2hhbmdlKT1cIm9uU2VsZWN0ZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cInRvLmRpc2FibGVkXCJcclxuICAgICAgICBbc3RhdHVzXT1cInRvLnN0YXR1c1wiXHJcbiAgICAgICAgW3NpemVdPVwidG8uc2l6ZVwiXHJcbiAgICAgICAgW2ZpbGxlZF09XCJ0by5maWxsZWRcIlxyXG4gICAgICAgIFtzaGFwZV09XCJ0by5zaGFwZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmItb3B0aW9uXHJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgb3B0IG9mIHRvLm9wdGlvbnMgfCBmb3JtbHlTZWxlY3RPcHRpb25zOiBmaWVsZCB8IGFzeW5jXCJcclxuICAgICAgICAgIFt2YWx1ZV09XCJvcHQudmFsdWVcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cIm9wdC5kaXNhYmxlZFwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAge3sgb3B0LmxhYmVsIH19XHJcbiAgICAgICAgPC9uYi1vcHRpb24+XHJcbiAgICAgIDwvbmItc2VsZWN0PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0VHlwZUNvbXBvbmVudCBleHRlbmRzIEZpZWxkVHlwZSB7XHJcbiAgcHVibGljIGRlZmF1bHRPcHRpb25zID0ge1xyXG4gICAgdGVtcGxhdGVPcHRpb25zOiB7XHJcbiAgICAgIG9wdGlvbnM6IFtdLFxyXG4gICAgICBtdWx0aXBsZTogZmFsc2UsXHJcbiAgICAgIGlzR3JvdXA6IGZhbHNlLFxyXG4gICAgICBzdGF0dXM6ICdiYXNpYycsXHJcbiAgICAgIHNpemU6ICdtZWRpdW0nLFxyXG4gICAgICBmaWxsZWQ6ICdmYWxzZScsXHJcbiAgICAgIHNoYXBlOiAncmVjdGFuZ2xlJyxcclxuICAgIH0sXHJcbiAgfTtcclxuXHJcbiAgcHVibGljIG9uU2VsZWN0ZWRDaGFuZ2UodmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMudG8uc2VsZWN0ZWRDaGFuZ2UpIHtcclxuICAgICAgdGhpcy50by5zZWxlY3RlZENoYW5nZSh0aGlzLmZpZWxkLCB2YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4vLyBbXHJcbi8vICAge1xyXG4vLyAgICAgXCJsYWJlbFwiOiBcIk1hbGVcIixcclxuLy8gICAgIFwiZ3JvdXBcIjogW1xyXG4vLyAgICAgICB7XHJcbi8vICAgICAgICAgXCJsYWJlbFwiOiBcIklyb24gTWFuXCIsXHJcbi8vICAgICAgICAgXCJ2YWx1ZVwiOiBcImlyb25fbWFuXCIsXHJcbi8vICAgICAgICAgXCJkaXNhYmxlZFwiOiBmYWxzZVxyXG4vLyAgICAgICB9LFxyXG4vLyAgICAgICB7XHJcbi8vICAgICAgICAgXCJsYWJlbFwiOiBcIkNhcHRhaW4gQW1lcmljYVwiLFxyXG4vLyAgICAgICAgIFwidmFsdWVcIjogXCJjYXB0YWluX2FtZXJpY2FcIixcclxuLy8gICAgICAgICBcImRpc2FibGVkXCI6IGZhbHNlXHJcbi8vICAgICAgIH0sXHJcbi8vICAgICAgIHtcclxuLy8gICAgICAgICBcImxhYmVsXCI6IFwiSHVsa1wiLFxyXG4vLyAgICAgICAgIFwidmFsdWVcIjogXCJodWxrXCIsXHJcbi8vICAgICAgICAgXCJkaXNhYmxlZFwiOiBmYWxzZVxyXG4vLyAgICAgICB9XHJcbi8vICAgICBdXHJcbi8vICAgfSxcclxuLy8gICB7XHJcbi8vICAgICBcImxhYmVsXCI6IFwiRmVtYWxlXCIsXHJcbi8vICAgICBcImdyb3VwXCI6IFtcclxuLy8gICAgICAge1xyXG4vLyAgICAgICAgIFwibGFiZWxcIjogXCJCbGFjayBXaWRvd1wiLFxyXG4vLyAgICAgICAgIFwidmFsdWVcIjogXCJibGFja193aWRvd1wiLFxyXG4vLyAgICAgICAgIFwiZGlzYWJsZWRcIjogZmFsc2VcclxuLy8gICAgICAgfSxcclxuLy8gICAgICAge1xyXG4vLyAgICAgICAgIFwibGFiZWxcIjogXCJDYXB0YWluIE1hcnZlbFwiLFxyXG4vLyAgICAgICAgIFwidmFsdWVcIjogXCJjYXB0YWluX21hcnZlbFwiLFxyXG4vLyAgICAgICAgIFwiZGlzYWJsZWRcIjogZmFsc2VcclxuLy8gICAgICAgfVxyXG4vLyAgICAgXVxyXG4vLyAgIH1cclxuLy8gXVxyXG4iXX0=