@ajsf/material 0.2.0-beta.1 → 0.4.0-beta.1
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/LICENSE +21 -0
- package/ajsf-material.d.ts +4 -0
- package/ajsf-material.metadata.json +1 -0
- package/bundles/ajsf-material.umd.js +1431 -0
- package/bundles/ajsf-material.umd.js.map +1 -0
- package/bundles/ajsf-material.umd.min.js +16 -0
- package/bundles/ajsf-material.umd.min.js.map +1 -0
- package/esm2015/ajsf-material.js +5 -0
- package/esm2015/lib/angular-flex-monkey-patch.js +12 -0
- package/esm2015/lib/material-design-framework.component.js +101 -0
- package/esm2015/lib/material-design-framework.module.js +80 -0
- package/esm2015/lib/material-design.framework.js +54 -0
- package/esm2015/lib/widgets/flex-layout-root.component.js +55 -0
- package/esm2015/lib/widgets/flex-layout-section.component.js +221 -0
- package/esm2015/lib/widgets/material-add-reference.component.js +53 -0
- package/esm2015/lib/widgets/material-button-group.component.js +63 -0
- package/esm2015/lib/widgets/material-button.component.js +60 -0
- package/esm2015/lib/widgets/material-checkbox.component.js +109 -0
- package/esm2015/lib/widgets/material-checkboxes.component.js +101 -0
- package/esm2015/lib/widgets/material-chip-list.component.js +33 -0
- package/esm2015/lib/widgets/material-datepicker.component.js +101 -0
- package/esm2015/lib/widgets/material-file.component.js +33 -0
- package/esm2015/lib/widgets/material-input.component.js +95 -0
- package/esm2015/lib/widgets/material-number.component.js +97 -0
- package/esm2015/lib/widgets/material-one-of.component.js +33 -0
- package/esm2015/lib/widgets/material-radios.component.js +84 -0
- package/esm2015/lib/widgets/material-select.component.js +115 -0
- package/esm2015/lib/widgets/material-slider.component.js +60 -0
- package/esm2015/lib/widgets/material-stepper.component.js +33 -0
- package/esm2015/lib/widgets/material-tabs.component.js +69 -0
- package/esm2015/lib/widgets/material-textarea.component.js +88 -0
- package/esm2015/lib/widgets/public_api.js +52 -0
- package/esm2015/public_api.js +8 -0
- package/fesm2015/ajsf-material.js +1721 -0
- package/fesm2015/ajsf-material.js.map +1 -0
- package/lib/angular-flex-monkey-patch.d.ts +1 -0
- package/lib/material-design-framework.component.d.ts +25 -0
- package/lib/material-design-framework.module.d.ts +12 -0
- package/lib/material-design.framework.d.ts +41 -0
- package/lib/widgets/flex-layout-root.component.d.ts +12 -0
- package/lib/widgets/flex-layout-section.component.d.ts +22 -0
- package/lib/widgets/material-add-reference.component.d.ts +17 -0
- package/lib/widgets/material-button-group.component.d.ts +20 -0
- package/lib/widgets/material-button.component.d.ts +18 -0
- package/lib/widgets/material-checkbox.component.d.ts +22 -0
- package/lib/widgets/material-checkboxes.component.d.ts +24 -0
- package/lib/widgets/material-chip-list.component.d.ts +18 -0
- package/lib/widgets/material-datepicker.component.d.ts +22 -0
- package/lib/widgets/material-file.component.d.ts +18 -0
- package/lib/widgets/material-input.component.d.ts +20 -0
- package/lib/widgets/material-number.component.d.ts +23 -0
- package/lib/widgets/material-one-of.component.d.ts +18 -0
- package/lib/widgets/material-radios.component.d.ts +20 -0
- package/lib/widgets/material-select.component.d.ts +21 -0
- package/lib/widgets/material-slider.component.d.ts +22 -0
- package/lib/widgets/material-stepper.component.d.ts +18 -0
- package/lib/widgets/material-tabs.component.d.ts +17 -0
- package/lib/widgets/material-textarea.component.d.ts +19 -0
- package/{src/lib/widgets/public_api.ts → lib/widgets/public_api.d.ts} +1 -14
- package/package.json +25 -7
- package/{src/public_api.ts → public_api.d.ts} +0 -4
- package/karma.conf.js +0 -37
- package/ng-package.json +0 -16
- package/src/lib/angular-flex-monkey-patch.ts +0 -13
- package/src/lib/material-design-framework.component.html +0 -20
- package/src/lib/material-design-framework.component.scss +0 -51
- package/src/lib/material-design-framework.component.spec.ts +0 -37
- package/src/lib/material-design-framework.component.ts +0 -121
- package/src/lib/material-design-framework.module.ts +0 -84
- package/src/lib/material-design.framework.ts +0 -75
- package/src/lib/widgets/flex-layout-root.component.html +0 -11
- package/src/lib/widgets/flex-layout-root.component.ts +0 -52
- package/src/lib/widgets/flex-layout-section.component.ts +0 -216
- package/src/lib/widgets/material-add-reference.component.ts +0 -56
- package/src/lib/widgets/material-button-group.component.ts +0 -68
- package/src/lib/widgets/material-button.component.ts +0 -59
- package/src/lib/widgets/material-checkbox.component.ts +0 -112
- package/src/lib/widgets/material-checkboxes.component.ts +0 -109
- package/src/lib/widgets/material-chip-list.component.ts +0 -35
- package/src/lib/widgets/material-datepicker.component.ts +0 -105
- package/src/lib/widgets/material-file.component.ts +0 -35
- package/src/lib/widgets/material-input.component.ts +0 -99
- package/src/lib/widgets/material-number.component.ts +0 -97
- package/src/lib/widgets/material-one-of.component.ts +0 -35
- package/src/lib/widgets/material-radios.component.ts +0 -89
- package/src/lib/widgets/material-select.component.ts +0 -120
- package/src/lib/widgets/material-slider.component.ts +0 -61
- package/src/lib/widgets/material-stepper.component.ts +0 -35
- package/src/lib/widgets/material-tabs.component.ts +0 -69
- package/src/lib/widgets/material-textarea.component.ts +0 -90
- package/src/test.ts +0 -21
- package/tsconfig.lib.json +0 -25
- package/tsconfig.lib.prod.json +0 -6
- package/tsconfig.spec.json +0 -17
- package/tslint.json +0 -11
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ajsf-material.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/ajsf-material/src/lib/widgets/flex-layout-root.component.ts","../../../../projects/ajsf-material/src/lib/widgets/flex-layout-section.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-add-reference.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-button.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-button-group.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-checkbox.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-checkboxes.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-chip-list.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-datepicker.component.ts","../../../../projects/ajsf-material/src/lib/material-design-framework.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-file.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-input.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-number.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-one-of.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-radios.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-select.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-slider.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-stepper.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-tabs.component.ts","../../../../projects/ajsf-material/src/lib/widgets/material-textarea.component.ts","../../../../projects/ajsf-material/src/lib/widgets/public_api.ts","../../../../projects/ajsf-material/src/lib/material-design.framework.ts","../../../../projects/ajsf-material/src/lib/angular-flex-monkey-patch.ts","../../../../projects/ajsf-material/src/lib/material-design-framework.module.ts","../../../../projects/ajsf-material/src/public_api.ts","../../../../projects/ajsf-material/src/ajsf-material.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 if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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\n/** @deprecated */\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\n/** @deprecated */\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 __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\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 { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'flex-layout-root-widget',\n template: `\n <div *ngFor=\"let layoutNode of layout; let i = index\"\n [class.form-flex-item]=\"isFlexItem\"\n [style.flex-grow]=\"getFlexAttribute(layoutNode, 'flex-grow')\"\n [style.flex-shrink]=\"getFlexAttribute(layoutNode, 'flex-shrink')\"\n [style.flex-basis]=\"getFlexAttribute(layoutNode, 'flex-basis')\"\n [style.align-self]=\"(layoutNode?.options || {})['align-self']\"\n [style.order]=\"layoutNode?.options?.order\"\n [fxFlex]=\"layoutNode?.options?.fxFlex\"\n [fxFlexOrder]=\"layoutNode?.options?.fxFlexOrder\"\n [fxFlexOffset]=\"layoutNode?.options?.fxFlexOffset\"\n [fxFlexAlign]=\"layoutNode?.options?.fxFlexAlign\">\n <select-framework-widget *ngIf=\"showWidget(layoutNode)\"\n [dataIndex]=\"layoutNode?.arrayItem ? (dataIndex || []).concat(i) : (dataIndex || [])\"\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\n [layoutNode]=\"layoutNode\"></select-framework-widget>\n <div>`,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class FlexLayoutRootComponent {\n @Input() dataIndex: number[];\n @Input() layoutIndex: number[];\n @Input() layout: any[];\n @Input() isFlexItem = false;\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n removeItem(item) {\n this.jsf.removeItem(item);\n }\n\n // Set attributes for flexbox child\n // (container attributes are set in flex-layout-section.component)\n getFlexAttribute(node: any, attribute: string) {\n const index = ['flex-grow', 'flex-shrink', 'flex-basis'].indexOf(attribute);\n return ((node.options || {}).flex || '').split(/\\s+/)[index] ||\n (node.options || {})[attribute] || ['1', '1', 'auto'][index];\n }\n\n showWidget(layoutNode: any): boolean {\n return this.jsf.evaluateCondition(layoutNode, this.dataIndex);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'flex-layout-section-widget',\n template: `\n <div *ngIf=\"containerType === 'div'\"\n [class]=\"options?.htmlClass || ''\"\n [class.expandable]=\"options?.expandable && !expanded\"\n [class.expanded]=\"options?.expandable && expanded\">\n <label *ngIf=\"sectionTitle\"\n [class]=\"'legend ' + (options?.labelHtmlClass || '')\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></label>\n <flex-layout-root-widget *ngIf=\"expanded\"\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [fxLayout]=\"getFlexAttribute('layout')\"\n [fxLayoutGap]=\"options?.fxLayoutGap\"\n [fxLayoutAlign]=\"options?.fxLayoutAlign\"\n [attr.fxFlexFill]=\"options?.fxLayoutAlign\"></flex-layout-root-widget>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>\n </div>\n\n <fieldset *ngIf=\"containerType === 'fieldset'\"\n [class]=\"options?.htmlClass || ''\"\n [class.expandable]=\"options?.expandable && !expanded\"\n [class.expanded]=\"options?.expandable && expanded\"\n [disabled]=\"options?.readonly\">\n <legend *ngIf=\"sectionTitle\"\n [class]=\"'legend ' + (options?.labelHtmlClass || '')\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></legend>\n <flex-layout-root-widget *ngIf=\"expanded\"\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [fxLayout]=\"getFlexAttribute('layout')\"\n [fxLayoutGap]=\"options?.fxLayoutGap\"\n [fxLayoutAlign]=\"options?.fxLayoutAlign\"\n [attr.fxFlexFill]=\"options?.fxLayoutAlign\"></flex-layout-root-widget>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>\n </fieldset>\n\n <mat-card *ngIf=\"containerType === 'card'\"\n [ngClass]=\"options?.htmlClass || ''\"\n [class.expandable]=\"options?.expandable && !expanded\"\n [class.expanded]=\"options?.expandable && expanded\">\n <mat-card-header *ngIf=\"sectionTitle\">\n <legend\n [class]=\"'legend ' + (options?.labelHtmlClass || '')\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></legend>\n </mat-card-header>\n <mat-card-content *ngIf=\"expanded\">\n <fieldset [disabled]=\"options?.readonly\">\n <flex-layout-root-widget *ngIf=\"expanded\"\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [fxLayout]=\"getFlexAttribute('layout')\"\n [fxLayoutGap]=\"options?.fxLayoutGap\"\n [fxLayoutAlign]=\"options?.fxLayoutAlign\"\n [attr.fxFlexFill]=\"options?.fxLayoutAlign\"></flex-layout-root-widget>\n </fieldset>\n </mat-card-content>\n <mat-card-footer>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>\n </mat-card-footer>\n </mat-card>\n\n <mat-expansion-panel *ngIf=\"containerType === 'expansion-panel'\"\n [expanded]=\"expanded\"\n [hideToggle]=\"!options?.expandable\">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <legend *ngIf=\"sectionTitle\"\n [class]=\"options?.labelHtmlClass\"\n [innerHTML]=\"sectionTitle\"\n (click)=\"toggleExpanded()\"></legend>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <fieldset [disabled]=\"options?.readonly\">\n <flex-layout-root-widget *ngIf=\"expanded\"\n [layout]=\"layoutNode.items\"\n [dataIndex]=\"dataIndex\"\n [layoutIndex]=\"layoutIndex\"\n [isFlexItem]=\"getFlexAttribute('is-flex')\"\n [class.form-flex-column]=\"getFlexAttribute('flex-direction') === 'column'\"\n [class.form-flex-row]=\"getFlexAttribute('flex-direction') === 'row'\"\n [style.display]=\"getFlexAttribute('display')\"\n [style.flex-direction]=\"getFlexAttribute('flex-direction')\"\n [style.flex-wrap]=\"getFlexAttribute('flex-wrap')\"\n [style.justify-content]=\"getFlexAttribute('justify-content')\"\n [style.align-items]=\"getFlexAttribute('align-items')\"\n [style.align-content]=\"getFlexAttribute('align-content')\"\n [fxLayout]=\"getFlexAttribute('layout')\"\n [fxLayoutGap]=\"options?.fxLayoutGap\"\n [fxLayoutAlign]=\"options?.fxLayoutAlign\"\n [attr.fxFlexFill]=\"options?.fxLayoutAlign\"></flex-layout-root-widget>\n </fieldset>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>\n </mat-expansion-panel>`,\n styles: [`\n fieldset { border: 0; margin: 0; padding: 0; }\n .legend { font-weight: bold; }\n .expandable > .legend:before { content: '▶'; padding-right: .3em; }\n .expanded > .legend:before { content: '▼'; padding-right: .2em; }\n `],\n})\nexport class FlexLayoutSectionComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n expanded = true;\n containerType = 'div';\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n get sectionTitle() {\n return this.options.notitle ? null : this.jsf.setItemTitle(this);\n }\n\n ngOnInit() {\n this.jsf.initializeControl(this);\n this.options = this.layoutNode.options || {};\n this.expanded = typeof this.options.expanded === 'boolean' ?\n this.options.expanded : !this.options.expandable;\n switch (this.layoutNode.type) {\n case 'section': case 'array': case 'fieldset': case 'advancedfieldset':\n case 'authfieldset': case 'optionfieldset': case 'selectfieldset':\n this.containerType = 'fieldset';\n break;\n case 'card':\n this.containerType = 'card';\n break;\n case 'expansion-panel':\n this.containerType = 'expansion-panel';\n break;\n default: // 'div', 'flex', 'tab', 'conditional', 'actions'\n this.containerType = 'div';\n }\n }\n\n toggleExpanded() {\n if (this.options.expandable) { this.expanded = !this.expanded; }\n }\n\n // Set attributes for flexbox container\n // (child attributes are set in flex-layout-root.component)\n getFlexAttribute(attribute: string) {\n const flexActive: boolean =\n this.layoutNode.type === 'flex' ||\n !!this.options.displayFlex ||\n this.options.display === 'flex';\n // if (attribute !== 'flex' && !flexActive) { return null; }\n switch (attribute) {\n case 'is-flex':\n return flexActive;\n case 'display':\n return flexActive ? 'flex' : 'initial';\n case 'flex-direction': case 'flex-wrap':\n const index = ['flex-direction', 'flex-wrap'].indexOf(attribute);\n return (this.options['flex-flow'] || '').split(/\\s+/)[index] ||\n this.options[attribute] || ['column', 'nowrap'][index];\n case 'justify-content': case 'align-items': case 'align-content':\n return this.options[attribute];\n case 'layout':\n return (this.options.fxLayout || 'row') +\n this.options.fxLayoutWrap ? ' ' + this.options.fxLayoutWrap : '';\n\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-add-reference-widget',\n template: `\n <section [class]=\"options?.htmlClass || ''\" align=\"end\">\n <button mat-raised-button *ngIf=\"showAddButton\"\n [color]=\"options?.color || 'accent'\"\n [disabled]=\"options?.readonly\"\n (click)=\"addItem($event)\">\n <span *ngIf=\"options?.icon\" [class]=\"options?.icon\"></span>\n <span *ngIf=\"options?.title\" [innerHTML]=\"buttonText\"></span>\n </button>\n </section>`,\n changeDetection: ChangeDetectionStrategy.Default,\n})\nexport class MaterialAddReferenceComponent implements OnInit {\n options: any;\n itemCount: number;\n previousLayoutIndex: number[];\n previousDataIndex: number[];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n }\n\n get showAddButton(): boolean {\n return !this.layoutNode.arrayItem ||\n this.layoutIndex[this.layoutIndex.length - 1] < this.options.maxItems;\n }\n\n addItem(event) {\n event.preventDefault();\n this.jsf.addItem(this);\n }\n\n get buttonText(): string {\n const parent: any = {\n dataIndex: this.dataIndex.slice(0, -1),\n layoutIndex: this.layoutIndex.slice(0, -1),\n layoutNode: this.jsf.getParentNode(this),\n };\n return parent.layoutNode.add ||\n this.jsf.setArrayItemTitle(parent, this.layoutNode, this.itemCount);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService, hasOwn } from '@ajsf/core';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-button-widget',\n template: `\n <div class=\"button-row\" [class]=\"options?.htmlClass || ''\">\n <button mat-raised-button\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [type]=\"layoutNode?.type\"\n [value]=\"controlValue\"\n (click)=\"updateValue($event)\">\n <mat-icon *ngIf=\"options?.icon\" class=\"mat-24\">{{options?.icon}}</mat-icon>\n <span *ngIf=\"options?.title\" [innerHTML]=\"options?.title\"></span>\n </button>\n </div>`,\n styles: [` button { margin-top: 10px; } `],\n})\nexport class MaterialButtonComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (hasOwn(this.options, 'disabled')) {\n this.controlDisabled = this.options.disabled;\n } else if (this.jsf.formOptions.disableInvalidSubmit) {\n this.controlDisabled = !this.jsf.isValid;\n this.jsf.isValidChanges.subscribe(isValid => this.controlDisabled = !isValid);\n }\n }\n\n updateValue(event) {\n if (typeof this.options.onClick === 'function') {\n this.options.onClick(event);\n } else {\n this.jsf.updateValue(this, event.target.value);\n }\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService, buildTitleMap } from '@ajsf/core';\n\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-button-group-widget',\n template: `\n <div>\n <div *ngIf=\"options?.title\">\n <label\n [attr.for]=\"'control' + layoutNode?._id\"\n [class]=\"options?.labelHtmlClass || ''\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"options?.title\"></label>\n </div>\n <mat-button-toggle-group\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [name]=\"controlName\"\n [value]=\"controlValue\"\n [vertical]=\"!!options.vertical\">\n <mat-button-toggle *ngFor=\"let radioItem of radiosList\"\n [id]=\"'control' + layoutNode?._id + '/' + radioItem?.name\"\n [value]=\"radioItem?.value\"\n (click)=\"updateValue(radioItem?.value)\">\n <span [innerHTML]=\"radioItem?.name\"></span>\n </mat-button-toggle>\n </mat-button-toggle-group>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>\n </div>`,\n styles: [` mat-error { font-size: 75%; } `],\n})\nexport class MaterialButtonGroupComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n radiosList: any[] = [];\n vertical = false;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.radiosList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, true\n );\n this.jsf.initializeControl(this);\n }\n\n updateValue(value) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, value);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-checkbox-widget',\n template: `\n <mat-checkbox *ngIf=\"boundControl && !showSlideToggle\"\n [formControl]=\"formControl\"\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [id]=\"'control' + layoutNode?._id\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n (blur)=\"options.showErrors = true\">\n <span *ngIf=\"options?.title\"\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"options?.title\"></span>\n </mat-checkbox>\n <mat-checkbox *ngIf=\"!boundControl && !showSlideToggle\"\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + layoutNode?._id\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n [checked]=\"isChecked\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue($event)\">\n <span *ngIf=\"options?.title\"\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"options?.title\"></span>\n </mat-checkbox>\n <mat-slide-toggle *ngIf=\"boundControl && showSlideToggle\"\n [formControl]=\"formControl\"\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [id]=\"'control' + layoutNode?._id\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n (blur)=\"options.showErrors = true\">\n <span *ngIf=\"options?.title\"\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"options?.title\"></span>\n </mat-slide-toggle>\n <mat-slide-toggle *ngIf=\"!boundControl && showSlideToggle\"\n align=\"left\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + layoutNode?._id\"\n labelPosition=\"after\"\n [name]=\"controlName\"\n [checked]=\"isChecked\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue($event)\">\n <span *ngIf=\"options?.title\"\n class=\"checkbox-name\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"options?.title\"></span>\n </mat-slide-toggle>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>`,\n styles: [`\n .checkbox-name { white-space: nowrap; }\n mat-error { font-size: 75%; }\n `],\n})\nexport class MaterialCheckboxComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n trueValue: any = true;\n falseValue: any = false;\n showSlideToggle = false;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this, !this.options.readonly);\n if (this.controlValue === null || this.controlValue === undefined) {\n this.controlValue = false;\n this.jsf.updateValue(this, this.falseValue);\n }\n if (this.layoutNode.type === 'slide-toggle' ||\n this.layoutNode.format === 'slide-toggle'\n ) {\n this.showSlideToggle = true;\n }\n }\n\n updateValue(event) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, event.checked ? this.trueValue : this.falseValue);\n }\n\n get isChecked() {\n return this.jsf.getFormControlValue(this) === this.trueValue;\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { buildTitleMap } from '@ajsf/core';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService, TitleMapItem } from '@ajsf/core';\n\n// TODO: Change this to use a Selection List instead?\n// https://material.angular.io/components/list/overview\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-checkboxes-widget',\n template: `\n <div>\n <mat-checkbox type=\"checkbox\"\n [checked]=\"allChecked\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [indeterminate]=\"someChecked\"\n [name]=\"options?.name\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateAllValues($event)\">\n <span class=\"checkbox-name\" [innerHTML]=\"options?.name\"></span>\n </mat-checkbox>\n <label *ngIf=\"options?.title\"\n class=\"title\"\n [class]=\"options?.labelHtmlClass || ''\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"options?.title\"></label>\n <ul class=\"checkbox-list\" [class.horizontal-list]=\"horizontalList\">\n <li *ngFor=\"let checkboxItem of checkboxList\"\n [class]=\"options?.htmlClass || ''\">\n <mat-checkbox type=\"checkbox\"\n [(ngModel)]=\"checkboxItem.checked\"\n [color]=\"options?.color || 'primary'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [name]=\"checkboxItem?.name\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue()\">\n <span class=\"checkbox-name\" [innerHTML]=\"checkboxItem?.name\"></span>\n </mat-checkbox>\n </li>\n </ul>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>\n </div>`,\n styles: [`\n .title { font-weight: bold; }\n .checkbox-list { list-style-type: none; }\n .horizontal-list > li { display: inline-block; margin-right: 10px; zoom: 1; }\n .checkbox-name { white-space: nowrap; }\n mat-error { font-size: 75%; }\n `],\n})\nexport class MaterialCheckboxesComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n horizontalList = false;\n formArray: AbstractControl;\n checkboxList: TitleMapItem[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.horizontalList = this.layoutNode.type === 'checkboxes-inline' ||\n this.layoutNode.type === 'checkboxbuttons';\n this.jsf.initializeControl(this);\n this.checkboxList = buildTitleMap(\n this.options.titleMap || this.options.enumNames, this.options.enum, true\n );\n if (this.boundControl) {\n const formArray = this.jsf.getFormControl(this);\n for (const checkboxItem of this.checkboxList) {\n checkboxItem.checked = formArray.value.includes(checkboxItem.value);\n }\n }\n }\n\n get allChecked(): boolean {\n return this.checkboxList.filter(t => t.checked).length === this.checkboxList.length;\n }\n\n get someChecked(): boolean {\n const checkedItems = this.checkboxList.filter(t => t.checked).length;\n return checkedItems > 0 && checkedItems < this.checkboxList.length;\n }\n\n updateValue() {\n this.options.showErrors = true;\n if (this.boundControl) {\n this.jsf.updateArrayCheckboxList(this, this.checkboxList);\n }\n }\n\n updateAllValues(event: any) {\n this.options.showErrors = true;\n this.checkboxList.forEach(t => t.checked = event.checked);\n this.updateValue();\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n// TODO: Add this control\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-chip-list-widget',\n template: ``,\n})\nexport class MaterialChipListComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import { Component, Inject, Input, OnInit, Optional } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService, dateToString } from '@ajsf/core';\nimport { MatDatepickerInputEvent } from '@angular/material/datepicker';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-datepicker-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'standard'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? 'never' : 'auto')\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n <mat-label *ngIf=\"!options?.notitle\">{{options?.title}}</mat-label>\n <span matPrefix *ngIf=\"options?.prefix || options?.fieldAddonLeft\"\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n <input matInput *ngIf=\"boundControl\"\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [id]=\"'control' + layoutNode?._id\"\n [max]=\"options?.maximum\"\n [matDatepicker]=\"picker\"\n [min]=\"options?.minimum\"\n [name]=\"controlName\"\n [placeholder]=\"options?.title\"\n [readonly]=\"options?.readonly\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\"\n (dateChange)=\"updateValue($event)\"\n (dateInput)=\"updateValue($event)\">\n <input matInput *ngIf=\"!boundControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + layoutNode?._id\"\n [max]=\"options?.maximum\"\n [matDatepicker]=\"picker\"\n [min]=\"options?.minimum\"\n [name]=\"controlName\"\n [placeholder]=\"options?.title\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n [readonly]=\"options?.readonly\"\n (blur)=\"options.showErrors = true\"\n (dateChange)=\"updateValue($event)\"\n (dateInput)=\"updateValue($event)\">\n <span matSuffix *ngIf=\"options?.suffix || options?.fieldAddonRight\"\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n <mat-hint *ngIf=\"options?.description && (!options?.showErrors || !options?.errorMessage)\"\n align=\"end\" [innerHTML]=\"options?.description\"></mat-hint>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n </mat-form-field>\n <mat-datepicker #picker ></mat-datepicker>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n})\nexport class MaterialDatepickerComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: string;\n dateValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n autoCompleteList: string[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this, !this.options.readonly);\n if (this.controlValue) {\n this.formControl.setValue(dateToString(this.controlValue, this.options));\n }\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event: MatDatepickerInputEvent<Date>) {\n this.options.showErrors = true;\n if (event.value) {\n this.formControl.setValue(dateToString(event.value, this.options));\n }\n }\n}\n","import {ChangeDetectorRef, Component, Input, OnChanges, OnInit} from '@angular/core';\nimport {isDefined, JsonSchemaFormService} from '@ajsf/core';\nimport cloneDeep from 'lodash/cloneDeep';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-design-framework',\n templateUrl: './material-design-framework.component.html',\n styleUrls: ['./material-design-framework.component.scss'],\n})\nexport class MaterialDesignFrameworkComponent implements OnInit, OnChanges {\n frameworkInitialized = false;\n inputType: string;\n options: any; // Options used in this framework\n widgetLayoutNode: any; // layoutNode passed to child widget\n widgetOptions: any; // Options passed to child widget\n formControl: any = null;\n parentArray: any = null;\n isOrderable = false;\n dynamicTitle: string = null;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private changeDetector: ChangeDetectorRef,\n private jsf: JsonSchemaFormService\n ) {\n }\n\n get showRemoveButton(): boolean {\n if (!this.layoutNode || !this.widgetOptions.removable ||\n this.widgetOptions.readonly || this.layoutNode.type === '$ref'\n ) {\n return false;\n }\n if (this.layoutNode.recursiveReference) {\n return true;\n }\n if (!this.layoutNode.arrayItem || !this.parentArray) {\n return false;\n }\n // If array length <= minItems, don't allow removing any items\n return this.parentArray.items.length - 1 <= this.parentArray.options.minItems ? false :\n // For removable list items, allow removing any item\n this.layoutNode.arrayItemType === 'list' ? true :\n // For removable tuple items, only allow removing last item in list\n this.layoutIndex[this.layoutIndex.length - 1] === this.parentArray.items.length - 2;\n }\n\n ngOnInit() {\n this.initializeFramework();\n }\n\n ngOnChanges() {\n if (!this.frameworkInitialized) {\n this.initializeFramework();\n }\n if (this.dynamicTitle) {\n this.updateTitle();\n }\n }\n\n initializeFramework() {\n if (this.layoutNode) {\n this.options = cloneDeep(this.layoutNode.options || {});\n this.widgetLayoutNode = {\n ...this.layoutNode,\n options: cloneDeep(this.layoutNode.options || {})\n };\n this.widgetOptions = this.widgetLayoutNode.options;\n this.formControl = this.jsf.getFormControl(this);\n\n if (\n isDefined(this.widgetOptions.minimum) &&\n isDefined(this.widgetOptions.maximum) &&\n this.widgetOptions.multipleOf >= 1\n ) {\n this.layoutNode.type = 'range';\n }\n\n if (\n !['$ref', 'advancedfieldset', 'authfieldset', 'button', 'card',\n 'checkbox', 'expansion-panel', 'help', 'message', 'msg', 'section',\n 'submit', 'tabarray', 'tabs'].includes(this.layoutNode.type) &&\n /{{.+?}}/.test(this.widgetOptions.title || '')\n ) {\n this.dynamicTitle = this.widgetOptions.title;\n this.updateTitle();\n }\n\n if (this.layoutNode.arrayItem && this.layoutNode.type !== '$ref') {\n this.parentArray = this.jsf.getParentNode(this);\n if (this.parentArray) {\n this.isOrderable =\n this.parentArray.type.slice(0, 3) !== 'tab' &&\n this.layoutNode.arrayItemType === 'list' &&\n !this.widgetOptions.readonly &&\n this.parentArray.options.orderable;\n }\n }\n\n this.frameworkInitialized = true;\n } else {\n this.options = {};\n }\n }\n\n updateTitle() {\n this.widgetLayoutNode.options.title = this.jsf.parseText(\n this.dynamicTitle,\n this.jsf.getFormControlValue(this),\n this.jsf.getFormControlGroup(this).value,\n this.dataIndex[this.dataIndex.length - 1]\n );\n }\n\n removeItem() {\n this.jsf.removeItem(this);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n// TODO: Add this control\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-file-widget',\n template: ``,\n})\nexport class MaterialFileComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport {Component, Inject, Input, OnInit, Optional} from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-input-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'standard'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? 'never' : 'auto')\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n <mat-label *ngIf=\"!options?.notitle\">{{options?.title}}</mat-label>\n <span matPrefix *ngIf=\"options?.prefix || options?.fieldAddonLeft\"\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n <input matInput *ngIf=\"boundControl\"\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n [type]=\"layoutNode?.type\"\n (blur)=\"options.showErrors = true\">\n <input matInput *ngIf=\"!boundControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n [type]=\"layoutNode?.type\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n (blur)=\"options.showErrors = true\">\n <span matSuffix *ngIf=\"options?.suffix || options?.fieldAddonRight\"\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n <mat-hint *ngIf=\"options?.description && (!options?.showErrors || !options?.errorMessage)\"\n align=\"end\" [innerHTML]=\"options?.description\"></mat-hint>\n <mat-autocomplete *ngIf=\"options?.typeahead?.source\">\n <mat-option *ngFor=\"let word of options?.typeahead?.source\"\n [value]=\"word\">{{word}}</mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n})\nexport class MaterialInputComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: string;\n controlDisabled = false;\n boundControl = false;\n options: any;\n autoCompleteList: string[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private jsf: JsonSchemaFormService\n ) {\n }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import {Component, Inject, Input, OnInit, Optional} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-number-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'standard'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? 'never' : 'auto')\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n <mat-label *ngIf=\"!options?.notitle\">{{options?.title}}</mat-label>\n <span matPrefix *ngIf=\"options?.prefix || options?.fieldAddonLeft\"\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n <input matInput *ngIf=\"boundControl\"\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.max]=\"options?.maximum\"\n [attr.min]=\"options?.minimum\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n [type]=\"'number'\"\n (blur)=\"options.showErrors = true\">\n <input matInput *ngIf=\"!boundControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.max]=\"options?.maximum\"\n [attr.min]=\"options?.minimum\"\n [attr.step]=\"options?.multipleOf || options?.step || 'any'\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n [type]=\"'number'\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n (blur)=\"options.showErrors = true\">\n <span matSuffix *ngIf=\"options?.suffix || options?.fieldAddonRight\"\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n <mat-hint *ngIf=\"layoutNode?.type === 'range'\" align=\"start\"\n [innerHTML]=\"controlValue\"></mat-hint>\n <mat-hint *ngIf=\"options?.description && (!options?.showErrors || !options?.errorMessage)\"\n align=\"end\" [innerHTML]=\"options?.description\"></mat-hint>\n </mat-form-field>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n})\nexport class MaterialNumberComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n allowNegative = true;\n allowDecimal = true;\n allowExponents = false;\n lastValidNumber = '';\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (this.layoutNode.dataType === 'integer') { this.allowDecimal = false; }\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n// TODO: Add this control\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-one-of-widget',\n template: ``,\n})\nexport class MaterialOneOfComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService, buildTitleMap } from '@ajsf/core';\n\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-radios-widget',\n template: `\n <div>\n <div *ngIf=\"options?.title\">\n <label\n [attr.for]=\"'control' + layoutNode?._id\"\n [class]=\"options?.labelHtmlClass || ''\"\n [style.display]=\"options?.notitle ? 'none' : ''\"\n [innerHTML]=\"options?.title\"></label>\n </div>\n <mat-radio-group *ngIf=\"boundControl\"\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [style.flex-direction]=\"flexDirection\"\n [name]=\"controlName\"\n (blur)=\"options.showErrors = true\">\n <mat-radio-button *ngFor=\"let radioItem of radiosList\"\n [id]=\"'control' + layoutNode?._id + '/' + radioItem?.name\"\n [value]=\"radioItem?.value\">\n <span [innerHTML]=\"radioItem?.name\"></span>\n </mat-radio-button>\n </mat-radio-group>\n <mat-radio-group *ngIf=\"!boundControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [style.flex-direction]=\"flexDirection\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [name]=\"controlName\"\n [value]=\"controlValue\">\n <mat-radio-button *ngFor=\"let radioItem of radiosList\"\n [id]=\"'control' + layoutNode?._id + '/' + radioItem?.name\"\n [value]=\"radioItem?.value\"\n (click)=\"updateValue(radioItem?.value)\">\n <span [innerHTML]=\"radioItem?.name\"></span>\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>\n </div>`,\n styles: [`\n mat-radio-group { display: inline-flex; }\n mat-radio-button { margin: 2px; }\n mat-error { font-size: 75%; }\n `]\n})\nexport class MaterialRadiosComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n flexDirection = 'column';\n radiosList: any[] = [];\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n if (this.layoutNode.type === 'radios-inline') {\n this.flexDirection = 'row';\n }\n this.radiosList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, true\n );\n this.jsf.initializeControl(this, !this.options.readonly);\n }\n\n updateValue(value) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport {Component, Inject, Input, OnInit, Optional} from '@angular/core';\nimport { JsonSchemaFormService, buildTitleMap, isArray } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-select-widget',\n template: `\n <mat-form-field\n [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'standard'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? 'never' : 'auto')\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n <mat-label *ngIf=\"!options?.notitle\">{{options?.title}}</mat-label>\n <span matPrefix *ngIf=\"options?.prefix || options?.fieldAddonLeft\"\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n <mat-select *ngIf=\"boundControl\"\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.name]=\"controlName\"\n [id]=\"'control' + layoutNode?._id\"\n [multiple]=\"options?.multiple\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\">\n <ng-template ngFor let-selectItem [ngForOf]=\"selectList\">\n <mat-option *ngIf=\"!isArray(selectItem?.items)\"\n [value]=\"selectItem?.value\">\n <span [innerHTML]=\"selectItem?.name\"></span>\n </mat-option>\n <mat-optgroup *ngIf=\"isArray(selectItem?.items)\"\n [label]=\"selectItem?.group\">\n <mat-option *ngFor=\"let subItem of selectItem.items\"\n [value]=\"subItem?.value\">\n <span [innerHTML]=\"subItem?.name\"></span>\n </mat-option>\n </mat-optgroup>\n </ng-template>\n </mat-select>\n <mat-select *ngIf=\"!boundControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.name]=\"controlName\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + layoutNode?._id\"\n [multiple]=\"options?.multiple\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [required]=\"options?.required\"\n [style.width]=\"'100%'\"\n [value]=\"controlValue\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue($event)\">\n <ng-template ngFor let-selectItem [ngForOf]=\"selectList\">\n <mat-option *ngIf=\"!isArray(selectItem?.items)\"\n [attr.selected]=\"selectItem?.value === controlValue\"\n [value]=\"selectItem?.value\">\n <span [innerHTML]=\"selectItem?.name\"></span>\n </mat-option>\n <mat-optgroup *ngIf=\"isArray(selectItem?.items)\"\n [label]=\"selectItem?.group\">\n <mat-option *ngFor=\"let subItem of selectItem.items\"\n [attr.selected]=\"subItem?.value === controlValue\"\n [value]=\"subItem?.value\">\n <span [innerHTML]=\"subItem?.name\"></span>\n </mat-option>\n </mat-optgroup>\n </ng-template>\n </mat-select>\n <span matSuffix *ngIf=\"options?.suffix || options?.fieldAddonRight\"\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n <mat-hint *ngIf=\"options?.description && (!options?.showErrors || !options?.errorMessage)\"\n align=\"end\" [innerHTML]=\"options?.description\"></mat-hint>\n </mat-form-field>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n})\nexport class MaterialSelectComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n selectList: any[] = [];\n isArray = isArray;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.selectList = buildTitleMap(\n this.options.titleMap || this.options.enumNames,\n this.options.enum, !!this.options.required, !!this.options.flatList\n );\n this.jsf.initializeControl(this, !this.options.readonly);\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, event.value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-slider-widget',\n template: `\n <mat-slider thumbLabel *ngIf=\"boundControl\"\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [id]=\"'control' + layoutNode?._id\"\n [max]=\"options?.maximum\"\n [min]=\"options?.minimum\"\n [step]=\"options?.multipleOf || options?.step || 'any'\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\"></mat-slider>\n <mat-slider thumbLabel *ngIf=\"!boundControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [disabled]=\"controlDisabled || options?.readonly\"\n [id]=\"'control' + layoutNode?._id\"\n [max]=\"options?.maximum\"\n [min]=\"options?.minimum\"\n [step]=\"options?.multipleOf || options?.step || 'any'\"\n [style.width]=\"'100%'\"\n [value]=\"controlValue\"\n (blur)=\"options.showErrors = true\"\n (change)=\"updateValue($event)\"></mat-slider>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>`,\n styles: [` mat-error { font-size: 75%; } `],\n})\nexport class MaterialSliderComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n allowNegative = true;\n allowDecimal = true;\n allowExponents = false;\n lastValidNumber = '';\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this, !this.options.readonly);\n }\n\n updateValue(event) {\n this.options.showErrors = true;\n this.jsf.updateValue(this, event.value);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n// TODO: Add this control\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-stepper-widget',\n template: ``,\n})\nexport class MaterialStepperComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-tabs-widget',\n template: `\n <nav mat-tab-nav-bar\n [attr.aria-label]=\"options?.label || options?.title || ''\"\n [style.width]=\"'100%'\">\n <a mat-tab-link *ngFor=\"let item of layoutNode?.items; let i = index\"\n [active]=\"selectedItem === i\"\n (click)=\"select(i)\">\n <span *ngIf=\"showAddTab || item.type !== '$ref'\"\n [innerHTML]=\"setTabTitle(item, i)\"></span>\n </a>\n </nav>\n <div *ngFor=\"let layoutItem of layoutNode?.items; let i = index\"\n [class]=\"options?.htmlClass || ''\">\n <select-framework-widget *ngIf=\"selectedItem === i\"\n [class]=\"(options?.fieldHtmlClass || '') + ' ' + (options?.activeClass || '') + ' ' + (options?.style?.selected || '')\"\n [dataIndex]=\"layoutNode?.dataType === 'array' ? (dataIndex || []).concat(i) : dataIndex\"\n [layoutIndex]=\"(layoutIndex || []).concat(i)\"\n [layoutNode]=\"layoutItem\"></select-framework-widget>\n </div>`,\n styles: [` a { cursor: pointer; } `],\n})\nexport class MaterialTabsComponent implements OnInit {\n options: any;\n itemCount: number;\n selectedItem = 0;\n showAddTab = true;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.itemCount = this.layoutNode.items.length - 1;\n this.updateControl();\n }\n\n select(index) {\n if (this.layoutNode.items[index].type === '$ref') {\n this.jsf.addItem({\n layoutNode: this.layoutNode.items[index],\n layoutIndex: this.layoutIndex.concat(index),\n dataIndex: this.dataIndex.concat(index)\n });\n this.updateControl();\n }\n this.selectedItem = index;\n }\n\n updateControl() {\n this.itemCount = this.layoutNode.items.length - 1;\n const lastItem = this.layoutNode.items[this.layoutNode.items.length - 1];\n this.showAddTab = lastItem.type === '$ref' &&\n this.itemCount < (lastItem.options.maxItems || 1000);\n }\n\n setTabTitle(item: any, index: number): string {\n return this.jsf.setArrayItemTitle(this, item, index);\n }\n}\n","import { AbstractControl } from '@angular/forms';\nimport {Component, Inject, Input, OnInit, Optional} from '@angular/core';\nimport { JsonSchemaFormService } from '@ajsf/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'material-textarea-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'standard'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? 'never' : 'auto')\"\n [hideRequiredMarker]=\"options?.hideRequired ? 'true' : 'false'\"\n [style.width]=\"'100%'\">\n <mat-label *ngIf=\"!options?.notitle\">{{options?.title}}</mat-label>\n <span matPrefix *ngIf=\"options?.prefix || options?.fieldAddonLeft\"\n [innerHTML]=\"options?.prefix || options?.fieldAddonLeft\"></span>\n <textarea matInput *ngIf=\"boundControl\"\n [formControl]=\"formControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [required]=\"options?.required\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [style.width]=\"'100%'\"\n (blur)=\"options.showErrors = true\"></textarea>\n <textarea matInput *ngIf=\"!boundControl\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.list]=\"'control' + layoutNode?._id + 'Autocomplete'\"\n [attr.maxlength]=\"options?.maxLength\"\n [attr.minlength]=\"options?.minLength\"\n [attr.pattern]=\"options?.pattern\"\n [required]=\"options?.required\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [placeholder]=\"options?.notitle ? options?.placeholder : options?.title\"\n [readonly]=\"options?.readonly ? 'readonly' : null\"\n [style.width]=\"'100%'\"\n [value]=\"controlValue\"\n (input)=\"updateValue($event)\"\n (blur)=\"options.showErrors = true\"></textarea>\n <span matSuffix *ngIf=\"options?.suffix || options?.fieldAddonRight\"\n [innerHTML]=\"options?.suffix || options?.fieldAddonRight\"></span>\n <mat-hint *ngIf=\"options?.description && (!options?.showErrors || !options?.errorMessage)\"\n align=\"end\" [innerHTML]=\"options?.description\"></mat-hint>\n </mat-form-field>\n <mat-error *ngIf=\"options?.showErrors && options?.errorMessage\"\n [innerHTML]=\"options?.errorMessage\"></mat-error>`,\n styles: [`\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n `],\n})\nexport class MaterialTextareaComponent implements OnInit {\n formControl: AbstractControl;\n controlName: string;\n controlValue: any;\n controlDisabled = false;\n boundControl = false;\n options: any;\n @Input() layoutNode: any;\n @Input() layoutIndex: number[];\n @Input() dataIndex: number[];\n\n constructor(\n @Inject(MAT_FORM_FIELD_DEFAULT_OPTIONS) @Optional() public matFormFieldDefaultOptions,\n private jsf: JsonSchemaFormService\n ) { }\n\n ngOnInit() {\n this.options = this.layoutNode.options || {};\n this.jsf.initializeControl(this);\n if (!this.options.notitle && !this.options.description && this.options.placeholder) {\n this.options.description = this.options.placeholder;\n }\n }\n\n updateValue(event) {\n this.jsf.updateValue(this, event.target.value);\n }\n}\n","import { FlexLayoutRootComponent } from './flex-layout-root.component';\nimport { FlexLayoutSectionComponent } from './flex-layout-section.component';\nimport { MaterialAddReferenceComponent } from './material-add-reference.component';\nimport { MaterialButtonComponent } from './material-button.component';\nimport { MaterialButtonGroupComponent } from './material-button-group.component';\nimport { MaterialCheckboxComponent } from './material-checkbox.component';\nimport { MaterialCheckboxesComponent } from './material-checkboxes.component';\nimport { MaterialChipListComponent } from './material-chip-list.component';\nimport { MaterialDatepickerComponent } from './material-datepicker.component';\nimport { MaterialDesignFrameworkComponent } from '../material-design-framework.component';\nimport { MaterialFileComponent } from './material-file.component';\nimport { MaterialInputComponent } from './material-input.component';\nimport { MaterialNumberComponent } from './material-number.component';\nimport { MaterialOneOfComponent } from './material-one-of.component';\nimport { MaterialRadiosComponent } from './material-radios.component';\nimport { MaterialSelectComponent } from './material-select.component';\nimport { MaterialSliderComponent } from './material-slider.component';\nimport { MaterialStepperComponent } from './material-stepper.component';\nimport { MaterialTabsComponent } from './material-tabs.component';\nimport { MaterialTextareaComponent } from './material-textarea.component';\n\n\nexport const MATERIAL_FRAMEWORK_COMPONENTS = [\n FlexLayoutRootComponent, FlexLayoutSectionComponent,\n MaterialAddReferenceComponent, MaterialOneOfComponent,\n MaterialButtonComponent, MaterialButtonGroupComponent,\n MaterialCheckboxComponent, MaterialCheckboxesComponent,\n MaterialChipListComponent, MaterialDatepickerComponent,\n MaterialFileComponent, MaterialInputComponent, MaterialNumberComponent,\n MaterialRadiosComponent, MaterialSelectComponent, MaterialSliderComponent,\n MaterialStepperComponent, MaterialTabsComponent, MaterialTextareaComponent,\n MaterialDesignFrameworkComponent\n];\n\nexport { FlexLayoutRootComponent } from './flex-layout-root.component';\nexport { FlexLayoutSectionComponent } from './flex-layout-section.component';\nexport { MaterialAddReferenceComponent } from './material-add-reference.component';\nexport { MaterialOneOfComponent } from './material-one-of.component';\nexport { MaterialButtonComponent } from './material-button.component';\nexport { MaterialButtonGroupComponent } from './material-button-group.component';\nexport { MaterialCheckboxComponent } from './material-checkbox.component';\nexport { MaterialCheckboxesComponent } from './material-checkboxes.component';\nexport { MaterialChipListComponent } from './material-chip-list.component';\nexport { MaterialDatepickerComponent } from './material-datepicker.component';\nexport { MaterialFileComponent } from './material-file.component';\nexport { MaterialInputComponent } from './material-input.component';\nexport { MaterialNumberComponent } from './material-number.component';\nexport { MaterialRadiosComponent } from './material-radios.component';\nexport { MaterialSelectComponent } from './material-select.component';\nexport { MaterialSliderComponent } from './material-slider.component';\nexport { MaterialStepperComponent } from './material-stepper.component';\nexport { MaterialTabsComponent } from './material-tabs.component';\nexport { MaterialTextareaComponent } from './material-textarea.component';\nexport { MaterialDesignFrameworkComponent } from '../material-design-framework.component';\n","import {Injectable} from '@angular/core';\nimport {Framework} from '@ajsf/core';\nimport {\n FlexLayoutRootComponent,\n FlexLayoutSectionComponent,\n MaterialAddReferenceComponent,\n MaterialButtonComponent,\n MaterialButtonGroupComponent,\n MaterialCheckboxComponent,\n MaterialCheckboxesComponent,\n MaterialChipListComponent,\n MaterialDatepickerComponent,\n MaterialDesignFrameworkComponent,\n MaterialFileComponent,\n MaterialInputComponent,\n MaterialNumberComponent,\n MaterialOneOfComponent,\n MaterialRadiosComponent,\n MaterialSelectComponent,\n MaterialSliderComponent,\n MaterialStepperComponent,\n MaterialTabsComponent,\n MaterialTextareaComponent\n} from './widgets/public_api';\n\n\n// Material Design Framework\n// https://github.com/angular/material2\n\n@Injectable()\nexport class MaterialDesignFramework extends Framework {\n name = 'material-design';\n\n framework = MaterialDesignFrameworkComponent;\n\n stylesheets = [\n '//fonts.googleapis.com/icon?family=Material+Icons',\n '//fonts.googleapis.com/css?family=Roboto:300,400,500,700',\n ];\n\n widgets = {\n 'root': FlexLayoutRootComponent,\n 'section': FlexLayoutSectionComponent,\n '$ref': MaterialAddReferenceComponent,\n 'button': MaterialButtonComponent,\n 'button-group': MaterialButtonGroupComponent,\n 'checkbox': MaterialCheckboxComponent,\n 'checkboxes': MaterialCheckboxesComponent,\n 'chip-list': MaterialChipListComponent,\n 'date': MaterialDatepickerComponent,\n 'file': MaterialFileComponent,\n 'number': MaterialNumberComponent,\n 'one-of': MaterialOneOfComponent,\n 'radios': MaterialRadiosComponent,\n 'select': MaterialSelectComponent,\n 'slider': MaterialSliderComponent,\n 'stepper': MaterialStepperComponent,\n 'tabs': MaterialTabsComponent,\n 'text': MaterialInputComponent,\n 'textarea': MaterialTextareaComponent,\n 'alt-date': 'date',\n 'any-of': 'one-of',\n 'card': 'section',\n 'color': 'text',\n 'expansion-panel': 'section',\n 'hidden': 'none',\n 'image': 'none',\n 'integer': 'number',\n 'radiobuttons': 'button-group',\n 'range': 'slider',\n 'submit': 'button',\n 'tagsinput': 'chip-list',\n 'wizard': 'stepper',\n };\n}\n","import { MediaMarshaller } from '@angular/flex-layout/core';\n\nexport function fixAngularFlex() {\n // monkey patch based on errors in console - https://github.com/angular/flex-layout/issues/1011\n const MediaMarshallerUpdateElement = MediaMarshaller.prototype.updateElement;\n\n MediaMarshaller.prototype.updateElement = function (element: HTMLElement, key: string, value: any) {\n if (key === 'layout-gap' && (value === null || value === undefined)) {\n value = '0px';\n }\n MediaMarshallerUpdateElement.apply(this, [element, key, value]);\n };\n}\n","import {\n Framework,\n FrameworkLibraryService,\n JsonSchemaFormModule,\n JsonSchemaFormService,\n WidgetLibraryModule, WidgetLibraryService\n} from '@ajsf/core';\nimport {NgModule} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormsModule, ReactiveFormsModule} from '@angular/forms';\nimport {FlexLayoutModule} from '@angular/flex-layout';\nimport {MatAutocompleteModule} from '@angular/material/autocomplete';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatButtonToggleModule} from '@angular/material/button-toggle';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatCheckboxModule} from '@angular/material/checkbox';\nimport {MatChipsModule} from '@angular/material/chips';\nimport {MatNativeDateModule} from '@angular/material/core';\nimport {MatDatepickerModule} from '@angular/material/datepicker';\nimport {MatExpansionModule} from '@angular/material/expansion';\nimport {MatFormFieldModule} from '@angular/material/form-field';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatInputModule} from '@angular/material/input';\nimport {MatRadioModule} from '@angular/material/radio';\nimport {MatSelectModule} from '@angular/material/select';\nimport {MatSlideToggleModule} from '@angular/material/slide-toggle';\nimport {MatSliderModule} from '@angular/material/slider';\nimport {MatStepperModule} from '@angular/material/stepper';\nimport {MatTabsModule} from '@angular/material/tabs';\nimport {MatTooltipModule} from '@angular/material/tooltip';\nimport {MatMenuModule} from '@angular/material/menu';\nimport {MatToolbarModule} from '@angular/material/toolbar';\nimport {MaterialDesignFramework} from './material-design.framework';\nimport {MATERIAL_FRAMEWORK_COMPONENTS} from './widgets/public_api';\nimport {fixAngularFlex} from './angular-flex-monkey-patch';\n\n/**\n * unused @angular/material modules:\n * MatDialogModule, MatGridListModule, MatListModule, MatMenuModule,\n * MatPaginatorModule, MatProgressBarModule, MatProgressSpinnerModule,\n * MatSidenavModule, MatSnackBarModule, MatSortModule, MatTableModule,\n * ,\n */\nexport const ANGULAR_MATERIAL_MODULES = [\n MatAutocompleteModule, MatButtonModule, MatButtonToggleModule, MatCardModule,\n MatCheckboxModule, MatChipsModule, MatDatepickerModule, MatExpansionModule,\n MatFormFieldModule, MatIconModule, MatInputModule, MatNativeDateModule,\n MatRadioModule, MatSelectModule, MatSliderModule, MatSlideToggleModule,\n MatStepperModule, MatTabsModule, MatTooltipModule,\n MatToolbarModule, MatMenuModule, MatToolbarModule,\n];\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n ...ANGULAR_MATERIAL_MODULES,\n WidgetLibraryModule,\n JsonSchemaFormModule,\n ],\n declarations: [\n ...MATERIAL_FRAMEWORK_COMPONENTS,\n ],\n exports: [\n JsonSchemaFormModule,\n ...MATERIAL_FRAMEWORK_COMPONENTS,\n ],\n providers: [\n JsonSchemaFormService,\n FrameworkLibraryService,\n WidgetLibraryService,\n {provide: Framework, useClass: MaterialDesignFramework, multi: true},\n ],\n entryComponents: [\n ...MATERIAL_FRAMEWORK_COMPONENTS,\n ]\n})\nexport class MaterialDesignFrameworkModule {\n constructor() {\n fixAngularFlex();\n }\n}\n","/*\n * Public API Surface of @ajsf/material-framework\n */\n\nexport * from './lib/material-design.framework';\nexport * from './lib/material-design-framework.module';\nexport * from './lib/material-design-framework.component';\nexport * from './lib/widgets/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["Component","ChangeDetectionStrategy","JsonSchemaFormService","Input","hasOwn","buildTitleMap","dateToString","Inject","MAT_FORM_FIELD_DEFAULT_OPTIONS","Optional","cloneDeep","isDefined","ChangeDetectorRef","isArray","Framework","Injectable","MediaMarshaller","MatAutocompleteModule","MatButtonModule","MatButtonToggleModule","MatCardModule","MatCheckboxModule","MatChipsModule","MatDatepickerModule","MatExpansionModule","MatFormFieldModule","MatIconModule","MatInputModule","MatNativeDateModule","MatRadioModule","MatSelectModule","MatSliderModule","MatSlideToggleModule","MatStepperModule","MatTabsModule","MatTooltipModule","MatToolbarModule","MatMenuModule","NgModule","CommonModule","FormsModule","ReactiveFormsModule","FlexLayoutModule","WidgetLibraryModule","JsonSchemaFormModule","FrameworkLibraryService","WidgetLibraryService"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@ajsf/core"),require("@angular/material/form-field"),require("lodash/cloneDeep"),require("@angular/common"),require("@angular/forms"),require("@angular/flex-layout"),require("@angular/material/autocomplete"),require("@angular/material/button"),require("@angular/material/button-toggle"),require("@angular/material/card"),require("@angular/material/checkbox"),require("@angular/material/chips"),require("@angular/material/core"),require("@angular/material/datepicker"),require("@angular/material/expansion"),require("@angular/material/icon"),require("@angular/material/input"),require("@angular/material/radio"),require("@angular/material/select"),require("@angular/material/slide-toggle"),require("@angular/material/slider"),require("@angular/material/stepper"),require("@angular/material/tabs"),require("@angular/material/tooltip"),require("@angular/material/menu"),require("@angular/material/toolbar"),require("@angular/flex-layout/core")):"function"==typeof define&&define.amd?define("@ajsf/material",["exports","@angular/core","@ajsf/core","@angular/material/form-field","lodash/cloneDeep","@angular/common","@angular/forms","@angular/flex-layout","@angular/material/autocomplete","@angular/material/button","@angular/material/button-toggle","@angular/material/card","@angular/material/checkbox","@angular/material/chips","@angular/material/core","@angular/material/datepicker","@angular/material/expansion","@angular/material/icon","@angular/material/input","@angular/material/radio","@angular/material/select","@angular/material/slide-toggle","@angular/material/slider","@angular/material/stepper","@angular/material/tabs","@angular/material/tooltip","@angular/material/menu","@angular/material/toolbar","@angular/flex-layout/core"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).ajsf=t.ajsf||{},t.ajsf.material={}),t.ng.core,t["@ajsf/core"],t.ng.material.formField,t["lodash-es"],t.ng.common,t.ng.forms,t.ng.flexLayout,t.ng.material.autocomplete,t.ng.material.button,t.ng.material.buttonToggle,t.ng.material.card,t.ng.material.checkbox,t.ng.material.chips,t.ng.material.core,t.ng.material.datepicker,t.ng.material.expansion,t.ng.material.icon,t.ng.material.input,t.ng.material.radio,t.ng.material.select,t.ng.material.slideToggle,t.ng.material.slider,t.ng.material.stepper,t.ng.material.tabs,t.ng.material.tooltip,t.ng.material.menu,t.ng.material.toolbar,t.ng.flexLayout.core)}(this,(function(t,e,o,n,i,a,r,s,l,p,d,u,c,m,f,h,y,g,x,b,I,w,v,M,N,C,L,F,T){"use strict";function A(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var k=A(i),j=function(t,e){return(j=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o])})(t,e)};
|
|
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
|
+
***************************************************************************** */Object.create;function D(t){var e="function"==typeof Symbol&&Symbol.iterator,o=e&&t[e],n=0;if(o)return o.call(t);if(t&&"number"==typeof t.length)return{next:function(){return t&&n>=t.length&&(t=void 0),{value:t&&t[n++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function O(t,e){var o="function"==typeof Symbol&&t[Symbol.iterator];if(!o)return t;var n,i,a=o.call(t),r=[];try{for(;(void 0===e||e-- >0)&&!(n=a.next()).done;)r.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(o=a.return)&&o.call(a)}finally{if(i)throw i.error}}return r}function S(){for(var t=[],e=0;e<arguments.length;e++)t=t.concat(O(arguments[e]));return t}Object.create;var _=function(){function t(t){this.jsf=t,this.isFlexItem=!1}return t.prototype.removeItem=function(t){this.jsf.removeItem(t)},t.prototype.getFlexAttribute=function(t,e){var o=["flex-grow","flex-shrink","flex-basis"].indexOf(e);return((t.options||{}).flex||"").split(/\s+/)[o]||(t.options||{})[e]||["1","1","auto"][o]},t.prototype.showWidget=function(t){return this.jsf.evaluateCondition(t,this.dataIndex)},t}();_.decorators=[{type:e.Component,args:[{selector:"flex-layout-root-widget",template:'\n <div *ngFor="let layoutNode of layout; let i = index"\n [class.form-flex-item]="isFlexItem"\n [style.flex-grow]="getFlexAttribute(layoutNode, \'flex-grow\')"\n [style.flex-shrink]="getFlexAttribute(layoutNode, \'flex-shrink\')"\n [style.flex-basis]="getFlexAttribute(layoutNode, \'flex-basis\')"\n [style.align-self]="(layoutNode?.options || {})[\'align-self\']"\n [style.order]="layoutNode?.options?.order"\n [fxFlex]="layoutNode?.options?.fxFlex"\n [fxFlexOrder]="layoutNode?.options?.fxFlexOrder"\n [fxFlexOffset]="layoutNode?.options?.fxFlexOffset"\n [fxFlexAlign]="layoutNode?.options?.fxFlexAlign">\n <select-framework-widget *ngIf="showWidget(layoutNode)"\n [dataIndex]="layoutNode?.arrayItem ? (dataIndex || []).concat(i) : (dataIndex || [])"\n [layoutIndex]="(layoutIndex || []).concat(i)"\n [layoutNode]="layoutNode"></select-framework-widget>\n <div>',changeDetection:e.ChangeDetectionStrategy.Default}]}],_.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},_.propDecorators={dataIndex:[{type:e.Input}],layoutIndex:[{type:e.Input}],layout:[{type:e.Input}],isFlexItem:[{type:e.Input}]};var V=function(){function t(t){this.jsf=t,this.controlDisabled=!1,this.boundControl=!1,this.expanded=!0,this.containerType="div"}return Object.defineProperty(t.prototype,"sectionTitle",{get:function(){return this.options.notitle?null:this.jsf.setItemTitle(this)},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){switch(this.jsf.initializeControl(this),this.options=this.layoutNode.options||{},this.expanded="boolean"==typeof this.options.expanded?this.options.expanded:!this.options.expandable,this.layoutNode.type){case"section":case"array":case"fieldset":case"advancedfieldset":case"authfieldset":case"optionfieldset":case"selectfieldset":this.containerType="fieldset";break;case"card":this.containerType="card";break;case"expansion-panel":this.containerType="expansion-panel";break;default:this.containerType="div"}},t.prototype.toggleExpanded=function(){this.options.expandable&&(this.expanded=!this.expanded)},t.prototype.getFlexAttribute=function(t){var e="flex"===this.layoutNode.type||!!this.options.displayFlex||"flex"===this.options.display;switch(t){case"is-flex":return e;case"display":return e?"flex":"initial";case"flex-direction":case"flex-wrap":var o=["flex-direction","flex-wrap"].indexOf(t);return(this.options["flex-flow"]||"").split(/\s+/)[o]||this.options[t]||["column","nowrap"][o];case"justify-content":case"align-items":case"align-content":return this.options[t];case"layout":return(this.options.fxLayout||"row")+this.options.fxLayoutWrap?" "+this.options.fxLayoutWrap:""}},t}();V.decorators=[{type:e.Component,args:[{selector:"flex-layout-section-widget",template:'\n <div *ngIf="containerType === \'div\'"\n [class]="options?.htmlClass || \'\'"\n [class.expandable]="options?.expandable && !expanded"\n [class.expanded]="options?.expandable && expanded">\n <label *ngIf="sectionTitle"\n [class]="\'legend \' + (options?.labelHtmlClass || \'\')"\n [innerHTML]="sectionTitle"\n (click)="toggleExpanded()"></label>\n <flex-layout-root-widget *ngIf="expanded"\n [layout]="layoutNode.items"\n [dataIndex]="dataIndex"\n [layoutIndex]="layoutIndex"\n [isFlexItem]="getFlexAttribute(\'is-flex\')"\n [class.form-flex-column]="getFlexAttribute(\'flex-direction\') === \'column\'"\n [class.form-flex-row]="getFlexAttribute(\'flex-direction\') === \'row\'"\n [style.display]="getFlexAttribute(\'display\')"\n [style.flex-direction]="getFlexAttribute(\'flex-direction\')"\n [style.flex-wrap]="getFlexAttribute(\'flex-wrap\')"\n [style.justify-content]="getFlexAttribute(\'justify-content\')"\n [style.align-items]="getFlexAttribute(\'align-items\')"\n [style.align-content]="getFlexAttribute(\'align-content\')"\n [fxLayout]="getFlexAttribute(\'layout\')"\n [fxLayoutGap]="options?.fxLayoutGap"\n [fxLayoutAlign]="options?.fxLayoutAlign"\n [attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>\n </div>\n\n <fieldset *ngIf="containerType === \'fieldset\'"\n [class]="options?.htmlClass || \'\'"\n [class.expandable]="options?.expandable && !expanded"\n [class.expanded]="options?.expandable && expanded"\n [disabled]="options?.readonly">\n <legend *ngIf="sectionTitle"\n [class]="\'legend \' + (options?.labelHtmlClass || \'\')"\n [innerHTML]="sectionTitle"\n (click)="toggleExpanded()"></legend>\n <flex-layout-root-widget *ngIf="expanded"\n [layout]="layoutNode.items"\n [dataIndex]="dataIndex"\n [layoutIndex]="layoutIndex"\n [isFlexItem]="getFlexAttribute(\'is-flex\')"\n [class.form-flex-column]="getFlexAttribute(\'flex-direction\') === \'column\'"\n [class.form-flex-row]="getFlexAttribute(\'flex-direction\') === \'row\'"\n [style.display]="getFlexAttribute(\'display\')"\n [style.flex-direction]="getFlexAttribute(\'flex-direction\')"\n [style.flex-wrap]="getFlexAttribute(\'flex-wrap\')"\n [style.justify-content]="getFlexAttribute(\'justify-content\')"\n [style.align-items]="getFlexAttribute(\'align-items\')"\n [style.align-content]="getFlexAttribute(\'align-content\')"\n [fxLayout]="getFlexAttribute(\'layout\')"\n [fxLayoutGap]="options?.fxLayoutGap"\n [fxLayoutAlign]="options?.fxLayoutAlign"\n [attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>\n </fieldset>\n\n <mat-card *ngIf="containerType === \'card\'"\n [ngClass]="options?.htmlClass || \'\'"\n [class.expandable]="options?.expandable && !expanded"\n [class.expanded]="options?.expandable && expanded">\n <mat-card-header *ngIf="sectionTitle">\n <legend\n [class]="\'legend \' + (options?.labelHtmlClass || \'\')"\n [innerHTML]="sectionTitle"\n (click)="toggleExpanded()"></legend>\n </mat-card-header>\n <mat-card-content *ngIf="expanded">\n <fieldset [disabled]="options?.readonly">\n <flex-layout-root-widget *ngIf="expanded"\n [layout]="layoutNode.items"\n [dataIndex]="dataIndex"\n [layoutIndex]="layoutIndex"\n [isFlexItem]="getFlexAttribute(\'is-flex\')"\n [class.form-flex-column]="getFlexAttribute(\'flex-direction\') === \'column\'"\n [class.form-flex-row]="getFlexAttribute(\'flex-direction\') === \'row\'"\n [style.display]="getFlexAttribute(\'display\')"\n [style.flex-direction]="getFlexAttribute(\'flex-direction\')"\n [style.flex-wrap]="getFlexAttribute(\'flex-wrap\')"\n [style.justify-content]="getFlexAttribute(\'justify-content\')"\n [style.align-items]="getFlexAttribute(\'align-items\')"\n [style.align-content]="getFlexAttribute(\'align-content\')"\n [fxLayout]="getFlexAttribute(\'layout\')"\n [fxLayoutGap]="options?.fxLayoutGap"\n [fxLayoutAlign]="options?.fxLayoutAlign"\n [attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>\n </fieldset>\n </mat-card-content>\n <mat-card-footer>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>\n </mat-card-footer>\n </mat-card>\n\n <mat-expansion-panel *ngIf="containerType === \'expansion-panel\'"\n [expanded]="expanded"\n [hideToggle]="!options?.expandable">\n <mat-expansion-panel-header>\n <mat-panel-title>\n <legend *ngIf="sectionTitle"\n [class]="options?.labelHtmlClass"\n [innerHTML]="sectionTitle"\n (click)="toggleExpanded()"></legend>\n </mat-panel-title>\n </mat-expansion-panel-header>\n <fieldset [disabled]="options?.readonly">\n <flex-layout-root-widget *ngIf="expanded"\n [layout]="layoutNode.items"\n [dataIndex]="dataIndex"\n [layoutIndex]="layoutIndex"\n [isFlexItem]="getFlexAttribute(\'is-flex\')"\n [class.form-flex-column]="getFlexAttribute(\'flex-direction\') === \'column\'"\n [class.form-flex-row]="getFlexAttribute(\'flex-direction\') === \'row\'"\n [style.display]="getFlexAttribute(\'display\')"\n [style.flex-direction]="getFlexAttribute(\'flex-direction\')"\n [style.flex-wrap]="getFlexAttribute(\'flex-wrap\')"\n [style.justify-content]="getFlexAttribute(\'justify-content\')"\n [style.align-items]="getFlexAttribute(\'align-items\')"\n [style.align-content]="getFlexAttribute(\'align-content\')"\n [fxLayout]="getFlexAttribute(\'layout\')"\n [fxLayoutGap]="options?.fxLayoutGap"\n [fxLayoutAlign]="options?.fxLayoutAlign"\n [attr.fxFlexFill]="options?.fxLayoutAlign"></flex-layout-root-widget>\n </fieldset>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>\n </mat-expansion-panel>',styles:["\n fieldset { border: 0; margin: 0; padding: 0; }\n .legend { font-weight: bold; }\n .expandable > .legend:before { content: '▶'; padding-right: .3em; }\n .expanded > .legend:before { content: '▼'; padding-right: .2em; }\n "]}]}],V.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},V.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var E=function(){function t(t){this.jsf=t}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{}},Object.defineProperty(t.prototype,"showAddButton",{get:function(){return!this.layoutNode.arrayItem||this.layoutIndex[this.layoutIndex.length-1]<this.options.maxItems},enumerable:!1,configurable:!0}),t.prototype.addItem=function(t){t.preventDefault(),this.jsf.addItem(this)},Object.defineProperty(t.prototype,"buttonText",{get:function(){var t={dataIndex:this.dataIndex.slice(0,-1),layoutIndex:this.layoutIndex.slice(0,-1),layoutNode:this.jsf.getParentNode(this)};return t.layoutNode.add||this.jsf.setArrayItemTitle(t,this.layoutNode,this.itemCount)},enumerable:!1,configurable:!0}),t}();E.decorators=[{type:e.Component,args:[{selector:"material-add-reference-widget",template:'\n <section [class]="options?.htmlClass || \'\'" align="end">\n <button mat-raised-button *ngIf="showAddButton"\n [color]="options?.color || \'accent\'"\n [disabled]="options?.readonly"\n (click)="addItem($event)">\n <span *ngIf="options?.icon" [class]="options?.icon"></span>\n <span *ngIf="options?.title" [innerHTML]="buttonText"></span>\n </button>\n </section>',changeDetection:e.ChangeDetectionStrategy.Default}]}],E.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},E.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var q=function(){function t(t){this.jsf=t,this.controlDisabled=!1,this.boundControl=!1}return t.prototype.ngOnInit=function(){var t=this;this.options=this.layoutNode.options||{},this.jsf.initializeControl(this),o.hasOwn(this.options,"disabled")?this.controlDisabled=this.options.disabled:this.jsf.formOptions.disableInvalidSubmit&&(this.controlDisabled=!this.jsf.isValid,this.jsf.isValidChanges.subscribe((function(e){return t.controlDisabled=!e})))},t.prototype.updateValue=function(t){"function"==typeof this.options.onClick?this.options.onClick(t):this.jsf.updateValue(this,t.target.value)},t}();q.decorators=[{type:e.Component,args:[{selector:"material-button-widget",template:'\n <div class="button-row" [class]="options?.htmlClass || \'\'">\n <button mat-raised-button\n [attr.readonly]="options?.readonly ? \'readonly\' : null"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [color]="options?.color || \'primary\'"\n [disabled]="controlDisabled || options?.readonly"\n [id]="\'control\' + layoutNode?._id"\n [name]="controlName"\n [type]="layoutNode?.type"\n [value]="controlValue"\n (click)="updateValue($event)">\n <mat-icon *ngIf="options?.icon" class="mat-24">{{options?.icon}}</mat-icon>\n <span *ngIf="options?.title" [innerHTML]="options?.title"></span>\n </button>\n </div>',styles:[" button { margin-top: 10px; } "]}]}],q.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},q.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var H=function(){function t(t){this.jsf=t,this.controlDisabled=!1,this.boundControl=!1,this.radiosList=[],this.vertical=!1}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.radiosList=o.buildTitleMap(this.options.titleMap||this.options.enumNames,this.options.enum,!0),this.jsf.initializeControl(this)},t.prototype.updateValue=function(t){this.options.showErrors=!0,this.jsf.updateValue(this,t)},t}();H.decorators=[{type:e.Component,args:[{selector:"material-button-group-widget",template:'\n <div>\n <div *ngIf="options?.title">\n <label\n [attr.for]="\'control\' + layoutNode?._id"\n [class]="options?.labelHtmlClass || \'\'"\n [style.display]="options?.notitle ? \'none\' : \'\'"\n [innerHTML]="options?.title"></label>\n </div>\n <mat-button-toggle-group\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.readonly]="options?.readonly ? \'readonly\' : null"\n [attr.required]="options?.required"\n [disabled]="controlDisabled || options?.readonly"\n [name]="controlName"\n [value]="controlValue"\n [vertical]="!!options.vertical">\n <mat-button-toggle *ngFor="let radioItem of radiosList"\n [id]="\'control\' + layoutNode?._id + \'/\' + radioItem?.name"\n [value]="radioItem?.value"\n (click)="updateValue(radioItem?.value)">\n <span [innerHTML]="radioItem?.name"></span>\n </mat-button-toggle>\n </mat-button-toggle-group>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>\n </div>',styles:[" mat-error { font-size: 75%; } "]}]}],H.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},H.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var P=function(){function t(t){this.jsf=t,this.controlDisabled=!1,this.boundControl=!1,this.trueValue=!0,this.falseValue=!1,this.showSlideToggle=!1}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.jsf.initializeControl(this,!this.options.readonly),null!==this.controlValue&&void 0!==this.controlValue||(this.controlValue=!1,this.jsf.updateValue(this,this.falseValue)),"slide-toggle"!==this.layoutNode.type&&"slide-toggle"!==this.layoutNode.format||(this.showSlideToggle=!0)},t.prototype.updateValue=function(t){this.options.showErrors=!0,this.jsf.updateValue(this,t.checked?this.trueValue:this.falseValue)},Object.defineProperty(t.prototype,"isChecked",{get:function(){return this.jsf.getFormControlValue(this)===this.trueValue},enumerable:!1,configurable:!0}),t}();P.decorators=[{type:e.Component,args:[{selector:"material-checkbox-widget",template:'\n <mat-checkbox *ngIf="boundControl && !showSlideToggle"\n [formControl]="formControl"\n align="left"\n [color]="options?.color || \'primary\'"\n [id]="\'control\' + layoutNode?._id"\n labelPosition="after"\n [name]="controlName"\n (blur)="options.showErrors = true">\n <span *ngIf="options?.title"\n class="checkbox-name"\n [style.display]="options?.notitle ? \'none\' : \'\'"\n [innerHTML]="options?.title"></span>\n </mat-checkbox>\n <mat-checkbox *ngIf="!boundControl && !showSlideToggle"\n align="left"\n [color]="options?.color || \'primary\'"\n [disabled]="controlDisabled || options?.readonly"\n [id]="\'control\' + layoutNode?._id"\n labelPosition="after"\n [name]="controlName"\n [checked]="isChecked"\n (blur)="options.showErrors = true"\n (change)="updateValue($event)">\n <span *ngIf="options?.title"\n class="checkbox-name"\n [style.display]="options?.notitle ? \'none\' : \'\'"\n [innerHTML]="options?.title"></span>\n </mat-checkbox>\n <mat-slide-toggle *ngIf="boundControl && showSlideToggle"\n [formControl]="formControl"\n align="left"\n [color]="options?.color || \'primary\'"\n [id]="\'control\' + layoutNode?._id"\n labelPosition="after"\n [name]="controlName"\n (blur)="options.showErrors = true">\n <span *ngIf="options?.title"\n class="checkbox-name"\n [style.display]="options?.notitle ? \'none\' : \'\'"\n [innerHTML]="options?.title"></span>\n </mat-slide-toggle>\n <mat-slide-toggle *ngIf="!boundControl && showSlideToggle"\n align="left"\n [color]="options?.color || \'primary\'"\n [disabled]="controlDisabled || options?.readonly"\n [id]="\'control\' + layoutNode?._id"\n labelPosition="after"\n [name]="controlName"\n [checked]="isChecked"\n (blur)="options.showErrors = true"\n (change)="updateValue($event)">\n <span *ngIf="options?.title"\n class="checkbox-name"\n [style.display]="options?.notitle ? \'none\' : \'\'"\n [innerHTML]="options?.title"></span>\n </mat-slide-toggle>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>',styles:["\n .checkbox-name { white-space: nowrap; }\n mat-error { font-size: 75%; }\n "]}]}],P.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},P.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var z=function(){function t(t){this.jsf=t,this.controlDisabled=!1,this.boundControl=!1,this.horizontalList=!1,this.checkboxList=[]}return t.prototype.ngOnInit=function(){var t,e;if(this.options=this.layoutNode.options||{},this.horizontalList="checkboxes-inline"===this.layoutNode.type||"checkboxbuttons"===this.layoutNode.type,this.jsf.initializeControl(this),this.checkboxList=o.buildTitleMap(this.options.titleMap||this.options.enumNames,this.options.enum,!0),this.boundControl){var n=this.jsf.getFormControl(this);try{for(var i=D(this.checkboxList),a=i.next();!a.done;a=i.next()){var r=a.value;r.checked=n.value.includes(r.value)}}catch(e){t={error:e}}finally{try{a&&!a.done&&(e=i.return)&&e.call(i)}finally{if(t)throw t.error}}}},Object.defineProperty(t.prototype,"allChecked",{get:function(){return this.checkboxList.filter((function(t){return t.checked})).length===this.checkboxList.length},enumerable:!1,configurable:!0}),Object.defineProperty(t.prototype,"someChecked",{get:function(){var t=this.checkboxList.filter((function(t){return t.checked})).length;return t>0&&t<this.checkboxList.length},enumerable:!1,configurable:!0}),t.prototype.updateValue=function(){this.options.showErrors=!0,this.boundControl&&this.jsf.updateArrayCheckboxList(this,this.checkboxList)},t.prototype.updateAllValues=function(t){this.options.showErrors=!0,this.checkboxList.forEach((function(e){return e.checked=t.checked})),this.updateValue()},t}();z.decorators=[{type:e.Component,args:[{selector:"material-checkboxes-widget",template:'\n <div>\n <mat-checkbox type="checkbox"\n [checked]="allChecked"\n [color]="options?.color || \'primary\'"\n [disabled]="controlDisabled || options?.readonly"\n [indeterminate]="someChecked"\n [name]="options?.name"\n (blur)="options.showErrors = true"\n (change)="updateAllValues($event)">\n <span class="checkbox-name" [innerHTML]="options?.name"></span>\n </mat-checkbox>\n <label *ngIf="options?.title"\n class="title"\n [class]="options?.labelHtmlClass || \'\'"\n [style.display]="options?.notitle ? \'none\' : \'\'"\n [innerHTML]="options?.title"></label>\n <ul class="checkbox-list" [class.horizontal-list]="horizontalList">\n <li *ngFor="let checkboxItem of checkboxList"\n [class]="options?.htmlClass || \'\'">\n <mat-checkbox type="checkbox"\n [(ngModel)]="checkboxItem.checked"\n [color]="options?.color || \'primary\'"\n [disabled]="controlDisabled || options?.readonly"\n [name]="checkboxItem?.name"\n (blur)="options.showErrors = true"\n (change)="updateValue()">\n <span class="checkbox-name" [innerHTML]="checkboxItem?.name"></span>\n </mat-checkbox>\n </li>\n </ul>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>\n </div>',styles:["\n .title { font-weight: bold; }\n .checkbox-list { list-style-type: none; }\n .horizontal-list > li { display: inline-block; margin-right: 10px; zoom: 1; }\n .checkbox-name { white-space: nowrap; }\n mat-error { font-size: 75%; }\n "]}]}],z.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},z.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var R=function(){function t(t){this.jsf=t,this.controlDisabled=!1,this.boundControl=!1}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.jsf.initializeControl(this)},t.prototype.updateValue=function(t){this.jsf.updateValue(this,t.target.value)},t}();R.decorators=[{type:e.Component,args:[{selector:"material-chip-list-widget",template:""}]}],R.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},R.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var J=function(){function t(t,e){this.matFormFieldDefaultOptions=t,this.jsf=e,this.controlDisabled=!1,this.boundControl=!1,this.autoCompleteList=[]}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.jsf.initializeControl(this,!this.options.readonly),this.controlValue&&this.formControl.setValue(o.dateToString(this.controlValue,this.options)),this.options.notitle||this.options.description||!this.options.placeholder||(this.options.description=this.options.placeholder)},t.prototype.updateValue=function(t){this.options.showErrors=!0,t.value&&this.formControl.setValue(o.dateToString(t.value,this.options))},t}();J.decorators=[{type:e.Component,args:[{selector:"material-datepicker-widget",template:'\n <mat-form-field [appearance]="options?.appearance || matFormFieldDefaultOptions?.appearance || \'standard\'"\n [class]="options?.htmlClass || \'\'"\n [floatLabel]="options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? \'never\' : \'auto\')"\n [hideRequiredMarker]="options?.hideRequired ? \'true\' : \'false\'"\n [style.width]="\'100%\'">\n <mat-label *ngIf="!options?.notitle">{{options?.title}}</mat-label>\n <span matPrefix *ngIf="options?.prefix || options?.fieldAddonLeft"\n [innerHTML]="options?.prefix || options?.fieldAddonLeft"></span>\n <input matInput *ngIf="boundControl"\n [formControl]="formControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.list]="\'control\' + layoutNode?._id + \'Autocomplete\'"\n [attr.readonly]="options?.readonly ? \'readonly\' : null"\n [id]="\'control\' + layoutNode?._id"\n [max]="options?.maximum"\n [matDatepicker]="picker"\n [min]="options?.minimum"\n [name]="controlName"\n [placeholder]="options?.title"\n [readonly]="options?.readonly"\n [required]="options?.required"\n [style.width]="\'100%\'"\n (blur)="options.showErrors = true"\n (dateChange)="updateValue($event)"\n (dateInput)="updateValue($event)">\n <input matInput *ngIf="!boundControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.list]="\'control\' + layoutNode?._id + \'Autocomplete\'"\n [attr.readonly]="options?.readonly ? \'readonly\' : null"\n [disabled]="controlDisabled || options?.readonly"\n [id]="\'control\' + layoutNode?._id"\n [max]="options?.maximum"\n [matDatepicker]="picker"\n [min]="options?.minimum"\n [name]="controlName"\n [placeholder]="options?.title"\n [required]="options?.required"\n [style.width]="\'100%\'"\n [readonly]="options?.readonly"\n (blur)="options.showErrors = true"\n (dateChange)="updateValue($event)"\n (dateInput)="updateValue($event)">\n <span matSuffix *ngIf="options?.suffix || options?.fieldAddonRight"\n [innerHTML]="options?.suffix || options?.fieldAddonRight"></span>\n <mat-hint *ngIf="options?.description && (!options?.showErrors || !options?.errorMessage)"\n align="end" [innerHTML]="options?.description"></mat-hint>\n <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>\n </mat-form-field>\n <mat-datepicker #picker ></mat-datepicker>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>',styles:["\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n "]}]}],J.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[n.MAT_FORM_FIELD_DEFAULT_OPTIONS]},{type:e.Optional}]},{type:o.JsonSchemaFormService}]},J.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var $=function(){function t(t,e){this.changeDetector=t,this.jsf=e,this.frameworkInitialized=!1,this.formControl=null,this.parentArray=null,this.isOrderable=!1,this.dynamicTitle=null}return Object.defineProperty(t.prototype,"showRemoveButton",{get:function(){return!(!this.layoutNode||!this.widgetOptions.removable||this.widgetOptions.readonly||"$ref"===this.layoutNode.type)&&(!!this.layoutNode.recursiveReference||!(!this.layoutNode.arrayItem||!this.parentArray)&&(!(this.parentArray.items.length-1<=this.parentArray.options.minItems)&&("list"===this.layoutNode.arrayItemType||this.layoutIndex[this.layoutIndex.length-1]===this.parentArray.items.length-2)))},enumerable:!1,configurable:!0}),t.prototype.ngOnInit=function(){this.initializeFramework()},t.prototype.ngOnChanges=function(){this.frameworkInitialized||this.initializeFramework(),this.dynamicTitle&&this.updateTitle()},t.prototype.initializeFramework=function(){this.layoutNode?(this.options=k.default(this.layoutNode.options||{}),this.widgetLayoutNode=Object.assign(Object.assign({},this.layoutNode),{options:k.default(this.layoutNode.options||{})}),this.widgetOptions=this.widgetLayoutNode.options,this.formControl=this.jsf.getFormControl(this),o.isDefined(this.widgetOptions.minimum)&&o.isDefined(this.widgetOptions.maximum)&&this.widgetOptions.multipleOf>=1&&(this.layoutNode.type="range"),!["$ref","advancedfieldset","authfieldset","button","card","checkbox","expansion-panel","help","message","msg","section","submit","tabarray","tabs"].includes(this.layoutNode.type)&&/{{.+?}}/.test(this.widgetOptions.title||"")&&(this.dynamicTitle=this.widgetOptions.title,this.updateTitle()),this.layoutNode.arrayItem&&"$ref"!==this.layoutNode.type&&(this.parentArray=this.jsf.getParentNode(this),this.parentArray&&(this.isOrderable="tab"!==this.parentArray.type.slice(0,3)&&"list"===this.layoutNode.arrayItemType&&!this.widgetOptions.readonly&&this.parentArray.options.orderable)),this.frameworkInitialized=!0):this.options={}},t.prototype.updateTitle=function(){this.widgetLayoutNode.options.title=this.jsf.parseText(this.dynamicTitle,this.jsf.getFormControlValue(this),this.jsf.getFormControlGroup(this).value,this.dataIndex[this.dataIndex.length-1])},t.prototype.removeItem=function(){this.jsf.removeItem(this)},t}();$.decorators=[{type:e.Component,args:[{selector:"material-design-framework",template:'<div\n [class.array-item]="widgetLayoutNode?.arrayItem && widgetLayoutNode?.type !== \'$ref\'"\n [orderable]="isOrderable"\n [dataIndex]="dataIndex"\n [layoutIndex]="layoutIndex"\n [layoutNode]="widgetLayoutNode">\n <svg *ngIf="showRemoveButton"\n xmlns="http://www.w3.org/2000/svg"\n height="18" width="18" viewBox="0 0 24 24"\n class="close-button"\n (click)="removeItem()">\n <path\n d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/>\n </svg>\n <select-widget-widget\n [dataIndex]="dataIndex"\n [layoutIndex]="layoutIndex"\n [layoutNode]="widgetLayoutNode"></select-widget-widget>\n</div>\n<div class="spacer" *ngIf="widgetLayoutNode?.arrayItem && widgetLayoutNode?.type !== \'$ref\'"></div>\n',styles:[".array-item{border-radius:2px;box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);padding:6px;position:relative;transition:all .28s cubic-bezier(.4,0,.2,1)}.close-button{cursor:pointer;position:absolute;top:6px;right:6px;fill:rgba(0,0,0,.4);visibility:hidden;z-index:500}.close-button:hover{fill:rgba(0,0,0,.8)}.array-item:hover>.close-button{visibility:visible}.spacer{margin:6px 0}[draggable=true]:hover{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12);cursor:move;z-index:10}[draggable=true].drag-target-top{box-shadow:0 -2px 0 #000;position:relative;z-index:20}[draggable=true].drag-target-bottom{box-shadow:0 2px 0 #000;position:relative;z-index:20}"]}]}],$.ctorParameters=function(){return[{type:e.ChangeDetectorRef},{type:o.JsonSchemaFormService}]},$.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var G=function(){function t(t){this.jsf=t,this.controlDisabled=!1,this.boundControl=!1}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.jsf.initializeControl(this)},t.prototype.updateValue=function(t){this.jsf.updateValue(this,t.target.value)},t}();G.decorators=[{type:e.Component,args:[{selector:"material-file-widget",template:""}]}],G.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},G.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var B=function(){function t(t,e){this.matFormFieldDefaultOptions=t,this.jsf=e,this.controlDisabled=!1,this.boundControl=!1,this.autoCompleteList=[]}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.jsf.initializeControl(this),this.options.notitle||this.options.description||!this.options.placeholder||(this.options.description=this.options.placeholder)},t.prototype.updateValue=function(t){this.jsf.updateValue(this,t.target.value)},t}();B.decorators=[{type:e.Component,args:[{selector:"material-input-widget",template:'\n <mat-form-field [appearance]="options?.appearance || matFormFieldDefaultOptions?.appearance || \'standard\'"\n [class]="options?.htmlClass || \'\'"\n [floatLabel]="options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? \'never\' : \'auto\')"\n [hideRequiredMarker]="options?.hideRequired ? \'true\' : \'false\'"\n [style.width]="\'100%\'">\n <mat-label *ngIf="!options?.notitle">{{options?.title}}</mat-label>\n <span matPrefix *ngIf="options?.prefix || options?.fieldAddonLeft"\n [innerHTML]="options?.prefix || options?.fieldAddonLeft"></span>\n <input matInput *ngIf="boundControl"\n [formControl]="formControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.list]="\'control\' + layoutNode?._id + \'Autocomplete\'"\n [attr.maxlength]="options?.maxLength"\n [attr.minlength]="options?.minLength"\n [attr.pattern]="options?.pattern"\n [readonly]="options?.readonly ? \'readonly\' : null"\n [id]="\'control\' + layoutNode?._id"\n [name]="controlName"\n [placeholder]="options?.notitle ? options?.placeholder : options?.title"\n [required]="options?.required"\n [style.width]="\'100%\'"\n [type]="layoutNode?.type"\n (blur)="options.showErrors = true">\n <input matInput *ngIf="!boundControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.list]="\'control\' + layoutNode?._id + \'Autocomplete\'"\n [attr.maxlength]="options?.maxLength"\n [attr.minlength]="options?.minLength"\n [attr.pattern]="options?.pattern"\n [disabled]="controlDisabled"\n [id]="\'control\' + layoutNode?._id"\n [name]="controlName"\n [placeholder]="options?.notitle ? options?.placeholder : options?.title"\n [readonly]="options?.readonly ? \'readonly\' : null"\n [required]="options?.required"\n [style.width]="\'100%\'"\n [type]="layoutNode?.type"\n [value]="controlValue"\n (input)="updateValue($event)"\n (blur)="options.showErrors = true">\n <span matSuffix *ngIf="options?.suffix || options?.fieldAddonRight"\n [innerHTML]="options?.suffix || options?.fieldAddonRight"></span>\n <mat-hint *ngIf="options?.description && (!options?.showErrors || !options?.errorMessage)"\n align="end" [innerHTML]="options?.description"></mat-hint>\n <mat-autocomplete *ngIf="options?.typeahead?.source">\n <mat-option *ngFor="let word of options?.typeahead?.source"\n [value]="word">{{word}}</mat-option>\n </mat-autocomplete>\n </mat-form-field>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>',styles:["\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n "]}]}],B.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[n.MAT_FORM_FIELD_DEFAULT_OPTIONS]},{type:e.Optional}]},{type:o.JsonSchemaFormService}]},B.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var U=function(){function t(t,e){this.matFormFieldDefaultOptions=t,this.jsf=e,this.controlDisabled=!1,this.boundControl=!1,this.allowNegative=!0,this.allowDecimal=!0,this.allowExponents=!1,this.lastValidNumber=""}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.jsf.initializeControl(this),"integer"===this.layoutNode.dataType&&(this.allowDecimal=!1),this.options.notitle||this.options.description||!this.options.placeholder||(this.options.description=this.options.placeholder)},t.prototype.updateValue=function(t){this.jsf.updateValue(this,t.target.value)},t}();U.decorators=[{type:e.Component,args:[{selector:"material-number-widget",template:'\n <mat-form-field [appearance]="options?.appearance || matFormFieldDefaultOptions?.appearance || \'standard\'"\n [class]="options?.htmlClass || \'\'"\n [floatLabel]="options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? \'never\' : \'auto\')"\n [hideRequiredMarker]="options?.hideRequired ? \'true\' : \'false\'"\n [style.width]="\'100%\'">\n <mat-label *ngIf="!options?.notitle">{{options?.title}}</mat-label>\n <span matPrefix *ngIf="options?.prefix || options?.fieldAddonLeft"\n [innerHTML]="options?.prefix || options?.fieldAddonLeft"></span>\n <input matInput *ngIf="boundControl"\n [formControl]="formControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.max]="options?.maximum"\n [attr.min]="options?.minimum"\n [attr.step]="options?.multipleOf || options?.step || \'any\'"\n [id]="\'control\' + layoutNode?._id"\n [name]="controlName"\n [placeholder]="options?.notitle ? options?.placeholder : options?.title"\n [readonly]="options?.readonly ? \'readonly\' : null"\n [required]="options?.required"\n [style.width]="\'100%\'"\n [type]="\'number\'"\n (blur)="options.showErrors = true">\n <input matInput *ngIf="!boundControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.max]="options?.maximum"\n [attr.min]="options?.minimum"\n [attr.step]="options?.multipleOf || options?.step || \'any\'"\n [disabled]="controlDisabled"\n [id]="\'control\' + layoutNode?._id"\n [name]="controlName"\n [placeholder]="options?.notitle ? options?.placeholder : options?.title"\n [readonly]="options?.readonly ? \'readonly\' : null"\n [required]="options?.required"\n [style.width]="\'100%\'"\n [type]="\'number\'"\n [value]="controlValue"\n (input)="updateValue($event)"\n (blur)="options.showErrors = true">\n <span matSuffix *ngIf="options?.suffix || options?.fieldAddonRight"\n [innerHTML]="options?.suffix || options?.fieldAddonRight"></span>\n <mat-hint *ngIf="layoutNode?.type === \'range\'" align="start"\n [innerHTML]="controlValue"></mat-hint>\n <mat-hint *ngIf="options?.description && (!options?.showErrors || !options?.errorMessage)"\n align="end" [innerHTML]="options?.description"></mat-hint>\n </mat-form-field>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>',styles:["\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n "]}]}],U.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[n.MAT_FORM_FIELD_DEFAULT_OPTIONS]},{type:e.Optional}]},{type:o.JsonSchemaFormService}]},U.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var W=function(){function t(t){this.jsf=t,this.controlDisabled=!1,this.boundControl=!1}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.jsf.initializeControl(this)},t.prototype.updateValue=function(t){this.jsf.updateValue(this,t.target.value)},t}();W.decorators=[{type:e.Component,args:[{selector:"material-one-of-widget",template:""}]}],W.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},W.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var K=function(){function t(t){this.jsf=t,this.controlDisabled=!1,this.boundControl=!1,this.flexDirection="column",this.radiosList=[]}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},"radios-inline"===this.layoutNode.type&&(this.flexDirection="row"),this.radiosList=o.buildTitleMap(this.options.titleMap||this.options.enumNames,this.options.enum,!0),this.jsf.initializeControl(this,!this.options.readonly)},t.prototype.updateValue=function(t){this.options.showErrors=!0,this.jsf.updateValue(this,t)},t}();K.decorators=[{type:e.Component,args:[{selector:"material-radios-widget",template:'\n <div>\n <div *ngIf="options?.title">\n <label\n [attr.for]="\'control\' + layoutNode?._id"\n [class]="options?.labelHtmlClass || \'\'"\n [style.display]="options?.notitle ? \'none\' : \'\'"\n [innerHTML]="options?.title"></label>\n </div>\n <mat-radio-group *ngIf="boundControl"\n [formControl]="formControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.readonly]="options?.readonly ? \'readonly\' : null"\n [attr.required]="options?.required"\n [style.flex-direction]="flexDirection"\n [name]="controlName"\n (blur)="options.showErrors = true">\n <mat-radio-button *ngFor="let radioItem of radiosList"\n [id]="\'control\' + layoutNode?._id + \'/\' + radioItem?.name"\n [value]="radioItem?.value">\n <span [innerHTML]="radioItem?.name"></span>\n </mat-radio-button>\n </mat-radio-group>\n <mat-radio-group *ngIf="!boundControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.readonly]="options?.readonly ? \'readonly\' : null"\n [attr.required]="options?.required"\n [style.flex-direction]="flexDirection"\n [disabled]="controlDisabled || options?.readonly"\n [name]="controlName"\n [value]="controlValue">\n <mat-radio-button *ngFor="let radioItem of radiosList"\n [id]="\'control\' + layoutNode?._id + \'/\' + radioItem?.name"\n [value]="radioItem?.value"\n (click)="updateValue(radioItem?.value)">\n <span [innerHTML]="radioItem?.name"></span>\n </mat-radio-button>\n </mat-radio-group>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>\n </div>',styles:["\n mat-radio-group { display: inline-flex; }\n mat-radio-button { margin: 2px; }\n mat-error { font-size: 75%; }\n "]}]}],K.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},K.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var Q=function(){function t(t,e){this.matFormFieldDefaultOptions=t,this.jsf=e,this.controlDisabled=!1,this.boundControl=!1,this.selectList=[],this.isArray=o.isArray}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.selectList=o.buildTitleMap(this.options.titleMap||this.options.enumNames,this.options.enum,!!this.options.required,!!this.options.flatList),this.jsf.initializeControl(this,!this.options.readonly),this.options.notitle||this.options.description||!this.options.placeholder||(this.options.description=this.options.placeholder)},t.prototype.updateValue=function(t){this.options.showErrors=!0,this.jsf.updateValue(this,t.value)},t}();Q.decorators=[{type:e.Component,args:[{selector:"material-select-widget",template:'\n <mat-form-field\n [appearance]="options?.appearance || matFormFieldDefaultOptions?.appearance || \'standard\'"\n [class]="options?.htmlClass || \'\'"\n [floatLabel]="options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? \'never\' : \'auto\')"\n [hideRequiredMarker]="options?.hideRequired ? \'true\' : \'false\'"\n [style.width]="\'100%\'">\n <mat-label *ngIf="!options?.notitle">{{options?.title}}</mat-label>\n <span matPrefix *ngIf="options?.prefix || options?.fieldAddonLeft"\n [innerHTML]="options?.prefix || options?.fieldAddonLeft"></span>\n <mat-select *ngIf="boundControl"\n [formControl]="formControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.name]="controlName"\n [id]="\'control\' + layoutNode?._id"\n [multiple]="options?.multiple"\n [placeholder]="options?.notitle ? options?.placeholder : options?.title"\n [required]="options?.required"\n [style.width]="\'100%\'"\n (blur)="options.showErrors = true">\n <ng-template ngFor let-selectItem [ngForOf]="selectList">\n <mat-option *ngIf="!isArray(selectItem?.items)"\n [value]="selectItem?.value">\n <span [innerHTML]="selectItem?.name"></span>\n </mat-option>\n <mat-optgroup *ngIf="isArray(selectItem?.items)"\n [label]="selectItem?.group">\n <mat-option *ngFor="let subItem of selectItem.items"\n [value]="subItem?.value">\n <span [innerHTML]="subItem?.name"></span>\n </mat-option>\n </mat-optgroup>\n </ng-template>\n </mat-select>\n <mat-select *ngIf="!boundControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.name]="controlName"\n [disabled]="controlDisabled || options?.readonly"\n [id]="\'control\' + layoutNode?._id"\n [multiple]="options?.multiple"\n [placeholder]="options?.notitle ? options?.placeholder : options?.title"\n [required]="options?.required"\n [style.width]="\'100%\'"\n [value]="controlValue"\n (blur)="options.showErrors = true"\n (change)="updateValue($event)">\n <ng-template ngFor let-selectItem [ngForOf]="selectList">\n <mat-option *ngIf="!isArray(selectItem?.items)"\n [attr.selected]="selectItem?.value === controlValue"\n [value]="selectItem?.value">\n <span [innerHTML]="selectItem?.name"></span>\n </mat-option>\n <mat-optgroup *ngIf="isArray(selectItem?.items)"\n [label]="selectItem?.group">\n <mat-option *ngFor="let subItem of selectItem.items"\n [attr.selected]="subItem?.value === controlValue"\n [value]="subItem?.value">\n <span [innerHTML]="subItem?.name"></span>\n </mat-option>\n </mat-optgroup>\n </ng-template>\n </mat-select>\n <span matSuffix *ngIf="options?.suffix || options?.fieldAddonRight"\n [innerHTML]="options?.suffix || options?.fieldAddonRight"></span>\n <mat-hint *ngIf="options?.description && (!options?.showErrors || !options?.errorMessage)"\n align="end" [innerHTML]="options?.description"></mat-hint>\n </mat-form-field>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>',styles:["\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n "]}]}],Q.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[n.MAT_FORM_FIELD_DEFAULT_OPTIONS]},{type:e.Optional}]},{type:o.JsonSchemaFormService}]},Q.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var X=function(){function t(t){this.jsf=t,this.controlDisabled=!1,this.boundControl=!1,this.allowNegative=!0,this.allowDecimal=!0,this.allowExponents=!1,this.lastValidNumber=""}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.jsf.initializeControl(this,!this.options.readonly)},t.prototype.updateValue=function(t){this.options.showErrors=!0,this.jsf.updateValue(this,t.value)},t}();X.decorators=[{type:e.Component,args:[{selector:"material-slider-widget",template:'\n <mat-slider thumbLabel *ngIf="boundControl"\n [formControl]="formControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [id]="\'control\' + layoutNode?._id"\n [max]="options?.maximum"\n [min]="options?.minimum"\n [step]="options?.multipleOf || options?.step || \'any\'"\n [style.width]="\'100%\'"\n (blur)="options.showErrors = true"></mat-slider>\n <mat-slider thumbLabel *ngIf="!boundControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [disabled]="controlDisabled || options?.readonly"\n [id]="\'control\' + layoutNode?._id"\n [max]="options?.maximum"\n [min]="options?.minimum"\n [step]="options?.multipleOf || options?.step || \'any\'"\n [style.width]="\'100%\'"\n [value]="controlValue"\n (blur)="options.showErrors = true"\n (change)="updateValue($event)"></mat-slider>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>',styles:[" mat-error { font-size: 75%; } "]}]}],X.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},X.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var Y=function(){function t(t){this.jsf=t,this.controlDisabled=!1,this.boundControl=!1}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.jsf.initializeControl(this)},t.prototype.updateValue=function(t){this.jsf.updateValue(this,t.target.value)},t}();Y.decorators=[{type:e.Component,args:[{selector:"material-stepper-widget",template:""}]}],Y.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},Y.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var Z=function(){function t(t){this.jsf=t,this.selectedItem=0,this.showAddTab=!0}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.itemCount=this.layoutNode.items.length-1,this.updateControl()},t.prototype.select=function(t){"$ref"===this.layoutNode.items[t].type&&(this.jsf.addItem({layoutNode:this.layoutNode.items[t],layoutIndex:this.layoutIndex.concat(t),dataIndex:this.dataIndex.concat(t)}),this.updateControl()),this.selectedItem=t},t.prototype.updateControl=function(){this.itemCount=this.layoutNode.items.length-1;var t=this.layoutNode.items[this.layoutNode.items.length-1];this.showAddTab="$ref"===t.type&&this.itemCount<(t.options.maxItems||1e3)},t.prototype.setTabTitle=function(t,e){return this.jsf.setArrayItemTitle(this,t,e)},t}();Z.decorators=[{type:e.Component,args:[{selector:"material-tabs-widget",template:'\n <nav mat-tab-nav-bar\n [attr.aria-label]="options?.label || options?.title || \'\'"\n [style.width]="\'100%\'">\n <a mat-tab-link *ngFor="let item of layoutNode?.items; let i = index"\n [active]="selectedItem === i"\n (click)="select(i)">\n <span *ngIf="showAddTab || item.type !== \'$ref\'"\n [innerHTML]="setTabTitle(item, i)"></span>\n </a>\n </nav>\n <div *ngFor="let layoutItem of layoutNode?.items; let i = index"\n [class]="options?.htmlClass || \'\'">\n <select-framework-widget *ngIf="selectedItem === i"\n [class]="(options?.fieldHtmlClass || \'\') + \' \' + (options?.activeClass || \'\') + \' \' + (options?.style?.selected || \'\')"\n [dataIndex]="layoutNode?.dataType === \'array\' ? (dataIndex || []).concat(i) : dataIndex"\n [layoutIndex]="(layoutIndex || []).concat(i)"\n [layoutNode]="layoutItem"></select-framework-widget>\n </div>',styles:[" a { cursor: pointer; } "]}]}],Z.ctorParameters=function(){return[{type:o.JsonSchemaFormService}]},Z.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var tt=function(){function t(t,e){this.matFormFieldDefaultOptions=t,this.jsf=e,this.controlDisabled=!1,this.boundControl=!1}return t.prototype.ngOnInit=function(){this.options=this.layoutNode.options||{},this.jsf.initializeControl(this),this.options.notitle||this.options.description||!this.options.placeholder||(this.options.description=this.options.placeholder)},t.prototype.updateValue=function(t){this.jsf.updateValue(this,t.target.value)},t}();tt.decorators=[{type:e.Component,args:[{selector:"material-textarea-widget",template:'\n <mat-form-field [appearance]="options?.appearance || matFormFieldDefaultOptions?.appearance || \'standard\'"\n [class]="options?.htmlClass || \'\'"\n [floatLabel]="options?.floatLabel || matFormFieldDefaultOptions?.floatLabel || (options?.notitle ? \'never\' : \'auto\')"\n [hideRequiredMarker]="options?.hideRequired ? \'true\' : \'false\'"\n [style.width]="\'100%\'">\n <mat-label *ngIf="!options?.notitle">{{options?.title}}</mat-label>\n <span matPrefix *ngIf="options?.prefix || options?.fieldAddonLeft"\n [innerHTML]="options?.prefix || options?.fieldAddonLeft"></span>\n <textarea matInput *ngIf="boundControl"\n [formControl]="formControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.list]="\'control\' + layoutNode?._id + \'Autocomplete\'"\n [attr.maxlength]="options?.maxLength"\n [attr.minlength]="options?.minLength"\n [attr.pattern]="options?.pattern"\n [required]="options?.required"\n [id]="\'control\' + layoutNode?._id"\n [name]="controlName"\n [placeholder]="options?.notitle ? options?.placeholder : options?.title"\n [readonly]="options?.readonly ? \'readonly\' : null"\n [style.width]="\'100%\'"\n (blur)="options.showErrors = true"></textarea>\n <textarea matInput *ngIf="!boundControl"\n [attr.aria-describedby]="\'control\' + layoutNode?._id + \'Status\'"\n [attr.list]="\'control\' + layoutNode?._id + \'Autocomplete\'"\n [attr.maxlength]="options?.maxLength"\n [attr.minlength]="options?.minLength"\n [attr.pattern]="options?.pattern"\n [required]="options?.required"\n [disabled]="controlDisabled"\n [id]="\'control\' + layoutNode?._id"\n [name]="controlName"\n [placeholder]="options?.notitle ? options?.placeholder : options?.title"\n [readonly]="options?.readonly ? \'readonly\' : null"\n [style.width]="\'100%\'"\n [value]="controlValue"\n (input)="updateValue($event)"\n (blur)="options.showErrors = true"></textarea>\n <span matSuffix *ngIf="options?.suffix || options?.fieldAddonRight"\n [innerHTML]="options?.suffix || options?.fieldAddonRight"></span>\n <mat-hint *ngIf="options?.description && (!options?.showErrors || !options?.errorMessage)"\n align="end" [innerHTML]="options?.description"></mat-hint>\n </mat-form-field>\n <mat-error *ngIf="options?.showErrors && options?.errorMessage"\n [innerHTML]="options?.errorMessage"></mat-error>',styles:["\n mat-error { font-size: 75%; margin-top: -1rem; margin-bottom: 0.5rem; }\n ::ng-deep json-schema-form mat-form-field .mat-form-field-wrapper .mat-form-field-flex\n .mat-form-field-infix { width: initial; }\n "]}]}],tt.ctorParameters=function(){return[{type:void 0,decorators:[{type:e.Inject,args:[n.MAT_FORM_FIELD_DEFAULT_OPTIONS]},{type:e.Optional}]},{type:o.JsonSchemaFormService}]},tt.propDecorators={layoutNode:[{type:e.Input}],layoutIndex:[{type:e.Input}],dataIndex:[{type:e.Input}]};var et=[_,V,E,W,q,H,P,z,R,J,G,B,U,K,Q,X,Y,Z,tt,$],ot=function(t){function e(){var e=t.apply(this,S(arguments))||this;return e.name="material-design",e.framework=$,e.stylesheets=["//fonts.googleapis.com/icon?family=Material+Icons","//fonts.googleapis.com/css?family=Roboto:300,400,500,700"],e.widgets={root:_,section:V,$ref:E,button:q,"button-group":H,checkbox:P,checkboxes:z,"chip-list":R,date:J,file:G,number:U,"one-of":W,radios:K,select:Q,slider:X,stepper:Y,tabs:Z,text:B,textarea:tt,"alt-date":"date","any-of":"one-of",card:"section",color:"text","expansion-panel":"section",hidden:"none",image:"none",integer:"number",radiobuttons:"button-group",range:"slider",submit:"button",tagsinput:"chip-list",wizard:"stepper"},e}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");function o(){this.constructor=t}j(t,e),t.prototype=null===e?Object.create(e):(o.prototype=e.prototype,new o)}(e,t),e}(o.Framework);ot.decorators=[{type:e.Injectable}];var nt=[l.MatAutocompleteModule,p.MatButtonModule,d.MatButtonToggleModule,u.MatCardModule,c.MatCheckboxModule,m.MatChipsModule,h.MatDatepickerModule,y.MatExpansionModule,n.MatFormFieldModule,g.MatIconModule,x.MatInputModule,f.MatNativeDateModule,b.MatRadioModule,I.MatSelectModule,v.MatSliderModule,w.MatSlideToggleModule,M.MatStepperModule,N.MatTabsModule,C.MatTooltipModule,F.MatToolbarModule,L.MatMenuModule,F.MatToolbarModule],it=function(){var t;t=T.MediaMarshaller.prototype.updateElement,T.MediaMarshaller.prototype.updateElement=function(e,o,n){"layout-gap"===o&&null==n&&(n="0px"),t.apply(this,[e,o,n])}};it.decorators=[{type:e.NgModule,args:[{imports:S([a.CommonModule,r.FormsModule,r.ReactiveFormsModule,s.FlexLayoutModule],nt,[o.WidgetLibraryModule,o.JsonSchemaFormModule]),declarations:S(et),exports:S([o.JsonSchemaFormModule],et),providers:[o.JsonSchemaFormService,o.FrameworkLibraryService,o.WidgetLibraryService,{provide:o.Framework,useClass:ot,multi:!0}],entryComponents:S(et)}]}],it.ctorParameters=function(){return[]},t.ANGULAR_MATERIAL_MODULES=nt,t.FlexLayoutRootComponent=_,t.FlexLayoutSectionComponent=V,t.MATERIAL_FRAMEWORK_COMPONENTS=et,t.MaterialAddReferenceComponent=E,t.MaterialButtonComponent=q,t.MaterialButtonGroupComponent=H,t.MaterialCheckboxComponent=P,t.MaterialCheckboxesComponent=z,t.MaterialChipListComponent=R,t.MaterialDatepickerComponent=J,t.MaterialDesignFramework=ot,t.MaterialDesignFrameworkComponent=$,t.MaterialDesignFrameworkModule=it,t.MaterialFileComponent=G,t.MaterialInputComponent=B,t.MaterialNumberComponent=U,t.MaterialOneOfComponent=W,t.MaterialRadiosComponent=K,t.MaterialSelectComponent=Q,t.MaterialSliderComponent=X,t.MaterialStepperComponent=Y,t.MaterialTabsComponent=Z,t.MaterialTextareaComponent=tt,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
16
|
+
//# sourceMappingURL=ajsf-material.umd.min.js.map
|