UNPKG

@noaestudio/forms

Version:

Dynamic forms extension for Covalent

119 lines (118 loc) 11.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, forwardRef } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { AbstractControlValueAccessor } from '../abstract-control-value-accesor'; import { TranslateService } from '@ngx-translate/core'; import * as _isjson_ from 'is-json'; var /** @type {?} */ isJSON = _isjson_; export var /** @type {?} */ SELECT_TOGGLE_INPUT_CONTROL_VALUE_ACCESSOR = { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(function () { return TdDynamicSelectComponent; }), multi: true, }; var TdDynamicSelectComponent = /** @class */ (function (_super) { tslib_1.__extends(TdDynamicSelectComponent, _super); function TdDynamicSelectComponent(translator) { var _this = _super.call(this) || this; _this.translator = translator; _this.label = ''; _this.required = undefined; _this.selections = undefined; _this.selectComplex = false; _this.selectMultiple = false; _this.flex = 100; _this.flexPerc = _this.flex / 100; return _this; } /** * @return {?} */ TdDynamicSelectComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; if (this.selections) { this.selections.forEach(function (sel) { if (sel.label) { sel.label = _this.translateLabel(sel.label); } }); } }; /** * @param {?} value * @return {?} */ TdDynamicSelectComponent.prototype.translateLabel = /** * @param {?} value * @return {?} */ function (value) { var /** @type {?} */ selectedLang = this.translator.currentLang; var /** @type {?} */ defaultLang = this.translator.defaultLang; if (isJSON(value)) { var /** @type {?} */ json = JSON.parse(value); if (json[selectedLang]) { return json[selectedLang]; } else if (json[defaultLang]) { return json[defaultLang]; } else { for (var /** @type {?} */ entry in json) { return json[entry]; } } } else { return this.translator.instant(value); } }; TdDynamicSelectComponent.decorators = [ { type: Component, args: [{ providers: [SELECT_TOGGLE_INPUT_CONTROL_VALUE_ACCESSOR], selector: 'td-dynamic-select', styles: [".td-dynamic-select-wrapper{-ms-flex-direction:row;flex-direction:row;display:-ms-flexbox;display:flex;box-sizing:border-box}.td-dynamic-select-wrapper .td-dynamic-select-field{-ms-flex:1;flex:1;box-sizing:border-box}"], template: "<div class=\"td-dynamic-select-wrapper\">\n\n\t<mat-form-field *ngIf=\"!selectComplex\" class=\"td-dynamic-select-field\">\n\t\t<mat-select [(ngModel)]=\"value\" [placeholder]=\"label\" [required]=\"required\">\n\t\t\t<mat-option *ngFor=\"let selection of selections\" [value]=\"selection.value || selection\">{{selection.label || selection}}</mat-option>\n\t\t</mat-select>\n\t</mat-form-field>\n\n\t<ng-select style=\"padding-bottom: 2.25em;\" *ngIf=\"selectComplex\" [(ngModel)]=\"value\" placeholder=\"{{label + (required ? ' *' : '')}}\" [required]=\"required\" [multiple]=\"selectMultiple\" [items]=\"selections\"\n\t\t [searchable]=\"true\" bindLabel=\"label\" bindValue=\"value\" appendTo=\"body\" [style.flex]=\"flexPerc\">\n\t</ng-select>\n\n</div>\n", },] }, ]; /** @nocollapse */ TdDynamicSelectComponent.ctorParameters = function () { return [ { type: TranslateService, }, ]; }; return TdDynamicSelectComponent; }(AbstractControlValueAccessor)); export { TdDynamicSelectComponent }; function TdDynamicSelectComponent_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ TdDynamicSelectComponent.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ TdDynamicSelectComponent.ctorParameters; /** @type {?} */ TdDynamicSelectComponent.prototype.control; /** @type {?} */ TdDynamicSelectComponent.prototype.label; /** @type {?} */ TdDynamicSelectComponent.prototype.required; /** @type {?} */ TdDynamicSelectComponent.prototype.selections; /** @type {?} */ TdDynamicSelectComponent.prototype.selectComplex; /** @type {?} */ TdDynamicSelectComponent.prototype.selectMultiple; /** @type {?} */ TdDynamicSelectComponent.prototype.flex; /** @type {?} */ TdDynamicSelectComponent.prototype.flexPerc; /** @type {?} */ TdDynamicSelectComponent.prototype.translator; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGNvdmFsZW50L2R5bmFtaWMtZm9ybXMvIiwic291cmNlcyI6WyJkeW5hbWljLWVsZW1lbnRzL2R5bmFtaWMtc2VsZWN0L2R5bmFtaWMtc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBcUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV2RCxPQUFPLEtBQUssUUFBUSxNQUFNLFNBQVMsQ0FBQztBQUVwQyxxQkFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDO0FBRXhCLE1BQU0sQ0FBQyxxQkFBTSwwQ0FBMEMsR0FBUTtJQUM5RCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsY0FBTSxPQUFBLHdCQUF3QixFQUF4QixDQUF3QixDQUFDO0lBQ3ZELEtBQUssRUFBRSxJQUFJO0NBQ1gsQ0FBQzs7SUFxQjRDLG9EQUE0QjtJQWtCekUsa0NBQW9CLFVBQTRCO1FBQWhELFlBQ0MsaUJBQU8sU0FDUDtRQUZtQixnQkFBVSxHQUFWLFVBQVUsQ0FBa0I7c0JBZGhDLEVBQUU7eUJBRUUsU0FBUzsyQkFFVCxTQUFTOzhCQUVILEtBQUs7K0JBRUosS0FBSztxQkFFaEIsR0FBRzt5QkFFQyxLQUFJLENBQUMsSUFBSSxHQUFHLEdBQUc7O0tBSWxDOzs7O0lBRUQsMkNBQVE7OztJQUFSO1FBQUEsaUJBUUM7UUFQQSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBRSxVQUFBLEdBQUc7Z0JBQzNCLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO29CQUNmLEdBQUcsQ0FBQyxLQUFLLEdBQUcsS0FBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQzNDO2FBQ0QsQ0FBQyxDQUFDO1NBQ0g7S0FDRDs7Ozs7SUFFTSxpREFBYzs7OztjQUFDLEtBQWE7UUFDbEMscUJBQUksWUFBWSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDO1FBQy9DLHFCQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQztRQUU5QyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ25CLHFCQUFJLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTdCLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3hCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDMUI7WUFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUN6QjtZQUNELElBQUksQ0FBQyxDQUFDO2dCQUNMLEdBQUcsQ0FBQyxDQUFDLHFCQUFJLEtBQUssSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUN4QixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUNuQjthQUNEO1NBQ0Q7UUFDRCxJQUFJLENBQUMsQ0FBQztZQUNMLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN0Qzs7O2dCQXhFRixTQUFTLFNBQUM7b0JBQ1YsU0FBUyxFQUFFLENBQUUsMENBQTBDLENBQUU7b0JBQ3pELFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLE1BQU0sRUFBRSxDQUFDLDBOQUEwTixDQUFDO29CQUNwTyxRQUFRLEVBQUUsMHZCQWFWO2lCQUNBOzs7O2dCQTlCUSxnQkFBZ0I7O21DQUx6QjtFQW9DOEMsNEJBQTRCO1NBQTdELHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4uL2Fic3RyYWN0LWNvbnRyb2wtdmFsdWUtYWNjZXNvcic7XHJcblxyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQgKiBhcyBfaXNqc29uXyBmcm9tICdpcy1qc29uJztcclxuXHJcbmNvbnN0IGlzSlNPTiA9IF9pc2pzb25fO1xyXG5cclxuZXhwb3J0IGNvbnN0IFNFTEVDVF9UT0dHTEVfSU5QVVRfQ09OVFJPTF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG5cdHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG5cdHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRkRHluYW1pY1NlbGVjdENvbXBvbmVudCksXHJcblx0bXVsdGk6IHRydWUsXHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRwcm92aWRlcnM6IFsgU0VMRUNUX1RPR0dMRV9JTlBVVF9DT05UUk9MX1ZBTFVFX0FDQ0VTU09SIF0sXHJcblx0c2VsZWN0b3I6ICd0ZC1keW5hbWljLXNlbGVjdCcsXHJcblx0c3R5bGVzOiBbYC50ZC1keW5hbWljLXNlbGVjdC13cmFwcGVyey1tcy1mbGV4LWRpcmVjdGlvbjpyb3c7ZmxleC1kaXJlY3Rpb246cm93O2Rpc3BsYXk6LW1zLWZsZXhib3g7ZGlzcGxheTpmbGV4O2JveC1zaXppbmc6Ym9yZGVyLWJveH0udGQtZHluYW1pYy1zZWxlY3Qtd3JhcHBlciAudGQtZHluYW1pYy1zZWxlY3QtZmllbGR7LW1zLWZsZXg6MTtmbGV4OjE7Ym94LXNpemluZzpib3JkZXItYm94fWBdLFxyXG5cdHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInRkLWR5bmFtaWMtc2VsZWN0LXdyYXBwZXJcIj5cclxuXHJcblx0PG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwiIXNlbGVjdENvbXBsZXhcIiBjbGFzcz1cInRkLWR5bmFtaWMtc2VsZWN0LWZpZWxkXCI+XHJcblx0XHQ8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInZhbHVlXCIgW3BsYWNlaG9sZGVyXT1cImxhYmVsXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCI+XHJcblx0XHRcdDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzZWxlY3Rpb24gb2Ygc2VsZWN0aW9uc1wiIFt2YWx1ZV09XCJzZWxlY3Rpb24udmFsdWUgfHwgc2VsZWN0aW9uXCI+e3tzZWxlY3Rpb24ubGFiZWwgfHwgc2VsZWN0aW9ufX08L21hdC1vcHRpb24+XHJcblx0XHQ8L21hdC1zZWxlY3Q+XHJcblx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHJcblx0PG5nLXNlbGVjdCBzdHlsZT1cInBhZGRpbmctYm90dG9tOiAyLjI1ZW07XCIgKm5nSWY9XCJzZWxlY3RDb21wbGV4XCIgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIHBsYWNlaG9sZGVyPVwie3tsYWJlbCArIChyZXF1aXJlZCA/ICcgKicgOiAnJyl9fVwiIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiIFttdWx0aXBsZV09XCJzZWxlY3RNdWx0aXBsZVwiIFtpdGVtc109XCJzZWxlY3Rpb25zXCJcclxuXHRcdCBbc2VhcmNoYWJsZV09XCJ0cnVlXCIgYmluZExhYmVsPVwibGFiZWxcIiBiaW5kVmFsdWU9XCJ2YWx1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIFtzdHlsZS5mbGV4XT1cImZsZXhQZXJjXCI+XHJcblx0PC9uZy1zZWxlY3Q+XHJcblxyXG48L2Rpdj5cclxuYCxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRkRHluYW1pY1NlbGVjdENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblxyXG5cdGNvbnRyb2w6IEZvcm1Db250cm9sO1xyXG5cclxuXHRsYWJlbDogc3RyaW5nID0gJyc7XHJcblxyXG5cdHJlcXVpcmVkOiBib29sZWFuID0gdW5kZWZpbmVkO1xyXG5cclxuXHRzZWxlY3Rpb25zOiBhbnlbXSA9IHVuZGVmaW5lZDtcclxuXHJcblx0c2VsZWN0Q29tcGxleCA6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0c2VsZWN0TXVsdGlwbGUgOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cdGZsZXggOiBudW1iZXIgPSAxMDA7XHJcblxyXG5cdGZsZXhQZXJjIDogbnVtYmVyID0gdGhpcy5mbGV4IC8gMTAwO1xyXG5cclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0b3I6IFRyYW5zbGF0ZVNlcnZpY2UpIHtcclxuXHRcdHN1cGVyKCk7XHJcblx0fVxyXG5cclxuXHRuZ09uSW5pdCgpIHtcclxuXHRcdGlmICh0aGlzLnNlbGVjdGlvbnMpIHtcclxuXHRcdFx0dGhpcy5zZWxlY3Rpb25zLmZvckVhY2goIHNlbCA9PiB7XHJcblx0XHRcdFx0aWYgKHNlbC5sYWJlbCkge1xyXG5cdFx0XHRcdFx0c2VsLmxhYmVsID0gdGhpcy50cmFuc2xhdGVMYWJlbChzZWwubGFiZWwpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fSk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRwdWJsaWMgdHJhbnNsYXRlTGFiZWwodmFsdWU6IHN0cmluZykgOiBzdHJpbmcge1xyXG5cdFx0bGV0IHNlbGVjdGVkTGFuZyA9IHRoaXMudHJhbnNsYXRvci5jdXJyZW50TGFuZztcclxuXHRcdGxldCBkZWZhdWx0TGFuZyA9IHRoaXMudHJhbnNsYXRvci5kZWZhdWx0TGFuZztcclxuXHJcblx0XHRpZiAoaXNKU09OKHZhbHVlKSkge1xyXG5cdFx0XHRsZXQganNvbiA9IEpTT04ucGFyc2UodmFsdWUpO1xyXG5cclxuXHRcdFx0aWYgKGpzb25bc2VsZWN0ZWRMYW5nXSkge1xyXG5cdFx0XHRcdHJldHVybiBqc29uW3NlbGVjdGVkTGFuZ107XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSBpZiAoanNvbltkZWZhdWx0TGFuZ10pIHtcclxuXHRcdFx0XHRyZXR1cm4ganNvbltkZWZhdWx0TGFuZ107XHJcblx0XHRcdH1cclxuXHRcdFx0ZWxzZSB7XHJcblx0XHRcdFx0Zm9yIChsZXQgZW50cnkgaW4ganNvbikge1xyXG5cdFx0XHRcdFx0cmV0dXJuIGpzb25bZW50cnldO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0ZWxzZSB7XHJcblx0XHRcdHJldHVybiB0aGlzLnRyYW5zbGF0b3IuaW5zdGFudCh2YWx1ZSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==