@covalent/dynamic-forms 4.0.0 → 4.1.0-develop.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -18
- package/covalent-dynamic-forms.d.ts +2 -1
- package/esm2020/covalent-dynamic-forms.mjs +5 -0
- package/esm2020/lib/dynamic-element.component.mjs +178 -0
- package/esm2020/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.mjs +19 -0
- package/esm2020/lib/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.mjs +23 -0
- package/esm2020/lib/dynamic-elements/dynamic-file-input/dynamic-file-input.component.mjs +28 -0
- package/esm2020/lib/dynamic-elements/dynamic-input/dynamic-input.component.mjs +22 -0
- package/esm2020/lib/dynamic-elements/dynamic-select/dynamic-select.component.mjs +23 -0
- package/esm2020/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.mjs +19 -0
- package/esm2020/lib/dynamic-elements/dynamic-slider/dynamic-slider.component.mjs +26 -0
- package/esm2020/lib/dynamic-elements/dynamic-textarea/dynamic-textarea.component.mjs +22 -0
- package/esm2020/lib/dynamic-forms.component.mjs +185 -0
- package/esm2020/lib/dynamic-forms.module.mjs +127 -0
- package/esm2020/lib/services/dynamic-forms.service.mjs +140 -0
- package/esm2020/public_api.mjs +13 -0
- package/fesm2015/covalent-dynamic-forms.mjs +748 -0
- package/fesm2015/covalent-dynamic-forms.mjs.map +1 -0
- package/fesm2020/covalent-dynamic-forms.mjs +746 -0
- package/fesm2020/covalent-dynamic-forms.mjs.map +1 -0
- package/{dynamic-element.component.d.ts → lib/dynamic-element.component.d.ts} +24 -17
- package/lib/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.d.ts +11 -0
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-datepicker/dynamic-datepicker.component.d.ts +6 -3
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-file-input/dynamic-file-input.component.d.ts +4 -1
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-input/dynamic-input.component.d.ts +7 -4
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-select/dynamic-select.component.d.ts +5 -2
- package/lib/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.d.ts +11 -0
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-slider/dynamic-slider.component.d.ts +5 -2
- package/{dynamic-elements → lib/dynamic-elements}/dynamic-textarea/dynamic-textarea.component.d.ts +3 -0
- package/{dynamic-forms.component.d.ts → lib/dynamic-forms.component.d.ts} +4 -1
- package/lib/dynamic-forms.module.d.ts +28 -0
- package/{services → lib/services}/dynamic-forms.service.d.ts +5 -2
- package/package.json +32 -17
- package/public_api.d.ts +12 -12
- package/bundles/covalent-dynamic-forms.umd.js +0 -1654
- package/bundles/covalent-dynamic-forms.umd.js.map +0 -1
- package/bundles/covalent-dynamic-forms.umd.min.js +0 -16
- package/bundles/covalent-dynamic-forms.umd.min.js.map +0 -1
- package/covalent-dynamic-forms.metadata.json +0 -1
- package/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.d.ts +0 -8
- package/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.scss +0 -0
- package/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.scss +0 -12
- package/dynamic-elements/dynamic-file-input/dynamic-file-input.component.scss +0 -15
- package/dynamic-elements/dynamic-input/dynamic-input.component.scss +0 -12
- package/dynamic-elements/dynamic-select/dynamic-select.component.scss +0 -12
- package/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.d.ts +0 -8
- package/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.scss +0 -0
- package/dynamic-elements/dynamic-slider/dynamic-slider.component.scss +0 -17
- package/dynamic-elements/dynamic-textarea/dynamic-textarea.component.scss +0 -12
- package/dynamic-forms.component.scss +0 -29
- package/dynamic-forms.module.d.ts +0 -2
- package/esm2015/covalent-dynamic-forms.js +0 -10
- package/esm2015/dynamic-element.component.js +0 -340
- package/esm2015/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.js +0 -34
- package/esm2015/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.js +0 -49
- package/esm2015/dynamic-elements/dynamic-file-input/dynamic-file-input.component.js +0 -47
- package/esm2015/dynamic-elements/dynamic-input/dynamic-input.component.js +0 -55
- package/esm2015/dynamic-elements/dynamic-select/dynamic-select.component.js +0 -46
- package/esm2015/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.js +0 -34
- package/esm2015/dynamic-elements/dynamic-slider/dynamic-slider.component.js +0 -64
- package/esm2015/dynamic-elements/dynamic-textarea/dynamic-textarea.component.js +0 -40
- package/esm2015/dynamic-forms.component.js +0 -306
- package/esm2015/dynamic-forms.module.js +0 -73
- package/esm2015/index.js +0 -7
- package/esm2015/public_api.js +0 -18
- package/esm2015/services/dynamic-forms.service.js +0 -201
- package/fesm2015/covalent-dynamic-forms.js +0 -1269
- package/fesm2015/covalent-dynamic-forms.js.map +0 -1
- package/index.d.ts +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"covalent-dynamic-forms.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../src/platform/dynamic-forms/dynamic-elements/dynamic-input/dynamic-input.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-file-input/dynamic-file-input.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-textarea/dynamic-textarea.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-slider/dynamic-slider.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-select/dynamic-select.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.ts","../../../src/platform/dynamic-forms/services/dynamic-forms.service.ts","../../../../src/platform/dynamic-forms/dynamic-element.component.ts","../../../../src/platform/dynamic-forms/dynamic-forms.component.ts","../../../../src/platform/dynamic-forms/dynamic-forms.module.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-input',\n styleUrls: ['./dynamic-input.component.scss'],\n templateUrl: './dynamic-input.component.html',\n})\nexport class TdDynamicInputComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n type: string = undefined;\n\n required: boolean = undefined;\n\n name: string = '';\n\n min: number = undefined;\n\n max: number = undefined;\n\n minLength: number = undefined;\n\n maxLength: number = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-file-input',\n styleUrls: ['./dynamic-file-input.component.scss'],\n templateUrl: './dynamic-file-input.component.html',\n})\nexport class TdDynamicFileInputComponent {\n control: FormControl;\n\n required: boolean = undefined;\n\n label: string = '';\n\n name: string = '';\n\n hint: string = '';\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n\n _handlefileDrop(value: File): void {\n this.control.setValue(value);\n }\n}\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-textarea',\n styleUrls: ['./dynamic-textarea.component.scss'],\n templateUrl: './dynamic-textarea.component.html',\n})\nexport class TdDynamicTextareaComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n name: string = '';\n\n required: boolean = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","import { Component } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-slide-toggle',\n styleUrls: ['./dynamic-slide-toggle.component.scss'],\n templateUrl: './dynamic-slide-toggle.component.html',\n})\nexport class TdDynamicSlideToggleComponent {\n control: FormControl;\n\n label: string = '';\n\n name: string = '';\n\n hint: string = '';\n\n required: boolean = false;\n}\n","import { Component } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-checkbox',\n styleUrls: ['./dynamic-checkbox.component.scss'],\n templateUrl: './dynamic-checkbox.component.html',\n})\nexport class TdDynamicCheckboxComponent {\n control: FormControl;\n\n label: string = '';\n\n name: string = '';\n\n hint: string = '';\n\n required: boolean = false;\n}\n","import { Component, ChangeDetectorRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-slider',\n styleUrls: ['./dynamic-slider.component.scss'],\n templateUrl: './dynamic-slider.component.html',\n})\nexport class TdDynamicSliderComponent {\n control: FormControl;\n\n label: string = '';\n\n required: boolean = undefined;\n\n name: string = '';\n\n hint: string = '';\n\n min: number = undefined;\n\n max: number = undefined;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n _handleBlur(): void {\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n}\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-select',\n styleUrls: ['./dynamic-select.component.scss'],\n templateUrl: './dynamic-select.component.html',\n})\nexport class TdDynamicSelectComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n name: string = '';\n\n required: boolean = undefined;\n\n selections: any[] = undefined;\n\n multiple: boolean = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-datepicker',\n styleUrls: ['./dynamic-datepicker.component.scss'],\n templateUrl: './dynamic-datepicker.component.html',\n})\nexport class TdDynamicDatepickerComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n name: string = '';\n\n type: string = undefined;\n\n required: boolean = undefined;\n\n min: number = undefined;\n\n max: number = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","import { Injectable, Provider, SkipSelf, Optional, Type } from '@angular/core';\nimport { Validators, ValidatorFn, FormControl, AbstractControl } from '@angular/forms';\n\nimport { TdDynamicInputComponent } from '../dynamic-elements/dynamic-input/dynamic-input.component';\nimport { TdDynamicFileInputComponent } from '../dynamic-elements/dynamic-file-input/dynamic-file-input.component';\nimport { TdDynamicTextareaComponent } from '../dynamic-elements/dynamic-textarea/dynamic-textarea.component';\nimport { TdDynamicSlideToggleComponent } from '../dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component';\nimport { TdDynamicCheckboxComponent } from '../dynamic-elements/dynamic-checkbox/dynamic-checkbox.component';\nimport { TdDynamicSliderComponent } from '../dynamic-elements/dynamic-slider/dynamic-slider.component';\nimport { TdDynamicSelectComponent } from '../dynamic-elements/dynamic-select/dynamic-select.component';\nimport { TdDynamicDatepickerComponent } from '../dynamic-elements/dynamic-datepicker/dynamic-datepicker.component';\n\nexport enum TdDynamicType {\n Text = 'text',\n Boolean = 'boolean',\n Number = 'number',\n Array = 'array',\n Date = 'date',\n}\n\nexport enum TdDynamicElement {\n Input = 'input',\n Datepicker = 'datepicker',\n Password = 'password',\n Textarea = 'textarea',\n Slider = 'slider',\n SlideToggle = 'slide-toggle',\n Checkbox = 'checkbox',\n Select = 'select',\n FileInput = 'file-input',\n}\n\nexport interface ITdDynamicElementValidator {\n validator: ValidatorFn;\n}\n\n// Property values to be set in custom component\nexport interface ITdDynamicElementCustomConfig {\n [name: string]: any;\n}\n\nexport interface ITdDynamicElementConfig {\n label?: string;\n name: string;\n hint?: string;\n type: TdDynamicType | TdDynamicElement | Type<any>;\n required?: boolean;\n disabled?: boolean;\n min?: any;\n max?: any;\n minLength?: any;\n maxLength?: any;\n selections?: string[] | { value: any; label: string }[];\n multiple?: boolean;\n default?: any;\n flex?: number;\n validators?: ITdDynamicElementValidator[];\n customConfig?: ITdDynamicElementCustomConfig;\n placeholder?: string;\n}\n\nexport const DYNAMIC_ELEMENT_NAME_REGEX: RegExp = /^[^0-9][^\\@]*$/;\n\n@Injectable()\nexport class TdDynamicFormsService {\n /**\n * Method to validate if the [name] is a proper element name.\n * Throws error if name is not valid.\n */\n validateDynamicElementName(name: string): void {\n if (!DYNAMIC_ELEMENT_NAME_REGEX.test(name)) {\n throw new Error('Dynamic element name: \"${name}\" is not valid.');\n }\n }\n\n /**\n * Gets component to be rendered depending on [TdDynamicElement | TdDynamicType]\n * Throws error if it does not exists or not supported.\n */\n getDynamicElement(element: TdDynamicElement | TdDynamicType | Type<any>): any {\n switch (element) {\n case TdDynamicType.Text:\n case TdDynamicType.Number:\n case TdDynamicElement.Input:\n case TdDynamicElement.Password:\n return TdDynamicInputComponent;\n case TdDynamicElement.Textarea:\n return TdDynamicTextareaComponent;\n case TdDynamicType.Boolean:\n case TdDynamicElement.SlideToggle:\n return TdDynamicSlideToggleComponent;\n case TdDynamicElement.Checkbox:\n return TdDynamicCheckboxComponent;\n case TdDynamicElement.Slider:\n return TdDynamicSliderComponent;\n case TdDynamicType.Array:\n case TdDynamicElement.Select:\n return TdDynamicSelectComponent;\n case TdDynamicElement.FileInput:\n return TdDynamicFileInputComponent;\n case TdDynamicElement.Datepicker:\n case TdDynamicType.Date:\n return TdDynamicDatepickerComponent;\n default:\n throw new Error(`Error: type ${element} does not exist or not supported.`);\n }\n }\n\n /**\n * Creates form control for element depending [ITdDynamicElementConfig] properties.\n */\n createFormControl(config: ITdDynamicElementConfig): FormControl {\n const validator: ValidatorFn = this.createValidators(config);\n return new FormControl({ value: config.default, disabled: config.disabled }, validator);\n }\n\n /**\n * Creates form validationdepending [ITdDynamicElementConfig] properties.\n */\n createValidators(config: ITdDynamicElementConfig): ValidatorFn {\n let validator: ValidatorFn;\n if (config.required) {\n validator = Validators.required;\n }\n if (config.max || config.max === 0) {\n validator = Validators.compose([validator, Validators.max(parseFloat(config.max))]);\n }\n if (config.min || config.min === 0) {\n validator = Validators.compose([validator, Validators.min(parseFloat(config.min))]);\n }\n if (config.maxLength || config.maxLength === 0) {\n validator = Validators.compose([validator, Validators.maxLength(parseFloat(config.maxLength))]);\n }\n if (config.minLength || config.minLength === 0) {\n validator = Validators.compose([validator, Validators.minLength(parseFloat(config.minLength))]);\n }\n // Add provided custom validators to the validator function\n if (config.validators) {\n config.validators.forEach((validatorConfig: ITdDynamicElementValidator) => {\n validator = Validators.compose([validator, validatorConfig.validator]);\n });\n }\n return validator;\n }\n}\n\nexport function DYNAMIC_FORMS_PROVIDER_FACTORY(parent: TdDynamicFormsService): TdDynamicFormsService {\n return parent || new TdDynamicFormsService();\n}\n\nexport const DYNAMIC_FORMS_PROVIDER: Provider = {\n // If there is already a service available, use that. Otherwise, provide a new one.\n provide: TdDynamicFormsService,\n deps: [[new Optional(), new SkipSelf(), TdDynamicFormsService]],\n useFactory: DYNAMIC_FORMS_PROVIDER_FACTORY,\n};\n","import {\n Component,\n Directive,\n Input,\n HostBinding,\n OnInit,\n SimpleChanges,\n OnChanges,\n TemplateRef,\n ChangeDetectorRef,\n Type,\n} from '@angular/core';\nimport { ViewChild, ViewContainerRef } from '@angular/core';\nimport { ComponentFactoryResolver, ComponentRef, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\nimport { TemplatePortalDirective } from '@angular/cdk/portal';\n\nimport { mixinControlValueAccessor, IControlValueAccessor } from '@covalent/core/common';\n\nimport {\n TdDynamicElement,\n TdDynamicType,\n TdDynamicFormsService,\n ITdDynamicElementCustomConfig,\n} from './services/dynamic-forms.service';\n\nexport class TdDynamicElementBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n/* tslint:disable-next-line */\nexport const _TdDynamicElementMixinBase = mixinControlValueAccessor(TdDynamicElementBase);\n\n@Directive({ selector: '[tdDynamicFormsError]ng-template' })\nexport class TdDynamicFormsErrorTemplateDirective extends TemplatePortalDirective {\n @Input() tdDynamicFormsError: string;\n constructor(public templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n@Directive({\n selector: '[tdDynamicContainer]',\n})\nexport class TdDynamicElementDirective {\n constructor(public viewContainer: ViewContainerRef) {}\n}\n\n@Component({\n providers: [\n TdDynamicFormsService,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdDynamicElementComponent),\n multi: true,\n },\n ],\n selector: 'td-dynamic-element',\n template: '<div tdDynamicContainer></div>',\n})\nexport class TdDynamicElementComponent\n extends _TdDynamicElementMixinBase\n implements IControlValueAccessor, OnInit, OnChanges\n{\n private _instance: any;\n\n /**\n * Sets form control of the element.\n */\n @Input() dynamicControl: FormControl;\n\n /**\n * Sets label to be displayed.\n */\n @Input() label: string = '';\n\n /**\n * Sets hint to be displayed.\n */\n @Input() hint: string = '';\n\n /**\n * Sets name to be displayed as attribute.\n */\n @Input() name: string = '';\n\n /**\n * Sets type or element of element to be rendered.\n * Throws error if does not exist or no supported.\n */\n @Input() type: TdDynamicElement | TdDynamicType | Type<any> = undefined;\n\n /**\n * Sets required validation checkup (if supported by element).\n */\n @Input() required: boolean = undefined;\n\n /**\n * Sets min validation checkup (if supported by element).\n */\n @Input() min: number = undefined;\n\n /**\n * Sets max validation checkup (if supported by element).\n */\n @Input() max: number = undefined;\n\n /**\n * Sets minLength validation checkup (if supported by element).\n */\n @Input() minLength: number = undefined;\n\n /**\n * Sets maxLength validation checkup (if supported by element).\n */\n @Input() maxLength: number = undefined;\n\n /**\n * Sets selections for array elements (if supported by element).\n */\n @Input() selections: any[] = undefined;\n\n /**\n * Sets multiple property for array elements (if supported by element).\n */\n @Input() multiple: boolean = undefined;\n\n /**\n * Sets any additional properties on custom component.\n */\n @Input() customConfig: ITdDynamicElementCustomConfig;\n\n /**\n * Sets error message template so it can be injected into dynamic components.\n */\n @Input() errorMessageTemplate: TemplateRef<any> = undefined;\n\n /**\n * Sets the placeholder message\n */\n @Input() placeholder: string = '';\n\n @ViewChild(TdDynamicElementDirective, { static: true }) childElement: TdDynamicElementDirective;\n\n @HostBinding('attr.max')\n get maxAttr(): any {\n return this.max;\n }\n\n @HostBinding('attr.min')\n get minAttr(): any {\n return this.min;\n }\n\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _dynamicFormsService: TdDynamicFormsService,\n _changeDetectorRef: ChangeDetectorRef,\n ) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n const component: any =\n <any>this.type instanceof Type ? this.type : this._dynamicFormsService.getDynamicElement(this.type);\n const ref: ComponentRef<any> = this._componentFactoryResolver\n .resolveComponentFactory(component)\n .create(this.childElement.viewContainer.injector);\n this.childElement.viewContainer.insert(ref.hostView);\n this._instance = ref.instance;\n this._instance.control = this.dynamicControl;\n this._instance.label = this.label;\n this._instance.hint = this.hint;\n this._instance.name = this.name;\n this._instance.type = this.type;\n this._instance.value = this.value;\n this._instance.required = this.required;\n this._instance.min = this.min;\n this._instance.max = this.max;\n this._instance.minLength = this.minLength;\n this._instance.maxLength = this.maxLength;\n this._instance.selections = this.selections;\n this._instance.multiple = this.multiple;\n this._instance.errorMessageTemplate = this.errorMessageTemplate;\n this._instance.placeholder = this.placeholder;\n if (this.customConfig) {\n Object.getOwnPropertyNames(this.customConfig).forEach((name: string) => {\n this._instance[name] = this.customConfig[name];\n });\n }\n }\n\n /**\n * Reassign any inputs that have changed\n */\n ngOnChanges(changes: SimpleChanges): void {\n if (this._instance) {\n for (const prop of Object.keys(changes)) {\n this._instance[prop] = changes[prop].currentValue;\n }\n }\n }\n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChildren,\n TemplateRef,\n QueryList,\n AfterContentInit,\n OnDestroy,\n} from '@angular/core';\nimport { FormGroup, FormBuilder, AbstractControl } from '@angular/forms';\n\nimport { TdDynamicFormsService, ITdDynamicElementConfig } from './services/dynamic-forms.service';\nimport { TdDynamicFormsErrorTemplateDirective } from './dynamic-element.component';\n\nimport { timer, Subject, Observable } from 'rxjs';\nimport { takeUntil, filter } from 'rxjs/operators';\n\n@Component({\n selector: 'td-dynamic-forms',\n templateUrl: './dynamic-forms.component.html',\n styleUrls: ['./dynamic-forms.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdDynamicFormsComponent implements AfterContentInit, OnDestroy {\n private _renderedElements: ITdDynamicElementConfig[] = [];\n private _elements: ITdDynamicElementConfig[];\n private _templateMap: Map<string, TemplateRef<any>> = new Map<string, TemplateRef<any>>();\n private _destroy$: Subject<any> = new Subject();\n private _destroyControl$: Subject<string> = new Subject();\n\n @ContentChildren(TdDynamicFormsErrorTemplateDirective, { descendants: true })\n _errorTemplates: QueryList<TdDynamicFormsErrorTemplateDirective>;\n dynamicForm: FormGroup;\n\n /**\n * elements: ITdDynamicElementConfig[]\n * JS Object that will render the elements depending on its config.\n * [name] property is required.\n */\n @Input('elements')\n set elements(elements: ITdDynamicElementConfig[]) {\n if (elements) {\n this._elements = elements;\n } else {\n this._elements = [];\n }\n this._rerenderElements();\n }\n get elements(): ITdDynamicElementConfig[] {\n return this._renderedElements;\n }\n\n /**\n * Getter property for dynamic [FormGroup].\n */\n get form(): FormGroup {\n return this.dynamicForm;\n }\n\n /**\n * Getter property for [valid] of dynamic [FormGroup].\n */\n get valid(): boolean {\n if (this.dynamicForm) {\n return this.dynamicForm.valid;\n }\n return false;\n }\n\n /**\n * Getter property for [value] of dynamic [FormGroup].\n */\n get value(): any {\n if (this.dynamicForm) {\n return this.dynamicForm.value;\n }\n return {};\n }\n\n /**\n * Getter property for [errors] of dynamic [FormGroup].\n */\n get errors(): { [name: string]: any } {\n if (this.dynamicForm) {\n const errors: { [name: string]: any } = {};\n for (const name of Object.keys(this.dynamicForm.controls)) {\n errors[name] = this.dynamicForm.controls[name].errors;\n }\n return errors;\n }\n return {};\n }\n\n /**\n * Getter property for [controls] of dynamic [FormGroup].\n */\n get controls(): { [key: string]: AbstractControl } {\n if (this.dynamicForm) {\n return this.dynamicForm.controls;\n }\n return {};\n }\n\n constructor(\n private _formBuilder: FormBuilder,\n private _dynamicFormsService: TdDynamicFormsService,\n private _changeDetectorRef: ChangeDetectorRef,\n ) {\n this.dynamicForm = this._formBuilder.group({});\n }\n\n ngAfterContentInit(): void {\n this._updateErrorTemplates();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n this._destroyControl$.complete();\n }\n\n /**\n * Refreshes the form and rerenders all validator/element modifications.\n */\n refresh(): void {\n this._rerenderElements();\n this._updateErrorTemplates();\n }\n\n /**\n * Getter method for error template references\n */\n getErrorTemplateRef(name: string): TemplateRef<any> {\n return this._templateMap.get(name);\n }\n\n /**\n * Loads error templates and sets them in a map for faster access.\n */\n private _updateErrorTemplates(): void {\n this._templateMap = new Map<string, TemplateRef<any>>();\n for (const errorTemplate of this._errorTemplates.toArray()) {\n this._templateMap.set(errorTemplate.tdDynamicFormsError, errorTemplate.templateRef);\n }\n }\n\n private _rerenderElements(): void {\n this._clearRemovedElements();\n this._renderedElements = [];\n const duplicates: string[] = [];\n this._elements.forEach((elem: ITdDynamicElementConfig) => {\n this._dynamicFormsService.validateDynamicElementName(elem.name);\n if (duplicates.indexOf(elem.name) > -1) {\n throw new Error(`Dynamic element name: \"${elem.name}\" is duplicated`);\n }\n duplicates.push(elem.name);\n const dynamicElement: AbstractControl = this.dynamicForm.get(elem.name);\n if (!dynamicElement) {\n this.dynamicForm.addControl(elem.name, this._dynamicFormsService.createFormControl(elem));\n this._subscribeToControlStatusChanges(elem.name);\n } else {\n dynamicElement.setValue(elem.default);\n dynamicElement.markAsPristine();\n dynamicElement.markAsUntouched();\n if (elem.disabled) {\n dynamicElement.disable();\n } else {\n dynamicElement.enable();\n }\n dynamicElement.setValidators(this._dynamicFormsService.createValidators(elem));\n }\n // copy objects so they are only changes when calling this method\n this._renderedElements.push(Object.assign({}, elem));\n });\n // call a change detection since the whole form might change\n this._changeDetectorRef.detectChanges();\n timer()\n .toPromise()\n .then(() => {\n // call a markForCheck so elements are rendered correctly in OnPush\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private _clearRemovedElements(): void {\n this._renderedElements = this._renderedElements.filter(\n (renderedElement: ITdDynamicElementConfig) =>\n !this._elements.some((element: ITdDynamicElementConfig) => element.name === renderedElement.name),\n );\n // remove elements that were removed from the array\n this._renderedElements.forEach((elem: ITdDynamicElementConfig) => {\n this._destroyControl$.next(elem.name);\n this.dynamicForm.removeControl(elem.name);\n });\n }\n\n // Updates component when manually adding errors to controls\n private _subscribeToControlStatusChanges(elementName: string): void {\n const control: AbstractControl = this.controls[elementName];\n\n const controlDestroyed$: Observable<any> = this._destroyControl$.pipe(\n filter((destroyedElementName: string) => destroyedElementName === elementName),\n );\n\n control.statusChanges.pipe(takeUntil(this._destroy$), takeUntil(controlDestroyed$)).subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n}\n","import { NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\n\nimport { CovalentCommonModule } from '@covalent/core/common';\nimport { CovalentFileModule } from '@covalent/core/file';\n\nimport { TdDynamicFormsComponent } from './dynamic-forms.component';\nimport {\n TdDynamicElementComponent,\n TdDynamicElementDirective,\n TdDynamicFormsErrorTemplateDirective,\n} from './dynamic-element.component';\nimport { DYNAMIC_FORMS_PROVIDER } from './services/dynamic-forms.service';\n\nimport { TdDynamicInputComponent } from './dynamic-elements/dynamic-input/dynamic-input.component';\nimport { TdDynamicFileInputComponent } from './dynamic-elements/dynamic-file-input/dynamic-file-input.component';\nimport { TdDynamicTextareaComponent } from './dynamic-elements/dynamic-textarea/dynamic-textarea.component';\nimport { TdDynamicSlideToggleComponent } from './dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component';\nimport { TdDynamicCheckboxComponent } from './dynamic-elements/dynamic-checkbox/dynamic-checkbox.component';\nimport { TdDynamicSliderComponent } from './dynamic-elements/dynamic-slider/dynamic-slider.component';\nimport { TdDynamicSelectComponent } from './dynamic-elements/dynamic-select/dynamic-select.component';\nimport { TdDynamicDatepickerComponent } from './dynamic-elements/dynamic-datepicker/dynamic-datepicker.component';\n\nconst TD_DYNAMIC_FORMS: Type<any>[] = [\n TdDynamicFormsComponent,\n TdDynamicElementComponent,\n TdDynamicElementDirective,\n TdDynamicFormsErrorTemplateDirective,\n];\n\nconst TD_DYNAMIC_FORMS_ENTRY_COMPONENTS: Type<any>[] = [\n TdDynamicInputComponent,\n TdDynamicFileInputComponent,\n TdDynamicTextareaComponent,\n TdDynamicSlideToggleComponent,\n TdDynamicCheckboxComponent,\n TdDynamicSliderComponent,\n TdDynamicSelectComponent,\n TdDynamicDatepickerComponent,\n];\n\n@NgModule({\n declarations: [TD_DYNAMIC_FORMS, TD_DYNAMIC_FORMS_ENTRY_COMPONENTS],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatCheckboxModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatIconModule,\n MatButtonModule,\n MatDatepickerModule,\n CovalentCommonModule,\n CovalentFileModule,\n ],\n exports: [TD_DYNAMIC_FORMS, TD_DYNAMIC_FORMS_ENTRY_COMPONENTS],\n providers: [DYNAMIC_FORMS_PROVIDER],\n})\nexport class CovalentDynamicFormsModule {}\n"],"names":["Component","ChangeDetectorRef","FormControl","Validators","Injectable","Optional","SkipSelf","mixinControlValueAccessor","TemplatePortalDirective","Directive","TemplateRef","ViewContainerRef","Input","Type","NG_VALUE_ACCESSOR","forwardRef","ComponentFactoryResolver","ViewChild","HostBinding","Subject","timer","filter","takeUntil","ChangeDetectionStrategy","FormBuilder","ContentChildren","NgModule","CommonModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","MatSelectModule","MatCheckboxModule","MatSliderModule","MatSlideToggleModule","MatIconModule","MatButtonModule","MatDatepickerModule","CovalentCommonModule","CovalentFileModule"],"mappings":"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"}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("@angular/material/form-field"),require("@angular/material/input"),require("@angular/material/select"),require("@angular/material/checkbox"),require("@angular/material/slider"),require("@angular/material/slide-toggle"),require("@angular/material/icon"),require("@angular/material/button"),require("@angular/material/datepicker"),require("@covalent/core/common"),require("@covalent/core/file"),require("@angular/cdk/portal"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@covalent/dynamic-forms",["exports","@angular/core","@angular/common","@angular/forms","@angular/material/form-field","@angular/material/input","@angular/material/select","@angular/material/checkbox","@angular/material/slider","@angular/material/slide-toggle","@angular/material/icon","@angular/material/button","@angular/material/datepicker","@covalent/core/common","@covalent/core/file","@angular/cdk/portal","rxjs","rxjs/operators"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).covalent=e.covalent||{},e.covalent["dynamic-forms"]={}),e.ng.core,e.ng.common,e.ng.forms,e.ng.material.formField,e.ng.material.input,e.ng.material.select,e.ng.material.checkbox,e.ng.material.slider,e.ng.material.slideToggle,e.ng.material.icon,e.ng.material.button,e.ng.material.datepicker,e.covalent.core.common,e.covalent.core.file,e.ng.cdk.portal,e.rxjs,e.rxjs.operators)}(this,(function(e,t,n,r,a,i,o,l,m,s,c,d,p,u,f,h,y,g){"use strict";
|
|
2
|
-
/*! *****************************************************************************
|
|
3
|
-
Copyright (c) Microsoft Corporation.
|
|
4
|
-
|
|
5
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
6
|
-
purpose with or without fee is hereby granted.
|
|
7
|
-
|
|
8
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
9
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
10
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
11
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
12
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */var x=function(e,t){return(x=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])})(e,t)};function b(e,t){function n(){this.constructor=e}x(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}Object.create;function v(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}Object.create;var _=function(){this.label="",this.hint="",this.type=void 0,this.required=void 0,this.name="",this.min=void 0,this.max=void 0,this.minLength=void 0,this.maxLength=void 0,this.errorMessageTemplate=void 0,this.placeholder=""};_.decorators=[{type:t.Component,args:[{selector:"td-dynamic-input",template:'<div class="td-dynamic-input-wrapper">\n <mat-form-field class="td-dynamic-input-field">\n <mat-label>{{ label }}</mat-label>\n <input\n #elementInput\n matInput\n [formControl]="control"\n [placeholder]="placeholder"\n [type]="type"\n [required]="required"\n [attr.name]="name"\n [attr.min]="min"\n [attr.max]="max"\n [attr.minLength]="minLength"\n [attr.maxLength]="maxLength"\n />\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]="errorMessageTemplate"\n [ngTemplateOutletContext]="{ control: control, errors: control?.errors }"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n</div>\n',styles:[".td-dynamic-input-wrapper{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row}.td-dynamic-input-wrapper .td-dynamic-input-field{-ms-flex:1;box-sizing:border-box;flex:1}"]}]}];var C=function(){function e(){this.required=void 0,this.label="",this.name="",this.hint="",this.errorMessageTemplate=void 0,this.placeholder=""}return e.prototype._handlefileDrop=function(e){this.control.setValue(e)},e}();C.decorators=[{type:t.Component,args:[{selector:"td-dynamic-file-input",template:'<div class="td-dynamic-file-input-wrapper">\n <mat-form-field\n tdFileDrop\n class="td-dynamic-file-input-field"\n floatLabel="never"\n [disabled]="control?.disabled"\n (fileDrop)="_handlefileDrop($event)"\n (click)="!control?.disabled && fileInput.inputElement.click()"\n (keyup.enter)="!control?.disabled && fileInput.inputElement.click()"\n (keyup.delete)="fileInput.clear()"\n (keyup.backspace)="fileInput.clear()"\n >\n <mat-label>{{ label }}</mat-label>\n <input\n matInput\n [value]="control?.value?.name"\n [placeholder]="placeholder"\n [attr.name]="name"\n [disabled]="control?.disabled"\n readonly\n />\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]="errorMessageTemplate"\n [ngTemplateOutletContext]="{ control: control, errors: control?.errors }"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n <button mat-icon-button *ngIf="control.value" (click)="fileInput.clear()" (keyup.enter)="fileInput.clear()">\n <mat-icon>cancel</mat-icon>\n </button>\n <td-file-input class="td-file-input" #fileInput [formControl]="control">\n <mat-icon>folder</mat-icon>\n <span>{{ label }}</span>\n </td-file-input>\n</div>\n',styles:[".td-dynamic-file-input-wrapper{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row}.td-dynamic-file-input-wrapper .td-dynamic-file-input-field{-ms-flex:1;box-sizing:border-box;flex:1}.td-file-input{margin-left:10px}"]}]}];var w=function(){this.label="",this.hint="",this.name="",this.required=void 0,this.errorMessageTemplate=void 0,this.placeholder=""};w.decorators=[{type:t.Component,args:[{selector:"td-dynamic-textarea",template:'<div class="td-dynamic-textarea-wrapper">\n <mat-form-field class="td-dynamic-textarea-field">\n <mat-label>{{ label }}</mat-label>\n <textarea\n #elementInput\n matInput\n [formControl]="control"\n [placeholder]="placeholder"\n [required]="required"\n [attr.name]="name"\n rows="4"\n ></textarea>\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]="errorMessageTemplate"\n [ngTemplateOutletContext]="{ control: control, errors: control?.errors }"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n</div>\n',styles:[".td-dynamic-textarea-wrapper{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row}.td-dynamic-textarea-wrapper .td-dynamic-textarea-field{-ms-flex:1;box-sizing:border-box;flex:1}"]}]}];var T=function(){this.label="",this.name="",this.hint="",this.required=!1};T.decorators=[{type:t.Component,args:[{selector:"td-dynamic-slide-toggle",template:'<div class="td-dynamic-slide-toggle-wrapper">\n <mat-slide-toggle [formControl]="control" [attr.name]="name" [required]="required">\n {{ label }}\n </mat-slide-toggle>\n <span class="mat-hint td-dynamic-element-hint">{{ hint }}</span>\n</div>\n',styles:[""]}]}];var D=function(){this.label="",this.name="",this.hint="",this.required=!1};D.decorators=[{type:t.Component,args:[{selector:"td-dynamic-checkbox",template:'<div class="td-dynamic-checkbox-wrapper">\n <mat-checkbox [formControl]="control" [name]="name" [required]="required">\n {{ label }}\n </mat-checkbox>\n <span class="mat-hint td-dynamic-element-hint">{{ hint }}</span>\n</div>\n',styles:[""]}]}];var k=function(){function e(e){this._changeDetectorRef=e,this.label="",this.required=void 0,this.name="",this.hint="",this.min=void 0,this.max=void 0}return e.prototype._handleBlur=function(){var e=this;setTimeout((function(){e._changeDetectorRef.markForCheck()}))},e}();k.decorators=[{type:t.Component,args:[{selector:"td-dynamic-slider",template:'<div\n class="td-dynamic-slider-wrapper mat-form-field mat-form-field-can-float mat-form-field-should-float"\n [class.mat-focused]="slider._isActive"\n>\n <span class="mat-form-field-label-wrapper">\n <label class="mat-form-field-label mat-primary td-slider-label">\n {{ label }}\n <span *ngIf="required && !control?.disabled" class="mat-form-field-required-marker">*</span>\n </label>\n </span>\n <div class="td-dynamic-slider-field">\n <mat-slider\n #slider\n class="td-dynamic-slider"\n [formControl]="control"\n [attr.name]="name"\n [min]="min"\n [max]="max"\n thumbLabel\n tickInterval="auto"\n [required]="required"\n (blur)="_handleBlur()"\n ></mat-slider>\n </div>\n <span class="mat-hint td-dynamic-element-hint">{{ hint }}</span>\n</div>\n',styles:[":host .td-dynamic-slider-wrapper{display:block}.td-dynamic-slider-field{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row;position:relative}.td-dynamic-slider-field .td-dynamic-slider{-ms-flex:1;flex:1}"]}]}],k.ctorParameters=function(){return[{type:t.ChangeDetectorRef}]};var F=function(){this.label="",this.hint="",this.name="",this.required=void 0,this.selections=void 0,this.multiple=void 0,this.errorMessageTemplate=void 0,this.placeholder=""};F.decorators=[{type:t.Component,args:[{selector:"td-dynamic-select",template:'<div class="td-dynamic-select-wrapper">\n <mat-form-field class="td-dynamic-select-field">\n <mat-label>{{ label }}</mat-label>\n <mat-select\n [formControl]="control"\n [placeholder]="placeholder"\n [required]="required"\n [attr.name]="name"\n [multiple]="multiple"\n >\n <mat-option *ngFor="let selection of selections" [value]="selection.value || selection">\n {{ selection.label || selection }}\n </mat-option>\n </mat-select>\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]="errorMessageTemplate"\n [ngTemplateOutletContext]="{ control: control, errors: control?.errors }"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n</div>\n',styles:[".td-dynamic-select-wrapper{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row}.td-dynamic-select-wrapper .td-dynamic-select-field{-ms-flex:1;box-sizing:border-box;flex:1}"]}]}];var E=function(){this.label="",this.hint="",this.name="",this.type=void 0,this.required=void 0,this.min=void 0,this.max=void 0,this.errorMessageTemplate=void 0,this.placeholder=""};E.decorators=[{type:t.Component,args:[{selector:"td-dynamic-datepicker",template:'<div class="td-dynamic-datepicker-wrapper">\n <mat-form-field class="td-dynamic-datepicker-field">\n <mat-label>{{ label }}</mat-label>\n <input\n #elementInput\n matInput\n [matDatepicker]="dynamicDatePicker"\n [formControl]="control"\n [placeholder]="placeholder"\n [required]="required"\n [name]="name"\n [min]="min"\n [max]="max"\n />\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]="errorMessageTemplate"\n [ngTemplateOutletContext]="{ control: control, errors: control?.errors }"\n ></ng-template>\n </mat-error>\n <mat-datepicker-toggle matSuffix [for]="dynamicDatePicker"></mat-datepicker-toggle>\n <mat-datepicker #dynamicDatePicker></mat-datepicker>\n </mat-form-field>\n</div>\n',styles:[".td-dynamic-datepicker-wrapper{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row}.td-dynamic-datepicker-wrapper .td-dynamic-datepicker-field{-ms-flex:1;box-sizing:border-box;flex:1}"]}]}];var M={Text:"text",Boolean:"boolean",Number:"number",Array:"array",Date:"date"},I={Input:"input",Datepicker:"datepicker",Password:"password",Textarea:"textarea",Slider:"slider",SlideToggle:"slide-toggle",Checkbox:"checkbox",Select:"select",FileInput:"file-input"};var q=/^[^0-9][^\@]*$/,O=function(){function e(){}return e.prototype.validateDynamicElementName=function(e){if(!q.test(e))throw new Error('Dynamic element name: "${name}" is not valid.')},e.prototype.getDynamicElement=function(e){switch(e){case M.Text:case M.Number:case I.Input:case I.Password:return _;case I.Textarea:return w;case M.Boolean:case I.SlideToggle:return T;case I.Checkbox:return D;case I.Slider:return k;case M.Array:case I.Select:return F;case I.FileInput:return C;case I.Datepicker:case M.Date:return E;default:throw new Error("Error: type "+e+" does not exist or not supported.")}},e.prototype.createFormControl=function(e){var t=this.createValidators(e);return new r.FormControl({value:e.default,disabled:e.disabled},t)},e.prototype.createValidators=function(e){var t;return e.required&&(t=r.Validators.required),(e.max||0===e.max)&&(t=r.Validators.compose([t,r.Validators.max(parseFloat(e.max))])),(e.min||0===e.min)&&(t=r.Validators.compose([t,r.Validators.min(parseFloat(e.min))])),(e.maxLength||0===e.maxLength)&&(t=r.Validators.compose([t,r.Validators.maxLength(parseFloat(e.maxLength))])),(e.minLength||0===e.minLength)&&(t=r.Validators.compose([t,r.Validators.minLength(parseFloat(e.minLength))])),e.validators&&e.validators.forEach((function(e){t=r.Validators.compose([t,e.validator])})),t},e}();function S(e){return e||new O}O.decorators=[{type:t.Injectable}];var R={provide:O,deps:[[new t.Optional,new t.SkipSelf,O]],useFactory:S},j=function(e){this._changeDetectorRef=e};var L=u.mixinControlValueAccessor(j),P=function(e){function t(t,n){var r=e.call(this,t,n)||this;return r.templateRef=t,r}return b(t,e),t}(h.TemplatePortalDirective);P.decorators=[{type:t.Directive,args:[{selector:"[tdDynamicFormsError]ng-template"}]}],P.ctorParameters=function(){return[{type:t.TemplateRef},{type:t.ViewContainerRef}]},P.propDecorators={tdDynamicFormsError:[{type:t.Input}]};var V=function(e){this.viewContainer=e};V.decorators=[{type:t.Directive,args:[{selector:"[tdDynamicContainer]"}]}],V.ctorParameters=function(){return[{type:t.ViewContainerRef}]};var A=function(e){function n(t,n,r){var a=e.call(this,r)||this;return a._componentFactoryResolver=t,a._dynamicFormsService=n,a.label="",a.hint="",a.name="",a.type=void 0,a.required=void 0,a.min=void 0,a.max=void 0,a.minLength=void 0,a.maxLength=void 0,a.selections=void 0,a.multiple=void 0,a.errorMessageTemplate=void 0,a.placeholder="",a}return b(n,e),Object.defineProperty(n.prototype,"maxAttr",{get:function(){return this.max},enumerable:!1,configurable:!0}),Object.defineProperty(n.prototype,"minAttr",{get:function(){return this.min},enumerable:!1,configurable:!0}),n.prototype.ngOnInit=function(){var e=this,n=this.type instanceof t.Type?this.type:this._dynamicFormsService.getDynamicElement(this.type),r=this._componentFactoryResolver.resolveComponentFactory(n).create(this.childElement.viewContainer.injector);this.childElement.viewContainer.insert(r.hostView),this._instance=r.instance,this._instance.control=this.dynamicControl,this._instance.label=this.label,this._instance.hint=this.hint,this._instance.name=this.name,this._instance.type=this.type,this._instance.value=this.value,this._instance.required=this.required,this._instance.min=this.min,this._instance.max=this.max,this._instance.minLength=this.minLength,this._instance.maxLength=this.maxLength,this._instance.selections=this.selections,this._instance.multiple=this.multiple,this._instance.errorMessageTemplate=this.errorMessageTemplate,this._instance.placeholder=this.placeholder,this.customConfig&&Object.getOwnPropertyNames(this.customConfig).forEach((function(t){e._instance[t]=e.customConfig[t]}))},n.prototype.ngOnChanges=function(e){var t,n;if(this._instance)try{for(var r=v(Object.keys(e)),a=r.next();!a.done;a=r.next()){var i=a.value;this._instance[i]=e[i].currentValue}}catch(e){t={error:e}}finally{try{a&&!a.done&&(n=r.return)&&n.call(r)}finally{if(t)throw t.error}}},n}(L);A.decorators=[{type:t.Component,args:[{providers:[O,{provide:r.NG_VALUE_ACCESSOR,useExisting:t.forwardRef((function(){return A})),multi:!0}],selector:"td-dynamic-element",template:"<div tdDynamicContainer></div>"}]}],A.ctorParameters=function(){return[{type:t.ComponentFactoryResolver},{type:O},{type:t.ChangeDetectorRef}]},A.propDecorators={dynamicControl:[{type:t.Input}],label:[{type:t.Input}],hint:[{type:t.Input}],name:[{type:t.Input}],type:[{type:t.Input}],required:[{type:t.Input}],min:[{type:t.Input}],max:[{type:t.Input}],minLength:[{type:t.Input}],maxLength:[{type:t.Input}],selections:[{type:t.Input}],multiple:[{type:t.Input}],customConfig:[{type:t.Input}],errorMessageTemplate:[{type:t.Input}],placeholder:[{type:t.Input}],childElement:[{type:t.ViewChild,args:[V,{static:!0}]}],maxAttr:[{type:t.HostBinding,args:["attr.max"]}],minAttr:[{type:t.HostBinding,args:["attr.min"]}]};var z=function(){function e(e,t,n){this._formBuilder=e,this._dynamicFormsService=t,this._changeDetectorRef=n,this._renderedElements=[],this._templateMap=new Map,this._destroy$=new y.Subject,this._destroyControl$=new y.Subject,this.dynamicForm=this._formBuilder.group({})}return Object.defineProperty(e.prototype,"elements",{get:function(){return this._renderedElements},set:function(e){this._elements=e||[],this._rerenderElements()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"form",{get:function(){return this.dynamicForm},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"valid",{get:function(){return!!this.dynamicForm&&this.dynamicForm.valid},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"value",{get:function(){return this.dynamicForm?this.dynamicForm.value:{}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"errors",{get:function(){var e,t;if(this.dynamicForm){var n={};try{for(var r=v(Object.keys(this.dynamicForm.controls)),a=r.next();!a.done;a=r.next()){var i=a.value;n[i]=this.dynamicForm.controls[i].errors}}catch(t){e={error:t}}finally{try{a&&!a.done&&(t=r.return)&&t.call(r)}finally{if(e)throw e.error}}return n}return{}},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"controls",{get:function(){return this.dynamicForm?this.dynamicForm.controls:{}},enumerable:!1,configurable:!0}),e.prototype.ngAfterContentInit=function(){this._updateErrorTemplates()},e.prototype.ngOnDestroy=function(){this._destroy$.next(),this._destroy$.complete(),this._destroyControl$.complete()},e.prototype.refresh=function(){this._rerenderElements(),this._updateErrorTemplates()},e.prototype.getErrorTemplateRef=function(e){return this._templateMap.get(e)},e.prototype._updateErrorTemplates=function(){var e,t;this._templateMap=new Map;try{for(var n=v(this._errorTemplates.toArray()),r=n.next();!r.done;r=n.next()){var a=r.value;this._templateMap.set(a.tdDynamicFormsError,a.templateRef)}}catch(t){e={error:t}}finally{try{r&&!r.done&&(t=n.return)&&t.call(n)}finally{if(e)throw e.error}}},e.prototype._rerenderElements=function(){var e=this;this._clearRemovedElements(),this._renderedElements=[];var t=[];this._elements.forEach((function(n){if(e._dynamicFormsService.validateDynamicElementName(n.name),t.indexOf(n.name)>-1)throw new Error('Dynamic element name: "'+n.name+'" is duplicated');t.push(n.name);var r=e.dynamicForm.get(n.name);r?(r.setValue(n.default),r.markAsPristine(),r.markAsUntouched(),n.disabled?r.disable():r.enable(),r.setValidators(e._dynamicFormsService.createValidators(n))):(e.dynamicForm.addControl(n.name,e._dynamicFormsService.createFormControl(n)),e._subscribeToControlStatusChanges(n.name)),e._renderedElements.push(Object.assign({},n))})),this._changeDetectorRef.detectChanges(),y.timer().toPromise().then((function(){e._changeDetectorRef.markForCheck()}))},e.prototype._clearRemovedElements=function(){var e=this;this._renderedElements=this._renderedElements.filter((function(t){return!e._elements.some((function(e){return e.name===t.name}))})),this._renderedElements.forEach((function(t){e._destroyControl$.next(t.name),e.dynamicForm.removeControl(t.name)}))},e.prototype._subscribeToControlStatusChanges=function(e){var t=this,n=this.controls[e],r=this._destroyControl$.pipe(g.filter((function(t){return t===e})));n.statusChanges.pipe(g.takeUntil(this._destroy$),g.takeUntil(r)).subscribe((function(){t._changeDetectorRef.markForCheck()}))},e}();z.decorators=[{type:t.Component,args:[{selector:"td-dynamic-forms",template:'<form [formGroup]="dynamicForm" novalidate>\n <div class="td-dynamic-form-wrapper">\n <ng-template let-element ngFor [ngForOf]="elements">\n <div\n class="td-dynamic-element-wrapper"\n [style.max-width.%]="element.flex ? element.flex : 100"\n [style.flex]="\'1 1 \' + (element.flex ? element.flex : 100) + \'%\'"\n [style.-ms-flex]="\'1 1 \' + (element.flex ? element.flex : 100) + \'%\'"\n [style.-webkit-box-flex]="1"\n >\n <td-dynamic-element\n #dynamicElement\n *ngIf="dynamicForm.controls[element.name]"\n [formControlName]="element.name"\n [dynamicControl]="dynamicForm.controls[element.name]"\n [id]="element.name"\n [name]="element.name"\n [label]="element.label || element.name"\n [hint]="element.hint"\n [type]="element.type"\n [required]="element.required"\n [min]="element.min"\n [max]="element.max"\n [minLength]="element.minLength"\n [maxLength]="element.maxLength"\n [selections]="element.selections"\n [multiple]="element.multiple"\n [customConfig]="element.customConfig"\n [errorMessageTemplate]="getErrorTemplateRef(element.name)"\n [placeholder]="element.placeholder"\n ></td-dynamic-element>\n </div>\n </ng-template>\n </div>\n <ng-content></ng-content>\n</form>\n',changeDetection:t.ChangeDetectionStrategy.OnPush,styles:[".td-dynamic-form-wrapper{-ms-flex-align:center;-ms-flex-direction:row;-ms-flex-line-pack:center;-ms-flex-pack:start;-ms-flex-wrap:wrap;align-content:center;align-items:center;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;max-width:100%}.td-dynamic-form-wrapper ::ng-deep .mat-form-field-infix{width:auto}.td-dynamic-form-wrapper ::ng-deep .td-dynamic-element-hint{display:block;font-size:75%}.td-dynamic-form-wrapper .td-dynamic-element-wrapper{box-sizing:border-box;max-height:100%;padding:4px 4px 8px;position:relative}"]}]}],z.ctorParameters=function(){return[{type:r.FormBuilder},{type:O},{type:t.ChangeDetectorRef}]},z.propDecorators={_errorTemplates:[{type:t.ContentChildren,args:[P,{descendants:!0}]}],elements:[{type:t.Input,args:["elements"]}]};var N=[z,A,V,P],B=[_,C,w,T,D,k,F,E],$=function(){};$.decorators=[{type:t.NgModule,args:[{declarations:[N,B],imports:[n.CommonModule,r.ReactiveFormsModule,a.MatFormFieldModule,i.MatInputModule,o.MatSelectModule,l.MatCheckboxModule,m.MatSliderModule,s.MatSlideToggleModule,c.MatIconModule,d.MatButtonModule,p.MatDatepickerModule,u.CovalentCommonModule,f.CovalentFileModule],exports:[N,B],providers:[R]}]}],e.CovalentDynamicFormsModule=$,e.DYNAMIC_ELEMENT_NAME_REGEX=q,e.DYNAMIC_FORMS_PROVIDER=R,e.DYNAMIC_FORMS_PROVIDER_FACTORY=S,e.TdDynamicCheckboxComponent=D,e.TdDynamicDatepickerComponent=E,e.TdDynamicElement=I,e.TdDynamicElementBase=j,e.TdDynamicElementComponent=A,e.TdDynamicElementDirective=V,e.TdDynamicFileInputComponent=C,e.TdDynamicFormsComponent=z,e.TdDynamicFormsErrorTemplateDirective=P,e.TdDynamicFormsService=O,e.TdDynamicInputComponent=_,e.TdDynamicSelectComponent=F,e.TdDynamicSlideToggleComponent=T,e.TdDynamicSliderComponent=k,e.TdDynamicTextareaComponent=w,e.TdDynamicType=M,e._TdDynamicElementMixinBase=L,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
16
|
-
//# sourceMappingURL=covalent-dynamic-forms.umd.min.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../src/platform/dynamic-forms/dynamic-elements/dynamic-input/dynamic-input.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-file-input/dynamic-file-input.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-textarea/dynamic-textarea.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-checkbox/dynamic-checkbox.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-slider/dynamic-slider.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-select/dynamic-select.component.ts","../../src/platform/dynamic-forms/dynamic-elements/dynamic-datepicker/dynamic-datepicker.component.ts","../../../src/platform/dynamic-forms/services/dynamic-forms.service.ts","../../../../src/platform/dynamic-forms/dynamic-element.component.ts","../../../../src/platform/dynamic-forms/dynamic-forms.component.ts","../../../../src/platform/dynamic-forms/dynamic-forms.module.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","__extends","__","this","constructor","create","__values","o","s","Symbol","iterator","m","i","length","next","value","done","TypeError","label","hint","type","undefined","required","name","min","max","minLength","maxLength","errorMessageTemplate","placeholder","Component","args","selector","template","TdDynamicFileInputComponent","_handlefileDrop","control","setValue","TdDynamicSliderComponent","_changeDetectorRef","_handleBlur","_this","setTimeout","markForCheck","ChangeDetectorRef","selections","multiple","TdDynamicType","Text","Boolean","Number","Date","TdDynamicElement","Input","Datepicker","Password","Textarea","Slider","SlideToggle","Checkbox","Select","FileInput","DYNAMIC_ELEMENT_NAME_REGEX","TdDynamicFormsService","validateDynamicElementName","test","Error","getDynamicElement","element","TdDynamicInputComponent","TdDynamicTextareaComponent","TdDynamicSlideToggleComponent","TdDynamicCheckboxComponent","TdDynamicSelectComponent","TdDynamicDatepickerComponent","createFormControl","config","validator","createValidators","FormControl","default","disabled","Validators","compose","parseFloat","validators","forEach","validatorConfig","DYNAMIC_FORMS_PROVIDER_FACTORY","parent","Injectable","DYNAMIC_FORMS_PROVIDER","provide","deps","Optional","SkipSelf","useFactory","_TdDynamicElementMixinBase","mixinControlValueAccessor","TdDynamicElementBase","TdDynamicFormsErrorTemplateDirective","templateRef","viewContainerRef","_super","TemplatePortalDirective","Directive","TemplateRef","ViewContainerRef","viewContainer","TdDynamicElementComponent","_componentFactoryResolver","_dynamicFormsService","defineProperty","ngOnInit","component","Type","ref","resolveComponentFactory","childElement","injector","insert","hostView","_instance","instance","dynamicControl","customConfig","getOwnPropertyNames","ngOnChanges","changes","_b","keys","_c","prop","currentValue","providers","NG_VALUE_ACCESSOR","useExisting","forwardRef","multi","ComponentFactoryResolver","ViewChild","TdDynamicElementDirective","static","HostBinding","TdDynamicFormsComponent","_formBuilder","_renderedElements","_templateMap","Map","_destroy$","Subject","_destroyControl$","dynamicForm","group","elements","_elements","_rerenderElements","valid","errors","controls","ngAfterContentInit","_updateErrorTemplates","ngOnDestroy","complete","refresh","getErrorTemplateRef","get","_errorTemplates","toArray","errorTemplate","set","tdDynamicFormsError","_clearRemovedElements","duplicates","elem","indexOf","push","dynamicElement","markAsPristine","markAsUntouched","disable","enable","setValidators","addControl","_subscribeToControlStatusChanges","assign","detectChanges","timer","toPromise","then","filter","renderedElement","some","removeControl","elementName","controlDestroyed$","pipe","destroyedElementName","statusChanges","takeUntil","subscribe","changeDetection","ChangeDetectionStrategy","OnPush","FormBuilder","ContentChildren","descendants","TD_DYNAMIC_FORMS","TD_DYNAMIC_FORMS_ENTRY_COMPONENTS","NgModule","declarations","imports","CommonModule","ReactiveFormsModule","MatFormFieldModule","MatInputModule","MatSelectModule","MatCheckboxModule","MatSliderModule","MatSlideToggleModule","MatIconModule","MatButtonModule","MatDatepickerModule","CovalentCommonModule","CovalentFileModule","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n 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;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-input',\n styleUrls: ['./dynamic-input.component.scss'],\n templateUrl: './dynamic-input.component.html',\n})\nexport class TdDynamicInputComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n type: string = undefined;\n\n required: boolean = undefined;\n\n name: string = '';\n\n min: number = undefined;\n\n max: number = undefined;\n\n minLength: number = undefined;\n\n maxLength: number = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-file-input',\n styleUrls: ['./dynamic-file-input.component.scss'],\n templateUrl: './dynamic-file-input.component.html',\n})\nexport class TdDynamicFileInputComponent {\n control: FormControl;\n\n required: boolean = undefined;\n\n label: string = '';\n\n name: string = '';\n\n hint: string = '';\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n\n _handlefileDrop(value: File): void {\n this.control.setValue(value);\n }\n}\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-textarea',\n styleUrls: ['./dynamic-textarea.component.scss'],\n templateUrl: './dynamic-textarea.component.html',\n})\nexport class TdDynamicTextareaComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n name: string = '';\n\n required: boolean = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","import { Component } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-slide-toggle',\n styleUrls: ['./dynamic-slide-toggle.component.scss'],\n templateUrl: './dynamic-slide-toggle.component.html',\n})\nexport class TdDynamicSlideToggleComponent {\n control: FormControl;\n\n label: string = '';\n\n name: string = '';\n\n hint: string = '';\n\n required: boolean = false;\n}\n","import { Component } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-checkbox',\n styleUrls: ['./dynamic-checkbox.component.scss'],\n templateUrl: './dynamic-checkbox.component.html',\n})\nexport class TdDynamicCheckboxComponent {\n control: FormControl;\n\n label: string = '';\n\n name: string = '';\n\n hint: string = '';\n\n required: boolean = false;\n}\n","import { Component, ChangeDetectorRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-slider',\n styleUrls: ['./dynamic-slider.component.scss'],\n templateUrl: './dynamic-slider.component.html',\n})\nexport class TdDynamicSliderComponent {\n control: FormControl;\n\n label: string = '';\n\n required: boolean = undefined;\n\n name: string = '';\n\n hint: string = '';\n\n min: number = undefined;\n\n max: number = undefined;\n\n constructor(private _changeDetectorRef: ChangeDetectorRef) {}\n\n _handleBlur(): void {\n setTimeout(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n}\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-select',\n styleUrls: ['./dynamic-select.component.scss'],\n templateUrl: './dynamic-select.component.html',\n})\nexport class TdDynamicSelectComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n name: string = '';\n\n required: boolean = undefined;\n\n selections: any[] = undefined;\n\n multiple: boolean = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","import { Component, TemplateRef } from '@angular/core';\nimport { FormControl } from '@angular/forms';\n\n@Component({\n selector: 'td-dynamic-datepicker',\n styleUrls: ['./dynamic-datepicker.component.scss'],\n templateUrl: './dynamic-datepicker.component.html',\n})\nexport class TdDynamicDatepickerComponent {\n control: FormControl;\n\n label: string = '';\n\n hint: string = '';\n\n name: string = '';\n\n type: string = undefined;\n\n required: boolean = undefined;\n\n min: number = undefined;\n\n max: number = undefined;\n\n errorMessageTemplate: TemplateRef<any> = undefined;\n\n placeholder: string = '';\n}\n","import { Injectable, Provider, SkipSelf, Optional, Type } from '@angular/core';\nimport { Validators, ValidatorFn, FormControl, AbstractControl } from '@angular/forms';\n\nimport { TdDynamicInputComponent } from '../dynamic-elements/dynamic-input/dynamic-input.component';\nimport { TdDynamicFileInputComponent } from '../dynamic-elements/dynamic-file-input/dynamic-file-input.component';\nimport { TdDynamicTextareaComponent } from '../dynamic-elements/dynamic-textarea/dynamic-textarea.component';\nimport { TdDynamicSlideToggleComponent } from '../dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component';\nimport { TdDynamicCheckboxComponent } from '../dynamic-elements/dynamic-checkbox/dynamic-checkbox.component';\nimport { TdDynamicSliderComponent } from '../dynamic-elements/dynamic-slider/dynamic-slider.component';\nimport { TdDynamicSelectComponent } from '../dynamic-elements/dynamic-select/dynamic-select.component';\nimport { TdDynamicDatepickerComponent } from '../dynamic-elements/dynamic-datepicker/dynamic-datepicker.component';\n\nexport enum TdDynamicType {\n Text = 'text',\n Boolean = 'boolean',\n Number = 'number',\n Array = 'array',\n Date = 'date',\n}\n\nexport enum TdDynamicElement {\n Input = 'input',\n Datepicker = 'datepicker',\n Password = 'password',\n Textarea = 'textarea',\n Slider = 'slider',\n SlideToggle = 'slide-toggle',\n Checkbox = 'checkbox',\n Select = 'select',\n FileInput = 'file-input',\n}\n\nexport interface ITdDynamicElementValidator {\n validator: ValidatorFn;\n}\n\n// Property values to be set in custom component\nexport interface ITdDynamicElementCustomConfig {\n [name: string]: any;\n}\n\nexport interface ITdDynamicElementConfig {\n label?: string;\n name: string;\n hint?: string;\n type: TdDynamicType | TdDynamicElement | Type<any>;\n required?: boolean;\n disabled?: boolean;\n min?: any;\n max?: any;\n minLength?: any;\n maxLength?: any;\n selections?: string[] | { value: any; label: string }[];\n multiple?: boolean;\n default?: any;\n flex?: number;\n validators?: ITdDynamicElementValidator[];\n customConfig?: ITdDynamicElementCustomConfig;\n placeholder?: string;\n}\n\nexport const DYNAMIC_ELEMENT_NAME_REGEX: RegExp = /^[^0-9][^\\@]*$/;\n\n@Injectable()\nexport class TdDynamicFormsService {\n /**\n * Method to validate if the [name] is a proper element name.\n * Throws error if name is not valid.\n */\n validateDynamicElementName(name: string): void {\n if (!DYNAMIC_ELEMENT_NAME_REGEX.test(name)) {\n throw new Error('Dynamic element name: \"${name}\" is not valid.');\n }\n }\n\n /**\n * Gets component to be rendered depending on [TdDynamicElement | TdDynamicType]\n * Throws error if it does not exists or not supported.\n */\n getDynamicElement(element: TdDynamicElement | TdDynamicType | Type<any>): any {\n switch (element) {\n case TdDynamicType.Text:\n case TdDynamicType.Number:\n case TdDynamicElement.Input:\n case TdDynamicElement.Password:\n return TdDynamicInputComponent;\n case TdDynamicElement.Textarea:\n return TdDynamicTextareaComponent;\n case TdDynamicType.Boolean:\n case TdDynamicElement.SlideToggle:\n return TdDynamicSlideToggleComponent;\n case TdDynamicElement.Checkbox:\n return TdDynamicCheckboxComponent;\n case TdDynamicElement.Slider:\n return TdDynamicSliderComponent;\n case TdDynamicType.Array:\n case TdDynamicElement.Select:\n return TdDynamicSelectComponent;\n case TdDynamicElement.FileInput:\n return TdDynamicFileInputComponent;\n case TdDynamicElement.Datepicker:\n case TdDynamicType.Date:\n return TdDynamicDatepickerComponent;\n default:\n throw new Error(`Error: type ${element} does not exist or not supported.`);\n }\n }\n\n /**\n * Creates form control for element depending [ITdDynamicElementConfig] properties.\n */\n createFormControl(config: ITdDynamicElementConfig): FormControl {\n const validator: ValidatorFn = this.createValidators(config);\n return new FormControl({ value: config.default, disabled: config.disabled }, validator);\n }\n\n /**\n * Creates form validationdepending [ITdDynamicElementConfig] properties.\n */\n createValidators(config: ITdDynamicElementConfig): ValidatorFn {\n let validator: ValidatorFn;\n if (config.required) {\n validator = Validators.required;\n }\n if (config.max || config.max === 0) {\n validator = Validators.compose([validator, Validators.max(parseFloat(config.max))]);\n }\n if (config.min || config.min === 0) {\n validator = Validators.compose([validator, Validators.min(parseFloat(config.min))]);\n }\n if (config.maxLength || config.maxLength === 0) {\n validator = Validators.compose([validator, Validators.maxLength(parseFloat(config.maxLength))]);\n }\n if (config.minLength || config.minLength === 0) {\n validator = Validators.compose([validator, Validators.minLength(parseFloat(config.minLength))]);\n }\n // Add provided custom validators to the validator function\n if (config.validators) {\n config.validators.forEach((validatorConfig: ITdDynamicElementValidator) => {\n validator = Validators.compose([validator, validatorConfig.validator]);\n });\n }\n return validator;\n }\n}\n\nexport function DYNAMIC_FORMS_PROVIDER_FACTORY(parent: TdDynamicFormsService): TdDynamicFormsService {\n return parent || new TdDynamicFormsService();\n}\n\nexport const DYNAMIC_FORMS_PROVIDER: Provider = {\n // If there is already a service available, use that. Otherwise, provide a new one.\n provide: TdDynamicFormsService,\n deps: [[new Optional(), new SkipSelf(), TdDynamicFormsService]],\n useFactory: DYNAMIC_FORMS_PROVIDER_FACTORY,\n};\n","import {\n Component,\n Directive,\n Input,\n HostBinding,\n OnInit,\n SimpleChanges,\n OnChanges,\n TemplateRef,\n ChangeDetectorRef,\n Type,\n} from '@angular/core';\nimport { ViewChild, ViewContainerRef } from '@angular/core';\nimport { ComponentFactoryResolver, ComponentRef, forwardRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR, FormControl } from '@angular/forms';\nimport { TemplatePortalDirective } from '@angular/cdk/portal';\n\nimport { mixinControlValueAccessor, IControlValueAccessor } from '@covalent/core/common';\n\nimport {\n TdDynamicElement,\n TdDynamicType,\n TdDynamicFormsService,\n ITdDynamicElementCustomConfig,\n} from './services/dynamic-forms.service';\n\nexport class TdDynamicElementBase {\n constructor(public _changeDetectorRef: ChangeDetectorRef) {}\n}\n\n/* tslint:disable-next-line */\nexport const _TdDynamicElementMixinBase = mixinControlValueAccessor(TdDynamicElementBase);\n\n@Directive({ selector: '[tdDynamicFormsError]ng-template' })\nexport class TdDynamicFormsErrorTemplateDirective extends TemplatePortalDirective {\n @Input() tdDynamicFormsError: string;\n constructor(public templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n@Directive({\n selector: '[tdDynamicContainer]',\n})\nexport class TdDynamicElementDirective {\n constructor(public viewContainer: ViewContainerRef) {}\n}\n\n@Component({\n providers: [\n TdDynamicFormsService,\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TdDynamicElementComponent),\n multi: true,\n },\n ],\n selector: 'td-dynamic-element',\n template: '<div tdDynamicContainer></div>',\n})\nexport class TdDynamicElementComponent\n extends _TdDynamicElementMixinBase\n implements IControlValueAccessor, OnInit, OnChanges\n{\n private _instance: any;\n\n /**\n * Sets form control of the element.\n */\n @Input() dynamicControl: FormControl;\n\n /**\n * Sets label to be displayed.\n */\n @Input() label: string = '';\n\n /**\n * Sets hint to be displayed.\n */\n @Input() hint: string = '';\n\n /**\n * Sets name to be displayed as attribute.\n */\n @Input() name: string = '';\n\n /**\n * Sets type or element of element to be rendered.\n * Throws error if does not exist or no supported.\n */\n @Input() type: TdDynamicElement | TdDynamicType | Type<any> = undefined;\n\n /**\n * Sets required validation checkup (if supported by element).\n */\n @Input() required: boolean = undefined;\n\n /**\n * Sets min validation checkup (if supported by element).\n */\n @Input() min: number = undefined;\n\n /**\n * Sets max validation checkup (if supported by element).\n */\n @Input() max: number = undefined;\n\n /**\n * Sets minLength validation checkup (if supported by element).\n */\n @Input() minLength: number = undefined;\n\n /**\n * Sets maxLength validation checkup (if supported by element).\n */\n @Input() maxLength: number = undefined;\n\n /**\n * Sets selections for array elements (if supported by element).\n */\n @Input() selections: any[] = undefined;\n\n /**\n * Sets multiple property for array elements (if supported by element).\n */\n @Input() multiple: boolean = undefined;\n\n /**\n * Sets any additional properties on custom component.\n */\n @Input() customConfig: ITdDynamicElementCustomConfig;\n\n /**\n * Sets error message template so it can be injected into dynamic components.\n */\n @Input() errorMessageTemplate: TemplateRef<any> = undefined;\n\n /**\n * Sets the placeholder message\n */\n @Input() placeholder: string = '';\n\n @ViewChild(TdDynamicElementDirective, { static: true }) childElement: TdDynamicElementDirective;\n\n @HostBinding('attr.max')\n get maxAttr(): any {\n return this.max;\n }\n\n @HostBinding('attr.min')\n get minAttr(): any {\n return this.min;\n }\n\n constructor(\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _dynamicFormsService: TdDynamicFormsService,\n _changeDetectorRef: ChangeDetectorRef,\n ) {\n super(_changeDetectorRef);\n }\n\n ngOnInit(): void {\n const component: any =\n <any>this.type instanceof Type ? this.type : this._dynamicFormsService.getDynamicElement(this.type);\n const ref: ComponentRef<any> = this._componentFactoryResolver\n .resolveComponentFactory(component)\n .create(this.childElement.viewContainer.injector);\n this.childElement.viewContainer.insert(ref.hostView);\n this._instance = ref.instance;\n this._instance.control = this.dynamicControl;\n this._instance.label = this.label;\n this._instance.hint = this.hint;\n this._instance.name = this.name;\n this._instance.type = this.type;\n this._instance.value = this.value;\n this._instance.required = this.required;\n this._instance.min = this.min;\n this._instance.max = this.max;\n this._instance.minLength = this.minLength;\n this._instance.maxLength = this.maxLength;\n this._instance.selections = this.selections;\n this._instance.multiple = this.multiple;\n this._instance.errorMessageTemplate = this.errorMessageTemplate;\n this._instance.placeholder = this.placeholder;\n if (this.customConfig) {\n Object.getOwnPropertyNames(this.customConfig).forEach((name: string) => {\n this._instance[name] = this.customConfig[name];\n });\n }\n }\n\n /**\n * Reassign any inputs that have changed\n */\n ngOnChanges(changes: SimpleChanges): void {\n if (this._instance) {\n for (const prop of Object.keys(changes)) {\n this._instance[prop] = changes[prop].currentValue;\n }\n }\n }\n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n ContentChildren,\n TemplateRef,\n QueryList,\n AfterContentInit,\n OnDestroy,\n} from '@angular/core';\nimport { FormGroup, FormBuilder, AbstractControl } from '@angular/forms';\n\nimport { TdDynamicFormsService, ITdDynamicElementConfig } from './services/dynamic-forms.service';\nimport { TdDynamicFormsErrorTemplateDirective } from './dynamic-element.component';\n\nimport { timer, Subject, Observable } from 'rxjs';\nimport { takeUntil, filter } from 'rxjs/operators';\n\n@Component({\n selector: 'td-dynamic-forms',\n templateUrl: './dynamic-forms.component.html',\n styleUrls: ['./dynamic-forms.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TdDynamicFormsComponent implements AfterContentInit, OnDestroy {\n private _renderedElements: ITdDynamicElementConfig[] = [];\n private _elements: ITdDynamicElementConfig[];\n private _templateMap: Map<string, TemplateRef<any>> = new Map<string, TemplateRef<any>>();\n private _destroy$: Subject<any> = new Subject();\n private _destroyControl$: Subject<string> = new Subject();\n\n @ContentChildren(TdDynamicFormsErrorTemplateDirective, { descendants: true })\n _errorTemplates: QueryList<TdDynamicFormsErrorTemplateDirective>;\n dynamicForm: FormGroup;\n\n /**\n * elements: ITdDynamicElementConfig[]\n * JS Object that will render the elements depending on its config.\n * [name] property is required.\n */\n @Input('elements')\n set elements(elements: ITdDynamicElementConfig[]) {\n if (elements) {\n this._elements = elements;\n } else {\n this._elements = [];\n }\n this._rerenderElements();\n }\n get elements(): ITdDynamicElementConfig[] {\n return this._renderedElements;\n }\n\n /**\n * Getter property for dynamic [FormGroup].\n */\n get form(): FormGroup {\n return this.dynamicForm;\n }\n\n /**\n * Getter property for [valid] of dynamic [FormGroup].\n */\n get valid(): boolean {\n if (this.dynamicForm) {\n return this.dynamicForm.valid;\n }\n return false;\n }\n\n /**\n * Getter property for [value] of dynamic [FormGroup].\n */\n get value(): any {\n if (this.dynamicForm) {\n return this.dynamicForm.value;\n }\n return {};\n }\n\n /**\n * Getter property for [errors] of dynamic [FormGroup].\n */\n get errors(): { [name: string]: any } {\n if (this.dynamicForm) {\n const errors: { [name: string]: any } = {};\n for (const name of Object.keys(this.dynamicForm.controls)) {\n errors[name] = this.dynamicForm.controls[name].errors;\n }\n return errors;\n }\n return {};\n }\n\n /**\n * Getter property for [controls] of dynamic [FormGroup].\n */\n get controls(): { [key: string]: AbstractControl } {\n if (this.dynamicForm) {\n return this.dynamicForm.controls;\n }\n return {};\n }\n\n constructor(\n private _formBuilder: FormBuilder,\n private _dynamicFormsService: TdDynamicFormsService,\n private _changeDetectorRef: ChangeDetectorRef,\n ) {\n this.dynamicForm = this._formBuilder.group({});\n }\n\n ngAfterContentInit(): void {\n this._updateErrorTemplates();\n }\n\n ngOnDestroy(): void {\n this._destroy$.next();\n this._destroy$.complete();\n this._destroyControl$.complete();\n }\n\n /**\n * Refreshes the form and rerenders all validator/element modifications.\n */\n refresh(): void {\n this._rerenderElements();\n this._updateErrorTemplates();\n }\n\n /**\n * Getter method for error template references\n */\n getErrorTemplateRef(name: string): TemplateRef<any> {\n return this._templateMap.get(name);\n }\n\n /**\n * Loads error templates and sets them in a map for faster access.\n */\n private _updateErrorTemplates(): void {\n this._templateMap = new Map<string, TemplateRef<any>>();\n for (const errorTemplate of this._errorTemplates.toArray()) {\n this._templateMap.set(errorTemplate.tdDynamicFormsError, errorTemplate.templateRef);\n }\n }\n\n private _rerenderElements(): void {\n this._clearRemovedElements();\n this._renderedElements = [];\n const duplicates: string[] = [];\n this._elements.forEach((elem: ITdDynamicElementConfig) => {\n this._dynamicFormsService.validateDynamicElementName(elem.name);\n if (duplicates.indexOf(elem.name) > -1) {\n throw new Error(`Dynamic element name: \"${elem.name}\" is duplicated`);\n }\n duplicates.push(elem.name);\n const dynamicElement: AbstractControl = this.dynamicForm.get(elem.name);\n if (!dynamicElement) {\n this.dynamicForm.addControl(elem.name, this._dynamicFormsService.createFormControl(elem));\n this._subscribeToControlStatusChanges(elem.name);\n } else {\n dynamicElement.setValue(elem.default);\n dynamicElement.markAsPristine();\n dynamicElement.markAsUntouched();\n if (elem.disabled) {\n dynamicElement.disable();\n } else {\n dynamicElement.enable();\n }\n dynamicElement.setValidators(this._dynamicFormsService.createValidators(elem));\n }\n // copy objects so they are only changes when calling this method\n this._renderedElements.push(Object.assign({}, elem));\n });\n // call a change detection since the whole form might change\n this._changeDetectorRef.detectChanges();\n timer()\n .toPromise()\n .then(() => {\n // call a markForCheck so elements are rendered correctly in OnPush\n this._changeDetectorRef.markForCheck();\n });\n }\n\n private _clearRemovedElements(): void {\n this._renderedElements = this._renderedElements.filter(\n (renderedElement: ITdDynamicElementConfig) =>\n !this._elements.some((element: ITdDynamicElementConfig) => element.name === renderedElement.name),\n );\n // remove elements that were removed from the array\n this._renderedElements.forEach((elem: ITdDynamicElementConfig) => {\n this._destroyControl$.next(elem.name);\n this.dynamicForm.removeControl(elem.name);\n });\n }\n\n // Updates component when manually adding errors to controls\n private _subscribeToControlStatusChanges(elementName: string): void {\n const control: AbstractControl = this.controls[elementName];\n\n const controlDestroyed$: Observable<any> = this._destroyControl$.pipe(\n filter((destroyedElementName: string) => destroyedElementName === elementName),\n );\n\n control.statusChanges.pipe(takeUntil(this._destroy$), takeUntil(controlDestroyed$)).subscribe(() => {\n this._changeDetectorRef.markForCheck();\n });\n }\n}\n","import { NgModule, Type } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatSliderModule } from '@angular/material/slider';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\n\nimport { CovalentCommonModule } from '@covalent/core/common';\nimport { CovalentFileModule } from '@covalent/core/file';\n\nimport { TdDynamicFormsComponent } from './dynamic-forms.component';\nimport {\n TdDynamicElementComponent,\n TdDynamicElementDirective,\n TdDynamicFormsErrorTemplateDirective,\n} from './dynamic-element.component';\nimport { DYNAMIC_FORMS_PROVIDER } from './services/dynamic-forms.service';\n\nimport { TdDynamicInputComponent } from './dynamic-elements/dynamic-input/dynamic-input.component';\nimport { TdDynamicFileInputComponent } from './dynamic-elements/dynamic-file-input/dynamic-file-input.component';\nimport { TdDynamicTextareaComponent } from './dynamic-elements/dynamic-textarea/dynamic-textarea.component';\nimport { TdDynamicSlideToggleComponent } from './dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component';\nimport { TdDynamicCheckboxComponent } from './dynamic-elements/dynamic-checkbox/dynamic-checkbox.component';\nimport { TdDynamicSliderComponent } from './dynamic-elements/dynamic-slider/dynamic-slider.component';\nimport { TdDynamicSelectComponent } from './dynamic-elements/dynamic-select/dynamic-select.component';\nimport { TdDynamicDatepickerComponent } from './dynamic-elements/dynamic-datepicker/dynamic-datepicker.component';\n\nconst TD_DYNAMIC_FORMS: Type<any>[] = [\n TdDynamicFormsComponent,\n TdDynamicElementComponent,\n TdDynamicElementDirective,\n TdDynamicFormsErrorTemplateDirective,\n];\n\nconst TD_DYNAMIC_FORMS_ENTRY_COMPONENTS: Type<any>[] = [\n TdDynamicInputComponent,\n TdDynamicFileInputComponent,\n TdDynamicTextareaComponent,\n TdDynamicSlideToggleComponent,\n TdDynamicCheckboxComponent,\n TdDynamicSliderComponent,\n TdDynamicSelectComponent,\n TdDynamicDatepickerComponent,\n];\n\n@NgModule({\n declarations: [TD_DYNAMIC_FORMS, TD_DYNAMIC_FORMS_ENTRY_COMPONENTS],\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatSelectModule,\n MatCheckboxModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatIconModule,\n MatButtonModule,\n MatDatepickerModule,\n CovalentCommonModule,\n CovalentFileModule,\n ],\n exports: [TD_DYNAMIC_FORMS, TD_DYNAMIC_FORMS_ENTRY_COMPONENTS],\n providers: [DYNAMIC_FORMS_PROVIDER],\n})\nexport class CovalentDynamicFormsModule {}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"__symbolic":"module","version":4,"metadata":{"CovalentDynamicFormsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":52,"character":1},"arguments":[{"declarations":[[{"__symbolic":"reference","name":"TdDynamicFormsComponent"},{"__symbolic":"reference","name":"TdDynamicElementComponent"},{"__symbolic":"reference","name":"TdDynamicElementDirective"},{"__symbolic":"reference","name":"TdDynamicFormsErrorTemplateDirective"}],[{"__symbolic":"reference","name":"TdDynamicInputComponent"},{"__symbolic":"reference","name":"TdDynamicFileInputComponent"},{"__symbolic":"reference","name":"TdDynamicTextareaComponent"},{"__symbolic":"reference","name":"TdDynamicSlideToggleComponent"},{"__symbolic":"reference","name":"TdDynamicCheckboxComponent"},{"__symbolic":"reference","name":"TdDynamicSliderComponent"},{"__symbolic":"reference","name":"TdDynamicSelectComponent"},{"__symbolic":"reference","name":"TdDynamicDatepickerComponent"}]],"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule","line":55,"character":4},{"__symbolic":"reference","module":"@angular/forms","name":"ReactiveFormsModule","line":56,"character":4},{"__symbolic":"reference","module":"@angular/material/form-field","name":"MatFormFieldModule","line":57,"character":4},{"__symbolic":"reference","module":"@angular/material/input","name":"MatInputModule","line":58,"character":4},{"__symbolic":"reference","module":"@angular/material/select","name":"MatSelectModule","line":59,"character":4},{"__symbolic":"reference","module":"@angular/material/checkbox","name":"MatCheckboxModule","line":60,"character":4},{"__symbolic":"reference","module":"@angular/material/slider","name":"MatSliderModule","line":61,"character":4},{"__symbolic":"reference","module":"@angular/material/slide-toggle","name":"MatSlideToggleModule","line":62,"character":4},{"__symbolic":"reference","module":"@angular/material/icon","name":"MatIconModule","line":63,"character":4},{"__symbolic":"reference","module":"@angular/material/button","name":"MatButtonModule","line":64,"character":4},{"__symbolic":"reference","module":"@angular/material/datepicker","name":"MatDatepickerModule","line":65,"character":4},{"__symbolic":"reference","module":"@covalent/core/common","name":"CovalentCommonModule","line":66,"character":4},{"__symbolic":"reference","module":"@covalent/core/file","name":"CovalentFileModule","line":67,"character":4}],"exports":[[{"__symbolic":"reference","name":"TdDynamicFormsComponent"},{"__symbolic":"reference","name":"TdDynamicElementComponent"},{"__symbolic":"reference","name":"TdDynamicElementDirective"},{"__symbolic":"reference","name":"TdDynamicFormsErrorTemplateDirective"}],[{"__symbolic":"reference","name":"TdDynamicInputComponent"},{"__symbolic":"reference","name":"TdDynamicFileInputComponent"},{"__symbolic":"reference","name":"TdDynamicTextareaComponent"},{"__symbolic":"reference","name":"TdDynamicSlideToggleComponent"},{"__symbolic":"reference","name":"TdDynamicCheckboxComponent"},{"__symbolic":"reference","name":"TdDynamicSliderComponent"},{"__symbolic":"reference","name":"TdDynamicSelectComponent"},{"__symbolic":"reference","name":"TdDynamicDatepickerComponent"}]],"providers":[{"__symbolic":"reference","name":"DYNAMIC_FORMS_PROVIDER"}]}]}],"members":{}},"TdDynamicFormsComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":19,"character":1},"arguments":[{"selector":"td-dynamic-forms","changeDetection":{"__symbolic":"select","expression":{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectionStrategy","line":23,"character":19},"member":"OnPush"},"template":"<form [formGroup]=\"dynamicForm\" novalidate>\n <div class=\"td-dynamic-form-wrapper\">\n <ng-template let-element ngFor [ngForOf]=\"elements\">\n <div\n class=\"td-dynamic-element-wrapper\"\n [style.max-width.%]=\"element.flex ? element.flex : 100\"\n [style.flex]=\"'1 1 ' + (element.flex ? element.flex : 100) + '%'\"\n [style.-ms-flex]=\"'1 1 ' + (element.flex ? element.flex : 100) + '%'\"\n [style.-webkit-box-flex]=\"1\"\n >\n <td-dynamic-element\n #dynamicElement\n *ngIf=\"dynamicForm.controls[element.name]\"\n [formControlName]=\"element.name\"\n [dynamicControl]=\"dynamicForm.controls[element.name]\"\n [id]=\"element.name\"\n [name]=\"element.name\"\n [label]=\"element.label || element.name\"\n [hint]=\"element.hint\"\n [type]=\"element.type\"\n [required]=\"element.required\"\n [min]=\"element.min\"\n [max]=\"element.max\"\n [minLength]=\"element.minLength\"\n [maxLength]=\"element.maxLength\"\n [selections]=\"element.selections\"\n [multiple]=\"element.multiple\"\n [customConfig]=\"element.customConfig\"\n [errorMessageTemplate]=\"getErrorTemplateRef(element.name)\"\n [placeholder]=\"element.placeholder\"\n ></td-dynamic-element>\n </div>\n </ng-template>\n </div>\n <ng-content></ng-content>\n</form>\n","styles":[".td-dynamic-form-wrapper{-ms-flex-align:center;-ms-flex-direction:row;-ms-flex-line-pack:center;-ms-flex-pack:start;-ms-flex-wrap:wrap;align-content:center;align-items:center;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;max-width:100%}.td-dynamic-form-wrapper ::ng-deep .mat-form-field-infix{width:auto}.td-dynamic-form-wrapper ::ng-deep .td-dynamic-element-hint{display:block;font-size:75%}.td-dynamic-form-wrapper .td-dynamic-element-wrapper{box-sizing:border-box;max-height:100%;padding:4px 4px 8px;position:relative}"]}]}],"members":{"_errorTemplates":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ContentChildren","line":32,"character":3},"arguments":[{"__symbolic":"reference","name":"TdDynamicFormsErrorTemplateDirective"},{"descendants":true}]}]}],"elements":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":41,"character":3},"arguments":["elements"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/forms","name":"FormBuilder","line":106,"character":26},{"__symbolic":"reference","name":"TdDynamicFormsService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":108,"character":32}]}],"ngAfterContentInit":[{"__symbolic":"method"}],"ngOnDestroy":[{"__symbolic":"method"}],"refresh":[{"__symbolic":"method"}],"getErrorTemplateRef":[{"__symbolic":"method"}],"_updateErrorTemplates":[{"__symbolic":"method"}],"_rerenderElements":[{"__symbolic":"method"}],"_clearRemovedElements":[{"__symbolic":"method"}],"_subscribeToControlStatusChanges":[{"__symbolic":"method"}]}},"TdDynamicElementBase":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":27,"character":41}]}]}},"_TdDynamicElementMixinBase":{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@covalent/core/common","name":"mixinControlValueAccessor","line":31,"character":42},"arguments":[{"__symbolic":"reference","name":"TdDynamicElementBase"}]},"TdDynamicFormsErrorTemplateDirective":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"@angular/cdk/portal","name":"TemplatePortalDirective","line":34,"character":58},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":33,"character":1},"arguments":[{"selector":"[tdDynamicFormsError]ng-template"}]}],"members":{"tdDynamicFormsError":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":35,"character":3}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"TemplateRef","module":"@angular/core","arguments":[{"__symbolic":"reference","name":"any"}]},{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":36,"character":70}]}]}},"TdDynamicElementDirective":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Directive","line":41,"character":1},"arguments":[{"selector":"[tdDynamicContainer]"}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ViewContainerRef","line":36,"character":70}]}]}},"TdDynamicElementComponent":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"_TdDynamicElementMixinBase"},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":48,"character":1},"arguments":[{"providers":[{"__symbolic":"reference","name":"TdDynamicFormsService"},{"provide":{"__symbolic":"reference","module":"@angular/forms","name":"NG_VALUE_ACCESSOR","line":52,"character":15},"useExisting":{"__symbolic":"reference","name":"TdDynamicElementComponent"},"multi":true}],"selector":"td-dynamic-element","template":"<div tdDynamicContainer></div>"}]}],"members":{"dynamicControl":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":69,"character":3}}]}],"label":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":74,"character":3}}]}],"hint":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":79,"character":3}}]}],"name":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":84,"character":3}}]}],"type":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":90,"character":3}}]}],"required":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":95,"character":3}}]}],"min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":100,"character":3}}]}],"max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":105,"character":3}}]}],"minLength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":110,"character":3}}]}],"maxLength":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":115,"character":3}}]}],"selections":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":120,"character":3}}]}],"multiple":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":125,"character":3}}]}],"customConfig":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":130,"character":3}}]}],"errorMessageTemplate":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":135,"character":3}}]}],"placeholder":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input","line":140,"character":3}}]}],"childElement":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"ViewChild","line":142,"character":3},"arguments":[{"__symbolic":"reference","name":"TdDynamicElementDirective"},{"static":true}]}]}],"maxAttr":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":144,"character":3},"arguments":["attr.max"]}]}],"minAttr":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"HostBinding","line":149,"character":3},"arguments":["attr.min"]}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ComponentFactoryResolver","line":155,"character":39},{"__symbolic":"reference","name":"TdDynamicFormsService"},{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":27,"character":41}]}],"ngOnInit":[{"__symbolic":"method"}],"ngOnChanges":[{"__symbolic":"method"}]}},"TdDynamicType":{"Text":"text","Boolean":"boolean","Number":"number","Array":"array","Date":"date"},"TdDynamicElement":{"Input":"input","Datepicker":"datepicker","Password":"password","Textarea":"textarea","Slider":"slider","SlideToggle":"slide-toggle","Checkbox":"checkbox","Select":"select","FileInput":"file-input"},"ITdDynamicElementValidator":{"__symbolic":"interface"},"ITdDynamicElementCustomConfig":{"__symbolic":"interface"},"ITdDynamicElementConfig":{"__symbolic":"interface"},"DYNAMIC_ELEMENT_NAME_REGEX":{"__symbolic":"error","message":"Expression form not supported","line":61,"character":50,"module":"./services/dynamic-forms.service"},"TdDynamicFormsService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":63,"character":1}}],"members":{"validateDynamicElementName":[{"__symbolic":"method"}],"getDynamicElement":[{"__symbolic":"method"}],"createFormControl":[{"__symbolic":"method"}],"createValidators":[{"__symbolic":"method"}]}},"DYNAMIC_FORMS_PROVIDER_FACTORY":{"__symbolic":"function","parameters":["parent"],"value":{"__symbolic":"binop","operator":"||","left":{"__symbolic":"reference","name":"parent"},"right":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"TdDynamicFormsService"}}}},"DYNAMIC_FORMS_PROVIDER":{"provide":{"__symbolic":"reference","name":"TdDynamicFormsService"},"deps":[[{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":153,"character":14}},{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":153,"character":30}},{"__symbolic":"reference","name":"TdDynamicFormsService"}]],"useFactory":{"__symbolic":"reference","name":"DYNAMIC_FORMS_PROVIDER_FACTORY"}},"TdDynamicTextareaComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"td-dynamic-textarea","template":"<div class=\"td-dynamic-textarea-wrapper\">\n <mat-form-field class=\"td-dynamic-textarea-field\">\n <mat-label>{{ label }}</mat-label>\n <textarea\n #elementInput\n matInput\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [attr.name]=\"name\"\n rows=\"4\"\n ></textarea>\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]=\"errorMessageTemplate\"\n [ngTemplateOutletContext]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n</div>\n","styles":[".td-dynamic-textarea-wrapper{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row}.td-dynamic-textarea-wrapper .td-dynamic-textarea-field{-ms-flex:1;box-sizing:border-box;flex:1}"]}]}],"members":{}},"TdDynamicSliderComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"td-dynamic-slider","template":"<div\n class=\"td-dynamic-slider-wrapper mat-form-field mat-form-field-can-float mat-form-field-should-float\"\n [class.mat-focused]=\"slider._isActive\"\n>\n <span class=\"mat-form-field-label-wrapper\">\n <label class=\"mat-form-field-label mat-primary td-slider-label\">\n {{ label }}\n <span *ngIf=\"required && !control?.disabled\" class=\"mat-form-field-required-marker\">*</span>\n </label>\n </span>\n <div class=\"td-dynamic-slider-field\">\n <mat-slider\n #slider\n class=\"td-dynamic-slider\"\n [formControl]=\"control\"\n [attr.name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n thumbLabel\n tickInterval=\"auto\"\n [required]=\"required\"\n (blur)=\"_handleBlur()\"\n ></mat-slider>\n </div>\n <span class=\"mat-hint td-dynamic-element-hint\">{{ hint }}</span>\n</div>\n","styles":[":host .td-dynamic-slider-wrapper{display:block}.td-dynamic-slider-field{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row;position:relative}.td-dynamic-slider-field .td-dynamic-slider{-ms-flex:1;flex:1}"]}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ChangeDetectorRef","line":23,"character":42}]}],"_handleBlur":[{"__symbolic":"method"}]}},"TdDynamicSlideToggleComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"td-dynamic-slide-toggle","template":"<div class=\"td-dynamic-slide-toggle-wrapper\">\n <mat-slide-toggle [formControl]=\"control\" [attr.name]=\"name\" [required]=\"required\">\n {{ label }}\n </mat-slide-toggle>\n <span class=\"mat-hint td-dynamic-element-hint\">{{ hint }}</span>\n</div>\n","styles":[""]}]}],"members":{}},"TdDynamicSelectComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"td-dynamic-select","template":"<div class=\"td-dynamic-select-wrapper\">\n <mat-form-field class=\"td-dynamic-select-field\">\n <mat-label>{{ label }}</mat-label>\n <mat-select\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [attr.name]=\"name\"\n [multiple]=\"multiple\"\n >\n <mat-option *ngFor=\"let selection of selections\" [value]=\"selection.value || selection\">\n {{ selection.label || selection }}\n </mat-option>\n </mat-select>\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]=\"errorMessageTemplate\"\n [ngTemplateOutletContext]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n</div>\n","styles":[".td-dynamic-select-wrapper{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row}.td-dynamic-select-wrapper .td-dynamic-select-field{-ms-flex:1;box-sizing:border-box;flex:1}"]}]}],"members":{}},"TdDynamicInputComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"td-dynamic-input","template":"<div class=\"td-dynamic-input-wrapper\">\n <mat-form-field class=\"td-dynamic-input-field\">\n <mat-label>{{ label }}</mat-label>\n <input\n #elementInput\n matInput\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [type]=\"type\"\n [required]=\"required\"\n [attr.name]=\"name\"\n [attr.min]=\"min\"\n [attr.max]=\"max\"\n [attr.minLength]=\"minLength\"\n [attr.maxLength]=\"maxLength\"\n />\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]=\"errorMessageTemplate\"\n [ngTemplateOutletContext]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n</div>\n","styles":[".td-dynamic-input-wrapper{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row}.td-dynamic-input-wrapper .td-dynamic-input-field{-ms-flex:1;box-sizing:border-box;flex:1}"]}]}],"members":{}},"TdDynamicFileInputComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"td-dynamic-file-input","template":"<div class=\"td-dynamic-file-input-wrapper\">\n <mat-form-field\n tdFileDrop\n class=\"td-dynamic-file-input-field\"\n floatLabel=\"never\"\n [disabled]=\"control?.disabled\"\n (fileDrop)=\"_handlefileDrop($event)\"\n (click)=\"!control?.disabled && fileInput.inputElement.click()\"\n (keyup.enter)=\"!control?.disabled && fileInput.inputElement.click()\"\n (keyup.delete)=\"fileInput.clear()\"\n (keyup.backspace)=\"fileInput.clear()\"\n >\n <mat-label>{{ label }}</mat-label>\n <input\n matInput\n [value]=\"control?.value?.name\"\n [placeholder]=\"placeholder\"\n [attr.name]=\"name\"\n [disabled]=\"control?.disabled\"\n readonly\n />\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]=\"errorMessageTemplate\"\n [ngTemplateOutletContext]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n </mat-form-field>\n <button mat-icon-button *ngIf=\"control.value\" (click)=\"fileInput.clear()\" (keyup.enter)=\"fileInput.clear()\">\n <mat-icon>cancel</mat-icon>\n </button>\n <td-file-input class=\"td-file-input\" #fileInput [formControl]=\"control\">\n <mat-icon>folder</mat-icon>\n <span>{{ label }}</span>\n </td-file-input>\n</div>\n","styles":[".td-dynamic-file-input-wrapper{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row}.td-dynamic-file-input-wrapper .td-dynamic-file-input-field{-ms-flex:1;box-sizing:border-box;flex:1}.td-file-input{margin-left:10px}"]}]}],"members":{"_handlefileDrop":[{"__symbolic":"method"}]}},"TdDynamicDatepickerComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"td-dynamic-datepicker","template":"<div class=\"td-dynamic-datepicker-wrapper\">\n <mat-form-field class=\"td-dynamic-datepicker-field\">\n <mat-label>{{ label }}</mat-label>\n <input\n #elementInput\n matInput\n [matDatepicker]=\"dynamicDatePicker\"\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [required]=\"required\"\n [name]=\"name\"\n [min]=\"min\"\n [max]=\"max\"\n />\n <mat-hint>{{ hint }}</mat-hint>\n <mat-error>\n <ng-template\n [ngTemplateOutlet]=\"errorMessageTemplate\"\n [ngTemplateOutletContext]=\"{ control: control, errors: control?.errors }\"\n ></ng-template>\n </mat-error>\n <mat-datepicker-toggle matSuffix [for]=\"dynamicDatePicker\"></mat-datepicker-toggle>\n <mat-datepicker #dynamicDatePicker></mat-datepicker>\n </mat-form-field>\n</div>\n","styles":[".td-dynamic-datepicker-wrapper{-ms-flex-direction:row;box-sizing:border-box;display:-ms-flexbox;display:flex;flex-direction:row}.td-dynamic-datepicker-wrapper .td-dynamic-datepicker-field{-ms-flex:1;box-sizing:border-box;flex:1}"]}]}],"members":{}},"TdDynamicCheckboxComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component","line":3,"character":1},"arguments":[{"selector":"td-dynamic-checkbox","template":"<div class=\"td-dynamic-checkbox-wrapper\">\n <mat-checkbox [formControl]=\"control\" [name]=\"name\" [required]=\"required\">\n {{ label }}\n </mat-checkbox>\n <span class=\"mat-hint td-dynamic-element-hint\">{{ hint }}</span>\n</div>\n","styles":[""]}]}],"members":{}}},"origins":{"CovalentDynamicFormsModule":"./dynamic-forms.module","TdDynamicFormsComponent":"./dynamic-forms.component","TdDynamicElementBase":"./dynamic-element.component","_TdDynamicElementMixinBase":"./dynamic-element.component","TdDynamicFormsErrorTemplateDirective":"./dynamic-element.component","TdDynamicElementDirective":"./dynamic-element.component","TdDynamicElementComponent":"./dynamic-element.component","TdDynamicType":"./services/dynamic-forms.service","TdDynamicElement":"./services/dynamic-forms.service","ITdDynamicElementValidator":"./services/dynamic-forms.service","ITdDynamicElementCustomConfig":"./services/dynamic-forms.service","ITdDynamicElementConfig":"./services/dynamic-forms.service","DYNAMIC_ELEMENT_NAME_REGEX":"./services/dynamic-forms.service","TdDynamicFormsService":"./services/dynamic-forms.service","DYNAMIC_FORMS_PROVIDER_FACTORY":"./services/dynamic-forms.service","DYNAMIC_FORMS_PROVIDER":"./services/dynamic-forms.service","TdDynamicTextareaComponent":"./dynamic-elements/dynamic-textarea/dynamic-textarea.component","TdDynamicSliderComponent":"./dynamic-elements/dynamic-slider/dynamic-slider.component","TdDynamicSlideToggleComponent":"./dynamic-elements/dynamic-slide-toggle/dynamic-slide-toggle.component","TdDynamicSelectComponent":"./dynamic-elements/dynamic-select/dynamic-select.component","TdDynamicInputComponent":"./dynamic-elements/dynamic-input/dynamic-input.component","TdDynamicFileInputComponent":"./dynamic-elements/dynamic-file-input/dynamic-file-input.component","TdDynamicDatepickerComponent":"./dynamic-elements/dynamic-datepicker/dynamic-datepicker.component","TdDynamicCheckboxComponent":"./dynamic-elements/dynamic-checkbox/dynamic-checkbox.component"},"importAs":"@covalent/dynamic-forms"}
|
|
File without changes
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
.td-dynamic-file-input-wrapper {
|
|
2
|
-
// [layout="row"]
|
|
3
|
-
flex-direction: row;
|
|
4
|
-
// [layout]
|
|
5
|
-
display: flex;
|
|
6
|
-
box-sizing: border-box;
|
|
7
|
-
.td-dynamic-file-input-field {
|
|
8
|
-
// [flex]
|
|
9
|
-
flex: 1;
|
|
10
|
-
box-sizing: border-box;
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
.td-file-input {
|
|
14
|
-
margin-left: 10px;
|
|
15
|
-
}
|
|
File without changes
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
:host {
|
|
2
|
-
.td-dynamic-slider-wrapper {
|
|
3
|
-
display: block;
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
.td-dynamic-slider-field {
|
|
7
|
-
position: relative;
|
|
8
|
-
// [layout="row"]
|
|
9
|
-
flex-direction: row;
|
|
10
|
-
// [layout]
|
|
11
|
-
display: flex;
|
|
12
|
-
box-sizing: border-box;
|
|
13
|
-
.td-dynamic-slider {
|
|
14
|
-
// [flex]
|
|
15
|
-
flex: 1;
|
|
16
|
-
}
|
|
17
|
-
}
|