@noaestudio/forms
Version:
Dynamic forms extension for Covalent
119 lines (118 loc) • 11.8 kB
JavaScript
/**
* @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==