@ajsf/material 0.3.0-beta.4 → 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.
Files changed (39) hide show
  1. package/ajsf-material.metadata.json +1 -1
  2. package/bundles/ajsf-material.umd.js +27 -29
  3. package/bundles/ajsf-material.umd.js.map +1 -1
  4. package/bundles/ajsf-material.umd.min.js +2 -2
  5. package/bundles/ajsf-material.umd.min.js.map +1 -1
  6. package/esm2015/ajsf-material.js +1 -1
  7. package/esm2015/lib/angular-flex-monkey-patch.js +1 -1
  8. package/esm2015/lib/material-design-framework.component.js +2 -2
  9. package/esm2015/lib/material-design-framework.module.js +1 -1
  10. package/esm2015/lib/material-design.framework.js +1 -1
  11. package/esm2015/lib/widgets/flex-layout-root.component.js +1 -1
  12. package/esm2015/lib/widgets/flex-layout-section.component.js +1 -1
  13. package/esm2015/lib/widgets/material-add-reference.component.js +1 -1
  14. package/esm2015/lib/widgets/material-button-group.component.js +1 -1
  15. package/esm2015/lib/widgets/material-button.component.js +1 -1
  16. package/esm2015/lib/widgets/material-checkbox.component.js +1 -1
  17. package/esm2015/lib/widgets/material-checkboxes.component.js +1 -1
  18. package/esm2015/lib/widgets/material-chip-list.component.js +1 -1
  19. package/esm2015/lib/widgets/material-datepicker.component.js +3 -6
  20. package/esm2015/lib/widgets/material-file.component.js +1 -1
  21. package/esm2015/lib/widgets/material-input.component.js +3 -6
  22. package/esm2015/lib/widgets/material-number.component.js +3 -6
  23. package/esm2015/lib/widgets/material-one-of.component.js +1 -1
  24. package/esm2015/lib/widgets/material-radios.component.js +1 -1
  25. package/esm2015/lib/widgets/material-select.component.js +3 -6
  26. package/esm2015/lib/widgets/material-slider.component.js +1 -1
  27. package/esm2015/lib/widgets/material-stepper.component.js +1 -1
  28. package/esm2015/lib/widgets/material-tabs.component.js +1 -1
  29. package/esm2015/lib/widgets/material-textarea.component.js +3 -6
  30. package/esm2015/lib/widgets/public_api.js +1 -1
  31. package/esm2015/public_api.js +1 -1
  32. package/fesm2015/ajsf-material.js +12 -22
  33. package/fesm2015/ajsf-material.js.map +1 -1
  34. package/lib/widgets/material-datepicker.component.d.ts +1 -2
  35. package/lib/widgets/material-input.component.d.ts +1 -2
  36. package/lib/widgets/material-number.component.d.ts +1 -2
  37. package/lib/widgets/material-select.component.d.ts +1 -2
  38. package/lib/widgets/material-textarea.component.d.ts +1 -2
  39. package/package.json +9 -6
@@ -1 +1 @@
1
- {"version":3,"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/material-design-framework.module.ts","../../../../projects/ajsf-material/src/lib/angular-flex-monkey-patch.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","create","__values","o","s","Symbol","iterator","m","i","length","next","value","done","TypeError","__read","n","r","e","ar","push","error","__spread","arguments","concat","FlexLayoutRootComponent","jsf","this","isFlexItem","removeItem","item","getFlexAttribute","node","attribute","index","indexOf","options","flex","split","showWidget","layoutNode","evaluateCondition","dataIndex","Component","args","selector","template","changeDetection","ChangeDetectionStrategy","Default","JsonSchemaFormService","Input","FlexLayoutSectionComponent","controlDisabled","boundControl","expanded","containerType","defineProperty","notitle","setItemTitle","ngOnInit","initializeControl","expandable","type","toggleExpanded","flexActive","displayFlex","display","fxLayout","fxLayoutWrap","MaterialAddReferenceComponent","arrayItem","layoutIndex","maxItems","addItem","event","preventDefault","parent","slice","getParentNode","add","setArrayItemTitle","itemCount","MaterialButtonComponent","_this","hasOwn","disabled","formOptions","disableInvalidSubmit","isValid","isValidChanges","subscribe","updateValue","onClick","target","MaterialButtonGroupComponent","radiosList","vertical","buildTitleMap","titleMap","enumNames","enum","showErrors","MaterialCheckboxComponent","trueValue","falseValue","showSlideToggle","readonly","controlValue","undefined","format","checked","getFormControlValue","MaterialCheckboxesComponent","horizontalList","checkboxList","formArray","getFormControl","_b","_c","checkboxItem","includes","filter","t","checkedItems","updateArrayCheckboxList","updateAllValues","forEach","MaterialChipListComponent","MaterialDatepickerComponent","matFormFieldDefaultOptions","matLabelGlobalOptions","autoCompleteList","formControl","setValue","dateToString","description","placeholder","Inject","MAT_FORM_FIELD_DEFAULT_OPTIONS","Optional","MAT_LABEL_GLOBAL_OPTIONS","MaterialDesignFrameworkComponent","changeDetector","frameworkInitialized","parentArray","isOrderable","dynamicTitle","widgetOptions","removable","recursiveReference","items","minItems","arrayItemType","initializeFramework","ngOnChanges","updateTitle","cloneDeep","widgetLayoutNode","assign","isDefined","minimum","maximum","multipleOf","test","title","orderable","parseText","getFormControlGroup","ChangeDetectorRef","MaterialFileComponent","MaterialInputComponent","MaterialNumberComponent","allowNegative","allowDecimal","allowExponents","lastValidNumber","dataType","MaterialOneOfComponent","MaterialRadiosComponent","flexDirection","MaterialSelectComponent","selectList","isArray","required","flatList","MaterialSliderComponent","MaterialStepperComponent","MaterialTabsComponent","selectedItem","showAddTab","updateControl","select","lastItem","setTabTitle","MaterialTextareaComponent","MATERIAL_FRAMEWORK_COMPONENTS","MaterialDesignFramework","_super","apply","name","framework","stylesheets","widgets","root","section","$ref","button","button-group","checkbox","checkboxes","chip-list","date","file","number","one-of","radios","slider","stepper","tabs","text","textarea","alt-date","any-of","card","color","expansion-panel","hidden","image","integer","radiobuttons","range","submit","tagsinput","wizard","__","constructor","__extends","Framework","Injectable","ANGULAR_MATERIAL_MODULES","MatAutocompleteModule","MatButtonModule","MatButtonToggleModule","MatCardModule","MatCheckboxModule","MatChipsModule","MatDatepickerModule","MatExpansionModule","MatFormFieldModule","MatIconModule","MatInputModule","MatNativeDateModule","MatRadioModule","MatSelectModule","MatSliderModule","MatSlideToggleModule","MatStepperModule","MatTabsModule","MatTooltipModule","MatToolbarModule","MatMenuModule","MediaMarshallerUpdateElement","MediaMarshaller","updateElement","element","key","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","FlexLayoutModule","WidgetLibraryModule","JsonSchemaFormModule","declarations","exports","providers","FrameworkLibraryService","WidgetLibraryService","provide","useClass","multi","entryComponents"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { 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_LABEL_GLOBAL_OPTIONS } from '@angular/material/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-datepicker-widget',\n template: `\n <mat-form-field [appearance]=\"options?.appearance || matFormFieldDefaultOptions?.appearance || 'standard'\"\n [class]=\"options?.htmlClass || ''\"\n [floatLabel]=\"options?.floatLabel || matLabelGlobalOptions?.float || (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 @Inject(MAT_LABEL_GLOBAL_OPTIONS) @Optional() public matLabelGlobalOptions,\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_LABEL_GLOBAL_OPTIONS } from '@angular/material/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 || matLabelGlobalOptions?.float || (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 @Inject(MAT_LABEL_GLOBAL_OPTIONS) @Optional() public matLabelGlobalOptions,\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_LABEL_GLOBAL_OPTIONS } from '@angular/material/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 || matLabelGlobalOptions?.float || (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 @Inject(MAT_LABEL_GLOBAL_OPTIONS) @Optional() public matLabelGlobalOptions,\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_LABEL_GLOBAL_OPTIONS } from '@angular/material/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 || matLabelGlobalOptions?.float || (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 @Inject(MAT_LABEL_GLOBAL_OPTIONS) @Optional() public matLabelGlobalOptions,\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_LABEL_GLOBAL_OPTIONS } from '@angular/material/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 || matLabelGlobalOptions?.float || (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 @Inject(MAT_LABEL_GLOBAL_OPTIONS) @Optional() public matLabelGlobalOptions,\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 {\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","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"]}
1
+ {"version":3,"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/material-design-framework.module.ts","../../../../projects/ajsf-material/src/lib/angular-flex-monkey-patch.ts"],"names":["extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","create","__values","o","s","Symbol","iterator","m","i","length","next","value","done","TypeError","__read","n","r","e","ar","push","error","__spread","arguments","concat","FlexLayoutRootComponent","jsf","this","isFlexItem","removeItem","item","getFlexAttribute","node","attribute","index","indexOf","options","flex","split","showWidget","layoutNode","evaluateCondition","dataIndex","Component","args","selector","template","changeDetection","ChangeDetectionStrategy","Default","JsonSchemaFormService","Input","FlexLayoutSectionComponent","controlDisabled","boundControl","expanded","containerType","defineProperty","notitle","setItemTitle","ngOnInit","initializeControl","expandable","type","toggleExpanded","flexActive","displayFlex","display","fxLayout","fxLayoutWrap","MaterialAddReferenceComponent","arrayItem","layoutIndex","maxItems","addItem","event","preventDefault","parent","slice","getParentNode","add","setArrayItemTitle","itemCount","MaterialButtonComponent","_this","hasOwn","disabled","formOptions","disableInvalidSubmit","isValid","isValidChanges","subscribe","updateValue","onClick","target","MaterialButtonGroupComponent","radiosList","vertical","buildTitleMap","titleMap","enumNames","enum","showErrors","MaterialCheckboxComponent","trueValue","falseValue","showSlideToggle","readonly","controlValue","undefined","format","checked","getFormControlValue","MaterialCheckboxesComponent","horizontalList","checkboxList","formArray","getFormControl","_b","_c","checkboxItem","includes","filter","t","checkedItems","updateArrayCheckboxList","updateAllValues","forEach","MaterialChipListComponent","MaterialDatepickerComponent","matFormFieldDefaultOptions","autoCompleteList","formControl","setValue","dateToString","description","placeholder","Inject","MAT_FORM_FIELD_DEFAULT_OPTIONS","Optional","MaterialDesignFrameworkComponent","changeDetector","frameworkInitialized","parentArray","isOrderable","dynamicTitle","widgetOptions","removable","recursiveReference","items","minItems","arrayItemType","initializeFramework","ngOnChanges","updateTitle","cloneDeep","widgetLayoutNode","assign","isDefined","minimum","maximum","multipleOf","test","title","orderable","parseText","getFormControlGroup","ChangeDetectorRef","MaterialFileComponent","MaterialInputComponent","MaterialNumberComponent","allowNegative","allowDecimal","allowExponents","lastValidNumber","dataType","MaterialOneOfComponent","MaterialRadiosComponent","flexDirection","MaterialSelectComponent","selectList","isArray","required","flatList","MaterialSliderComponent","MaterialStepperComponent","MaterialTabsComponent","selectedItem","showAddTab","updateControl","select","lastItem","setTabTitle","MaterialTextareaComponent","MATERIAL_FRAMEWORK_COMPONENTS","MaterialDesignFramework","_super","apply","name","framework","stylesheets","widgets","root","section","$ref","button","button-group","checkbox","checkboxes","chip-list","date","file","number","one-of","radios","slider","stepper","tabs","text","textarea","alt-date","any-of","card","color","expansion-panel","hidden","image","integer","radiobuttons","range","submit","tagsinput","wizard","String","__","constructor","__extends","Framework","Injectable","ANGULAR_MATERIAL_MODULES","MatAutocompleteModule","MatButtonModule","MatButtonToggleModule","MatCardModule","MatCheckboxModule","MatChipsModule","MatDatepickerModule","MatExpansionModule","MatFormFieldModule","MatIconModule","MatInputModule","MatNativeDateModule","MatRadioModule","MatSelectModule","MatSliderModule","MatSlideToggleModule","MatStepperModule","MatTabsModule","MatTooltipModule","MatToolbarModule","MatMenuModule","MediaMarshallerUpdateElement","MediaMarshaller","updateElement","element","key","NgModule","imports","CommonModule","FormsModule","ReactiveFormsModule","FlexLayoutModule","WidgetLibraryModule","JsonSchemaFormModule","declarations","exports","providers","FrameworkLibraryService","WidgetLibraryService","provide","useClass","multi","entryComponents"],"mappings":"wnFAgBIA,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBG,OAAOC,gBAClB,CAAEC,UAAW,cAAgBC,OAAS,SAAUL,EAAGC,GAAKD,EAAEI,UAAYH,IACvE,SAAUD,EAAGC,GAAK,IAAK,IAAIK,KAAKL,EAAOC,OAAOK,UAAUC,eAAeC,KAAKR,EAAGK,KAAIN,EAAEM,GAAKL,EAAEK,MAC3EN,EAAGC;;;;;;;;;;;;;;oFAuFCC,OAAOQ,gBAYpBC,EAASC,GACrB,IAAIC,EAAsB,mBAAXC,QAAyBA,OAAOC,SAAUC,EAAIH,GAAKD,EAAEC,GAAII,EAAI,EAC5E,GAAID,EAAG,OAAOA,EAAEP,KAAKG,GACrB,GAAIA,GAAyB,iBAAbA,EAAEM,OAAqB,MAAO,CAC1CC,KAAM,WAEF,OADIP,GAAKK,GAAKL,EAAEM,SAAQN,OAAI,GACrB,CAAEQ,MAAOR,GAAKA,EAAEK,KAAMI,MAAOT,KAG5C,MAAM,IAAIU,UAAUT,EAAI,0BAA4B,4CAGxCU,EAAOX,EAAGY,GACtB,IAAIR,EAAsB,mBAAXF,QAAyBF,EAAEE,OAAOC,UACjD,IAAKC,EAAG,OAAOJ,EACf,IAAmBa,EAAYC,EAA3BT,EAAID,EAAEP,KAAKG,GAAOe,EAAK,GAC3B,IACI,WAAc,IAANH,GAAgBA,KAAM,MAAQC,EAAIR,EAAEE,QAAQE,MAAMM,EAAGC,KAAKH,EAAEL,OAExE,MAAOS,GAASH,EAAI,CAAEG,MAAOA,WAEzB,IACQJ,IAAMA,EAAEJ,OAASL,EAAIC,EAAU,SAAID,EAAEP,KAAKQ,WAExC,GAAIS,EAAG,MAAMA,EAAEG,OAE7B,OAAOF,WAIKG,IACZ,IAAK,IAAIH,EAAK,GAAIV,EAAI,EAAGA,EAAIc,UAAUb,OAAQD,IAC3CU,EAAKA,EAAGK,OAAOT,EAAOQ,UAAUd,KACpC,OAAOU,EAqDczB,OAAOQ,wBC7K9B,SAAAuB,EACUC,GAAAC,KAAAD,IAAAA,EAHDC,KAAAC,YAAa,SAMtBH,EAAA1B,UAAA8B,WAAA,SAAWC,GACTH,KAAKD,IAAIG,WAAWC,IAKtBL,EAAA1B,UAAAgC,iBAAA,SAAiBC,EAAWC,GAC1B,IAAMC,EAAQ,CAAC,YAAa,cAAe,cAAcC,QAAQF,GACjE,QAASD,EAAKI,SAAW,IAAIC,MAAQ,IAAIC,MAAM,OAAOJ,KACnDF,EAAKI,SAAW,IAAIH,IAAc,CAAC,IAAK,IAAK,QAAQC,IAG1DT,EAAA1B,UAAAwC,WAAA,SAAWC,GACT,OAAOb,KAAKD,IAAIe,kBAAkBD,EAAYb,KAAKe,qCA7CtDC,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,0BACVC,SAAU,q7BAiBVC,gBAAiBC,EAAAA,wBAAwBC,qDAvBlCC,EAAAA,4DA0BNC,EAAAA,2BACAA,EAAAA,sBACAA,EAAAA,0BACAA,EAAAA,0BC+HD,SAAAC,EACU1B,GAAAC,KAAAD,IAAAA,EAVVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,EAEf3B,KAAA4B,UAAW,EACX5B,KAAA6B,cAAgB,aAShB9D,OAAA+D,eAAIL,EAAArD,UAAA,eAAY,KAAhB,WACE,OAAO4B,KAAKS,QAAQsB,QAAU,KAAO/B,KAAKD,IAAIiC,aAAahC,uCAG7DyB,EAAArD,UAAA6D,SAAA,WAKE,OAJAjC,KAAKD,IAAImC,kBAAkBlC,MAC3BA,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAK4B,SAA4C,kBAA1B5B,KAAKS,QAAQmB,SAClC5B,KAAKS,QAAQmB,UAAY5B,KAAKS,QAAQ0B,WAChCnC,KAAKa,WAAWuB,MACtB,IAAK,UAAW,IAAK,QAAS,IAAK,WAAY,IAAK,mBACpD,IAAK,eAAgB,IAAK,iBAAkB,IAAK,iBAC/CpC,KAAK6B,cAAgB,WACrB,MACF,IAAK,OACH7B,KAAK6B,cAAgB,OACrB,MACF,IAAK,kBACH7B,KAAK6B,cAAgB,kBACrB,MACF,QACE7B,KAAK6B,cAAgB,QAI3BJ,EAAArD,UAAAiE,eAAA,WACMrC,KAAKS,QAAQ0B,aAAcnC,KAAK4B,UAAY5B,KAAK4B,WAKvDH,EAAArD,UAAAgC,iBAAA,SAAiBE,GACf,IAAMgC,EACqB,SAAzBtC,KAAKa,WAAWuB,QACdpC,KAAKS,QAAQ8B,aACU,SAAzBvC,KAAKS,QAAQ+B,QAEf,OAAQlC,GACN,IAAK,UACH,OAAOgC,EACT,IAAK,UACH,OAAOA,EAAa,OAAS,UAC/B,IAAK,iBAAkB,IAAK,YAC1B,IAAM/B,EAAQ,CAAC,iBAAkB,aAAaC,QAAQF,GACtD,OAAQN,KAAKS,QAAQ,cAAgB,IAAIE,MAAM,OAAOJ,IACpDP,KAAKS,QAAQH,IAAc,CAAC,SAAU,UAAUC,GACpD,IAAK,kBAAmB,IAAK,cAAe,IAAK,gBAC/C,OAAOP,KAAKS,QAAQH,GACtB,IAAK,SACH,OAAQN,KAAKS,QAAQgC,UAAY,OAC/BzC,KAAKS,QAAQiC,aAAe,IAAM1C,KAAKS,QAAQiC,aAAe,8BA/MvE1B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,6BACVC,SAAU,skNAkID,6RAvIFI,EAAAA,6DAuJNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BC/HD,SAAAmB,EACU5C,GAAAC,KAAAD,IAAAA,SAGV4C,EAAAvE,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,IAG5C1C,OAAA+D,eAAIa,EAAAvE,UAAA,gBAAa,KAAjB,WACE,OAAQ4B,KAAKa,WAAW+B,WACtB5C,KAAK6C,YAAY7C,KAAK6C,YAAY9D,OAAS,GAAKiB,KAAKS,QAAQqC,0CAGjEH,EAAAvE,UAAA2E,QAAA,SAAQC,GACNA,EAAMC,iBACNjD,KAAKD,IAAIgD,QAAQ/C,OAGnBjC,OAAA+D,eAAIa,EAAAvE,UAAA,aAAU,KAAd,WACE,IAAM8E,EAAc,CAClBnC,UAAWf,KAAKe,UAAUoC,MAAM,GAAI,GACpCN,YAAa7C,KAAK6C,YAAYM,MAAM,GAAI,GACxCtC,WAAYb,KAAKD,IAAIqD,cAAcpD,OAErC,OAAOkD,EAAOrC,WAAWwC,KACvBrD,KAAKD,IAAIuD,kBAAkBJ,EAAQlD,KAAKa,WAAYb,KAAKuD,qEAjD9DvC,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,gCACVC,SAAU,maAUVC,gBAAiBC,EAAAA,wBAAwBC,qDAhBlCC,EAAAA,6DAuBNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BCUD,SAAAgC,EACUzD,GAAAC,KAAAD,IAAAA,EARVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,SAUf6B,EAAApF,UAAA6D,SAAA,WAAA,IAAAwB,EAAAzD,KACEA,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKD,IAAImC,kBAAkBlC,MACvB0D,EAAAA,OAAO1D,KAAKS,QAAS,YACvBT,KAAK0B,gBAAkB1B,KAAKS,QAAQkD,SAC3B3D,KAAKD,IAAI6D,YAAYC,uBAC9B7D,KAAK0B,iBAAmB1B,KAAKD,IAAI+D,QACjC9D,KAAKD,IAAIgE,eAAeC,WAAU,SAAAF,GAAW,OAAAL,EAAK/B,iBAAmBoC,OAIzEN,EAAApF,UAAA6F,YAAA,SAAYjB,GAC0B,mBAAzBhD,KAAKS,QAAQyD,QACtBlE,KAAKS,QAAQyD,QAAQlB,GAErBhD,KAAKD,IAAIkE,YAAYjE,KAAMgD,EAAMmB,OAAOlF,iCAnD7C+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,yBACVC,SAAU,guBAgBC,+EArBJI,EAAAA,6DA8BNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BCgBD,SAAA4C,EACUrE,GAAAC,KAAAD,IAAAA,EAVVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,EAEf3B,KAAAqE,WAAoB,GACpBrE,KAAAsE,UAAW,SASXF,EAAAhG,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKqE,WAAaE,EAAAA,cAChBvE,KAAKS,QAAQ+D,UAAYxE,KAAKS,QAAQgE,UACtCzE,KAAKS,QAAQiE,MAAM,GAErB1E,KAAKD,IAAImC,kBAAkBlC,OAG7BoE,EAAAhG,UAAA6F,YAAA,SAAYhF,GACVe,KAAKS,QAAQkE,YAAa,EAC1B3E,KAAKD,IAAIkE,YAAYjE,KAAMf,6BA5D9B+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,+BACVC,SAAU,8pCA2BC,gFAjCJI,EAAAA,6DA4CNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BCqCD,SAAAoD,EACU7E,GAAAC,KAAAD,IAAAA,EAXVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,EAEf3B,KAAA6E,WAAiB,EACjB7E,KAAA8E,YAAkB,EAClB9E,KAAA+E,iBAAkB,SASlBH,EAAAxG,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKD,IAAImC,kBAAkBlC,MAAOA,KAAKS,QAAQuE,UACrB,OAAtBhF,KAAKiF,mBAA+CC,IAAtBlF,KAAKiF,eACrCjF,KAAKiF,cAAe,EACpBjF,KAAKD,IAAIkE,YAAYjE,KAAMA,KAAK8E,aAEL,iBAAzB9E,KAAKa,WAAWuB,MACS,iBAA3BpC,KAAKa,WAAWsE,SAEhBnF,KAAK+E,iBAAkB,IAI3BH,EAAAxG,UAAA6F,YAAA,SAAYjB,GACVhD,KAAKS,QAAQkE,YAAa,EAC1B3E,KAAKD,IAAIkE,YAAYjE,KAAMgD,EAAMoC,QAAUpF,KAAK6E,UAAY7E,KAAK8E,aAGnE/G,OAAA+D,eAAI8C,EAAAxG,UAAA,YAAS,KAAb,WACE,OAAO4B,KAAKD,IAAIsF,oBAAoBrF,QAAUA,KAAK6E,oEAzGtD7D,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,2BACVC,SAAU,kyEA2DD,qIAhEFI,EAAAA,6DA+ENC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BChBD,SAAA8D,EACUvF,GAAAC,KAAAD,IAAAA,EAXVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,EAEf3B,KAAAuF,gBAAiB,EAEjBvF,KAAAwF,aAA+B,UAS/BF,EAAAlH,UAAA6D,SAAA,mBAQE,GAPAjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKuF,eAA0C,sBAAzBvF,KAAKa,WAAWuB,MACX,oBAAzBpC,KAAKa,WAAWuB,KAClBpC,KAAKD,IAAImC,kBAAkBlC,MAC3BA,KAAKwF,aAAejB,EAAAA,cAClBvE,KAAKS,QAAQ+D,UAAYxE,KAAKS,QAAQgE,UAAWzE,KAAKS,QAAQiE,MAAM,GAElE1E,KAAK2B,aAAc,CACrB,IAAM8D,EAAYzF,KAAKD,IAAI2F,eAAe1F,UAC1C,IAA2B,IAAA2F,EAAAnH,EAAAwB,KAAKwF,cAAYI,EAAAD,EAAA3G,QAAA4G,EAAA1G,KAAA0G,EAAAD,EAAA3G,OAAE,CAAzC,IAAM6G,EAAYD,EAAA3G,MACrB4G,EAAaT,QAAUK,EAAUxG,MAAM6G,SAASD,EAAa5G,4GAKnElB,OAAA+D,eAAIwD,EAAAlH,UAAA,aAAU,KAAd,WACE,OAAO4B,KAAKwF,aAAaO,QAAO,SAAAC,GAAK,OAAAA,EAAEZ,WAASrG,SAAWiB,KAAKwF,aAAazG,wCAG/EhB,OAAA+D,eAAIwD,EAAAlH,UAAA,cAAW,KAAf,WACE,IAAM6H,EAAejG,KAAKwF,aAAaO,QAAO,SAAAC,GAAK,OAAAA,EAAEZ,WAASrG,OAC9D,OAAOkH,EAAe,GAAKA,EAAejG,KAAKwF,aAAazG,wCAG9DuG,EAAAlH,UAAA6F,YAAA,WACEjE,KAAKS,QAAQkE,YAAa,EACtB3E,KAAK2B,cACP3B,KAAKD,IAAImG,wBAAwBlG,KAAMA,KAAKwF,eAIhDF,EAAAlH,UAAA+H,gBAAA,SAAgBnD,GACdhD,KAAKS,QAAQkE,YAAa,EAC1B3E,KAAKwF,aAAaY,SAAQ,SAAAJ,GAAK,OAAAA,EAAEZ,QAAUpC,EAAMoC,WACjDpF,KAAKiE,wCAlGRjD,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,6BACVC,SAAU,y7CAkCD,0SA1CFI,EAAAA,6DA4DNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BC3CD,SAAA6E,EACUtG,GAAAC,KAAAD,IAAAA,EARVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,SAUf0E,EAAAjI,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKD,IAAImC,kBAAkBlC,OAG7BqG,EAAAjI,UAAA6F,YAAA,SAAYjB,GACVhD,KAAKD,IAAIkE,YAAYjE,KAAMgD,EAAMmB,OAAOlF,iCA1B3C+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,4BACVC,SAAU,gDAPHI,EAAAA,6DAgBNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BC4DD,SAAA8E,EAC6DC,EACnDxG,GADmDC,KAAAuG,2BAAAA,EACnDvG,KAAAD,IAAAA,EAVVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,EAEf3B,KAAAwG,iBAA6B,UAU7BF,EAAAlI,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKD,IAAImC,kBAAkBlC,MAAOA,KAAKS,QAAQuE,UAC3ChF,KAAKiF,cACPjF,KAAKyG,YAAYC,SAASC,EAAAA,aAAa3G,KAAKiF,aAAcjF,KAAKS,UAE5DT,KAAKS,QAAQsB,SAAY/B,KAAKS,QAAQmG,cAAe5G,KAAKS,QAAQoG,cACrE7G,KAAKS,QAAQmG,YAAc5G,KAAKS,QAAQoG,cAI5CP,EAAAlI,UAAA6F,YAAA,SAAYjB,GACVhD,KAAKS,QAAQkE,YAAa,EACtB3B,EAAM/D,OACRe,KAAKyG,YAAYC,SAASC,EAAAA,aAAa3D,EAAM/D,MAAOe,KAAKS,oCA7F9DO,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,6BACVC,SAAU,0wFAoDD,wSAoBN2F,EAAAA,OAAM7F,KAAA,CAAC8F,EAAAA,iCAA8B,CAAA3E,KAAG4E,EAAAA,kBA/EpCzF,EAAAA,6DA0ENC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BCtDD,SAAAyF,EACUC,EACAnH,GADAC,KAAAkH,eAAAA,EACAlH,KAAAD,IAAAA,EAfVC,KAAAmH,sBAAuB,EAKvBnH,KAAAyG,YAAmB,KACnBzG,KAAAoH,YAAmB,KACnBpH,KAAAqH,aAAc,EACdrH,KAAAsH,aAAuB,YAWvBvJ,OAAA+D,eAAImF,EAAA7I,UAAA,mBAAgB,KAApB,WACE,SAAK4B,KAAKa,aAAeb,KAAKuH,cAAcC,WAC1CxH,KAAKuH,cAAcvC,UAAqC,SAAzBhF,KAAKa,WAAWuB,UAI7CpC,KAAKa,WAAW4G,uBAGfzH,KAAKa,WAAW+B,YAAc5C,KAAKoH,iBAIjCpH,KAAKoH,YAAYM,MAAM3I,OAAS,GAAKiB,KAAKoH,YAAY3G,QAAQkH,YAEjC,SAAlC3H,KAAKa,WAAW+G,eAEd5H,KAAK6C,YAAY7C,KAAK6C,YAAY9D,OAAS,KAAOiB,KAAKoH,YAAYM,MAAM3I,OAAS,sCAGxFkI,EAAA7I,UAAA6D,SAAA,WACEjC,KAAK6H,uBAGPZ,EAAA7I,UAAA0J,YAAA,WACO9H,KAAKmH,sBACRnH,KAAK6H,sBAEH7H,KAAKsH,cACPtH,KAAK+H,eAITd,EAAA7I,UAAAyJ,oBAAA,WACM7H,KAAKa,YACPb,KAAKS,QAAUuH,EAAAA,QAAUhI,KAAKa,WAAWJ,SAAW,IACpDT,KAAKiI,iBAAgBlK,OAAAmK,OAAAnK,OAAAmK,OAAA,GAChBlI,KAAKa,YAAU,CAClBJ,QAASuH,EAAAA,QAAUhI,KAAKa,WAAWJ,SAAW,MAEhDT,KAAKuH,cAAgBvH,KAAKiI,iBAAiBxH,QAC3CT,KAAKyG,YAAczG,KAAKD,IAAI2F,eAAe1F,MAGzCmI,EAAAA,UAAUnI,KAAKuH,cAAca,UAC7BD,EAAAA,UAAUnI,KAAKuH,cAAcc,UAC7BrI,KAAKuH,cAAce,YAAc,IAEjCtI,KAAKa,WAAWuB,KAAO,UAItB,CAAC,OAAQ,mBAAoB,eAAgB,SAAU,OACtD,WAAY,kBAAmB,OAAQ,UAAW,MAAO,UACzD,SAAU,WAAY,QAAQ0D,SAAS9F,KAAKa,WAAWuB,OACzD,UAAUmG,KAAKvI,KAAKuH,cAAciB,OAAS,MAE3CxI,KAAKsH,aAAetH,KAAKuH,cAAciB,MACvCxI,KAAK+H,eAGH/H,KAAKa,WAAW+B,WAAsC,SAAzB5C,KAAKa,WAAWuB,OAC/CpC,KAAKoH,YAAcpH,KAAKD,IAAIqD,cAAcpD,MACtCA,KAAKoH,cACPpH,KAAKqH,YACmC,QAAtCrH,KAAKoH,YAAYhF,KAAKe,MAAM,EAAG,IACG,SAAlCnD,KAAKa,WAAW+G,gBACf5H,KAAKuH,cAAcvC,UACpBhF,KAAKoH,YAAY3G,QAAQgI,YAI/BzI,KAAKmH,sBAAuB,GAE5BnH,KAAKS,QAAU,IAInBwG,EAAA7I,UAAA2J,YAAA,WACE/H,KAAKiI,iBAAiBxH,QAAQ+H,MAAQxI,KAAKD,IAAI2I,UAC7C1I,KAAKsH,aACLtH,KAAKD,IAAIsF,oBAAoBrF,MAC7BA,KAAKD,IAAI4I,oBAAoB3I,MAAMf,MACnCe,KAAKe,UAAUf,KAAKe,UAAUhC,OAAS,KAI3CkI,EAAA7I,UAAA8B,WAAA,WACEF,KAAKD,IAAIG,WAAWF,gCAlHvBgB,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,4BACVC,SAAA,wlDAPMyH,EAAAA,yBACWrH,EAAAA,6DAmBhBC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BCAD,SAAAqH,EACU9I,GAAAC,KAAAD,IAAAA,EARVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,SAUfkH,EAAAzK,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKD,IAAImC,kBAAkBlC,OAG7B6I,EAAAzK,UAAA6F,YAAA,SAAYjB,GACVhD,KAAKD,IAAIkE,YAAYjE,KAAMgD,EAAMmB,OAAOlF,iCA1B3C+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,uBACVC,SAAU,gDAPHI,EAAAA,6DAgBNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BC2DD,SAAAsH,EAC6DvC,EACnDxG,GADmDC,KAAAuG,2BAAAA,EACnDvG,KAAAD,IAAAA,EAXVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,EAEf3B,KAAAwG,iBAA6B,UAY7BsC,EAAA1K,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKD,IAAImC,kBAAkBlC,MACtBA,KAAKS,QAAQsB,SAAY/B,KAAKS,QAAQmG,cAAe5G,KAAKS,QAAQoG,cACrE7G,KAAKS,QAAQmG,YAAc5G,KAAKS,QAAQoG,cAI5CiC,EAAA1K,UAAA6F,YAAA,SAAYjB,GACVhD,KAAKD,IAAIkE,YAAYjE,KAAMgD,EAAMmB,OAAOlF,iCAzF3C+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,wBACVC,SAAU,uyFAoDD,wSAoBN2F,EAAAA,OAAM7F,KAAA,CAAC8F,EAAAA,iCAA8B,CAAA3E,KAAG4E,EAAAA,kBA9EpCzF,EAAAA,6DAwENC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BCCD,SAAAuH,EAC6DxC,EACnDxG,GADmDC,KAAAuG,2BAAAA,EACnDvG,KAAAD,IAAAA,EAbVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,EAEf3B,KAAAgJ,eAAgB,EAChBhJ,KAAAiJ,cAAe,EACfjJ,KAAAkJ,gBAAiB,EACjBlJ,KAAAmJ,gBAAkB,UAUlBJ,EAAA3K,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKD,IAAImC,kBAAkBlC,MACM,YAA7BA,KAAKa,WAAWuI,WAA0BpJ,KAAKiJ,cAAe,GAC7DjJ,KAAKS,QAAQsB,SAAY/B,KAAKS,QAAQmG,cAAe5G,KAAKS,QAAQoG,cACrE7G,KAAKS,QAAQmG,YAAc5G,KAAKS,QAAQoG,cAI5CkC,EAAA3K,UAAA6F,YAAA,SAAYjB,GACVhD,KAAKD,IAAIkE,YAAYjE,KAAMgD,EAAMmB,OAAOlF,iCAvF3C+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,yBACVC,SAAU,kkFAgDD,wSAsBN2F,EAAAA,OAAM7F,KAAA,CAAC8F,EAAAA,iCAA8B,CAAA3E,KAAG4E,EAAAA,kBA5EpCzF,EAAAA,6DAuENC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BCrDD,SAAA6H,EACUtJ,GAAAC,KAAAD,IAAAA,EARVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,SAUf0H,EAAAjL,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKD,IAAImC,kBAAkBlC,OAG7BqJ,EAAAjL,UAAA6F,YAAA,SAAYjB,GACVhD,KAAKD,IAAIkE,YAAYjE,KAAMgD,EAAMmB,OAAOlF,iCA1B3C+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,yBACVC,SAAU,gDAPHI,EAAAA,6DAgBNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BCgDD,SAAA8H,EACUvJ,GAAAC,KAAAD,IAAAA,EAVVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,EAEf3B,KAAAuJ,cAAgB,SAChBvJ,KAAAqE,WAAoB,UASpBiF,EAAAlL,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GACb,kBAAzBT,KAAKa,WAAWuB,OAClBpC,KAAKuJ,cAAgB,OAEvBvJ,KAAKqE,WAAaE,EAAAA,cAChBvE,KAAKS,QAAQ+D,UAAYxE,KAAKS,QAAQgE,UACtCzE,KAAKS,QAAQiE,MAAM,GAErB1E,KAAKD,IAAImC,kBAAkBlC,MAAOA,KAAKS,QAAQuE,WAGjDsE,EAAAlL,UAAA6F,YAAA,SAAYhF,GACVe,KAAKS,QAAQkE,YAAa,EAC1B3E,KAAKD,IAAIkE,YAAYjE,KAAMf,6BAjF9B+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,yBACVC,SAAU,m1DAyCD,8KA/CFI,EAAAA,6DA8DNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BC8BD,SAAAgI,EAC6DjD,EACnDxG,GADmDC,KAAAuG,2BAAAA,EACnDvG,KAAAD,IAAAA,EAXVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,EAEf3B,KAAAyJ,WAAoB,GACpBzJ,KAAA0J,QAAUA,EAAAA,eAUVF,EAAApL,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKyJ,WAAalF,EAAAA,cAChBvE,KAAKS,QAAQ+D,UAAYxE,KAAKS,QAAQgE,UACtCzE,KAAKS,QAAQiE,OAAQ1E,KAAKS,QAAQkJ,WAAY3J,KAAKS,QAAQmJ,UAE7D5J,KAAKD,IAAImC,kBAAkBlC,MAAOA,KAAKS,QAAQuE,UAC1ChF,KAAKS,QAAQsB,SAAY/B,KAAKS,QAAQmG,cAAe5G,KAAKS,QAAQoG,cACrE7G,KAAKS,QAAQmG,YAAc5G,KAAKS,QAAQoG,cAI5C2C,EAAApL,UAAA6F,YAAA,SAAYjB,GACVhD,KAAKS,QAAQkE,YAAa,EAC1B3E,KAAKD,IAAIkE,YAAYjE,KAAMgD,EAAM/D,iCA9GpC+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,yBACVC,SAAU,w7GAqED,wSAoBN2F,EAAAA,OAAM7F,KAAA,CAAC8F,EAAAA,iCAA8B,CAAA3E,KAAG4E,EAAAA,kBA/FpCzF,EAAAA,6DA0FNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BC/CD,SAAAqI,EACU9J,GAAAC,KAAAD,IAAAA,EAZVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,EAEf3B,KAAAgJ,eAAgB,EAChBhJ,KAAAiJ,cAAe,EACfjJ,KAAAkJ,gBAAiB,EACjBlJ,KAAAmJ,gBAAkB,UASlBU,EAAAzL,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKD,IAAImC,kBAAkBlC,MAAOA,KAAKS,QAAQuE,WAGjD6E,EAAAzL,UAAA6F,YAAA,SAAYjB,GACVhD,KAAKS,QAAQkE,YAAa,EAC1B3E,KAAKD,IAAIkE,YAAYjE,KAAMgD,EAAM/D,iCAtDpC+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,yBACVC,SAAU,2iCAuBC,gFA5BJI,EAAAA,6DAyCNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BCvBD,SAAAsI,EACU/J,GAAAC,KAAAD,IAAAA,EARVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,SAUfmI,EAAA1L,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKD,IAAImC,kBAAkBlC,OAG7B8J,EAAA1L,UAAA6F,YAAA,SAAYjB,GACVhD,KAAKD,IAAIkE,YAAYjE,KAAMgD,EAAMmB,OAAOlF,iCA1B3C+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,0BACVC,SAAU,gDAPHI,EAAAA,6DAgBNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,0BCgBD,SAAAuI,EACUhK,GAAAC,KAAAD,IAAAA,EAPVC,KAAAgK,aAAe,EACfhK,KAAAiK,YAAa,SASbF,EAAA3L,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKuD,UAAYvD,KAAKa,WAAW6G,MAAM3I,OAAS,EAChDiB,KAAKkK,iBAGPH,EAAA3L,UAAA+L,OAAA,SAAO5J,GACqC,SAAtCP,KAAKa,WAAW6G,MAAMnH,GAAO6B,OAC/BpC,KAAKD,IAAIgD,QAAQ,CACflC,WAAYb,KAAKa,WAAW6G,MAAMnH,GAClCsC,YAAa7C,KAAK6C,YAAYhD,OAAOU,GACrCQ,UAAWf,KAAKe,UAAUlB,OAAOU,KAEnCP,KAAKkK,iBAEPlK,KAAKgK,aAAezJ,GAGtBwJ,EAAA3L,UAAA8L,cAAA,WACElK,KAAKuD,UAAYvD,KAAKa,WAAW6G,MAAM3I,OAAS,EAChD,IAAMqL,EAAWpK,KAAKa,WAAW6G,MAAM1H,KAAKa,WAAW6G,MAAM3I,OAAS,GACtEiB,KAAKiK,WAA+B,SAAlBG,EAAShI,MACzBpC,KAAKuD,WAAa6G,EAAS3J,QAAQqC,UAAY,MAGnDiH,EAAA3L,UAAAiM,YAAA,SAAYlK,EAAWI,GACrB,OAAOP,KAAKD,IAAIuD,kBAAkBtD,KAAMG,EAAMI,6BA/DjDS,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,uBACVC,SAAU,g9BAmBD,yEAxBFI,EAAAA,6DA+BNC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,2BCqCD,SAAA8I,EAC6D/D,EACnDxG,GADmDC,KAAAuG,2BAAAA,EACnDvG,KAAAD,IAAAA,EATVC,KAAA0B,iBAAkB,EAClB1B,KAAA2B,cAAe,SAWf2I,EAAAlM,UAAA6D,SAAA,WACEjC,KAAKS,QAAUT,KAAKa,WAAWJ,SAAW,GAC1CT,KAAKD,IAAImC,kBAAkBlC,MACtBA,KAAKS,QAAQsB,SAAY/B,KAAKS,QAAQmG,cAAe5G,KAAKS,QAAQoG,cACrE7G,KAAKS,QAAQmG,YAAc5G,KAAKS,QAAQoG,cAI5CyD,EAAAlM,UAAA6F,YAAA,SAAYjB,GACVhD,KAAKD,IAAIkE,YAAYjE,KAAMgD,EAAMmB,OAAOlF,kCAhF3C+B,EAAAA,UAASC,KAAA,CAAC,CAETC,SAAU,2BACVC,SAAU,gjFA8CD,ySAkBN2F,EAAAA,OAAM7F,KAAA,CAAC8F,EAAAA,iCAA8B,CAAA3E,KAAG4E,EAAAA,kBAtEpCzF,EAAAA,8DAiENC,EAAAA,2BACAA,EAAAA,yBACAA,EAAAA,aC/CU+I,GAAgC,CAC3CzK,EAAyB2B,EACzBkB,EAA+B0G,EAC/B7F,EAAyBY,EACzBQ,EAA2BU,EAC3Be,EAA2BC,EAC3BuC,EAAuBC,EAAwBC,EAC/CO,EAAyBE,EAAyBK,EAClDC,EAA0BC,EAAuBO,GACjDrD,kBCFF,SAAAuD,IAAA,IAAA/G,EAAAgH,EAAAC,MAAA1K,KAAAL,EAAAC,aAAAI,YAEEyD,EAAAkH,KAAO,kBAEPlH,EAAAmH,UAAY3D,EAEZxD,EAAAoH,YAAc,CACZ,oDACA,4DAGFpH,EAAAqH,QAAU,CACRC,KAAQjL,EACRkL,QAAWvJ,EACXwJ,KAAQtI,EACRuI,OAAU1H,EACV2H,eAAgB/G,EAChBgH,SAAYxG,EACZyG,WAAc/F,EACdgG,YAAajF,EACbkF,KAAQjF,EACRkF,KAAQ3C,EACR4C,OAAU1C,EACV2C,SAAUrC,EACVsC,OAAUrC,EACVa,OAAUX,EACVoC,OAAU/B,EACVgC,QAAW/B,EACXgC,KAAQ/B,EACRgC,KAAQjD,EACRkD,SAAY1B,GACZ2B,WAAY,OACZC,SAAU,SACVC,KAAQ,UACRC,MAAS,OACTC,kBAAmB,UACnBC,OAAU,OACVC,MAAS,OACTC,QAAW,SACXC,aAAgB,eAChBC,MAAS,SACTC,OAAU,SACVC,UAAa,YACbC,OAAU,6BtBjDYhP,EAAGC,GACzB,GAAiB,mBAANA,GAA0B,OAANA,EAC3B,MAAM,IAAIqB,UAAU,uBAAyB2N,OAAOhP,GAAK,iCAE7D,SAASiP,IAAO/M,KAAKgN,YAAcnP,EADnCD,EAAcC,EAAGC,GAEjBD,EAAEO,UAAkB,OAANN,EAAaC,OAAOQ,OAAOT,IAAMiP,EAAG3O,UAAYN,EAAEM,UAAW,IAAI2O,GsBEtCE,CAAAzC,EAAAC,MAAAyC,EAAAA,gCAD5CC,EAAAA,iBCcYC,GAA2B,CACtCC,EAAAA,sBAAuBC,EAAAA,gBAAiBC,EAAAA,sBAAuBC,EAAAA,cAC/DC,EAAAA,kBAAmBC,EAAAA,eAAgBC,EAAAA,oBAAqBC,EAAAA,mBACxDC,EAAAA,mBAAoBC,EAAAA,cAAeC,EAAAA,eAAgBC,EAAAA,oBACnDC,EAAAA,eAAgBC,EAAAA,gBAAiBC,EAAAA,gBAAiBC,EAAAA,qBAClDC,EAAAA,iBAAkBC,EAAAA,cAAeC,EAAAA,iBACjCC,EAAAA,iBAAkBC,EAAAA,cAAeD,EAAAA,qBA+BjC,eC5EME,EAAAA,EAA+BC,EAAAA,gBAAgBvQ,UAAUwQ,cAE/DD,EAAAA,gBAAgBvQ,UAAUwQ,cAAgB,SAAUC,EAAsBC,EAAa7P,GACzE,eAAR6P,GAAoB,MAAK7P,IAC3BA,EAAQ,OAEVyP,EAA6BhE,MAAM1K,KAAM,CAAC6O,EAASC,EAAK7P,2BD0C3D8P,EAAAA,SAAQ9N,KAAA,CAAC,CACR+N,QAAOrP,EAAA,CACLsP,EAAAA,aACAC,EAAAA,YACAC,EAAAA,oBACAC,EAAAA,kBACGhC,GAAwB,CAC3BiC,EAAAA,oBACAC,EAAAA,uBAEFC,aAAY5P,EACP4K,IAELiF,QAAO7P,EAAA,CACL2P,EAAAA,sBACG/E,IAELkF,UAAW,CACTlO,EAAAA,sBACAmO,EAAAA,wBACAC,EAAAA,qBACA,CAACC,QAAS1C,EAAAA,UAAW2C,SAAUrF,GAAyBsF,OAAO,IAEjEC,gBAAepQ,EACV4K","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 {\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","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"]}