@mtna/web-form-angular 1.0.3 → 1.0.4-SNAPSHOT.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/mtna-web-form-angular.umd.js +3 -2
- package/bundles/mtna-web-form-angular.umd.js.map +1 -1
- package/esm2015/lib/components/form-stepper/form-stepper/form-stepper.component.js +4 -3
- package/fesm2015/mtna-web-form-angular.js +3 -2
- package/fesm2015/mtna-web-form-angular.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mtna-web-form-angular.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.mjs","../../../../projects/web-form-angular/src/lib/validators/validation-result-validator.ts","../../../../projects/web-form-angular/src/lib/validators/instant-validation-result-error-state-matcher.ts","../../../../projects/web-form-angular/src/lib/utilities/serializer-util.ts","../../../../projects/web-form-angular/src/lib/utilities/animations.ts","../../../../projects/web-form-angular/src/lib/utilities/is-form-group.ts","../../../../projects/web-form-angular/src/lib/utilities/find-form-control.ts","../../../../projects/web-form-angular/src/lib/utilities/find-form-item.ts","../../../../projects/web-form-angular/src/lib/models/form-stepper/base-form-step.model.ts","../../../../projects/web-form-angular/src/lib/models/form-stepper/form-step-group.model.ts","../../../../projects/web-form-angular/src/lib/models/form-stepper/form-step.model.ts","../../../../projects/web-form-angular/src/lib/models/api-config.ts","../../../../projects/web-form-angular/src/lib/models/form-item-dialog-data.model.ts","../../../../projects/web-form-angular/src/lib/models/white-list.model.ts","../../../../projects/web-form-angular/src/lib/utilities/flatten-steps.ts","../../../../projects/web-form-angular/src/lib/utilities/form-step.util.ts","../../../../projects/web-form-angular/src/lib/utilities/generate-form-steps.ts","../../../../projects/web-form-angular/src/lib/utilities/get-item-class-suffix.ts","../../../../projects/web-form-angular/src/lib/utilities/is-form-control.ts","../../../../projects/web-form-angular/src/lib/utilities/update-step-status.ts","../../../../projects/web-form-angular/src/lib/services/ui.service.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-form-item.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-form-item-control.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-group-item.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-value-item.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-parent-value-item.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-section-item.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-single-selection-parent-value-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-injector/form-item-injector.component.ts","../../../../projects/web-form-angular/src/lib/pipes/sanitize-html.pipe.ts","../../../../projects/web-form-angular/src/lib/components/item-header/item-header.component.ts","../../../../projects/web-form-angular/src/lib/components/item-header/item-header.component.html","../../../../projects/web-form-angular/src/lib/components/form-item/form-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item/form-item.component.html","../../../../projects/web-form-angular/src/lib/components/acknowledge-dialog/acknowledge-dialog.component.ts","../../../../projects/web-form-angular/src/lib/components/acknowledge-dialog/acknowledge-dialog.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-injector/form-item-injector.module.ts","../../../../projects/web-form-angular/src/lib/pipes/child-step-active.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-object-type.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-date-item.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-form-control.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-form-group.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-form-item.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-form-step-group.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-form-step.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/date-quarter.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/filter-hidden-items.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/form-step-group.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-active-form-step-item.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-auto-complete.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-available-quarters.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-form-control-error.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-list-icon.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-progressive-form-item.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-selected-option.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-step-aria-label.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/items-with-value.pipe.ts","../../../../projects/web-form-angular/src/lib/components/item-header/item-header.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item/form-item.module.ts","../../../../projects/web-form-angular/src/lib/components/acknowledge-dialog/acknowledge-dialog.module.ts","../../../../projects/web-form-angular/src/lib/services/api.service.ts","../../../../projects/web-form-angular/src/lib/components/form-item-dialog/form-item-dialog.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-dialog/form-item-dialog.component.html","../../../../projects/web-form-angular/src/lib/services/dialog.service.ts","../../../../projects/web-form-angular/src/lib/services/ng-form.service.ts","../../../../projects/web-form-angular/src/lib/services/form-manager.service.ts","../../../../projects/web-form-angular/src/lib/services/resource-search-selection.service.ts","../../../../projects/web-form-angular/src/lib/components/base-form/base-form.component.ts","../../../../projects/web-form-angular/src/lib/components/form-disabler/form-disabler.component.ts","../../../../projects/web-form-angular/src/lib/components/form/form.component.ts","../../../../projects/web-form-angular/src/lib/components/form/form.component.html","../../../../projects/web-form-angular/src/lib/components/form-disabler/form-disabler.module.ts","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-step/form-step.component.ts","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-step/form-step.component.html","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-step-group/form-step-group.component.ts","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-step-group/form-step-group.component.html","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-stepper/form-stepper.component.ts","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-stepper/form-stepper-new.component.html","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-stepper.module.ts","../../../../projects/web-form-angular/src/lib/components/step-card/step-card.component.ts","../../../../projects/web-form-angular/src/lib/components/step-card/step-card.component.html","../../../../projects/web-form-angular/src/lib/components/step-card/step-card.module.ts","../../../../projects/web-form-angular/src/lib/components/form/form.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/boolean/boolean.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/boolean/boolean.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/boolean/boolean.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/checkbox/checkbox.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/checkbox/checkbox.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-dialog/form-item-dialog.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/checkbox/checkbox.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date/date.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date/date.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date/date.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date-range/date-range.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date-range/date-range.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date-range/date-range.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/dropdown/dropdown.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/dropdown/dropdown.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/dropdown/dropdown.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/file-upload/file-upload.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/file-upload/file-upload.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/file-upload/file-upload.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-group/form-group.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-group/form-group.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-group/form-group.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-section/form-section.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-section/form-section.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-section/form-section.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/i18n-input/i18n-input.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/i18n-input/i18n-input.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/i18n-input/i18n-input.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/input/input.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/input/input.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/input/input.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/multiple-choice/multiple-choice.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/multiple-choice/multiple-choice.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/multiple-choice/multiple-choice.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/ordered-list/ordered-list-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/ordered-list/ordered-list-item.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/ordered-list/ordered-list-item.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/repeatable-item/repeatable-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/repeatable-item/repeatable-item.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/repeatable-item-container/repeatable-item-container.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/repeatable-item-container/repeatable-item-container.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/repeatable-item-container/repeatable-item-container.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/search/resource-search.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/search/resource-search.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/search/resource-search.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/table-item/table-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/table-item/table-item.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/table-item/table-item.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/text/text.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/text/text.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/text/text.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/title/title.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/title/title.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/title/title.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/unordered-list/unordered-list-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/unordered-list/unordered-list-item.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/unordered-list/unordered-list-item.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter/year-quarter.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter/year-quarter.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter/year-quarter.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter-range/year-quarter-range.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter-range/year-quarter-range.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter-range/year-quarter-range.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-component-provider/form-item-injected-components.ts","../../../../projects/web-form-angular/src/lib/components/form-item-component-provider/form-item-component-provider.ts","../../../../projects/web-form-angular/src/lib/components/progressive-form/progressive-form/progressive-form.component.ts","../../../../projects/web-form-angular/src/lib/components/progressive-form/progressive-form/progressive-form.component.html","../../../../projects/web-form-angular/src/lib/components/progressive-form/progressive-form/progressive-form.module.ts","../../../../projects/web-form-angular/src/mtna-web-form-angular.ts"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nimport { FormItemValidationResult } from '@mtna/web-form-ts';\n\nimport { MtnaWfManagerService } from '../services/form-manager.service';\n\nexport const MTNA_WF_FORM_ITEM_VALIDATION_RESULT_ERROR_NAME = 'formItemValidationResult';\n\n/**\n * Valitator function that will check the root level {@link FormValidationResult} on\n * the MTNA {@link Form} and see if there are any errors for a particular control.\n *\n * @param instanceId The instanceId of the form item for a particular control\n * @param managerService The manager service that holds a reference to the MTNA {@link Form} and it's {@link FormValidationResult}\n * @returns A validator function that will throw an error if there is a matching {@link FormItemValidationResult} for the specified item.\n */\nexport function validationResultValidator(instanceId: string, managerService: MtnaWfManagerService): ValidatorFn {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return (control: AbstractControl): ValidationErrors | null => {\n const formItemValidationResult: FormItemValidationResult | undefined = managerService.getFormItemValidationResults()[instanceId];\n return formItemValidationResult\n ? { [MTNA_WF_FORM_ITEM_VALIDATION_RESULT_ERROR_NAME]: formItemValidationResult.validationMessage }\n : null;\n };\n}\n","import { Injectable } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\n\nimport { isKey } from '@mtna/core-ts';\n\nimport { MTNA_WF_FORM_ITEM_VALIDATION_RESULT_ERROR_NAME } from './validation-result-validator';\n\n/**\n * Custom {@link ErrorStateMatcher} that will immediately show {@link FormValidationResult} errors.\n * Theses errors are calcualted on the server and need to always show.\n * Regular form validation will use the default error matcher strategy.\n */\n@Injectable({ providedIn: 'root' })\nexport class MtnaWfInstantValidationResultErrorStateMatcher extends ErrorStateMatcher {\n override isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n const hasValidationResultError = isKey(control?.errors, MTNA_WF_FORM_ITEM_VALIDATION_RESULT_ERROR_NAME);\n return hasValidationResultError || super.isErrorState(control, form);\n }\n}\n","import { AbstractControl, FormArray, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { InternationalizedString } from '@mtna/core-i18n-ts';\nimport { isNullOrUndefined, isPresent, isType } from '@mtna/core-ts';\nimport {\n CHECKBOX_ITEM_ID,\n CheckboxItem,\n ConditionalItem,\n DateRange,\n DECIMAL_ANSWER_ITEM_ID,\n DecimalAnswerItem,\n Form as WebForm,\n FormItem,\n FormItemGroup,\n FormItemImpl,\n I18N_PARAGRAPH_ANSWER_ITEM_ID,\n I18N_SHORT_ANSWER_ITEM_ID,\n InternationalizedParagraphAnswerItem,\n InternationalizedShortAnswerItem,\n isForm,\n isFormItemGroupImpl,\n isOffsetDateRangeItem,\n isProgressiveForm,\n isRepeatableItem,\n isSection,\n isTableItem,\n isWholeNumberItem,\n isYearQuarterRangeItem,\n Option,\n OptionGroupItemImpl,\n PARAGRAPH_ANSWER_ITEM_ID,\n ParagraphAnswerItem,\n RepeatableItem,\n SHORT_ANSWER_ITEM_ID,\n ShortAnswerItem,\n TableItem,\n TableRowItem,\n ValueItem,\n WHOLE_NUMBER_ANSWER_ITEM_ID,\n WholeNumberAnswerItem,\n YearQuarter,\n} from '@mtna/web-form-ts';\nimport { Moment } from 'moment';\n\nimport { MtnaWfManagerService } from '../services/form-manager.service';\nimport { validationResultValidator } from '../validators';\n\n/** Types of Validators that can be set on a FormControl */\nexport type ValidatorType = 'required' | 'requiredTrue' | 'email';\nexport type ValidatorWithNumberType = 'minLength' | 'maxLength' | 'min' | 'max';\n\n/** RegEx to validate number items contain only negative, digits, or decimals */\nconst numOnlyWithoutComma = /^-?\\d+(\\.\\d*)?$/;\n/** RegEx to validate number items contain only negative, digits, or decimals in comma format */\nconst numOnlyWithComma = /^-?\\d{1,3}(,\\d{3})*(\\.\\d*)?$/;\n/** RegEx to validate 'positive only' item conains non-negative characters */\nconst posOnly = /^[^-]*$/;\n/** RegEx to validate 'whole number' item contains only negative, digits, or comma format */\nconst wholeNumber = /^-?\\d+(,\\d{3})*$/;\n\n//#region FormControl Generation\n\n/**\n * Generates a new FormGroup with FormControls & possible nested FormGroups\n * @param formItem WebForm, Section, Group, or RepeatableItem used to create a FormGroup\n * @param customFormItemConditional boolean function for any custom FormItems\n * @param customControlGenerator FormControl generator function for any custom FormItems\n */\nexport function serializeFormItems(\n formItem: WebForm | FormItemGroup | RepeatableItem,\n managerService: MtnaWfManagerService,\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customControlGenerator?: (item: FormItem) => AbstractControl | null\n): FormGroup {\n const form: { [key: string]: AbstractControl } = {};\n\n for (const item of formItem.items) {\n const control = determineSerializeFunctionToUse(\n item as FormItemImpl<unknown>,\n managerService,\n customFormItemConditional,\n customControlGenerator\n );\n if (control) {\n form[item.instanceId] = control;\n }\n }\n const required = isForm(formItem) ? true : formItem.required;\n const group = required ? new FormGroup(form, Validators.required) : new FormGroup(form);\n if ('disabled' in formItem && formItem.disabled) {\n group.disable({ onlySelf: true, emitEvent: false });\n }\n return group;\n}\n\n/**\n * Returns a tailored FormControl with validators for a FormItem\n * @param formItem The FormItem requesting a tailored FormControl\n * @internal Creating the form control and then calling setValidators force a validation pass,\n * see https://github.com/angular/angular/issues/19622#issuecomment-341547884\n * Better to gather the validators and put them in the constructor of the form control.\n */\nexport function serializeFormItem(formItem: FormItemImpl<unknown>, managerService: MtnaWfManagerService): AbstractControl {\n const validators = new Array<ValidatorFn>(validationResultValidator(formItem.instanceId, managerService));\n if (formItem.required) {\n validators.push(Validators.required);\n }\n switch (formItem.itemId) {\n case CHECKBOX_ITEM_ID: {\n const checkboxItem = formItem as CheckboxItem;\n const value = checkboxItem.value || [];\n validators.push(numCheckboxesValidator('MIN', checkboxItem.minSelections), numCheckboxesValidator('MAX', checkboxItem.maxSelections));\n const arr = new FormArray(\n checkboxItem.options.map(\n (o) =>\n new FormControl({\n value: o.selected || value.some((v) => v === o.option.id),\n disabled: checkboxItem.disabled,\n })\n ),\n Validators.compose(validators)\n );\n return arr;\n }\n case DECIMAL_ANSWER_ITEM_ID:\n case WHOLE_NUMBER_ANSWER_ITEM_ID: {\n const item = formItem as DecimalAnswerItem | WholeNumberAnswerItem;\n validators.push(numericalValueCheck());\n if (isWholeNumberItem(item)) {\n validators.push(wholeNumberPattern());\n }\n if (item.positiveOnly) {\n validators.push(positiveNumberPattern());\n }\n if (!isNullOrUndefined(item.minValue)) {\n validators.push(numValueLimit('min', item.minValue));\n }\n if (!isNullOrUndefined(item.maxValue)) {\n validators.push(numValueLimit('max', item.maxValue));\n }\n break;\n }\n case PARAGRAPH_ANSWER_ITEM_ID:\n case SHORT_ANSWER_ITEM_ID: {\n const shortAnswerItem = formItem as ShortAnswerItem | ParagraphAnswerItem;\n validators.push(...getNumericValidator('minLength', shortAnswerItem.minCharCount));\n validators.push(...getNumericValidator('maxLength', shortAnswerItem.maxCharCount));\n break;\n }\n case I18N_PARAGRAPH_ANSWER_ITEM_ID:\n case I18N_SHORT_ANSWER_ITEM_ID: {\n const i18nItem = formItem as InternationalizedParagraphAnswerItem | InternationalizedShortAnswerItem;\n const group = new FormGroup({}, Validators.compose(validators));\n for (const language of i18nItem.languageTags) {\n // FIXME if there is nothign there in the value should I set a new internationalized string?\n group.controls[language] = new FormControl(formItem.value);\n }\n if (i18nItem.disabled) {\n group.disable({ onlySelf: true, emitEvent: false });\n }\n return group;\n }\n default:\n break;\n }\n return new FormControl({ value: formItem.value, disabled: !!formItem.disabled }, Validators.compose(validators));\n}\n\n/**\n * Builds controls for any form items nested inside a parent items options\n * @param formItem The FormItem with an 'options' property\n * @param customFormItemConditional conditional function from parent 'serializeFormItems' function\n * @param customControlGenerator FormControl generator from parent 'serializeFormItems' function\n */\nexport function serializeNestedOptionFormItems(\n formItem: OptionGroupItemImpl<Option<unknown>>,\n managerService: MtnaWfManagerService,\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customControlGenerator?: (item: FormItem) => AbstractControl | null\n): FormGroup {\n const controls: { [key: string]: AbstractControl } = {};\n for (const id in formItem.optionItemMap) {\n if (Object.prototype.hasOwnProperty.call(formItem.optionItemMap, id)) {\n const subItem = formItem.optionItemMap[id] as FormItemImpl<unknown>;\n const control = determineSerializeFunctionToUse(subItem, managerService, customFormItemConditional, customControlGenerator);\n if (control) {\n controls[subItem.instanceId] = control;\n }\n }\n }\n\n controls[formItem.instanceId] = serializeFormItem(formItem, managerService);\n const group = formItem.required ? new FormGroup(controls, Validators.required) : new FormGroup(controls);\n if (formItem.disabled) {\n group.disable({ onlySelf: true, emitEvent: false });\n }\n return group;\n}\n\n/**\n * Build FormControls for a TableItem\n * @param item TableItem requiring FormControls\n * @param customFormItemConditional Conditional function for custom any FormItems\n * @param customControlGenerator FormControl generator for custom any FormItems\n */\nexport function serializeTableItem(\n item: TableItem,\n managerService: MtnaWfManagerService,\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customControlGenerator?: (item: FormItem) => AbstractControl | null\n): FormGroup {\n const tableControl: { [key: string]: AbstractControl } = {};\n for (const row of item.tableRows) {\n for (const rowItem of row.items.filter((i) => !!i)) {\n const control = determineSerializeFunctionToUse(\n rowItem as FormItemImpl<unknown>,\n managerService,\n customFormItemConditional,\n customControlGenerator\n );\n if (control) {\n tableControl[rowItem.instanceId] = control;\n }\n }\n }\n const group = item.required ? new FormGroup(tableControl, Validators.required) : new FormGroup(tableControl);\n if (item.disabled) {\n group.disable({ onlySelf: true, emitEvent: false });\n }\n return group;\n}\n\n/**\n * Returns the appropriate function for the caller to use.\n *\n * @param formItem FormItem requiring serialization\n * @param customFormItemConditional Conditional for a custom FormItem\n * @param customControlGenerator Serializer for a custom FormItem\n */\nexport function determineSerializeFunctionToUse(\n formItem: FormItemImpl<unknown> | WebForm,\n managerService: MtnaWfManagerService,\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customControlGenerator?: (item: FormItem) => AbstractControl | null\n): AbstractControl | null {\n if (\n isForm(formItem) ||\n isProgressiveForm(formItem) ||\n isRepeatableItem(formItem) ||\n isSection(formItem) ||\n isFormItemGroupImpl(formItem)\n ) {\n return serializeFormItems(formItem, managerService, customFormItemConditional, customControlGenerator);\n } else if (isTableItem(formItem)) {\n return serializeTableItem(formItem, managerService, customFormItemConditional, customControlGenerator);\n } else if (customFormItemConditional(formItem) && !!customControlGenerator) {\n return customControlGenerator(formItem);\n } else if (hasNestedFormItems(formItem)) {\n return serializeNestedOptionFormItems(formItem as OptionGroupItemImpl<Option<unknown>>, managerService);\n } else if (isOffsetDateRangeItem(formItem) || isYearQuarterRangeItem(formItem)) {\n return serializeRangeItem(formItem);\n } else {\n return serializeFormItem(formItem, managerService);\n }\n}\n\n/**\n * Builds a FormGroup for a range item\n * @param formItem FormItem for a DateRange of Date | YearQuarter\n */\nexport function serializeRangeItem(formItem: FormItemImpl<DateRange<Date | YearQuarter>>): FormGroup {\n const validators = new Array<ValidatorFn>();\n if (formItem.required) {\n validators.push(Validators.required);\n }\n const group = new FormGroup(\n {\n start: new FormControl(formItem.value ? formItem.value.start : null),\n end: new FormControl(formItem.value ? formItem.value.end : null),\n },\n Validators.compose(validators)\n );\n if (formItem.disabled) {\n group.disable({ onlySelf: true, emitEvent: false });\n }\n return group;\n}\n\n/**\n * Returns a Validator with a numeric value for a FormItem;\n * Returns as an array of length 1 or 0\n * @param param0 `type` - type of validator, e.g. 'minLength';\n * `value` - parameter for the validator, e.g. 'minLength(value)'\n */\nfunction getNumericValidator(type: ValidatorWithNumberType, value: number): ValidatorFn[] {\n return !isNullOrUndefined(value) ? [Validators[type](value)] : [];\n}\n\n//#endregion\n\n//#region MtnaForm value insertion\n\n/**\n * Returns an array of Formitems with new values inserted.\n *\n * @param section The old Form or Form Section\n * @param ngFormValue ngForm JSON values\n * @param customFormItemConditional boolean function for any custom FormItems\n * @param customFormItemBuilder function to handle custom FormItems\n * @returns new FormItem array\n */\nexport function insertFormItemValues(\n section: WebForm | FormItemGroup | RepeatableItem,\n ngFormValue: Record<string, unknown>,\n disabledState: { [instanceId: string]: boolean },\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customFormItemBuilder?: (\n section: WebForm | FormItemGroup | RepeatableItem | undefined,\n item: FormItem,\n rfValue: unknown,\n disabledState: { [instanceId: string]: boolean }\n ) => ValueItem<unknown> | null\n): Array<FormItem> {\n return section.items\n .map((item) =>\n determineInsertFunctionToUse(\n item,\n ngFormValue[item.instanceId],\n disabledState,\n customFormItemConditional,\n customFormItemBuilder,\n section\n )\n )\n .filter(isPresent);\n}\n\n/**\n * Returns a copied TableItem, with each row FormItem having new inserted values.\n * @param item TableItem to insert values\n * @param ngFormValue ngForm value of the TableItem\n * @param customFormItemConditional boolean function for any custom FormItem\n * @param customFormItemBuilder function to handle custom FormItem value insertion\n */\nexport function insertTableItemValues(\n item: TableItem,\n ngFormValue: Record<string, unknown>,\n disabledState: { [instanceId: string]: boolean },\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customFormItemBuilder?: (\n section: WebForm | FormItemGroup | RepeatableItem | undefined,\n item: FormItem,\n rfValue: unknown,\n disabledState: { [instanceId: string]: boolean }\n ) => ValueItem<unknown> | null\n): TableItem {\n const tableRows = item.tableRows.map((row: TableRowItem) => ({\n ...row,\n items: row.items\n .filter(isPresent)\n .map((formItem) => {\n return determineInsertFunctionToUse(\n formItem,\n ngFormValue[formItem.instanceId],\n disabledState,\n customFormItemConditional,\n customFormItemBuilder\n );\n })\n .filter(isPresent),\n }));\n return { ...item, tableRows, disabled: _isDisabled(item, disabledState) };\n}\n\n/**\n * Returns a new FormItem after determining the appropriate function to use.\n * @param formItem FormItem requiring value insertion\n * @param ngFormValue ngForm value\n * @param customFormItemConditional Conditional for a custom FormItem\n * @param customFormItemBuilder Value insertion function for a custom FormItem\n * @param disabledState Map of items' disabled state\n * @param parent Parent of the FormItem, used to pass to the customFormItemBuilder\n */\nfunction determineInsertFunctionToUse(\n formItem: FormItem,\n ngFormValue: unknown,\n disabledState: { [instanceId: string]: boolean },\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customFormItemBuilder?: (\n section: WebForm | FormItemGroup | RepeatableItem | undefined,\n item: FormItem,\n rfValue: unknown,\n disabledState: { [instanceId: string]: boolean }\n ) => ValueItem<unknown> | null,\n parent?: WebForm | FormItemGroup | RepeatableItem\n): FormItem | null {\n if (isSection(formItem) || isFormItemGroupImpl(formItem) || isRepeatableItem(formItem)) {\n const items = insertFormItemValues(\n formItem,\n ngFormValue as Record<string, unknown>,\n disabledState,\n customFormItemConditional,\n customFormItemBuilder\n );\n return { ...formItem, items, disabled: _isDisabled(formItem, disabledState) } as FormItemGroup | RepeatableItem;\n } else if (isTableItem(formItem)) {\n return insertTableItemValues(\n formItem,\n ngFormValue as Record<string, unknown>,\n disabledState,\n customFormItemConditional,\n customFormItemBuilder\n );\n } else if (customFormItemConditional(formItem) && !!customFormItemBuilder) {\n return customFormItemBuilder(parent, formItem, ngFormValue, disabledState);\n } else if (hasNestedFormItems(formItem)) {\n return insertNestedFormItemValues(\n formItem as OptionGroupItemImpl<Option<unknown>>,\n ngFormValue as Record<string, unknown>,\n disabledState,\n customFormItemConditional,\n customFormItemBuilder\n );\n } else if (isOffsetDateRangeItem(formItem) || isYearQuarterRangeItem(formItem)) {\n const start = isType<{ start: YearQuarter | Date }>(ngFormValue, 'start') ? ngFormValue.start : undefined;\n const end = isType<{ end: YearQuarter | Date }>(ngFormValue, 'end') ? ngFormValue.end : undefined;\n return { ...formItem, value: { start, end }, disabled: _isDisabled(formItem, disabledState) } as FormItemImpl<\n DateRange<Date | YearQuarter>\n >;\n } else {\n return {\n ...formItem,\n value: findItemValue(formItem, ngFormValue),\n disabled: _isDisabled(formItem as FormItemImpl<unknown>, disabledState),\n } as FormItem;\n }\n}\n\n/**\n * Returns ngForm value for a FormItem.\n *\n * @param formItem FormItem requiring a value\n * @param ngFormValue ngForm value\n */\nfunction findItemValue(formItem: FormItem, ngFormValue: unknown): unknown {\n const itemId = formItem.itemId.split('.').pop();\n switch (itemId?.toUpperCase()) {\n // FIXME: can we put these IDs in constants and refer to them instead?\n case 'DATEITEM':\n return !!ngFormValue && typeof ngFormValue !== 'string' ? (ngFormValue as Moment).toISOString() : (ngFormValue as string);\n case 'CHECKBOXITEM':\n if (!isNullOrUndefined(ngFormValue) && Array.isArray(ngFormValue)) {\n const arr = ngFormValue as Array<boolean>;\n return (formItem as CheckboxItem).options.filter((o, index) => !!arr[index]).map((o) => o.option.id);\n }\n return [];\n case 'INTERNATIONALIZEDPARAGRAPHANSWERITEM':\n case 'INTERNATIONALIZEDSHORTANSWERITEM': {\n const languages =\n itemId?.toUpperCase() === 'INTERNATIONALIZEDPARAGRAPHANSWERITEM'\n ? (formItem as InternationalizedParagraphAnswerItem).languageTags\n : (formItem as InternationalizedShortAnswerItem).languageTags;\n\n const value = languages.reduce((value: InternationalizedString[], language) => {\n if (ngFormValue && typeof ngFormValue === 'object' && language in ngFormValue) {\n const input = (ngFormValue as Record<string, unknown>)[language];\n if (input) {\n value.push({ value: input as string, facetId: language });\n }\n }\n return value;\n }, []);\n return value;\n }\n default:\n return ngFormValue;\n }\n}\n\nfunction insertNestedFormItemValues(\n formItem: OptionGroupItemImpl<Option<unknown>>,\n ngFormValue: Record<string, unknown>,\n disabledState: { [instanceId: string]: boolean },\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customFormItemBuilder?: (\n section: WebForm | FormItemGroup | RepeatableItem | undefined,\n item: FormItem,\n rfValue: unknown,\n disabledState: { [instanceId: string]: boolean }\n ) => ValueItem<unknown> | null\n): FormItem {\n const optionItemMap: Record<string, unknown> = {};\n for (const id in formItem.optionItemMap) {\n if (Object.prototype.hasOwnProperty.call(formItem.optionItemMap, id)) {\n const subItem = formItem.optionItemMap[id];\n optionItemMap[id] = determineInsertFunctionToUse(\n subItem,\n ngFormValue[subItem.instanceId],\n disabledState,\n customFormItemConditional,\n customFormItemBuilder\n );\n }\n }\n return {\n ...formItem,\n optionItemMap,\n value: findItemValue(formItem, ngFormValue[formItem.instanceId]),\n disabled: _isDisabled(formItem, disabledState),\n } as OptionGroupItemImpl<Option<unknown>>;\n}\n\n//#endregion\n\n/**\n * Determines if a FormItem has an OptionItemMap with at least 1 item, which require their own FormControl(s)\n * @param formItem FormItem to check\n */\nexport function hasNestedFormItems(formItem: unknown): formItem is { optionItemMap: Record<string, unknown> } {\n return (\n isType<{\n optionItemMap: Record<string, unknown>;\n }>(formItem, 'optionItemMap') && Object.keys(formItem.optionItemMap).length > 0\n );\n}\n\n/**\n * Function for validating min/max selections limits\n * @param typeCheck Which limit to validate. 'MIN' | 'MAX'\n * @param limit upper or lower limit to check against\n */\nfunction numCheckboxesValidator(typeCheck: 'MIN' | 'MAX', limit = 1): ValidatorFn {\n return (control: AbstractControl) => {\n let totalSelected = 0;\n if (isFormArray(control)) {\n totalSelected = control.controls.map((c) => c.value).reduce((total, next) => (next ? total + next : total), 0);\n }\n\n switch (typeCheck) {\n case 'MIN':\n return totalSelected >= limit ? null : { minSelected: $localize`Select at least ${limit}` };\n case 'MAX':\n return totalSelected <= limit ? null : { maxSelected: $localize`Select no more than ${limit}` };\n }\n };\n}\n\nfunction isFormArray(control: AbstractControl): control is FormArray {\n return isType<FormArray>(control, 'controls');\n}\n\nfunction _isDisabled(item: ConditionalItem, disabledState: { [id: string]: boolean }): boolean {\n const disabled = disabledState[item.instanceId];\n return isNullOrUndefined(disabled) ? item.disabled : disabled;\n}\n\nfunction wholeNumberPattern(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isNullOrUndefined(control.value) || isEmptyString(control.value)) {\n return null;\n }\n\n return wholeNumber.test(control.value) ? null : { wholeNumber: true };\n };\n}\n\nfunction numericalValueCheck(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isNullOrUndefined(control.value) || isEmptyString(control.value)) {\n return null;\n }\n return numOnlyWithoutComma.test(control.value) || numOnlyWithComma.test(control.value) ? null : { nonDigit: true };\n };\n}\n\nfunction positiveNumberPattern(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isNullOrUndefined(control.value) || isEmptyString(control.value)) {\n return null;\n }\n return posOnly.test(control.value) ? null : { positive: true };\n };\n}\n\n/**\n * This works as a combination of the angular 'min'/'max' Validators. Using the built-in validators\n * appears to take precedence over custom validators, regardless of order in the array. Using this function\n * ensures validators set before this one maintain priority. For instance, the input value failing numerical validation\n * is more important than the value being within min-max range.\n */\nfunction numValueLimit(type: 'min' | 'max', limit: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isNullOrUndefined(control.value) || isEmptyString(control.value)) {\n return null;\n }\n const value = parseFloat(control.value);\n return !isNaN(value) && (type === 'min' ? value < limit : value > limit)\n ? {\n [type]: {\n [type]: limit,\n actual: control.value,\n },\n }\n : null;\n };\n}\n\nfunction isEmptyString(value: unknown): boolean {\n return typeof value === 'string' && !value.length;\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const COMPLEX_STANDARD = '300ms cubic-bezier(0.4, 0.0, 0.2, 1)';\n\nexport const MTNA_WF_EXPAND_COLLAPSE = trigger('mtnaWfExpandCollapse', [\n state('1', style({ height: '*', marginTop: '*', marginBottom: '*', opacity: 1 })),\n state('0', style({ height: 0, marginTop: 0, marginBottom: 0, opacity: 0, overflow: 'hidden', visibility: 'hidden' })),\n transition('1 <=> 0', [animate(COMPLEX_STANDARD)]),\n]);\n","import { FormGroup } from '@angular/forms';\n\nimport { isObject, isType } from '@mtna/core-ts';\n\n/** Typeguard for {@link FormGroup}. Determines if something is a FormGroup. */\nexport function isFormGroup(something: unknown): something is FormGroup {\n return isObject(something) && isType<FormGroup>(something, 'controls') && isObject(something.controls);\n}\n","import { AbstractControl, FormGroup } from '@angular/forms';\n\nimport { isFormGroup } from './is-form-group';\n\n/**\n * Recursively find a form control by name in a form group.\n * Depth first search down the tree of form groups to find a control.\n *\n * @note This will only work if the entire form has unique form control names.\n * @param name The unique name of the form cotrol to find.\n * @param group The {@link FormGroup} to search through.\n * @returns the found control or null\n */\nexport function findFormControl(name: string, group: FormGroup): AbstractControl | null {\n for (const key in group.controls) {\n if (Object.prototype.hasOwnProperty.call(group.controls, key)) {\n const control = group.controls[key];\n if (key === name) {\n return control;\n }\n\n // Recurse down if it's a FormGroup\n if (isFormGroup(control)) {\n const found = findFormControl(name, control);\n if (found) {\n return found;\n }\n }\n }\n }\n return null;\n}\n","import { isType } from '@mtna/core-ts';\nimport { Form, FormItem, FormItemGroup } from '@mtna/web-form-ts';\n\n/**\n * Recursively find a {@link FormItem} by instanceId in a {@link Form}.\n * Depth first search down the tree of {@link FormItemGroup} to find an item.\n *\n * @param instanceId The unique ID of the {@link FormItem} to find.\n * @param group The {@link Form} or {@link FormItemGroup} to search through.\n * @returns the found {@link FormItem} or `null`\n */\nexport function findFormItem(instanceId: string, group: Form | FormItemGroup): FormItem | null {\n for (const item of group.items) {\n if (item.instanceId === instanceId) {\n return item;\n }\n\n // If it's a FormGroup, search through it's children\n if (isType<FormItemGroup>(item, 'items')) {\n const found = findFormItem(instanceId, item);\n if (found) {\n return found;\n }\n }\n }\n return null;\n}\n","export class BaseFormStep {\n constructor(public instanceId: string) {}\n}\n","import { isType } from '@mtna/core-ts';\n\nimport { BaseFormStep } from './base-form-step.model';\nimport { FormStep } from './form-step.model';\n\nexport class FormStepGroup extends BaseFormStep {\n readonly className = 'FormStepGroup';\n constructor(public steps: FormStep[], instanceId: string, public collapsed = false, public label: string, public num: number | string) {\n super(instanceId);\n }\n}\n\nexport function isFormStepGroup(something: unknown): something is FormStepGroup {\n return isType<FormStepGroup>(something, 'steps') && Array.isArray(something.steps);\n}\n\nexport function instanceOfFormStepGroup(something: unknown): something is FormStepGroup {\n return isType<FormStepGroup>(something, 'className') && something.className === 'FormStepGroup';\n}\n","import { CircleStatus } from '@mtna/core-angular';\nimport { isType } from '@mtna/core-ts';\n\nimport { BaseFormStep } from './base-form-step.model';\n\nexport class FormStep extends BaseFormStep {\n readonly className = 'FormStep';\n active = false;\n disabledText?: string;\n status: CircleStatus = 'INVALID';\n disabled = false;\n constructor(public num: number | string, public label: string, instanceId: string, public optional = false) {\n super(instanceId);\n }\n}\n\nexport function instanceOfFormStep(something: unknown): something is FormStep {\n return isType<FormStep>(something, 'className') && something.className === 'FormStep';\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface MtnaWfApiConfig {\n baseUrl: string;\n}\n\nexport const MTNA_WF_API_TOKEN = new InjectionToken<MtnaWfApiConfig>('mtnaWfApiConfig');\n","import { FormItem } from '@mtna/web-form-ts';\n\n/**\n * Dialog data for a {@link MtnaWfFormItemDialogComponent}\n */\nexport class MtnaWfFormItemDialogData {\n /**\n * @param formItems The form items to render in the dialog\n * @param title optional dialog title\n */\n constructor(public formItems: FormItem[], public title?: string) {}\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface MtnaWfItemWhiteList {\n itemTypes: Array<string>;\n}\n\nexport const MTNA_WF_ITEM_WHITELIST = new InjectionToken<MtnaWfItemWhiteList>('mtna-wf-item-whitelist', {\n providedIn: 'root',\n factory: MTNA_WF_ITEM_WHITELIST_FACTORY,\n});\n\nexport function MTNA_WF_ITEM_WHITELIST_FACTORY(): MtnaWfItemWhiteList {\n return {\n itemTypes: [],\n };\n}\n","import { FormStep, FormStepGroup, isFormStepGroup } from '../models';\n\n/**\n * Flattens formStepGroup.steps and combines all steps into single array\n * @param steps Array<FormStep | FormStepGroup>\n * @returns FormStep[] array of the steps and children of step groups\n */\nexport function flattenSteps(steps: Array<FormStep | FormStepGroup>): Array<FormStep> {\n return steps.reduce((a, b) => a.concat(isFormStepGroup(b) ? b.steps : b), new Array<FormStep>());\n}\n","import { CircleStatus } from '@mtna/core-angular';\n\nimport { FormStep } from '../models';\n\n/**\n * Determines if every step matches a given status\n * @param statusToCheck CircleStatus to match against\n * @param steps FormSteps with statuses to check\n * @param includeDisabled If false or not supplied, disabled steps are excluded from check\n * @param includeOptional If false or not supplied, optional steps are excluded from check\n * @param exclusionIds string[] IDs of steps to exclude from check\n */\nexport function everyStepStatus(\n statusToCheck: CircleStatus,\n steps: Array<FormStep>,\n includeDisabled?: boolean,\n includeOptional?: boolean\n): boolean;\n/**\n * Determines if every step matches a given status\n * @param statusToCheck CircleStatus to match against\n * @param steps FormSteps with statuses to check\n * @param exclusionIds string[] IDs of steps to exclude from check\n */\nexport function everyStepStatus(statusToCheck: CircleStatus, steps: Array<FormStep>, exclusionIds?: Array<string>): boolean;\n/**\n * Determines if every step matches a given status\n * @param statusToCheck CircleStatus to match against\n * @param steps FormSteps with statuses to check\n * @param includeDisabled If false or not supplied, disabled steps are excluded from check\n * @param includeOptional If false or not supplied, optional steps are excluded from check\n * @param exclusionIds string[] IDs of steps to exclude from check\n */\nexport function everyStepStatus(\n statusToCheck: CircleStatus,\n steps: Array<FormStep>,\n includeDisabled?: boolean,\n includeOptional?: boolean,\n exclusionIds?: Array<string>\n): boolean;\nexport function everyStepStatus(\n statusToCheck: CircleStatus,\n steps: Array<FormStep>,\n a?: boolean | Array<string>,\n b?: boolean,\n c?: Array<string>\n): boolean {\n if (!steps || !steps.length) {\n return false;\n }\n let exclusionIds = c || [];\n let includeDisabled = false;\n let includeOptional = false;\n // If 'a' is not null, determine if it's the 'includeDisabled' boolean, or the exclusionIds array\n if (a !== null && a !== undefined) {\n if (Array.isArray(a)) {\n exclusionIds = a;\n } else {\n includeDisabled = a;\n includeOptional = b || false;\n }\n }\n return steps\n .filter(\n (s) =>\n // Step ID is not excluded\n !exclusionIds.some((id) => id === s.instanceId) &&\n // Step status is not disabled, unless checking for disabled status\n (includeDisabled ? true : s.status !== 'DISABLED') &&\n // Step is required, unless optional steps should be checked\n (includeOptional ? true : !s.optional)\n )\n .every((s) => s.status === statusToCheck);\n}\n","import { toLetters } from '@mtna/core-ts';\nimport { FormItem, isDataCubeItem, isSection, OutlineStep } from '@mtna/web-form-ts';\n\nimport { FormStep, FormStepGroup, isFormStepGroup } from '../models';\n\n/**\n * Builds up an array of FormSteps or FormStepGroups based on what is found in the provided form items. For most typical\n * forms this will mean that a step is generated for every section that is found in the form. It is assumed that all\n * inputs are held within sections and therefore the sections are the steps that should be monitored for completeness.\n * However, in some circumstances, like very short forms, it may be the case that there are no sections and that all\n * the items are set directly on the form itself. In these circumstances the allSteps parameter can be set to true and\n * a step will be produced for each form item found.\n *\n * @param items the items of the form\n * @param allSteps flag indicating that a form step should be produced for every form item\n */\nexport function generateFormSteps(items: Array<FormItem>, allSteps = false): Array<FormStep | FormStepGroup> {\n // Build up an array of steps based on the form items\n return items.reduce((newArray: Array<FormStep | FormStepGroup>, item: FormItem) => {\n // The number of non-group steps, used to number the top level steps\n const count = newArray.filter((step) => !isFormStepGroup(step)).length;\n if (allSteps) {\n newArray.push(new FormStep(count + 1, item.name || 'No Title', item.instanceId, !item.required));\n } else if (isSection(item)) {\n // If the item is a Section, add a step\n newArray.push(new FormStep(count + 1, item.title.value || 'No Title', item.instanceId, !item.required));\n } else if (isDataCubeItem(item)) {\n // If the item is a DataCubeItem, add a step and add a group step for the sub-sections\n newArray.push(new FormStep(count + 1, item.title.value || '', item.instanceId, !item.required));\n\n const subSectionSteps = item.items\n .filter(isSection)\n .map((item, index) => new FormStep(`${count + 1}${toLetters(index + 1)}`, item.title.value || '', item.instanceId, !item.required));\n newArray.push(new FormStepGroup(subSectionSteps, item.instanceId, false, item.name, count + 1));\n }\n\n return newArray;\n }, []);\n}\n\nexport function generateFormStepsFromOutline(outline: OutlineStep[]): Array<FormStep | FormStepGroup> {\n return outline.reduce((newArray: Array<FormStep | FormStepGroup>, step: OutlineStep) => {\n // The number of non-group steps, used to number the top level steps\n const count = newArray.filter((step) => !isFormStepGroup(step)).length;\n if (step.childSteps && step.childSteps.length > 0) {\n newArray.push(new FormStep(count + 1, step.label, step.instanceId || step.templateId, step.optional));\n const subSectionSteps = step.childSteps.map(\n (item, index) => new FormStep(`${count + 1}${toLetters(index + 1)}`, item.label, item.instanceId || item.templateId, item.optional)\n );\n newArray.push(new FormStepGroup(subSectionSteps, step.instanceId || step.templateId, false, step.label, count + 1));\n } else {\n newArray.push(new FormStep(count + 1, step.label, step.instanceId || step.templateId, step.optional));\n }\n return newArray;\n }, []);\n}\n\n// model from andrew\nexport interface FormStepData extends OutlineStep {\n num: string;\n}\n","import { FORM_ITEM_GROUP_IMPL_ID, SECTION_ID, TEXT_ITEM_ID, TITLE_ITEM_ID } from '@mtna/web-form-ts';\n\nexport function getItemClassSuffix(itemId: string): string {\n // FIXME: surely there is a stronger/better way\n switch (itemId) {\n case FORM_ITEM_GROUP_IMPL_ID:\n return 'group';\n case SECTION_ID:\n return 'section';\n case TEXT_ITEM_ID:\n return 'text';\n case TITLE_ITEM_ID:\n return 'title';\n default:\n return 'item';\n }\n}\n","import { FormControl } from '@angular/forms';\nimport { isObject, isType } from '@mtna/core-ts';\n\nexport function isFormControl(something: unknown): something is FormControl {\n return isObject(something) && isType<FormControl>(something, 'value') && typeof something.value === 'string';\n}\n","import { CircleStatus } from '@mtna/core-angular';\nimport { isType } from '@mtna/core-ts';\nimport { Form, FormItemGroup, ProgressiveForm } from '@mtna/web-form-ts';\n\nimport { FormStep } from '../models';\nimport { findFormItem } from './find-form-item';\n\n/**\n * Update a {@link FormStep}'s `status`.\n * The server side form validation errors will trump the provided `status`.\n *\n * @param instanceId the instanceId of the step to update, otherwise return the original step\n * @param step the step to check\n * @param status the new status to apply to the step\n * @param form the containing form\n * @returns an updated step with the correct status\n */\nexport function updateStepStatus(\n instanceId: string,\n step: FormStep,\n status: CircleStatus,\n form: Form | ProgressiveForm | null | undefined\n): FormStep {\n if (instanceId !== step.instanceId) {\n // These aren't the droids you're looking for.\n // Return unmodified step.\n return step;\n }\n\n // A server validation error will trump the provided status\n if (form?.validationResult?.formItemValidationResults.length) {\n // Get the FormGroup that represents the step\n const group = findFormItem(step.instanceId, form);\n if (isType<FormItemGroup>(group, 'items')) {\n for (const error of form.validationResult.formItemValidationResults) {\n const itemWithError = findFormItem(error.id, group);\n // If the invalid item is within the step group,\n // show an error state\n if (itemWithError) {\n return { ...step, status: 'ERROR' };\n }\n }\n }\n }\n\n // There were no server side validation errors, just update the status\n return { ...step, status };\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { FormGroup, ValidationErrors } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { isPresent, isType } from '@mtna/core-ts';\nimport { AnnotatableNumberMap } from '@mtna/pojo-social-angular';\nimport { ConditionalItem, FormItem, FormItemImpl, isConditionalItem, isOptionGroupItemImpl, isOptionItemImpl } from '@mtna/web-form-ts';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { MtnaWfFormItemComponent } from '../components/form-item/form-item.component';\n\n/** Registry of custom error messages for a specific form item. A custom error can also\n * be a function returning a string. The FormItem object is passed to any ValidationErrors\n * that are functions, so item specific information can be provided.\n * @example {\n * max: `This field's value must be less.`,\n * min: (item: FormItemImpl<any>) => instanceofWholeNumberItem(item)\n * ? `This field's value must be greater than ${item.minValue}.`\n * : `This field's value must be greater.`\n * }\n */\n// tslint:disable-next-line:interface-over-type-literal\nexport type CustomErrors = {\n [id: string]: ValidationErrors;\n};\n\n/** List of default error messages to display */\nexport const DEFAULT_ERROR_MESSAGES: ValidationErrors = {\n email: $localize`This field must include a valid email format.`,\n max: (item?: FormItemImpl<number> & { maxValue: number; minValue: number }) =>\n !isPresent(item) || !isPresent(item?.maxValue)\n ? $localize`This field's value must be less.`\n : isPresent(item?.minValue)\n ? $localize`Min value: ${item.minValue} - `\n : '' + $localize`Max value: ${item.maxValue}`,\n maxlength: $localize`This field has exceeded the allowed maximum.`,\n maxSelected: null,\n min: (item?: FormItemImpl<number> & { maxValue: number; minValue: number }) =>\n !isPresent(item) || !isPresent(item?.minValue)\n ? $localize`This field's value must be greater.`\n : $localize`Min Value: ${item.minValue}` + isPresent(item?.maxValue)\n ? $localize` - Max Value: ${item.maxValue}`\n : '',\n minlength: $localize`This field has not met the required minimum.`,\n minSelected: null,\n nonDigit: $localize`This field's value must be numeric.`,\n pattern: $localize`This field's input does not meet the accepted pattern.`,\n positive: $localize`This field's value cannot be negative.`,\n required: $localize`This field is required.`,\n requiredTrue: `$localizeThis field's value must be 'true'.`,\n wholeNumber: $localize`This field cannot contain a decimal.`,\n matDatepickerParse: $localize`This field's value is not an accepted format.`,\n};\n\nexport const WEB_FORM_CUSTOM_ERRORS = new InjectionToken<CustomErrors>('mtnaWebFormCustomFormErrors');\n\n@Injectable({ providedIn: 'root' })\nexport class MtnaWfUIService {\n /** Map of annotation counts for each annotatable item */\n private annotations: { [id: string]: BehaviorSubject<number | null> } = {};\n /** Map of components in the MtnaForm */\n private components: { [instanceId: string]: MtnaWfFormItemComponent } = {};\n /** Map of item.disabled values that have changed */\n private disabledState: { [instanceId: string]: boolean } = {};\n /** Map of toggler ID's for components that have multiple togglers */\n private multipleEnablers: { [instanceId: string]: { [togglerId: string]: string } | null } = {};\n private errors: CustomErrors;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(private dialog: MatDialog, @Optional() @Inject(WEB_FORM_CUSTOM_ERRORS) errors?: any) {\n // Workaround for: Metadata collected contains an error that will be reported at runtime: Could not resolve type CustomErrors.\n // see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642\n this.errors = errors as CustomErrors;\n }\n\n getDisabledStates() {\n return { ...this.disabledState };\n }\n\n /**\n * Returns an error message matching the error id\n * @param errorId Id of the error, to find the associated error message\n * @param item FormItem to pass to ValidationErrors that are functions. For instance,\n * this is useful for 'min' & 'max' value limits to display more helpful messages\n */\n getError(errorId: string, item?: FormItemImpl<unknown>): string {\n // default when no custom message exists\n let error = DEFAULT_ERROR_MESSAGES[errorId];\n if (!!this.errors && !!item) {\n // check for instance specific, via instanceId\n if (isPresent(this.errors[item.instanceId]) && isPresent(this.errors[item.instanceId][errorId])) {\n error = this.errors[item.instanceId][errorId];\n // check for item specific, via itemId\n } else if (isPresent(this.errors[item.itemId]) && isPresent(this.errors[item.itemId][errorId])) {\n error = this.errors[item.itemId][errorId];\n }\n }\n return typeof error === 'function' ? error(item) : error;\n }\n\n /**\n * Get a registered component by intance id.\n * @param id the instanceId\n * @returns the {@link FormItemComponent} that represents that ID or undefined if not registered.\n */\n getItem(id: string): MtnaWfFormItemComponent | undefined {\n return this.components[id];\n }\n\n /**\n * Sets the initial map of annotation counts, and/or pushes the new count onto the component observable stream\n * @param map AnnotatableNumberMap of counts mapped to their annotatableIds\n */\n registerAnnotations(map: AnnotatableNumberMap) {\n for (const id in map) {\n if (Object.prototype.hasOwnProperty.call(map, id)) {\n if (!this.annotations[id]) {\n this.annotations[id] = new BehaviorSubject<number | null>(map[id]);\n } else {\n this.annotations[id].next(map[id]);\n }\n }\n }\n }\n\n /**\n * Maps a component to its items instanceId.\n * @param component component calling this method, i.e. 'this'\n */\n registerSelf(component: MtnaWfFormItemComponent) {\n this.components[component.item.instanceId] = component;\n if (!!component.item.annotatableId && component.item.annotationEnabled) {\n if (!this.annotations[component.item.annotatableId]) {\n this.annotations[component.item.annotatableId] = new BehaviorSubject<number | null>(null);\n }\n component.annotations$ = this.annotations[component.item.annotatableId].asObservable();\n }\n }\n\n /**\n * Toggles a FormItem's visiblity and enable/disable state\n *\n * @param enabledItemIds array of component IDs for enabled items.\n * @param disabledItemIds array of component IDs for disabled items.\n * @param enabled Whether the enabledItemIds are enabled.\n * @param callerId instanceId of the item invoking this function\n * @param reset Whether to reset the multiple enabler map of the toggled item\n */\n toggleFormItems(enabledItemIds: Array<string>, disabledItemIds: Array<string>, enabled: boolean, callerId: string, reset = false) {\n if ((!enabledItemIds || !enabledItemIds.length) && (!disabledItemIds || !disabledItemIds.length)) {\n return;\n }\n const allIds = [enabledItemIds, disabledItemIds];\n for (let i = 0; i < allIds.length; i++) {\n const itemIds = allIds[i];\n const isEnabled = i === 0 ? enabled : !enabled;\n for (const id of itemIds) {\n const component = this.components[id];\n // If component is registered, toggle it\n if (component) {\n const item = component.item;\n const hasMultipleEnablers = isConditionalItem(item) && item.condition ? item.condition.itemIds.length > 1 : false;\n // If item has more than 1 enabler, handle multiple enablers\n if (hasMultipleEnablers) {\n if (reset) {\n this.multipleEnablers[item.instanceId] = null;\n }\n // If a map has not been registered, then build up a map to register\n // Should only happen the first time an item is toggled.\n if (!this.multipleEnablers[item.instanceId] && isConditionalItem(item)) {\n this.multipleEnablers[item.instanceId] = this._registerCurrentEnablers(item);\n }\n // handle Multiple Enablers\n this._handleMultipleEnablers(component, isEnabled, callerId);\n } else {\n // Not multiple enablers\n this._toggleDisabledStateAndControl(component, isEnabled);\n }\n } else {\n console.error('[toggleFormItems] component has not been registerd', id, enabled, callerId);\n }\n }\n }\n }\n\n /**\n * Generates map of all IDs currently influencing an item.\n * @param toggledItem item being toggled\n */\n private _registerCurrentEnablers(toggledItem: ConditionalItem): { [callerId: string]: string } {\n const enablers: { [callerId: string]: string } = {};\n const allIds = toggledItem.condition?.itemIds || [];\n\n for (const id of allIds) {\n const component = this.components[id];\n if (component) {\n if (this._isCurrentlyToggling(component, toggledItem.instanceId)) {\n enablers[component.item.instanceId] = component.item.instanceId;\n }\n } else {\n console.error('[registerCurrentEnablers] component has not been registered.', id);\n }\n }\n\n return enablers;\n }\n\n /**\n * Resets the map of components. This should be called by the form when\n * it is destroyed.\n */\n resetComponentMap() {\n this.annotations = {};\n this.components = {};\n this.disabledState = {};\n this.multipleEnablers = {};\n }\n\n /**\n * Determines if an influencer is currently toggling the specified toggledItemId.\n * @param influencer Item to check whether it's currently influencing the toggledItemId\n * @param toggledId InstanceId of the item being toggled\n * @returns Whether the influencer is currently toggling the toggled item\n */\n private _isCurrentlyToggling(influencer: MtnaWfFormItemComponent, toggledId: string): boolean {\n const item = influencer.item;\n // Item has single option property, so check if selected, or item.value is 'true'\n if (isOptionItemImpl(item)) {\n return item.option.selected || !!item.value || !!influencer.control?.value;\n } else if (isOptionGroupItemImpl(item)) {\n const value = influencer.control?.value ?? item.value;\n if (Array.isArray(value)) {\n // find the index of options that contain the 'toggledId' in their enabledItems\n // & check if at least 1 is selected, or its 'true' in the value\n const optionIndexes = item.options.map((o, i) => (o.enabledItems.some((id) => id === toggledId) ? i : null)).filter(isPresent);\n return optionIndexes.some((i) => !!value[i]);\n } else if (typeof value === 'string' && value.length) {\n // if the value is a single value, get the enabling option ids and check for the value in them\n return item.options.some((o) => o.option.id === value && o.enabledItems.some((id) => id === toggledId));\n }\n }\n return false;\n }\n\n /**\n * Handles component visibility for a FormItem with multiple enablers in its condition\n * @param component FormItemComponent being toggled\n * @param enabled Whether the component is being enabled\n * @param callerId ID of the caller toggling this component\n */\n private _handleMultipleEnablers(component: MtnaWfFormItemComponent, enabled: boolean, callerId: string) {\n const item = component.item;\n const enablers = { ...this.multipleEnablers[item.instanceId] };\n let isEnabled: boolean;\n if (enabled) {\n enablers[callerId] = callerId;\n isEnabled =\n isConditionalItem(item) &&\n !!item.condition &&\n (!item.condition.allRequired || item.condition.itemIds.every((id) => !!enablers[id]));\n } else {\n delete enablers[callerId];\n isEnabled = !((isConditionalItem(item) && item.condition?.allRequired) || !Object.keys(enablers).length);\n }\n // If enabled === disabled, then the state has changed\n if (this._isDisabled(item) === isEnabled) {\n this._toggleDisabledStateAndControl(component, isEnabled);\n }\n // set the new enabler map\n this.multipleEnablers[item.instanceId] = enablers;\n }\n\n /**\n * Enables or disables the control on a FormItemComponent\n * @param component FormItemComponent to enable or disable its control\n * @param enabled whether to enable the control\n */\n private _toggleControlState(component: MtnaWfFormItemComponent, enabled: boolean) {\n if (enabled && !component.control?.enabled) {\n // Enable the control if it isn't already\n if (component.control instanceof FormGroup) {\n this._enableIndividualControls(component);\n } else {\n component.control?.enable();\n }\n } else if (!enabled && component.control?.enabled) {\n // Disable the control if it isn't already\n component.control.disable();\n }\n }\n\n /**\n * Toggles both the component visiblity and the control's enable/disable status\n * @param component FormItemComponent to show or hide and enable or disable\n * @param enabled whether to show the component and whether to enable the component\n */\n private _toggleDisabledStateAndControl(component: MtnaWfFormItemComponent, enabled: boolean) {\n this.disabledState[component.item.instanceId] = !enabled;\n this._toggleControlState(component, enabled);\n if (isConditionalItem(component.item) && component.item.hideOnDisable) {\n component.visible = enabled;\n }\n }\n\n /**\n * Enables controls individually using recursion.\n * FormGroups should only exist for items with 'items' arrays, or\n * if the component is a BaseParentItemControl\n * @param comp FormItemComponent\n */\n private _enableIndividualControls(comp: MtnaWfFormItemComponent) {\n const group = comp.control as FormGroup;\n\n if (isOptionItemImpl(comp.item) || isOptionGroupItemImpl(comp.item)) {\n const map = comp.item.optionItemMap;\n const self = group.get(comp.item.instanceId);\n self?.enable();\n for (const optionId in map) {\n if (Object.prototype.hasOwnProperty.call(map, optionId)) {\n const childComp = this.components[map[optionId].instanceId];\n if (!this._isDisabled(childComp.item)) {\n this._toggleControlState(childComp, true);\n }\n }\n }\n } else if (isType<{ items: FormItemImpl<unknown>[] }>(comp.item, 'items') && comp.item.items.length) {\n // Item must have 'items' array\n for (const item of comp.item.items) {\n const childComp = this.components[item.instanceId];\n if (!this._isDisabled(item)) {\n this._toggleControlState(childComp, true);\n }\n }\n }\n group.updateValueAndValidity();\n }\n\n /**\n * Determines if a component is disabled. Prioritizes the disabledState value,\n * if it exists, otherwise returns the item's previous disabled value\n * @param item item to check for its disabled state\n */\n private _isDisabled(item: ConditionalItem | FormItem): boolean {\n const existsInDisabledStatMap = isPresent(this.disabledState[item.instanceId]);\n if (!existsInDisabledStatMap) {\n return isConditionalItem(item) ? item.disabled : false;\n } else {\n return this.disabledState[item.instanceId];\n }\n }\n}\n","import { ChangeDetectorRef, Component, Input, TemplateRef } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { CanDestroyNotify, mixinDestroyNotifier } from '@mtna/core-angular';\nimport { AnnotationIndicatorStatus, IndicatorStatusRepeater } from '@mtna/pojo-social-angular';\nimport { FormItem } from '@mtna/web-form-ts';\n\nconst _BaseFormItemComponent = mixinDestroyNotifier(class {});\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseFormItem<I extends FormItem>\n extends _BaseFormItemComponent\n implements IndicatorStatusRepeater, CanDestroyNotify\n{\n @Input() color: ThemePalette;\n\n @Input()\n get header(): TemplateRef<unknown> | null {\n return this._header;\n }\n set header(value: TemplateRef<unknown> | null) {\n this._header = value;\n }\n private _header: TemplateRef<unknown> | null = null;\n\n @Input()\n get indicatorStatus(): AnnotationIndicatorStatus {\n return this._indicatorStatus;\n }\n set indicatorStatus(value: AnnotationIndicatorStatus) {\n this._indicatorStatus = value;\n this.cdr.markForCheck();\n }\n protected _indicatorStatus: AnnotationIndicatorStatus = 'INACTIVE';\n\n @Input()\n get item(): I {\n return this._item;\n }\n set item(value: I) {\n this._item = value;\n }\n protected _item!: I;\n\n get hasItemHeader() {\n return !!this.item && (!!this.item.questionText || !!this.item.descriptiveText);\n }\n\n constructor(protected cdr: ChangeDetectorRef) {\n super();\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { FormItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItem } from './base-form-item.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseFormItemControl<\n I extends FormItem,\n C extends AbstractControl = AbstractControl\n> extends MtnaWfBaseFormItem<I> {\n static ngAcceptInputType_readonly: BooleanInput;\n\n @Input()\n get control(): C | null | undefined {\n return this._control;\n }\n set control(control: C | null | undefined) {\n this._control = control;\n }\n protected _control: C | null | undefined;\n\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n this.cdr.markForCheck();\n }\n protected _readonly = false;\n\n constructor(cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n protected setValue(item: unknown) {\n this.control?.markAsDirty();\n this.control?.setValue(item);\n }\n}\n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FormItem, FormItemGroup } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItemControl } from './base-form-item-control.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseGroupItem<I extends FormItemGroup> extends MtnaWfBaseFormItemControl<I, FormGroup> {\n @Input()\n get parentIds(): Array<string> {\n return this._parentIds;\n }\n set parentIds(value: Array<string>) {\n this._parentIds = value;\n }\n private _parentIds = new Array<string>();\n\n _trackByInstanceId(index: number, item: FormItem) {\n return item.instanceId;\n }\n\n constructor(cdr: ChangeDetectorRef) {\n super(cdr);\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Component, HostBinding, Input } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { FormOptionSelector, Option, ValueItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItemControl } from './base-form-item-control.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseValueItem<\n I extends ValueItem<unknown>,\n C extends AbstractControl = AbstractControl\n> extends MtnaWfBaseFormItemControl<I, C> {\n static ngAcceptInputType_inList: BooleanInput;\n\n @Input()\n get inList(): boolean {\n return this._inList;\n }\n set inList(value: boolean) {\n this._inList = value;\n }\n private _inList = false;\n\n @HostBinding('class.mtna-wf-control-item') formControlClass = true;\n\n /** Override read-only getter in order to add the host binding. Shouldn't change any funtionality. */\n @HostBinding('class.read-only')\n get isReadOnly(): boolean {\n return this._readonly;\n }\n\n _trackByOptionId(index: number, option: FormOptionSelector<Option<unknown>>) {\n return option.option.id;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { ValueItem } from '@mtna/web-form-ts';\n\nimport { ToggleFormItemsData } from '../../models/toggle-form-item-data.model';\nimport { MtnaWfBaseValueItem } from './base-value-item.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseParentValueItem<I extends ValueItem<unknown>, C extends AbstractControl> extends MtnaWfBaseValueItem<I, C> {\n @Input()\n get parentIds(): Array<string> {\n return this._parentIds;\n }\n set parentIds(value: Array<string>) {\n this._parentIds = value;\n }\n private _parentIds = new Array<string>();\n\n override get control(): C | null | undefined {\n return super.control;\n }\n override set control(control: C | null | undefined) {\n // Checks for a wrapping form group around this item.\n if (control instanceof FormGroup && control.get(this.item.instanceId)) {\n super.control = control.get(this.item.instanceId) as C;\n this.controlWrapper = control;\n } else {\n super.control = control;\n }\n }\n\n @Output() toggleFormItems = new EventEmitter<ToggleFormItemsData>();\n\n controlWrapper: FormGroup | undefined;\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Section } from '@mtna/web-form-ts';\n\nimport { FormStep } from '../../models/form-stepper/form-step.model';\nimport { MtnaWfBaseGroupItem } from './base-group-item.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseSectionItem<S extends Section> extends MtnaWfBaseGroupItem<S> {\n @Input()\n get step(): FormStep | null | undefined {\n return this._step;\n }\n set step(value: FormStep | null | undefined) {\n this._step = value;\n console.warn({ value });\n }\n private _step: FormStep | null | undefined;\n\n @Output() focused = new EventEmitter<FormStep>();\n\n constructor(cdr: ChangeDetectorRef) {\n super(cdr);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatRadioChange } from '@angular/material/radio';\nimport { MatSelectChange } from '@angular/material/select';\nimport { isPresent } from '@mtna/core-ts';\nimport { DropdownItem, FormOptionSelector, MultipleChoiceItem, StringOption } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseParentValueItem } from './base-parent-value-item.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseSingleSelectionParentValueItem<I extends DropdownItem | MultipleChoiceItem>\n extends MtnaWfBaseParentValueItem<I, FormControl>\n implements OnInit\n{\n protected selectedOption: FormOptionSelector<StringOption> | undefined;\n\n ngOnInit(): void {\n if (isPresent(this.control?.value)) {\n this.selectedOption = this.item.options.find((o) => this.control?.value === o.option.id);\n }\n }\n\n /**\n * Toggles the 'selected' value of the previous & newly selected options,\n * then calls toggleFormItems to change their enabled/disabled items\n * @param change MatRadioChange from the radio group\n */\n selectionChange(change: MatRadioChange | MatSelectChange) {\n // event fires when an option's nested item, e.g. FileUploadItem, changes value.\n // This event is not a MatRadioChange, so we need to ignore it.\n if (change instanceof MatRadioChange || change instanceof MatSelectChange) {\n // Newly selected option\n const option = this.item.options.find((o) => o.option.id === change.value);\n if (!!this.selectedOption && this.selectedOption.option.id !== change.value) {\n // New option does not match the previous option\n // Previous option's enabled/disabled items need toggling\n // toggle visibility and enable/disable, should be rendered already\n this.toggleFormItems.emit({\n enabledItemIds: this.selectedOption.enabledItems,\n disabledItemIds: this.selectedOption.disabledItems,\n enabled: false,\n callerId: this.item.instanceId,\n });\n }\n // toggle visibility and enable/disable, should be rendered already\n if (option) {\n this.toggleFormItems.emit({\n enabledItemIds: option.enabledItems,\n disabledItemIds: option.disabledItems,\n enabled: true,\n callerId: this.item.instanceId,\n });\n }\n // Set the selected option as the previous\n this.selectedOption = option;\n } else {\n console.warn('[BaseSingleSelectionParent] selectionChange - not a MatRadioChange | MatSelectChange', change);\n }\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { INJECTION_SERVICE, InjectionService, MtnaComponentInjector } from '@mtna/core-angular';\nimport { AnnotationIndicatorStatus } from '@mtna/pojo-social-angular';\nimport { FormItem } from '@mtna/web-form-ts';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { FormStep, ToggleFormItemsData } from '../../models';\nimport { MtnaWfBaseFormItemControl } from '../base-items/base-form-item-control.component';\nimport { MtnaWfBaseFormItem } from '../base-items/base-form-item.component';\nimport { MtnaWfBaseGroupItem } from '../base-items/base-group-item.component';\nimport { MtnaWfBaseParentValueItem } from '../base-items/base-parent-value-item.component';\nimport { MtnaWfBaseSectionItem } from '../base-items/base-section-item.component';\nimport { MtnaWfBaseSingleSelectionParentValueItem } from '../base-items/base-single-selection-parent-value-item.component';\nimport { MtnaWfBaseValueItem } from '../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-item-injector',\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport class MtnaWfItemInjector extends MtnaComponentInjector implements OnInit {\n static ngAcceptInputType_inList: BooleanInput;\n static ngAcceptInputType_readonly: BooleanInput;\n\n @Input() color: ThemePalette;\n\n @Input()\n get control(): AbstractControl | null | undefined {\n return this._control;\n }\n set control(control: AbstractControl | null | undefined) {\n this._control = control;\n }\n protected _control: AbstractControl | null | undefined;\n\n @Input()\n get header(): TemplateRef<unknown> | null {\n return this._header;\n }\n set header(value: TemplateRef<unknown> | null) {\n this._header = value;\n }\n private _header: TemplateRef<unknown> | null = null;\n\n @Input()\n get indicatorStatus(): AnnotationIndicatorStatus {\n return this._indicatorStatus.value;\n }\n set indicatorStatus(value: AnnotationIndicatorStatus) {\n this._indicatorStatus.next(value);\n }\n protected _indicatorStatus = new BehaviorSubject<AnnotationIndicatorStatus>('INACTIVE');\n\n @Input()\n get inList(): boolean {\n return this._inList;\n }\n set inList(value: boolean) {\n this._inList = coerceBooleanProperty(value);\n }\n private _inList = false;\n\n @Input()\n get item(): FormItem {\n return this._item;\n }\n set item(value: FormItem) {\n this._item = value;\n }\n protected _item!: FormItem;\n\n @Input()\n get parentIds(): Array<string> {\n return this._parentIds;\n }\n set parentIds(value: Array<string>) {\n this._parentIds = value;\n }\n private _parentIds = new Array<string>();\n\n @Input()\n get readonly(): boolean {\n return this._readonly.value;\n }\n set readonly(value: boolean) {\n this._readonly.next(coerceBooleanProperty(value));\n }\n protected _readonly = new BehaviorSubject<boolean>(false);\n\n @Input()\n get step(): FormStep | null | undefined {\n return this._step;\n }\n set step(value: FormStep | null | undefined) {\n this._step = value;\n }\n private _step: FormStep | null | undefined;\n\n @Output() focusedSection = new EventEmitter<FormStep>();\n\n @Output() toggleFormItems = new EventEmitter<ToggleFormItemsData>();\n\n private wfItemComponent: MtnaWfBaseFormItem<any> | undefined;\n\n constructor(\n protected injector: Injector,\n protected cfr: ComponentFactoryResolver,\n protected vcr: ViewContainerRef,\n @Inject(INJECTION_SERVICE) protected injectionService: InjectionService\n ) {\n super(injector, cfr, vcr, injectionService);\n }\n\n ngOnInit(): void {\n if (this.item) {\n super.ngOnInit();\n }\n }\n\n protected configureComponent(componentRef: ComponentRef<any>): void {\n this.wfItemComponent = componentRef.instance as MtnaWfBaseFormItem<any>;\n this.wfItemComponent.header = this.header;\n this._indicatorStatus.subscribe((status) => {\n if (this.wfItemComponent) {\n this.wfItemComponent.indicatorStatus = status;\n }\n });\n this.wfItemComponent.item = this.item;\n this.wfItemComponent.color = this.color;\n\n if (this.wfItemComponent instanceof MtnaWfBaseFormItemControl) {\n this.wfItemComponent.control = this.control;\n this.wfItemComponent.readonly = this.readonly;\n\n if (this.wfItemComponent instanceof MtnaWfBaseValueItem) {\n this.wfItemComponent.inList = this.inList;\n\n if (this.wfItemComponent instanceof MtnaWfBaseParentValueItem) {\n this.wfItemComponent.parentIds = this.parentIds;\n // added output to remove ui service from base components\n this.wfItemComponent.toggleFormItems.subscribe((data) => {\n this.toggleFormItems.emit(data);\n });\n\n if (this.wfItemComponent instanceof MtnaWfBaseSingleSelectionParentValueItem) {\n // empty for now unless specific configuration params are needed; placeholder\n }\n }\n }\n }\n\n if (this.wfItemComponent instanceof MtnaWfBaseGroupItem) {\n this.wfItemComponent.parentIds = this.parentIds;\n\n if (this.wfItemComponent instanceof MtnaWfBaseSectionItem) {\n this.wfItemComponent.step = this.step;\n this.wfItemComponent.focused.subscribe((step) => {\n this.focusedSection.emit(step);\n });\n }\n }\n }\n\n protected getInjectedComponentKey(): string {\n if (this.item) {\n return this.item.itemId;\n } else {\n console.error('MtnaWfItemInjector - getInjectedComponentKey - item is undefined');\n return '';\n }\n }\n}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'mtnaWfSanitizeHtml',\n})\nexport class MtnaWfSanitizeHtmlPipe implements PipeTransform {\n constructor(private _sanitizer: DomSanitizer) {}\n\n transform(v: string | null | undefined): SafeHtml {\n if (!v) {\n return '';\n }\n return this._sanitizer.bypassSecurityTrustHtml(v);\n }\n}\n\n@NgModule({\n declarations: [MtnaWfSanitizeHtmlPipe],\n exports: [MtnaWfSanitizeHtmlPipe],\n})\nexport class MtnaWfSanitizeHtmlPipeModule {}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * Common header html for a form item.\n *\n * @author Will Davis <will.davis@mtna.us>\n */\n@Component({\n selector: 'mtna-wf-item-header',\n templateUrl: './item-header.component.html',\n styleUrls: ['./item-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfItemHeaderComponent {\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_hideRequiredMarker: BooleanInput;\n static ngAcceptInputType_invalid: BooleanInput;\n\n @HostBinding('class.mtna-wf-item-header') itemHeaderClass = true;\n /** Optional descriptive text/HTML */\n @Input() descriptiveText: string | null | undefined;\n /** Whether the form item is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n private _disabled = false;\n\n /** Whether the required marker (asterix) is hidden. Defaults to false. */\n @Input()\n get hideRequiredMarker(): boolean {\n return this._hideRequiredMarker;\n }\n set hideRequiredMarker(hideRequiredMarker: boolean) {\n this._hideRequiredMarker = coerceBooleanProperty(hideRequiredMarker);\n }\n private _hideRequiredMarker = false;\n\n /** Whether the form item is invalid */\n @Input()\n get invalid(): boolean {\n return this._invalid;\n }\n set invalid(invalid: boolean) {\n this._invalid = coerceBooleanProperty(invalid);\n }\n private _invalid = false;\n /** Optional question text/HTML */\n @Input() questionText: string | null | undefined;\n /** Whether the form item is required */\n @Input() required = false;\n\n /** HTML to insert for required items */\n _requiredHtml = `<span aria-hidden=\"true\"> *</span>`;\n}\n","<h3\n *ngIf=\"!!questionText\"\n class=\"mtna-wf-item-question\"\n [class.invalid]=\"invalid\"\n [innerHTML]=\"questionText + (required && !disabled && !hideRequiredMarker ? _requiredHtml : '') | mtnaWfSanitizeHtml\"\n></h3>\n<p *ngIf=\"!!descriptiveText\" class=\"mtna-wf-item-description\" [innerHTML]=\"descriptiveText | mtnaWfSanitizeHtml\"></p>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { AnnotationIndicatorStatus } from '@mtna/pojo-social-angular';\nimport { FormItem, isConditionalItem } from '@mtna/web-form-ts';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { FormStep, ToggleFormItemsData } from '../../models';\nimport { MtnaWfUIService } from '../../services/ui.service';\nimport { getItemClassSuffix, MTNA_WF_EXPAND_COLLAPSE } from '../../utilities';\n\n/**\n * Component that wraps an MtnaForm item.\n *\n * ChangeDetectionStrategy.OnPush was not working as of 9/19/2018.\n * Dynamic components in the ValueItemComponent were not being initialized (ngOnInit was never called).\n *\n * @export\n */\n@Component({\n selector: 'mtna-wf-item',\n templateUrl: './form-item.component.html',\n styleUrls: ['./form-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [MTNA_WF_EXPAND_COLLAPSE],\n})\nexport class MtnaWfFormItemComponent implements OnInit {\n @HostBinding('@mtnaWfExpandCollapse') visible = true;\n\n @HostBinding('attr.id')\n get elementId(): string {\n return this.item ? this.item.instanceId : '';\n }\n\n @Input() color: ThemePalette;\n\n @Input()\n get control(): AbstractControl | null | undefined {\n return this._control;\n }\n set control(control: AbstractControl | null | undefined) {\n this._control = control;\n }\n protected _control: AbstractControl | null | undefined;\n\n @Input()\n get header(): TemplateRef<unknown> | null {\n return this._header;\n }\n set header(value: TemplateRef<unknown> | null) {\n this._header = value;\n }\n private _header: TemplateRef<unknown> | null = null;\n\n @Input()\n get inList(): boolean {\n return this._inList;\n }\n set inList(value: boolean) {\n this._inList = coerceBooleanProperty(value);\n }\n private _inList = false;\n\n @Input()\n get item(): FormItem {\n return this._item;\n }\n set item(value: FormItem) {\n this._item = value;\n }\n protected _item!: FormItem;\n\n @Input()\n get parentIds(): Array<string> {\n return this._parentIds;\n }\n set parentIds(value: Array<string>) {\n this._parentIds = value;\n }\n private _parentIds = new Array<string>();\n\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n protected _readonly = false;\n\n @Input()\n get step(): FormStep | null | undefined {\n return this._step;\n }\n set step(value: FormStep | null | undefined) {\n this._step = value;\n }\n private _step: FormStep | null | undefined;\n\n @Output() focusedSection = new EventEmitter<FormStep>();\n\n annotations$?: Observable<number | null>;\n indicatorStatus$ = new BehaviorSubject<AnnotationIndicatorStatus>('INACTIVE');\n\n constructor(private _elementRef: ElementRef, private uiService: MtnaWfUIService) {}\n\n ngOnInit() {\n if (isConditionalItem(this.item)) {\n this.visible = !this.item.hideOnDisable || !this.item.disabled;\n }\n this.uiService.registerSelf(this);\n\n this._elementRef.nativeElement.classList.add(`mtna-wf-${getItemClassSuffix(this.item.itemId)}`);\n }\n\n toggleFormItems(data: ToggleFormItemsData) {\n this.uiService.toggleFormItems(data.enabledItemIds, data.disabledItemIds, data.enabled, data.callerId, data.reset);\n }\n\n updateIndicatorStatus(status: AnnotationIndicatorStatus) {\n this.indicatorStatus$.next(status);\n }\n}\n","<mtna-annotations-indicator\n *ngIf=\"item.annotationEnabled\"\n [annotatableId]=\"item.annotatableId\"\n color=\"primary\"\n [count]=\"annotations$ | async\"\n (status)=\"updateIndicatorStatus($event)\"\n></mtna-annotations-indicator>\n\n<mtna-wf-item-injector\n [color]=\"color\"\n [control]=\"control\"\n [header]=\"header\"\n [indicatorStatus]=\"indicatorStatus$.value\"\n [inList]=\"inList\"\n [item]=\"item\"\n [parentIds]=\"parentIds\"\n [readonly]=\"readonly\"\n [step]=\"step\"\n (focusedSection)=\"focusedSection.emit($event)\"\n (toggleFormItems)=\"toggleFormItems($event)\"\n></mtna-wf-item-injector>\n\n<ng-template #header let-hideRequiredMarker=\"hideRequiredMarker\">\n <mtna-wf-item-header\n *ngIf=\"!!item.questionText || !!item.descriptiveText\"\n [descriptiveText]=\"item.descriptiveText\"\n [disabled]=\"control?.disabled\"\n [hideRequiredMarker]=\"hideRequiredMarker\"\n [invalid]=\"control?.invalid && (control?.dirty || control?.touched)\"\n [questionText]=\"item.questionText\"\n [required]=\"item.required\"\n ></mtna-wf-item-header>\n</ng-template>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { MtnaWfFormItemDialogData } from '../../models/form-item-dialog-data.model';\n\n/**\n * A dialog that renders a form item that represents something the user needs to acknowledge.\n */\n@Component({\n selector: 'mtna-wf-acknowledge-dialog',\n templateUrl: './acknowledge-dialog.component.html',\n})\nexport class MtnaWfAcknowledgeDialogComponent {\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: MtnaWfFormItemDialogData,\n public dialogRef: MatDialogRef<MtnaWfAcknowledgeDialogComponent, boolean>\n ) {}\n}\n","<h2 *ngIf=\"data.title as title\" mat-dialog-title>{{ title }}</h2>\n<mat-dialog-content>\n <mtna-wf-item *ngFor=\"let item of data.formItems\" [item]=\"item\" [readonly]=\"true\"></mtna-wf-item>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button [mat-dialog-close]=\"false\" mat-button i18n>CANCEL</button>\n <button [mat-dialog-close]=\"true\" color=\"accent\" mat-raised-button i18n>ACKNOWLEDGE</button>\n</mat-dialog-actions>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MtnaWfItemInjector } from './form-item-injector.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [MtnaWfItemInjector],\n exports: [MtnaWfItemInjector],\n})\nexport class MtnaWfItemInjectorModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\nimport { FormStep } from '../models';\n\n@Pipe({\n name: 'childStepActive',\n})\nexport class ChildStepActivePipe implements PipeTransform {\n transform(steps: FormStep[]): boolean {\n return steps.some((step) => step.active);\n }\n}\n\n@NgModule({\n declarations: [ChildStepActivePipe],\n exports: [ChildStepActivePipe],\n})\nexport class ChildStepActivePipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mtnaWfGetObjectType',\n})\nexport class MtnaWfGetObjectTypePipe implements PipeTransform {\n transform(id: string): string {\n const newId = id.toLowerCase().split('.');\n return newId[newId.length - 1];\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetObjectTypePipe],\n exports: [MtnaWfGetObjectTypePipe],\n})\nexport class MtnaWfGetObjectTypePipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { DateItem, ValueItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfGetObjectTypePipe, MtnaWfGetObjectTypePipeModule } from './get-object-type.pipe';\n\n@Pipe({\n name: 'mtnaWfCoerceDateItem',\n})\nexport class MtnaWfCoerceDateItemPipe implements PipeTransform {\n constructor(private objectTypePipe: MtnaWfGetObjectTypePipe) {}\n transform(item: ValueItem<unknown> | undefined | null): DateItem | null {\n if (!!item && this.objectTypePipe.transform(item.itemId) === 'dateitem') {\n return item as DateItem;\n }\n return null;\n }\n}\n\n@NgModule({\n imports: [MtnaWfGetObjectTypePipeModule],\n declarations: [MtnaWfCoerceDateItemPipe],\n exports: [MtnaWfCoerceDateItemPipe],\n})\nexport class MtnaWfCoerceDateItemPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, AsyncValidatorFn, FormControl, ValidatorFn } from '@angular/forms';\n\n@Pipe({\n name: 'mtnaWfCoerceFormControl',\n})\nexport class MtnaWfCoerceFormControlPipe implements PipeTransform {\n transform(control: AbstractControl | null | undefined): FormControl | null {\n if (control) {\n const value = control.value;\n const validators: ValidatorFn | ValidatorFn[] | null = control.validator;\n const asyncValidators: AsyncValidatorFn | AsyncValidatorFn[] | null = control.asyncValidator;\n\n const newFormControl = new FormControl(value, validators, asyncValidators);\n return newFormControl;\n }\n\n return null;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfCoerceFormControlPipe],\n exports: [MtnaWfCoerceFormControlPipe],\n})\nexport class MtnaWfCoerceFormControlPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\n\nimport { isFormGroup } from '../utilities/is-form-group';\n\n/**\n * Asserts whether the given control is the narrower FormGroup type. If so, coerces the FormGroup type.\n * Otherwise, returns null.\n *\n * @example\n * <form [formGroup]=\"group | mtnaWfCoerceFormGroup\"></form>\n *\n * <form *ngIf=\"controlContainer.control | mtnaWfCoerceFormGroup as group\" [formGroup]=\"group\"></form>\n *\n * @author Chase Moore <chase.moore@mtna.us>\n */\n@Pipe({\n name: 'mtnaWfCoerceFormGroup',\n})\nexport class MtnaWfCoerceFormGroupPipe implements PipeTransform {\n /**\n * @param control control to be coerced into a FormGroup\n * @returns the control typed as FormGroup if possible; else null\n */\n transform(control: AbstractControl | null | undefined): FormGroup | null {\n if (isFormGroup(control)) {\n return control;\n }\n\n return null;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfCoerceFormGroupPipe],\n exports: [MtnaWfCoerceFormGroupPipe],\n})\nexport class MtnaWfCoerceFormGroupPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { isType } from '@mtna/core-ts';\nimport { FormItem } from '@mtna/web-form-ts';\n\n@Pipe({\n name: 'coerceFormItem',\n})\nexport class MtnaWfCoerceFormItemPipe implements PipeTransform {\n transform(item: unknown): FormItem | undefined {\n let formItem = undefined;\n if (this.instanceOfFormItem(item)) {\n formItem = item;\n }\n return formItem;\n }\n\n instanceOfFormItem(something: unknown): something is FormItem {\n return isType<FormItem>(something, 'instanceId', 'itemId', 'name', 'required', 'templateId');\n }\n}\n\n@NgModule({\n declarations: [MtnaWfCoerceFormItemPipe],\n exports: [MtnaWfCoerceFormItemPipe],\n})\nexport class MtnaWfCoerceFormItemPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\nimport { FormStepGroup, instanceOfFormStepGroup } from '../models';\n\n@Pipe({\n name: 'coerceFormStepGroup',\n})\nexport class CoerceFormStepGroupPipe implements PipeTransform {\n transform(value: unknown): FormStepGroup | null {\n return instanceOfFormStepGroup(value) ? value : null;\n }\n}\n\n@NgModule({\n declarations: [CoerceFormStepGroupPipe],\n exports: [CoerceFormStepGroupPipe],\n})\nexport class CoerceFormStepGroupPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\nimport { FormStep, instanceOfFormStep } from '../models';\n\n@Pipe({\n name: 'coerceFormStep',\n})\nexport class CoerceFormStepPipe implements PipeTransform {\n transform(value: unknown): FormStep | null {\n return instanceOfFormStep(value) ? value : null;\n }\n}\n\n@NgModule({\n declarations: [CoerceFormStepPipe],\n exports: [CoerceFormStepPipe],\n})\nexport class CoerceFormStepPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mtnaWfDateQuarter',\n})\nexport class MtnaWfDateQuarterPipe implements PipeTransform {\n transform(quarter: 0 | 1 | 2 | 3, format = 'short'): string {\n const short = {\n 0: $localize`Q1`,\n 1: $localize`Q2`,\n 2: $localize`Q3`,\n 3: $localize`Q4`,\n };\n const medium = {\n 0: $localize`1st Quarter`,\n 1: $localize`2nd Quarter`,\n 2: $localize`3rd Quarter`,\n 3: $localize`4th Quarter`,\n };\n const long = {\n 0: $localize`First Quarter`,\n 1: $localize`Second Quarter`,\n 2: $localize`Third Quarter`,\n 3: $localize`Fourth Quarter`,\n };\n\n switch (format) {\n case 'short':\n return short[quarter];\n case 'medium':\n return medium[quarter];\n case 'long':\n return long[quarter];\n default:\n return '';\n }\n }\n}\n\n@NgModule({\n declarations: [MtnaWfDateQuarterPipe],\n exports: [MtnaWfDateQuarterPipe],\n})\nexport class MtnaWfDateQuarterPipeModule {}\n","import { Inject, NgModule, Pipe, PipeTransform } from '@angular/core';\n\nimport { FormStep, FormStepGroup, isFormStepGroup } from '../models';\nimport { FormItem } from '@mtna/web-form-ts';\nimport { INJECTION_SERVICE, InjectionService } from '@mtna/core-angular';\n\n/**\n * There are certain form items that are hidden from the UI because they carry static values\n * that are populated from the server. These items should not show up in the form but if they\n * go through the injector there will be an empty mtna-wf-item placed into the form which can\n * affect styling. This pipe will seek to identify form items that have no key registered in\n * the injected component providers and log them and remove them from the list of items.\n */\n@Pipe({\n name: 'mtnaWfFilterHiddenItems',\n})\nexport class MtnaWfFilterHiddenItemsPipe implements PipeTransform {\n constructor(@Inject(INJECTION_SERVICE) protected injectionService: InjectionService) {}\n\n transform(items: FormItem[] | undefined): FormItem[] {\n const filteredItems: FormItem[] = [];\n if (items) {\n for (const item of items) {\n if (this.injectionService.getInjectedComponent(item.itemId)) {\n filteredItems.push(item);\n }\n }\n }\n return filteredItems;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfFilterHiddenItemsPipe],\n exports: [MtnaWfFilterHiddenItemsPipe],\n})\nexport class MtnaWfFilterHiddenItemsPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\nimport { FormStep, FormStepGroup, isFormStepGroup } from '../models';\n\n/**\n * Pipe to determine if a FormStep is a FormStepGroup or a single step.\n */\n@Pipe({\n name: 'mtnaWfStepGroupPipe',\n})\nexport class MtnaWfFormStepGroupPipe implements PipeTransform {\n transform(step: FormStep | FormStepGroup): step is FormStepGroup {\n return isFormStepGroup(step);\n }\n}\n\n@NgModule({\n declarations: [MtnaWfFormStepGroupPipe],\n exports: [MtnaWfFormStepGroupPipe],\n})\nexport class MtnaWfFormStepGroupPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { FormItem } from '@mtna/web-form-ts';\n\n@Pipe({\n name: 'getActiveFormStepItem',\n})\nexport class GetActiveFormStepItemPipe implements PipeTransform {\n transform(items: FormItem[] | undefined, activeStepId: string | null | undefined): FormItem | undefined {\n if (!items || !activeStepId) {\n return undefined;\n } else {\n return items.find((item) => item.instanceId === activeStepId);\n }\n }\n}\n\n@NgModule({\n declarations: [GetActiveFormStepItemPipe],\n exports: [GetActiveFormStepItemPipe],\n})\nexport class GetActiveFormStepItemPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mtnaWfGetAutoComplete',\n})\nexport class MtnaWfGetAutoCompletePipe implements PipeTransform {\n transform(label: string | null | undefined): string {\n if (label) {\n switch (label.toLowerCase()) {\n case 'first name':\n return 'given-name';\n case 'last name':\n return 'family-name';\n case 'email':\n return 'email';\n case 'organization':\n return 'organization';\n case 'phone':\n return 'tel';\n case 'street address line 1':\n return 'address-line1';\n case 'street address line 2':\n return 'address-line2';\n case 'city':\n return 'address-level2';\n case 'state':\n return 'address-level1';\n case 'zip code':\n return 'postal-code';\n default:\n return 'off';\n }\n }\n return 'off';\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetAutoCompletePipe],\n exports: [MtnaWfGetAutoCompletePipe],\n})\nexport class MtnaWfGetAutoCompletePipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { DateRange, YearQuarter } from '@mtna/web-form-ts';\n\n@Pipe({\n name: 'mtnaWfGetQuarters',\n})\nexport class MtnaWfGetAvailableQuartersPipe implements PipeTransform {\n transform(year: number | null | undefined, limits: DateRange<YearQuarter> | null | undefined): number[] {\n const quarters = [0, 1, 2, 3];\n if (!!year && !!limits) {\n // If the selected year matches the start year limit\n if (!!limits.start && !!limits.start.year && year === limits.start.year) {\n // If a start quarter limiit exists, return the limited options\n return limits.start.quarter !== null && limits.start.quarter !== undefined ? quarters.slice(limits.start.quarter) : quarters;\n }\n // If the selected year matches the end year limit\n if (!!limits.end && !!limits.end.year && year === limits.end.year) {\n // If an end quarter limit exists, return the limited options\n return limits.end.quarter !== null && limits.end.quarter !== undefined ? quarters.slice(0, limits.end.quarter + 1) : quarters;\n }\n }\n return quarters;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetAvailableQuartersPipe],\n exports: [MtnaWfGetAvailableQuartersPipe],\n})\nexport class MtnaWfGetAvailableQuartersPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { FormItemImpl } from '@mtna/web-form-ts';\n\nimport { MtnaWfUIService } from '../services/ui.service';\n\n@Pipe({\n name: 'mtnaWfGetControlError',\n})\nexport class MtnaWfGetFormControlErrorPipe implements PipeTransform {\n constructor(private uiService: MtnaWfUIService) {}\n transform(error: { key: string; value: unknown }, item?: FormItemImpl<unknown>): unknown {\n return this.uiService.getError(error.key, item) || error.value;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetFormControlErrorPipe],\n exports: [MtnaWfGetFormControlErrorPipe],\n})\nexport class MtnaWfGetFormControlErrorPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mtnaWfGetListIcon',\n})\nexport class MtnaWfGetListIconPipe implements PipeTransform {\n transform(header: string | null | undefined): string | null {\n if (!header) {\n return null;\n }\n header = header.toUpperCase();\n if (\n header.includes('PROJECT') ||\n header.includes('REQUEST') ||\n header.includes('ANALYTICAL APPROACH') ||\n header.includes('JUSTIFICATION FOR USE')\n ) {\n return 'assignment';\n }\n if (header.includes('DESCRIPTION')) {\n return 'subject';\n }\n if (header.includes('EMAIL')) {\n return 'alternate_email';\n }\n if (header.includes('ZIP CODE')) {\n return 'mail';\n }\n if (header.includes('ORGANIZATION')) {\n return 'business';\n }\n if (header.includes('PHONE')) {\n return 'local_phone';\n }\n if (header.includes('ADDRESS')) {\n return 'place';\n }\n if (header.includes('NAME') || header.includes('TITLE')) {\n return 'person';\n }\n if (header.includes('CITY')) {\n return 'location_city';\n }\n if (header.includes('STATE')) {\n return 'map';\n }\n return null;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetListIconPipe],\n exports: [MtnaWfGetListIconPipe],\n})\nexport class MtnaWfGetListIconPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { FormItem } from '@mtna/web-form-ts';\n\nimport { FormStep, FormStepGroup } from '../models';\n\n@Pipe({\n name: 'getProgressiveFormItem',\n})\nexport class GetProgressiveFormItemPipe implements PipeTransform {\n transform(step: FormStep | FormStepGroup, items?: FormItem[]): FormItem | undefined {\n if (items) {\n const item = items.find((item) => item.instanceId || item.templateId === step.instanceId);\n console.warn({ itemFromPipe: item });\n if (item) {\n return item;\n } else {\n return undefined;\n }\n } else {\n return undefined;\n }\n }\n}\n\n@NgModule({\n declarations: [GetProgressiveFormItemPipe],\n exports: [GetProgressiveFormItemPipe],\n})\nexport class GetProgressiveFormItemPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { FormOptionSelector, StringOption } from '@mtna/web-form-ts';\n\n@Pipe({\n name: 'mtnaWfGetSelectedOptionName',\n})\nexport class MtnaWfGetSelectedOptionNamePipe implements PipeTransform {\n transform(id: string, options: FormOptionSelector<StringOption>[]): string {\n const _notApplicableText = $localize`N/A`;\n if (!options || !id) {\n return _notApplicableText;\n }\n const foundOption = options.find((o) => o.option.id === id);\n return foundOption ? foundOption.option.name : _notApplicableText;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetSelectedOptionNamePipe],\n exports: [MtnaWfGetSelectedOptionNamePipe],\n})\nexport class MtnaWfGetSelectedOptionNamePipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { CircleStatus } from '@mtna/core-angular';\n\nimport { FormStep, FormStepGroup, instanceOfFormStep, instanceOfFormStepGroup } from '../models';\n\n@Pipe({\n name: 'getStepAriaLabel',\n})\nexport class GetStepAriaLabel implements PipeTransform {\n stepStatusTextMap: { [key in CircleStatus]: string } = {\n ['INVALID']: $localize`Invalid`,\n ['VALID']: $localize`Valid`,\n ['DISABLED']: $localize`Disabled`,\n ['ERROR']: $localize`Error`,\n ['PENDING']: $localize`Pending`,\n ['EMPTY']: $localize`Empty`,\n ['INCOMPLETE']: $localize`Incomplete`,\n ['PLACEHOLDER']: $localize`Placeholder`,\n };\n\n transform(step: FormStep | FormStepGroup, collapsed?: boolean): string {\n const stepText = $localize`Step`;\n if (instanceOfFormStepGroup(step)) {\n const collapsedText = collapsed ? $localize`collapsed step` : $localize`expanded step`;\n const childStepsActiveText = step.steps.some((childStep) => childStep.active) ? $localize`Child step active.` : '';\n return `${stepText} ${step.num}: ${step.label} - ${collapsedText}. ${childStepsActiveText}`;\n } else if (instanceOfFormStep(step)) {\n const status = step.status === 'EMPTY' || step.status === 'PLACEHOLDER' ? undefined : this.stepStatusTextMap[step.status];\n const activeText = step.active ? $localize`Active step` : undefined;\n return `${stepText} ${step.num}: ${step.label} ${status ? ' - ' + status : ''}${activeText ? ' - ' + activeText : ''}.`;\n } else {\n // Handle for unexpected types. Should never reach this point because the step should always be a FormStep or a FormStepGroup.\n return '';\n }\n }\n}\n\n@NgModule({\n declarations: [GetStepAriaLabel],\n exports: [GetStepAriaLabel],\n})\nexport class GetStepAriaLabelModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { FormItem, isValueItem, ValueItem } from '@mtna/web-form-ts';\n\n/**\n * Returns an array of FormItems that contain a value.\n * Use only for readonly forms\n */\n@Pipe({\n name: 'mtnaWfItemsWithValue',\n pure: false,\n})\nexport class MtnaWfItemsWithValuePipe implements PipeTransform {\n transform(items: Array<FormItem> | null | undefined): Array<ValueItem<unknown>> {\n const list = items ? items.filter(isValueItem) : [];\n console.error({ items });\n console.error({ list });\n return list;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfItemsWithValuePipe],\n exports: [MtnaWfItemsWithValuePipe],\n})\nexport class MtnaWfItemsWithValuePipeModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MtnaWfSanitizeHtmlPipeModule } from '../../pipes';\nimport { MtnaWfItemHeaderComponent } from './item-header.component';\n\n@NgModule({\n imports: [CommonModule, MtnaWfSanitizeHtmlPipeModule],\n declarations: [MtnaWfItemHeaderComponent],\n exports: [MtnaWfItemHeaderComponent],\n})\nexport class MtnaWfItemHeaderModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MtnaAnnotationsIndicatorModule } from '@mtna/pojo-social-angular';\n\nimport { MtnaWfItemInjectorModule } from '../form-item-injector/form-item-injector.module';\nimport { MtnaWfItemHeaderModule } from '../item-header/item-header.module';\nimport { MtnaWfFormItemComponent } from './form-item.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaAnnotationsIndicatorModule,\n MtnaWfItemInjectorModule,\n MtnaWfItemHeaderModule,\n MatMomentDateModule,\n MatButtonModule,\n ],\n declarations: [MtnaWfFormItemComponent],\n exports: [MtnaWfFormItemComponent],\n})\nexport class MtnaWfFormItemModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { MtnaWfFormItemModule } from '../form-item/form-item.module';\nimport { MtnaWfAcknowledgeDialogComponent } from './acknowledge-dialog.component';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, MatButtonModule, MtnaWfFormItemModule],\n declarations: [MtnaWfAcknowledgeDialogComponent],\n exports: [MtnaWfAcknowledgeDialogComponent],\n})\nexport class MtnaWfAcknowledgeDialogModule {}\n","import { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Form as WebForm, FormItemImpl, Template, TemplateItem, TemplateSectionImpl } from '@mtna/web-form-ts';\nimport { Observable } from 'rxjs';\n\nimport { MTNA_WF_API_TOKEN, MtnaWfApiConfig } from '../models';\n\n@Injectable({ providedIn: 'root' })\nexport class MtnaWfApiService {\n API_URL = `${this.apiConfig.baseUrl}/api`;\n\n FORM_URL = `${this.API_URL}/form`;\n\n TEMPLATE_URL = `${this.API_URL}/template`;\n NEW_TEMPLATE_URL = `${this.TEMPLATE_URL}/new`;\n NEW_SECTION_URL = `${this.TEMPLATE_URL}/section`;\n ITEMS_URL = `${this.TEMPLATE_URL}/items`;\n ITEM_INSTANCE_URL = `${this.TEMPLATE_URL}/item`;\n TEMPLATE_SAVE_URL = `${this.TEMPLATE_URL}/save`;\n TEMPLATE_DELETE_URL = `${this.TEMPLATE_URL}/delete`;\n\n ALL_TEMPLATES_URL = `${this.API_URL}/templates`;\n\n constructor(@Inject(MTNA_WF_API_TOKEN) protected apiConfig: MtnaWfApiConfig, protected http: HttpClient) {}\n\n /**\n * Download a web form\n * @param form the web form pojo to download\n * @returns Full HttlReponse with the Blob as the body\n */\n downloadForm(form: WebForm): Observable<HttpResponse<Blob>> {\n return this.http.post(`${this.FORM_URL}/download`, form, { observe: 'response', responseType: 'blob' });\n }\n\n /**\n * Returns a new repeatable FormItem\n * @param formInstanceId template ID of the mtna form\n * @param itemId repeatableTemplateId of the requesting RepeatableItem\n */\n getRepeatableItem(formInstanceId: string, itemId: string): Observable<FormItemImpl<unknown>> {\n return this.http.get<FormItemImpl<unknown>>(`${this.FORM_URL}/${formInstanceId}/new/item/${itemId}`);\n }\n\n getNewTemplate(): Observable<Template> {\n return this.http.get<Template>(this.NEW_TEMPLATE_URL);\n }\n\n getAllTemplate(): Observable<Template> {\n return this.http.get<Template>(this.ALL_TEMPLATES_URL);\n }\n\n getNewSection(): Observable<TemplateSectionImpl> {\n return this.http.get<TemplateSectionImpl>(this.NEW_SECTION_URL);\n }\n\n getItems(): Observable<TemplateItem[]> {\n return this.http.get<TemplateItem[]>(this.ITEMS_URL);\n }\n\n getTemplateItem(id: string): Observable<TemplateItem> {\n return this.http.get<TemplateItem>(`${this.ITEM_INSTANCE_URL}?id=${id}`);\n }\n\n saveTemplate(): Observable<Template> {\n return this.http.get<Template>(this.TEMPLATE_SAVE_URL);\n }\n\n getDeleteTemplate(): Observable<Template> {\n return this.http.get<Template>(this.TEMPLATE_DELETE_URL);\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { MtnaWfFormItemDialogData } from '../../models/form-item-dialog-data.model';\n\n/**\n * A dialog that renders a form item.\n */\n@Component({\n selector: 'mtna-wf-form-item-dialog',\n templateUrl: './form-item-dialog.component.html',\n})\nexport class MtnaWfFormItemDialogComponent {\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: MtnaWfFormItemDialogData,\n public dialogRef: MatDialogRef<MtnaWfFormItemDialogComponent>\n ) {}\n}\n","<h2 *ngIf=\"data.title as title\" mat-dialog-title>{{ title }}</h2>\n<mat-dialog-content>\n <mtna-wf-item *ngFor=\"let item of data.formItems\" [item]=\"item\" [readonly]=\"true\"></mtna-wf-item>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-raised-button mat-dialog-close color=\"primary\" i18n>Close</button>\n</mat-dialog-actions>\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Section } from '@mtna/web-form-ts';\nimport { Observable } from 'rxjs';\n\nimport { MtnaWfAcknowledgeDialogComponent } from '../components/acknowledge-dialog/acknowledge-dialog.component';\nimport { MtnaWfFormItemDialogComponent } from '../components/form-item-dialog/form-item-dialog.component';\nimport { MtnaWfFormItemDialogData } from '../models/form-item-dialog-data.model';\n\n@Injectable({ providedIn: 'root' })\nexport class MtnaWfDialogService {\n constructor(private dialog: MatDialog) {}\n _acknowledgementText = $localize`Acknowledgement`;\n\n /**\n * Display the acknowledgement the user agreed to for a given option.\n * @param acknowledgementItem The {@link Section} that represents the acknowledgement text to display to the user.\n */\n showAcknowledgement(acknowledgementItem: Section) {\n this.dialog.open(MtnaWfFormItemDialogComponent, {\n closeOnNavigation: true,\n data: new MtnaWfFormItemDialogData(acknowledgementItem.items, acknowledgementItem.title.value || this._acknowledgementText),\n disableClose: false,\n hasBackdrop: true,\n maxWidth: '500px',\n });\n }\n\n /**\n * Show some text in a dialog that the user needs to \"acknowledge\" before they can make a certain selection.\n * @param acknowledgementItem The {@link Section} that represents the text displayed to the user for acknowledgement.\n * @returns Whether the user acknowledges (agrees).\n */\n verifyAcknowledgement(acknowledgementItem: Section): Observable<boolean> {\n return this.dialog\n .open(MtnaWfAcknowledgeDialogComponent, {\n closeOnNavigation: true,\n data: new MtnaWfFormItemDialogData(acknowledgementItem.items, acknowledgementItem.title.value || this._acknowledgementText),\n disableClose: true,\n hasBackdrop: true,\n maxWidth: '500px',\n })\n .afterClosed();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { skipWhile, take } from 'rxjs/operators';\n\n/**\n * This service manages and interacts with an Angular FormGroup. It provides functionality\n * to add or remove form controls dynamically, track the form's state, and notify other\n * components about unsaved changes. This service is used to centralize form handling and\n * state management, providing a reliableway to monitor and respond to form changes.\n */\n@Injectable({ providedIn: 'root' })\nexport class MtnaWfNgFormService {\n private ngForm: FormGroup | undefined;\n private unsavedChanges$: Subject<boolean> = new BehaviorSubject<boolean>(false);\n private valueChangeSubscription: Subscription | undefined;\n\n /**\n * Informs a caller when the MtnaForm is dirty and has unsaved changes.\n */\n get unsavedChanges(): Observable<boolean> {\n return this.unsavedChanges$.asObservable();\n }\n\n /**\n * Add a control from the ngForm\n * @param controlId id of the control being added\n * @param parentIds array of ids representing the path to the parent control\n * @param newControl the new form control to be added\n */\n addControl(controlId: string, parentIds: string[], newControl: AbstractControl) {\n if (!this.ngForm) {\n return;\n }\n\n const parentControl = this.ngForm.get(parentIds) as FormGroup;\n parentControl.addControl(controlId, newControl);\n parentControl.markAsTouched();\n parentControl.markAsDirty();\n this.forceUnsavedChange();\n }\n\n /**\n * Remove a control from the ngForm.\n *\n * @param controlId is of the control to remove\n * @param parentIds rray of ids representing the path to the parent control\n */\n removeControl(controlId: string, parentIds: string[]) {\n if (!this.ngForm) {\n return;\n }\n\n const parentControl = this.ngForm.get(parentIds) as FormGroup;\n parentControl.removeControl(controlId);\n parentControl.markAsTouched();\n parentControl.markAsDirty();\n this.forceUnsavedChange();\n }\n\n /**\n * Get the form if it exists\n * @returns the angular form or null\n */\n getForm(): FormGroup | undefined {\n return this.ngForm;\n }\n\n /**\n * Returns a JSON representation of form values\n */\n getFormValue() {\n // This includes values for disabled controls.\n // We loop through MtnaForm to insert values,\n // so we need the disabled controls to ensure no info loss.\n return this.ngForm?.getRawValue();\n }\n\n /**\n * @returns Whether a form has been set on this service\n */\n hasForm(): boolean {\n return !!this.ngForm;\n }\n\n /**\n * @returns Whether the form is dirty.\n */\n isFormDirty(): boolean {\n return !!this.ngForm && this.ngForm.dirty;\n }\n\n /**\n * Unsubscribes from value changes & sets the ngForm to null.\n * Should be called when any component using an MtnaForm is destroyed.\n */\n disposeForm() {\n this.unsubscribeValueChanges();\n this.ngForm = undefined;\n }\n\n /**\n * Forces the unsavedChanges observable to emit true.\n * Use with care, one example is when repeatable items are added/removed from the form.\n */\n forceUnsavedChange() {\n this.unsubscribeValueChanges();\n this.unsavedChanges$.next(true);\n }\n\n /**\n * Marks ngForm as pristine & untouched.\n */\n markAsPristineAndUntouched() {\n if (this.ngForm) {\n this.ngForm.markAsPristine();\n this.ngForm.markAsUntouched();\n this.unsavedChanges$.next(this.ngForm.dirty);\n this.observeNgFormChanges();\n }\n }\n\n /**\n * Resets the ngForm.\n */\n resetForm() {\n if (this.ngForm) {\n this.ngForm.reset();\n this.unsavedChanges$.next(this.ngForm.dirty);\n this.observeNgFormChanges();\n }\n }\n\n /**\n * Sets a FormGroup on the service so an external source may observe changes.\n * @param ngForm FormGroup to be registered.\n */\n setForm(ngForm: FormGroup) {\n this.ngForm = ngForm;\n this.unsavedChanges$.next(this.ngForm.dirty);\n if (this.ngForm.pristine) {\n this.observeNgFormChanges();\n }\n }\n\n /**\n * Subscribes to ngForm status changes & updates the unsavedChanges observable\n */\n private observeNgFormChanges() {\n this.unsubscribeValueChanges();\n if (this.ngForm) {\n this.valueChangeSubscription = this.ngForm.valueChanges\n .pipe(\n skipWhile(() => (this.ngForm ? this.ngForm.pristine : true)),\n take(1)\n )\n .subscribe(() => this.unsavedChanges$.next(this.ngForm?.dirty));\n }\n }\n\n /**\n * Removes the ngForm status change subscription.\n */\n private unsubscribeValueChanges() {\n if (!!this.valueChangeSubscription && !this.valueChangeSubscription.closed) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { isType } from '@mtna/core-ts';\nimport {\n ConditionalItem,\n ConditionChange,\n Form,\n FormItem,\n FormItemGroup,\n FormItemImpl,\n FormItemValidationResult,\n isConditionalItem,\n isForm,\n isFormItemGroupImpl,\n isOptionGroupItemImpl,\n isOptionItemImpl,\n isRepeatableItem,\n isSection,\n isTableItem,\n MtnaWfFormItemChange,\n MtnaWfFormItemChangeAction,\n Option,\n OptionGroupItemImpl,\n OptionItemImpl,\n ProgressiveForm,\n RepeatableItem,\n Section,\n TableItem,\n TableRowItem,\n ValueItem,\n} from '@mtna/web-form-ts';\nimport { Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { BaseFormItem } from '../models';\nimport { findFormControl, MtnaWfSerializer } from '../utilities';\nimport { MtnaWfApiService } from './api.service';\nimport { MtnaWfNgFormService } from './ng-form.service';\nimport { MtnaWfUIService } from './ui.service';\n\n/**\n * types of FormItems that can be passed into the 'modifyMtnaFormItem' method to add/remove items\n */\ntype ParentItemUnion =\n | Form\n | Section\n | FormItemGroup\n | RepeatableItem\n | TableItem\n | OptionItemImpl<Option<unknown>, unknown>\n | OptionGroupItemImpl<Option<unknown>>;\n\n/**\n * Allows a caller to (de)serializae an MtnaForm. It contains the determining logic for returning specific form controls\n * and deserializing new MtnaForms from the reactive values, as well as registering custom Form Items & functions.\n *\n * @export\n */\n@Injectable()\nexport class MtnaWfManagerService {\n protected components = new Map<string, Type<BaseFormItem>>();\n protected formChange$ = new Subject<Form | ProgressiveForm>();\n protected progressiveFormChange$ = new Subject<ProgressiveForm>();\n /** A map of all {@link FormItemValidationResult} keyed on id */\n protected _formItemValidationResults: Record<string, FormItemValidationResult> = {};\n /** ConditionChanges on 'add' must wait until the form rerenders to toggle items */\n protected itemToggleQue: Array<ConditionChange> | null | undefined;\n protected _mtnaForm: Form | undefined;\n protected _mtnaProgressiveForm: ProgressiveForm | undefined;\n\n /**\n * Observable stream of MtnaForm changes. Used to inform a subscriber that an MtnaForm has been changed.\n *\n * @returns Observable<MtnaForm> to which a caller can subscribe\n */\n get formChanges(): Observable<Form> {\n return this.formChange$.asObservable();\n }\n\n constructor(protected apiService: MtnaWfApiService, protected ngFormService: MtnaWfNgFormService, protected uiService: MtnaWfUIService) {}\n\n /**\n * Adds or removes a FormItem from the form & modifies other affected FormItems\n * @param change MtnaWfFormItemChange\n */\n changeMtnaFormItem(change: MtnaWfFormItemChange) {\n if (!this._mtnaForm) {\n return;\n }\n\n if (change.actionType === 'REMOVE') {\n // remove the repeatable item from the mtnaform\n let newForm = this._modifyFormItem(this._mtnaForm, change) as Form;\n // modify the conditions of all effected form items\n newForm = this._modifyFormItemConditions(newForm, change);\n\n this.ngFormService.removeControl(change.id, change.parentIds);\n this.formChange$.next(newForm);\n } else {\n this.apiService\n .getRepeatableItem(this._mtnaForm.instanceId, change.id)\n .pipe(take(1))\n .subscribe((newItem: FormItemImpl<unknown>) => {\n const newFormControl = this.serializeMtnaFormItem(newItem);\n if (newFormControl && this._mtnaForm) {\n this.ngFormService.addControl(newItem.instanceId, change.parentIds, newFormControl);\n // Add the new repeatable item into the mtnaform\n let newForm = this._modifyFormItem(\n this._mtnaForm,\n {\n ...change,\n id: newItem.instanceId,\n },\n newItem\n ) as Form;\n\n // Generate a list of all formitem conditions needing change & modify those items in the form\n const conditionChanges = this.generateConditionChangeArray(newItem, 'ADD');\n newForm = this._modifyFormItemConditions(newForm, { ...change, conditionChanges });\n this.itemToggleQue = conditionChanges;\n // emit the new mtnaform\n this.formChange$.next(newForm);\n }\n });\n }\n }\n\n /**\n * Returns a ConditionChange array for items existing in the <item> which enable/disable FormItems outside the <item>'s scope.\n * @param item FormItem that effects the condition of other FormItems\n * @param action Whether this item was added (ADD), or removed (REMOVE)\n * @returns Array<ConditionChange>\n */\n generateConditionChangeArray(item: FormItem, action?: MtnaWfFormItemChangeAction): Array<ConditionChange> {\n const internalMap = {};\n this._buildInternalIdsMap(item, internalMap);\n const conditionChanges = new Array<ConditionChange>();\n this._buildConditionChangeArray(item, conditionChanges, internalMap, action);\n return conditionChanges;\n }\n\n /** @returns The top level validation results (usually the errors), keyed on ID. */\n getFormItemValidationResults(): Record<string, FormItemValidationResult> {\n return this._formItemValidationResults;\n }\n\n /**\n * Returns a new MtnaForm using the MtnaForm & reacive form values from the MtnaWfNgFormService's internal form.\n *\n * @param ngFormValues JSON object of ngFormValues\n * @returns\n */\n updateForm(ngFormValues: Record<string, unknown>): Form {\n const currentForm = this.ngFormService.getFormValue();\n return {\n ...currentForm,\n items: MtnaWfSerializer.insertFormItemValues(\n currentForm,\n ngFormValues,\n this.uiService.getDisabledStates(),\n this.dynamicFormConditional,\n this.dynamicWebFormItemBuilder\n ),\n };\n }\n\n /**\n * Returns a new MtnaForm using the previous MtnaForm & reactive form values.\n *\n * @param mtnaForm MtnaForm requiring value insertion\n * @param ngFormValues JSON object of ngForm values\n * @returns new MtnaForm\n */\n insertNewValues(mtnaForm: Form, ngFormValues: Record<string, unknown>): Form {\n return {\n ...mtnaForm,\n items: MtnaWfSerializer.insertFormItemValues(\n mtnaForm,\n ngFormValues,\n this.uiService.getDisabledStates(),\n this.dynamicFormConditional,\n this.dynamicWebFormItemBuilder\n ),\n };\n }\n\n /**\n * Serializes a Form | FormItem into FormControl(s)\n *\n * @param item Form | FormItem requiring serialization\n * @returns FormGroup | FormControl\n */\n serializeMtnaFormItem(item: Form | FormItemImpl<unknown>): AbstractControl | null {\n return MtnaWfSerializer.determineSerializeFunctionToUse(\n item,\n this,\n this.dynamicFormConditional,\n this.dynamicReactiveFormControlBuilder\n );\n }\n\n //#region Custom Component/Function Registration\n getDynamicComponent(id: string): Type<BaseFormItem> | undefined {\n return this.components.get(id);\n }\n\n /**\n * Registers a map of components to be dynamically rendered inside an MtnaForm.\n *\n * @param components the map of components that a ValueItem will use for rendering\n * @prop string - the type(itemId suffix) of component, used for retrieval\n * @prop Type - the component to be rendered, an extension of BaseFormItem\n */\n registerDynamicComponents(components: Map<string, Type<BaseFormItem>>) {\n this.components = components;\n }\n\n /**\n * Sets an MtnaForm on the service\n * @param form MtnaForm to be used for internal modification\n */\n setMtnaForm(form: Form) {\n this._mtnaForm = { ...form };\n if (!!this.itemToggleQue && !!this.itemToggleQue.length) {\n // The form needs time to rerender, so we push this loop to the end of the stack\n setTimeout(() => {\n if (this.itemToggleQue) {\n for (const change of this.itemToggleQue) {\n this.uiService.toggleFormItems(change.enabledItems, change.disabledItems, !!change.enable, change.enablerId, true);\n }\n }\n this.itemToggleQue = null;\n }, 0);\n }\n\n // Keep track of any errors coming from the server and revalidate those controls\n this._updateServerSideErrors();\n }\n\n /**\n * Any FormService extension class should override this method in order to call the\n * dynamicWebFormItemBuilder/dynamicReactiveFormControlBuilder methods. During web form generation, this method is checked &\n * the current FormItem is passed in, which can be used by the overriding method.\n *\n * @example dynamicFormConditional = (item: FormItem) => item.itemId.includes({some itemId})\n *\n */\n protected dynamicFormConditional: (item: FormItem) => boolean = () => false;\n\n /**\n * Function to be overridden by extended service in order to handle form generation for any application-specific dynamic form components.\n * Should return a new ValueItem<any>.\n * Step 3\n *\n * @example dynamicWebFormItemBuilder(section: Section | Form, item: FormItem, ngFormValue: any): ValueItem {\n * const newValue = this.generateNewValue(item, rfValue, section);\n * return { ...item, ...newValue }\n * }\n * @param section the current FormSection\n * @param item the current FormItem\n * @param ngFormValue the ngForm JSON value\n * @returns a new ValueItem\n */\n protected dynamicWebFormItemBuilder(\n /* eslint-disable @typescript-eslint/no-unused-vars */\n section: Form | FormItemGroup | RepeatableItem | undefined,\n item: FormItem,\n ngFormValue: unknown,\n disabledState?: { [instanceId: string]: boolean }\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ): ValueItem<unknown> | null {\n return null;\n }\n\n /**\n * Function to be overridden by extended service in order to handle reactive form generation\n * for any application-specific dynamic form components.\n * Should return FormControl | FormGroup.\n *\n * @example dynamicReactiveFormControlBuilder(item: FormItem) {\n * return this.buildFormControlForDynamicComponent(item: FormItem);\n * }\n * @param item FormItem used to generate form controls\n * @returns FormControl | FormGroup\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected dynamicReactiveFormControlBuilder(item: FormItem): AbstractControl | null {\n return null;\n }\n\n //#endregion\n\n //#region INTERNAL METHODS\n /**\n * Recursively traverses a Form to insert or remove a designated FormItem.\n * @param item MtnaForm to search through\n * @param change: MtnaWfFormItemChange for adding or removing a FormItem\n * @param newItem FormItem to add to its parent\n */\n protected _modifyFormItem<I extends Form | Section | FormItem | FormItemImpl<unknown>>(\n item: I,\n change: MtnaWfFormItemChange,\n newItem?: FormItem\n ): Form | Section | FormItem | FormItemImpl<unknown> {\n if (!change.parentIds.length) {\n // At this point, we reach the Parent FormItem\n if (change.actionType === 'REPLACE') {\n if ('items' in item) {\n const index = item.items.findIndex((i) => i.instanceId === newItem?.instanceId);\n const newItems = [...item.items];\n if (newItem) {\n newItems.splice(index, 1, newItem);\n }\n return { ...item, items: newItems };\n }\n return item;\n } else if (isRepeatableItem(item)) {\n return {\n ...item,\n items: change.actionType === 'ADD' ? item.items.concat(newItem || []) : item.items.filter((i) => i.instanceId !== change.id),\n };\n } else {\n return item;\n }\n }\n\n if (isForm(item) || isSection(item) || isFormItemGroupImpl(item) || isRepeatableItem(item)) {\n const items = [...item.items];\n const indexToModify = item.items.findIndex((i) => i.instanceId === change.parentIds[0]);\n const itemToModify = item.items[indexToModify] as ParentItemUnion;\n\n items.splice(\n indexToModify,\n 1,\n this._modifyFormItem(\n itemToModify,\n {\n ...change,\n parentIds: change.parentIds.slice(1),\n },\n newItem\n ) as FormItem\n );\n return {\n ...item,\n items,\n };\n } else if (isTableItem(item)) {\n return this._modifyTableItem(item as TableItem, change, newItem);\n } else if (isOptionItemImpl(item) || isOptionGroupItemImpl(item)) {\n return this._modifyOptionItem(\n item as OptionItemImpl<Option<unknown>, unknown> | OptionGroupItemImpl<Option<unknown>>,\n change,\n newItem\n )[0];\n }\n return item;\n }\n\n /**\n * Traverses an OptionItemMap of a FormItem to insert or remove a designated FormItem\n * @param optionItem FormItem with an optionItemMap, e.g. OptionItemImpl | OptionGroupItemImpl\n * @param change MtnaWfFormItemChange for adding or removing a FormItem\n * @param newItem FormItem to be added to its parent\n * @returns FormItem with an optionItemMap containing FormItems\n */\n private _modifyOptionItem(\n optionItem: OptionItemImpl<Option<unknown>, unknown> | OptionGroupItemImpl<Option<unknown>>,\n change: MtnaWfFormItemChange,\n newItem?: FormItem\n ): [OptionItemImpl<Option<unknown>, unknown> | OptionGroupItemImpl<Option<unknown>>, boolean] {\n let found = false;\n const optionItemMap: { [id: string]: FormItem } = {};\n // Loop through the map and set the items to a new map\n // Check if any FormItem in the map matches the next parent ID\n for (const id in optionItem.optionItemMap) {\n if (Object.prototype.hasOwnProperty.call(optionItem.optionItemMap, id)) {\n // If one matches, modify & set it on the new map\n if (optionItem.optionItemMap[id].instanceId === change.parentIds[0]) {\n found = true;\n optionItemMap[id] = this._modifyFormItem(\n optionItem.optionItemMap[id] as ParentItemUnion,\n { ...change, parentIds: change.parentIds.slice(1) },\n newItem\n ) as FormItem;\n } else {\n optionItemMap[id] = optionItem.optionItemMap[id];\n }\n }\n }\n // return the item with its new optionItemMap, & whether we found the matching item\n return [{ ...optionItem, optionItemMap }, found];\n }\n\n /**\n * Traverses table rows to insert or remove a FormItem\n * @param tableItem TableItem to traverse\n * @param change MtnaWfFormItemChange for adding or removing a FormItem\n * @param newItem FormItem to be added to its parent\n * @returns TableItem with a FormItem added or removed\n */\n private _modifyTableItem(tableItem: TableItem, change: MtnaWfFormItemChange, newItem?: FormItem): TableItem {\n let found = false;\n // Map the table rows to find the FormItem with matching instanceId\n const tableRows: TableRowItem[] = tableItem.tableRows.map((row: TableRowItem) => {\n // If the item was found, skip mapping further rows\n if (!found) {\n return {\n ...row,\n items: row.items.map((rowItem: FormItem) => {\n // If we found the next matching FormItem, toggle 'found', and return the modified FormItem\n if (!!rowItem && rowItem.instanceId === change.parentIds[0]) {\n found = true;\n return this._modifyFormItem(\n rowItem as ParentItemUnion,\n { ...change, parentIds: change.parentIds.slice(1) },\n newItem\n ) as FormItem;\n }\n // If the FormItem instanceId doesn't match, but it has FormItems in its 'optionItemMap',\n // We need to check if a matching FormItem exists in its map\n if ('optionItemMap' in rowItem) {\n const returned = this._modifyOptionItem(\n rowItem as OptionItemImpl<Option<unknown>, unknown> | OptionGroupItemImpl<Option<unknown>>,\n change,\n newItem\n );\n found = returned[1];\n return returned[0];\n }\n return rowItem;\n }),\n };\n }\n return row;\n });\n return { ...tableItem, tableRows };\n }\n\n /**\n * Adds or removes instanceIds from the 'itemIds' in a FormItem's condition\n * @param form MtnaForm to search through & replace formitems with the new condition\n * @param change The change that recently occurred in the mtnaForm\n */\n private _modifyFormItemConditions(form: Form, change: MtnaWfFormItemChange): Form {\n let newForm = form;\n if (change.conditionChanges) {\n const formItems: { [key: string]: FormItem | ConditionalItem } = {};\n for (const cc of change.conditionChanges) {\n for (const toggledId of [...cc.enabledItems, ...cc.disabledItems]) {\n let formItem = formItems[toggledId];\n const formItemComponent = this.uiService.getItem(toggledId);\n if (!formItem && formItemComponent?.item) {\n formItem = formItemComponent?.item;\n }\n if (isConditionalItem(formItem) && formItem.condition) {\n const itemConditionItemIds = formItem.condition.itemIds || [];\n const itemIds =\n change.actionType === 'ADD'\n ? [...itemConditionItemIds, cc.enablerId]\n : itemConditionItemIds.filter((i) => i !== cc.enablerId);\n\n const newItem: ConditionalItem = { ...formItem, condition: { ...formItem.condition, itemIds } };\n const newChange = new MtnaWfFormItemChange(newItem.instanceId, formItemComponent?.parentIds || [], 'REPLACE');\n\n newForm = this._modifyFormItem(newForm, newChange, newItem as FormItem & ConditionalItem) as Form;\n formItems[toggledId] = newItem;\n }\n }\n if (change.actionType === 'REMOVE') {\n this.uiService.toggleFormItems(cc.enabledItems, cc.disabledItems, !!cc.enable, cc.enablerId);\n }\n }\n }\n return newForm;\n }\n\n /**\n * Builds a map of all instanceIds inside an item. Checks 'items' & 'optionItemMap'\n * @param item Item to recurse\n * @param idMap map of the item's internal instanceIds\n */\n private _buildInternalIdsMap(item: FormItem, idMap: Record<string, boolean>) {\n idMap[item.instanceId] = true;\n if (isType<{ items: FormItem[] }>(item, 'items')) {\n const items: FormItem[] = item.items;\n for (const subItem of items) {\n this._buildInternalIdsMap(subItem, idMap);\n }\n } else if (isType<{ optionItemMap: { [id: string]: FormItem } }>(item, 'optionItemMap')) {\n const map: { [id: string]: FormItem } = item.optionItemMap;\n for (const id in map) {\n if (Object.prototype.hasOwnProperty.call(map, id)) {\n this._buildInternalIdsMap(map[id], idMap);\n }\n }\n }\n }\n\n /**\n * Builds an array of ConditionChanges to be implemented in an MtnaForm.\n * @param item FormItem that was added/removed, which affects conditions of other FormItems\n * @param changes Array to build up\n * @param internalIdMap Map of all instanceIds located in the item; in order to exclude them from the condition changes\n * @param action Whether the item was added or removed\n */\n private _buildConditionChangeArray(\n item: FormItem,\n changes: Array<ConditionChange>,\n internalIdMap: Record<string, boolean>,\n action?: MtnaWfFormItemChangeAction\n ) {\n if (isOptionItemImpl(item)) {\n const enable = !!action && action === 'ADD' ? item.option.selected || item.value === item.option.option.id : false;\n this._pushConditionToArray(item.instanceId, item.option.enabledItems, item.option.disabledItems, changes, internalIdMap, enable);\n this._buildArrayFromOptionItemMap(item, changes, internalIdMap);\n } else if (isOptionGroupItemImpl(item)) {\n for (const option of item.options) {\n const enable =\n !!action && action === 'ADD' ? option.selected || (!!item.value && item.value.some((v) => v === option.option.id)) : false;\n this._pushConditionToArray(item.instanceId, option.enabledItems, option.disabledItems, changes, internalIdMap, enable);\n }\n this._buildArrayFromOptionItemMap(item, changes, internalIdMap, action);\n } else if (isType<{ items: FormItem[] }>(item, 'items')) {\n const items: FormItem[] = item.items;\n for (const subItem of items) {\n this._buildConditionChangeArray(subItem, changes, internalIdMap, action);\n }\n }\n }\n\n /**\n * Builds an array of ConditionChanges from an item's optionItemMap\n * @param item FormItem with an optionItemMap\n * @param conditions Array of ConditionChanges to push on new changes\n * @param itemMap map of instanceIds exisiting in an item; in order to exclude them from the changes\n * @param action Whether an item was added or removed\n */\n private _buildArrayFromOptionItemMap(\n item: OptionItemImpl<Option<unknown>, unknown> | OptionGroupItemImpl<Option<unknown>>,\n conditions: Array<ConditionChange>,\n itemMap: Record<string, boolean>,\n action?: MtnaWfFormItemChangeAction\n ) {\n if (item.optionItemMap) {\n for (const id in item.optionItemMap) {\n if (Object.prototype.hasOwnProperty.call(item.optionItemMap, id)) {\n const subItem = item.optionItemMap[id];\n this._buildConditionChangeArray(subItem, conditions, itemMap, action);\n }\n }\n }\n }\n\n /**\n * Pushes a new ConditionChange onto the conditions array. If a ConditionChange with matching id exists,\n * it merges the new values into it\n * @param enablerId instanceId of the item that enables other FormItems\n * @param enabled the item's 'enabledItems' array\n * @param disabled the item's 'disabledItems' array\n * @param conditions Array of ConditionChanges to build up\n * @param itemMap map of instanceIds inside an item; to ensure no internal ids are included in a change\n * @param enable Whether the 'enabledItems' should toggled enabled\n */\n private _pushConditionToArray(\n enablerId: string,\n enabled: string[],\n disabled: string[],\n conditions: Array<ConditionChange>,\n itemMap: Record<string, boolean>,\n enable: boolean\n ) {\n const enabledItems = enabled.filter((e) => !itemMap[e]);\n const disabledItems = disabled.filter((d) => !itemMap[d]);\n if (!!enabledItems.length || !!disabledItems.length) {\n const index = conditions.findIndex((c) => c.enablerId === enablerId);\n if (index < 0) {\n conditions.push({ enablerId: enablerId, enabledItems, disabledItems, enable });\n } else {\n const prev = conditions[index];\n const newId: ConditionChange = {\n enablerId,\n enabledItems: [...prev.enabledItems, ...enabledItems],\n disabledItems: [...prev.disabledItems, ...disabledItems],\n enable,\n };\n conditions.splice(index, 1, newId);\n }\n }\n }\n\n /**\n * Store all validation errors on the service.\n * Revalidate form controls that previously had errors or have new errors now.\n */\n private _updateServerSideErrors() {\n // Keep track of IDs for each control that needs to be revalidated\n const controlIdsToRevalidate = new Set<string>();\n\n // Collect controls previously in error to revalidate\n if (this._formItemValidationResults) {\n for (const id in this._formItemValidationResults) {\n if (Object.prototype.hasOwnProperty.call(this._formItemValidationResults, id)) {\n controlIdsToRevalidate.add(id);\n }\n }\n }\n\n // Clear out all previous stored errors\n this._formItemValidationResults = {};\n if (this._mtnaForm?.validationResult) {\n for (const result of this._mtnaForm.validationResult.formItemValidationResults) {\n if (result.validationStatus === 'ERRORS') {\n // Store errors so that the validationResultValidator can validate each control\n this._formItemValidationResults[result.id] = result;\n // We need to revalidate these controls that have errors\n controlIdsToRevalidate.add(result.id);\n }\n }\n }\n\n // Only revalidate controls actually changes\n const form = this.ngFormService.getForm();\n if (form) {\n for (const id of controlIdsToRevalidate) {\n const control = findFormControl(id, form);\n if (control) {\n control.updateValueAndValidity();\n }\n }\n }\n }\n\n //#endregion\n}\n","import { Injectable } from '@angular/core';\nimport { ResourceReference } from '@mtna/web-form-ts';\nimport { Result } from '@mtna/search-manager-ts';\nimport { MtnaSearchSelectionService } from '@mtna/search-manager-angular';\n\n@Injectable()\nexport class MtnaWfResourceSearchSelectionService extends MtnaSearchSelectionService<ResourceReference> {\n getModelFromResult(result: Result): ResourceReference {\n const referenceDetails: ResourceReference = {\n // FIXME these need to come from the item.\n uri: result.getFieldByName<string>('uri')?.value || '',\n display: result.getFieldByName<string>('title')?.value || '',\n };\n return referenceDetails;\n }\n\n modelIsResult(model: ResourceReference, result: Result): boolean {\n return model.uri === result.getFieldByName<string>('uri')?.value;\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AfterViewInit, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CanDestroyNotify, mixinDestroyNotifier } from '@mtna/core-angular';\nimport { AnnotatableNumberMap } from '@mtna/pojo-social-angular';\nimport { Form, FormControlStatus, FormItem } from '@mtna/web-form-ts';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { distinctUntilChanged, skipWhile, takeUntil } from 'rxjs/operators';\n\nimport { FormStep } from '../../models';\nimport { MtnaWfManagerService, MtnaWfNgFormService, MtnaWfUIService } from '../../services';\nimport { findFormControl } from '../../utilities';\n\nconst _BaseFormComponent = mixinDestroyNotifier(class {});\n\n@Component({\n template: ``,\n})\nexport class MtnaWfBaseFormComponent<F extends Form = Form>\n extends _BaseFormComponent\n implements AfterViewInit, CanDestroyNotify, OnDestroy\n{\n static ngAcceptInputType_emitStatusOnMtnaFormChange: BooleanInput;\n static ngAcceptInputTypes_readonly: BooleanInput;\n\n @Input()\n set annotations(map: AnnotatableNumberMap) {\n this.uiService.registerAnnotations(map);\n }\n\n /** Whether to emit the status of each step each time the {@link mtnaForm} is set to a new value. Defaults to false.*/\n @Input()\n get emitStatusOnMtnaFormChange(): boolean {\n return this._emitStatusOnMtnaFormChange;\n }\n set emitStatusOnMtnaFormChange(emitStatusOnMtnaFormChange: boolean) {\n this._emitStatusOnMtnaFormChange = coerceBooleanProperty(emitStatusOnMtnaFormChange);\n }\n private _emitStatusOnMtnaFormChange = false;\n\n @Input()\n get mtnaForm(): F | null | undefined {\n return this._mtnaForm;\n }\n set mtnaForm(form: F | null | undefined) {\n if (!!form && !this.ngForm) {\n // serialize the form when input is set the first time\n this._handleFormSerialization(form);\n this._checkAndSubscribeToFormStatus();\n }\n this._mtnaForm = form;\n if (form) {\n this.mtnaFormManager.setMtnaForm(form);\n\n // If indicated, re-emit the status of each step when there is a new form\n if (this.emitStatusOnMtnaFormChange && this.ngForm) {\n for (const key in this._steps) {\n if (Object.prototype.hasOwnProperty.call(this._steps, key)) {\n this._emitFormControlStatus(key);\n }\n }\n }\n }\n }\n private _mtnaForm: F | null | undefined;\n\n /**\n * The form can contain sections not included in the steps.\n * To avoid misalignment of steps-to-sections, we map each step to\n * its instanceId\n */\n @Input()\n set steps(newSteps: Array<FormStep> | null | undefined) {\n if (!!newSteps && !!newSteps.length) {\n if (!this._steps) {\n this._steps = {};\n }\n for (const step of newSteps) {\n this._steps[step.instanceId] = step;\n }\n this._checkAndSubscribeToFormStatus();\n }\n }\n\n @Input()\n get readonly(): boolean {\n return this.readonly$.value;\n }\n set readonly(r: boolean) {\n const newValue = coerceBooleanProperty(r);\n if (newValue !== this.readonly$.value) {\n this.readonly$.next(r);\n }\n }\n private readonly$ = new BehaviorSubject<boolean>(true);\n\n /**\n * Emitted every time a form control's validation status changes.\n * The `id` is the form control's name and the `status` is the new validation status for the control.\n */\n @Output() status = new EventEmitter<{ id: string; status: FormControlStatus }>();\n @Output() focusedSection = new EventEmitter<FormStep>();\n @Output() mtnaFormChange = new EventEmitter<F>();\n\n ngForm: FormGroup | undefined;\n componentIds = [];\n _steps: { [id: string]: FormStep } | undefined;\n\n private _constructionDate: Date;\n private _hasPreviousForm = false;\n private _ngFormStatusChangeSub?: Subscription;\n private _mtnaFormItemChangeSub?: Subscription;\n private _initialStatusEmitted = false;\n\n constructor(\n protected mtnaFormManager: MtnaWfManagerService,\n protected ngFormService: MtnaWfNgFormService,\n protected uiService: MtnaWfUIService\n ) {\n super();\n this._constructionDate = new Date();\n // Initialize the subscription to observe input changes\n this._subscribeAndEmitMtnaFormChanges();\n }\n\n ngAfterViewInit(): void {\n const afterViewInitDate = new Date();\n const secondsToRender = (afterViewInitDate.getTime() - this._constructionDate.getTime()) / 1000;\n console.warn('[MtnaFormComponent] afterViewInit - took ', secondsToRender, ' to render');\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.uiService.resetComponentMap();\n }\n\n _trackByInstanceId(index: number, formItem: FormItem) {\n return formItem.instanceId;\n }\n\n /** Subscribe and emit form status changes for the steps. */\n private _checkAndSubscribeToFormStatus() {\n // Only subscribe once both the steps and the angular have been initialized\n if (this.ngForm && this._steps) {\n // Update form status subscriptions anytime the readonly input changes\n this.readonly$.pipe(takeUntil(this.destroyed$), distinctUntilChanged()).subscribe((readonly) => {\n if (readonly) {\n // Don't emit statuses while form is in readonly\n this._unsubscribeFromNgFormChanges();\n } else if (!this._ngFormStatusChangeSub || this._ngFormStatusChangeSub.closed) {\n // For performance, subscribe should only trigger again if the subscription didn't previously exist\n this._emitInitialStepsStatusAndSubscribeToChanges(!this._initialStatusEmitted);\n this._initialStatusEmitted = true;\n }\n });\n }\n }\n\n /**\n * Find a form control with the given name, then emit it's status.\n *\n * @param name — The unique name of the form control to find and emit the status for.\n */\n private _emitFormControlStatus(name: string) {\n if (this.ngForm) {\n const control = findFormControl(name, this.ngForm);\n if (control) {\n this.status.emit({\n id: name,\n status: control.status as FormControlStatus,\n });\n }\n }\n }\n\n /**\n * @param emitInitialValues Whether to emit initial step values or just listen for future changes\n */\n private _emitInitialStepsStatusAndSubscribeToChanges(emitInitialValues: boolean) {\n if (this._steps && this.ngForm) {\n this._unsubscribeFromNgFormChanges();\n this._ngFormStatusChangeSub = new Subscription();\n\n // Find the form control for each step and only subscribe to those.\n for (const key in this._steps) {\n if (Object.prototype.hasOwnProperty.call(this._steps, key)) {\n const control = findFormControl(key, this.ngForm);\n if (control) {\n if (emitInitialValues) {\n this.status.emit({\n id: key,\n // Angular introduced this status in v13, once we update, this type cast can be removed.\n status: control.status as FormControlStatus,\n });\n }\n // Subscribe to status changes of each step & emit on change\n this._ngFormStatusChangeSub.add(\n control.statusChanges.pipe(takeUntil(this.destroyed$), distinctUntilChanged()).subscribe((status) => {\n this.status.emit({ id: key, status });\n })\n );\n }\n }\n }\n }\n }\n\n /**\n * Observes input changes for readOnly, in order to handle internal change subscriptions.\n * When the form is not readonly, we subscribe to form status & form item changes, so we can emit them.\n * When the form is readonly, we do not want to emit any changes, so we unsubscribe.\n */\n private _subscribeAndEmitMtnaFormChanges() {\n this.readonly$\n .pipe(\n takeUntil(this.destroyed$),\n // we don't want to create subscriptions until we have a form to subscribe to\n skipWhile(() => !this.mtnaForm),\n distinctUntilChanged()\n )\n .subscribe((readonly) => {\n if (readonly) {\n this._unsubscribeFromMtnaFormChanges();\n } else if (!this._mtnaFormItemChangeSub || this._mtnaFormItemChangeSub.closed) {\n // For performance, subscribe should only trigger again if one of the subscriptions didn't previously exist\n this._subscribeToMtnaFormItemChanges();\n }\n });\n }\n\n private _handleFormSerialization(form: Form) {\n // Get the registered form from the service if it exists\n this._hasPreviousForm = this.ngFormService.hasForm();\n if (this._hasPreviousForm) {\n this.ngForm = this.ngFormService.getForm();\n // FIXME this is necessary because the initial visiblity is based on the mtnaForm item's disable property\n // If the user changes a value, goes to another tab (destroying form) and comes back, the initial values are incorrect\n this.mtnaForm = this.mtnaFormManager.insertNewValues(form, this.ngFormService.getFormValue()) as F;\n } else {\n this.ngForm = this.mtnaFormManager.serializeMtnaFormItem(form) as FormGroup;\n this.ngFormService.setForm(this.ngForm);\n }\n }\n\n /**\n * Adds or removes a FormItem whenever a new MtnaWfFormItemChange occurs,\n * and emits a new MtnaForm.\n */\n private _subscribeToMtnaFormItemChanges() {\n this._unsubscribeFromMtnaFormChanges();\n this._mtnaFormItemChangeSub = this.mtnaFormManager.formChanges\n .pipe(\n takeUntil(this.destroyed$),\n skipWhile((change) => !change)\n )\n .subscribe((newForm: Form) => this.mtnaFormChange.emit(newForm as F));\n }\n\n private _unsubscribeFromNgFormChanges() {\n if (!!this._ngFormStatusChangeSub && !this._ngFormStatusChangeSub.closed) {\n this._ngFormStatusChangeSub.unsubscribe();\n }\n }\n\n private _unsubscribeFromMtnaFormChanges() {\n if (!!this._mtnaFormItemChangeSub && !this._mtnaFormItemChangeSub.closed) {\n this._mtnaFormItemChangeSub.unsubscribe();\n }\n }\n}\n","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: '[formDisabled]',\n template: `\n <fieldset [disabled]=\"formDisabled\">\n <ng-content></ng-content>\n </fieldset>\n `,\n styles: [\n `\n fieldset {\n display: block;\n margin: unset;\n padding: unset;\n border: unset;\n }\n `,\n ],\n})\nexport class MtnaWfFormDisablerComponent {\n @Input() formDisabled = false;\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Form } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormComponent } from '../base-form';\n\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n@Component({\n selector: 'mtna-form',\n templateUrl: './form.component.html',\n styleUrls: ['./form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n outputs: ['status', 'focusedSection', 'mtnaFormChange'],\n})\nexport class MtnaWfFormComponent extends MtnaWfBaseFormComponent<Form> {}\n","<form *ngIf=\"ngForm\" [formGroup]=\"ngForm\" [formDisabled]=\"readonly\">\n <mtna-wf-item\n *ngFor=\"let item of mtnaForm?.items | mtnaWfFilterHiddenItems; let index = index; trackBy: _trackByInstanceId\"\n [item]=\"item\"\n [control]=\"ngForm.controls[item.instanceId]\"\n [readonly]=\"readonly\"\n [parentIds]=\"componentIds\"\n [step]=\"_steps?.[item.instanceId]\"\n (focusedSection)=\"focusedSection.emit($event)\"\n ></mtna-wf-item>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MtnaWfFormDisablerComponent } from './form-disabler.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtnaWfFormDisablerComponent],\n declarations: [MtnaWfFormDisablerComponent],\n})\nexport class MtnaWfFormDisablerModule {}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input, ViewEncapsulation } from '@angular/core';\nimport { CanColor, mixinColor } from '@angular/material/core';\n\nimport { FormStep } from '../../../models/form-stepper/form-step.model';\n\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\nconst _FormStepMixinBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n },\n 'primary'\n);\n\n/**\n * A component that represents a single step in a form stepper.\n * NOTE:\n * - disabled: property on the FormStep used to determine if the step is disabled. This will affect the disabled property and the clickable property.\n * - clickable: property on the FormStep used to determine if the step is clickable. This does not affect the disabled property.\n */\n@Component({\n selector: 'mtna-wf-step',\n templateUrl: './form-step.component.html',\n styleUrls: ['./form-step.component.scss'],\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfFormStepComponent extends _FormStepMixinBase implements CanColor {\n @HostBinding('class.disabled') disabled = false;\n\n @Input()\n get step(): FormStep {\n return this._step;\n }\n set step(step: FormStep) {\n this._step = step;\n this.disabled = step.status === 'DISABLED' || step.disabled;\n }\n private _step!: FormStep;\n\n @HostBinding('class.clickable')\n @Input()\n get clickable() {\n return !this.disabled && this._clickable;\n }\n set clickable(clickable: boolean) {\n this._clickable = clickable;\n }\n private _clickable = true;\n\n @Input() incompleteIcon: string | null | undefined;\n\n notApplicableText = $localize`Not Applicable`;\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n\n /**\n * Prevents click event if this step is not clickable\n */\n _haltClickEvent(event: Event) {\n if (!this.clickable) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n","<li\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n matRipple\n [matRippleDisabled]=\"!clickable\"\n [class.active-step]=\"step.active\"\n (click)=\"_haltClickEvent($event)\"\n>\n <mtna-status-circle\n [color]=\"color\"\n [circleNumber]=\"step.num\"\n [incompleteIcon]=\"incompleteIcon\"\n [optional]=\"step.optional\"\n [status]=\"step.status\"\n ></mtna-status-circle>\n <div fxLayout=\"column\" fxFlex=\"100\">\n <p class=\"step-title\">{{ step.label }}</p>\n <p *ngIf=\"step.optional && !disabled\" class=\"step-status\" i18n>Optional</p>\n <p *ngIf=\"disabled\" class=\"step-status\">{{ step.disabledText || notApplicableText }}</p>\n </div>\n</li>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CanColor, mixinColor } from '@angular/material/core';\n\nimport { FormStep } from '../../../models';\n\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\nconst _FormStepMixinBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n },\n 'primary'\n);\n\n@Component({\n selector: 'mtna-wf-step-group',\n templateUrl: './form-step-group.component.html',\n styleUrls: ['./form-step-group.component.scss'],\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfFormStepGroupComponent extends _FormStepMixinBase implements CanColor {\n /** Whether all but the first step is hidden*/\n @Input() collapsed = false;\n @Input() incompleteIcon: string | null | undefined;\n /** Steps to be displayed */\n @Input()\n get steps() {\n return this._steps;\n }\n set steps(steps: FormStep[]) {\n this._steps = steps;\n }\n private _steps: FormStep[] = [];\n\n @Output() selected = new EventEmitter<FormStep>();\n\n _collapsedText = $localize`View All`;\n _hideText = $localize`Hide`;\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","<ng-container *ngFor=\"let step of steps | slice : 0 : (collapsed ? 1 : steps.length); let last = last\">\n <mtna-wf-step\n [clickable]=\"step.status !== 'DISABLED' && step.status !== 'PLACEHOLDER'\"\n [color]=\"color\"\n [incompleteIcon]=\"incompleteIcon\"\n [step]=\"step\"\n (click)=\"selected.emit(step)\"\n ></mtna-wf-step>\n <mat-divider *ngIf=\"!last\" [vertical]=\"true\"></mat-divider>\n <p *ngIf=\"collapsed\" class=\"show-more mat-caption\" i18n>and {{ steps.length - 1 }} more...</p>\n</ng-container>\n<button\n mat-icon-button\n class=\"collapse-button\"\n [color]=\"color\"\n (click)=\"collapsed = !collapsed\"\n [matTooltip]=\"collapsed ? _collapsedText : _hideText\"\n>\n <mat-icon>{{ collapsed ? 'expand_more' : 'expand_less' }}</mat-icon>\n</button>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CanColor, mixinColor } from '@angular/material/core';\n\nimport { FormStep, FormStepGroup, isFormStepGroup } from '../../../models';\n\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\nconst _FormStepperMixinBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n },\n 'primary'\n);\n\n/**\n * Vertical stepper component, ability to show step statuses and allows clicking each step.\n *\n * @export\n * @author Will Davis <will.davis@mtna.us>\n */\n@Component({\n selector: 'mtna-wf-stepper',\n // templateUrl: './form-stepper.component.html',\n templateUrl: './form-stepper-new.component.html',\n styleUrls: ['./form-stepper.component.scss'],\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfFormStepperComponent extends _FormStepperMixinBase implements CanColor {\n @Input() incompleteIcon: string | null | undefined;\n /** Form steps */\n @Input()\n get steps(): Array<FormStep | FormStepGroup> {\n return this._steps;\n }\n set steps(steps: Array<FormStep | FormStepGroup>) {\n this._steps = steps;\n this.createGroupStepCollapsedMap(steps);\n }\n private _steps: Array<FormStep | FormStepGroup> = [];\n /** When a step is selected */\n @Output() selected = new EventEmitter<FormStep>();\n\n groupStepCollapsedMap: { [key: string]: boolean } = {};\n\n notApplicableText = $localize`Not Applicable`;\n _collapsedText = $localize`View All`;\n _hideText = $localize`Hide`;\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n\n /**\n * Improves effeciency of the *ngFor loop that creates the steps.\n *\n * @param index index of loop\n * @param step current step in loop\n * @returns unique string to key each item in the loop\n */\n _trackStep(index: number, step: FormStep | FormStepGroup) {\n return step.instanceId || index;\n }\n\n /**\n * Prevents click event if this step is not clickable\n */\n _haltClickEvent(event: Event, step: FormStep) {\n const clickable = step.status !== 'DISABLED' && step.status !== 'PLACEHOLDER';\n if (!clickable) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n\n createGroupStepCollapsedMap(steps: Array<FormStep | FormStepGroup>) {\n steps.forEach((step) => {\n if (isFormStepGroup(step)) {\n this.groupStepCollapsedMap[step.instanceId] = step.collapsed;\n }\n });\n console.warn('groupStepCollapsedMap', this.groupStepCollapsedMap);\n }\n\n toggleGroupStep(step: FormStepGroup) {\n this.groupStepCollapsedMap[step.instanceId] = !this.groupStepCollapsedMap[step.instanceId];\n console.warn('groupStepCollapsedMap', this.groupStepCollapsedMap);\n }\n}\n","<ol>\n <ng-container *ngFor=\"let step of steps; let last = last; trackBy: _trackStep\">\n <ng-container\n [ngTemplateOutlet]=\"(step | mtnaWfStepGroupPipe) ? groupStep : singleStep\"\n [ngTemplateOutletContext]=\"{ $implicit: step }\"\n ></ng-container>\n </ng-container>\n</ol>\n\n<ng-template #singleStep let-step>\n <ng-container *ngIf=\"step | coerceFormStep as singleStep\">\n <li\n fxLayout=\"row\"\n fxLayouAlign=\"start center\"\n [ngClass]=\"{\n 'disabled-step': singleStep.status === 'DISABLED',\n 'active-step': singleStep.active,\n clickable: singleStep.status !== 'DISABLED' && singleStep.status !== 'PLACEHOLDER'\n }\"\n >\n <ng-container [ngTemplateOutlet]=\"stepContent\" [ngTemplateOutletContext]=\"{ $implicit: singleStep }\"></ng-container>\n </li>\n </ng-container>\n</ng-template>\n\n<ng-template #groupStep let-step>\n <ng-container *ngIf=\"step | coerceFormStepGroup as groupStepParent\">\n <li\n fxLayout=\"column\"\n fxLayoutAlign=\"start start\"\n [class.child-step-active]=\"(groupStepParent.steps | childStepActive) && groupStepCollapsedMap[groupStepParent.instanceId]\"\n >\n <div fxFlex=\"100\" fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"mtna-wf-step-item-content\">\n <button\n fxFlex\n mat-button\n class=\"step-button\"\n [attr.aria-label]=\"groupStepParent | getStepAriaLabel : groupStepCollapsedMap[groupStepParent.instanceId]\"\n (click)=\"toggleGroupStep(step)\"\n >\n <mtna-status-circle [color]=\"color\" [circleNumber]=\"groupStepParent.num\" [incompleteIcon]=\"incompleteIcon\"></mtna-status-circle>\n <div fxLayout=\"row\" class=\"step-button-label-wrapper\" fxFlex=\"100\">\n <p class=\"step-title\">{{ groupStepParent.label }}</p>\n </div>\n <mat-icon>{{ groupStepCollapsedMap[step.instanceId] ? 'expand_more' : 'expand_less' }}</mat-icon>\n </button>\n </div>\n <ol class=\"group-step-list\">\n <ng-container\n *ngFor=\"\n let groupStep of step.steps | slice : 0 : (groupStepCollapsedMap[step.instanceId] ? 0 : step.steps.length);\n let last = last\n \"\n >\n <!-- All children in the steps property of FormStepGroup are FormStep(s). Only using coercion here to assist in defining properties we can use. -->\n <li\n *ngIf=\"groupStep | coerceFormStep as groupStepChild\"\n fxLayout=\"row\"\n fxLayouAlign=\"start center\"\n [ngClass]=\"{\n 'disabled-step': groupStepChild.status === 'DISABLED',\n 'active-step': groupStepChild.active,\n clickable: groupStepChild.status !== 'DISABLED' && groupStepChild.status !== 'PLACEHOLDER',\n 'group-step': true\n }\"\n >\n <ng-container\n [ngTemplateOutlet]=\"stepContent\"\n [ngTemplateOutletContext]=\"{ $implicit: groupStepChild, isChildStep: true }\"\n ></ng-container>\n </li>\n </ng-container>\n </ol>\n </li>\n </ng-container>\n</ng-template>\n\n<!-- The individual, stand-alone step template -->\n<ng-template #stepContent let-step let-isChildStep=\"isChildStep\">\n <div fxFlex=\"100\" fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"mtna-wf-step-item-content\">\n <mat-divider *ngIf=\"isChildStep\" [vertical]=\"true\"></mat-divider>\n <button\n fxFlex\n mat-button\n class=\"step-button\"\n [attr.aria-label]=\"step | getStepAriaLabel\"\n [disabled]=\"step.status === 'DISABLED' || step.status === 'PLACEHOLDER'\"\n (click)=\"_haltClickEvent($event, step)\"\n >\n <mtna-status-circle\n [color]=\"color\"\n [circleNumber]=\"step.num\"\n [incompleteIcon]=\"incompleteIcon\"\n [optional]=\"step.optional\"\n [status]=\"step.status\"\n ></mtna-status-circle>\n <div fxLayout=\"column\" class=\"step-button-label-wrapper\">\n <p class=\"step-title\">{{ step.label }}</p>\n <p *ngIf=\"step.optional && step.status !== 'DISABLED'\" class=\"step-status\" i18n>Optional</p>\n <p *ngIf=\"step.status === 'DISABLED'\" class=\"step-status\">{{ step.disabledText || notApplicableText }}</p>\n </div>\n </button>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MtnaStatusCircleModule } from '@mtna/core-angular';\n\nimport {\n ChildStepActivePipeModule,\n CoerceFormStepGroupPipeModule,\n CoerceFormStepPipeModule,\n GetStepAriaLabelModule,\n MtnaWfFormStepGroupPipeModule,\n} from '../../pipes';\nimport { MtnaWfFormStepGroupComponent } from './form-step-group';\nimport { MtnaWfFormStepComponent } from './form-step/form-step.component';\nimport { MtnaWfFormStepperComponent } from './form-stepper/form-stepper.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FlexLayoutModule,\n MatDividerModule,\n MtnaStatusCircleModule,\n MatRippleModule,\n MatButtonModule,\n MatTooltipModule,\n MatIconModule,\n MtnaWfFormStepGroupPipeModule,\n CoerceFormStepGroupPipeModule,\n CoerceFormStepPipeModule,\n ChildStepActivePipeModule,\n GetStepAriaLabelModule,\n ],\n declarations: [MtnaWfFormStepComponent, MtnaWfFormStepGroupComponent, MtnaWfFormStepperComponent],\n exports: [MtnaWfFormStepComponent, MtnaWfFormStepGroupComponent, MtnaWfFormStepperComponent],\n})\nexport class MtnaWfFormStepperModule {}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CanColor, mixinColor } from '@angular/material/core';\n\nimport { FormStep } from '../../models/form-stepper/form-step.model';\n\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\nconst _StepCardMixinBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n },\n 'accent'\n);\n\n@Component({\n selector: 'mtna-wf-step-card',\n templateUrl: './step-card.component.html',\n styleUrls: ['./step-card.component.scss'],\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfStepCardComponent extends _StepCardMixinBase implements CanColor {\n @HostBinding('class.active')\n get active(): boolean {\n return !!this.step?.active;\n }\n\n // @Input() step: FormStep | null | undefined;\n @Input()\n get step(): FormStep | null | undefined {\n return this._step;\n }\n set step(step: FormStep | null | undefined) {\n this._step = step;\n console.warn({ stepInsideStepCard: step });\n }\n private _step: FormStep | null | undefined;\n\n @Input() subtitle: string | null | undefined;\n\n @Output() focused = new EventEmitter<FormStep>();\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n\n handleFocusChange(event: FocusOrigin) {\n if (!!this.step && !!event && !this.step.active) {\n this.focused.emit(this.step);\n }\n }\n}\n","<mat-card cdkMonitorSubtreeFocus (cdkFocusChange)=\"handleFocusChange($event)\">\n <mat-card-header>\n <mtna-status-circle mat-card-avatar [circleNumber]=\"step?.num\" [optional]=\"step?.optional\" [status]=\"step?.status\"></mtna-status-circle>\n <mat-card-title>{{ step?.label }}</mat-card-title>\n <mat-card-subtitle [innerHTML]=\"subtitle | mtnaWfSanitizeHtml\"></mat-card-subtitle>\n <p *ngIf=\"step?.optional\" class=\"optional mat-caption\" i18n>Optional</p>\n </mat-card-header>\n\n <mat-divider [inset]=\"true\"></mat-divider>\n\n <mat-card-content>\n <ng-content select=\"[cardContent]\"></ng-content>\n </mat-card-content>\n\n <mat-card-actions>\n <ng-content select=\"[cardActions]\"></ng-content>\n </mat-card-actions>\n</mat-card>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MtnaStatusCircleModule } from '@mtna/core-angular';\n\nimport { MtnaWfSanitizeHtmlPipeModule } from '../../pipes/sanitize-html.pipe';\nimport { MtnaWfFormItemModule } from '../form-item/form-item.module';\nimport { MtnaWfStepCardComponent } from './step-card.component';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n MatCardModule,\n MtnaStatusCircleModule,\n MtnaWfSanitizeHtmlPipeModule,\n MatDividerModule,\n MtnaWfFormItemModule,\n ],\n declarations: [MtnaWfStepCardComponent],\n exports: [MtnaWfStepCardComponent],\n})\nexport class MtnaWfStepCardModule {}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { ErrorStateMatcher } from '@angular/material/core';\n\nimport { MtnaWfInstantValidationResultErrorStateMatcher } from '../../validators/instant-validation-result-error-state-matcher';\nimport { MtnaWfFormDisablerModule } from '../form-disabler/form-disabler.module';\nimport { MtnaWfFormItemModule } from '../form-item/form-item.module';\nimport { MtnaWfFormStepperModule } from '../form-stepper/form-stepper.module';\nimport { MtnaWfStepCardModule } from '../step-card/step-card.module';\nimport { MtnaWfFormComponent } from './form.component';\nimport { MtnaWfFilterHiddenItemsPipeModule } from '../../pipes';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n FlexLayoutModule,\n FormsModule,\n MtnaWfFormItemModule,\n ReactiveFormsModule,\n MtnaWfFormDisablerModule,\n MatMomentDateModule,\n MtnaWfFilterHiddenItemsPipeModule,\n MtnaWfFormStepperModule,\n MtnaWfStepCardModule,\n ],\n declarations: [MtnaWfFormComponent],\n exports: [MtnaWfFormComponent],\n providers: [{ provide: ErrorStateMatcher, useClass: MtnaWfInstantValidationResultErrorStateMatcher }],\n})\nexport class MtnaFormModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport { BooleanItem, FormItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfUIService } from '../../../services/ui.service';\nimport { MtnaWfBaseParentValueItem } from '../../base-items/base-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-boolean-item',\n templateUrl: './boolean.component.html',\n styleUrls: ['./boolean.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfBooleanComponent extends MtnaWfBaseParentValueItem<BooleanItem, FormControl> {\n constructor(cdr: ChangeDetectorRef, private uiService: MtnaWfUIService) {\n super(cdr);\n }\n\n toggleChange(change: MatSlideToggleChange) {\n this.uiService.toggleFormItems(this.item.option.enabledItems, this.item.option.disabledItems, change.checked, this.item.instanceId);\n }\n\n _trackByInstanceId(index: number, item: { key: string; value: FormItem }) {\n return item.value.instanceId;\n }\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<mat-slide-toggle\n *ngIf=\"control\"\n [aria-label]=\"item.option.option.name\"\n [formControl]=\"control\"\n [disabled]=\"readonly\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\"\n (change)=\"toggleChange($event)\"\n >{{ item.option.option.name }}</mat-slide-toggle\n>\n<ng-container *ngIf=\"!!item.optionItemMap\">\n <mtna-wf-item\n *ngFor=\"let f of item.optionItemMap | keyvalue; trackBy: _trackByInstanceId\"\n [item]=\"f.value\"\n [control]=\"!!controlWrapper && controlWrapper.controls ? controlWrapper.controls[f.value.instanceId] : undefined\"\n [parentIds]=\"parentIds\"\n [readonly]=\"readonly\"\n ></mtna-wf-item>\n <ng-container> </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfAcknowledgeDialogModule } from '../../acknowledge-dialog/acknowledge-dialog.module';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfBooleanComponent } from './boolean.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatSlideToggleModule,\n MtnaWfFormItemModule,\n FormsModule,\n ReactiveFormsModule,\n MtnaWfAcknowledgeDialogModule,\n MtnaHighlightModule,\n ],\n declarations: [MtnaWfBooleanComponent],\n exports: [MtnaWfBooleanComponent],\n})\nexport class MtnaWfBooleanModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { FormArray } from '@angular/forms';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { CanDestroyNotify } from '@mtna/core-angular';\nimport { CheckboxItem, Section } from '@mtna/web-form-ts';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { MtnaWfDialogService } from '../../../services/dialog.service';\nimport { MtnaWfBaseParentValueItem } from '../../base-items/base-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-checkbox-item',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfCheckboxComponent extends MtnaWfBaseParentValueItem<CheckboxItem, FormArray> implements CanDestroyNotify, OnDestroy {\n destroyed$ = new Subject<void>();\n _acknowledgementText = $localize`Acknowledged. Click to view the agreement.`;\n\n constructor(cdr: ChangeDetectorRef, private dialogService: MtnaWfDialogService) {\n super(cdr);\n }\n\n handleChange(change: MatCheckboxChange, index: number) {\n const option = this.item.options[index];\n const formControl = this.control?.controls[index];\n\n // If the user is trying to make a selection with something that has an acknowledgement,\n // show the acknowledge dialog first to get their consent.\n // Note: we don't need to show the acknowledgement if the user is unchecking the box.\n if (option.acknowledgement && formControl?.value) {\n // Revert the checkbox to an unchecked state until they agree to the acknowledgement\n formControl?.setValue(false);\n this.dialogService\n .verifyAcknowledgement(option.acknowledgement)\n .pipe(takeUntil(this.destroyed$))\n .subscribe((acknowledged) => {\n if (acknowledged) {\n formControl?.setValue(true);\n this.toggleFormItems.emit({\n enabledItemIds: option.enabledItems,\n disabledItemIds: option.disabledItems,\n enabled: change.checked,\n callerId: this.item.instanceId,\n });\n }\n });\n } else {\n this.toggleFormItems.emit({\n enabledItemIds: option.enabledItems,\n disabledItemIds: option.disabledItems,\n enabled: change.checked,\n callerId: this.item.instanceId,\n });\n }\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n /**\n * Display what the user already acknowledged for a given option.\n * @param event the browser event when the button was invoked\n * @param acknowledgementItem The form item that represents the acknowledgement text to display to the user.\n * */\n showAcknowledgement(event: Event, acknowledgementItem: Section) {\n event.stopPropagation();\n event.preventDefault();\n this.dialogService.showAcknowledgement(acknowledgementItem);\n }\n\n /**\n * Stop a browser event from propagating\n * @param event the event to stop\n */\n stopEventPropagation(event: Event) {\n event.stopPropagation();\n }\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<div *ngIf=\"hasItemHeader\" class=\"mtna-wf-error-container\">\n <ng-container *ngIf=\"control?.invalid && (control?.dirty || control?.touched)\">\n <mat-error *ngFor=\"let error of control?.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </ng-container>\n</div>\n<fieldset\n class=\"control-item-content\"\n [class.single-option]=\"item.options.length === 1\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <ng-container *ngFor=\"let opt of item.options; let i = index; trackBy: _trackByOptionId\">\n <div *ngIf=\"!!control && !!control.controls && !!control.controls[i]\" fxLayout=\"row\">\n <mat-checkbox\n [disableRipple]=\"readonly\"\n [formControl]=\"$any(control.controls[i])\"\n [color]=\"color\"\n [disabled]=\"readonly\"\n (change)=\"handleChange($event, i)\"\n >{{ opt.option.name }}\n </mat-checkbox>\n <button\n *ngIf=\"opt.acknowledgement && control.controls[i].value\"\n mat-icon-button\n class=\"acknowledge-verification-button\"\n [attr.aria-label]=\"_acknowledgementText\"\n [matTooltip]=\"_acknowledgementText\"\n matTooltipShowDelay=\"800\"\n (click)=\"showAcknowledgement($event, opt.acknowledgement)\"\n (mousedown)=\"stopEventPropagation($event)\"\n (touchstart)=\"stopEventPropagation($event)\"\n >\n <mat-icon>verified</mat-icon>\n </button>\n </div>\n <ng-container *ngIf=\"item.optionItemMap[opt.option.id]\">\n <mtna-wf-item\n *ngIf=\"item.optionItemMap[opt.option.id] as subItem\"\n [item]=\"subItem\"\n [control]=\"!!controlWrapper && controlWrapper.controls ? controlWrapper.controls[subItem.instanceId] : undefined\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds.concat(opt.option.id)\"\n ></mtna-wf-item>\n </ng-container>\n </ng-container>\n</fieldset>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { MtnaWfFormItemModule } from '../form-item/form-item.module';\nimport { MtnaWfFormItemDialogComponent } from './form-item-dialog.component';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, MtnaWfFormItemModule, MatButtonModule],\n declarations: [MtnaWfFormItemDialogComponent],\n exports: [MtnaWfFormItemDialogComponent],\n})\nexport class MtnaWfFormItemDialogModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetFormControlErrorPipeModule } from '../../../pipes/get-form-control-error.pipe';\nimport { MtnaWfFormItemDialogModule } from '../../form-item-dialog/form-item-dialog.module';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfCheckboxComponent } from './checkbox.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaWfGetFormControlErrorPipeModule,\n FlexLayoutModule,\n FormsModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MtnaWfFormItemModule,\n MtnaHighlightModule,\n ReactiveFormsModule,\n MtnaWfFormItemDialogModule,\n ],\n declarations: [MtnaWfCheckboxComponent],\n exports: [MtnaWfCheckboxComponent],\n})\nexport class MtnaWfCheckboxModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDateFormats } from '@angular/material/core';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { MtnaLogger } from '@mtna/core-angular';\nimport { DateItem, DateRange } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport type { MatDatepickerInput } from '@angular/material/datepicker';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any,no-var\ndeclare var moment: any;\n\n@Component({\n selector: 'mtna-wf-date-item',\n templateUrl: './date.component.html',\n styleUrls: ['./date.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfDateComponent extends MtnaWfBaseValueItem<DateItem, FormControl> implements AfterViewInit {\n static dateFormItemComponentInstances = 0;\n @HostBinding('class.mtna-wf-date-item') dateItemClass = true;\n\n override get item(): DateItem {\n return super.item;\n }\n override set item(value: DateItem) {\n super.item = value;\n if (this.item.format) {\n this.configureDatePickerFormatter();\n }\n }\n\n // TODO: This is not currenlty used, the back end needs to add range limits on the DateItem in order for this to work\n // Remove once accomplished and replace usage with item.rangeLimits in the html\n @Input() rangeLimits: DateRange<Date | null> | null | undefined = { end: null, start: null };\n\n @ViewChild(MatDatepicker, { static: false }) picker: MatDatepicker<Date> | undefined;\n\n _dateText = $localize`Date`;\n\n constructor(cdr: ChangeDetectorRef, logger: MtnaLogger) {\n super(cdr);\n // We need to check to ensure 'moment' & 'moment-jdateformatparser' scripts have been added to angular.json so that\n // the DateFormItemComponent doesn't break when attempting to format SimpleDateFormat string to Moment format string\n MtnaWfDateComponent.dateFormItemComponentInstances++;\n if (MtnaWfDateComponent.dateFormItemComponentInstances === 1) {\n try {\n if (!!moment && typeof moment().toMomentFormatString !== 'function') {\n logger.error(`[DateFormItemComponent] constructor\n - Cannot find moment-jdateformatparser, make sure to install the dependency and add the script in angular.json, i.e.\n \"scripts\": [\"node_modules/moment-jdateformatparser/moment-jdateformatparser.min.js\"]`);\n }\n } catch (e) {\n logger.error(`[DateFormItemComponent] constructor\n - Cannot find moment.js, make sure to install the dependency and add the script in angular.json, i.e.\n \"scripts\": [\"node_modules/moment/min/moment.min.js\"]`);\n }\n }\n }\n\n ngAfterViewInit() {\n this.configureDatePickerFormatter();\n }\n\n /**\n * Manually change the parse and display formats of the date picker.\n * @see https://github.com/angular/components/issues/8355#issuecomment-376783293\n */\n private configureDatePickerFormatter() {\n if (this.picker) {\n const datepickerInput: MatDatepickerInput<Date> = this.picker.datepickerInput as MatDatepickerInput<Date>;\n // @ts-ignore: access the private date formats on the date picker\n const d: MatDateFormats = JSON.parse(JSON.stringify(datepickerInput._dateFormats));\n\n // Convert the Java SimpleDateFormat to the moment equivalents using moment-jdateformatparser\n const momentFormatString = moment().toMomentFormatString(this.item.format);\n // Use the converted format for the date picker display\n d.display.dateInput = momentFormatString;\n // Use the converted format for the date picker parser (user input)\n d.parse.dateInput = momentFormatString;\n // @ts-ignore: set the updated date formats\n datepickerInput._dateFormats = d;\n\n // @ts-ignore: manually format the current value in the date picker\n datepickerInput._formatValue(datepickerInput.value);\n }\n }\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<mat-form-field *ngIf=\"control\" appearance=\"outline\" [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\">\n <mat-label>{{ item.label || _dateText }}</mat-label>\n <input\n matInput\n [formControl]=\"control\"\n [matDatepicker]=\"picker\"\n [max]=\"rangeLimits?.end\"\n [min]=\"rangeLimits?.start\"\n placeholder=\"Choose a date\"\n i18n-placeholder\n [required]=\"item.required\"\n [disabled]=\"readonly || control.disabled\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disabled]=\"readonly || control.disabled\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n <mat-hint>{{ item.format }}</mat-hint>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetFormControlErrorPipeModule } from '../../../pipes/get-form-control-error.pipe';\nimport { MtnaWfDateComponent } from './date.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatDatepickerModule,\n MatMomentDateModule,\n MtnaHighlightModule,\n ReactiveFormsModule,\n MtnaWfGetFormControlErrorPipeModule,\n ],\n declarations: [MtnaWfDateComponent],\n exports: [MtnaWfDateComponent],\n})\nexport class MtnaWfDateModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DateItem, OffsetDateRangeItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-date-range',\n templateUrl: './date-range.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfDateRangeComponent extends MtnaWfBaseValueItem<OffsetDateRangeItem, FormGroup> {\n get item(): OffsetDateRangeItem {\n return this._item;\n }\n set item(item: OffsetDateRangeItem) {\n this._item = item;\n // Create fake items for the underlying date-item component\n this._startItem = { ...item, label: 'Start', value: undefined };\n this._endItem = { ...item, label: 'End', value: undefined };\n }\n\n _startItem!: DateItem;\n _endItem!: DateItem;\n toText = $localize`to`;\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n\n<div\n *ngIf=\"control\"\n class=\"range-item-container\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n fxLayoutGap=\"8px\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mtna-wf-date-item\n [control]=\"control.controls['start'] | mtnaWfCoerceFormControl\"\n [item]=\"_startItem\"\n [rangeLimits]=\"item.rangeLimits\"\n [readonly]=\"readonly\"\n ></mtna-wf-date-item>\n <span fxFlex=\"14px\"> {{ toText }} </span>\n <mtna-wf-date-item\n [control]=\"control.controls['end'] | mtnaWfCoerceFormControl\"\n [item]=\"_endItem\"\n [rangeLimits]=\"item.rangeLimits\"\n [readonly]=\"readonly\"\n ></mtna-wf-date-item>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfCoerceFormControlPipeModule } from '../../../pipes/coerce-form-control.pipe';\nimport { MtnaWfDateModule } from '../date/date.module';\nimport { MtnaWfDateRangeComponent } from './date-range.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaHighlightModule,\n MtnaWfDateModule,\n FlexLayoutModule,\n FormsModule,\n ReactiveFormsModule,\n MtnaWfCoerceFormControlPipeModule,\n ],\n declarations: [MtnaWfDateRangeComponent],\n exports: [MtnaWfDateRangeComponent],\n})\nexport class MtnaWfDateRangeModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { DropdownItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseSingleSelectionParentValueItem } from '../../base-items/base-single-selection-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-dropdown-item',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfDropdownComponent extends MtnaWfBaseSingleSelectionParentValueItem<DropdownItem> {}\n","<ng-container *ngTemplateOutlet=\"header; context: { $implicit: true }\"></ng-container>\n<mat-form-field\n *ngIf=\"!readonly && !!control; else readOnly\"\n appearance=\"outline\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mat-label>{{ item.label }}</mat-label>\n <mat-select\n [formControl]=\"control\"\n [panelClass]=\"'mtna-wf-dropdown-item__select-panel'\"\n [required]=\"item.required\"\n (selectionChange)=\"selectionChange($event)\"\n >\n <mat-option *ngIf=\"!item.required\" i18n>-- None --</mat-option>\n <mat-option *ngFor=\"let opt of item.options\" [value]=\"opt.option.id\" [disabled]=\"control.value === opt.option.id\">{{\n opt.option.name\n }}</mat-option>\n </mat-select>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n</mat-form-field>\n\n<ng-template #readOnly>\n <ng-container *ngIf=\"inList; else fullList\">\n <mat-list-item *ngIf=\"item.required || !!item.value\">\n <mat-icon *ngIf=\"item.label | mtnaWfGetListIcon as icon\" matListIcon>{{ icon }}</mat-icon>\n <h4 matLine>{{ item.label }}</h4>\n <p matLine>{{ item.value || control?.value | mtnaWfGetSelectedOptionName : item.options }}</p>\n </mat-list-item>\n </ng-container>\n\n <ng-template #fullList>\n <mat-list>\n <mat-list-item *ngIf=\"item.required || !!item.value\">\n <mat-icon *ngIf=\"item.label | mtnaWfGetListIcon as icon\" matListIcon>{{ icon }}</mat-icon>\n <h4 matLine>{{ item.label }}</h4>\n <p matLine>{{ item.value || control?.value | mtnaWfGetSelectedOptionName : item.options }}</p>\n </mat-list-item>\n </mat-list>\n </ng-template>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetFormControlErrorPipeModule, MtnaWfGetListIconPipeModule, MtnaWfGetSelectedOptionNamePipeModule } from '../../../pipes';\nimport { MtnaWfDropdownComponent } from './dropdown.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n MatSelectModule,\n MtnaHighlightModule,\n MatListModule,\n MatIconModule,\n MtnaWfGetFormControlErrorPipeModule,\n MtnaWfGetSelectedOptionNamePipeModule,\n MtnaWfGetListIconPipeModule,\n ReactiveFormsModule,\n ],\n declarations: [MtnaWfDropdownComponent],\n exports: [MtnaWfDropdownComponent],\n})\nexport class MtnaWfDropdownModule {}\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { FileService } from '@mtna/file-manager-angular';\nimport { FileInformation } from '@mtna/file-manager-ts';\nimport { FileUploadItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItemControl } from '../../base-items/base-form-item-control.component';\n\n@Component({\n selector: 'mtna-wf-file-upload-item',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n})\nexport class MtnaWfFileUploadComponent extends MtnaWfBaseFormItemControl<FileUploadItem, FormControl> implements OnInit {\n fileInfo?: FileInformation;\n loading = false;\n _fileUploadButtonText = $localize`CHOOSE A FILE`;\n\n constructor(cdr: ChangeDetectorRef, private fileService: FileService) {\n super(cdr);\n }\n\n fileToUpload(file: FileList) {\n this.loading = true;\n\n this.fileService.uploadFile(file).subscribe((fileInfo: FileInformation) => {\n this.loading = false;\n this.fileInfo = fileInfo;\n this.setValue(fileInfo);\n });\n }\n\n handleDownload(template: FileInformation) {\n this.fileService.downloadFileGET(template.key, template.fileName, template.contentType);\n }\n\n ngOnInit() {\n if (this.item?.value) {\n this.fileInfo = this.item.value;\n }\n }\n\n removeFile() {\n if (this.fileInfo) {\n this.loading = true;\n this.fileService.deleteFile(this.fileInfo).subscribe(() => {\n this.loading = false;\n this.fileInfo = undefined;\n this.setValue(undefined);\n });\n }\n }\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n\n<div class=\"content\" [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\">\n <ng-container *ngIf=\"!readonly; else readOnly\">\n <ng-container *ngIf=\"!loading; else loader\">\n <mtna-file-download\n *ngIf=\"!!fileInfo; else fileUpload\"\n [fileInfo]=\"fileInfo\"\n [canRemove]=\"true\"\n color=\"primary\"\n [canDownload]=\"true\"\n (download)=\"handleDownload($event)\"\n (remove)=\"removeFile()\"\n ></mtna-file-download>\n\n <ng-template #fileUpload>\n <mtna-file-upload\n [automaticUpload]=\"false\"\n color=\"primary\"\n [buttonText]=\"_fileUploadButtonText\"\n (fileToUpload)=\"fileToUpload($event)\"\n ></mtna-file-upload>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <!-- READONLY -->\n <ng-template #readOnly>\n <!-- anchor being used, due to <fieldset disabled> blocking a <button>'s click event -->\n <a\n *ngIf=\"!!item && !!item.value; else unpopulated\"\n class=\"single-icon-button\"\n color=\"primary\"\n mat-stroked-button\n role=\"button\"\n (click)=\"handleDownload(item.value)\"\n >\n <mat-icon color=\"primary\">file_download</mat-icon>\n {{ (item!.value!.fileName ? item!.value!.fileName : '') | uppercase }}\n </a>\n <ng-template #unpopulated>\n <mat-list>\n <mat-list-item class=\"wrappable-list-item\">\n <p mat-line class=\"wrap-line\" i18n>No File Provided</p>\n </mat-list-item>\n </mat-list>\n </ng-template>\n </ng-template>\n</div>\n\n<!-- PROGRESS SPINNER -->\n<ng-template #loader>\n <mat-spinner diameter=\"125\" strokeWidth=\"10\" mode=\"indeterminate\"></mat-spinner>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\nimport { MtnaFileDownloadModule, MtnaFileUploadModule } from '@mtna/file-manager-angular';\n\nimport { MtnaWfFileUploadComponent } from './file-upload.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaHighlightModule,\n MatButtonModule,\n MatIconModule,\n MtnaFileDownloadModule,\n MtnaFileUploadModule,\n MatListModule,\n MatProgressSpinnerModule,\n ],\n declarations: [MtnaWfFileUploadComponent],\n exports: [MtnaWfFileUploadComponent],\n})\nexport class MtnaWfFileUploadModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport {\n DROPDOWN_ITEM_ID,\n FORM_ITEM_GROUP_IMPL_ID,\n FormItemGroupImpl,\n PARAGRAPH_ANSWER_ITEM_ID,\n SHORT_ANSWER_ITEM_ID,\n TEXT_ITEM_ID,\n TITLE_ITEM_ID,\n} from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseGroupItem } from '../../base-items/base-group-item.component';\n\n@Component({\n selector: 'mtna-wf-group',\n templateUrl: './form-group.component.html',\n styleUrls: ['./form-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfFormGroupComponent extends MtnaWfBaseGroupItem<FormItemGroupImpl> {\n override get item(): FormItemGroupImpl {\n return this._item;\n }\n override set item(item: FormItemGroupImpl) {\n this._item = item;\n\n // A list item can only display a heading line & a small text line\n // Compatible items should be items with short labels/headers & values\n // Items with multiple options, or potential nested items should not be included\n this.inList = this.item.items.every((i) => i.itemId === SHORT_ANSWER_ITEM_ID || i.itemId === DROPDOWN_ITEM_ID);\n }\n\n fullWidth: { [id: string]: boolean } = {\n [PARAGRAPH_ANSWER_ITEM_ID]: true,\n [FORM_ITEM_GROUP_IMPL_ID]: true,\n [TEXT_ITEM_ID]: true,\n [TITLE_ITEM_ID]: true,\n };\n\n /**\n * If form is readonly & all child items are one of the specified types below,\n * we want to display this group's child items in a mat-list\n */\n inList = false;\n}\n","<ng-container *ngIf=\"item && control\">\n <mtna-wf-item-header\n *ngIf=\"!!item.questionText || !!item.descriptiveText\"\n [descriptiveText]=\"item.descriptiveText\"\n [disabled]=\"control.disabled\"\n [questionText]=\"item.questionText\"\n [required]=\"item.required\"\n ></mtna-wf-item-header>\n <ng-template #fullLayout>\n <div\n class=\"item-group-container\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\"\n [formGroup]=\"control\"\n [ngClass]=\"item.layout\"\n >\n <mtna-wf-item\n *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW' && !fullWidth[subItem.itemId]\"\n [ngClass.lt-md]=\"'width-100'\"\n [item]=\"subItem\"\n [control]=\"control.controls[subItem.instanceId]\"\n [parentIds]=\"parentIds\"\n [readonly]=\"readonly\"\n ></mtna-wf-item>\n </div>\n </ng-template>\n\n <!-- When readonly, && all child items should be displayed in a mat-list-->\n <mat-list *ngIf=\"readonly && inList; else fullLayout\" [ngClass]=\"item.layout\">\n <mtna-wf-item\n *ngFor=\"let subItem of item.items | mtnaWfItemsWithValue; let index = index; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW'\"\n [ngClass.lt-md]=\"'width-100'\"\n [item]=\"subItem\"\n [inList]=\"true\"\n [parentIds]=\"parentIds\"\n [readonly]=\"true\"\n ></mtna-wf-item>\n </mat-list>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfItemsWithValuePipeModule } from '../../../pipes/items-with-value.pipe';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfItemHeaderModule } from '../../item-header/item-header.module';\nimport { MtnaWfFormGroupComponent } from './form-group.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaWfItemHeaderModule,\n MtnaHighlightModule,\n MtnaWfFormItemModule,\n FormsModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n MtnaWfItemsWithValuePipeModule,\n ],\n declarations: [MtnaWfFormGroupComponent],\n exports: [MtnaWfFormGroupComponent],\n})\nexport class MtnaWfFormGroupModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Section } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseSectionItem } from '../../base-items/base-section-item.component';\n\n@Component({\n selector: 'mtna-wf-section',\n templateUrl: './form-section.component.html',\n styleUrls: ['./form-section.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfFormSectionComponent extends MtnaWfBaseSectionItem<Section> {}\n","<mtna-wf-step-card\n [step]=\"step\"\n [subtitle]=\"item.descriptiveText\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\"\n (focused)=\"focused.emit($event)\"\n>\n <div cardContent>\n <ng-container *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\">\n <mat-divider\n *ngIf=\"(subItem.itemId | mtnaWfGetObjectType) === 'formitemgroupimpl' && item.items.indexOf(subItem) !== 0\"\n class=\"section-item-divider\"\n [inset]=\"true\"\n ></mat-divider>\n\n <mtna-wf-item\n [item]=\"subItem\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds\"\n [control]=\"!!control && !!control.controls ? control.controls[subItem.instanceId] : undefined\"\n (focusedSection)=\"focused.emit($event)\"\n ></mtna-wf-item>\n </ng-container>\n </div>\n</mtna-wf-step-card>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetObjectTypePipeModule } from '../../../pipes';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfStepCardModule } from '../../step-card/step-card.module';\nimport { MtnaWfFormSectionComponent } from './form-section.component';\n\n@NgModule({\n imports: [CommonModule, MtnaWfStepCardModule, MatDividerModule, MtnaWfFormItemModule, MtnaWfGetObjectTypePipeModule, MtnaHighlightModule],\n declarations: [MtnaWfFormSectionComponent],\n exports: [MtnaWfFormSectionComponent],\n})\nexport class MtnaWfFormSectionModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { mtnaLanguageIdToDisplay, MtnaLocaleIds, mtnaToLanguageId } from '@mtna/core-i18n-angular';\nimport {\n InternationalizedParagraphAnswerItem,\n InternationalizedShortAnswerItem,\n isInternationalizedParagraphAnswerItem,\n} from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-i18n-input-item',\n templateUrl: './i18n-input.component.html',\n styleUrls: ['./i18n-input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfI18nInputComponent<\n I extends InternationalizedParagraphAnswerItem | InternationalizedShortAnswerItem\n> extends MtnaWfBaseValueItem<I, FormGroup> {\n override get item(): I {\n return super.item;\n }\n override set item(value: I) {\n super.item = value;\n if (isInternationalizedParagraphAnswerItem(value)) {\n this.isParagraph = true;\n }\n }\n isParagraph = false;\n _notInformationText = $localize`No Information Provided`;\n\n getFormControl(language: string): FormControl {\n const control = this.control?.controls[language];\n return (control as FormControl) ?? new FormControl();\n }\n\n getLanguageDisplay(language: string): string {\n if (MtnaLocaleIds.guard(language)) {\n const facetId = mtnaToLanguageId[language];\n const displayName = mtnaLanguageIdToDisplay[facetId];\n return `${displayName} (${facetId})`;\n }\n return language;\n }\n}\n","<ng-container *ngTemplateOutlet=\"header; context: { $implicit: true }\"></ng-container>\n<ng-container *ngIf=\"!readonly && !!control; else readOnly\">\n <mat-form-field\n *ngFor=\"let language of item.languageTags\"\n appearance=\"outline\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n >\n <mat-label>{{ item.label + ' - ' + getLanguageDisplay(language) }}</mat-label>\n <ng-container *ngIf=\"isParagraph; else shortInput\">\n <textarea\n matInput\n [formControl]=\"getFormControl(language)\"\n [required]=\"item.required\"\n [attr.autocomplete]=\"item.label || item.name | mtnaWfGetAutoComplete\"\n cdkTextareaAutoSize\n cdkAutosizeMinRows=\"3\"\n cdkAutosizeMaxRows=\"5\"\n ></textarea>\n </ng-container>\n <ng-template #shortInput>\n <input\n matInput\n [formControl]=\"getFormControl(language)\"\n [autocomplete]=\"item.label || item.name | mtnaWfGetAutoComplete\"\n [required]=\"item.required\"\n />\n </ng-template>\n\n <mat-error *ngFor=\"let error of control.errors | keyvalue | slice : 0 : 1\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </mat-form-field>\n</ng-container>\n<!-- READONLY -->\n<ng-template #readOnly>\n <ng-container *ngTemplateOutlet=\"inList ? listItem : fullList\"></ng-container>\n</ng-template>\n\n<ng-template #fullList>\n <mat-list>\n <ng-container *ngTemplateOutlet=\"listItem\"></ng-container>\n </mat-list>\n</ng-template>\n\n<ng-template #listItem>\n <mat-list-item *ngFor=\"let language of item.languageTags\" class=\"wrappable-list-item\">\n <!-- <mat-icon *ngIf=\"item.label || item.header as label\" matListIcon>{{ label | mtnaWfGetListIcon }}</mat-icon> -->\n <h4 *ngIf=\"!item.questionText && (item.label || item.name) as label\" mat-line>{{ label }}</h4>\n <p mat-line class=\"wrap-line\">{{ item.value || _notInformationText + ' - ' + language }}</p>\n </mat-list-item>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetAutoCompletePipeModule, MtnaWfGetFormControlErrorPipeModule } from '../../../pipes';\nimport { MtnaWfI18nInputComponent } from './i18n-input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n MtnaHighlightModule,\n MtnaWfGetAutoCompletePipeModule,\n MatListModule,\n ReactiveFormsModule,\n MtnaWfGetFormControlErrorPipeModule,\n ],\n declarations: [MtnaWfI18nInputComponent],\n exports: [MtnaWfI18nInputComponent],\n})\nexport class MtnaWfI18nInputModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport {\n DecimalAnswerItem,\n isDecimalAnswerItem,\n isParagraphAnswerItem,\n isWholeNumberItem,\n ParagraphAnswerItem,\n ShortAnswerItem,\n WholeNumberAnswerItem,\n} from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-input-item',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfInputComponent<\n I extends DecimalAnswerItem | ParagraphAnswerItem | ShortAnswerItem | WholeNumberAnswerItem\n> extends MtnaWfBaseValueItem<I, FormControl> {\n override get item(): I {\n return super.item;\n }\n override set item(value: I) {\n super.item = value;\n if (isDecimalAnswerItem(value) || isWholeNumberItem(value)) {\n this.isNumberInput = true;\n } else if (isParagraphAnswerItem(value)) {\n this.isParagraph = true;\n }\n }\n\n isParagraph = false;\n isNumberInput = false;\n _noInformationText = $localize`No Information Provided`;\n}\n","<ng-container *ngTemplateOutlet=\"header; context: { $implicit: true }\"></ng-container>\n<mat-form-field\n *ngIf=\"!readonly && !!control; else readOnly\"\n appearance=\"outline\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mat-label>{{ item.label }}</mat-label>\n <textarea\n *ngIf=\"isParagraph; else shortInput\"\n matInput\n [formControl]=\"control\"\n [required]=\"item.required\"\n [attr.autocomplete]=\"item.label || item.name | mtnaWfGetAutoComplete\"\n cdkTextareaAutoSize\n cdkAutosizeMinRows=\"3\"\n cdkAutosizeMaxRows=\"5\"\n ></textarea>\n\n <ng-template #shortInput>\n <input matInput [formControl]=\"control!\" [autocomplete]=\"item.label || item.name | mtnaWfGetAutoComplete\" [required]=\"item.required\" />\n </ng-template>\n\n <mat-error *ngFor=\"let error of control.errors | keyvalue | slice : 0 : 1\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n</mat-form-field>\n\n<!-- READONLY -->\n<ng-template #readOnly>\n <ng-container *ngTemplateOutlet=\"inList ? listItem : fullList\"></ng-container>\n</ng-template>\n\n<ng-template #fullList>\n <mat-list>\n <ng-container *ngTemplateOutlet=\"listItem\"></ng-container>\n </mat-list>\n</ng-template>\n\n<ng-template #listItem>\n <mat-list-item class=\"wrappable-list-item\">\n <!-- <mat-icon *ngIf=\"item.label || item.header as label\" matListIcon>{{ label | mtnaWfGetListIcon }}</mat-icon> -->\n <h4 *ngIf=\"!item.questionText && (item.label || item.name) as label\" mat-line>{{ label }}</h4>\n <p mat-line class=\"wrap-line\">{{ item.value || _noInformationText }}</p>\n </mat-list-item>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetAutoCompletePipeModule, MtnaWfGetFormControlErrorPipeModule } from '../../../pipes';\nimport { MtnaWfInputComponent } from './input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n FormsModule,\n MatListModule,\n MtnaWfGetAutoCompletePipeModule,\n MtnaWfGetFormControlErrorPipeModule,\n MtnaHighlightModule,\n ReactiveFormsModule,\n MatInputModule,\n ],\n declarations: [MtnaWfInputComponent],\n exports: [MtnaWfInputComponent],\n})\nexport class MtnaWfInputModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { MultipleChoiceItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseSingleSelectionParentValueItem } from '../../base-items/base-single-selection-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-multiple-choice-item',\n templateUrl: './multiple-choice.component.html',\n styleUrls: ['./multiple-choice.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfMultipleChoiceComponent extends MtnaWfBaseSingleSelectionParentValueItem<MultipleChoiceItem> {}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<div *ngIf=\"control\" [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\">\n <div class=\"mtna-wf-error-container\">\n <ng-container *ngIf=\"control.invalid && (control.dirty || control.touched)\">\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </ng-container>\n </div>\n <mat-radio-group class=\"control-item-content\" [formControl]=\"control\" (change)=\"selectionChange($event)\">\n <ng-container *ngFor=\"let opt of item.options; trackBy: _trackByOptionId\">\n <mat-radio-button [disableRipple]=\"readonly\" [disabled]=\"readonly || control.disabled\" [value]=\"opt.option.id\">{{\n opt.option.name\n }}</mat-radio-button>\n <mtna-wf-item\n *ngIf=\"item.optionItemMap[opt.option.id] as subItem\"\n [item]=\"subItem\"\n [control]=\"!!controlWrapper && !!controlWrapper.controls ? controlWrapper.controls[subItem.instanceId] : undefined\"\n [parentIds]=\"parentIds.concat(opt.option.id)\"\n [readonly]=\"readonly\"\n ></mtna-wf-item>\n </ng-container>\n </mat-radio-group>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetFormControlErrorPipeModule } from '../../../pipes/get-form-control-error.pipe';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfMultipleChoiceComponent } from './multiple-choice.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatRadioModule,\n MtnaWfFormItemModule,\n MtnaWfGetFormControlErrorPipeModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MtnaHighlightModule,\n ],\n declarations: [MtnaWfMultipleChoiceComponent],\n exports: [MtnaWfMultipleChoiceComponent],\n})\nexport class MtnaWfMultipleChoiceModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { NumberedListItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItem } from '../../base-items/base-form-item.component';\n\n@Component({\n selector: 'mtna-wf-ordered-list-item',\n templateUrl: './ordered-list-item.component.html',\n styleUrls: ['./ordered-list-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfOrderedListItemComponent extends MtnaWfBaseFormItem<NumberedListItem> {}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<ol [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\">\n <li *ngFor=\"let item of item.value\" [innerHTML]=\"item | mtnaWfSanitizeHtml\"></li>\n</ol>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfSanitizeHtmlPipeModule } from '../../../pipes/sanitize-html.pipe';\nimport { MtnaWfOrderedListItemComponent } from './ordered-list-item.component';\n\n@NgModule({\n imports: [CommonModule, MtnaHighlightModule, MtnaWfSanitizeHtmlPipeModule],\n declarations: [MtnaWfOrderedListItemComponent],\n exports: [MtnaWfOrderedListItemComponent],\n})\nexport class MtnaWfOrderedListItemModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'mtna-wf-repeatable-item',\n template: ` <ng-content></ng-content> `,\n styles: [\n `\n mtna-wf-repeatable-item {\n display: block;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfRepeatableItemComponent {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MtnaWfRepeatableItemComponent } from './repeatable-item.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [MtnaWfRepeatableItemComponent],\n exports: [MtnaWfRepeatableItemComponent],\n})\nexport class MtnaWfRepeatableItemModule {}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { COMPLEX_STANDARD } from '@mtna/core-angular';\nimport { FormItem, MtnaWfFormItemChange, RepeatableItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfManagerService } from '../../../services/form-manager.service';\nimport { MtnaWfBaseParentValueItem } from '../../base-items/base-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-repeatable-item-container',\n templateUrl: './repeatable-item-container.component.html',\n styleUrls: ['./repeatable-item-container.component.scss'],\n animations: [\n trigger('repeatItemExpandCollapse', [\n state('in', style({ height: '*', margin: '*', opacity: 1 })),\n state('void', style({ height: 0, margin: 0, opacity: 0, visibility: 'hidden' })),\n transition(':enter', [animate(COMPLEX_STANDARD, style({ height: '*', margin: '*', opacity: 1 }))]),\n transition(':leave', animate(COMPLEX_STANDARD)),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfRepeatableItemContainerComponent extends MtnaWfBaseParentValueItem<RepeatableItem, FormGroup> {\n _addText = $localize`ADD`;\n\n constructor(cdr: ChangeDetectorRef, private manager: MtnaWfManagerService) {\n super(cdr);\n }\n\n addItem() {\n this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(this.item.repeatableTemplateId, this.parentIds, 'ADD'));\n }\n\n removeItem(item: FormItem) {\n const conditionChanges = this.manager.generateConditionChangeArray(item, 'REMOVE');\n this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(item.instanceId, this.parentIds, 'REMOVE', conditionChanges));\n }\n}\n","<mtna-wf-item-header\n *ngIf=\"!!item.questionText || !!item.descriptiveText\"\n [descriptiveText]=\"item.descriptiveText\"\n [disabled]=\"control?.disabled || false\"\n [questionText]=\"item.questionText\"\n [required]=\"item.required\"\n></mtna-wf-item-header>\n<section [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\">\n <mtna-wf-repeatable-item\n @repeatItemExpandCollapse\n *ngFor=\"let subitem of item.items; let first = first; trackBy: 'instanceId' | mtnaTrackByProperty\"\n >\n <ng-container *ngIf=\"subitem | coerceFormItem as coercedSubItem\">\n <button\n *ngIf=\"!readonly && item.items.length > item.minOccurrences\"\n mat-icon-button\n class=\"item-remove-button\"\n color=\"warn\"\n (click)=\"removeItem(coercedSubItem)\"\n matTooltip=\"Remove Item\"\n i18n-matTooltip\n >\n <mat-icon>remove_circle</mat-icon>\n </button>\n <mtna-wf-item\n [item]=\"coercedSubItem\"\n [control]=\"!!control && !!control.controls ? control.controls[coercedSubItem.instanceId] : undefined\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds\"\n ></mtna-wf-item>\n </ng-container>\n </mtna-wf-repeatable-item>\n</section>\n<button *ngIf=\"!readonly\" mat-raised-button (click)=\"addItem()\" class=\"new-item-button\" color=\"primary\">\n {{ item.additionalText || _addText | uppercase }}\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MtnaHighlightModule, MtnaTrackByPropertyPipeModule } from '@mtna/core-angular';\n\nimport { MtnaWfCoerceFormItemPipeModule } from '../../../pipes';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfItemHeaderModule } from '../../item-header/item-header.module';\nimport { MtnaWfRepeatableItemModule } from '../repeatable-item/repeatable-item.module';\nimport { MtnaWfRepeatableItemContainerComponent } from './repeatable-item-container.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaWfItemHeaderModule,\n MtnaWfRepeatableItemModule,\n MtnaWfFormItemModule,\n MtnaHighlightModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MtnaTrackByPropertyPipeModule,\n MtnaWfCoerceFormItemPipeModule,\n ],\n declarations: [MtnaWfRepeatableItemContainerComponent],\n exports: [MtnaWfRepeatableItemContainerComponent],\n})\nexport class MtnaWfRepeatableItemContainerModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n MtnaInMemorySearchFacade,\n MtnaSearchDialogComponent,\n MtnaSearchDialogData,\n MtnaSearchDialogOutput,\n} from '@mtna/search-manager-angular';\nimport { ResourceReference, ResourceSearchItem } from '@mtna/web-form-ts';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-resource-search-item',\n templateUrl: './resource-search.component.html',\n styleUrls: ['./resource-search.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfResourceSearchComponent extends MtnaWfBaseValueItem<ResourceSearchItem, FormGroup> {\n private references: BehaviorSubject<ResourceReference[]> = new BehaviorSubject<ResourceReference[]>(this.item?.value ?? []);\n\n constructor(cdr: ChangeDetectorRef, protected searchFacade: MtnaInMemorySearchFacade, protected dialog: MatDialog) {\n super(cdr);\n }\n\n openDialog() {\n this.dialog\n .open<MtnaSearchDialogComponent<string>>(MtnaSearchDialogComponent, {\n data: new MtnaSearchDialogData<ResourceReference>(\n this.searchFacade,\n $localize`Select a Reference`,\n true,\n {\n ...this.item.initialQuery,\n target: this.item.searchTargetId,\n },\n undefined,\n true,\n {\n color: 'primary',\n disableSubResults: true,\n resizableColumns: true,\n selectable: true,\n multiSelectable: true,\n },\n undefined,\n undefined,\n this.references.value,\n true,\n 'SQUARE'\n ),\n })\n .afterClosed()\n .subscribe((output: MtnaSearchDialogOutput<string>) => {\n if (output && output.selections) {\n const values = [];\n for (const selection of output.selections) {\n values.push({ uri: selection } as ResourceReference);\n }\n this.references.next(values);\n }\n });\n }\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<div class=\"label-container\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <div class=\"label-text\">\n {{ item.label }}\n </div>\n <mat-divider fxFlex></mat-divider>\n</div>\n<div class=\"values-container\">\n <!-- <aria-ui-reference-list-table\n [path]=\"path\"\n [referenceConfiguration]=\"referenceConfiguration\"\n [references]=\"references\"\n [termReference]=\"termReference\"\n (openDetails)=\"openDetails.emit($event)\"\n (referenceSelected)=\"addButtonDisabled = !!$event\"\n (updateValues)=\"updateValues.emit($event)\"\n >\n </aria-ui-reference-list-table>\n -->\n <button mat-flat-button class=\"add-button\" color=\"primary\" [disabled]=\"readonly\" (click)=\"openDialog()\" i18n>\n Add Resource<mat-icon>add_circle_outline</mat-icon>\n </button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { MtnaWfResourceSearchComponent } from './resource-search.component';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatDividerModule, MatIconModule, FlexLayoutModule],\n declarations: [MtnaWfResourceSearchComponent],\n exports: [MtnaWfResourceSearchComponent],\n})\nexport class MtnaWfResourceSearchModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { TableItem, TableRowItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseParentValueItem } from '../../base-items/base-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-table-item',\n templateUrl: './table-item.component.html',\n styleUrls: ['./table-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfTableFormItemComponent extends MtnaWfBaseParentValueItem<TableItem, FormGroup> {\n _trackByTableRow(index: number, row: TableRowItem) {\n return row.items\n .filter((i) => !!i)\n .map((item) => item.instanceId)\n .join('');\n }\n}\n","<table mat-table [dataSource]=\"item.tableRows\" [trackBy]=\"_trackByTableRow\">\n <ng-container *ngFor=\"let header of item.headers; let index = index\" [matColumnDef]=\"header\">\n <th mat-header-cell *matHeaderCellDef>{{ header }}</th>\n\n <td mat-cell *matCellDef=\"let rowItem\">\n <mtna-wf-item\n *ngIf=\"!!rowItem.items[index]\"\n [control]=\"!!control && !!control.controls ? control.controls[rowItem.items[index].instanceId] : undefined\"\n [item]=\"rowItem.items[index]\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds\"\n ></mtna-wf-item>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"item.headers\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: item.headers\"></tr>\n</table>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfTableFormItemComponent } from './table-item.component';\n\n@NgModule({\n imports: [CommonModule, MatTableModule, MtnaWfFormItemModule],\n declarations: [MtnaWfTableFormItemComponent],\n exports: [MtnaWfTableFormItemComponent],\n})\nexport class MtnaWfTableFormItemModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { ValueItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItem } from '../../base-items/base-form-item.component';\n\n@Component({\n selector: 'mtna-wf-text-item',\n templateUrl: './text.component.html',\n styleUrls: ['./text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfTextItemComponent extends MtnaWfBaseFormItem<ValueItem<unknown>> {}\n","<p [innerHTML]=\"$any(item.value) | mtnaWfSanitizeHtml\" class=\"mtna-wf-text-item\" [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\"></p>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfSanitizeHtmlPipeModule } from '../../../pipes/sanitize-html.pipe';\nimport { MtnaWfTextItemComponent } from './text.component';\n\n@NgModule({\n imports: [CommonModule, MtnaHighlightModule, MtnaWfSanitizeHtmlPipeModule],\n declarations: [MtnaWfTextItemComponent],\n exports: [MtnaWfTextItemComponent],\n})\nexport class MtnaWfTextItemModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { ValueItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItem } from '../../base-items/base-form-item.component';\n\n@Component({\n selector: 'mtna-wf-title-item',\n templateUrl: './title.component.html',\n styleUrls: ['./title.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfTitleItemComponent extends MtnaWfBaseFormItem<ValueItem<unknown>> {}\n","<h3 class=\"mtna-wf-title-item\" [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\">{{ item.value }}</h3>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetObjectTypePipeModule } from '../../../pipes/get-object-type.pipe';\nimport { MtnaWfTitleItemComponent } from './title.component';\n\n@NgModule({\n imports: [CommonModule, MtnaHighlightModule, MtnaWfGetObjectTypePipeModule],\n declarations: [MtnaWfTitleItemComponent],\n exports: [MtnaWfTitleItemComponent],\n})\nexport class MtnaWfTitleItemModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { BulletedListItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItem } from '../../base-items/base-form-item.component';\n\n@Component({\n selector: 'mtna-wf-unordered-list-item',\n templateUrl: './unordered-list-item.component.html',\n styleUrls: ['./unordered-list-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfUnorderedListItemComponent extends MtnaWfBaseFormItem<BulletedListItem> {}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<ul [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\">\n <li *ngFor=\"let item of item.value\" [innerHTML]=\"item | mtnaWfSanitizeHtml\"></li>\n</ul>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfSanitizeHtmlPipeModule } from '../../../pipes/sanitize-html.pipe';\nimport { MtnaWfUnorderedListItemComponent } from './unordered-list-item.component';\n\n@NgModule({\n imports: [CommonModule, MtnaHighlightModule, MtnaWfSanitizeHtmlPipeModule],\n declarations: [MtnaWfUnorderedListItemComponent],\n exports: [MtnaWfUnorderedListItemComponent],\n})\nexport class MtnaWfUnorderedListItemModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n InjectionToken,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { isPresent } from '@mtna/core-ts';\nimport { DateRange, YearQuarter, YearQuarterRangeItem } from '@mtna/web-form-ts';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\nexport const MTNA_WF_DEFAULT_YEAR_RANGE = new InjectionToken<MtnaWfDefaultYearRange>('mtna.wf.default.year.range');\n\nexport interface MtnaWfDefaultYearRange {\n numPastYears: number;\n numFutureYears: number;\n}\n\n@Component({\n selector: 'mtna-wf-year-quarter-item',\n templateUrl: './year-quarter.component.html',\n styleUrls: ['./year-quarter.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfYearQuarterComponent\n extends MtnaWfBaseValueItem<YearQuarterRangeItem, FormControl>\n implements AfterViewInit, OnDestroy, OnInit\n{\n @HostBinding('class.mtna-wf-year-quarter-item') yearQuarterItemClass = true;\n\n override get item(): YearQuarterRangeItem {\n return super.item;\n }\n override set item(value: YearQuarterRangeItem) {\n super.item = value;\n if (value.rangeLimits) {\n this.componentRangeLimits = value.rangeLimits;\n }\n }\n\n componentRangeLimits: DateRange<YearQuarter> | null | undefined;\n _quarterControl = new FormControl();\n _yearControl = new FormControl();\n _yearSelection = new Array<number>();\n\n private destroyObs = new Subject<void>();\n private defaultYearRange: MtnaWfDefaultYearRange;\n\n constructor(cdr: ChangeDetectorRef, @Optional() @Inject(MTNA_WF_DEFAULT_YEAR_RANGE) defaultYearRange?: MtnaWfDefaultYearRange) {\n super(cdr);\n this.defaultYearRange = defaultYearRange || { numFutureYears: 25, numPastYears: 25 };\n }\n\n ngAfterViewInit() {\n if (!this.readonly) {\n // Observe Year & Quarter value changes && set them on the item's control\n merge(this._yearControl.valueChanges, this._quarterControl.valueChanges)\n .pipe(takeUntil(this.destroyObs))\n .subscribe(() => {\n if (!this.control?.dirty && (this._yearControl.dirty || this._quarterControl.dirty)) {\n this.control?.markAsDirty();\n this.control?.markAsTouched();\n }\n if (isPresent(this._yearControl.value)) {\n const [year, quarter] = this.withinRangeLimits([this._yearControl.value, this._quarterControl.value]);\n this.control?.setValue({ year, quarter });\n }\n });\n\n // FIXME not sure we need this until we starting making this control\n // required/unrequired at the right time. Even then, this is super inneficient\n\n /*\n // Listen to this control for disabling local controls\n this.control.statusChanges\n .pipe(\n startWith(this.control.status),\n takeUntil(this.destroyObs)\n )\n .subscribe(status => {\n console.warn('statusChanges', status, this.control);\n // if this control is enabled, enable local controls if disabled\n if (this.control.enabled) {\n if (this._quarterControl.disabled || this._yearControl.disabled) {\n console.warn('[YearQuarterItem] enable the things');\n // this._quarterControl.enable();\n // this._yearControl.enable();\n }\n // else this control is disabled, so disable local controls if enabled\n } else if (this._quarterControl.enabled || this._yearControl.enabled) {\n console.warn('[YearQuarterItem] disable the things');\n // this._yearControl.disable();\n // this._quarterControl.disable();\n }\n });\n */\n }\n }\n\n ngOnDestroy() {\n this.destroyObs.next();\n this.destroyObs.complete();\n }\n\n ngOnInit() {\n // Set any initial value onto the Year & Quarter controls\n this._yearControl.setValue(this.control?.value ? this.control.value.year : null);\n this._quarterControl.setValue(this.control?.value ? this.control.value.quarter : null);\n\n // Create range limits if none exist\n if (!this.componentRangeLimits) {\n const thisYear = new Date().getFullYear();\n this.componentRangeLimits = {\n start: {\n year: thisYear - this.defaultYearRange.numPastYears,\n quarter: null,\n },\n end: {\n year: thisYear + this.defaultYearRange.numFutureYears,\n quarter: null,\n },\n };\n }\n\n // Populate the year selection\n for (let i = this.componentRangeLimits.start.year || 0; i <= (this.componentRangeLimits.end.year || 0); i++) {\n this._yearSelection.push(i);\n }\n\n if (this.readonly) {\n this.control?.disable();\n this._quarterControl.disable();\n this._yearControl.disable();\n }\n }\n\n /**\n * Sets the quarter value to `null` if the year & quarter is out of bounds of the range limits.\n * Otherwise, returns original value\n *\n * @param value `[number, number]` The selected [year, quarter] value\n * @returns `[number, number]` The original [year, quarter] value OR [year, null]\n */\n private withinRangeLimits: (value: [number, number]) => [number, number | null] = ([year, quarter]) => {\n const beyondUpperLimit =\n // year matches end year range limit\n year === this.componentRangeLimits?.end.year &&\n // quarter limit was provided\n isPresent(this.componentRangeLimits.end.quarter) &&\n // selected quarter is beyond quarter limit\n quarter > this.componentRangeLimits.end.quarter;\n\n const beyondLowerLimit =\n // year matches start year range limit\n year === this.componentRangeLimits?.start.year &&\n // quarter limit was provided\n isPresent(this.componentRangeLimits.start.quarter) &&\n // selected quarter is beyond quarter limit\n quarter < this.componentRangeLimits.start.quarter;\n\n if (beyondLowerLimit || beyondUpperLimit) {\n this._quarterControl.setValue(null, { emitEvent: false });\n return [year, null];\n }\n\n return [year, quarter];\n };\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<div\n *ngIf=\"control\"\n class=\"year-quarter-container\"\n fxLayout=\"row\"\n fxLayoutGap=\"8px\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mat-form-field>\n <mat-select [formControl]=\"_yearControl\" aria-label=\"Year Selection\" i18n-aria-label>\n <mat-option *ngFor=\"let year of _yearSelection\" [value]=\"year\">{{ year }}</mat-option>\n </mat-select>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-select [formControl]=\"_quarterControl\" aria-label=\"Quarter Selection\" i18n-aria-label>\n <mat-option i18n>None</mat-option>\n <mat-option *ngFor=\"let quarter of _yearControl.value | mtnaWfGetQuarters : componentRangeLimits\" [value]=\"quarter\">{{\n $any(quarter) | mtnaWfDateQuarter : 'short'\n }}</mat-option>\n </mat-select>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </mat-form-field>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfDateQuarterPipeModule, MtnaWfGetAvailableQuartersPipeModule, MtnaWfGetFormControlErrorPipeModule } from '../../../pipes';\nimport { MtnaWfYearQuarterComponent } from './year-quarter.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FlexLayoutModule,\n MatFormFieldModule,\n MatSelectModule,\n FormsModule,\n MtnaWfGetFormControlErrorPipeModule,\n MtnaWfGetAvailableQuartersPipeModule,\n MtnaWfDateQuarterPipeModule,\n MtnaHighlightModule,\n ReactiveFormsModule,\n ],\n declarations: [MtnaWfYearQuarterComponent],\n exports: [MtnaWfYearQuarterComponent],\n})\nexport class MtnaWfYearQuarterModule {}\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { YearQuarterRangeItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-year-quarter-range-item',\n templateUrl: './year-quarter-range.component.html',\n styleUrls: ['./year-quarter-range.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfYearQuarterRangeComponent extends MtnaWfBaseValueItem<YearQuarterRangeItem, FormGroup> {\n @HostBinding('class.mtna-wf-year-quarter-range-item') yearQuarterRangeClass = true;\n\n override get item(): YearQuarterRangeItem {\n return super.item;\n }\n override set item(item: YearQuarterRangeItem) {\n super.item = item;\n // Create fake items for the underlying date-item component\n this._startItem = { ...item, value: undefined };\n this._endItem = { ...item, value: undefined };\n }\n\n _startItem!: YearQuarterRangeItem;\n _endItem!: YearQuarterRangeItem;\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n\n<div\n *ngIf=\"control\"\n class=\"range-item-container\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n fxLayoutGap=\"8px\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mtna-wf-year-quarter-item\n [item]=\"_startItem\"\n [control]=\"control.controls['start'] | mtnaWfCoerceFormControl\"\n [readonly]=\"readonly\"\n ></mtna-wf-year-quarter-item>\n <span fxFlex=\"14px\">to</span>\n <mtna-wf-year-quarter-item\n [item]=\"_endItem\"\n [control]=\"control.controls['end'] | mtnaWfCoerceFormControl\"\n [readonly]=\"readonly\"\n ></mtna-wf-year-quarter-item>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfCoerceFormControlPipeModule } from '../../../pipes/coerce-form-control.pipe';\nimport { MtnaWfYearQuarterModule } from '../year-quarter/year-quarter.module';\nimport { MtnaWfYearQuarterRangeComponent } from './year-quarter-range.component';\n\n@NgModule({\n imports: [CommonModule, MtnaWfYearQuarterModule, MtnaHighlightModule, FlexLayoutModule, MtnaWfCoerceFormControlPipeModule],\n declarations: [MtnaWfYearQuarterRangeComponent],\n exports: [MtnaWfYearQuarterRangeComponent],\n})\nexport class MtnaWfYearQuarterRangeModule {}\n","import { InjectedComponent } from '@mtna/core-angular';\n\nimport {\n MtnaWfBooleanComponent,\n MtnaWfCheckboxComponent,\n MtnaWfDateComponent,\n MtnaWfDateRangeComponent,\n MtnaWfDropdownComponent,\n MtnaWfFileUploadComponent,\n MtnaWfFormGroupComponent,\n MtnaWfFormSectionComponent,\n MtnaWfI18nInputComponent,\n MtnaWfInputComponent,\n MtnaWfMultipleChoiceComponent,\n MtnaWfOrderedListItemComponent,\n MtnaWfRepeatableItemContainerComponent,\n MtnaWfResourceSearchComponent,\n MtnaWfTextItemComponent,\n MtnaWfTitleItemComponent,\n MtnaWfUnorderedListItemComponent,\n MtnaWfYearQuarterComponent,\n MtnaWfYearQuarterRangeComponent,\n} from '../form-item-impl';\nimport {\n BOOLEAN_ITEM_ID,\n BULLETED_LIST_ITEM_ID,\n CHECKBOX_ITEM_ID,\n DATE_ITEM_ID,\n DECIMAL_ANSWER_ITEM_ID,\n DROPDOWN_ITEM_ID,\n FILE_UPLOAD_ITEM_ID,\n FORM_ITEM_GROUP_IMPL_ID,\n I18N_PARAGRAPH_ANSWER_ITEM_ID,\n I18N_SHORT_ANSWER_ITEM_ID,\n MULTIPLE_CHOICE_ITEM_ID,\n NUMBERED_LIST_ITEM_ID,\n OFFSET_DATE_RANGE_ITEM_ID,\n PARAGRAPH_ANSWER_ITEM_ID,\n REPEATABLE_ITEM_ID,\n RESOURCE_SEARCH_ITEM_ID,\n SECTION_ID,\n SHORT_ANSWER_ITEM_ID,\n TEXT_ITEM_ID,\n TITLE_ITEM_ID,\n WHOLE_NUMBER_ANSWER_ITEM_ID,\n YEAR_QUARTER_RANGE_ITEM_ID,\n} from '@mtna/web-form-ts';\n\nexport const MTNA_WF_ITEM_INJECTED_COMPONENTS: InjectedComponent[] = [\n // Boolean Item Component\n {\n key: BOOLEAN_ITEM_ID,\n component: MtnaWfBooleanComponent,\n },\n // Checkbox Item Component\n {\n key: CHECKBOX_ITEM_ID,\n component: MtnaWfCheckboxComponent,\n },\n // Date Item Component\n {\n key: DATE_ITEM_ID,\n component: MtnaWfDateComponent,\n },\n // Date Range Item Component\n {\n key: OFFSET_DATE_RANGE_ITEM_ID,\n component: MtnaWfDateRangeComponent,\n },\n // Dropdown Item Component\n {\n key: DROPDOWN_ITEM_ID,\n component: MtnaWfDropdownComponent,\n },\n // File Upload Item Component\n {\n key: FILE_UPLOAD_ITEM_ID,\n component: MtnaWfFileUploadComponent,\n },\n // Form Item Group Component\n {\n key: FORM_ITEM_GROUP_IMPL_ID,\n component: MtnaWfFormGroupComponent,\n },\n // Form Section Component\n {\n key: SECTION_ID,\n component: MtnaWfFormSectionComponent,\n },\n // I18n Input Item Components\n {\n key: I18N_PARAGRAPH_ANSWER_ITEM_ID,\n component: MtnaWfI18nInputComponent,\n },\n {\n key: I18N_SHORT_ANSWER_ITEM_ID,\n component: MtnaWfI18nInputComponent,\n },\n // Input Item Components\n {\n key: DECIMAL_ANSWER_ITEM_ID,\n component: MtnaWfInputComponent,\n },\n {\n key: PARAGRAPH_ANSWER_ITEM_ID,\n component: MtnaWfInputComponent,\n },\n {\n key: SHORT_ANSWER_ITEM_ID,\n component: MtnaWfInputComponent,\n },\n {\n key: WHOLE_NUMBER_ANSWER_ITEM_ID,\n component: MtnaWfInputComponent,\n },\n // Mutliple Choice Item Component\n {\n key: MULTIPLE_CHOICE_ITEM_ID,\n component: MtnaWfMultipleChoiceComponent,\n },\n // Orderd List Item Component\n {\n key: NUMBERED_LIST_ITEM_ID,\n component: MtnaWfOrderedListItemComponent,\n },\n // Repeatable Item Container Component\n {\n key: REPEATABLE_ITEM_ID,\n component: MtnaWfRepeatableItemContainerComponent,\n },\n // Resource Search Item Component\n {\n key: RESOURCE_SEARCH_ITEM_ID,\n component: MtnaWfResourceSearchComponent,\n },\n // Table Item Component - NOTE: NOT USED\n // {\n // key: '',\n // component: MtnaWfTableFormItemComponent\n // },\n // Text Item Component\n {\n key: TEXT_ITEM_ID,\n component: MtnaWfTextItemComponent,\n },\n // Title Item Component\n {\n key: TITLE_ITEM_ID,\n component: MtnaWfTitleItemComponent,\n },\n // Unordered List Item Component\n {\n key: BULLETED_LIST_ITEM_ID,\n component: MtnaWfUnorderedListItemComponent,\n },\n // Year Quarter Item Component\n {\n key: 'us.mtna.web.form.item.impl.date.YearQuarterItem',\n component: MtnaWfYearQuarterComponent,\n },\n // Year Quarter Range Item Component\n {\n key: YEAR_QUARTER_RANGE_ITEM_ID,\n component: MtnaWfYearQuarterRangeComponent,\n },\n];\n","import { InjectedComponent, InjectedComponentProvider } from '@mtna/core-angular';\n\nimport { MTNA_WF_ITEM_INJECTED_COMPONENTS } from './form-item-injected-components';\n\nexport class MtnaWfItemComponentProvider extends InjectedComponentProvider {\n public getInjectedComponents(): InjectedComponent[] {\n return MTNA_WF_ITEM_INJECTED_COMPONENTS;\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { MtnaScrollDirection, MtnaScrollService } from '@mtna/core-angular';\nimport { FormItem, OutlineStep, ProgressiveForm } from '@mtna/web-form-ts';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\n\nimport { FormStep } from '../../../models';\nimport { MtnaWfManagerService, MtnaWfNgFormService, MtnaWfUIService } from '../../../services';\nimport { flattenSteps, generateFormStepsFromOutline } from '../../../utilities';\nimport { MtnaWfBaseFormComponent } from '../../base-form';\n\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n@Component({\n selector: 'mtna-wf-progressive-form',\n templateUrl: './progressive-form.component.html',\n styleUrls: ['./progressive-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n outputs: ['status', 'focusedSection', 'mtnaFormChange'],\n})\nexport class MtnaWfProgressiveFormComponent extends MtnaWfBaseFormComponent<ProgressiveForm> {\n static ngAcceptInputType_loading: BooleanInput;\n\n override get mtnaForm(): ProgressiveForm | null | undefined {\n return super.mtnaForm as ProgressiveForm | null | undefined;\n }\n override set mtnaForm(form: ProgressiveForm | null | undefined) {\n if (form) {\n this.formItems = form.items;\n this.resetValues();\n this.generateFormSteps(form.outline);\n this.checkAllStepsIds(form.items);\n super.steps = this.determineStepsToPassToSuper(form.items);\n super.mtnaForm = form;\n\n this.setStepStatus();\n this.setFormStatusSubscription();\n this.showPreviousButton = this.showPreviousButtonFn();\n this.lastStepActive = this.checkLastStepActive();\n this.cdr.markForCheck();\n }\n }\n\n @Input()\n get loading(): boolean {\n return this._loading;\n }\n set loading(value: boolean) {\n this._loading = coerceBooleanProperty(value);\n }\n private _loading = false;\n\n /** Emits the updated ProgressiveForm value */\n @Output() nextStepSelected = new EventEmitter<ProgressiveForm>();\n /**\n * Emits the previous steps instanceId.\n * Since this component is always on the last step and the last item, we can always count on having the instanceId of the previous step.\n */\n @Output() previousStepSelected = new EventEmitter<string>();\n /**\n * Emits the instanceId of the selected step.\n * If the currently active step is the step that is selected, this will not emit.\n */\n @Output() showSelectedStepId = new EventEmitter<string>();\n\n activeStepId$ = new BehaviorSubject<string | undefined>(undefined);\n formItems: FormItem[] = [];\n formStatusSubscriber: Subscription | undefined;\n formStatusValid$ = new BehaviorSubject<boolean>(false);\n lastStepActive = false;\n scrollDirection$: Observable<MtnaScrollDirection> = this.scrollService.getScrollDirection();\n showPreviousButton = false;\n stepArray$ = new BehaviorSubject<FormStep[]>([]);\n\n constructor(\n mtnaFormManager: MtnaWfManagerService,\n ngFormService: MtnaWfNgFormService,\n uiService: MtnaWfUIService,\n private cdr: ChangeDetectorRef,\n private scrollService: MtnaScrollService\n ) {\n super(mtnaFormManager, ngFormService, uiService);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.formStatusSubscriber) {\n this.formStatusSubscriber.unsubscribe();\n }\n }\n\n /**\n * Checks if the last step in the form is active.\n * @returns true if the last step in the form is active, otherwise false\n */\n checkLastStepActive = () => {\n if (this.stepArray$.value.length > 0) {\n return this.stepArray$.value[this.stepArray$.value.length - 1].active;\n } else if (this.stepArray$.value.length === 0) {\n return this.stepArray$.value[0].active;\n } else {\n return false;\n }\n };\n\n /**\n * Checks if the previous button should be shown.\n * @returns true if the previous button should be shown, otherwise false\n */\n showPreviousButtonFn(): boolean {\n if (this.activeStepId$.value) {\n const indexOfActiveStep = this.stepArray$.value.findIndex((step) => step.instanceId === this.activeStepId$.value);\n return indexOfActiveStep > 0;\n } else {\n return false;\n }\n }\n\n /**\n * Subscribes to the form status changes and updates the formStatusValid$ BehaviorSubject with the validity of the active step.\n */\n private setFormStatusSubscription(): void {\n if (this.ngForm) {\n // Used to set the initial validity of the active step, otherwise it will always default to false\n if (this.activeStepId$.value) {\n const initialValidity = this.ngForm.controls[this.activeStepId$.value]?.valid;\n this.formStatusValid$.next(initialValidity);\n }\n\n if (!this.formStatusSubscriber) {\n this.formStatusSubscriber = this.ngForm.statusChanges.subscribe(() => {\n if (this.activeStepId$.value) {\n if (this.ngForm) {\n const activeControlExists = Object.keys(this.ngForm.controls).includes(this.activeStepId$.value);\n if (activeControlExists) {\n const activeControl = this.ngForm.controls[this.activeStepId$.value];\n if (activeControl) {\n this.formStatusValid$.next(activeControl.valid);\n }\n }\n }\n }\n });\n }\n }\n }\n\n /**\n * Resets all necessary values to build to form each iteration.\n */\n private resetValues() {\n this.formStatusSubscriber?.unsubscribe();\n this.ngForm = undefined;\n this._steps = undefined;\n this.ngFormService.disposeForm();\n this.stepArray$.next([]);\n this.activeStepId$.next(undefined);\n }\n\n /**\n * Generates the steps for the form based on the outline property of the form.\n * @param outline the outline of the form that is the basis for the steps\n */\n private generateFormSteps(outline: OutlineStep[]) {\n if (this.stepArray$.value.length === 0) {\n const generatedFormSteps = generateFormStepsFromOutline(outline);\n const flattenedFormSteps = flattenSteps(generatedFormSteps);\n this.stepArray$.next(flattenedFormSteps);\n // Set the active step to the first step in the array for the first load\n const lastItemIndex = this.formItems.length - 1;\n const updatedSteps: FormStep[] = [];\n this.stepArray$.value.forEach((step) => {\n if (step.instanceId === this.formItems[lastItemIndex].instanceId || step.instanceId === this.formItems[lastItemIndex].templateId) {\n updatedSteps.push({ ...step, active: true, status: 'INVALID' });\n } else {\n updatedSteps.push(step);\n }\n });\n this.stepArray$.next(updatedSteps);\n }\n }\n\n /**\n * Checks all of the steps to ensure that each steps instanceId property matches the instanceId of the FormItem and updates the property if needed.\n * This finds the step based on the templateId. When the stepArray is first built, the templateId of the FormItem gets set as the steps instanceId.\n * Here, we just need to find the steps that match the templateId and update the instanceId.\n * Matching is based off of templateId reduces the number of steps that need to be checked/manipulated.\n *\n * @param formItems the FormItems to check against the steps\n */\n private checkAllStepsIds(formItems: FormItem[]) {\n formItems.forEach((item) => {\n const stepMatchedOnTemplateId = this.stepArray$.value.find((s) => s.instanceId === item.templateId);\n if (stepMatchedOnTemplateId) {\n stepMatchedOnTemplateId.instanceId = item.instanceId;\n if (stepMatchedOnTemplateId.active) {\n this.activeStepId$.next(item.instanceId);\n this.cdr.markForCheck();\n }\n }\n });\n }\n\n /**\n * Because the super class has no knowledge of the stepArray that have been generated for the form,\n * this function determines which steps need to be passed to the super class and the inherited _steps\n * property. The super class \"should\" obtain each step as it is passed in. This means that when the\n * call to either grab the form again or to get the next FormItem, should also continue to pass the\n * steps that have been generated.\n * @returns\n */\n private determineStepsToPassToSuper(items: FormItem[]): FormStep[] {\n const availableItemInstanceIds: string[] = [];\n items.forEach((item) => {\n availableItemInstanceIds.push(item.instanceId);\n });\n\n const stepsToPass: FormStep[] = [];\n this.stepArray$.value.forEach((step) => {\n if (availableItemInstanceIds.includes(step.instanceId)) {\n stepsToPass.push(step);\n }\n });\n\n return stepsToPass;\n }\n\n /**\n * Sets the status of each step in the form based on the validity of the form control.\n * If the form control key is not found in the controls of the form, the status is set to 'PLACEHOLDER'.\n */\n private setStepStatus() {\n const updatedSteps: FormStep[] = [];\n this.stepArray$.value.forEach((step) => {\n if (this.ngForm) {\n const controlKeyExists = Object.keys(this.ngForm.controls).includes(step.instanceId);\n if (controlKeyExists) {\n updatedSteps.push({ ...step, status: this.ngForm.controls[step.instanceId].valid ? 'VALID' : 'INVALID' });\n } else {\n updatedSteps.push({ ...step, status: 'PLACEHOLDER' });\n }\n }\n });\n this.stepArray$.next(updatedSteps);\n }\n\n /**\n * Emits the next or previous step templateId based on the direction provided.\n * @param stepDirection the direction of the step to emit\n */\n showDirectionalStep(stepDirection: 'previous' | 'next') {\n // const stepTemplateId = this.getDirectionalStepTemplateId(stepDirection);\n // if (stepTemplateId) {\n if (this.mtnaForm) {\n const formValue = this.ngFormService.getFormValue();\n const updatedForm = this.mtnaFormManager.insertNewValues(this.mtnaForm, formValue) as ProgressiveForm;\n if (stepDirection === 'next') {\n this.nextStepSelected.emit(updatedForm);\n this.scrollService.scrollTop();\n } else {\n const previousStepIndex = this.stepArray$.value.findIndex((step) => step.instanceId === this.activeStepId$.value) - 1;\n if (previousStepIndex >= 0) {\n const previousStep = this.stepArray$.value[previousStepIndex];\n if (previousStep) {\n this.previousStepSelected.emit(previousStep.instanceId);\n this.scrollService.scrollTop();\n }\n }\n }\n }\n }\n\n /**\n * Shows the selected step as the active step in the form.\n * To be used on the mtna-wf-form-stepper components \"selected\" output.\n * @param step the step to show as the active step\n */\n showSelectedStep(step: FormStep) {\n if (this.activeStepId$.value !== step.instanceId) {\n this.showSelectedStepId.emit(step.instanceId);\n this.activeStepId$.next(step.instanceId);\n this.scrollService.scrollTop();\n }\n }\n\n _trackByStepInstanceId(index: number, formStep: FormStep) {\n return formStep.instanceId;\n }\n}\n","<div fxLayout=\"row\" class=\"mtna-wf-progressive-form__container\">\n <mtna-wf-stepper\n *ngIf=\"stepArray$ | async as steps\"\n fxFlex=\"200px\"\n [steps]=\"steps\"\n (selected)=\"showSelectedStep($event)\"\n ></mtna-wf-stepper>\n <div fxFlex class=\"mtna-wf-progressive-form__form-container\">\n <form *ngIf=\"ngForm\" [formGroup]=\"ngForm\" [formDisabled]=\"readonly\">\n <ng-container *ngFor=\"let item of mtnaForm?.items | mtnaWfFilterHiddenItems\">\n <ng-container *ngIf=\"activeStepId$ | async as activeStepId\">\n <mtna-wf-item\n *ngIf=\"item.instanceId === activeStepId\"\n [item]=\"item\"\n [control]=\"ngForm.controls[item.instanceId]\"\n [readonly]=\"readonly\"\n [parentIds]=\"componentIds\"\n [step]=\"_steps?.[item.instanceId]\"\n (focusedSection)=\"focusedSection.emit($event)\"\n ></mtna-wf-item>\n </ng-container>\n </ng-container>\n </form>\n <div *ngIf=\"!loading\" class=\"mtna-wf-progressive-form__stepper-actions\" fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"26px\">\n <button *ngIf=\"showPreviousButton\" mat-stroked-button color=\"primary\" (click)=\"showDirectionalStep('previous')\" i18n>\n Previous Step\n </button>\n <ng-container *ngIf=\"!lastStepActive; else parentActions\">\n <button mat-raised-button color=\"primary\" (click)=\"showDirectionalStep('next')\" i18n>Next Step</button>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #parentActions>\n <ng-content></ng-content>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GetActiveFormStepItemPipeModule, GetProgressiveFormItemPipeModule, MtnaWfFilterHiddenItemsPipeModule } from '../../../pipes';\nimport { MtnaWfFormDisablerModule } from '../../form-disabler/form-disabler.module';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfFormStepperModule } from '../../form-stepper/form-stepper.module';\nimport { MtnaWfProgressiveFormComponent } from './progressive-form.component';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n FlexLayoutModule,\n FormsModule,\n MatButtonModule,\n MatIconModule,\n MtnaWfFormDisablerModule,\n MtnaWfFormItemModule,\n ReactiveFormsModule,\n MtnaWfFilterHiddenItemsPipeModule,\n MtnaWfFormStepperModule,\n GetProgressiveFormItemPipeModule,\n GetActiveFormStepItemPipeModule,\n MtnaWfFilterHiddenItemsPipeModule,\n ],\n declarations: [MtnaWfProgressiveFormComponent],\n exports: [MtnaWfProgressiveFormComponent],\n})\nexport class MtnaWfProgressiveFormModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isKey","ErrorStateMatcher","i0","Injectable","isForm","FormGroup","Validators","CHECKBOX_ITEM_ID","FormArray","FormControl","DECIMAL_ANSWER_ITEM_ID","WHOLE_NUMBER_ANSWER_ITEM_ID","isWholeNumberItem","isNullOrUndefined","PARAGRAPH_ANSWER_ITEM_ID","SHORT_ANSWER_ITEM_ID","I18N_PARAGRAPH_ANSWER_ITEM_ID","I18N_SHORT_ANSWER_ITEM_ID","isProgressiveForm","isRepeatableItem","isSection","isFormItemGroupImpl","isTableItem","isOffsetDateRangeItem","isYearQuarterRangeItem","isPresent","isType","trigger","state","style","transition","animate","isObject","InjectionToken","isDataCubeItem","toLetters","FORM_ITEM_GROUP_IMPL_ID","SECTION_ID","TEXT_ITEM_ID","TITLE_ITEM_ID","templateObject_1","templateObject_2","templateObject_3","templateObject_4","templateObject_5","templateObject_6","templateObject_7","templateObject_8","templateObject_9","templateObject_10","templateObject_11","templateObject_12","templateObject_13","BehaviorSubject","isConditionalItem","isOptionItemImpl","isOptionGroupItemImpl","Optional","Inject","mixinDestroyNotifier","Component","Input","coerceBooleanProperty","HostBinding","EventEmitter","Output","MatRadioChange","MatSelectChange","MtnaComponentInjector","INJECTION_SERVICE","i1","Pipe","NgModule","i2.MtnaWfSanitizeHtmlPipe","ChangeDetectionStrategy","ViewEncapsulation","i1.MtnaWfUIService","i2","i3.MtnaWfItemInjector","i4.MtnaWfItemHeaderComponent","i5","MAT_DIALOG_DATA","i2.MtnaWfFormItemComponent","i3","i4","CommonModule","i1.MtnaWfGetObjectTypePipe","isValueItem","MtnaAnnotationsIndicatorModule","MatMomentDateModule","MatButtonModule","MatDialogModule","skipWhile","take","Subject","MtnaWfSerializer.insertFormItemValues","MtnaWfSerializer.determineSerializeFunctionToUse","MtnaWfFormItemChange","i1.MtnaWfApiService","i2.MtnaWfNgFormService","i3.MtnaWfUIService","MtnaSearchSelectionService","takeUntil","distinctUntilChanged","Subscription","i1.MtnaWfManagerService","i1.MtnaWfNgFormService","i1.MtnaWfFormDisablerComponent","i5.MtnaWfFilterHiddenItemsPipe","_FormStepMixinBase","mixinColor","i1.MtnaWfFormStepComponent","i6","i7","i8.MtnaWfFormStepGroupPipe","i9.CoerceFormStepPipe","i10.CoerceFormStepGroupPipe","i11.ChildStepActivePipe","i12.GetStepAriaLabel","FlexLayoutModule","MatDividerModule","MtnaStatusCircleModule","MatRippleModule","MatTooltipModule","MatIconModule","i6.MtnaWfSanitizeHtmlPipe","A11yModule","MatCardModule","FormsModule","ReactiveFormsModule","i3.MtnaWfFormItemComponent","MatSlideToggleModule","MtnaHighlightModule","i1.MtnaWfDialogService","i5.MtnaWfFormItemComponent","i8","i9","i10","i11","i12.MtnaWfGetFormControlErrorPipe","MatFormFieldModule","MatCheckboxModule","MatDatepicker","i7.MtnaWfGetFormControlErrorPipe","ViewChild","MatInputModule","MatDatepickerModule","i1.MtnaWfDateComponent","i5.MtnaWfCoerceFormControlPipe","i9.MtnaWfGetFormControlErrorPipe","i10.MtnaWfGetListIconPipe","i11.MtnaWfGetSelectedOptionNamePipe","MatSelectModule","MatListModule","MtnaFileDownloadModule","MtnaFileUploadModule","MatProgressSpinnerModule","DROPDOWN_ITEM_ID","i1.MtnaWfItemHeaderComponent","i7.MtnaWfItemsWithValuePipe","i1.MtnaWfStepCardComponent","i6.MtnaWfGetObjectTypePipe","isInternationalizedParagraphAnswerItem","MtnaLocaleIds","mtnaToLanguageId","mtnaLanguageIdToDisplay","i8.MtnaWfGetAutoCompletePipe","isDecimalAnswerItem","isParagraphAnswerItem","MatRadioModule","i3.MtnaWfSanitizeHtmlPipe","i2.MtnaWfItemHeaderComponent","i3.MtnaWfRepeatableItemComponent","i6.MtnaWfFormItemComponent","i10.MtnaWfCoerceFormItemPipe","COMPLEX_STANDARD","MtnaTrackByPropertyPipeModule","MtnaSearchDialogComponent","MtnaSearchDialogData","MatTableModule","merge","i8.MtnaWfGetFormControlErrorPipe","i9.MtnaWfGetAvailableQuartersPipe","i10.MtnaWfDateQuarterPipe","i1.MtnaWfYearQuarterComponent","BOOLEAN_ITEM_ID","DATE_ITEM_ID","OFFSET_DATE_RANGE_ITEM_ID","FILE_UPLOAD_ITEM_ID","MULTIPLE_CHOICE_ITEM_ID","NUMBERED_LIST_ITEM_ID","REPEATABLE_ITEM_ID","RESOURCE_SEARCH_ITEM_ID","BULLETED_LIST_ITEM_ID","YEAR_QUARTER_RANGE_ITEM_ID","InjectedComponentProvider","i3.MtnaWfFormStepperComponent","i4.MtnaWfFormDisablerComponent","i10.MtnaWfFilterHiddenItemsPipe"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mtna-web-form-angular.umd.js","sources":["../../../../node_modules/tslib/tslib.es6.mjs","../../../../projects/web-form-angular/src/lib/validators/validation-result-validator.ts","../../../../projects/web-form-angular/src/lib/validators/instant-validation-result-error-state-matcher.ts","../../../../projects/web-form-angular/src/lib/utilities/serializer-util.ts","../../../../projects/web-form-angular/src/lib/utilities/animations.ts","../../../../projects/web-form-angular/src/lib/utilities/is-form-group.ts","../../../../projects/web-form-angular/src/lib/utilities/find-form-control.ts","../../../../projects/web-form-angular/src/lib/utilities/find-form-item.ts","../../../../projects/web-form-angular/src/lib/models/form-stepper/base-form-step.model.ts","../../../../projects/web-form-angular/src/lib/models/form-stepper/form-step-group.model.ts","../../../../projects/web-form-angular/src/lib/models/form-stepper/form-step.model.ts","../../../../projects/web-form-angular/src/lib/models/api-config.ts","../../../../projects/web-form-angular/src/lib/models/form-item-dialog-data.model.ts","../../../../projects/web-form-angular/src/lib/models/white-list.model.ts","../../../../projects/web-form-angular/src/lib/utilities/flatten-steps.ts","../../../../projects/web-form-angular/src/lib/utilities/form-step.util.ts","../../../../projects/web-form-angular/src/lib/utilities/generate-form-steps.ts","../../../../projects/web-form-angular/src/lib/utilities/get-item-class-suffix.ts","../../../../projects/web-form-angular/src/lib/utilities/is-form-control.ts","../../../../projects/web-form-angular/src/lib/utilities/update-step-status.ts","../../../../projects/web-form-angular/src/lib/services/ui.service.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-form-item.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-form-item-control.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-group-item.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-value-item.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-parent-value-item.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-section-item.component.ts","../../../../projects/web-form-angular/src/lib/components/base-items/base-single-selection-parent-value-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-injector/form-item-injector.component.ts","../../../../projects/web-form-angular/src/lib/pipes/sanitize-html.pipe.ts","../../../../projects/web-form-angular/src/lib/components/item-header/item-header.component.ts","../../../../projects/web-form-angular/src/lib/components/item-header/item-header.component.html","../../../../projects/web-form-angular/src/lib/components/form-item/form-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item/form-item.component.html","../../../../projects/web-form-angular/src/lib/components/acknowledge-dialog/acknowledge-dialog.component.ts","../../../../projects/web-form-angular/src/lib/components/acknowledge-dialog/acknowledge-dialog.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-injector/form-item-injector.module.ts","../../../../projects/web-form-angular/src/lib/pipes/child-step-active.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-object-type.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-date-item.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-form-control.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-form-group.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-form-item.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-form-step-group.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/coerce-form-step.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/date-quarter.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/filter-hidden-items.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/form-step-group.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-active-form-step-item.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-auto-complete.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-available-quarters.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-form-control-error.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-list-icon.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-progressive-form-item.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-selected-option.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/get-step-aria-label.pipe.ts","../../../../projects/web-form-angular/src/lib/pipes/items-with-value.pipe.ts","../../../../projects/web-form-angular/src/lib/components/item-header/item-header.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item/form-item.module.ts","../../../../projects/web-form-angular/src/lib/components/acknowledge-dialog/acknowledge-dialog.module.ts","../../../../projects/web-form-angular/src/lib/services/api.service.ts","../../../../projects/web-form-angular/src/lib/components/form-item-dialog/form-item-dialog.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-dialog/form-item-dialog.component.html","../../../../projects/web-form-angular/src/lib/services/dialog.service.ts","../../../../projects/web-form-angular/src/lib/services/ng-form.service.ts","../../../../projects/web-form-angular/src/lib/services/form-manager.service.ts","../../../../projects/web-form-angular/src/lib/services/resource-search-selection.service.ts","../../../../projects/web-form-angular/src/lib/components/base-form/base-form.component.ts","../../../../projects/web-form-angular/src/lib/components/form-disabler/form-disabler.component.ts","../../../../projects/web-form-angular/src/lib/components/form/form.component.ts","../../../../projects/web-form-angular/src/lib/components/form/form.component.html","../../../../projects/web-form-angular/src/lib/components/form-disabler/form-disabler.module.ts","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-step/form-step.component.ts","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-step/form-step.component.html","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-step-group/form-step-group.component.ts","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-step-group/form-step-group.component.html","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-stepper/form-stepper.component.ts","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-stepper/form-stepper-new.component.html","../../../../projects/web-form-angular/src/lib/components/form-stepper/form-stepper.module.ts","../../../../projects/web-form-angular/src/lib/components/step-card/step-card.component.ts","../../../../projects/web-form-angular/src/lib/components/step-card/step-card.component.html","../../../../projects/web-form-angular/src/lib/components/step-card/step-card.module.ts","../../../../projects/web-form-angular/src/lib/components/form/form.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/boolean/boolean.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/boolean/boolean.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/boolean/boolean.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/checkbox/checkbox.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/checkbox/checkbox.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-dialog/form-item-dialog.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/checkbox/checkbox.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date/date.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date/date.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date/date.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date-range/date-range.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date-range/date-range.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/date-range/date-range.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/dropdown/dropdown.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/dropdown/dropdown.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/dropdown/dropdown.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/file-upload/file-upload.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/file-upload/file-upload.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/file-upload/file-upload.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-group/form-group.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-group/form-group.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-group/form-group.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-section/form-section.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-section/form-section.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/form-section/form-section.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/i18n-input/i18n-input.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/i18n-input/i18n-input.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/i18n-input/i18n-input.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/input/input.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/input/input.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/input/input.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/multiple-choice/multiple-choice.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/multiple-choice/multiple-choice.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/multiple-choice/multiple-choice.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/ordered-list/ordered-list-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/ordered-list/ordered-list-item.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/ordered-list/ordered-list-item.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/repeatable-item/repeatable-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/repeatable-item/repeatable-item.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/repeatable-item-container/repeatable-item-container.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/repeatable-item-container/repeatable-item-container.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/repeatable-item-container/repeatable-item-container.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/search/resource-search.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/search/resource-search.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/search/resource-search.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/table-item/table-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/table-item/table-item.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/table-item/table-item.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/text/text.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/text/text.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/text/text.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/title/title.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/title/title.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/title/title.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/unordered-list/unordered-list-item.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/unordered-list/unordered-list-item.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/unordered-list/unordered-list-item.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter/year-quarter.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter/year-quarter.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter/year-quarter.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter-range/year-quarter-range.component.ts","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter-range/year-quarter-range.component.html","../../../../projects/web-form-angular/src/lib/components/form-item-impl/year-quarter-range/year-quarter-range.module.ts","../../../../projects/web-form-angular/src/lib/components/form-item-component-provider/form-item-injected-components.ts","../../../../projects/web-form-angular/src/lib/components/form-item-component-provider/form-item-component-provider.ts","../../../../projects/web-form-angular/src/lib/components/progressive-form/progressive-form/progressive-form.component.ts","../../../../projects/web-form-angular/src/lib/components/progressive-form/progressive-form/progressive-form.component.html","../../../../projects/web-form-angular/src/lib/components/progressive-form/progressive-form/progressive-form.module.ts","../../../../projects/web-form-angular/src/mtna-web-form-angular.ts"],"sourcesContent":["/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\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;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\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;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\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);\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); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","import { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\nimport { FormItemValidationResult } from '@mtna/web-form-ts';\n\nimport { MtnaWfManagerService } from '../services/form-manager.service';\n\nexport const MTNA_WF_FORM_ITEM_VALIDATION_RESULT_ERROR_NAME = 'formItemValidationResult';\n\n/**\n * Valitator function that will check the root level {@link FormValidationResult} on\n * the MTNA {@link Form} and see if there are any errors for a particular control.\n *\n * @param instanceId The instanceId of the form item for a particular control\n * @param managerService The manager service that holds a reference to the MTNA {@link Form} and it's {@link FormValidationResult}\n * @returns A validator function that will throw an error if there is a matching {@link FormItemValidationResult} for the specified item.\n */\nexport function validationResultValidator(instanceId: string, managerService: MtnaWfManagerService): ValidatorFn {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return (control: AbstractControl): ValidationErrors | null => {\n const formItemValidationResult: FormItemValidationResult | undefined = managerService.getFormItemValidationResults()[instanceId];\n return formItemValidationResult\n ? { [MTNA_WF_FORM_ITEM_VALIDATION_RESULT_ERROR_NAME]: formItemValidationResult.validationMessage }\n : null;\n };\n}\n","import { Injectable } from '@angular/core';\nimport { FormControl, FormGroupDirective, NgForm } from '@angular/forms';\nimport { ErrorStateMatcher } from '@angular/material/core';\n\nimport { isKey } from '@mtna/core-ts';\n\nimport { MTNA_WF_FORM_ITEM_VALIDATION_RESULT_ERROR_NAME } from './validation-result-validator';\n\n/**\n * Custom {@link ErrorStateMatcher} that will immediately show {@link FormValidationResult} errors.\n * Theses errors are calcualted on the server and need to always show.\n * Regular form validation will use the default error matcher strategy.\n */\n@Injectable({ providedIn: 'root' })\nexport class MtnaWfInstantValidationResultErrorStateMatcher extends ErrorStateMatcher {\n override isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\n const hasValidationResultError = isKey(control?.errors, MTNA_WF_FORM_ITEM_VALIDATION_RESULT_ERROR_NAME);\n return hasValidationResultError || super.isErrorState(control, form);\n }\n}\n","import { AbstractControl, FormArray, FormControl, FormGroup, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\nimport { InternationalizedString } from '@mtna/core-i18n-ts';\nimport { isNullOrUndefined, isPresent, isType } from '@mtna/core-ts';\nimport {\n CHECKBOX_ITEM_ID,\n CheckboxItem,\n ConditionalItem,\n DateRange,\n DECIMAL_ANSWER_ITEM_ID,\n DecimalAnswerItem,\n Form as WebForm,\n FormItem,\n FormItemGroup,\n FormItemImpl,\n I18N_PARAGRAPH_ANSWER_ITEM_ID,\n I18N_SHORT_ANSWER_ITEM_ID,\n InternationalizedParagraphAnswerItem,\n InternationalizedShortAnswerItem,\n isForm,\n isFormItemGroupImpl,\n isOffsetDateRangeItem,\n isProgressiveForm,\n isRepeatableItem,\n isSection,\n isTableItem,\n isWholeNumberItem,\n isYearQuarterRangeItem,\n Option,\n OptionGroupItemImpl,\n PARAGRAPH_ANSWER_ITEM_ID,\n ParagraphAnswerItem,\n RepeatableItem,\n SHORT_ANSWER_ITEM_ID,\n ShortAnswerItem,\n TableItem,\n TableRowItem,\n ValueItem,\n WHOLE_NUMBER_ANSWER_ITEM_ID,\n WholeNumberAnswerItem,\n YearQuarter,\n} from '@mtna/web-form-ts';\nimport { Moment } from 'moment';\n\nimport { MtnaWfManagerService } from '../services/form-manager.service';\nimport { validationResultValidator } from '../validators';\n\n/** Types of Validators that can be set on a FormControl */\nexport type ValidatorType = 'required' | 'requiredTrue' | 'email';\nexport type ValidatorWithNumberType = 'minLength' | 'maxLength' | 'min' | 'max';\n\n/** RegEx to validate number items contain only negative, digits, or decimals */\nconst numOnlyWithoutComma = /^-?\\d+(\\.\\d*)?$/;\n/** RegEx to validate number items contain only negative, digits, or decimals in comma format */\nconst numOnlyWithComma = /^-?\\d{1,3}(,\\d{3})*(\\.\\d*)?$/;\n/** RegEx to validate 'positive only' item conains non-negative characters */\nconst posOnly = /^[^-]*$/;\n/** RegEx to validate 'whole number' item contains only negative, digits, or comma format */\nconst wholeNumber = /^-?\\d+(,\\d{3})*$/;\n\n//#region FormControl Generation\n\n/**\n * Generates a new FormGroup with FormControls & possible nested FormGroups\n * @param formItem WebForm, Section, Group, or RepeatableItem used to create a FormGroup\n * @param customFormItemConditional boolean function for any custom FormItems\n * @param customControlGenerator FormControl generator function for any custom FormItems\n */\nexport function serializeFormItems(\n formItem: WebForm | FormItemGroup | RepeatableItem,\n managerService: MtnaWfManagerService,\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customControlGenerator?: (item: FormItem) => AbstractControl | null\n): FormGroup {\n const form: { [key: string]: AbstractControl } = {};\n\n for (const item of formItem.items) {\n const control = determineSerializeFunctionToUse(\n item as FormItemImpl<unknown>,\n managerService,\n customFormItemConditional,\n customControlGenerator\n );\n if (control) {\n form[item.instanceId] = control;\n }\n }\n const required = isForm(formItem) ? true : formItem.required;\n const group = required ? new FormGroup(form, Validators.required) : new FormGroup(form);\n if ('disabled' in formItem && formItem.disabled) {\n group.disable({ onlySelf: true, emitEvent: false });\n }\n return group;\n}\n\n/**\n * Returns a tailored FormControl with validators for a FormItem\n * @param formItem The FormItem requesting a tailored FormControl\n * @internal Creating the form control and then calling setValidators force a validation pass,\n * see https://github.com/angular/angular/issues/19622#issuecomment-341547884\n * Better to gather the validators and put them in the constructor of the form control.\n */\nexport function serializeFormItem(formItem: FormItemImpl<unknown>, managerService: MtnaWfManagerService): AbstractControl {\n const validators = new Array<ValidatorFn>(validationResultValidator(formItem.instanceId, managerService));\n if (formItem.required) {\n validators.push(Validators.required);\n }\n switch (formItem.itemId) {\n case CHECKBOX_ITEM_ID: {\n const checkboxItem = formItem as CheckboxItem;\n const value = checkboxItem.value || [];\n validators.push(numCheckboxesValidator('MIN', checkboxItem.minSelections), numCheckboxesValidator('MAX', checkboxItem.maxSelections));\n const arr = new FormArray(\n checkboxItem.options.map(\n (o) =>\n new FormControl({\n value: o.selected || value.some((v) => v === o.option.id),\n disabled: checkboxItem.disabled,\n })\n ),\n Validators.compose(validators)\n );\n return arr;\n }\n case DECIMAL_ANSWER_ITEM_ID:\n case WHOLE_NUMBER_ANSWER_ITEM_ID: {\n const item = formItem as DecimalAnswerItem | WholeNumberAnswerItem;\n validators.push(numericalValueCheck());\n if (isWholeNumberItem(item)) {\n validators.push(wholeNumberPattern());\n }\n if (item.positiveOnly) {\n validators.push(positiveNumberPattern());\n }\n if (!isNullOrUndefined(item.minValue)) {\n validators.push(numValueLimit('min', item.minValue));\n }\n if (!isNullOrUndefined(item.maxValue)) {\n validators.push(numValueLimit('max', item.maxValue));\n }\n break;\n }\n case PARAGRAPH_ANSWER_ITEM_ID:\n case SHORT_ANSWER_ITEM_ID: {\n const shortAnswerItem = formItem as ShortAnswerItem | ParagraphAnswerItem;\n validators.push(...getNumericValidator('minLength', shortAnswerItem.minCharCount));\n validators.push(...getNumericValidator('maxLength', shortAnswerItem.maxCharCount));\n break;\n }\n case I18N_PARAGRAPH_ANSWER_ITEM_ID:\n case I18N_SHORT_ANSWER_ITEM_ID: {\n const i18nItem = formItem as InternationalizedParagraphAnswerItem | InternationalizedShortAnswerItem;\n const group = new FormGroup({}, Validators.compose(validators));\n for (const language of i18nItem.languageTags) {\n // FIXME if there is nothign there in the value should I set a new internationalized string?\n group.controls[language] = new FormControl(formItem.value);\n }\n if (i18nItem.disabled) {\n group.disable({ onlySelf: true, emitEvent: false });\n }\n return group;\n }\n default:\n break;\n }\n return new FormControl({ value: formItem.value, disabled: !!formItem.disabled }, Validators.compose(validators));\n}\n\n/**\n * Builds controls for any form items nested inside a parent items options\n * @param formItem The FormItem with an 'options' property\n * @param customFormItemConditional conditional function from parent 'serializeFormItems' function\n * @param customControlGenerator FormControl generator from parent 'serializeFormItems' function\n */\nexport function serializeNestedOptionFormItems(\n formItem: OptionGroupItemImpl<Option<unknown>>,\n managerService: MtnaWfManagerService,\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customControlGenerator?: (item: FormItem) => AbstractControl | null\n): FormGroup {\n const controls: { [key: string]: AbstractControl } = {};\n for (const id in formItem.optionItemMap) {\n if (Object.prototype.hasOwnProperty.call(formItem.optionItemMap, id)) {\n const subItem = formItem.optionItemMap[id] as FormItemImpl<unknown>;\n const control = determineSerializeFunctionToUse(subItem, managerService, customFormItemConditional, customControlGenerator);\n if (control) {\n controls[subItem.instanceId] = control;\n }\n }\n }\n\n controls[formItem.instanceId] = serializeFormItem(formItem, managerService);\n const group = formItem.required ? new FormGroup(controls, Validators.required) : new FormGroup(controls);\n if (formItem.disabled) {\n group.disable({ onlySelf: true, emitEvent: false });\n }\n return group;\n}\n\n/**\n * Build FormControls for a TableItem\n * @param item TableItem requiring FormControls\n * @param customFormItemConditional Conditional function for custom any FormItems\n * @param customControlGenerator FormControl generator for custom any FormItems\n */\nexport function serializeTableItem(\n item: TableItem,\n managerService: MtnaWfManagerService,\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customControlGenerator?: (item: FormItem) => AbstractControl | null\n): FormGroup {\n const tableControl: { [key: string]: AbstractControl } = {};\n for (const row of item.tableRows) {\n for (const rowItem of row.items.filter((i) => !!i)) {\n const control = determineSerializeFunctionToUse(\n rowItem as FormItemImpl<unknown>,\n managerService,\n customFormItemConditional,\n customControlGenerator\n );\n if (control) {\n tableControl[rowItem.instanceId] = control;\n }\n }\n }\n const group = item.required ? new FormGroup(tableControl, Validators.required) : new FormGroup(tableControl);\n if (item.disabled) {\n group.disable({ onlySelf: true, emitEvent: false });\n }\n return group;\n}\n\n/**\n * Returns the appropriate function for the caller to use.\n *\n * @param formItem FormItem requiring serialization\n * @param customFormItemConditional Conditional for a custom FormItem\n * @param customControlGenerator Serializer for a custom FormItem\n */\nexport function determineSerializeFunctionToUse(\n formItem: FormItemImpl<unknown> | WebForm,\n managerService: MtnaWfManagerService,\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customControlGenerator?: (item: FormItem) => AbstractControl | null\n): AbstractControl | null {\n if (\n isForm(formItem) ||\n isProgressiveForm(formItem) ||\n isRepeatableItem(formItem) ||\n isSection(formItem) ||\n isFormItemGroupImpl(formItem)\n ) {\n return serializeFormItems(formItem, managerService, customFormItemConditional, customControlGenerator);\n } else if (isTableItem(formItem)) {\n return serializeTableItem(formItem, managerService, customFormItemConditional, customControlGenerator);\n } else if (customFormItemConditional(formItem) && !!customControlGenerator) {\n return customControlGenerator(formItem);\n } else if (hasNestedFormItems(formItem)) {\n return serializeNestedOptionFormItems(formItem as OptionGroupItemImpl<Option<unknown>>, managerService);\n } else if (isOffsetDateRangeItem(formItem) || isYearQuarterRangeItem(formItem)) {\n return serializeRangeItem(formItem);\n } else {\n return serializeFormItem(formItem, managerService);\n }\n}\n\n/**\n * Builds a FormGroup for a range item\n * @param formItem FormItem for a DateRange of Date | YearQuarter\n */\nexport function serializeRangeItem(formItem: FormItemImpl<DateRange<Date | YearQuarter>>): FormGroup {\n const validators = new Array<ValidatorFn>();\n if (formItem.required) {\n validators.push(Validators.required);\n }\n const group = new FormGroup(\n {\n start: new FormControl(formItem.value ? formItem.value.start : null),\n end: new FormControl(formItem.value ? formItem.value.end : null),\n },\n Validators.compose(validators)\n );\n if (formItem.disabled) {\n group.disable({ onlySelf: true, emitEvent: false });\n }\n return group;\n}\n\n/**\n * Returns a Validator with a numeric value for a FormItem;\n * Returns as an array of length 1 or 0\n * @param param0 `type` - type of validator, e.g. 'minLength';\n * `value` - parameter for the validator, e.g. 'minLength(value)'\n */\nfunction getNumericValidator(type: ValidatorWithNumberType, value: number): ValidatorFn[] {\n return !isNullOrUndefined(value) ? [Validators[type](value)] : [];\n}\n\n//#endregion\n\n//#region MtnaForm value insertion\n\n/**\n * Returns an array of Formitems with new values inserted.\n *\n * @param section The old Form or Form Section\n * @param ngFormValue ngForm JSON values\n * @param customFormItemConditional boolean function for any custom FormItems\n * @param customFormItemBuilder function to handle custom FormItems\n * @returns new FormItem array\n */\nexport function insertFormItemValues(\n section: WebForm | FormItemGroup | RepeatableItem,\n ngFormValue: Record<string, unknown>,\n disabledState: { [instanceId: string]: boolean },\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customFormItemBuilder?: (\n section: WebForm | FormItemGroup | RepeatableItem | undefined,\n item: FormItem,\n rfValue: unknown,\n disabledState: { [instanceId: string]: boolean }\n ) => ValueItem<unknown> | null\n): Array<FormItem> {\n return section.items\n .map((item) =>\n determineInsertFunctionToUse(\n item,\n ngFormValue[item.instanceId],\n disabledState,\n customFormItemConditional,\n customFormItemBuilder,\n section\n )\n )\n .filter(isPresent);\n}\n\n/**\n * Returns a copied TableItem, with each row FormItem having new inserted values.\n * @param item TableItem to insert values\n * @param ngFormValue ngForm value of the TableItem\n * @param customFormItemConditional boolean function for any custom FormItem\n * @param customFormItemBuilder function to handle custom FormItem value insertion\n */\nexport function insertTableItemValues(\n item: TableItem,\n ngFormValue: Record<string, unknown>,\n disabledState: { [instanceId: string]: boolean },\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customFormItemBuilder?: (\n section: WebForm | FormItemGroup | RepeatableItem | undefined,\n item: FormItem,\n rfValue: unknown,\n disabledState: { [instanceId: string]: boolean }\n ) => ValueItem<unknown> | null\n): TableItem {\n const tableRows = item.tableRows.map((row: TableRowItem) => ({\n ...row,\n items: row.items\n .filter(isPresent)\n .map((formItem) => {\n return determineInsertFunctionToUse(\n formItem,\n ngFormValue[formItem.instanceId],\n disabledState,\n customFormItemConditional,\n customFormItemBuilder\n );\n })\n .filter(isPresent),\n }));\n return { ...item, tableRows, disabled: _isDisabled(item, disabledState) };\n}\n\n/**\n * Returns a new FormItem after determining the appropriate function to use.\n * @param formItem FormItem requiring value insertion\n * @param ngFormValue ngForm value\n * @param customFormItemConditional Conditional for a custom FormItem\n * @param customFormItemBuilder Value insertion function for a custom FormItem\n * @param disabledState Map of items' disabled state\n * @param parent Parent of the FormItem, used to pass to the customFormItemBuilder\n */\nfunction determineInsertFunctionToUse(\n formItem: FormItem,\n ngFormValue: unknown,\n disabledState: { [instanceId: string]: boolean },\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customFormItemBuilder?: (\n section: WebForm | FormItemGroup | RepeatableItem | undefined,\n item: FormItem,\n rfValue: unknown,\n disabledState: { [instanceId: string]: boolean }\n ) => ValueItem<unknown> | null,\n parent?: WebForm | FormItemGroup | RepeatableItem\n): FormItem | null {\n if (isSection(formItem) || isFormItemGroupImpl(formItem) || isRepeatableItem(formItem)) {\n const items = insertFormItemValues(\n formItem,\n ngFormValue as Record<string, unknown>,\n disabledState,\n customFormItemConditional,\n customFormItemBuilder\n );\n return { ...formItem, items, disabled: _isDisabled(formItem, disabledState) } as FormItemGroup | RepeatableItem;\n } else if (isTableItem(formItem)) {\n return insertTableItemValues(\n formItem,\n ngFormValue as Record<string, unknown>,\n disabledState,\n customFormItemConditional,\n customFormItemBuilder\n );\n } else if (customFormItemConditional(formItem) && !!customFormItemBuilder) {\n return customFormItemBuilder(parent, formItem, ngFormValue, disabledState);\n } else if (hasNestedFormItems(formItem)) {\n return insertNestedFormItemValues(\n formItem as OptionGroupItemImpl<Option<unknown>>,\n ngFormValue as Record<string, unknown>,\n disabledState,\n customFormItemConditional,\n customFormItemBuilder\n );\n } else if (isOffsetDateRangeItem(formItem) || isYearQuarterRangeItem(formItem)) {\n const start = isType<{ start: YearQuarter | Date }>(ngFormValue, 'start') ? ngFormValue.start : undefined;\n const end = isType<{ end: YearQuarter | Date }>(ngFormValue, 'end') ? ngFormValue.end : undefined;\n return { ...formItem, value: { start, end }, disabled: _isDisabled(formItem, disabledState) } as FormItemImpl<\n DateRange<Date | YearQuarter>\n >;\n } else {\n return {\n ...formItem,\n value: findItemValue(formItem, ngFormValue),\n disabled: _isDisabled(formItem as FormItemImpl<unknown>, disabledState),\n } as FormItem;\n }\n}\n\n/**\n * Returns ngForm value for a FormItem.\n *\n * @param formItem FormItem requiring a value\n * @param ngFormValue ngForm value\n */\nfunction findItemValue(formItem: FormItem, ngFormValue: unknown): unknown {\n const itemId = formItem.itemId.split('.').pop();\n switch (itemId?.toUpperCase()) {\n // FIXME: can we put these IDs in constants and refer to them instead?\n case 'DATEITEM':\n return !!ngFormValue && typeof ngFormValue !== 'string' ? (ngFormValue as Moment).toISOString() : (ngFormValue as string);\n case 'CHECKBOXITEM':\n if (!isNullOrUndefined(ngFormValue) && Array.isArray(ngFormValue)) {\n const arr = ngFormValue as Array<boolean>;\n return (formItem as CheckboxItem).options.filter((o, index) => !!arr[index]).map((o) => o.option.id);\n }\n return [];\n case 'INTERNATIONALIZEDPARAGRAPHANSWERITEM':\n case 'INTERNATIONALIZEDSHORTANSWERITEM': {\n const languages =\n itemId?.toUpperCase() === 'INTERNATIONALIZEDPARAGRAPHANSWERITEM'\n ? (formItem as InternationalizedParagraphAnswerItem).languageTags\n : (formItem as InternationalizedShortAnswerItem).languageTags;\n\n const value = languages.reduce((value: InternationalizedString[], language) => {\n if (ngFormValue && typeof ngFormValue === 'object' && language in ngFormValue) {\n const input = (ngFormValue as Record<string, unknown>)[language];\n if (input) {\n value.push({ value: input as string, facetId: language });\n }\n }\n return value;\n }, []);\n return value;\n }\n default:\n return ngFormValue;\n }\n}\n\nfunction insertNestedFormItemValues(\n formItem: OptionGroupItemImpl<Option<unknown>>,\n ngFormValue: Record<string, unknown>,\n disabledState: { [instanceId: string]: boolean },\n customFormItemConditional: (item: FormItem) => boolean = () => false,\n customFormItemBuilder?: (\n section: WebForm | FormItemGroup | RepeatableItem | undefined,\n item: FormItem,\n rfValue: unknown,\n disabledState: { [instanceId: string]: boolean }\n ) => ValueItem<unknown> | null\n): FormItem {\n const optionItemMap: Record<string, unknown> = {};\n for (const id in formItem.optionItemMap) {\n if (Object.prototype.hasOwnProperty.call(formItem.optionItemMap, id)) {\n const subItem = formItem.optionItemMap[id];\n optionItemMap[id] = determineInsertFunctionToUse(\n subItem,\n ngFormValue[subItem.instanceId],\n disabledState,\n customFormItemConditional,\n customFormItemBuilder\n );\n }\n }\n return {\n ...formItem,\n optionItemMap,\n value: findItemValue(formItem, ngFormValue[formItem.instanceId]),\n disabled: _isDisabled(formItem, disabledState),\n } as OptionGroupItemImpl<Option<unknown>>;\n}\n\n//#endregion\n\n/**\n * Determines if a FormItem has an OptionItemMap with at least 1 item, which require their own FormControl(s)\n * @param formItem FormItem to check\n */\nexport function hasNestedFormItems(formItem: unknown): formItem is { optionItemMap: Record<string, unknown> } {\n return (\n isType<{\n optionItemMap: Record<string, unknown>;\n }>(formItem, 'optionItemMap') && Object.keys(formItem.optionItemMap).length > 0\n );\n}\n\n/**\n * Function for validating min/max selections limits\n * @param typeCheck Which limit to validate. 'MIN' | 'MAX'\n * @param limit upper or lower limit to check against\n */\nfunction numCheckboxesValidator(typeCheck: 'MIN' | 'MAX', limit = 1): ValidatorFn {\n return (control: AbstractControl) => {\n let totalSelected = 0;\n if (isFormArray(control)) {\n totalSelected = control.controls.map((c) => c.value).reduce((total, next) => (next ? total + next : total), 0);\n }\n\n switch (typeCheck) {\n case 'MIN':\n return totalSelected >= limit ? null : { minSelected: $localize`Select at least ${limit}` };\n case 'MAX':\n return totalSelected <= limit ? null : { maxSelected: $localize`Select no more than ${limit}` };\n }\n };\n}\n\nfunction isFormArray(control: AbstractControl): control is FormArray {\n return isType<FormArray>(control, 'controls');\n}\n\nfunction _isDisabled(item: ConditionalItem, disabledState: { [id: string]: boolean }): boolean {\n const disabled = disabledState[item.instanceId];\n return isNullOrUndefined(disabled) ? item.disabled : disabled;\n}\n\nfunction wholeNumberPattern(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isNullOrUndefined(control.value) || isEmptyString(control.value)) {\n return null;\n }\n\n return wholeNumber.test(control.value) ? null : { wholeNumber: true };\n };\n}\n\nfunction numericalValueCheck(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isNullOrUndefined(control.value) || isEmptyString(control.value)) {\n return null;\n }\n return numOnlyWithoutComma.test(control.value) || numOnlyWithComma.test(control.value) ? null : { nonDigit: true };\n };\n}\n\nfunction positiveNumberPattern(): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isNullOrUndefined(control.value) || isEmptyString(control.value)) {\n return null;\n }\n return posOnly.test(control.value) ? null : { positive: true };\n };\n}\n\n/**\n * This works as a combination of the angular 'min'/'max' Validators. Using the built-in validators\n * appears to take precedence over custom validators, regardless of order in the array. Using this function\n * ensures validators set before this one maintain priority. For instance, the input value failing numerical validation\n * is more important than the value being within min-max range.\n */\nfunction numValueLimit(type: 'min' | 'max', limit: number): ValidatorFn {\n return (control: AbstractControl): ValidationErrors | null => {\n if (isNullOrUndefined(control.value) || isEmptyString(control.value)) {\n return null;\n }\n const value = parseFloat(control.value);\n return !isNaN(value) && (type === 'min' ? value < limit : value > limit)\n ? {\n [type]: {\n [type]: limit,\n actual: control.value,\n },\n }\n : null;\n };\n}\n\nfunction isEmptyString(value: unknown): boolean {\n return typeof value === 'string' && !value.length;\n}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\n\nexport const COMPLEX_STANDARD = '300ms cubic-bezier(0.4, 0.0, 0.2, 1)';\n\nexport const MTNA_WF_EXPAND_COLLAPSE = trigger('mtnaWfExpandCollapse', [\n state('1', style({ height: '*', marginTop: '*', marginBottom: '*', opacity: 1 })),\n state('0', style({ height: 0, marginTop: 0, marginBottom: 0, opacity: 0, overflow: 'hidden', visibility: 'hidden' })),\n transition('1 <=> 0', [animate(COMPLEX_STANDARD)]),\n]);\n","import { FormGroup } from '@angular/forms';\n\nimport { isObject, isType } from '@mtna/core-ts';\n\n/** Typeguard for {@link FormGroup}. Determines if something is a FormGroup. */\nexport function isFormGroup(something: unknown): something is FormGroup {\n return isObject(something) && isType<FormGroup>(something, 'controls') && isObject(something.controls);\n}\n","import { AbstractControl, FormGroup } from '@angular/forms';\n\nimport { isFormGroup } from './is-form-group';\n\n/**\n * Recursively find a form control by name in a form group.\n * Depth first search down the tree of form groups to find a control.\n *\n * @note This will only work if the entire form has unique form control names.\n * @param name The unique name of the form cotrol to find.\n * @param group The {@link FormGroup} to search through.\n * @returns the found control or null\n */\nexport function findFormControl(name: string, group: FormGroup): AbstractControl | null {\n for (const key in group.controls) {\n if (Object.prototype.hasOwnProperty.call(group.controls, key)) {\n const control = group.controls[key];\n if (key === name) {\n return control;\n }\n\n // Recurse down if it's a FormGroup\n if (isFormGroup(control)) {\n const found = findFormControl(name, control);\n if (found) {\n return found;\n }\n }\n }\n }\n return null;\n}\n","import { isType } from '@mtna/core-ts';\nimport { Form, FormItem, FormItemGroup } from '@mtna/web-form-ts';\n\n/**\n * Recursively find a {@link FormItem} by instanceId in a {@link Form}.\n * Depth first search down the tree of {@link FormItemGroup} to find an item.\n *\n * @param instanceId The unique ID of the {@link FormItem} to find.\n * @param group The {@link Form} or {@link FormItemGroup} to search through.\n * @returns the found {@link FormItem} or `null`\n */\nexport function findFormItem(instanceId: string, group: Form | FormItemGroup): FormItem | null {\n for (const item of group.items) {\n if (item.instanceId === instanceId) {\n return item;\n }\n\n // If it's a FormGroup, search through it's children\n if (isType<FormItemGroup>(item, 'items')) {\n const found = findFormItem(instanceId, item);\n if (found) {\n return found;\n }\n }\n }\n return null;\n}\n","export class BaseFormStep {\n constructor(public instanceId: string) {}\n}\n","import { isType } from '@mtna/core-ts';\n\nimport { BaseFormStep } from './base-form-step.model';\nimport { FormStep } from './form-step.model';\n\nexport class FormStepGroup extends BaseFormStep {\n readonly className = 'FormStepGroup';\n constructor(public steps: FormStep[], instanceId: string, public collapsed = false, public label: string, public num: number | string) {\n super(instanceId);\n }\n}\n\nexport function isFormStepGroup(something: unknown): something is FormStepGroup {\n return isType<FormStepGroup>(something, 'steps') && Array.isArray(something.steps);\n}\n\nexport function instanceOfFormStepGroup(something: unknown): something is FormStepGroup {\n return isType<FormStepGroup>(something, 'className') && something.className === 'FormStepGroup';\n}\n","import { CircleStatus } from '@mtna/core-angular';\nimport { isType } from '@mtna/core-ts';\n\nimport { BaseFormStep } from './base-form-step.model';\n\nexport class FormStep extends BaseFormStep {\n readonly className = 'FormStep';\n active = false;\n disabledText?: string;\n status: CircleStatus = 'INVALID';\n disabled = false;\n constructor(public num: number | string, public label: string, instanceId: string, public optional = false) {\n super(instanceId);\n }\n}\n\nexport function instanceOfFormStep(something: unknown): something is FormStep {\n return isType<FormStep>(something, 'className') && something.className === 'FormStep';\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface MtnaWfApiConfig {\n baseUrl: string;\n}\n\nexport const MTNA_WF_API_TOKEN = new InjectionToken<MtnaWfApiConfig>('mtnaWfApiConfig');\n","import { FormItem } from '@mtna/web-form-ts';\n\n/**\n * Dialog data for a {@link MtnaWfFormItemDialogComponent}\n */\nexport class MtnaWfFormItemDialogData {\n /**\n * @param formItems The form items to render in the dialog\n * @param title optional dialog title\n */\n constructor(public formItems: FormItem[], public title?: string) {}\n}\n","import { InjectionToken } from '@angular/core';\n\nexport interface MtnaWfItemWhiteList {\n itemTypes: Array<string>;\n}\n\nexport const MTNA_WF_ITEM_WHITELIST = new InjectionToken<MtnaWfItemWhiteList>('mtna-wf-item-whitelist', {\n providedIn: 'root',\n factory: MTNA_WF_ITEM_WHITELIST_FACTORY,\n});\n\nexport function MTNA_WF_ITEM_WHITELIST_FACTORY(): MtnaWfItemWhiteList {\n return {\n itemTypes: [],\n };\n}\n","import { FormStep, FormStepGroup, isFormStepGroup } from '../models';\n\n/**\n * Flattens formStepGroup.steps and combines all steps into single array\n * @param steps Array<FormStep | FormStepGroup>\n * @returns FormStep[] array of the steps and children of step groups\n */\nexport function flattenSteps(steps: Array<FormStep | FormStepGroup>): Array<FormStep> {\n return steps.reduce((a, b) => a.concat(isFormStepGroup(b) ? b.steps : b), new Array<FormStep>());\n}\n","import { CircleStatus } from '@mtna/core-angular';\n\nimport { FormStep } from '../models';\n\n/**\n * Determines if every step matches a given status\n * @param statusToCheck CircleStatus to match against\n * @param steps FormSteps with statuses to check\n * @param includeDisabled If false or not supplied, disabled steps are excluded from check\n * @param includeOptional If false or not supplied, optional steps are excluded from check\n * @param exclusionIds string[] IDs of steps to exclude from check\n */\nexport function everyStepStatus(\n statusToCheck: CircleStatus,\n steps: Array<FormStep>,\n includeDisabled?: boolean,\n includeOptional?: boolean\n): boolean;\n/**\n * Determines if every step matches a given status\n * @param statusToCheck CircleStatus to match against\n * @param steps FormSteps with statuses to check\n * @param exclusionIds string[] IDs of steps to exclude from check\n */\nexport function everyStepStatus(statusToCheck: CircleStatus, steps: Array<FormStep>, exclusionIds?: Array<string>): boolean;\n/**\n * Determines if every step matches a given status\n * @param statusToCheck CircleStatus to match against\n * @param steps FormSteps with statuses to check\n * @param includeDisabled If false or not supplied, disabled steps are excluded from check\n * @param includeOptional If false or not supplied, optional steps are excluded from check\n * @param exclusionIds string[] IDs of steps to exclude from check\n */\nexport function everyStepStatus(\n statusToCheck: CircleStatus,\n steps: Array<FormStep>,\n includeDisabled?: boolean,\n includeOptional?: boolean,\n exclusionIds?: Array<string>\n): boolean;\nexport function everyStepStatus(\n statusToCheck: CircleStatus,\n steps: Array<FormStep>,\n a?: boolean | Array<string>,\n b?: boolean,\n c?: Array<string>\n): boolean {\n if (!steps || !steps.length) {\n return false;\n }\n let exclusionIds = c || [];\n let includeDisabled = false;\n let includeOptional = false;\n // If 'a' is not null, determine if it's the 'includeDisabled' boolean, or the exclusionIds array\n if (a !== null && a !== undefined) {\n if (Array.isArray(a)) {\n exclusionIds = a;\n } else {\n includeDisabled = a;\n includeOptional = b || false;\n }\n }\n return steps\n .filter(\n (s) =>\n // Step ID is not excluded\n !exclusionIds.some((id) => id === s.instanceId) &&\n // Step status is not disabled, unless checking for disabled status\n (includeDisabled ? true : s.status !== 'DISABLED') &&\n // Step is required, unless optional steps should be checked\n (includeOptional ? true : !s.optional)\n )\n .every((s) => s.status === statusToCheck);\n}\n","import { toLetters } from '@mtna/core-ts';\nimport { FormItem, isDataCubeItem, isSection, OutlineStep } from '@mtna/web-form-ts';\n\nimport { FormStep, FormStepGroup, isFormStepGroup } from '../models';\n\n/**\n * Builds up an array of FormSteps or FormStepGroups based on what is found in the provided form items. For most typical\n * forms this will mean that a step is generated for every section that is found in the form. It is assumed that all\n * inputs are held within sections and therefore the sections are the steps that should be monitored for completeness.\n * However, in some circumstances, like very short forms, it may be the case that there are no sections and that all\n * the items are set directly on the form itself. In these circumstances the allSteps parameter can be set to true and\n * a step will be produced for each form item found.\n *\n * @param items the items of the form\n * @param allSteps flag indicating that a form step should be produced for every form item\n */\nexport function generateFormSteps(items: Array<FormItem>, allSteps = false): Array<FormStep | FormStepGroup> {\n // Build up an array of steps based on the form items\n return items.reduce((newArray: Array<FormStep | FormStepGroup>, item: FormItem) => {\n // The number of non-group steps, used to number the top level steps\n const count = newArray.filter((step) => !isFormStepGroup(step)).length;\n if (allSteps) {\n newArray.push(new FormStep(count + 1, item.name || 'No Title', item.instanceId, !item.required));\n } else if (isSection(item)) {\n // If the item is a Section, add a step\n newArray.push(new FormStep(count + 1, item.title.value || 'No Title', item.instanceId, !item.required));\n } else if (isDataCubeItem(item)) {\n // If the item is a DataCubeItem, add a step and add a group step for the sub-sections\n newArray.push(new FormStep(count + 1, item.title.value || '', item.instanceId, !item.required));\n\n const subSectionSteps = item.items\n .filter(isSection)\n .map((item, index) => new FormStep(`${count + 1}${toLetters(index + 1)}`, item.title.value || '', item.instanceId, !item.required));\n newArray.push(new FormStepGroup(subSectionSteps, item.instanceId, false, item.name, count + 1));\n }\n\n return newArray;\n }, []);\n}\n\nexport function generateFormStepsFromOutline(outline: OutlineStep[]): Array<FormStep | FormStepGroup> {\n return outline.reduce((newArray: Array<FormStep | FormStepGroup>, step: OutlineStep) => {\n // The number of non-group steps, used to number the top level steps\n const count = newArray.filter((step) => !isFormStepGroup(step)).length;\n if (step.childSteps && step.childSteps.length > 0) {\n newArray.push(new FormStep(count + 1, step.label, step.instanceId || step.templateId, step.optional));\n const subSectionSteps = step.childSteps.map(\n (item, index) => new FormStep(`${count + 1}${toLetters(index + 1)}`, item.label, item.instanceId || item.templateId, item.optional)\n );\n newArray.push(new FormStepGroup(subSectionSteps, step.instanceId || step.templateId, false, step.label, count + 1));\n } else {\n newArray.push(new FormStep(count + 1, step.label, step.instanceId || step.templateId, step.optional));\n }\n return newArray;\n }, []);\n}\n\n// model from andrew\nexport interface FormStepData extends OutlineStep {\n num: string;\n}\n","import { FORM_ITEM_GROUP_IMPL_ID, SECTION_ID, TEXT_ITEM_ID, TITLE_ITEM_ID } from '@mtna/web-form-ts';\n\nexport function getItemClassSuffix(itemId: string): string {\n // FIXME: surely there is a stronger/better way\n switch (itemId) {\n case FORM_ITEM_GROUP_IMPL_ID:\n return 'group';\n case SECTION_ID:\n return 'section';\n case TEXT_ITEM_ID:\n return 'text';\n case TITLE_ITEM_ID:\n return 'title';\n default:\n return 'item';\n }\n}\n","import { FormControl } from '@angular/forms';\nimport { isObject, isType } from '@mtna/core-ts';\n\nexport function isFormControl(something: unknown): something is FormControl {\n return isObject(something) && isType<FormControl>(something, 'value') && typeof something.value === 'string';\n}\n","import { CircleStatus } from '@mtna/core-angular';\nimport { isType } from '@mtna/core-ts';\nimport { Form, FormItemGroup, ProgressiveForm } from '@mtna/web-form-ts';\n\nimport { FormStep } from '../models';\nimport { findFormItem } from './find-form-item';\n\n/**\n * Update a {@link FormStep}'s `status`.\n * The server side form validation errors will trump the provided `status`.\n *\n * @param instanceId the instanceId of the step to update, otherwise return the original step\n * @param step the step to check\n * @param status the new status to apply to the step\n * @param form the containing form\n * @returns an updated step with the correct status\n */\nexport function updateStepStatus(\n instanceId: string,\n step: FormStep,\n status: CircleStatus,\n form: Form | ProgressiveForm | null | undefined\n): FormStep {\n if (instanceId !== step.instanceId) {\n // These aren't the droids you're looking for.\n // Return unmodified step.\n return step;\n }\n\n // A server validation error will trump the provided status\n if (form?.validationResult?.formItemValidationResults.length) {\n // Get the FormGroup that represents the step\n const group = findFormItem(step.instanceId, form);\n if (isType<FormItemGroup>(group, 'items')) {\n for (const error of form.validationResult.formItemValidationResults) {\n const itemWithError = findFormItem(error.id, group);\n // If the invalid item is within the step group,\n // show an error state\n if (itemWithError) {\n return { ...step, status: 'ERROR' };\n }\n }\n }\n }\n\n // There were no server side validation errors, just update the status\n return { ...step, status };\n}\n","import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\nimport { FormGroup, ValidationErrors } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport { isPresent, isType } from '@mtna/core-ts';\nimport { AnnotatableNumberMap } from '@mtna/pojo-social-angular';\nimport { ConditionalItem, FormItem, FormItemImpl, isConditionalItem, isOptionGroupItemImpl, isOptionItemImpl } from '@mtna/web-form-ts';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { MtnaWfFormItemComponent } from '../components/form-item/form-item.component';\n\n/** Registry of custom error messages for a specific form item. A custom error can also\n * be a function returning a string. The FormItem object is passed to any ValidationErrors\n * that are functions, so item specific information can be provided.\n * @example {\n * max: `This field's value must be less.`,\n * min: (item: FormItemImpl<any>) => instanceofWholeNumberItem(item)\n * ? `This field's value must be greater than ${item.minValue}.`\n * : `This field's value must be greater.`\n * }\n */\n// tslint:disable-next-line:interface-over-type-literal\nexport type CustomErrors = {\n [id: string]: ValidationErrors;\n};\n\n/** List of default error messages to display */\nexport const DEFAULT_ERROR_MESSAGES: ValidationErrors = {\n email: $localize`This field must include a valid email format.`,\n max: (item?: FormItemImpl<number> & { maxValue: number; minValue: number }) =>\n !isPresent(item) || !isPresent(item?.maxValue)\n ? $localize`This field's value must be less.`\n : isPresent(item?.minValue)\n ? $localize`Min value: ${item.minValue} - `\n : '' + $localize`Max value: ${item.maxValue}`,\n maxlength: $localize`This field has exceeded the allowed maximum.`,\n maxSelected: null,\n min: (item?: FormItemImpl<number> & { maxValue: number; minValue: number }) =>\n !isPresent(item) || !isPresent(item?.minValue)\n ? $localize`This field's value must be greater.`\n : $localize`Min Value: ${item.minValue}` + isPresent(item?.maxValue)\n ? $localize` - Max Value: ${item.maxValue}`\n : '',\n minlength: $localize`This field has not met the required minimum.`,\n minSelected: null,\n nonDigit: $localize`This field's value must be numeric.`,\n pattern: $localize`This field's input does not meet the accepted pattern.`,\n positive: $localize`This field's value cannot be negative.`,\n required: $localize`This field is required.`,\n requiredTrue: `$localizeThis field's value must be 'true'.`,\n wholeNumber: $localize`This field cannot contain a decimal.`,\n matDatepickerParse: $localize`This field's value is not an accepted format.`,\n};\n\nexport const WEB_FORM_CUSTOM_ERRORS = new InjectionToken<CustomErrors>('mtnaWebFormCustomFormErrors');\n\n@Injectable({ providedIn: 'root' })\nexport class MtnaWfUIService {\n /** Map of annotation counts for each annotatable item */\n private annotations: { [id: string]: BehaviorSubject<number | null> } = {};\n /** Map of components in the MtnaForm */\n private components: { [instanceId: string]: MtnaWfFormItemComponent } = {};\n /** Map of item.disabled values that have changed */\n private disabledState: { [instanceId: string]: boolean } = {};\n /** Map of toggler ID's for components that have multiple togglers */\n private multipleEnablers: { [instanceId: string]: { [togglerId: string]: string } | null } = {};\n private errors: CustomErrors;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n constructor(private dialog: MatDialog, @Optional() @Inject(WEB_FORM_CUSTOM_ERRORS) errors?: any) {\n // Workaround for: Metadata collected contains an error that will be reported at runtime: Could not resolve type CustomErrors.\n // see https://stackoverflow.com/questions/49513359/could-not-resolve-type-document-in-angular5/53715642#53715642\n this.errors = errors as CustomErrors;\n }\n\n getDisabledStates() {\n return { ...this.disabledState };\n }\n\n /**\n * Returns an error message matching the error id\n * @param errorId Id of the error, to find the associated error message\n * @param item FormItem to pass to ValidationErrors that are functions. For instance,\n * this is useful for 'min' & 'max' value limits to display more helpful messages\n */\n getError(errorId: string, item?: FormItemImpl<unknown>): string {\n // default when no custom message exists\n let error = DEFAULT_ERROR_MESSAGES[errorId];\n if (!!this.errors && !!item) {\n // check for instance specific, via instanceId\n if (isPresent(this.errors[item.instanceId]) && isPresent(this.errors[item.instanceId][errorId])) {\n error = this.errors[item.instanceId][errorId];\n // check for item specific, via itemId\n } else if (isPresent(this.errors[item.itemId]) && isPresent(this.errors[item.itemId][errorId])) {\n error = this.errors[item.itemId][errorId];\n }\n }\n return typeof error === 'function' ? error(item) : error;\n }\n\n /**\n * Get a registered component by intance id.\n * @param id the instanceId\n * @returns the {@link FormItemComponent} that represents that ID or undefined if not registered.\n */\n getItem(id: string): MtnaWfFormItemComponent | undefined {\n return this.components[id];\n }\n\n /**\n * Sets the initial map of annotation counts, and/or pushes the new count onto the component observable stream\n * @param map AnnotatableNumberMap of counts mapped to their annotatableIds\n */\n registerAnnotations(map: AnnotatableNumberMap) {\n for (const id in map) {\n if (Object.prototype.hasOwnProperty.call(map, id)) {\n if (!this.annotations[id]) {\n this.annotations[id] = new BehaviorSubject<number | null>(map[id]);\n } else {\n this.annotations[id].next(map[id]);\n }\n }\n }\n }\n\n /**\n * Maps a component to its items instanceId.\n * @param component component calling this method, i.e. 'this'\n */\n registerSelf(component: MtnaWfFormItemComponent) {\n this.components[component.item.instanceId] = component;\n if (!!component.item.annotatableId && component.item.annotationEnabled) {\n if (!this.annotations[component.item.annotatableId]) {\n this.annotations[component.item.annotatableId] = new BehaviorSubject<number | null>(null);\n }\n component.annotations$ = this.annotations[component.item.annotatableId].asObservable();\n }\n }\n\n /**\n * Toggles a FormItem's visiblity and enable/disable state\n *\n * @param enabledItemIds array of component IDs for enabled items.\n * @param disabledItemIds array of component IDs for disabled items.\n * @param enabled Whether the enabledItemIds are enabled.\n * @param callerId instanceId of the item invoking this function\n * @param reset Whether to reset the multiple enabler map of the toggled item\n */\n toggleFormItems(enabledItemIds: Array<string>, disabledItemIds: Array<string>, enabled: boolean, callerId: string, reset = false) {\n if ((!enabledItemIds || !enabledItemIds.length) && (!disabledItemIds || !disabledItemIds.length)) {\n return;\n }\n const allIds = [enabledItemIds, disabledItemIds];\n for (let i = 0; i < allIds.length; i++) {\n const itemIds = allIds[i];\n const isEnabled = i === 0 ? enabled : !enabled;\n for (const id of itemIds) {\n const component = this.components[id];\n // If component is registered, toggle it\n if (component) {\n const item = component.item;\n const hasMultipleEnablers = isConditionalItem(item) && item.condition ? item.condition.itemIds.length > 1 : false;\n // If item has more than 1 enabler, handle multiple enablers\n if (hasMultipleEnablers) {\n if (reset) {\n this.multipleEnablers[item.instanceId] = null;\n }\n // If a map has not been registered, then build up a map to register\n // Should only happen the first time an item is toggled.\n if (!this.multipleEnablers[item.instanceId] && isConditionalItem(item)) {\n this.multipleEnablers[item.instanceId] = this._registerCurrentEnablers(item);\n }\n // handle Multiple Enablers\n this._handleMultipleEnablers(component, isEnabled, callerId);\n } else {\n // Not multiple enablers\n this._toggleDisabledStateAndControl(component, isEnabled);\n }\n } else {\n console.error('[toggleFormItems] component has not been registerd', id, enabled, callerId);\n }\n }\n }\n }\n\n /**\n * Generates map of all IDs currently influencing an item.\n * @param toggledItem item being toggled\n */\n private _registerCurrentEnablers(toggledItem: ConditionalItem): { [callerId: string]: string } {\n const enablers: { [callerId: string]: string } = {};\n const allIds = toggledItem.condition?.itemIds || [];\n\n for (const id of allIds) {\n const component = this.components[id];\n if (component) {\n if (this._isCurrentlyToggling(component, toggledItem.instanceId)) {\n enablers[component.item.instanceId] = component.item.instanceId;\n }\n } else {\n console.error('[registerCurrentEnablers] component has not been registered.', id);\n }\n }\n\n return enablers;\n }\n\n /**\n * Resets the map of components. This should be called by the form when\n * it is destroyed.\n */\n resetComponentMap() {\n this.annotations = {};\n this.components = {};\n this.disabledState = {};\n this.multipleEnablers = {};\n }\n\n /**\n * Determines if an influencer is currently toggling the specified toggledItemId.\n * @param influencer Item to check whether it's currently influencing the toggledItemId\n * @param toggledId InstanceId of the item being toggled\n * @returns Whether the influencer is currently toggling the toggled item\n */\n private _isCurrentlyToggling(influencer: MtnaWfFormItemComponent, toggledId: string): boolean {\n const item = influencer.item;\n // Item has single option property, so check if selected, or item.value is 'true'\n if (isOptionItemImpl(item)) {\n return item.option.selected || !!item.value || !!influencer.control?.value;\n } else if (isOptionGroupItemImpl(item)) {\n const value = influencer.control?.value ?? item.value;\n if (Array.isArray(value)) {\n // find the index of options that contain the 'toggledId' in their enabledItems\n // & check if at least 1 is selected, or its 'true' in the value\n const optionIndexes = item.options.map((o, i) => (o.enabledItems.some((id) => id === toggledId) ? i : null)).filter(isPresent);\n return optionIndexes.some((i) => !!value[i]);\n } else if (typeof value === 'string' && value.length) {\n // if the value is a single value, get the enabling option ids and check for the value in them\n return item.options.some((o) => o.option.id === value && o.enabledItems.some((id) => id === toggledId));\n }\n }\n return false;\n }\n\n /**\n * Handles component visibility for a FormItem with multiple enablers in its condition\n * @param component FormItemComponent being toggled\n * @param enabled Whether the component is being enabled\n * @param callerId ID of the caller toggling this component\n */\n private _handleMultipleEnablers(component: MtnaWfFormItemComponent, enabled: boolean, callerId: string) {\n const item = component.item;\n const enablers = { ...this.multipleEnablers[item.instanceId] };\n let isEnabled: boolean;\n if (enabled) {\n enablers[callerId] = callerId;\n isEnabled =\n isConditionalItem(item) &&\n !!item.condition &&\n (!item.condition.allRequired || item.condition.itemIds.every((id) => !!enablers[id]));\n } else {\n delete enablers[callerId];\n isEnabled = !((isConditionalItem(item) && item.condition?.allRequired) || !Object.keys(enablers).length);\n }\n // If enabled === disabled, then the state has changed\n if (this._isDisabled(item) === isEnabled) {\n this._toggleDisabledStateAndControl(component, isEnabled);\n }\n // set the new enabler map\n this.multipleEnablers[item.instanceId] = enablers;\n }\n\n /**\n * Enables or disables the control on a FormItemComponent\n * @param component FormItemComponent to enable or disable its control\n * @param enabled whether to enable the control\n */\n private _toggleControlState(component: MtnaWfFormItemComponent, enabled: boolean) {\n if (enabled && !component.control?.enabled) {\n // Enable the control if it isn't already\n if (component.control instanceof FormGroup) {\n this._enableIndividualControls(component);\n } else {\n component.control?.enable();\n }\n } else if (!enabled && component.control?.enabled) {\n // Disable the control if it isn't already\n component.control.disable();\n }\n }\n\n /**\n * Toggles both the component visiblity and the control's enable/disable status\n * @param component FormItemComponent to show or hide and enable or disable\n * @param enabled whether to show the component and whether to enable the component\n */\n private _toggleDisabledStateAndControl(component: MtnaWfFormItemComponent, enabled: boolean) {\n this.disabledState[component.item.instanceId] = !enabled;\n this._toggleControlState(component, enabled);\n if (isConditionalItem(component.item) && component.item.hideOnDisable) {\n component.visible = enabled;\n }\n }\n\n /**\n * Enables controls individually using recursion.\n * FormGroups should only exist for items with 'items' arrays, or\n * if the component is a BaseParentItemControl\n * @param comp FormItemComponent\n */\n private _enableIndividualControls(comp: MtnaWfFormItemComponent) {\n const group = comp.control as FormGroup;\n\n if (isOptionItemImpl(comp.item) || isOptionGroupItemImpl(comp.item)) {\n const map = comp.item.optionItemMap;\n const self = group.get(comp.item.instanceId);\n self?.enable();\n for (const optionId in map) {\n if (Object.prototype.hasOwnProperty.call(map, optionId)) {\n const childComp = this.components[map[optionId].instanceId];\n if (!this._isDisabled(childComp.item)) {\n this._toggleControlState(childComp, true);\n }\n }\n }\n } else if (isType<{ items: FormItemImpl<unknown>[] }>(comp.item, 'items') && comp.item.items.length) {\n // Item must have 'items' array\n for (const item of comp.item.items) {\n const childComp = this.components[item.instanceId];\n if (!this._isDisabled(item)) {\n this._toggleControlState(childComp, true);\n }\n }\n }\n group.updateValueAndValidity();\n }\n\n /**\n * Determines if a component is disabled. Prioritizes the disabledState value,\n * if it exists, otherwise returns the item's previous disabled value\n * @param item item to check for its disabled state\n */\n private _isDisabled(item: ConditionalItem | FormItem): boolean {\n const existsInDisabledStatMap = isPresent(this.disabledState[item.instanceId]);\n if (!existsInDisabledStatMap) {\n return isConditionalItem(item) ? item.disabled : false;\n } else {\n return this.disabledState[item.instanceId];\n }\n }\n}\n","import { ChangeDetectorRef, Component, Input, TemplateRef } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { CanDestroyNotify, mixinDestroyNotifier } from '@mtna/core-angular';\nimport { AnnotationIndicatorStatus, IndicatorStatusRepeater } from '@mtna/pojo-social-angular';\nimport { FormItem } from '@mtna/web-form-ts';\n\nconst _BaseFormItemComponent = mixinDestroyNotifier(class {});\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseFormItem<I extends FormItem>\n extends _BaseFormItemComponent\n implements IndicatorStatusRepeater, CanDestroyNotify\n{\n @Input() color: ThemePalette;\n\n @Input()\n get header(): TemplateRef<unknown> | null {\n return this._header;\n }\n set header(value: TemplateRef<unknown> | null) {\n this._header = value;\n }\n private _header: TemplateRef<unknown> | null = null;\n\n @Input()\n get indicatorStatus(): AnnotationIndicatorStatus {\n return this._indicatorStatus;\n }\n set indicatorStatus(value: AnnotationIndicatorStatus) {\n this._indicatorStatus = value;\n this.cdr.markForCheck();\n }\n protected _indicatorStatus: AnnotationIndicatorStatus = 'INACTIVE';\n\n @Input()\n get item(): I {\n return this._item;\n }\n set item(value: I) {\n this._item = value;\n }\n protected _item!: I;\n\n get hasItemHeader() {\n return !!this.item && (!!this.item.questionText || !!this.item.descriptiveText);\n }\n\n constructor(protected cdr: ChangeDetectorRef) {\n super();\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { FormItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItem } from './base-form-item.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseFormItemControl<\n I extends FormItem,\n C extends AbstractControl = AbstractControl\n> extends MtnaWfBaseFormItem<I> {\n static ngAcceptInputType_readonly: BooleanInput;\n\n @Input()\n get control(): C | null | undefined {\n return this._control;\n }\n set control(control: C | null | undefined) {\n this._control = control;\n }\n protected _control: C | null | undefined;\n\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n this.cdr.markForCheck();\n }\n protected _readonly = false;\n\n constructor(cdr: ChangeDetectorRef) {\n super(cdr);\n }\n\n protected setValue(item: unknown) {\n this.control?.markAsDirty();\n this.control?.setValue(item);\n }\n}\n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { FormItem, FormItemGroup } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItemControl } from './base-form-item-control.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseGroupItem<I extends FormItemGroup> extends MtnaWfBaseFormItemControl<I, FormGroup> {\n @Input()\n get parentIds(): Array<string> {\n return this._parentIds;\n }\n set parentIds(value: Array<string>) {\n this._parentIds = value;\n }\n private _parentIds = new Array<string>();\n\n _trackByInstanceId(index: number, item: FormItem) {\n return item.instanceId;\n }\n\n constructor(cdr: ChangeDetectorRef) {\n super(cdr);\n }\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport { Component, HostBinding, Input } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { FormOptionSelector, Option, ValueItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItemControl } from './base-form-item-control.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseValueItem<\n I extends ValueItem<unknown>,\n C extends AbstractControl = AbstractControl\n> extends MtnaWfBaseFormItemControl<I, C> {\n static ngAcceptInputType_inList: BooleanInput;\n\n @Input()\n get inList(): boolean {\n return this._inList;\n }\n set inList(value: boolean) {\n this._inList = value;\n }\n private _inList = false;\n\n @HostBinding('class.mtna-wf-control-item') formControlClass = true;\n\n /** Override read-only getter in order to add the host binding. Shouldn't change any funtionality. */\n @HostBinding('class.read-only')\n get isReadOnly(): boolean {\n return this._readonly;\n }\n\n _trackByOptionId(index: number, option: FormOptionSelector<Option<unknown>>) {\n return option.option.id;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { ValueItem } from '@mtna/web-form-ts';\n\nimport { ToggleFormItemsData } from '../../models/toggle-form-item-data.model';\nimport { MtnaWfBaseValueItem } from './base-value-item.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseParentValueItem<I extends ValueItem<unknown>, C extends AbstractControl> extends MtnaWfBaseValueItem<I, C> {\n @Input()\n get parentIds(): Array<string> {\n return this._parentIds;\n }\n set parentIds(value: Array<string>) {\n this._parentIds = value;\n }\n private _parentIds = new Array<string>();\n\n override get control(): C | null | undefined {\n return super.control;\n }\n override set control(control: C | null | undefined) {\n // Checks for a wrapping form group around this item.\n if (control instanceof FormGroup && control.get(this.item.instanceId)) {\n super.control = control.get(this.item.instanceId) as C;\n this.controlWrapper = control;\n } else {\n super.control = control;\n }\n }\n\n @Output() toggleFormItems = new EventEmitter<ToggleFormItemsData>();\n\n controlWrapper: FormGroup | undefined;\n}\n","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Section } from '@mtna/web-form-ts';\n\nimport { FormStep } from '../../models/form-stepper/form-step.model';\nimport { MtnaWfBaseGroupItem } from './base-group-item.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseSectionItem<S extends Section> extends MtnaWfBaseGroupItem<S> {\n @Input()\n get step(): FormStep | null | undefined {\n return this._step;\n }\n set step(value: FormStep | null | undefined) {\n this._step = value;\n console.warn({ value });\n }\n private _step: FormStep | null | undefined;\n\n @Output() focused = new EventEmitter<FormStep>();\n\n constructor(cdr: ChangeDetectorRef) {\n super(cdr);\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatRadioChange } from '@angular/material/radio';\nimport { MatSelectChange } from '@angular/material/select';\nimport { isPresent } from '@mtna/core-ts';\nimport { DropdownItem, FormOptionSelector, MultipleChoiceItem, StringOption } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseParentValueItem } from './base-parent-value-item.component';\n\n@Component({\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport abstract class MtnaWfBaseSingleSelectionParentValueItem<I extends DropdownItem | MultipleChoiceItem>\n extends MtnaWfBaseParentValueItem<I, FormControl>\n implements OnInit\n{\n protected selectedOption: FormOptionSelector<StringOption> | undefined;\n\n ngOnInit(): void {\n if (isPresent(this.control?.value)) {\n this.selectedOption = this.item.options.find((o) => this.control?.value === o.option.id);\n }\n }\n\n /**\n * Toggles the 'selected' value of the previous & newly selected options,\n * then calls toggleFormItems to change their enabled/disabled items\n * @param change MatRadioChange from the radio group\n */\n selectionChange(change: MatRadioChange | MatSelectChange) {\n // event fires when an option's nested item, e.g. FileUploadItem, changes value.\n // This event is not a MatRadioChange, so we need to ignore it.\n if (change instanceof MatRadioChange || change instanceof MatSelectChange) {\n // Newly selected option\n const option = this.item.options.find((o) => o.option.id === change.value);\n if (!!this.selectedOption && this.selectedOption.option.id !== change.value) {\n // New option does not match the previous option\n // Previous option's enabled/disabled items need toggling\n // toggle visibility and enable/disable, should be rendered already\n this.toggleFormItems.emit({\n enabledItemIds: this.selectedOption.enabledItems,\n disabledItemIds: this.selectedOption.disabledItems,\n enabled: false,\n callerId: this.item.instanceId,\n });\n }\n // toggle visibility and enable/disable, should be rendered already\n if (option) {\n this.toggleFormItems.emit({\n enabledItemIds: option.enabledItems,\n disabledItemIds: option.disabledItems,\n enabled: true,\n callerId: this.item.instanceId,\n });\n }\n // Set the selected option as the previous\n this.selectedOption = option;\n } else {\n console.warn('[BaseSingleSelectionParent] selectionChange - not a MatRadioChange | MatSelectChange', change);\n }\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n Component,\n ComponentFactoryResolver,\n ComponentRef,\n EventEmitter,\n Inject,\n Injector,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { INJECTION_SERVICE, InjectionService, MtnaComponentInjector } from '@mtna/core-angular';\nimport { AnnotationIndicatorStatus } from '@mtna/pojo-social-angular';\nimport { FormItem } from '@mtna/web-form-ts';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { FormStep, ToggleFormItemsData } from '../../models';\nimport { MtnaWfBaseFormItemControl } from '../base-items/base-form-item-control.component';\nimport { MtnaWfBaseFormItem } from '../base-items/base-form-item.component';\nimport { MtnaWfBaseGroupItem } from '../base-items/base-group-item.component';\nimport { MtnaWfBaseParentValueItem } from '../base-items/base-parent-value-item.component';\nimport { MtnaWfBaseSectionItem } from '../base-items/base-section-item.component';\nimport { MtnaWfBaseSingleSelectionParentValueItem } from '../base-items/base-single-selection-parent-value-item.component';\nimport { MtnaWfBaseValueItem } from '../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-item-injector',\n template: ``,\n})\n/* eslint-disable-next-line @angular-eslint/component-class-suffix */\nexport class MtnaWfItemInjector extends MtnaComponentInjector implements OnInit {\n static ngAcceptInputType_inList: BooleanInput;\n static ngAcceptInputType_readonly: BooleanInput;\n\n @Input() color: ThemePalette;\n\n @Input()\n get control(): AbstractControl | null | undefined {\n return this._control;\n }\n set control(control: AbstractControl | null | undefined) {\n this._control = control;\n }\n protected _control: AbstractControl | null | undefined;\n\n @Input()\n get header(): TemplateRef<unknown> | null {\n return this._header;\n }\n set header(value: TemplateRef<unknown> | null) {\n this._header = value;\n }\n private _header: TemplateRef<unknown> | null = null;\n\n @Input()\n get indicatorStatus(): AnnotationIndicatorStatus {\n return this._indicatorStatus.value;\n }\n set indicatorStatus(value: AnnotationIndicatorStatus) {\n this._indicatorStatus.next(value);\n }\n protected _indicatorStatus = new BehaviorSubject<AnnotationIndicatorStatus>('INACTIVE');\n\n @Input()\n get inList(): boolean {\n return this._inList;\n }\n set inList(value: boolean) {\n this._inList = coerceBooleanProperty(value);\n }\n private _inList = false;\n\n @Input()\n get item(): FormItem {\n return this._item;\n }\n set item(value: FormItem) {\n this._item = value;\n }\n protected _item!: FormItem;\n\n @Input()\n get parentIds(): Array<string> {\n return this._parentIds;\n }\n set parentIds(value: Array<string>) {\n this._parentIds = value;\n }\n private _parentIds = new Array<string>();\n\n @Input()\n get readonly(): boolean {\n return this._readonly.value;\n }\n set readonly(value: boolean) {\n this._readonly.next(coerceBooleanProperty(value));\n }\n protected _readonly = new BehaviorSubject<boolean>(false);\n\n @Input()\n get step(): FormStep | null | undefined {\n return this._step;\n }\n set step(value: FormStep | null | undefined) {\n this._step = value;\n }\n private _step: FormStep | null | undefined;\n\n @Output() focusedSection = new EventEmitter<FormStep>();\n\n @Output() toggleFormItems = new EventEmitter<ToggleFormItemsData>();\n\n private wfItemComponent: MtnaWfBaseFormItem<any> | undefined;\n\n constructor(\n protected injector: Injector,\n protected cfr: ComponentFactoryResolver,\n protected vcr: ViewContainerRef,\n @Inject(INJECTION_SERVICE) protected injectionService: InjectionService\n ) {\n super(injector, cfr, vcr, injectionService);\n }\n\n ngOnInit(): void {\n if (this.item) {\n super.ngOnInit();\n }\n }\n\n protected configureComponent(componentRef: ComponentRef<any>): void {\n this.wfItemComponent = componentRef.instance as MtnaWfBaseFormItem<any>;\n this.wfItemComponent.header = this.header;\n this._indicatorStatus.subscribe((status) => {\n if (this.wfItemComponent) {\n this.wfItemComponent.indicatorStatus = status;\n }\n });\n this.wfItemComponent.item = this.item;\n this.wfItemComponent.color = this.color;\n\n if (this.wfItemComponent instanceof MtnaWfBaseFormItemControl) {\n this.wfItemComponent.control = this.control;\n this.wfItemComponent.readonly = this.readonly;\n\n if (this.wfItemComponent instanceof MtnaWfBaseValueItem) {\n this.wfItemComponent.inList = this.inList;\n\n if (this.wfItemComponent instanceof MtnaWfBaseParentValueItem) {\n this.wfItemComponent.parentIds = this.parentIds;\n // added output to remove ui service from base components\n this.wfItemComponent.toggleFormItems.subscribe((data) => {\n this.toggleFormItems.emit(data);\n });\n\n if (this.wfItemComponent instanceof MtnaWfBaseSingleSelectionParentValueItem) {\n // empty for now unless specific configuration params are needed; placeholder\n }\n }\n }\n }\n\n if (this.wfItemComponent instanceof MtnaWfBaseGroupItem) {\n this.wfItemComponent.parentIds = this.parentIds;\n\n if (this.wfItemComponent instanceof MtnaWfBaseSectionItem) {\n this.wfItemComponent.step = this.step;\n this.wfItemComponent.focused.subscribe((step) => {\n this.focusedSection.emit(step);\n });\n }\n }\n }\n\n protected getInjectedComponentKey(): string {\n if (this.item) {\n return this.item.itemId;\n } else {\n console.error('MtnaWfItemInjector - getInjectedComponentKey - item is undefined');\n return '';\n }\n }\n}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Pipe({\n name: 'mtnaWfSanitizeHtml',\n})\nexport class MtnaWfSanitizeHtmlPipe implements PipeTransform {\n constructor(private _sanitizer: DomSanitizer) {}\n\n transform(v: string | null | undefined): SafeHtml {\n if (!v) {\n return '';\n }\n return this._sanitizer.bypassSecurityTrustHtml(v);\n }\n}\n\n@NgModule({\n declarations: [MtnaWfSanitizeHtmlPipe],\n exports: [MtnaWfSanitizeHtmlPipe],\n})\nexport class MtnaWfSanitizeHtmlPipeModule {}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n/**\n * Common header html for a form item.\n *\n * @author Will Davis <will.davis@mtna.us>\n */\n@Component({\n selector: 'mtna-wf-item-header',\n templateUrl: './item-header.component.html',\n styleUrls: ['./item-header.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfItemHeaderComponent {\n static ngAcceptInputType_disabled: BooleanInput;\n static ngAcceptInputType_hideRequiredMarker: BooleanInput;\n static ngAcceptInputType_invalid: BooleanInput;\n\n @HostBinding('class.mtna-wf-item-header') itemHeaderClass = true;\n /** Optional descriptive text/HTML */\n @Input() descriptiveText: string | null | undefined;\n /** Whether the form item is disabled */\n @Input()\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n }\n private _disabled = false;\n\n /** Whether the required marker (asterix) is hidden. Defaults to false. */\n @Input()\n get hideRequiredMarker(): boolean {\n return this._hideRequiredMarker;\n }\n set hideRequiredMarker(hideRequiredMarker: boolean) {\n this._hideRequiredMarker = coerceBooleanProperty(hideRequiredMarker);\n }\n private _hideRequiredMarker = false;\n\n /** Whether the form item is invalid */\n @Input()\n get invalid(): boolean {\n return this._invalid;\n }\n set invalid(invalid: boolean) {\n this._invalid = coerceBooleanProperty(invalid);\n }\n private _invalid = false;\n /** Optional question text/HTML */\n @Input() questionText: string | null | undefined;\n /** Whether the form item is required */\n @Input() required = false;\n\n /** HTML to insert for required items */\n _requiredHtml = `<span aria-hidden=\"true\"> *</span>`;\n}\n","<h3\n *ngIf=\"!!questionText\"\n class=\"mtna-wf-item-question\"\n [class.invalid]=\"invalid\"\n [innerHTML]=\"questionText + (required && !disabled && !hideRequiredMarker ? _requiredHtml : '') | mtnaWfSanitizeHtml\"\n></h3>\n<p *ngIf=\"!!descriptiveText\" class=\"mtna-wf-item-description\" [innerHTML]=\"descriptiveText | mtnaWfSanitizeHtml\"></p>\n","import { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { ThemePalette } from '@angular/material/core';\nimport { AnnotationIndicatorStatus } from '@mtna/pojo-social-angular';\nimport { FormItem, isConditionalItem } from '@mtna/web-form-ts';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { FormStep, ToggleFormItemsData } from '../../models';\nimport { MtnaWfUIService } from '../../services/ui.service';\nimport { getItemClassSuffix, MTNA_WF_EXPAND_COLLAPSE } from '../../utilities';\n\n/**\n * Component that wraps an MtnaForm item.\n *\n * ChangeDetectionStrategy.OnPush was not working as of 9/19/2018.\n * Dynamic components in the ValueItemComponent were not being initialized (ngOnInit was never called).\n *\n * @export\n */\n@Component({\n selector: 'mtna-wf-item',\n templateUrl: './form-item.component.html',\n styleUrls: ['./form-item.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n animations: [MTNA_WF_EXPAND_COLLAPSE],\n})\nexport class MtnaWfFormItemComponent implements OnInit {\n @HostBinding('@mtnaWfExpandCollapse') visible = true;\n\n @HostBinding('attr.id')\n get elementId(): string {\n return this.item ? this.item.instanceId : '';\n }\n\n @Input() color: ThemePalette;\n\n @Input()\n get control(): AbstractControl | null | undefined {\n return this._control;\n }\n set control(control: AbstractControl | null | undefined) {\n this._control = control;\n }\n protected _control: AbstractControl | null | undefined;\n\n @Input()\n get header(): TemplateRef<unknown> | null {\n return this._header;\n }\n set header(value: TemplateRef<unknown> | null) {\n this._header = value;\n }\n private _header: TemplateRef<unknown> | null = null;\n\n @Input()\n get inList(): boolean {\n return this._inList;\n }\n set inList(value: boolean) {\n this._inList = coerceBooleanProperty(value);\n }\n private _inList = false;\n\n @Input()\n get item(): FormItem {\n return this._item;\n }\n set item(value: FormItem) {\n this._item = value;\n }\n protected _item!: FormItem;\n\n @Input()\n get parentIds(): Array<string> {\n return this._parentIds;\n }\n set parentIds(value: Array<string>) {\n this._parentIds = value;\n }\n private _parentIds = new Array<string>();\n\n @Input()\n get readonly(): boolean {\n return this._readonly;\n }\n set readonly(value: boolean) {\n this._readonly = coerceBooleanProperty(value);\n }\n protected _readonly = false;\n\n @Input()\n get step(): FormStep | null | undefined {\n return this._step;\n }\n set step(value: FormStep | null | undefined) {\n this._step = value;\n }\n private _step: FormStep | null | undefined;\n\n @Output() focusedSection = new EventEmitter<FormStep>();\n\n annotations$?: Observable<number | null>;\n indicatorStatus$ = new BehaviorSubject<AnnotationIndicatorStatus>('INACTIVE');\n\n constructor(private _elementRef: ElementRef, private uiService: MtnaWfUIService) {}\n\n ngOnInit() {\n if (isConditionalItem(this.item)) {\n this.visible = !this.item.hideOnDisable || !this.item.disabled;\n }\n this.uiService.registerSelf(this);\n\n this._elementRef.nativeElement.classList.add(`mtna-wf-${getItemClassSuffix(this.item.itemId)}`);\n }\n\n toggleFormItems(data: ToggleFormItemsData) {\n this.uiService.toggleFormItems(data.enabledItemIds, data.disabledItemIds, data.enabled, data.callerId, data.reset);\n }\n\n updateIndicatorStatus(status: AnnotationIndicatorStatus) {\n this.indicatorStatus$.next(status);\n }\n}\n","<mtna-annotations-indicator\n *ngIf=\"item.annotationEnabled\"\n [annotatableId]=\"item.annotatableId\"\n color=\"primary\"\n [count]=\"annotations$ | async\"\n (status)=\"updateIndicatorStatus($event)\"\n></mtna-annotations-indicator>\n\n<mtna-wf-item-injector\n [color]=\"color\"\n [control]=\"control\"\n [header]=\"header\"\n [indicatorStatus]=\"indicatorStatus$.value\"\n [inList]=\"inList\"\n [item]=\"item\"\n [parentIds]=\"parentIds\"\n [readonly]=\"readonly\"\n [step]=\"step\"\n (focusedSection)=\"focusedSection.emit($event)\"\n (toggleFormItems)=\"toggleFormItems($event)\"\n></mtna-wf-item-injector>\n\n<ng-template #header let-hideRequiredMarker=\"hideRequiredMarker\">\n <mtna-wf-item-header\n *ngIf=\"!!item.questionText || !!item.descriptiveText\"\n [descriptiveText]=\"item.descriptiveText\"\n [disabled]=\"control?.disabled\"\n [hideRequiredMarker]=\"hideRequiredMarker\"\n [invalid]=\"control?.invalid && (control?.dirty || control?.touched)\"\n [questionText]=\"item.questionText\"\n [required]=\"item.required\"\n ></mtna-wf-item-header>\n</ng-template>\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { MtnaWfFormItemDialogData } from '../../models/form-item-dialog-data.model';\n\n/**\n * A dialog that renders a form item that represents something the user needs to acknowledge.\n */\n@Component({\n selector: 'mtna-wf-acknowledge-dialog',\n templateUrl: './acknowledge-dialog.component.html',\n})\nexport class MtnaWfAcknowledgeDialogComponent {\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: MtnaWfFormItemDialogData,\n public dialogRef: MatDialogRef<MtnaWfAcknowledgeDialogComponent, boolean>\n ) {}\n}\n","<h2 *ngIf=\"data.title as title\" mat-dialog-title>{{ title }}</h2>\n<mat-dialog-content>\n <mtna-wf-item *ngFor=\"let item of data.formItems\" [item]=\"item\" [readonly]=\"true\"></mtna-wf-item>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button [mat-dialog-close]=\"false\" mat-button i18n>CANCEL</button>\n <button [mat-dialog-close]=\"true\" color=\"accent\" mat-raised-button i18n>ACKNOWLEDGE</button>\n</mat-dialog-actions>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MtnaWfItemInjector } from './form-item-injector.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [MtnaWfItemInjector],\n exports: [MtnaWfItemInjector],\n})\nexport class MtnaWfItemInjectorModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\nimport { FormStep } from '../models';\n\n@Pipe({\n name: 'childStepActive',\n})\nexport class ChildStepActivePipe implements PipeTransform {\n transform(steps: FormStep[]): boolean {\n return steps.some((step) => step.active);\n }\n}\n\n@NgModule({\n declarations: [ChildStepActivePipe],\n exports: [ChildStepActivePipe],\n})\nexport class ChildStepActivePipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mtnaWfGetObjectType',\n})\nexport class MtnaWfGetObjectTypePipe implements PipeTransform {\n transform(id: string): string {\n const newId = id.toLowerCase().split('.');\n return newId[newId.length - 1];\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetObjectTypePipe],\n exports: [MtnaWfGetObjectTypePipe],\n})\nexport class MtnaWfGetObjectTypePipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { DateItem, ValueItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfGetObjectTypePipe, MtnaWfGetObjectTypePipeModule } from './get-object-type.pipe';\n\n@Pipe({\n name: 'mtnaWfCoerceDateItem',\n})\nexport class MtnaWfCoerceDateItemPipe implements PipeTransform {\n constructor(private objectTypePipe: MtnaWfGetObjectTypePipe) {}\n transform(item: ValueItem<unknown> | undefined | null): DateItem | null {\n if (!!item && this.objectTypePipe.transform(item.itemId) === 'dateitem') {\n return item as DateItem;\n }\n return null;\n }\n}\n\n@NgModule({\n imports: [MtnaWfGetObjectTypePipeModule],\n declarations: [MtnaWfCoerceDateItemPipe],\n exports: [MtnaWfCoerceDateItemPipe],\n})\nexport class MtnaWfCoerceDateItemPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, AsyncValidatorFn, FormControl, ValidatorFn } from '@angular/forms';\n\n@Pipe({\n name: 'mtnaWfCoerceFormControl',\n})\nexport class MtnaWfCoerceFormControlPipe implements PipeTransform {\n transform(control: AbstractControl | null | undefined): FormControl | null {\n if (control) {\n const value = control.value;\n const validators: ValidatorFn | ValidatorFn[] | null = control.validator;\n const asyncValidators: AsyncValidatorFn | AsyncValidatorFn[] | null = control.asyncValidator;\n\n const newFormControl = new FormControl(value, validators, asyncValidators);\n return newFormControl;\n }\n\n return null;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfCoerceFormControlPipe],\n exports: [MtnaWfCoerceFormControlPipe],\n})\nexport class MtnaWfCoerceFormControlPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\n\nimport { isFormGroup } from '../utilities/is-form-group';\n\n/**\n * Asserts whether the given control is the narrower FormGroup type. If so, coerces the FormGroup type.\n * Otherwise, returns null.\n *\n * @example\n * <form [formGroup]=\"group | mtnaWfCoerceFormGroup\"></form>\n *\n * <form *ngIf=\"controlContainer.control | mtnaWfCoerceFormGroup as group\" [formGroup]=\"group\"></form>\n *\n * @author Chase Moore <chase.moore@mtna.us>\n */\n@Pipe({\n name: 'mtnaWfCoerceFormGroup',\n})\nexport class MtnaWfCoerceFormGroupPipe implements PipeTransform {\n /**\n * @param control control to be coerced into a FormGroup\n * @returns the control typed as FormGroup if possible; else null\n */\n transform(control: AbstractControl | null | undefined): FormGroup | null {\n if (isFormGroup(control)) {\n return control;\n }\n\n return null;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfCoerceFormGroupPipe],\n exports: [MtnaWfCoerceFormGroupPipe],\n})\nexport class MtnaWfCoerceFormGroupPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { isType } from '@mtna/core-ts';\nimport { FormItem } from '@mtna/web-form-ts';\n\n@Pipe({\n name: 'coerceFormItem',\n})\nexport class MtnaWfCoerceFormItemPipe implements PipeTransform {\n transform(item: unknown): FormItem | undefined {\n let formItem = undefined;\n if (this.instanceOfFormItem(item)) {\n formItem = item;\n }\n return formItem;\n }\n\n instanceOfFormItem(something: unknown): something is FormItem {\n return isType<FormItem>(something, 'instanceId', 'itemId', 'name', 'required', 'templateId');\n }\n}\n\n@NgModule({\n declarations: [MtnaWfCoerceFormItemPipe],\n exports: [MtnaWfCoerceFormItemPipe],\n})\nexport class MtnaWfCoerceFormItemPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\nimport { FormStepGroup, instanceOfFormStepGroup } from '../models';\n\n@Pipe({\n name: 'coerceFormStepGroup',\n})\nexport class CoerceFormStepGroupPipe implements PipeTransform {\n transform(value: unknown): FormStepGroup | null {\n return instanceOfFormStepGroup(value) ? value : null;\n }\n}\n\n@NgModule({\n declarations: [CoerceFormStepGroupPipe],\n exports: [CoerceFormStepGroupPipe],\n})\nexport class CoerceFormStepGroupPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\nimport { FormStep, instanceOfFormStep } from '../models';\n\n@Pipe({\n name: 'coerceFormStep',\n})\nexport class CoerceFormStepPipe implements PipeTransform {\n transform(value: unknown): FormStep | null {\n return instanceOfFormStep(value) ? value : null;\n }\n}\n\n@NgModule({\n declarations: [CoerceFormStepPipe],\n exports: [CoerceFormStepPipe],\n})\nexport class CoerceFormStepPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mtnaWfDateQuarter',\n})\nexport class MtnaWfDateQuarterPipe implements PipeTransform {\n transform(quarter: 0 | 1 | 2 | 3, format = 'short'): string {\n const short = {\n 0: $localize`Q1`,\n 1: $localize`Q2`,\n 2: $localize`Q3`,\n 3: $localize`Q4`,\n };\n const medium = {\n 0: $localize`1st Quarter`,\n 1: $localize`2nd Quarter`,\n 2: $localize`3rd Quarter`,\n 3: $localize`4th Quarter`,\n };\n const long = {\n 0: $localize`First Quarter`,\n 1: $localize`Second Quarter`,\n 2: $localize`Third Quarter`,\n 3: $localize`Fourth Quarter`,\n };\n\n switch (format) {\n case 'short':\n return short[quarter];\n case 'medium':\n return medium[quarter];\n case 'long':\n return long[quarter];\n default:\n return '';\n }\n }\n}\n\n@NgModule({\n declarations: [MtnaWfDateQuarterPipe],\n exports: [MtnaWfDateQuarterPipe],\n})\nexport class MtnaWfDateQuarterPipeModule {}\n","import { Inject, NgModule, Pipe, PipeTransform } from '@angular/core';\n\nimport { FormStep, FormStepGroup, isFormStepGroup } from '../models';\nimport { FormItem } from '@mtna/web-form-ts';\nimport { INJECTION_SERVICE, InjectionService } from '@mtna/core-angular';\n\n/**\n * There are certain form items that are hidden from the UI because they carry static values\n * that are populated from the server. These items should not show up in the form but if they\n * go through the injector there will be an empty mtna-wf-item placed into the form which can\n * affect styling. This pipe will seek to identify form items that have no key registered in\n * the injected component providers and log them and remove them from the list of items.\n */\n@Pipe({\n name: 'mtnaWfFilterHiddenItems',\n})\nexport class MtnaWfFilterHiddenItemsPipe implements PipeTransform {\n constructor(@Inject(INJECTION_SERVICE) protected injectionService: InjectionService) {}\n\n transform(items: FormItem[] | undefined): FormItem[] {\n const filteredItems: FormItem[] = [];\n if (items) {\n for (const item of items) {\n if (this.injectionService.getInjectedComponent(item.itemId)) {\n filteredItems.push(item);\n }\n }\n }\n return filteredItems;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfFilterHiddenItemsPipe],\n exports: [MtnaWfFilterHiddenItemsPipe],\n})\nexport class MtnaWfFilterHiddenItemsPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\nimport { FormStep, FormStepGroup, isFormStepGroup } from '../models';\n\n/**\n * Pipe to determine if a FormStep is a FormStepGroup or a single step.\n */\n@Pipe({\n name: 'mtnaWfStepGroupPipe',\n})\nexport class MtnaWfFormStepGroupPipe implements PipeTransform {\n transform(step: FormStep | FormStepGroup): step is FormStepGroup {\n return isFormStepGroup(step);\n }\n}\n\n@NgModule({\n declarations: [MtnaWfFormStepGroupPipe],\n exports: [MtnaWfFormStepGroupPipe],\n})\nexport class MtnaWfFormStepGroupPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { FormItem } from '@mtna/web-form-ts';\n\n@Pipe({\n name: 'getActiveFormStepItem',\n})\nexport class GetActiveFormStepItemPipe implements PipeTransform {\n transform(items: FormItem[] | undefined, activeStepId: string | null | undefined): FormItem | undefined {\n if (!items || !activeStepId) {\n return undefined;\n } else {\n return items.find((item) => item.instanceId === activeStepId);\n }\n }\n}\n\n@NgModule({\n declarations: [GetActiveFormStepItemPipe],\n exports: [GetActiveFormStepItemPipe],\n})\nexport class GetActiveFormStepItemPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mtnaWfGetAutoComplete',\n})\nexport class MtnaWfGetAutoCompletePipe implements PipeTransform {\n transform(label: string | null | undefined): string {\n if (label) {\n switch (label.toLowerCase()) {\n case 'first name':\n return 'given-name';\n case 'last name':\n return 'family-name';\n case 'email':\n return 'email';\n case 'organization':\n return 'organization';\n case 'phone':\n return 'tel';\n case 'street address line 1':\n return 'address-line1';\n case 'street address line 2':\n return 'address-line2';\n case 'city':\n return 'address-level2';\n case 'state':\n return 'address-level1';\n case 'zip code':\n return 'postal-code';\n default:\n return 'off';\n }\n }\n return 'off';\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetAutoCompletePipe],\n exports: [MtnaWfGetAutoCompletePipe],\n})\nexport class MtnaWfGetAutoCompletePipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { DateRange, YearQuarter } from '@mtna/web-form-ts';\n\n@Pipe({\n name: 'mtnaWfGetQuarters',\n})\nexport class MtnaWfGetAvailableQuartersPipe implements PipeTransform {\n transform(year: number | null | undefined, limits: DateRange<YearQuarter> | null | undefined): number[] {\n const quarters = [0, 1, 2, 3];\n if (!!year && !!limits) {\n // If the selected year matches the start year limit\n if (!!limits.start && !!limits.start.year && year === limits.start.year) {\n // If a start quarter limiit exists, return the limited options\n return limits.start.quarter !== null && limits.start.quarter !== undefined ? quarters.slice(limits.start.quarter) : quarters;\n }\n // If the selected year matches the end year limit\n if (!!limits.end && !!limits.end.year && year === limits.end.year) {\n // If an end quarter limit exists, return the limited options\n return limits.end.quarter !== null && limits.end.quarter !== undefined ? quarters.slice(0, limits.end.quarter + 1) : quarters;\n }\n }\n return quarters;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetAvailableQuartersPipe],\n exports: [MtnaWfGetAvailableQuartersPipe],\n})\nexport class MtnaWfGetAvailableQuartersPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { FormItemImpl } from '@mtna/web-form-ts';\n\nimport { MtnaWfUIService } from '../services/ui.service';\n\n@Pipe({\n name: 'mtnaWfGetControlError',\n})\nexport class MtnaWfGetFormControlErrorPipe implements PipeTransform {\n constructor(private uiService: MtnaWfUIService) {}\n transform(error: { key: string; value: unknown }, item?: FormItemImpl<unknown>): unknown {\n return this.uiService.getError(error.key, item) || error.value;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetFormControlErrorPipe],\n exports: [MtnaWfGetFormControlErrorPipe],\n})\nexport class MtnaWfGetFormControlErrorPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'mtnaWfGetListIcon',\n})\nexport class MtnaWfGetListIconPipe implements PipeTransform {\n transform(header: string | null | undefined): string | null {\n if (!header) {\n return null;\n }\n header = header.toUpperCase();\n if (\n header.includes('PROJECT') ||\n header.includes('REQUEST') ||\n header.includes('ANALYTICAL APPROACH') ||\n header.includes('JUSTIFICATION FOR USE')\n ) {\n return 'assignment';\n }\n if (header.includes('DESCRIPTION')) {\n return 'subject';\n }\n if (header.includes('EMAIL')) {\n return 'alternate_email';\n }\n if (header.includes('ZIP CODE')) {\n return 'mail';\n }\n if (header.includes('ORGANIZATION')) {\n return 'business';\n }\n if (header.includes('PHONE')) {\n return 'local_phone';\n }\n if (header.includes('ADDRESS')) {\n return 'place';\n }\n if (header.includes('NAME') || header.includes('TITLE')) {\n return 'person';\n }\n if (header.includes('CITY')) {\n return 'location_city';\n }\n if (header.includes('STATE')) {\n return 'map';\n }\n return null;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetListIconPipe],\n exports: [MtnaWfGetListIconPipe],\n})\nexport class MtnaWfGetListIconPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { FormItem } from '@mtna/web-form-ts';\n\nimport { FormStep, FormStepGroup } from '../models';\n\n@Pipe({\n name: 'getProgressiveFormItem',\n})\nexport class GetProgressiveFormItemPipe implements PipeTransform {\n transform(step: FormStep | FormStepGroup, items?: FormItem[]): FormItem | undefined {\n if (items) {\n const item = items.find((item) => item.instanceId || item.templateId === step.instanceId);\n console.warn({ itemFromPipe: item });\n if (item) {\n return item;\n } else {\n return undefined;\n }\n } else {\n return undefined;\n }\n }\n}\n\n@NgModule({\n declarations: [GetProgressiveFormItemPipe],\n exports: [GetProgressiveFormItemPipe],\n})\nexport class GetProgressiveFormItemPipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { FormOptionSelector, StringOption } from '@mtna/web-form-ts';\n\n@Pipe({\n name: 'mtnaWfGetSelectedOptionName',\n})\nexport class MtnaWfGetSelectedOptionNamePipe implements PipeTransform {\n transform(id: string, options: FormOptionSelector<StringOption>[]): string {\n const _notApplicableText = $localize`N/A`;\n if (!options || !id) {\n return _notApplicableText;\n }\n const foundOption = options.find((o) => o.option.id === id);\n return foundOption ? foundOption.option.name : _notApplicableText;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfGetSelectedOptionNamePipe],\n exports: [MtnaWfGetSelectedOptionNamePipe],\n})\nexport class MtnaWfGetSelectedOptionNamePipeModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { CircleStatus } from '@mtna/core-angular';\n\nimport { FormStep, FormStepGroup, instanceOfFormStep, instanceOfFormStepGroup } from '../models';\n\n@Pipe({\n name: 'getStepAriaLabel',\n})\nexport class GetStepAriaLabel implements PipeTransform {\n stepStatusTextMap: { [key in CircleStatus]: string } = {\n ['INVALID']: $localize`Invalid`,\n ['VALID']: $localize`Valid`,\n ['DISABLED']: $localize`Disabled`,\n ['ERROR']: $localize`Error`,\n ['PENDING']: $localize`Pending`,\n ['EMPTY']: $localize`Empty`,\n ['INCOMPLETE']: $localize`Incomplete`,\n ['PLACEHOLDER']: $localize`Placeholder`,\n };\n\n transform(step: FormStep | FormStepGroup, collapsed?: boolean): string {\n const stepText = $localize`Step`;\n if (instanceOfFormStepGroup(step)) {\n const collapsedText = collapsed ? $localize`collapsed step` : $localize`expanded step`;\n const childStepsActiveText = step.steps.some((childStep) => childStep.active) ? $localize`Child step active.` : '';\n return `${stepText} ${step.num}: ${step.label} - ${collapsedText}. ${childStepsActiveText}`;\n } else if (instanceOfFormStep(step)) {\n const status = step.status === 'EMPTY' || step.status === 'PLACEHOLDER' ? undefined : this.stepStatusTextMap[step.status];\n const activeText = step.active ? $localize`Active step` : undefined;\n return `${stepText} ${step.num}: ${step.label} ${status ? ' - ' + status : ''}${activeText ? ' - ' + activeText : ''}.`;\n } else {\n // Handle for unexpected types. Should never reach this point because the step should always be a FormStep or a FormStepGroup.\n return '';\n }\n }\n}\n\n@NgModule({\n declarations: [GetStepAriaLabel],\n exports: [GetStepAriaLabel],\n})\nexport class GetStepAriaLabelModule {}\n","import { NgModule, Pipe, PipeTransform } from '@angular/core';\nimport { FormItem, isValueItem, ValueItem } from '@mtna/web-form-ts';\n\n/**\n * Returns an array of FormItems that contain a value.\n * Use only for readonly forms\n */\n@Pipe({\n name: 'mtnaWfItemsWithValue',\n pure: false,\n})\nexport class MtnaWfItemsWithValuePipe implements PipeTransform {\n transform(items: Array<FormItem> | null | undefined): Array<ValueItem<unknown>> {\n const list = items ? items.filter(isValueItem) : [];\n console.error({ items });\n console.error({ list });\n return list;\n }\n}\n\n@NgModule({\n declarations: [MtnaWfItemsWithValuePipe],\n exports: [MtnaWfItemsWithValuePipe],\n})\nexport class MtnaWfItemsWithValuePipeModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MtnaWfSanitizeHtmlPipeModule } from '../../pipes';\nimport { MtnaWfItemHeaderComponent } from './item-header.component';\n\n@NgModule({\n imports: [CommonModule, MtnaWfSanitizeHtmlPipeModule],\n declarations: [MtnaWfItemHeaderComponent],\n exports: [MtnaWfItemHeaderComponent],\n})\nexport class MtnaWfItemHeaderModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MtnaAnnotationsIndicatorModule } from '@mtna/pojo-social-angular';\n\nimport { MtnaWfItemInjectorModule } from '../form-item-injector/form-item-injector.module';\nimport { MtnaWfItemHeaderModule } from '../item-header/item-header.module';\nimport { MtnaWfFormItemComponent } from './form-item.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaAnnotationsIndicatorModule,\n MtnaWfItemInjectorModule,\n MtnaWfItemHeaderModule,\n MatMomentDateModule,\n MatButtonModule,\n ],\n declarations: [MtnaWfFormItemComponent],\n exports: [MtnaWfFormItemComponent],\n})\nexport class MtnaWfFormItemModule {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { MtnaWfFormItemModule } from '../form-item/form-item.module';\nimport { MtnaWfAcknowledgeDialogComponent } from './acknowledge-dialog.component';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, MatButtonModule, MtnaWfFormItemModule],\n declarations: [MtnaWfAcknowledgeDialogComponent],\n exports: [MtnaWfAcknowledgeDialogComponent],\n})\nexport class MtnaWfAcknowledgeDialogModule {}\n","import { HttpClient, HttpResponse } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Form as WebForm, FormItemImpl, Template, TemplateItem, TemplateSectionImpl } from '@mtna/web-form-ts';\nimport { Observable } from 'rxjs';\n\nimport { MTNA_WF_API_TOKEN, MtnaWfApiConfig } from '../models';\n\n@Injectable({ providedIn: 'root' })\nexport class MtnaWfApiService {\n API_URL = `${this.apiConfig.baseUrl}/api`;\n\n FORM_URL = `${this.API_URL}/form`;\n\n TEMPLATE_URL = `${this.API_URL}/template`;\n NEW_TEMPLATE_URL = `${this.TEMPLATE_URL}/new`;\n NEW_SECTION_URL = `${this.TEMPLATE_URL}/section`;\n ITEMS_URL = `${this.TEMPLATE_URL}/items`;\n ITEM_INSTANCE_URL = `${this.TEMPLATE_URL}/item`;\n TEMPLATE_SAVE_URL = `${this.TEMPLATE_URL}/save`;\n TEMPLATE_DELETE_URL = `${this.TEMPLATE_URL}/delete`;\n\n ALL_TEMPLATES_URL = `${this.API_URL}/templates`;\n\n constructor(@Inject(MTNA_WF_API_TOKEN) protected apiConfig: MtnaWfApiConfig, protected http: HttpClient) {}\n\n /**\n * Download a web form\n * @param form the web form pojo to download\n * @returns Full HttlReponse with the Blob as the body\n */\n downloadForm(form: WebForm): Observable<HttpResponse<Blob>> {\n return this.http.post(`${this.FORM_URL}/download`, form, { observe: 'response', responseType: 'blob' });\n }\n\n /**\n * Returns a new repeatable FormItem\n * @param formInstanceId template ID of the mtna form\n * @param itemId repeatableTemplateId of the requesting RepeatableItem\n */\n getRepeatableItem(formInstanceId: string, itemId: string): Observable<FormItemImpl<unknown>> {\n return this.http.get<FormItemImpl<unknown>>(`${this.FORM_URL}/${formInstanceId}/new/item/${itemId}`);\n }\n\n getNewTemplate(): Observable<Template> {\n return this.http.get<Template>(this.NEW_TEMPLATE_URL);\n }\n\n getAllTemplate(): Observable<Template> {\n return this.http.get<Template>(this.ALL_TEMPLATES_URL);\n }\n\n getNewSection(): Observable<TemplateSectionImpl> {\n return this.http.get<TemplateSectionImpl>(this.NEW_SECTION_URL);\n }\n\n getItems(): Observable<TemplateItem[]> {\n return this.http.get<TemplateItem[]>(this.ITEMS_URL);\n }\n\n getTemplateItem(id: string): Observable<TemplateItem> {\n return this.http.get<TemplateItem>(`${this.ITEM_INSTANCE_URL}?id=${id}`);\n }\n\n saveTemplate(): Observable<Template> {\n return this.http.get<Template>(this.TEMPLATE_SAVE_URL);\n }\n\n getDeleteTemplate(): Observable<Template> {\n return this.http.get<Template>(this.TEMPLATE_DELETE_URL);\n }\n}\n","import { Component, Inject } from '@angular/core';\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\n\nimport { MtnaWfFormItemDialogData } from '../../models/form-item-dialog-data.model';\n\n/**\n * A dialog that renders a form item.\n */\n@Component({\n selector: 'mtna-wf-form-item-dialog',\n templateUrl: './form-item-dialog.component.html',\n})\nexport class MtnaWfFormItemDialogComponent {\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: MtnaWfFormItemDialogData,\n public dialogRef: MatDialogRef<MtnaWfFormItemDialogComponent>\n ) {}\n}\n","<h2 *ngIf=\"data.title as title\" mat-dialog-title>{{ title }}</h2>\n<mat-dialog-content>\n <mtna-wf-item *ngFor=\"let item of data.formItems\" [item]=\"item\" [readonly]=\"true\"></mtna-wf-item>\n</mat-dialog-content>\n<mat-dialog-actions align=\"end\">\n <button mat-raised-button mat-dialog-close color=\"primary\" i18n>Close</button>\n</mat-dialog-actions>\n","import { Injectable } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Section } from '@mtna/web-form-ts';\nimport { Observable } from 'rxjs';\n\nimport { MtnaWfAcknowledgeDialogComponent } from '../components/acknowledge-dialog/acknowledge-dialog.component';\nimport { MtnaWfFormItemDialogComponent } from '../components/form-item-dialog/form-item-dialog.component';\nimport { MtnaWfFormItemDialogData } from '../models/form-item-dialog-data.model';\n\n@Injectable({ providedIn: 'root' })\nexport class MtnaWfDialogService {\n constructor(private dialog: MatDialog) {}\n _acknowledgementText = $localize`Acknowledgement`;\n\n /**\n * Display the acknowledgement the user agreed to for a given option.\n * @param acknowledgementItem The {@link Section} that represents the acknowledgement text to display to the user.\n */\n showAcknowledgement(acknowledgementItem: Section) {\n this.dialog.open(MtnaWfFormItemDialogComponent, {\n closeOnNavigation: true,\n data: new MtnaWfFormItemDialogData(acknowledgementItem.items, acknowledgementItem.title.value || this._acknowledgementText),\n disableClose: false,\n hasBackdrop: true,\n maxWidth: '500px',\n });\n }\n\n /**\n * Show some text in a dialog that the user needs to \"acknowledge\" before they can make a certain selection.\n * @param acknowledgementItem The {@link Section} that represents the text displayed to the user for acknowledgement.\n * @returns Whether the user acknowledges (agrees).\n */\n verifyAcknowledgement(acknowledgementItem: Section): Observable<boolean> {\n return this.dialog\n .open(MtnaWfAcknowledgeDialogComponent, {\n closeOnNavigation: true,\n data: new MtnaWfFormItemDialogData(acknowledgementItem.items, acknowledgementItem.title.value || this._acknowledgementText),\n disableClose: true,\n hasBackdrop: true,\n maxWidth: '500px',\n })\n .afterClosed();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { skipWhile, take } from 'rxjs/operators';\n\n/**\n * This service manages and interacts with an Angular FormGroup. It provides functionality\n * to add or remove form controls dynamically, track the form's state, and notify other\n * components about unsaved changes. This service is used to centralize form handling and\n * state management, providing a reliableway to monitor and respond to form changes.\n */\n@Injectable({ providedIn: 'root' })\nexport class MtnaWfNgFormService {\n private ngForm: FormGroup | undefined;\n private unsavedChanges$: Subject<boolean> = new BehaviorSubject<boolean>(false);\n private valueChangeSubscription: Subscription | undefined;\n\n /**\n * Informs a caller when the MtnaForm is dirty and has unsaved changes.\n */\n get unsavedChanges(): Observable<boolean> {\n return this.unsavedChanges$.asObservable();\n }\n\n /**\n * Add a control from the ngForm\n * @param controlId id of the control being added\n * @param parentIds array of ids representing the path to the parent control\n * @param newControl the new form control to be added\n */\n addControl(controlId: string, parentIds: string[], newControl: AbstractControl) {\n if (!this.ngForm) {\n return;\n }\n\n const parentControl = this.ngForm.get(parentIds) as FormGroup;\n parentControl.addControl(controlId, newControl);\n parentControl.markAsTouched();\n parentControl.markAsDirty();\n this.forceUnsavedChange();\n }\n\n /**\n * Remove a control from the ngForm.\n *\n * @param controlId is of the control to remove\n * @param parentIds rray of ids representing the path to the parent control\n */\n removeControl(controlId: string, parentIds: string[]) {\n if (!this.ngForm) {\n return;\n }\n\n const parentControl = this.ngForm.get(parentIds) as FormGroup;\n parentControl.removeControl(controlId);\n parentControl.markAsTouched();\n parentControl.markAsDirty();\n this.forceUnsavedChange();\n }\n\n /**\n * Get the form if it exists\n * @returns the angular form or null\n */\n getForm(): FormGroup | undefined {\n return this.ngForm;\n }\n\n /**\n * Returns a JSON representation of form values\n */\n getFormValue() {\n // This includes values for disabled controls.\n // We loop through MtnaForm to insert values,\n // so we need the disabled controls to ensure no info loss.\n return this.ngForm?.getRawValue();\n }\n\n /**\n * @returns Whether a form has been set on this service\n */\n hasForm(): boolean {\n return !!this.ngForm;\n }\n\n /**\n * @returns Whether the form is dirty.\n */\n isFormDirty(): boolean {\n return !!this.ngForm && this.ngForm.dirty;\n }\n\n /**\n * Unsubscribes from value changes & sets the ngForm to null.\n * Should be called when any component using an MtnaForm is destroyed.\n */\n disposeForm() {\n this.unsubscribeValueChanges();\n this.ngForm = undefined;\n }\n\n /**\n * Forces the unsavedChanges observable to emit true.\n * Use with care, one example is when repeatable items are added/removed from the form.\n */\n forceUnsavedChange() {\n this.unsubscribeValueChanges();\n this.unsavedChanges$.next(true);\n }\n\n /**\n * Marks ngForm as pristine & untouched.\n */\n markAsPristineAndUntouched() {\n if (this.ngForm) {\n this.ngForm.markAsPristine();\n this.ngForm.markAsUntouched();\n this.unsavedChanges$.next(this.ngForm.dirty);\n this.observeNgFormChanges();\n }\n }\n\n /**\n * Resets the ngForm.\n */\n resetForm() {\n if (this.ngForm) {\n this.ngForm.reset();\n this.unsavedChanges$.next(this.ngForm.dirty);\n this.observeNgFormChanges();\n }\n }\n\n /**\n * Sets a FormGroup on the service so an external source may observe changes.\n * @param ngForm FormGroup to be registered.\n */\n setForm(ngForm: FormGroup) {\n this.ngForm = ngForm;\n this.unsavedChanges$.next(this.ngForm.dirty);\n if (this.ngForm.pristine) {\n this.observeNgFormChanges();\n }\n }\n\n /**\n * Subscribes to ngForm status changes & updates the unsavedChanges observable\n */\n private observeNgFormChanges() {\n this.unsubscribeValueChanges();\n if (this.ngForm) {\n this.valueChangeSubscription = this.ngForm.valueChanges\n .pipe(\n skipWhile(() => (this.ngForm ? this.ngForm.pristine : true)),\n take(1)\n )\n .subscribe(() => this.unsavedChanges$.next(this.ngForm?.dirty));\n }\n }\n\n /**\n * Removes the ngForm status change subscription.\n */\n private unsubscribeValueChanges() {\n if (!!this.valueChangeSubscription && !this.valueChangeSubscription.closed) {\n this.valueChangeSubscription.unsubscribe();\n }\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { AbstractControl } from '@angular/forms';\nimport { isType } from '@mtna/core-ts';\nimport {\n ConditionalItem,\n ConditionChange,\n Form,\n FormItem,\n FormItemGroup,\n FormItemImpl,\n FormItemValidationResult,\n isConditionalItem,\n isForm,\n isFormItemGroupImpl,\n isOptionGroupItemImpl,\n isOptionItemImpl,\n isRepeatableItem,\n isSection,\n isTableItem,\n MtnaWfFormItemChange,\n MtnaWfFormItemChangeAction,\n Option,\n OptionGroupItemImpl,\n OptionItemImpl,\n ProgressiveForm,\n RepeatableItem,\n Section,\n TableItem,\n TableRowItem,\n ValueItem,\n} from '@mtna/web-form-ts';\nimport { Observable, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { BaseFormItem } from '../models';\nimport { findFormControl, MtnaWfSerializer } from '../utilities';\nimport { MtnaWfApiService } from './api.service';\nimport { MtnaWfNgFormService } from './ng-form.service';\nimport { MtnaWfUIService } from './ui.service';\n\n/**\n * types of FormItems that can be passed into the 'modifyMtnaFormItem' method to add/remove items\n */\ntype ParentItemUnion =\n | Form\n | Section\n | FormItemGroup\n | RepeatableItem\n | TableItem\n | OptionItemImpl<Option<unknown>, unknown>\n | OptionGroupItemImpl<Option<unknown>>;\n\n/**\n * Allows a caller to (de)serializae an MtnaForm. It contains the determining logic for returning specific form controls\n * and deserializing new MtnaForms from the reactive values, as well as registering custom Form Items & functions.\n *\n * @export\n */\n@Injectable()\nexport class MtnaWfManagerService {\n protected components = new Map<string, Type<BaseFormItem>>();\n protected formChange$ = new Subject<Form | ProgressiveForm>();\n protected progressiveFormChange$ = new Subject<ProgressiveForm>();\n /** A map of all {@link FormItemValidationResult} keyed on id */\n protected _formItemValidationResults: Record<string, FormItemValidationResult> = {};\n /** ConditionChanges on 'add' must wait until the form rerenders to toggle items */\n protected itemToggleQue: Array<ConditionChange> | null | undefined;\n protected _mtnaForm: Form | undefined;\n protected _mtnaProgressiveForm: ProgressiveForm | undefined;\n\n /**\n * Observable stream of MtnaForm changes. Used to inform a subscriber that an MtnaForm has been changed.\n *\n * @returns Observable<MtnaForm> to which a caller can subscribe\n */\n get formChanges(): Observable<Form> {\n return this.formChange$.asObservable();\n }\n\n constructor(protected apiService: MtnaWfApiService, protected ngFormService: MtnaWfNgFormService, protected uiService: MtnaWfUIService) {}\n\n /**\n * Adds or removes a FormItem from the form & modifies other affected FormItems\n * @param change MtnaWfFormItemChange\n */\n changeMtnaFormItem(change: MtnaWfFormItemChange) {\n if (!this._mtnaForm) {\n return;\n }\n\n if (change.actionType === 'REMOVE') {\n // remove the repeatable item from the mtnaform\n let newForm = this._modifyFormItem(this._mtnaForm, change) as Form;\n // modify the conditions of all effected form items\n newForm = this._modifyFormItemConditions(newForm, change);\n\n this.ngFormService.removeControl(change.id, change.parentIds);\n this.formChange$.next(newForm);\n } else {\n this.apiService\n .getRepeatableItem(this._mtnaForm.instanceId, change.id)\n .pipe(take(1))\n .subscribe((newItem: FormItemImpl<unknown>) => {\n const newFormControl = this.serializeMtnaFormItem(newItem);\n if (newFormControl && this._mtnaForm) {\n this.ngFormService.addControl(newItem.instanceId, change.parentIds, newFormControl);\n // Add the new repeatable item into the mtnaform\n let newForm = this._modifyFormItem(\n this._mtnaForm,\n {\n ...change,\n id: newItem.instanceId,\n },\n newItem\n ) as Form;\n\n // Generate a list of all formitem conditions needing change & modify those items in the form\n const conditionChanges = this.generateConditionChangeArray(newItem, 'ADD');\n newForm = this._modifyFormItemConditions(newForm, { ...change, conditionChanges });\n this.itemToggleQue = conditionChanges;\n // emit the new mtnaform\n this.formChange$.next(newForm);\n }\n });\n }\n }\n\n /**\n * Returns a ConditionChange array for items existing in the <item> which enable/disable FormItems outside the <item>'s scope.\n * @param item FormItem that effects the condition of other FormItems\n * @param action Whether this item was added (ADD), or removed (REMOVE)\n * @returns Array<ConditionChange>\n */\n generateConditionChangeArray(item: FormItem, action?: MtnaWfFormItemChangeAction): Array<ConditionChange> {\n const internalMap = {};\n this._buildInternalIdsMap(item, internalMap);\n const conditionChanges = new Array<ConditionChange>();\n this._buildConditionChangeArray(item, conditionChanges, internalMap, action);\n return conditionChanges;\n }\n\n /** @returns The top level validation results (usually the errors), keyed on ID. */\n getFormItemValidationResults(): Record<string, FormItemValidationResult> {\n return this._formItemValidationResults;\n }\n\n /**\n * Returns a new MtnaForm using the MtnaForm & reacive form values from the MtnaWfNgFormService's internal form.\n *\n * @param ngFormValues JSON object of ngFormValues\n * @returns\n */\n updateForm(ngFormValues: Record<string, unknown>): Form {\n const currentForm = this.ngFormService.getFormValue();\n return {\n ...currentForm,\n items: MtnaWfSerializer.insertFormItemValues(\n currentForm,\n ngFormValues,\n this.uiService.getDisabledStates(),\n this.dynamicFormConditional,\n this.dynamicWebFormItemBuilder\n ),\n };\n }\n\n /**\n * Returns a new MtnaForm using the previous MtnaForm & reactive form values.\n *\n * @param mtnaForm MtnaForm requiring value insertion\n * @param ngFormValues JSON object of ngForm values\n * @returns new MtnaForm\n */\n insertNewValues(mtnaForm: Form, ngFormValues: Record<string, unknown>): Form {\n return {\n ...mtnaForm,\n items: MtnaWfSerializer.insertFormItemValues(\n mtnaForm,\n ngFormValues,\n this.uiService.getDisabledStates(),\n this.dynamicFormConditional,\n this.dynamicWebFormItemBuilder\n ),\n };\n }\n\n /**\n * Serializes a Form | FormItem into FormControl(s)\n *\n * @param item Form | FormItem requiring serialization\n * @returns FormGroup | FormControl\n */\n serializeMtnaFormItem(item: Form | FormItemImpl<unknown>): AbstractControl | null {\n return MtnaWfSerializer.determineSerializeFunctionToUse(\n item,\n this,\n this.dynamicFormConditional,\n this.dynamicReactiveFormControlBuilder\n );\n }\n\n //#region Custom Component/Function Registration\n getDynamicComponent(id: string): Type<BaseFormItem> | undefined {\n return this.components.get(id);\n }\n\n /**\n * Registers a map of components to be dynamically rendered inside an MtnaForm.\n *\n * @param components the map of components that a ValueItem will use for rendering\n * @prop string - the type(itemId suffix) of component, used for retrieval\n * @prop Type - the component to be rendered, an extension of BaseFormItem\n */\n registerDynamicComponents(components: Map<string, Type<BaseFormItem>>) {\n this.components = components;\n }\n\n /**\n * Sets an MtnaForm on the service\n * @param form MtnaForm to be used for internal modification\n */\n setMtnaForm(form: Form) {\n this._mtnaForm = { ...form };\n if (!!this.itemToggleQue && !!this.itemToggleQue.length) {\n // The form needs time to rerender, so we push this loop to the end of the stack\n setTimeout(() => {\n if (this.itemToggleQue) {\n for (const change of this.itemToggleQue) {\n this.uiService.toggleFormItems(change.enabledItems, change.disabledItems, !!change.enable, change.enablerId, true);\n }\n }\n this.itemToggleQue = null;\n }, 0);\n }\n\n // Keep track of any errors coming from the server and revalidate those controls\n this._updateServerSideErrors();\n }\n\n /**\n * Any FormService extension class should override this method in order to call the\n * dynamicWebFormItemBuilder/dynamicReactiveFormControlBuilder methods. During web form generation, this method is checked &\n * the current FormItem is passed in, which can be used by the overriding method.\n *\n * @example dynamicFormConditional = (item: FormItem) => item.itemId.includes({some itemId})\n *\n */\n protected dynamicFormConditional: (item: FormItem) => boolean = () => false;\n\n /**\n * Function to be overridden by extended service in order to handle form generation for any application-specific dynamic form components.\n * Should return a new ValueItem<any>.\n * Step 3\n *\n * @example dynamicWebFormItemBuilder(section: Section | Form, item: FormItem, ngFormValue: any): ValueItem {\n * const newValue = this.generateNewValue(item, rfValue, section);\n * return { ...item, ...newValue }\n * }\n * @param section the current FormSection\n * @param item the current FormItem\n * @param ngFormValue the ngForm JSON value\n * @returns a new ValueItem\n */\n protected dynamicWebFormItemBuilder(\n /* eslint-disable @typescript-eslint/no-unused-vars */\n section: Form | FormItemGroup | RepeatableItem | undefined,\n item: FormItem,\n ngFormValue: unknown,\n disabledState?: { [instanceId: string]: boolean }\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ): ValueItem<unknown> | null {\n return null;\n }\n\n /**\n * Function to be overridden by extended service in order to handle reactive form generation\n * for any application-specific dynamic form components.\n * Should return FormControl | FormGroup.\n *\n * @example dynamicReactiveFormControlBuilder(item: FormItem) {\n * return this.buildFormControlForDynamicComponent(item: FormItem);\n * }\n * @param item FormItem used to generate form controls\n * @returns FormControl | FormGroup\n */\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n protected dynamicReactiveFormControlBuilder(item: FormItem): AbstractControl | null {\n return null;\n }\n\n //#endregion\n\n //#region INTERNAL METHODS\n /**\n * Recursively traverses a Form to insert or remove a designated FormItem.\n * @param item MtnaForm to search through\n * @param change: MtnaWfFormItemChange for adding or removing a FormItem\n * @param newItem FormItem to add to its parent\n */\n protected _modifyFormItem<I extends Form | Section | FormItem | FormItemImpl<unknown>>(\n item: I,\n change: MtnaWfFormItemChange,\n newItem?: FormItem\n ): Form | Section | FormItem | FormItemImpl<unknown> {\n if (!change.parentIds.length) {\n // At this point, we reach the Parent FormItem\n if (change.actionType === 'REPLACE') {\n if ('items' in item) {\n const index = item.items.findIndex((i) => i.instanceId === newItem?.instanceId);\n const newItems = [...item.items];\n if (newItem) {\n newItems.splice(index, 1, newItem);\n }\n return { ...item, items: newItems };\n }\n return item;\n } else if (isRepeatableItem(item)) {\n return {\n ...item,\n items: change.actionType === 'ADD' ? item.items.concat(newItem || []) : item.items.filter((i) => i.instanceId !== change.id),\n };\n } else {\n return item;\n }\n }\n\n if (isForm(item) || isSection(item) || isFormItemGroupImpl(item) || isRepeatableItem(item)) {\n const items = [...item.items];\n const indexToModify = item.items.findIndex((i) => i.instanceId === change.parentIds[0]);\n const itemToModify = item.items[indexToModify] as ParentItemUnion;\n\n items.splice(\n indexToModify,\n 1,\n this._modifyFormItem(\n itemToModify,\n {\n ...change,\n parentIds: change.parentIds.slice(1),\n },\n newItem\n ) as FormItem\n );\n return {\n ...item,\n items,\n };\n } else if (isTableItem(item)) {\n return this._modifyTableItem(item as TableItem, change, newItem);\n } else if (isOptionItemImpl(item) || isOptionGroupItemImpl(item)) {\n return this._modifyOptionItem(\n item as OptionItemImpl<Option<unknown>, unknown> | OptionGroupItemImpl<Option<unknown>>,\n change,\n newItem\n )[0];\n }\n return item;\n }\n\n /**\n * Traverses an OptionItemMap of a FormItem to insert or remove a designated FormItem\n * @param optionItem FormItem with an optionItemMap, e.g. OptionItemImpl | OptionGroupItemImpl\n * @param change MtnaWfFormItemChange for adding or removing a FormItem\n * @param newItem FormItem to be added to its parent\n * @returns FormItem with an optionItemMap containing FormItems\n */\n private _modifyOptionItem(\n optionItem: OptionItemImpl<Option<unknown>, unknown> | OptionGroupItemImpl<Option<unknown>>,\n change: MtnaWfFormItemChange,\n newItem?: FormItem\n ): [OptionItemImpl<Option<unknown>, unknown> | OptionGroupItemImpl<Option<unknown>>, boolean] {\n let found = false;\n const optionItemMap: { [id: string]: FormItem } = {};\n // Loop through the map and set the items to a new map\n // Check if any FormItem in the map matches the next parent ID\n for (const id in optionItem.optionItemMap) {\n if (Object.prototype.hasOwnProperty.call(optionItem.optionItemMap, id)) {\n // If one matches, modify & set it on the new map\n if (optionItem.optionItemMap[id].instanceId === change.parentIds[0]) {\n found = true;\n optionItemMap[id] = this._modifyFormItem(\n optionItem.optionItemMap[id] as ParentItemUnion,\n { ...change, parentIds: change.parentIds.slice(1) },\n newItem\n ) as FormItem;\n } else {\n optionItemMap[id] = optionItem.optionItemMap[id];\n }\n }\n }\n // return the item with its new optionItemMap, & whether we found the matching item\n return [{ ...optionItem, optionItemMap }, found];\n }\n\n /**\n * Traverses table rows to insert or remove a FormItem\n * @param tableItem TableItem to traverse\n * @param change MtnaWfFormItemChange for adding or removing a FormItem\n * @param newItem FormItem to be added to its parent\n * @returns TableItem with a FormItem added or removed\n */\n private _modifyTableItem(tableItem: TableItem, change: MtnaWfFormItemChange, newItem?: FormItem): TableItem {\n let found = false;\n // Map the table rows to find the FormItem with matching instanceId\n const tableRows: TableRowItem[] = tableItem.tableRows.map((row: TableRowItem) => {\n // If the item was found, skip mapping further rows\n if (!found) {\n return {\n ...row,\n items: row.items.map((rowItem: FormItem) => {\n // If we found the next matching FormItem, toggle 'found', and return the modified FormItem\n if (!!rowItem && rowItem.instanceId === change.parentIds[0]) {\n found = true;\n return this._modifyFormItem(\n rowItem as ParentItemUnion,\n { ...change, parentIds: change.parentIds.slice(1) },\n newItem\n ) as FormItem;\n }\n // If the FormItem instanceId doesn't match, but it has FormItems in its 'optionItemMap',\n // We need to check if a matching FormItem exists in its map\n if ('optionItemMap' in rowItem) {\n const returned = this._modifyOptionItem(\n rowItem as OptionItemImpl<Option<unknown>, unknown> | OptionGroupItemImpl<Option<unknown>>,\n change,\n newItem\n );\n found = returned[1];\n return returned[0];\n }\n return rowItem;\n }),\n };\n }\n return row;\n });\n return { ...tableItem, tableRows };\n }\n\n /**\n * Adds or removes instanceIds from the 'itemIds' in a FormItem's condition\n * @param form MtnaForm to search through & replace formitems with the new condition\n * @param change The change that recently occurred in the mtnaForm\n */\n private _modifyFormItemConditions(form: Form, change: MtnaWfFormItemChange): Form {\n let newForm = form;\n if (change.conditionChanges) {\n const formItems: { [key: string]: FormItem | ConditionalItem } = {};\n for (const cc of change.conditionChanges) {\n for (const toggledId of [...cc.enabledItems, ...cc.disabledItems]) {\n let formItem = formItems[toggledId];\n const formItemComponent = this.uiService.getItem(toggledId);\n if (!formItem && formItemComponent?.item) {\n formItem = formItemComponent?.item;\n }\n if (isConditionalItem(formItem) && formItem.condition) {\n const itemConditionItemIds = formItem.condition.itemIds || [];\n const itemIds =\n change.actionType === 'ADD'\n ? [...itemConditionItemIds, cc.enablerId]\n : itemConditionItemIds.filter((i) => i !== cc.enablerId);\n\n const newItem: ConditionalItem = { ...formItem, condition: { ...formItem.condition, itemIds } };\n const newChange = new MtnaWfFormItemChange(newItem.instanceId, formItemComponent?.parentIds || [], 'REPLACE');\n\n newForm = this._modifyFormItem(newForm, newChange, newItem as FormItem & ConditionalItem) as Form;\n formItems[toggledId] = newItem;\n }\n }\n if (change.actionType === 'REMOVE') {\n this.uiService.toggleFormItems(cc.enabledItems, cc.disabledItems, !!cc.enable, cc.enablerId);\n }\n }\n }\n return newForm;\n }\n\n /**\n * Builds a map of all instanceIds inside an item. Checks 'items' & 'optionItemMap'\n * @param item Item to recurse\n * @param idMap map of the item's internal instanceIds\n */\n private _buildInternalIdsMap(item: FormItem, idMap: Record<string, boolean>) {\n idMap[item.instanceId] = true;\n if (isType<{ items: FormItem[] }>(item, 'items')) {\n const items: FormItem[] = item.items;\n for (const subItem of items) {\n this._buildInternalIdsMap(subItem, idMap);\n }\n } else if (isType<{ optionItemMap: { [id: string]: FormItem } }>(item, 'optionItemMap')) {\n const map: { [id: string]: FormItem } = item.optionItemMap;\n for (const id in map) {\n if (Object.prototype.hasOwnProperty.call(map, id)) {\n this._buildInternalIdsMap(map[id], idMap);\n }\n }\n }\n }\n\n /**\n * Builds an array of ConditionChanges to be implemented in an MtnaForm.\n * @param item FormItem that was added/removed, which affects conditions of other FormItems\n * @param changes Array to build up\n * @param internalIdMap Map of all instanceIds located in the item; in order to exclude them from the condition changes\n * @param action Whether the item was added or removed\n */\n private _buildConditionChangeArray(\n item: FormItem,\n changes: Array<ConditionChange>,\n internalIdMap: Record<string, boolean>,\n action?: MtnaWfFormItemChangeAction\n ) {\n if (isOptionItemImpl(item)) {\n const enable = !!action && action === 'ADD' ? item.option.selected || item.value === item.option.option.id : false;\n this._pushConditionToArray(item.instanceId, item.option.enabledItems, item.option.disabledItems, changes, internalIdMap, enable);\n this._buildArrayFromOptionItemMap(item, changes, internalIdMap);\n } else if (isOptionGroupItemImpl(item)) {\n for (const option of item.options) {\n const enable =\n !!action && action === 'ADD' ? option.selected || (!!item.value && item.value.some((v) => v === option.option.id)) : false;\n this._pushConditionToArray(item.instanceId, option.enabledItems, option.disabledItems, changes, internalIdMap, enable);\n }\n this._buildArrayFromOptionItemMap(item, changes, internalIdMap, action);\n } else if (isType<{ items: FormItem[] }>(item, 'items')) {\n const items: FormItem[] = item.items;\n for (const subItem of items) {\n this._buildConditionChangeArray(subItem, changes, internalIdMap, action);\n }\n }\n }\n\n /**\n * Builds an array of ConditionChanges from an item's optionItemMap\n * @param item FormItem with an optionItemMap\n * @param conditions Array of ConditionChanges to push on new changes\n * @param itemMap map of instanceIds exisiting in an item; in order to exclude them from the changes\n * @param action Whether an item was added or removed\n */\n private _buildArrayFromOptionItemMap(\n item: OptionItemImpl<Option<unknown>, unknown> | OptionGroupItemImpl<Option<unknown>>,\n conditions: Array<ConditionChange>,\n itemMap: Record<string, boolean>,\n action?: MtnaWfFormItemChangeAction\n ) {\n if (item.optionItemMap) {\n for (const id in item.optionItemMap) {\n if (Object.prototype.hasOwnProperty.call(item.optionItemMap, id)) {\n const subItem = item.optionItemMap[id];\n this._buildConditionChangeArray(subItem, conditions, itemMap, action);\n }\n }\n }\n }\n\n /**\n * Pushes a new ConditionChange onto the conditions array. If a ConditionChange with matching id exists,\n * it merges the new values into it\n * @param enablerId instanceId of the item that enables other FormItems\n * @param enabled the item's 'enabledItems' array\n * @param disabled the item's 'disabledItems' array\n * @param conditions Array of ConditionChanges to build up\n * @param itemMap map of instanceIds inside an item; to ensure no internal ids are included in a change\n * @param enable Whether the 'enabledItems' should toggled enabled\n */\n private _pushConditionToArray(\n enablerId: string,\n enabled: string[],\n disabled: string[],\n conditions: Array<ConditionChange>,\n itemMap: Record<string, boolean>,\n enable: boolean\n ) {\n const enabledItems = enabled.filter((e) => !itemMap[e]);\n const disabledItems = disabled.filter((d) => !itemMap[d]);\n if (!!enabledItems.length || !!disabledItems.length) {\n const index = conditions.findIndex((c) => c.enablerId === enablerId);\n if (index < 0) {\n conditions.push({ enablerId: enablerId, enabledItems, disabledItems, enable });\n } else {\n const prev = conditions[index];\n const newId: ConditionChange = {\n enablerId,\n enabledItems: [...prev.enabledItems, ...enabledItems],\n disabledItems: [...prev.disabledItems, ...disabledItems],\n enable,\n };\n conditions.splice(index, 1, newId);\n }\n }\n }\n\n /**\n * Store all validation errors on the service.\n * Revalidate form controls that previously had errors or have new errors now.\n */\n private _updateServerSideErrors() {\n // Keep track of IDs for each control that needs to be revalidated\n const controlIdsToRevalidate = new Set<string>();\n\n // Collect controls previously in error to revalidate\n if (this._formItemValidationResults) {\n for (const id in this._formItemValidationResults) {\n if (Object.prototype.hasOwnProperty.call(this._formItemValidationResults, id)) {\n controlIdsToRevalidate.add(id);\n }\n }\n }\n\n // Clear out all previous stored errors\n this._formItemValidationResults = {};\n if (this._mtnaForm?.validationResult) {\n for (const result of this._mtnaForm.validationResult.formItemValidationResults) {\n if (result.validationStatus === 'ERRORS') {\n // Store errors so that the validationResultValidator can validate each control\n this._formItemValidationResults[result.id] = result;\n // We need to revalidate these controls that have errors\n controlIdsToRevalidate.add(result.id);\n }\n }\n }\n\n // Only revalidate controls actually changes\n const form = this.ngFormService.getForm();\n if (form) {\n for (const id of controlIdsToRevalidate) {\n const control = findFormControl(id, form);\n if (control) {\n control.updateValueAndValidity();\n }\n }\n }\n }\n\n //#endregion\n}\n","import { Injectable } from '@angular/core';\nimport { ResourceReference } from '@mtna/web-form-ts';\nimport { Result } from '@mtna/search-manager-ts';\nimport { MtnaSearchSelectionService } from '@mtna/search-manager-angular';\n\n@Injectable()\nexport class MtnaWfResourceSearchSelectionService extends MtnaSearchSelectionService<ResourceReference> {\n getModelFromResult(result: Result): ResourceReference {\n const referenceDetails: ResourceReference = {\n // FIXME these need to come from the item.\n uri: result.getFieldByName<string>('uri')?.value || '',\n display: result.getFieldByName<string>('title')?.value || '',\n };\n return referenceDetails;\n }\n\n modelIsResult(model: ResourceReference, result: Result): boolean {\n return model.uri === result.getFieldByName<string>('uri')?.value;\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { AfterViewInit, Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { CanDestroyNotify, mixinDestroyNotifier } from '@mtna/core-angular';\nimport { AnnotatableNumberMap } from '@mtna/pojo-social-angular';\nimport { Form, FormControlStatus, FormItem } from '@mtna/web-form-ts';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { distinctUntilChanged, skipWhile, takeUntil } from 'rxjs/operators';\n\nimport { FormStep } from '../../models';\nimport { MtnaWfManagerService, MtnaWfNgFormService, MtnaWfUIService } from '../../services';\nimport { findFormControl } from '../../utilities';\n\nconst _BaseFormComponent = mixinDestroyNotifier(class {});\n\n@Component({\n template: ``,\n})\nexport class MtnaWfBaseFormComponent<F extends Form = Form>\n extends _BaseFormComponent\n implements AfterViewInit, CanDestroyNotify, OnDestroy\n{\n static ngAcceptInputType_emitStatusOnMtnaFormChange: BooleanInput;\n static ngAcceptInputTypes_readonly: BooleanInput;\n\n @Input()\n set annotations(map: AnnotatableNumberMap) {\n this.uiService.registerAnnotations(map);\n }\n\n /** Whether to emit the status of each step each time the {@link mtnaForm} is set to a new value. Defaults to false.*/\n @Input()\n get emitStatusOnMtnaFormChange(): boolean {\n return this._emitStatusOnMtnaFormChange;\n }\n set emitStatusOnMtnaFormChange(emitStatusOnMtnaFormChange: boolean) {\n this._emitStatusOnMtnaFormChange = coerceBooleanProperty(emitStatusOnMtnaFormChange);\n }\n private _emitStatusOnMtnaFormChange = false;\n\n @Input()\n get mtnaForm(): F | null | undefined {\n return this._mtnaForm;\n }\n set mtnaForm(form: F | null | undefined) {\n if (!!form && !this.ngForm) {\n // serialize the form when input is set the first time\n this._handleFormSerialization(form);\n this._checkAndSubscribeToFormStatus();\n }\n this._mtnaForm = form;\n if (form) {\n this.mtnaFormManager.setMtnaForm(form);\n\n // If indicated, re-emit the status of each step when there is a new form\n if (this.emitStatusOnMtnaFormChange && this.ngForm) {\n for (const key in this._steps) {\n if (Object.prototype.hasOwnProperty.call(this._steps, key)) {\n this._emitFormControlStatus(key);\n }\n }\n }\n }\n }\n private _mtnaForm: F | null | undefined;\n\n /**\n * The form can contain sections not included in the steps.\n * To avoid misalignment of steps-to-sections, we map each step to\n * its instanceId\n */\n @Input()\n set steps(newSteps: Array<FormStep> | null | undefined) {\n if (!!newSteps && !!newSteps.length) {\n if (!this._steps) {\n this._steps = {};\n }\n for (const step of newSteps) {\n this._steps[step.instanceId] = step;\n }\n this._checkAndSubscribeToFormStatus();\n }\n }\n\n @Input()\n get readonly(): boolean {\n return this.readonly$.value;\n }\n set readonly(r: boolean) {\n const newValue = coerceBooleanProperty(r);\n if (newValue !== this.readonly$.value) {\n this.readonly$.next(r);\n }\n }\n private readonly$ = new BehaviorSubject<boolean>(true);\n\n /**\n * Emitted every time a form control's validation status changes.\n * The `id` is the form control's name and the `status` is the new validation status for the control.\n */\n @Output() status = new EventEmitter<{ id: string; status: FormControlStatus }>();\n @Output() focusedSection = new EventEmitter<FormStep>();\n @Output() mtnaFormChange = new EventEmitter<F>();\n\n ngForm: FormGroup | undefined;\n componentIds = [];\n _steps: { [id: string]: FormStep } | undefined;\n\n private _constructionDate: Date;\n private _hasPreviousForm = false;\n private _ngFormStatusChangeSub?: Subscription;\n private _mtnaFormItemChangeSub?: Subscription;\n private _initialStatusEmitted = false;\n\n constructor(\n protected mtnaFormManager: MtnaWfManagerService,\n protected ngFormService: MtnaWfNgFormService,\n protected uiService: MtnaWfUIService\n ) {\n super();\n this._constructionDate = new Date();\n // Initialize the subscription to observe input changes\n this._subscribeAndEmitMtnaFormChanges();\n }\n\n ngAfterViewInit(): void {\n const afterViewInitDate = new Date();\n const secondsToRender = (afterViewInitDate.getTime() - this._constructionDate.getTime()) / 1000;\n console.warn('[MtnaFormComponent] afterViewInit - took ', secondsToRender, ' to render');\n }\n\n ngOnDestroy() {\n super.ngOnDestroy();\n this.uiService.resetComponentMap();\n }\n\n _trackByInstanceId(index: number, formItem: FormItem) {\n return formItem.instanceId;\n }\n\n /** Subscribe and emit form status changes for the steps. */\n private _checkAndSubscribeToFormStatus() {\n // Only subscribe once both the steps and the angular have been initialized\n if (this.ngForm && this._steps) {\n // Update form status subscriptions anytime the readonly input changes\n this.readonly$.pipe(takeUntil(this.destroyed$), distinctUntilChanged()).subscribe((readonly) => {\n if (readonly) {\n // Don't emit statuses while form is in readonly\n this._unsubscribeFromNgFormChanges();\n } else if (!this._ngFormStatusChangeSub || this._ngFormStatusChangeSub.closed) {\n // For performance, subscribe should only trigger again if the subscription didn't previously exist\n this._emitInitialStepsStatusAndSubscribeToChanges(!this._initialStatusEmitted);\n this._initialStatusEmitted = true;\n }\n });\n }\n }\n\n /**\n * Find a form control with the given name, then emit it's status.\n *\n * @param name — The unique name of the form control to find and emit the status for.\n */\n private _emitFormControlStatus(name: string) {\n if (this.ngForm) {\n const control = findFormControl(name, this.ngForm);\n if (control) {\n this.status.emit({\n id: name,\n status: control.status as FormControlStatus,\n });\n }\n }\n }\n\n /**\n * @param emitInitialValues Whether to emit initial step values or just listen for future changes\n */\n private _emitInitialStepsStatusAndSubscribeToChanges(emitInitialValues: boolean) {\n if (this._steps && this.ngForm) {\n this._unsubscribeFromNgFormChanges();\n this._ngFormStatusChangeSub = new Subscription();\n\n // Find the form control for each step and only subscribe to those.\n for (const key in this._steps) {\n if (Object.prototype.hasOwnProperty.call(this._steps, key)) {\n const control = findFormControl(key, this.ngForm);\n if (control) {\n if (emitInitialValues) {\n this.status.emit({\n id: key,\n // Angular introduced this status in v13, once we update, this type cast can be removed.\n status: control.status as FormControlStatus,\n });\n }\n // Subscribe to status changes of each step & emit on change\n this._ngFormStatusChangeSub.add(\n control.statusChanges.pipe(takeUntil(this.destroyed$), distinctUntilChanged()).subscribe((status) => {\n this.status.emit({ id: key, status });\n })\n );\n }\n }\n }\n }\n }\n\n /**\n * Observes input changes for readOnly, in order to handle internal change subscriptions.\n * When the form is not readonly, we subscribe to form status & form item changes, so we can emit them.\n * When the form is readonly, we do not want to emit any changes, so we unsubscribe.\n */\n private _subscribeAndEmitMtnaFormChanges() {\n this.readonly$\n .pipe(\n takeUntil(this.destroyed$),\n // we don't want to create subscriptions until we have a form to subscribe to\n skipWhile(() => !this.mtnaForm),\n distinctUntilChanged()\n )\n .subscribe((readonly) => {\n if (readonly) {\n this._unsubscribeFromMtnaFormChanges();\n } else if (!this._mtnaFormItemChangeSub || this._mtnaFormItemChangeSub.closed) {\n // For performance, subscribe should only trigger again if one of the subscriptions didn't previously exist\n this._subscribeToMtnaFormItemChanges();\n }\n });\n }\n\n private _handleFormSerialization(form: Form) {\n // Get the registered form from the service if it exists\n this._hasPreviousForm = this.ngFormService.hasForm();\n if (this._hasPreviousForm) {\n this.ngForm = this.ngFormService.getForm();\n // FIXME this is necessary because the initial visiblity is based on the mtnaForm item's disable property\n // If the user changes a value, goes to another tab (destroying form) and comes back, the initial values are incorrect\n this.mtnaForm = this.mtnaFormManager.insertNewValues(form, this.ngFormService.getFormValue()) as F;\n } else {\n this.ngForm = this.mtnaFormManager.serializeMtnaFormItem(form) as FormGroup;\n this.ngFormService.setForm(this.ngForm);\n }\n }\n\n /**\n * Adds or removes a FormItem whenever a new MtnaWfFormItemChange occurs,\n * and emits a new MtnaForm.\n */\n private _subscribeToMtnaFormItemChanges() {\n this._unsubscribeFromMtnaFormChanges();\n this._mtnaFormItemChangeSub = this.mtnaFormManager.formChanges\n .pipe(\n takeUntil(this.destroyed$),\n skipWhile((change) => !change)\n )\n .subscribe((newForm: Form) => this.mtnaFormChange.emit(newForm as F));\n }\n\n private _unsubscribeFromNgFormChanges() {\n if (!!this._ngFormStatusChangeSub && !this._ngFormStatusChangeSub.closed) {\n this._ngFormStatusChangeSub.unsubscribe();\n }\n }\n\n private _unsubscribeFromMtnaFormChanges() {\n if (!!this._mtnaFormItemChangeSub && !this._mtnaFormItemChangeSub.closed) {\n this._mtnaFormItemChangeSub.unsubscribe();\n }\n }\n}\n","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: '[formDisabled]',\n template: `\n <fieldset [disabled]=\"formDisabled\">\n <ng-content></ng-content>\n </fieldset>\n `,\n styles: [\n `\n fieldset {\n display: block;\n margin: unset;\n padding: unset;\n border: unset;\n }\n `,\n ],\n})\nexport class MtnaWfFormDisablerComponent {\n @Input() formDisabled = false;\n}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Form } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormComponent } from '../base-form';\n\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n@Component({\n selector: 'mtna-form',\n templateUrl: './form.component.html',\n styleUrls: ['./form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n outputs: ['status', 'focusedSection', 'mtnaFormChange'],\n})\nexport class MtnaWfFormComponent extends MtnaWfBaseFormComponent<Form> {}\n","<form *ngIf=\"ngForm\" [formGroup]=\"ngForm\" [formDisabled]=\"readonly\">\n <mtna-wf-item\n *ngFor=\"let item of mtnaForm?.items | mtnaWfFilterHiddenItems; let index = index; trackBy: _trackByInstanceId\"\n [item]=\"item\"\n [control]=\"ngForm.controls[item.instanceId]\"\n [readonly]=\"readonly\"\n [parentIds]=\"componentIds\"\n [step]=\"_steps?.[item.instanceId]\"\n (focusedSection)=\"focusedSection.emit($event)\"\n ></mtna-wf-item>\n</form>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MtnaWfFormDisablerComponent } from './form-disabler.component';\n\n@NgModule({\n imports: [CommonModule],\n exports: [MtnaWfFormDisablerComponent],\n declarations: [MtnaWfFormDisablerComponent],\n})\nexport class MtnaWfFormDisablerModule {}\n","import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input, ViewEncapsulation } from '@angular/core';\nimport { CanColor, mixinColor } from '@angular/material/core';\n\nimport { FormStep } from '../../../models/form-stepper/form-step.model';\n\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\nconst _FormStepMixinBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n },\n 'primary'\n);\n\n/**\n * A component that represents a single step in a form stepper.\n * NOTE:\n * - disabled: property on the FormStep used to determine if the step is disabled. This will affect the disabled property and the clickable property.\n * - clickable: property on the FormStep used to determine if the step is clickable. This does not affect the disabled property.\n */\n@Component({\n selector: 'mtna-wf-step',\n templateUrl: './form-step.component.html',\n styleUrls: ['./form-step.component.scss'],\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfFormStepComponent extends _FormStepMixinBase implements CanColor {\n @HostBinding('class.disabled') disabled = false;\n\n @Input()\n get step(): FormStep {\n return this._step;\n }\n set step(step: FormStep) {\n this._step = step;\n this.disabled = step.status === 'DISABLED' || step.disabled;\n }\n private _step!: FormStep;\n\n @HostBinding('class.clickable')\n @Input()\n get clickable() {\n return !this.disabled && this._clickable;\n }\n set clickable(clickable: boolean) {\n this._clickable = clickable;\n }\n private _clickable = true;\n\n @Input() incompleteIcon: string | null | undefined;\n\n notApplicableText = $localize`Not Applicable`;\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n\n /**\n * Prevents click event if this step is not clickable\n */\n _haltClickEvent(event: Event) {\n if (!this.clickable) {\n event.preventDefault();\n event.stopImmediatePropagation();\n }\n }\n}\n","<li\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n matRipple\n [matRippleDisabled]=\"!clickable\"\n [class.active-step]=\"step.active\"\n (click)=\"_haltClickEvent($event)\"\n>\n <mtna-status-circle\n [color]=\"color\"\n [circleNumber]=\"step.num\"\n [incompleteIcon]=\"incompleteIcon\"\n [optional]=\"step.optional\"\n [status]=\"step.status\"\n ></mtna-status-circle>\n <div fxLayout=\"column\" fxFlex=\"100\">\n <p class=\"step-title\">{{ step.label }}</p>\n <p *ngIf=\"step.optional && !disabled\" class=\"step-status\" i18n>Optional</p>\n <p *ngIf=\"disabled\" class=\"step-status\">{{ step.disabledText || notApplicableText }}</p>\n </div>\n</li>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CanColor, mixinColor } from '@angular/material/core';\n\nimport { FormStep } from '../../../models';\n\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\nconst _FormStepMixinBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n },\n 'primary'\n);\n\n@Component({\n selector: 'mtna-wf-step-group',\n templateUrl: './form-step-group.component.html',\n styleUrls: ['./form-step-group.component.scss'],\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfFormStepGroupComponent extends _FormStepMixinBase implements CanColor {\n /** Whether all but the first step is hidden*/\n @Input() collapsed = false;\n @Input() incompleteIcon: string | null | undefined;\n /** Steps to be displayed */\n @Input()\n get steps() {\n return this._steps;\n }\n set steps(steps: FormStep[]) {\n this._steps = steps;\n }\n private _steps: FormStep[] = [];\n\n @Output() selected = new EventEmitter<FormStep>();\n\n _collapsedText = $localize`View All`;\n _hideText = $localize`Hide`;\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n}\n","<ng-container *ngFor=\"let step of steps | slice : 0 : (collapsed ? 1 : steps.length); let last = last\">\n <mtna-wf-step\n [clickable]=\"step.status !== 'DISABLED' && step.status !== 'PLACEHOLDER'\"\n [color]=\"color\"\n [incompleteIcon]=\"incompleteIcon\"\n [step]=\"step\"\n (click)=\"selected.emit(step)\"\n ></mtna-wf-step>\n <mat-divider *ngIf=\"!last\" [vertical]=\"true\"></mat-divider>\n <p *ngIf=\"collapsed\" class=\"show-more mat-caption\" i18n>and {{ steps.length - 1 }} more...</p>\n</ng-container>\n<button\n mat-icon-button\n class=\"collapse-button\"\n [color]=\"color\"\n (click)=\"collapsed = !collapsed\"\n [matTooltip]=\"collapsed ? _collapsedText : _hideText\"\n>\n <mat-icon>{{ collapsed ? 'expand_more' : 'expand_less' }}</mat-icon>\n</button>\n","import { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CanColor, mixinColor } from '@angular/material/core';\n\nimport { FormStep, FormStepGroup, isFormStepGroup } from '../../../models';\n\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\nconst _FormStepperMixinBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n },\n 'primary'\n);\n\n/**\n * Vertical stepper component, ability to show step statuses and allows clicking each step.\n *\n * @export\n * @author Will Davis <will.davis@mtna.us>\n */\n@Component({\n selector: 'mtna-wf-stepper',\n // templateUrl: './form-stepper.component.html',\n templateUrl: './form-stepper-new.component.html',\n styleUrls: ['./form-stepper.component.scss'],\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfFormStepperComponent extends _FormStepperMixinBase implements CanColor {\n @Input() incompleteIcon: string | null | undefined;\n /** Form steps */\n @Input()\n get steps(): Array<FormStep | FormStepGroup> {\n return this._steps;\n }\n set steps(steps: Array<FormStep | FormStepGroup>) {\n this._steps = steps;\n this.createGroupStepCollapsedMap(steps);\n }\n private _steps: Array<FormStep | FormStepGroup> = [];\n /** When a step is selected */\n @Output() selected = new EventEmitter<FormStep>();\n\n groupStepCollapsedMap: { [key: string]: boolean } = {};\n\n notApplicableText = $localize`Not Applicable`;\n _collapsedText = $localize`View All`;\n _hideText = $localize`Hide`;\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n\n /**\n * Improves effeciency of the *ngFor loop that creates the steps.\n *\n * @param index index of loop\n * @param step current step in loop\n * @returns unique string to key each item in the loop\n */\n _trackStep(index: number, step: FormStep | FormStepGroup) {\n return step.instanceId || index;\n }\n\n /**\n * Prevents click event if this step is not clickable\n */\n _haltClickEvent(event: Event, step: FormStep) {\n const clickable = step.status !== 'DISABLED' && step.status !== 'PLACEHOLDER';\n if (!clickable) {\n event.preventDefault();\n event.stopImmediatePropagation();\n } else {\n this.selected.emit(step);\n }\n }\n\n createGroupStepCollapsedMap(steps: Array<FormStep | FormStepGroup>) {\n steps.forEach((step) => {\n if (isFormStepGroup(step)) {\n this.groupStepCollapsedMap[step.instanceId] = step.collapsed;\n }\n });\n }\n\n toggleGroupStep(step: FormStepGroup) {\n this.groupStepCollapsedMap[step.instanceId] = !this.groupStepCollapsedMap[step.instanceId];\n }\n}\n","<ol>\n <ng-container *ngFor=\"let step of steps; let last = last; trackBy: _trackStep\">\n <ng-container\n [ngTemplateOutlet]=\"(step | mtnaWfStepGroupPipe) ? groupStep : singleStep\"\n [ngTemplateOutletContext]=\"{ $implicit: step }\"\n ></ng-container>\n </ng-container>\n</ol>\n\n<ng-template #singleStep let-step>\n <ng-container *ngIf=\"step | coerceFormStep as singleStep\">\n <li\n fxLayout=\"row\"\n fxLayouAlign=\"start center\"\n [ngClass]=\"{\n 'disabled-step': singleStep.status === 'DISABLED',\n 'active-step': singleStep.active,\n clickable: singleStep.status !== 'DISABLED' && singleStep.status !== 'PLACEHOLDER'\n }\"\n >\n <ng-container [ngTemplateOutlet]=\"stepContent\" [ngTemplateOutletContext]=\"{ $implicit: singleStep }\"></ng-container>\n </li>\n </ng-container>\n</ng-template>\n\n<ng-template #groupStep let-step>\n <ng-container *ngIf=\"step | coerceFormStepGroup as groupStepParent\">\n <li\n fxLayout=\"column\"\n fxLayoutAlign=\"start start\"\n [class.child-step-active]=\"(groupStepParent.steps | childStepActive) && groupStepCollapsedMap[groupStepParent.instanceId]\"\n >\n <div fxFlex=\"100\" fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"mtna-wf-step-item-content\">\n <button\n fxFlex\n mat-button\n class=\"step-button\"\n [attr.aria-label]=\"groupStepParent | getStepAriaLabel : groupStepCollapsedMap[groupStepParent.instanceId]\"\n (click)=\"toggleGroupStep(step)\"\n >\n <mtna-status-circle [color]=\"color\" [circleNumber]=\"groupStepParent.num\" [incompleteIcon]=\"incompleteIcon\"></mtna-status-circle>\n <div fxLayout=\"row\" class=\"step-button-label-wrapper\" fxFlex=\"100\">\n <p class=\"step-title\">{{ groupStepParent.label }}</p>\n </div>\n <mat-icon>{{ groupStepCollapsedMap[step.instanceId] ? 'expand_more' : 'expand_less' }}</mat-icon>\n </button>\n </div>\n <ol class=\"group-step-list\">\n <ng-container\n *ngFor=\"\n let groupStep of step.steps | slice : 0 : (groupStepCollapsedMap[step.instanceId] ? 0 : step.steps.length);\n let last = last\n \"\n >\n <!-- All children in the steps property of FormStepGroup are FormStep(s). Only using coercion here to assist in defining properties we can use. -->\n <li\n *ngIf=\"groupStep | coerceFormStep as groupStepChild\"\n fxLayout=\"row\"\n fxLayouAlign=\"start center\"\n [ngClass]=\"{\n 'disabled-step': groupStepChild.status === 'DISABLED',\n 'active-step': groupStepChild.active,\n clickable: groupStepChild.status !== 'DISABLED' && groupStepChild.status !== 'PLACEHOLDER',\n 'group-step': true\n }\"\n >\n <ng-container\n [ngTemplateOutlet]=\"stepContent\"\n [ngTemplateOutletContext]=\"{ $implicit: groupStepChild, isChildStep: true }\"\n ></ng-container>\n </li>\n </ng-container>\n </ol>\n </li>\n </ng-container>\n</ng-template>\n\n<!-- The individual, stand-alone step template -->\n<ng-template #stepContent let-step let-isChildStep=\"isChildStep\">\n <div fxFlex=\"100\" fxLayout=\"row\" fxLayoutAlign=\"start center\" class=\"mtna-wf-step-item-content\">\n <mat-divider *ngIf=\"isChildStep\" [vertical]=\"true\"></mat-divider>\n <button\n fxFlex\n mat-button\n class=\"step-button\"\n [attr.aria-label]=\"step | getStepAriaLabel\"\n [disabled]=\"step.status === 'DISABLED' || step.status === 'PLACEHOLDER'\"\n (click)=\"_haltClickEvent($event, step)\"\n >\n <mtna-status-circle\n [color]=\"color\"\n [circleNumber]=\"step.num\"\n [incompleteIcon]=\"incompleteIcon\"\n [optional]=\"step.optional\"\n [status]=\"step.status\"\n ></mtna-status-circle>\n <div fxLayout=\"column\" class=\"step-button-label-wrapper\">\n <p class=\"step-title\">{{ step.label }}</p>\n <p *ngIf=\"step.optional && step.status !== 'DISABLED'\" class=\"step-status\" i18n>Optional</p>\n <p *ngIf=\"step.status === 'DISABLED'\" class=\"step-status\">{{ step.disabledText || notApplicableText }}</p>\n </div>\n </button>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MtnaStatusCircleModule } from '@mtna/core-angular';\n\nimport {\n ChildStepActivePipeModule,\n CoerceFormStepGroupPipeModule,\n CoerceFormStepPipeModule,\n GetStepAriaLabelModule,\n MtnaWfFormStepGroupPipeModule,\n} from '../../pipes';\nimport { MtnaWfFormStepGroupComponent } from './form-step-group';\nimport { MtnaWfFormStepComponent } from './form-step/form-step.component';\nimport { MtnaWfFormStepperComponent } from './form-stepper/form-stepper.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FlexLayoutModule,\n MatDividerModule,\n MtnaStatusCircleModule,\n MatRippleModule,\n MatButtonModule,\n MatTooltipModule,\n MatIconModule,\n MtnaWfFormStepGroupPipeModule,\n CoerceFormStepGroupPipeModule,\n CoerceFormStepPipeModule,\n ChildStepActivePipeModule,\n GetStepAriaLabelModule,\n ],\n declarations: [MtnaWfFormStepComponent, MtnaWfFormStepGroupComponent, MtnaWfFormStepperComponent],\n exports: [MtnaWfFormStepComponent, MtnaWfFormStepGroupComponent, MtnaWfFormStepperComponent],\n})\nexport class MtnaWfFormStepperModule {}\n","import { FocusOrigin } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, Component, ElementRef, EventEmitter, HostBinding, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { CanColor, mixinColor } from '@angular/material/core';\n\nimport { FormStep } from '../../models/form-stepper/form-step.model';\n\n/* eslint-disable @angular-eslint/no-inputs-metadata-property */\nconst _StepCardMixinBase = mixinColor(\n class {\n constructor(public _elementRef: ElementRef) {}\n },\n 'accent'\n);\n\n@Component({\n selector: 'mtna-wf-step-card',\n templateUrl: './step-card.component.html',\n styleUrls: ['./step-card.component.scss'],\n inputs: ['color'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfStepCardComponent extends _StepCardMixinBase implements CanColor {\n @HostBinding('class.active')\n get active(): boolean {\n return !!this.step?.active;\n }\n\n // @Input() step: FormStep | null | undefined;\n @Input()\n get step(): FormStep | null | undefined {\n return this._step;\n }\n set step(step: FormStep | null | undefined) {\n this._step = step;\n console.warn({ stepInsideStepCard: step });\n }\n private _step: FormStep | null | undefined;\n\n @Input() subtitle: string | null | undefined;\n\n @Output() focused = new EventEmitter<FormStep>();\n\n constructor(elementRef: ElementRef) {\n super(elementRef);\n }\n\n handleFocusChange(event: FocusOrigin) {\n if (!!this.step && !!event && !this.step.active) {\n this.focused.emit(this.step);\n }\n }\n}\n","<mat-card cdkMonitorSubtreeFocus (cdkFocusChange)=\"handleFocusChange($event)\">\n <mat-card-header>\n <mtna-status-circle mat-card-avatar [circleNumber]=\"step?.num\" [optional]=\"step?.optional\" [status]=\"step?.status\"></mtna-status-circle>\n <mat-card-title>{{ step?.label }}</mat-card-title>\n <mat-card-subtitle [innerHTML]=\"subtitle | mtnaWfSanitizeHtml\"></mat-card-subtitle>\n <p *ngIf=\"step?.optional\" class=\"optional mat-caption\" i18n>Optional</p>\n </mat-card-header>\n\n <mat-divider [inset]=\"true\"></mat-divider>\n\n <mat-card-content>\n <ng-content select=\"[cardContent]\"></ng-content>\n </mat-card-content>\n\n <mat-card-actions>\n <ng-content select=\"[cardActions]\"></ng-content>\n </mat-card-actions>\n</mat-card>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MtnaStatusCircleModule } from '@mtna/core-angular';\n\nimport { MtnaWfSanitizeHtmlPipeModule } from '../../pipes/sanitize-html.pipe';\nimport { MtnaWfFormItemModule } from '../form-item/form-item.module';\nimport { MtnaWfStepCardComponent } from './step-card.component';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n MatCardModule,\n MtnaStatusCircleModule,\n MtnaWfSanitizeHtmlPipeModule,\n MatDividerModule,\n MtnaWfFormItemModule,\n ],\n declarations: [MtnaWfStepCardComponent],\n exports: [MtnaWfStepCardComponent],\n})\nexport class MtnaWfStepCardModule {}\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { ErrorStateMatcher } from '@angular/material/core';\n\nimport { MtnaWfInstantValidationResultErrorStateMatcher } from '../../validators/instant-validation-result-error-state-matcher';\nimport { MtnaWfFormDisablerModule } from '../form-disabler/form-disabler.module';\nimport { MtnaWfFormItemModule } from '../form-item/form-item.module';\nimport { MtnaWfFormStepperModule } from '../form-stepper/form-stepper.module';\nimport { MtnaWfStepCardModule } from '../step-card/step-card.module';\nimport { MtnaWfFormComponent } from './form.component';\nimport { MtnaWfFilterHiddenItemsPipeModule } from '../../pipes';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n FlexLayoutModule,\n FormsModule,\n MtnaWfFormItemModule,\n ReactiveFormsModule,\n MtnaWfFormDisablerModule,\n MatMomentDateModule,\n MtnaWfFilterHiddenItemsPipeModule,\n MtnaWfFormStepperModule,\n MtnaWfStepCardModule,\n ],\n declarations: [MtnaWfFormComponent],\n exports: [MtnaWfFormComponent],\n providers: [{ provide: ErrorStateMatcher, useClass: MtnaWfInstantValidationResultErrorStateMatcher }],\n})\nexport class MtnaFormModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatSlideToggleChange } from '@angular/material/slide-toggle';\nimport { BooleanItem, FormItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfUIService } from '../../../services/ui.service';\nimport { MtnaWfBaseParentValueItem } from '../../base-items/base-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-boolean-item',\n templateUrl: './boolean.component.html',\n styleUrls: ['./boolean.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfBooleanComponent extends MtnaWfBaseParentValueItem<BooleanItem, FormControl> {\n constructor(cdr: ChangeDetectorRef, private uiService: MtnaWfUIService) {\n super(cdr);\n }\n\n toggleChange(change: MatSlideToggleChange) {\n this.uiService.toggleFormItems(this.item.option.enabledItems, this.item.option.disabledItems, change.checked, this.item.instanceId);\n }\n\n _trackByInstanceId(index: number, item: { key: string; value: FormItem }) {\n return item.value.instanceId;\n }\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<mat-slide-toggle\n *ngIf=\"control\"\n [aria-label]=\"item.option.option.name\"\n [formControl]=\"control\"\n [disabled]=\"readonly\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\"\n (change)=\"toggleChange($event)\"\n >{{ item.option.option.name }}</mat-slide-toggle\n>\n<ng-container *ngIf=\"!!item.optionItemMap\">\n <mtna-wf-item\n *ngFor=\"let f of item.optionItemMap | keyvalue; trackBy: _trackByInstanceId\"\n [item]=\"f.value\"\n [control]=\"!!controlWrapper && controlWrapper.controls ? controlWrapper.controls[f.value.instanceId] : undefined\"\n [parentIds]=\"parentIds\"\n [readonly]=\"readonly\"\n ></mtna-wf-item>\n <ng-container> </ng-container>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfAcknowledgeDialogModule } from '../../acknowledge-dialog/acknowledge-dialog.module';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfBooleanComponent } from './boolean.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatSlideToggleModule,\n MtnaWfFormItemModule,\n FormsModule,\n ReactiveFormsModule,\n MtnaWfAcknowledgeDialogModule,\n MtnaHighlightModule,\n ],\n declarations: [MtnaWfBooleanComponent],\n exports: [MtnaWfBooleanComponent],\n})\nexport class MtnaWfBooleanModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, OnDestroy, ViewEncapsulation } from '@angular/core';\nimport { FormArray } from '@angular/forms';\nimport { MatCheckboxChange } from '@angular/material/checkbox';\nimport { CanDestroyNotify } from '@mtna/core-angular';\nimport { CheckboxItem, Section } from '@mtna/web-form-ts';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { MtnaWfDialogService } from '../../../services/dialog.service';\nimport { MtnaWfBaseParentValueItem } from '../../base-items/base-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-checkbox-item',\n templateUrl: './checkbox.component.html',\n styleUrls: ['./checkbox.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfCheckboxComponent extends MtnaWfBaseParentValueItem<CheckboxItem, FormArray> implements CanDestroyNotify, OnDestroy {\n destroyed$ = new Subject<void>();\n _acknowledgementText = $localize`Acknowledged. Click to view the agreement.`;\n\n constructor(cdr: ChangeDetectorRef, private dialogService: MtnaWfDialogService) {\n super(cdr);\n }\n\n handleChange(change: MatCheckboxChange, index: number) {\n const option = this.item.options[index];\n const formControl = this.control?.controls[index];\n\n // If the user is trying to make a selection with something that has an acknowledgement,\n // show the acknowledge dialog first to get their consent.\n // Note: we don't need to show the acknowledgement if the user is unchecking the box.\n if (option.acknowledgement && formControl?.value) {\n // Revert the checkbox to an unchecked state until they agree to the acknowledgement\n formControl?.setValue(false);\n this.dialogService\n .verifyAcknowledgement(option.acknowledgement)\n .pipe(takeUntil(this.destroyed$))\n .subscribe((acknowledged) => {\n if (acknowledged) {\n formControl?.setValue(true);\n this.toggleFormItems.emit({\n enabledItemIds: option.enabledItems,\n disabledItemIds: option.disabledItems,\n enabled: change.checked,\n callerId: this.item.instanceId,\n });\n }\n });\n } else {\n this.toggleFormItems.emit({\n enabledItemIds: option.enabledItems,\n disabledItemIds: option.disabledItems,\n enabled: change.checked,\n callerId: this.item.instanceId,\n });\n }\n }\n\n ngOnDestroy() {\n this.destroyed$.next();\n this.destroyed$.complete();\n }\n\n /**\n * Display what the user already acknowledged for a given option.\n * @param event the browser event when the button was invoked\n * @param acknowledgementItem The form item that represents the acknowledgement text to display to the user.\n * */\n showAcknowledgement(event: Event, acknowledgementItem: Section) {\n event.stopPropagation();\n event.preventDefault();\n this.dialogService.showAcknowledgement(acknowledgementItem);\n }\n\n /**\n * Stop a browser event from propagating\n * @param event the event to stop\n */\n stopEventPropagation(event: Event) {\n event.stopPropagation();\n }\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<div *ngIf=\"hasItemHeader\" class=\"mtna-wf-error-container\">\n <ng-container *ngIf=\"control?.invalid && (control?.dirty || control?.touched)\">\n <mat-error *ngFor=\"let error of control?.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </ng-container>\n</div>\n<fieldset\n class=\"control-item-content\"\n [class.single-option]=\"item.options.length === 1\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <ng-container *ngFor=\"let opt of item.options; let i = index; trackBy: _trackByOptionId\">\n <div *ngIf=\"!!control && !!control.controls && !!control.controls[i]\" fxLayout=\"row\">\n <mat-checkbox\n [disableRipple]=\"readonly\"\n [formControl]=\"$any(control.controls[i])\"\n [color]=\"color\"\n [disabled]=\"readonly\"\n (change)=\"handleChange($event, i)\"\n >{{ opt.option.name }}\n </mat-checkbox>\n <button\n *ngIf=\"opt.acknowledgement && control.controls[i].value\"\n mat-icon-button\n class=\"acknowledge-verification-button\"\n [attr.aria-label]=\"_acknowledgementText\"\n [matTooltip]=\"_acknowledgementText\"\n matTooltipShowDelay=\"800\"\n (click)=\"showAcknowledgement($event, opt.acknowledgement)\"\n (mousedown)=\"stopEventPropagation($event)\"\n (touchstart)=\"stopEventPropagation($event)\"\n >\n <mat-icon>verified</mat-icon>\n </button>\n </div>\n <ng-container *ngIf=\"item.optionItemMap[opt.option.id]\">\n <mtna-wf-item\n *ngIf=\"item.optionItemMap[opt.option.id] as subItem\"\n [item]=\"subItem\"\n [control]=\"!!controlWrapper && controlWrapper.controls ? controlWrapper.controls[subItem.instanceId] : undefined\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds.concat(opt.option.id)\"\n ></mtna-wf-item>\n </ng-container>\n </ng-container>\n</fieldset>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { MtnaWfFormItemModule } from '../form-item/form-item.module';\nimport { MtnaWfFormItemDialogComponent } from './form-item-dialog.component';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, MtnaWfFormItemModule, MatButtonModule],\n declarations: [MtnaWfFormItemDialogComponent],\n exports: [MtnaWfFormItemDialogComponent],\n})\nexport class MtnaWfFormItemDialogModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetFormControlErrorPipeModule } from '../../../pipes/get-form-control-error.pipe';\nimport { MtnaWfFormItemDialogModule } from '../../form-item-dialog/form-item-dialog.module';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfCheckboxComponent } from './checkbox.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaWfGetFormControlErrorPipeModule,\n FlexLayoutModule,\n FormsModule,\n MatFormFieldModule,\n MatCheckboxModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MtnaWfFormItemModule,\n MtnaHighlightModule,\n ReactiveFormsModule,\n MtnaWfFormItemDialogModule,\n ],\n declarations: [MtnaWfCheckboxComponent],\n exports: [MtnaWfCheckboxComponent],\n})\nexport class MtnaWfCheckboxModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Input,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { MatDateFormats } from '@angular/material/core';\nimport { MatDatepicker } from '@angular/material/datepicker';\nimport { MtnaLogger } from '@mtna/core-angular';\nimport { DateItem, DateRange } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport type { MatDatepickerInput } from '@angular/material/datepicker';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any,no-var\ndeclare var moment: any;\n\n@Component({\n selector: 'mtna-wf-date-item',\n templateUrl: './date.component.html',\n styleUrls: ['./date.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfDateComponent extends MtnaWfBaseValueItem<DateItem, FormControl> implements AfterViewInit {\n static dateFormItemComponentInstances = 0;\n @HostBinding('class.mtna-wf-date-item') dateItemClass = true;\n\n override get item(): DateItem {\n return super.item;\n }\n override set item(value: DateItem) {\n super.item = value;\n if (this.item.format) {\n this.configureDatePickerFormatter();\n }\n }\n\n // TODO: This is not currenlty used, the back end needs to add range limits on the DateItem in order for this to work\n // Remove once accomplished and replace usage with item.rangeLimits in the html\n @Input() rangeLimits: DateRange<Date | null> | null | undefined = { end: null, start: null };\n\n @ViewChild(MatDatepicker, { static: false }) picker: MatDatepicker<Date> | undefined;\n\n _dateText = $localize`Date`;\n\n constructor(cdr: ChangeDetectorRef, logger: MtnaLogger) {\n super(cdr);\n // We need to check to ensure 'moment' & 'moment-jdateformatparser' scripts have been added to angular.json so that\n // the DateFormItemComponent doesn't break when attempting to format SimpleDateFormat string to Moment format string\n MtnaWfDateComponent.dateFormItemComponentInstances++;\n if (MtnaWfDateComponent.dateFormItemComponentInstances === 1) {\n try {\n if (!!moment && typeof moment().toMomentFormatString !== 'function') {\n logger.error(`[DateFormItemComponent] constructor\n - Cannot find moment-jdateformatparser, make sure to install the dependency and add the script in angular.json, i.e.\n \"scripts\": [\"node_modules/moment-jdateformatparser/moment-jdateformatparser.min.js\"]`);\n }\n } catch (e) {\n logger.error(`[DateFormItemComponent] constructor\n - Cannot find moment.js, make sure to install the dependency and add the script in angular.json, i.e.\n \"scripts\": [\"node_modules/moment/min/moment.min.js\"]`);\n }\n }\n }\n\n ngAfterViewInit() {\n this.configureDatePickerFormatter();\n }\n\n /**\n * Manually change the parse and display formats of the date picker.\n * @see https://github.com/angular/components/issues/8355#issuecomment-376783293\n */\n private configureDatePickerFormatter() {\n if (this.picker) {\n const datepickerInput: MatDatepickerInput<Date> = this.picker.datepickerInput as MatDatepickerInput<Date>;\n // @ts-ignore: access the private date formats on the date picker\n const d: MatDateFormats = JSON.parse(JSON.stringify(datepickerInput._dateFormats));\n\n // Convert the Java SimpleDateFormat to the moment equivalents using moment-jdateformatparser\n const momentFormatString = moment().toMomentFormatString(this.item.format);\n // Use the converted format for the date picker display\n d.display.dateInput = momentFormatString;\n // Use the converted format for the date picker parser (user input)\n d.parse.dateInput = momentFormatString;\n // @ts-ignore: set the updated date formats\n datepickerInput._dateFormats = d;\n\n // @ts-ignore: manually format the current value in the date picker\n datepickerInput._formatValue(datepickerInput.value);\n }\n }\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<mat-form-field *ngIf=\"control\" appearance=\"outline\" [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\">\n <mat-label>{{ item.label || _dateText }}</mat-label>\n <input\n matInput\n [formControl]=\"control\"\n [matDatepicker]=\"picker\"\n [max]=\"rangeLimits?.end\"\n [min]=\"rangeLimits?.start\"\n placeholder=\"Choose a date\"\n i18n-placeholder\n [required]=\"item.required\"\n [disabled]=\"readonly || control.disabled\"\n />\n <mat-datepicker-toggle matSuffix [for]=\"picker\" [disabled]=\"readonly || control.disabled\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n <mat-hint>{{ item.format }}</mat-hint>\n</mat-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatMomentDateModule } from '@angular/material-moment-adapter';\nimport { MatDatepickerModule } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetFormControlErrorPipeModule } from '../../../pipes/get-form-control-error.pipe';\nimport { MtnaWfDateComponent } from './date.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n MatDatepickerModule,\n MatMomentDateModule,\n MtnaHighlightModule,\n ReactiveFormsModule,\n MtnaWfGetFormControlErrorPipeModule,\n ],\n declarations: [MtnaWfDateComponent],\n exports: [MtnaWfDateComponent],\n})\nexport class MtnaWfDateModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { DateItem, OffsetDateRangeItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-date-range',\n templateUrl: './date-range.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfDateRangeComponent extends MtnaWfBaseValueItem<OffsetDateRangeItem, FormGroup> {\n get item(): OffsetDateRangeItem {\n return this._item;\n }\n set item(item: OffsetDateRangeItem) {\n this._item = item;\n // Create fake items for the underlying date-item component\n this._startItem = { ...item, label: 'Start', value: undefined };\n this._endItem = { ...item, label: 'End', value: undefined };\n }\n\n _startItem!: DateItem;\n _endItem!: DateItem;\n toText = $localize`to`;\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n\n<div\n *ngIf=\"control\"\n class=\"range-item-container\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n fxLayoutGap=\"8px\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mtna-wf-date-item\n [control]=\"control.controls['start'] | mtnaWfCoerceFormControl\"\n [item]=\"_startItem\"\n [rangeLimits]=\"item.rangeLimits\"\n [readonly]=\"readonly\"\n ></mtna-wf-date-item>\n <span fxFlex=\"14px\"> {{ toText }} </span>\n <mtna-wf-date-item\n [control]=\"control.controls['end'] | mtnaWfCoerceFormControl\"\n [item]=\"_endItem\"\n [rangeLimits]=\"item.rangeLimits\"\n [readonly]=\"readonly\"\n ></mtna-wf-date-item>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfCoerceFormControlPipeModule } from '../../../pipes/coerce-form-control.pipe';\nimport { MtnaWfDateModule } from '../date/date.module';\nimport { MtnaWfDateRangeComponent } from './date-range.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaHighlightModule,\n MtnaWfDateModule,\n FlexLayoutModule,\n FormsModule,\n ReactiveFormsModule,\n MtnaWfCoerceFormControlPipeModule,\n ],\n declarations: [MtnaWfDateRangeComponent],\n exports: [MtnaWfDateRangeComponent],\n})\nexport class MtnaWfDateRangeModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { DropdownItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseSingleSelectionParentValueItem } from '../../base-items/base-single-selection-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-dropdown-item',\n templateUrl: './dropdown.component.html',\n styleUrls: ['./dropdown.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfDropdownComponent extends MtnaWfBaseSingleSelectionParentValueItem<DropdownItem> {}\n","<ng-container *ngTemplateOutlet=\"header; context: { $implicit: true }\"></ng-container>\n<mat-form-field\n *ngIf=\"!readonly && !!control; else readOnly\"\n appearance=\"outline\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mat-label>{{ item.label }}</mat-label>\n <mat-select\n [formControl]=\"control\"\n [panelClass]=\"'mtna-wf-dropdown-item__select-panel'\"\n [required]=\"item.required\"\n (selectionChange)=\"selectionChange($event)\"\n >\n <mat-option *ngIf=\"!item.required\" i18n>-- None --</mat-option>\n <mat-option *ngFor=\"let opt of item.options\" [value]=\"opt.option.id\" [disabled]=\"control.value === opt.option.id\">{{\n opt.option.name\n }}</mat-option>\n </mat-select>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n</mat-form-field>\n\n<ng-template #readOnly>\n <ng-container *ngIf=\"inList; else fullList\">\n <mat-list-item *ngIf=\"item.required || !!item.value\">\n <mat-icon *ngIf=\"item.label | mtnaWfGetListIcon as icon\" matListIcon>{{ icon }}</mat-icon>\n <h4 matLine>{{ item.label }}</h4>\n <p matLine>{{ item.value || control?.value | mtnaWfGetSelectedOptionName : item.options }}</p>\n </mat-list-item>\n </ng-container>\n\n <ng-template #fullList>\n <mat-list>\n <mat-list-item *ngIf=\"item.required || !!item.value\">\n <mat-icon *ngIf=\"item.label | mtnaWfGetListIcon as icon\" matListIcon>{{ icon }}</mat-icon>\n <h4 matLine>{{ item.label }}</h4>\n <p matLine>{{ item.value || control?.value | mtnaWfGetSelectedOptionName : item.options }}</p>\n </mat-list-item>\n </mat-list>\n </ng-template>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetFormControlErrorPipeModule, MtnaWfGetListIconPipeModule, MtnaWfGetSelectedOptionNamePipeModule } from '../../../pipes';\nimport { MtnaWfDropdownComponent } from './dropdown.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n MatSelectModule,\n MtnaHighlightModule,\n MatListModule,\n MatIconModule,\n MtnaWfGetFormControlErrorPipeModule,\n MtnaWfGetSelectedOptionNamePipeModule,\n MtnaWfGetListIconPipeModule,\n ReactiveFormsModule,\n ],\n declarations: [MtnaWfDropdownComponent],\n exports: [MtnaWfDropdownComponent],\n})\nexport class MtnaWfDropdownModule {}\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { FileService } from '@mtna/file-manager-angular';\nimport { FileInformation } from '@mtna/file-manager-ts';\nimport { FileUploadItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItemControl } from '../../base-items/base-form-item-control.component';\n\n@Component({\n selector: 'mtna-wf-file-upload-item',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n})\nexport class MtnaWfFileUploadComponent extends MtnaWfBaseFormItemControl<FileUploadItem, FormControl> implements OnInit {\n fileInfo?: FileInformation;\n loading = false;\n _fileUploadButtonText = $localize`CHOOSE A FILE`;\n\n constructor(cdr: ChangeDetectorRef, private fileService: FileService) {\n super(cdr);\n }\n\n fileToUpload(file: FileList) {\n this.loading = true;\n\n this.fileService.uploadFile(file).subscribe((fileInfo: FileInformation) => {\n this.loading = false;\n this.fileInfo = fileInfo;\n this.setValue(fileInfo);\n });\n }\n\n handleDownload(template: FileInformation) {\n this.fileService.downloadFileGET(template.key, template.fileName, template.contentType);\n }\n\n ngOnInit() {\n if (this.item?.value) {\n this.fileInfo = this.item.value;\n }\n }\n\n removeFile() {\n if (this.fileInfo) {\n this.loading = true;\n this.fileService.deleteFile(this.fileInfo).subscribe(() => {\n this.loading = false;\n this.fileInfo = undefined;\n this.setValue(undefined);\n });\n }\n }\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n\n<div class=\"content\" [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\">\n <ng-container *ngIf=\"!readonly; else readOnly\">\n <ng-container *ngIf=\"!loading; else loader\">\n <mtna-file-download\n *ngIf=\"!!fileInfo; else fileUpload\"\n [fileInfo]=\"fileInfo\"\n [canRemove]=\"true\"\n color=\"primary\"\n [canDownload]=\"true\"\n (download)=\"handleDownload($event)\"\n (remove)=\"removeFile()\"\n ></mtna-file-download>\n\n <ng-template #fileUpload>\n <mtna-file-upload\n [automaticUpload]=\"false\"\n color=\"primary\"\n [buttonText]=\"_fileUploadButtonText\"\n (fileToUpload)=\"fileToUpload($event)\"\n ></mtna-file-upload>\n </ng-template>\n </ng-container>\n </ng-container>\n\n <!-- READONLY -->\n <ng-template #readOnly>\n <!-- anchor being used, due to <fieldset disabled> blocking a <button>'s click event -->\n <a\n *ngIf=\"!!item && !!item.value; else unpopulated\"\n class=\"single-icon-button\"\n color=\"primary\"\n mat-stroked-button\n role=\"button\"\n (click)=\"handleDownload(item.value)\"\n >\n <mat-icon color=\"primary\">file_download</mat-icon>\n {{ (item!.value!.fileName ? item!.value!.fileName : '') | uppercase }}\n </a>\n <ng-template #unpopulated>\n <mat-list>\n <mat-list-item class=\"wrappable-list-item\">\n <p mat-line class=\"wrap-line\" i18n>No File Provided</p>\n </mat-list-item>\n </mat-list>\n </ng-template>\n </ng-template>\n</div>\n\n<!-- PROGRESS SPINNER -->\n<ng-template #loader>\n <mat-spinner diameter=\"125\" strokeWidth=\"10\" mode=\"indeterminate\"></mat-spinner>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\nimport { MtnaFileDownloadModule, MtnaFileUploadModule } from '@mtna/file-manager-angular';\n\nimport { MtnaWfFileUploadComponent } from './file-upload.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaHighlightModule,\n MatButtonModule,\n MatIconModule,\n MtnaFileDownloadModule,\n MtnaFileUploadModule,\n MatListModule,\n MatProgressSpinnerModule,\n ],\n declarations: [MtnaWfFileUploadComponent],\n exports: [MtnaWfFileUploadComponent],\n})\nexport class MtnaWfFileUploadModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport {\n DROPDOWN_ITEM_ID,\n FORM_ITEM_GROUP_IMPL_ID,\n FormItemGroupImpl,\n PARAGRAPH_ANSWER_ITEM_ID,\n SHORT_ANSWER_ITEM_ID,\n TEXT_ITEM_ID,\n TITLE_ITEM_ID,\n} from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseGroupItem } from '../../base-items/base-group-item.component';\n\n@Component({\n selector: 'mtna-wf-group',\n templateUrl: './form-group.component.html',\n styleUrls: ['./form-group.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfFormGroupComponent extends MtnaWfBaseGroupItem<FormItemGroupImpl> {\n override get item(): FormItemGroupImpl {\n return this._item;\n }\n override set item(item: FormItemGroupImpl) {\n this._item = item;\n\n // A list item can only display a heading line & a small text line\n // Compatible items should be items with short labels/headers & values\n // Items with multiple options, or potential nested items should not be included\n this.inList = this.item.items.every((i) => i.itemId === SHORT_ANSWER_ITEM_ID || i.itemId === DROPDOWN_ITEM_ID);\n }\n\n fullWidth: { [id: string]: boolean } = {\n [PARAGRAPH_ANSWER_ITEM_ID]: true,\n [FORM_ITEM_GROUP_IMPL_ID]: true,\n [TEXT_ITEM_ID]: true,\n [TITLE_ITEM_ID]: true,\n };\n\n /**\n * If form is readonly & all child items are one of the specified types below,\n * we want to display this group's child items in a mat-list\n */\n inList = false;\n}\n","<ng-container *ngIf=\"item && control\">\n <mtna-wf-item-header\n *ngIf=\"!!item.questionText || !!item.descriptiveText\"\n [descriptiveText]=\"item.descriptiveText\"\n [disabled]=\"control.disabled\"\n [questionText]=\"item.questionText\"\n [required]=\"item.required\"\n ></mtna-wf-item-header>\n <ng-template #fullLayout>\n <div\n class=\"item-group-container\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\"\n [formGroup]=\"control\"\n [ngClass]=\"item.layout\"\n >\n <mtna-wf-item\n *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW' && !fullWidth[subItem.itemId]\"\n [ngClass.lt-md]=\"'width-100'\"\n [item]=\"subItem\"\n [control]=\"control.controls[subItem.instanceId]\"\n [parentIds]=\"parentIds\"\n [readonly]=\"readonly\"\n ></mtna-wf-item>\n </div>\n </ng-template>\n\n <!-- When readonly, && all child items should be displayed in a mat-list-->\n <mat-list *ngIf=\"readonly && inList; else fullLayout\" [ngClass]=\"item.layout\">\n <mtna-wf-item\n *ngFor=\"let subItem of item.items | mtnaWfItemsWithValue; let index = index; trackBy: _trackByInstanceId\"\n [class.row-item]=\"item.layout === 'ROW'\"\n [ngClass.lt-md]=\"'width-100'\"\n [item]=\"subItem\"\n [inList]=\"true\"\n [parentIds]=\"parentIds\"\n [readonly]=\"true\"\n ></mtna-wf-item>\n </mat-list>\n</ng-container>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfItemsWithValuePipeModule } from '../../../pipes/items-with-value.pipe';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfItemHeaderModule } from '../../item-header/item-header.module';\nimport { MtnaWfFormGroupComponent } from './form-group.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaWfItemHeaderModule,\n MtnaHighlightModule,\n MtnaWfFormItemModule,\n FormsModule,\n ReactiveFormsModule,\n FlexLayoutModule,\n MtnaWfItemsWithValuePipeModule,\n ],\n declarations: [MtnaWfFormGroupComponent],\n exports: [MtnaWfFormGroupComponent],\n})\nexport class MtnaWfFormGroupModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { Section } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseSectionItem } from '../../base-items/base-section-item.component';\n\n@Component({\n selector: 'mtna-wf-section',\n templateUrl: './form-section.component.html',\n styleUrls: ['./form-section.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfFormSectionComponent extends MtnaWfBaseSectionItem<Section> {}\n","<mtna-wf-step-card\n [step]=\"step\"\n [subtitle]=\"item.descriptiveText\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\"\n (focused)=\"focused.emit($event)\"\n>\n <div cardContent>\n <ng-container *ngFor=\"let subItem of item.items; trackBy: _trackByInstanceId\">\n <mat-divider\n *ngIf=\"(subItem.itemId | mtnaWfGetObjectType) === 'formitemgroupimpl' && item.items.indexOf(subItem) !== 0\"\n class=\"section-item-divider\"\n [inset]=\"true\"\n ></mat-divider>\n\n <mtna-wf-item\n [item]=\"subItem\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds\"\n [control]=\"!!control && !!control.controls ? control.controls[subItem.instanceId] : undefined\"\n (focusedSection)=\"focused.emit($event)\"\n ></mtna-wf-item>\n </ng-container>\n </div>\n</mtna-wf-step-card>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetObjectTypePipeModule } from '../../../pipes';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfStepCardModule } from '../../step-card/step-card.module';\nimport { MtnaWfFormSectionComponent } from './form-section.component';\n\n@NgModule({\n imports: [CommonModule, MtnaWfStepCardModule, MatDividerModule, MtnaWfFormItemModule, MtnaWfGetObjectTypePipeModule, MtnaHighlightModule],\n declarations: [MtnaWfFormSectionComponent],\n exports: [MtnaWfFormSectionComponent],\n})\nexport class MtnaWfFormSectionModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FormControl, FormGroup } from '@angular/forms';\nimport { mtnaLanguageIdToDisplay, MtnaLocaleIds, mtnaToLanguageId } from '@mtna/core-i18n-angular';\nimport {\n InternationalizedParagraphAnswerItem,\n InternationalizedShortAnswerItem,\n isInternationalizedParagraphAnswerItem,\n} from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-i18n-input-item',\n templateUrl: './i18n-input.component.html',\n styleUrls: ['./i18n-input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfI18nInputComponent<\n I extends InternationalizedParagraphAnswerItem | InternationalizedShortAnswerItem\n> extends MtnaWfBaseValueItem<I, FormGroup> {\n override get item(): I {\n return super.item;\n }\n override set item(value: I) {\n super.item = value;\n if (isInternationalizedParagraphAnswerItem(value)) {\n this.isParagraph = true;\n }\n }\n isParagraph = false;\n _notInformationText = $localize`No Information Provided`;\n\n getFormControl(language: string): FormControl {\n const control = this.control?.controls[language];\n return (control as FormControl) ?? new FormControl();\n }\n\n getLanguageDisplay(language: string): string {\n if (MtnaLocaleIds.guard(language)) {\n const facetId = mtnaToLanguageId[language];\n const displayName = mtnaLanguageIdToDisplay[facetId];\n return `${displayName} (${facetId})`;\n }\n return language;\n }\n}\n","<ng-container *ngTemplateOutlet=\"header; context: { $implicit: true }\"></ng-container>\n<ng-container *ngIf=\"!readonly && !!control; else readOnly\">\n <mat-form-field\n *ngFor=\"let language of item.languageTags\"\n appearance=\"outline\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n >\n <mat-label>{{ item.label + ' - ' + getLanguageDisplay(language) }}</mat-label>\n <ng-container *ngIf=\"isParagraph; else shortInput\">\n <textarea\n matInput\n [formControl]=\"getFormControl(language)\"\n [required]=\"item.required\"\n [attr.autocomplete]=\"item.label || item.name | mtnaWfGetAutoComplete\"\n cdkTextareaAutoSize\n cdkAutosizeMinRows=\"3\"\n cdkAutosizeMaxRows=\"5\"\n ></textarea>\n </ng-container>\n <ng-template #shortInput>\n <input\n matInput\n [formControl]=\"getFormControl(language)\"\n [autocomplete]=\"item.label || item.name | mtnaWfGetAutoComplete\"\n [required]=\"item.required\"\n />\n </ng-template>\n\n <mat-error *ngFor=\"let error of control.errors | keyvalue | slice : 0 : 1\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </mat-form-field>\n</ng-container>\n<!-- READONLY -->\n<ng-template #readOnly>\n <ng-container *ngTemplateOutlet=\"inList ? listItem : fullList\"></ng-container>\n</ng-template>\n\n<ng-template #fullList>\n <mat-list>\n <ng-container *ngTemplateOutlet=\"listItem\"></ng-container>\n </mat-list>\n</ng-template>\n\n<ng-template #listItem>\n <mat-list-item *ngFor=\"let language of item.languageTags\" class=\"wrappable-list-item\">\n <!-- <mat-icon *ngIf=\"item.label || item.header as label\" matListIcon>{{ label | mtnaWfGetListIcon }}</mat-icon> -->\n <h4 *ngIf=\"!item.questionText && (item.label || item.name) as label\" mat-line>{{ label }}</h4>\n <p mat-line class=\"wrap-line\">{{ item.value || _notInformationText + ' - ' + language }}</p>\n </mat-list-item>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetAutoCompletePipeModule, MtnaWfGetFormControlErrorPipeModule } from '../../../pipes';\nimport { MtnaWfI18nInputComponent } from './i18n-input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatFormFieldModule,\n MatInputModule,\n MtnaHighlightModule,\n MtnaWfGetAutoCompletePipeModule,\n MatListModule,\n ReactiveFormsModule,\n MtnaWfGetFormControlErrorPipeModule,\n ],\n declarations: [MtnaWfI18nInputComponent],\n exports: [MtnaWfI18nInputComponent],\n})\nexport class MtnaWfI18nInputModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport {\n DecimalAnswerItem,\n isDecimalAnswerItem,\n isParagraphAnswerItem,\n isWholeNumberItem,\n ParagraphAnswerItem,\n ShortAnswerItem,\n WholeNumberAnswerItem,\n} from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-input-item',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfInputComponent<\n I extends DecimalAnswerItem | ParagraphAnswerItem | ShortAnswerItem | WholeNumberAnswerItem\n> extends MtnaWfBaseValueItem<I, FormControl> {\n override get item(): I {\n return super.item;\n }\n override set item(value: I) {\n super.item = value;\n if (isDecimalAnswerItem(value) || isWholeNumberItem(value)) {\n this.isNumberInput = true;\n } else if (isParagraphAnswerItem(value)) {\n this.isParagraph = true;\n }\n }\n\n isParagraph = false;\n isNumberInput = false;\n _noInformationText = $localize`No Information Provided`;\n}\n","<ng-container *ngTemplateOutlet=\"header; context: { $implicit: true }\"></ng-container>\n<mat-form-field\n *ngIf=\"!readonly && !!control; else readOnly\"\n appearance=\"outline\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mat-label>{{ item.label }}</mat-label>\n <textarea\n *ngIf=\"isParagraph; else shortInput\"\n matInput\n [formControl]=\"control\"\n [required]=\"item.required\"\n [attr.autocomplete]=\"item.label || item.name | mtnaWfGetAutoComplete\"\n cdkTextareaAutoSize\n cdkAutosizeMinRows=\"3\"\n cdkAutosizeMaxRows=\"5\"\n ></textarea>\n\n <ng-template #shortInput>\n <input matInput [formControl]=\"control!\" [autocomplete]=\"item.label || item.name | mtnaWfGetAutoComplete\" [required]=\"item.required\" />\n </ng-template>\n\n <mat-error *ngFor=\"let error of control.errors | keyvalue | slice : 0 : 1\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n</mat-form-field>\n\n<!-- READONLY -->\n<ng-template #readOnly>\n <ng-container *ngTemplateOutlet=\"inList ? listItem : fullList\"></ng-container>\n</ng-template>\n\n<ng-template #fullList>\n <mat-list>\n <ng-container *ngTemplateOutlet=\"listItem\"></ng-container>\n </mat-list>\n</ng-template>\n\n<ng-template #listItem>\n <mat-list-item class=\"wrappable-list-item\">\n <!-- <mat-icon *ngIf=\"item.label || item.header as label\" matListIcon>{{ label | mtnaWfGetListIcon }}</mat-icon> -->\n <h4 *ngIf=\"!item.questionText && (item.label || item.name) as label\" mat-line>{{ label }}</h4>\n <p mat-line class=\"wrap-line\">{{ item.value || _noInformationText }}</p>\n </mat-list-item>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatListModule } from '@angular/material/list';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetAutoCompletePipeModule, MtnaWfGetFormControlErrorPipeModule } from '../../../pipes';\nimport { MtnaWfInputComponent } from './input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatFormFieldModule,\n FormsModule,\n MatListModule,\n MtnaWfGetAutoCompletePipeModule,\n MtnaWfGetFormControlErrorPipeModule,\n MtnaHighlightModule,\n ReactiveFormsModule,\n MatInputModule,\n ],\n declarations: [MtnaWfInputComponent],\n exports: [MtnaWfInputComponent],\n})\nexport class MtnaWfInputModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { MultipleChoiceItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseSingleSelectionParentValueItem } from '../../base-items/base-single-selection-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-multiple-choice-item',\n templateUrl: './multiple-choice.component.html',\n styleUrls: ['./multiple-choice.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfMultipleChoiceComponent extends MtnaWfBaseSingleSelectionParentValueItem<MultipleChoiceItem> {}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<div *ngIf=\"control\" [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\">\n <div class=\"mtna-wf-error-container\">\n <ng-container *ngIf=\"control.invalid && (control.dirty || control.touched)\">\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </ng-container>\n </div>\n <mat-radio-group class=\"control-item-content\" [formControl]=\"control\" (change)=\"selectionChange($event)\">\n <ng-container *ngFor=\"let opt of item.options; trackBy: _trackByOptionId\">\n <mat-radio-button [disableRipple]=\"readonly\" [disabled]=\"readonly || control.disabled\" [value]=\"opt.option.id\">{{\n opt.option.name\n }}</mat-radio-button>\n <mtna-wf-item\n *ngIf=\"item.optionItemMap[opt.option.id] as subItem\"\n [item]=\"subItem\"\n [control]=\"!!controlWrapper && !!controlWrapper.controls ? controlWrapper.controls[subItem.instanceId] : undefined\"\n [parentIds]=\"parentIds.concat(opt.option.id)\"\n [readonly]=\"readonly\"\n ></mtna-wf-item>\n </ng-container>\n </mat-radio-group>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatRadioModule } from '@angular/material/radio';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetFormControlErrorPipeModule } from '../../../pipes/get-form-control-error.pipe';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfMultipleChoiceComponent } from './multiple-choice.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n MatRadioModule,\n MtnaWfFormItemModule,\n MtnaWfGetFormControlErrorPipeModule,\n ReactiveFormsModule,\n MatFormFieldModule,\n MtnaHighlightModule,\n ],\n declarations: [MtnaWfMultipleChoiceComponent],\n exports: [MtnaWfMultipleChoiceComponent],\n})\nexport class MtnaWfMultipleChoiceModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { NumberedListItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItem } from '../../base-items/base-form-item.component';\n\n@Component({\n selector: 'mtna-wf-ordered-list-item',\n templateUrl: './ordered-list-item.component.html',\n styleUrls: ['./ordered-list-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfOrderedListItemComponent extends MtnaWfBaseFormItem<NumberedListItem> {}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<ol [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\">\n <li *ngFor=\"let item of item.value\" [innerHTML]=\"item | mtnaWfSanitizeHtml\"></li>\n</ol>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfSanitizeHtmlPipeModule } from '../../../pipes/sanitize-html.pipe';\nimport { MtnaWfOrderedListItemComponent } from './ordered-list-item.component';\n\n@NgModule({\n imports: [CommonModule, MtnaHighlightModule, MtnaWfSanitizeHtmlPipeModule],\n declarations: [MtnaWfOrderedListItemComponent],\n exports: [MtnaWfOrderedListItemComponent],\n})\nexport class MtnaWfOrderedListItemModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'mtna-wf-repeatable-item',\n template: ` <ng-content></ng-content> `,\n styles: [\n `\n mtna-wf-repeatable-item {\n display: block;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfRepeatableItemComponent {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { MtnaWfRepeatableItemComponent } from './repeatable-item.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [MtnaWfRepeatableItemComponent],\n exports: [MtnaWfRepeatableItemComponent],\n})\nexport class MtnaWfRepeatableItemModule {}\n","import { animate, state, style, transition, trigger } from '@angular/animations';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { COMPLEX_STANDARD } from '@mtna/core-angular';\nimport { FormItem, MtnaWfFormItemChange, RepeatableItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfManagerService } from '../../../services/form-manager.service';\nimport { MtnaWfBaseParentValueItem } from '../../base-items/base-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-repeatable-item-container',\n templateUrl: './repeatable-item-container.component.html',\n styleUrls: ['./repeatable-item-container.component.scss'],\n animations: [\n trigger('repeatItemExpandCollapse', [\n state('in', style({ height: '*', margin: '*', opacity: 1 })),\n state('void', style({ height: 0, margin: 0, opacity: 0, visibility: 'hidden' })),\n transition(':enter', [animate(COMPLEX_STANDARD, style({ height: '*', margin: '*', opacity: 1 }))]),\n transition(':leave', animate(COMPLEX_STANDARD)),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfRepeatableItemContainerComponent extends MtnaWfBaseParentValueItem<RepeatableItem, FormGroup> {\n _addText = $localize`ADD`;\n\n constructor(cdr: ChangeDetectorRef, private manager: MtnaWfManagerService) {\n super(cdr);\n }\n\n addItem() {\n this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(this.item.repeatableTemplateId, this.parentIds, 'ADD'));\n }\n\n removeItem(item: FormItem) {\n const conditionChanges = this.manager.generateConditionChangeArray(item, 'REMOVE');\n this.manager.changeMtnaFormItem(new MtnaWfFormItemChange(item.instanceId, this.parentIds, 'REMOVE', conditionChanges));\n }\n}\n","<mtna-wf-item-header\n *ngIf=\"!!item.questionText || !!item.descriptiveText\"\n [descriptiveText]=\"item.descriptiveText\"\n [disabled]=\"control?.disabled || false\"\n [questionText]=\"item.questionText\"\n [required]=\"item.required\"\n></mtna-wf-item-header>\n<section [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\">\n <mtna-wf-repeatable-item\n @repeatItemExpandCollapse\n *ngFor=\"let subitem of item.items; let first = first; trackBy: 'instanceId' | mtnaTrackByProperty\"\n >\n <ng-container *ngIf=\"subitem | coerceFormItem as coercedSubItem\">\n <button\n *ngIf=\"!readonly && item.items.length > item.minOccurrences\"\n mat-icon-button\n class=\"item-remove-button\"\n color=\"warn\"\n (click)=\"removeItem(coercedSubItem)\"\n matTooltip=\"Remove Item\"\n i18n-matTooltip\n >\n <mat-icon>remove_circle</mat-icon>\n </button>\n <mtna-wf-item\n [item]=\"coercedSubItem\"\n [control]=\"!!control && !!control.controls ? control.controls[coercedSubItem.instanceId] : undefined\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds\"\n ></mtna-wf-item>\n </ng-container>\n </mtna-wf-repeatable-item>\n</section>\n<button *ngIf=\"!readonly\" mat-raised-button (click)=\"addItem()\" class=\"new-item-button\" color=\"primary\">\n {{ item.additionalText || _addText | uppercase }}\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MtnaHighlightModule, MtnaTrackByPropertyPipeModule } from '@mtna/core-angular';\n\nimport { MtnaWfCoerceFormItemPipeModule } from '../../../pipes';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfItemHeaderModule } from '../../item-header/item-header.module';\nimport { MtnaWfRepeatableItemModule } from '../repeatable-item/repeatable-item.module';\nimport { MtnaWfRepeatableItemContainerComponent } from './repeatable-item-container.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MtnaWfItemHeaderModule,\n MtnaWfRepeatableItemModule,\n MtnaWfFormItemModule,\n MtnaHighlightModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MtnaTrackByPropertyPipeModule,\n MtnaWfCoerceFormItemPipeModule,\n ],\n declarations: [MtnaWfRepeatableItemContainerComponent],\n exports: [MtnaWfRepeatableItemContainerComponent],\n})\nexport class MtnaWfRepeatableItemContainerModule {}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { MatDialog } from '@angular/material/dialog';\nimport {\n MtnaInMemorySearchFacade,\n MtnaSearchDialogComponent,\n MtnaSearchDialogData,\n MtnaSearchDialogOutput,\n} from '@mtna/search-manager-angular';\nimport { ResourceReference, ResourceSearchItem } from '@mtna/web-form-ts';\nimport { BehaviorSubject } from 'rxjs';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-resource-search-item',\n templateUrl: './resource-search.component.html',\n styleUrls: ['./resource-search.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfResourceSearchComponent extends MtnaWfBaseValueItem<ResourceSearchItem, FormGroup> {\n private references: BehaviorSubject<ResourceReference[]> = new BehaviorSubject<ResourceReference[]>(this.item?.value ?? []);\n\n constructor(cdr: ChangeDetectorRef, protected searchFacade: MtnaInMemorySearchFacade, protected dialog: MatDialog) {\n super(cdr);\n }\n\n openDialog() {\n this.dialog\n .open<MtnaSearchDialogComponent<string>>(MtnaSearchDialogComponent, {\n data: new MtnaSearchDialogData<ResourceReference>(\n this.searchFacade,\n $localize`Select a Reference`,\n true,\n {\n ...this.item.initialQuery,\n target: this.item.searchTargetId,\n },\n undefined,\n true,\n {\n color: 'primary',\n disableSubResults: true,\n resizableColumns: true,\n selectable: true,\n multiSelectable: true,\n },\n undefined,\n undefined,\n this.references.value,\n true,\n 'SQUARE'\n ),\n })\n .afterClosed()\n .subscribe((output: MtnaSearchDialogOutput<string>) => {\n if (output && output.selections) {\n const values = [];\n for (const selection of output.selections) {\n values.push({ uri: selection } as ResourceReference);\n }\n this.references.next(values);\n }\n });\n }\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<div class=\"label-container\" fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <div class=\"label-text\">\n {{ item.label }}\n </div>\n <mat-divider fxFlex></mat-divider>\n</div>\n<div class=\"values-container\">\n <!-- <aria-ui-reference-list-table\n [path]=\"path\"\n [referenceConfiguration]=\"referenceConfiguration\"\n [references]=\"references\"\n [termReference]=\"termReference\"\n (openDetails)=\"openDetails.emit($event)\"\n (referenceSelected)=\"addButtonDisabled = !!$event\"\n (updateValues)=\"updateValues.emit($event)\"\n >\n </aria-ui-reference-list-table>\n -->\n <button mat-flat-button class=\"add-button\" color=\"primary\" [disabled]=\"readonly\" (click)=\"openDialog()\" i18n>\n Add Resource<mat-icon>add_circle_outline</mat-icon>\n </button>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { MtnaWfResourceSearchComponent } from './resource-search.component';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatDividerModule, MatIconModule, FlexLayoutModule],\n declarations: [MtnaWfResourceSearchComponent],\n exports: [MtnaWfResourceSearchComponent],\n})\nexport class MtnaWfResourceSearchModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { TableItem, TableRowItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseParentValueItem } from '../../base-items/base-parent-value-item.component';\n\n@Component({\n selector: 'mtna-wf-table-item',\n templateUrl: './table-item.component.html',\n styleUrls: ['./table-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfTableFormItemComponent extends MtnaWfBaseParentValueItem<TableItem, FormGroup> {\n _trackByTableRow(index: number, row: TableRowItem) {\n return row.items\n .filter((i) => !!i)\n .map((item) => item.instanceId)\n .join('');\n }\n}\n","<table mat-table [dataSource]=\"item.tableRows\" [trackBy]=\"_trackByTableRow\">\n <ng-container *ngFor=\"let header of item.headers; let index = index\" [matColumnDef]=\"header\">\n <th mat-header-cell *matHeaderCellDef>{{ header }}</th>\n\n <td mat-cell *matCellDef=\"let rowItem\">\n <mtna-wf-item\n *ngIf=\"!!rowItem.items[index]\"\n [control]=\"!!control && !!control.controls ? control.controls[rowItem.items[index].instanceId] : undefined\"\n [item]=\"rowItem.items[index]\"\n [readonly]=\"readonly\"\n [parentIds]=\"parentIds\"\n ></mtna-wf-item>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"item.headers\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: item.headers\"></tr>\n</table>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatTableModule } from '@angular/material/table';\n\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfTableFormItemComponent } from './table-item.component';\n\n@NgModule({\n imports: [CommonModule, MatTableModule, MtnaWfFormItemModule],\n declarations: [MtnaWfTableFormItemComponent],\n exports: [MtnaWfTableFormItemComponent],\n})\nexport class MtnaWfTableFormItemModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { ValueItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItem } from '../../base-items/base-form-item.component';\n\n@Component({\n selector: 'mtna-wf-text-item',\n templateUrl: './text.component.html',\n styleUrls: ['./text.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfTextItemComponent extends MtnaWfBaseFormItem<ValueItem<unknown>> {}\n","<p [innerHTML]=\"$any(item.value) | mtnaWfSanitizeHtml\" class=\"mtna-wf-text-item\" [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\"></p>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfSanitizeHtmlPipeModule } from '../../../pipes/sanitize-html.pipe';\nimport { MtnaWfTextItemComponent } from './text.component';\n\n@NgModule({\n imports: [CommonModule, MtnaHighlightModule, MtnaWfSanitizeHtmlPipeModule],\n declarations: [MtnaWfTextItemComponent],\n exports: [MtnaWfTextItemComponent],\n})\nexport class MtnaWfTextItemModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { ValueItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItem } from '../../base-items/base-form-item.component';\n\n@Component({\n selector: 'mtna-wf-title-item',\n templateUrl: './title.component.html',\n styleUrls: ['./title.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class MtnaWfTitleItemComponent extends MtnaWfBaseFormItem<ValueItem<unknown>> {}\n","<h3 class=\"mtna-wf-title-item\" [mtnaHighlight]=\"indicatorStatus === 'ACTIVE'\">{{ item.value }}</h3>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfGetObjectTypePipeModule } from '../../../pipes/get-object-type.pipe';\nimport { MtnaWfTitleItemComponent } from './title.component';\n\n@NgModule({\n imports: [CommonModule, MtnaHighlightModule, MtnaWfGetObjectTypePipeModule],\n declarations: [MtnaWfTitleItemComponent],\n exports: [MtnaWfTitleItemComponent],\n})\nexport class MtnaWfTitleItemModule {}\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\nimport { BulletedListItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseFormItem } from '../../base-items/base-form-item.component';\n\n@Component({\n selector: 'mtna-wf-unordered-list-item',\n templateUrl: './unordered-list-item.component.html',\n styleUrls: ['./unordered-list-item.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfUnorderedListItemComponent extends MtnaWfBaseFormItem<BulletedListItem> {}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<ul [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !item.questionText && !item.descriptiveText\">\n <li *ngFor=\"let item of item.value\" [innerHTML]=\"item | mtnaWfSanitizeHtml\"></li>\n</ul>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfSanitizeHtmlPipeModule } from '../../../pipes/sanitize-html.pipe';\nimport { MtnaWfUnorderedListItemComponent } from './unordered-list-item.component';\n\n@NgModule({\n imports: [CommonModule, MtnaHighlightModule, MtnaWfSanitizeHtmlPipeModule],\n declarations: [MtnaWfUnorderedListItemComponent],\n exports: [MtnaWfUnorderedListItemComponent],\n})\nexport class MtnaWfUnorderedListItemModule {}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n HostBinding,\n Inject,\n InjectionToken,\n OnDestroy,\n OnInit,\n Optional,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { isPresent } from '@mtna/core-ts';\nimport { DateRange, YearQuarter, YearQuarterRangeItem } from '@mtna/web-form-ts';\nimport { merge, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\nexport const MTNA_WF_DEFAULT_YEAR_RANGE = new InjectionToken<MtnaWfDefaultYearRange>('mtna.wf.default.year.range');\n\nexport interface MtnaWfDefaultYearRange {\n numPastYears: number;\n numFutureYears: number;\n}\n\n@Component({\n selector: 'mtna-wf-year-quarter-item',\n templateUrl: './year-quarter.component.html',\n styleUrls: ['./year-quarter.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfYearQuarterComponent\n extends MtnaWfBaseValueItem<YearQuarterRangeItem, FormControl>\n implements AfterViewInit, OnDestroy, OnInit\n{\n @HostBinding('class.mtna-wf-year-quarter-item') yearQuarterItemClass = true;\n\n override get item(): YearQuarterRangeItem {\n return super.item;\n }\n override set item(value: YearQuarterRangeItem) {\n super.item = value;\n if (value.rangeLimits) {\n this.componentRangeLimits = value.rangeLimits;\n }\n }\n\n componentRangeLimits: DateRange<YearQuarter> | null | undefined;\n _quarterControl = new FormControl();\n _yearControl = new FormControl();\n _yearSelection = new Array<number>();\n\n private destroyObs = new Subject<void>();\n private defaultYearRange: MtnaWfDefaultYearRange;\n\n constructor(cdr: ChangeDetectorRef, @Optional() @Inject(MTNA_WF_DEFAULT_YEAR_RANGE) defaultYearRange?: MtnaWfDefaultYearRange) {\n super(cdr);\n this.defaultYearRange = defaultYearRange || { numFutureYears: 25, numPastYears: 25 };\n }\n\n ngAfterViewInit() {\n if (!this.readonly) {\n // Observe Year & Quarter value changes && set them on the item's control\n merge(this._yearControl.valueChanges, this._quarterControl.valueChanges)\n .pipe(takeUntil(this.destroyObs))\n .subscribe(() => {\n if (!this.control?.dirty && (this._yearControl.dirty || this._quarterControl.dirty)) {\n this.control?.markAsDirty();\n this.control?.markAsTouched();\n }\n if (isPresent(this._yearControl.value)) {\n const [year, quarter] = this.withinRangeLimits([this._yearControl.value, this._quarterControl.value]);\n this.control?.setValue({ year, quarter });\n }\n });\n\n // FIXME not sure we need this until we starting making this control\n // required/unrequired at the right time. Even then, this is super inneficient\n\n /*\n // Listen to this control for disabling local controls\n this.control.statusChanges\n .pipe(\n startWith(this.control.status),\n takeUntil(this.destroyObs)\n )\n .subscribe(status => {\n console.warn('statusChanges', status, this.control);\n // if this control is enabled, enable local controls if disabled\n if (this.control.enabled) {\n if (this._quarterControl.disabled || this._yearControl.disabled) {\n console.warn('[YearQuarterItem] enable the things');\n // this._quarterControl.enable();\n // this._yearControl.enable();\n }\n // else this control is disabled, so disable local controls if enabled\n } else if (this._quarterControl.enabled || this._yearControl.enabled) {\n console.warn('[YearQuarterItem] disable the things');\n // this._yearControl.disable();\n // this._quarterControl.disable();\n }\n });\n */\n }\n }\n\n ngOnDestroy() {\n this.destroyObs.next();\n this.destroyObs.complete();\n }\n\n ngOnInit() {\n // Set any initial value onto the Year & Quarter controls\n this._yearControl.setValue(this.control?.value ? this.control.value.year : null);\n this._quarterControl.setValue(this.control?.value ? this.control.value.quarter : null);\n\n // Create range limits if none exist\n if (!this.componentRangeLimits) {\n const thisYear = new Date().getFullYear();\n this.componentRangeLimits = {\n start: {\n year: thisYear - this.defaultYearRange.numPastYears,\n quarter: null,\n },\n end: {\n year: thisYear + this.defaultYearRange.numFutureYears,\n quarter: null,\n },\n };\n }\n\n // Populate the year selection\n for (let i = this.componentRangeLimits.start.year || 0; i <= (this.componentRangeLimits.end.year || 0); i++) {\n this._yearSelection.push(i);\n }\n\n if (this.readonly) {\n this.control?.disable();\n this._quarterControl.disable();\n this._yearControl.disable();\n }\n }\n\n /**\n * Sets the quarter value to `null` if the year & quarter is out of bounds of the range limits.\n * Otherwise, returns original value\n *\n * @param value `[number, number]` The selected [year, quarter] value\n * @returns `[number, number]` The original [year, quarter] value OR [year, null]\n */\n private withinRangeLimits: (value: [number, number]) => [number, number | null] = ([year, quarter]) => {\n const beyondUpperLimit =\n // year matches end year range limit\n year === this.componentRangeLimits?.end.year &&\n // quarter limit was provided\n isPresent(this.componentRangeLimits.end.quarter) &&\n // selected quarter is beyond quarter limit\n quarter > this.componentRangeLimits.end.quarter;\n\n const beyondLowerLimit =\n // year matches start year range limit\n year === this.componentRangeLimits?.start.year &&\n // quarter limit was provided\n isPresent(this.componentRangeLimits.start.quarter) &&\n // selected quarter is beyond quarter limit\n quarter < this.componentRangeLimits.start.quarter;\n\n if (beyondLowerLimit || beyondUpperLimit) {\n this._quarterControl.setValue(null, { emitEvent: false });\n return [year, null];\n }\n\n return [year, quarter];\n };\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n<div\n *ngIf=\"control\"\n class=\"year-quarter-container\"\n fxLayout=\"row\"\n fxLayoutGap=\"8px\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mat-form-field>\n <mat-select [formControl]=\"_yearControl\" aria-label=\"Year Selection\" i18n-aria-label>\n <mat-option *ngFor=\"let year of _yearSelection\" [value]=\"year\">{{ year }}</mat-option>\n </mat-select>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <mat-select [formControl]=\"_quarterControl\" aria-label=\"Quarter Selection\" i18n-aria-label>\n <mat-option i18n>None</mat-option>\n <mat-option *ngFor=\"let quarter of _yearControl.value | mtnaWfGetQuarters : componentRangeLimits\" [value]=\"quarter\">{{\n $any(quarter) | mtnaWfDateQuarter : 'short'\n }}</mat-option>\n </mat-select>\n <mat-error *ngFor=\"let error of control.errors | keyvalue\">\n {{ error | mtnaWfGetControlError : item }}\n </mat-error>\n </mat-form-field>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfDateQuarterPipeModule, MtnaWfGetAvailableQuartersPipeModule, MtnaWfGetFormControlErrorPipeModule } from '../../../pipes';\nimport { MtnaWfYearQuarterComponent } from './year-quarter.component';\n\n@NgModule({\n imports: [\n CommonModule,\n FlexLayoutModule,\n MatFormFieldModule,\n MatSelectModule,\n FormsModule,\n MtnaWfGetFormControlErrorPipeModule,\n MtnaWfGetAvailableQuartersPipeModule,\n MtnaWfDateQuarterPipeModule,\n MtnaHighlightModule,\n ReactiveFormsModule,\n ],\n declarations: [MtnaWfYearQuarterComponent],\n exports: [MtnaWfYearQuarterComponent],\n})\nexport class MtnaWfYearQuarterModule {}\n","import { ChangeDetectionStrategy, Component, HostBinding, ViewEncapsulation } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\nimport { YearQuarterRangeItem } from '@mtna/web-form-ts';\n\nimport { MtnaWfBaseValueItem } from '../../base-items/base-value-item.component';\n\n@Component({\n selector: 'mtna-wf-year-quarter-range-item',\n templateUrl: './year-quarter-range.component.html',\n styleUrls: ['./year-quarter-range.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MtnaWfYearQuarterRangeComponent extends MtnaWfBaseValueItem<YearQuarterRangeItem, FormGroup> {\n @HostBinding('class.mtna-wf-year-quarter-range-item') yearQuarterRangeClass = true;\n\n override get item(): YearQuarterRangeItem {\n return super.item;\n }\n override set item(item: YearQuarterRangeItem) {\n super.item = item;\n // Create fake items for the underlying date-item component\n this._startItem = { ...item, value: undefined };\n this._endItem = { ...item, value: undefined };\n }\n\n _startItem!: YearQuarterRangeItem;\n _endItem!: YearQuarterRangeItem;\n}\n","<ng-container *ngTemplateOutlet=\"header\"></ng-container>\n\n<div\n *ngIf=\"control\"\n class=\"range-item-container\"\n fxLayout=\"row\"\n fxLayoutAlign=\"start center\"\n fxLayoutGap=\"8px\"\n [mtnaHighlight]=\"indicatorStatus === 'ACTIVE' && !hasItemHeader\"\n>\n <mtna-wf-year-quarter-item\n [item]=\"_startItem\"\n [control]=\"control.controls['start'] | mtnaWfCoerceFormControl\"\n [readonly]=\"readonly\"\n ></mtna-wf-year-quarter-item>\n <span fxFlex=\"14px\">to</span>\n <mtna-wf-year-quarter-item\n [item]=\"_endItem\"\n [control]=\"control.controls['end'] | mtnaWfCoerceFormControl\"\n [readonly]=\"readonly\"\n ></mtna-wf-year-quarter-item>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { MtnaHighlightModule } from '@mtna/core-angular';\n\nimport { MtnaWfCoerceFormControlPipeModule } from '../../../pipes/coerce-form-control.pipe';\nimport { MtnaWfYearQuarterModule } from '../year-quarter/year-quarter.module';\nimport { MtnaWfYearQuarterRangeComponent } from './year-quarter-range.component';\n\n@NgModule({\n imports: [CommonModule, MtnaWfYearQuarterModule, MtnaHighlightModule, FlexLayoutModule, MtnaWfCoerceFormControlPipeModule],\n declarations: [MtnaWfYearQuarterRangeComponent],\n exports: [MtnaWfYearQuarterRangeComponent],\n})\nexport class MtnaWfYearQuarterRangeModule {}\n","import { InjectedComponent } from '@mtna/core-angular';\n\nimport {\n MtnaWfBooleanComponent,\n MtnaWfCheckboxComponent,\n MtnaWfDateComponent,\n MtnaWfDateRangeComponent,\n MtnaWfDropdownComponent,\n MtnaWfFileUploadComponent,\n MtnaWfFormGroupComponent,\n MtnaWfFormSectionComponent,\n MtnaWfI18nInputComponent,\n MtnaWfInputComponent,\n MtnaWfMultipleChoiceComponent,\n MtnaWfOrderedListItemComponent,\n MtnaWfRepeatableItemContainerComponent,\n MtnaWfResourceSearchComponent,\n MtnaWfTextItemComponent,\n MtnaWfTitleItemComponent,\n MtnaWfUnorderedListItemComponent,\n MtnaWfYearQuarterComponent,\n MtnaWfYearQuarterRangeComponent,\n} from '../form-item-impl';\nimport {\n BOOLEAN_ITEM_ID,\n BULLETED_LIST_ITEM_ID,\n CHECKBOX_ITEM_ID,\n DATE_ITEM_ID,\n DECIMAL_ANSWER_ITEM_ID,\n DROPDOWN_ITEM_ID,\n FILE_UPLOAD_ITEM_ID,\n FORM_ITEM_GROUP_IMPL_ID,\n I18N_PARAGRAPH_ANSWER_ITEM_ID,\n I18N_SHORT_ANSWER_ITEM_ID,\n MULTIPLE_CHOICE_ITEM_ID,\n NUMBERED_LIST_ITEM_ID,\n OFFSET_DATE_RANGE_ITEM_ID,\n PARAGRAPH_ANSWER_ITEM_ID,\n REPEATABLE_ITEM_ID,\n RESOURCE_SEARCH_ITEM_ID,\n SECTION_ID,\n SHORT_ANSWER_ITEM_ID,\n TEXT_ITEM_ID,\n TITLE_ITEM_ID,\n WHOLE_NUMBER_ANSWER_ITEM_ID,\n YEAR_QUARTER_RANGE_ITEM_ID,\n} from '@mtna/web-form-ts';\n\nexport const MTNA_WF_ITEM_INJECTED_COMPONENTS: InjectedComponent[] = [\n // Boolean Item Component\n {\n key: BOOLEAN_ITEM_ID,\n component: MtnaWfBooleanComponent,\n },\n // Checkbox Item Component\n {\n key: CHECKBOX_ITEM_ID,\n component: MtnaWfCheckboxComponent,\n },\n // Date Item Component\n {\n key: DATE_ITEM_ID,\n component: MtnaWfDateComponent,\n },\n // Date Range Item Component\n {\n key: OFFSET_DATE_RANGE_ITEM_ID,\n component: MtnaWfDateRangeComponent,\n },\n // Dropdown Item Component\n {\n key: DROPDOWN_ITEM_ID,\n component: MtnaWfDropdownComponent,\n },\n // File Upload Item Component\n {\n key: FILE_UPLOAD_ITEM_ID,\n component: MtnaWfFileUploadComponent,\n },\n // Form Item Group Component\n {\n key: FORM_ITEM_GROUP_IMPL_ID,\n component: MtnaWfFormGroupComponent,\n },\n // Form Section Component\n {\n key: SECTION_ID,\n component: MtnaWfFormSectionComponent,\n },\n // I18n Input Item Components\n {\n key: I18N_PARAGRAPH_ANSWER_ITEM_ID,\n component: MtnaWfI18nInputComponent,\n },\n {\n key: I18N_SHORT_ANSWER_ITEM_ID,\n component: MtnaWfI18nInputComponent,\n },\n // Input Item Components\n {\n key: DECIMAL_ANSWER_ITEM_ID,\n component: MtnaWfInputComponent,\n },\n {\n key: PARAGRAPH_ANSWER_ITEM_ID,\n component: MtnaWfInputComponent,\n },\n {\n key: SHORT_ANSWER_ITEM_ID,\n component: MtnaWfInputComponent,\n },\n {\n key: WHOLE_NUMBER_ANSWER_ITEM_ID,\n component: MtnaWfInputComponent,\n },\n // Mutliple Choice Item Component\n {\n key: MULTIPLE_CHOICE_ITEM_ID,\n component: MtnaWfMultipleChoiceComponent,\n },\n // Orderd List Item Component\n {\n key: NUMBERED_LIST_ITEM_ID,\n component: MtnaWfOrderedListItemComponent,\n },\n // Repeatable Item Container Component\n {\n key: REPEATABLE_ITEM_ID,\n component: MtnaWfRepeatableItemContainerComponent,\n },\n // Resource Search Item Component\n {\n key: RESOURCE_SEARCH_ITEM_ID,\n component: MtnaWfResourceSearchComponent,\n },\n // Table Item Component - NOTE: NOT USED\n // {\n // key: '',\n // component: MtnaWfTableFormItemComponent\n // },\n // Text Item Component\n {\n key: TEXT_ITEM_ID,\n component: MtnaWfTextItemComponent,\n },\n // Title Item Component\n {\n key: TITLE_ITEM_ID,\n component: MtnaWfTitleItemComponent,\n },\n // Unordered List Item Component\n {\n key: BULLETED_LIST_ITEM_ID,\n component: MtnaWfUnorderedListItemComponent,\n },\n // Year Quarter Item Component\n {\n key: 'us.mtna.web.form.item.impl.date.YearQuarterItem',\n component: MtnaWfYearQuarterComponent,\n },\n // Year Quarter Range Item Component\n {\n key: YEAR_QUARTER_RANGE_ITEM_ID,\n component: MtnaWfYearQuarterRangeComponent,\n },\n];\n","import { InjectedComponent, InjectedComponentProvider } from '@mtna/core-angular';\n\nimport { MTNA_WF_ITEM_INJECTED_COMPONENTS } from './form-item-injected-components';\n\nexport class MtnaWfItemComponentProvider extends InjectedComponentProvider {\n public getInjectedComponents(): InjectedComponent[] {\n return MTNA_WF_ITEM_INJECTED_COMPONENTS;\n }\n}\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { MtnaScrollDirection, MtnaScrollService } from '@mtna/core-angular';\nimport { FormItem, OutlineStep, ProgressiveForm } from '@mtna/web-form-ts';\nimport { BehaviorSubject, Observable, Subscription } from 'rxjs';\n\nimport { FormStep } from '../../../models';\nimport { MtnaWfManagerService, MtnaWfNgFormService, MtnaWfUIService } from '../../../services';\nimport { flattenSteps, generateFormStepsFromOutline } from '../../../utilities';\nimport { MtnaWfBaseFormComponent } from '../../base-form';\n\n/* eslint-disable @angular-eslint/no-outputs-metadata-property */\n@Component({\n selector: 'mtna-wf-progressive-form',\n templateUrl: './progressive-form.component.html',\n styleUrls: ['./progressive-form.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n outputs: ['status', 'focusedSection', 'mtnaFormChange'],\n})\nexport class MtnaWfProgressiveFormComponent extends MtnaWfBaseFormComponent<ProgressiveForm> {\n static ngAcceptInputType_loading: BooleanInput;\n\n override get mtnaForm(): ProgressiveForm | null | undefined {\n return super.mtnaForm as ProgressiveForm | null | undefined;\n }\n override set mtnaForm(form: ProgressiveForm | null | undefined) {\n if (form) {\n this.formItems = form.items;\n this.resetValues();\n this.generateFormSteps(form.outline);\n this.checkAllStepsIds(form.items);\n super.steps = this.determineStepsToPassToSuper(form.items);\n super.mtnaForm = form;\n\n this.setStepStatus();\n this.setFormStatusSubscription();\n this.showPreviousButton = this.showPreviousButtonFn();\n this.lastStepActive = this.checkLastStepActive();\n this.cdr.markForCheck();\n }\n }\n\n @Input()\n get loading(): boolean {\n return this._loading;\n }\n set loading(value: boolean) {\n this._loading = coerceBooleanProperty(value);\n }\n private _loading = false;\n\n /** Emits the updated ProgressiveForm value */\n @Output() nextStepSelected = new EventEmitter<ProgressiveForm>();\n /**\n * Emits the previous steps instanceId.\n * Since this component is always on the last step and the last item, we can always count on having the instanceId of the previous step.\n */\n @Output() previousStepSelected = new EventEmitter<string>();\n /**\n * Emits the instanceId of the selected step.\n * If the currently active step is the step that is selected, this will not emit.\n */\n @Output() showSelectedStepId = new EventEmitter<string>();\n\n activeStepId$ = new BehaviorSubject<string | undefined>(undefined);\n formItems: FormItem[] = [];\n formStatusSubscriber: Subscription | undefined;\n formStatusValid$ = new BehaviorSubject<boolean>(false);\n lastStepActive = false;\n scrollDirection$: Observable<MtnaScrollDirection> = this.scrollService.getScrollDirection();\n showPreviousButton = false;\n stepArray$ = new BehaviorSubject<FormStep[]>([]);\n\n constructor(\n mtnaFormManager: MtnaWfManagerService,\n ngFormService: MtnaWfNgFormService,\n uiService: MtnaWfUIService,\n private cdr: ChangeDetectorRef,\n private scrollService: MtnaScrollService\n ) {\n super(mtnaFormManager, ngFormService, uiService);\n }\n\n ngOnDestroy(): void {\n super.ngOnDestroy();\n if (this.formStatusSubscriber) {\n this.formStatusSubscriber.unsubscribe();\n }\n }\n\n /**\n * Checks if the last step in the form is active.\n * @returns true if the last step in the form is active, otherwise false\n */\n checkLastStepActive = () => {\n if (this.stepArray$.value.length > 0) {\n return this.stepArray$.value[this.stepArray$.value.length - 1].active;\n } else if (this.stepArray$.value.length === 0) {\n return this.stepArray$.value[0].active;\n } else {\n return false;\n }\n };\n\n /**\n * Checks if the previous button should be shown.\n * @returns true if the previous button should be shown, otherwise false\n */\n showPreviousButtonFn(): boolean {\n if (this.activeStepId$.value) {\n const indexOfActiveStep = this.stepArray$.value.findIndex((step) => step.instanceId === this.activeStepId$.value);\n return indexOfActiveStep > 0;\n } else {\n return false;\n }\n }\n\n /**\n * Subscribes to the form status changes and updates the formStatusValid$ BehaviorSubject with the validity of the active step.\n */\n private setFormStatusSubscription(): void {\n if (this.ngForm) {\n // Used to set the initial validity of the active step, otherwise it will always default to false\n if (this.activeStepId$.value) {\n const initialValidity = this.ngForm.controls[this.activeStepId$.value]?.valid;\n this.formStatusValid$.next(initialValidity);\n }\n\n if (!this.formStatusSubscriber) {\n this.formStatusSubscriber = this.ngForm.statusChanges.subscribe(() => {\n if (this.activeStepId$.value) {\n if (this.ngForm) {\n const activeControlExists = Object.keys(this.ngForm.controls).includes(this.activeStepId$.value);\n if (activeControlExists) {\n const activeControl = this.ngForm.controls[this.activeStepId$.value];\n if (activeControl) {\n this.formStatusValid$.next(activeControl.valid);\n }\n }\n }\n }\n });\n }\n }\n }\n\n /**\n * Resets all necessary values to build to form each iteration.\n */\n private resetValues() {\n this.formStatusSubscriber?.unsubscribe();\n this.ngForm = undefined;\n this._steps = undefined;\n this.ngFormService.disposeForm();\n this.stepArray$.next([]);\n this.activeStepId$.next(undefined);\n }\n\n /**\n * Generates the steps for the form based on the outline property of the form.\n * @param outline the outline of the form that is the basis for the steps\n */\n private generateFormSteps(outline: OutlineStep[]) {\n if (this.stepArray$.value.length === 0) {\n const generatedFormSteps = generateFormStepsFromOutline(outline);\n const flattenedFormSteps = flattenSteps(generatedFormSteps);\n this.stepArray$.next(flattenedFormSteps);\n // Set the active step to the first step in the array for the first load\n const lastItemIndex = this.formItems.length - 1;\n const updatedSteps: FormStep[] = [];\n this.stepArray$.value.forEach((step) => {\n if (step.instanceId === this.formItems[lastItemIndex].instanceId || step.instanceId === this.formItems[lastItemIndex].templateId) {\n updatedSteps.push({ ...step, active: true, status: 'INVALID' });\n } else {\n updatedSteps.push(step);\n }\n });\n this.stepArray$.next(updatedSteps);\n }\n }\n\n /**\n * Checks all of the steps to ensure that each steps instanceId property matches the instanceId of the FormItem and updates the property if needed.\n * This finds the step based on the templateId. When the stepArray is first built, the templateId of the FormItem gets set as the steps instanceId.\n * Here, we just need to find the steps that match the templateId and update the instanceId.\n * Matching is based off of templateId reduces the number of steps that need to be checked/manipulated.\n *\n * @param formItems the FormItems to check against the steps\n */\n private checkAllStepsIds(formItems: FormItem[]) {\n formItems.forEach((item) => {\n const stepMatchedOnTemplateId = this.stepArray$.value.find((s) => s.instanceId === item.templateId);\n if (stepMatchedOnTemplateId) {\n stepMatchedOnTemplateId.instanceId = item.instanceId;\n if (stepMatchedOnTemplateId.active) {\n this.activeStepId$.next(item.instanceId);\n this.cdr.markForCheck();\n }\n }\n });\n }\n\n /**\n * Because the super class has no knowledge of the stepArray that have been generated for the form,\n * this function determines which steps need to be passed to the super class and the inherited _steps\n * property. The super class \"should\" obtain each step as it is passed in. This means that when the\n * call to either grab the form again or to get the next FormItem, should also continue to pass the\n * steps that have been generated.\n * @returns\n */\n private determineStepsToPassToSuper(items: FormItem[]): FormStep[] {\n const availableItemInstanceIds: string[] = [];\n items.forEach((item) => {\n availableItemInstanceIds.push(item.instanceId);\n });\n\n const stepsToPass: FormStep[] = [];\n this.stepArray$.value.forEach((step) => {\n if (availableItemInstanceIds.includes(step.instanceId)) {\n stepsToPass.push(step);\n }\n });\n\n return stepsToPass;\n }\n\n /**\n * Sets the status of each step in the form based on the validity of the form control.\n * If the form control key is not found in the controls of the form, the status is set to 'PLACEHOLDER'.\n */\n private setStepStatus() {\n const updatedSteps: FormStep[] = [];\n this.stepArray$.value.forEach((step) => {\n if (this.ngForm) {\n const controlKeyExists = Object.keys(this.ngForm.controls).includes(step.instanceId);\n if (controlKeyExists) {\n updatedSteps.push({ ...step, status: this.ngForm.controls[step.instanceId].valid ? 'VALID' : 'INVALID' });\n } else {\n updatedSteps.push({ ...step, status: 'PLACEHOLDER' });\n }\n }\n });\n this.stepArray$.next(updatedSteps);\n }\n\n /**\n * Emits the next or previous step templateId based on the direction provided.\n * @param stepDirection the direction of the step to emit\n */\n showDirectionalStep(stepDirection: 'previous' | 'next') {\n // const stepTemplateId = this.getDirectionalStepTemplateId(stepDirection);\n // if (stepTemplateId) {\n if (this.mtnaForm) {\n const formValue = this.ngFormService.getFormValue();\n const updatedForm = this.mtnaFormManager.insertNewValues(this.mtnaForm, formValue) as ProgressiveForm;\n if (stepDirection === 'next') {\n this.nextStepSelected.emit(updatedForm);\n this.scrollService.scrollTop();\n } else {\n const previousStepIndex = this.stepArray$.value.findIndex((step) => step.instanceId === this.activeStepId$.value) - 1;\n if (previousStepIndex >= 0) {\n const previousStep = this.stepArray$.value[previousStepIndex];\n if (previousStep) {\n this.previousStepSelected.emit(previousStep.instanceId);\n this.scrollService.scrollTop();\n }\n }\n }\n }\n }\n\n /**\n * Shows the selected step as the active step in the form.\n * To be used on the mtna-wf-form-stepper components \"selected\" output.\n * @param step the step to show as the active step\n */\n showSelectedStep(step: FormStep) {\n if (this.activeStepId$.value !== step.instanceId) {\n this.showSelectedStepId.emit(step.instanceId);\n this.activeStepId$.next(step.instanceId);\n this.scrollService.scrollTop();\n }\n }\n\n _trackByStepInstanceId(index: number, formStep: FormStep) {\n return formStep.instanceId;\n }\n}\n","<div fxLayout=\"row\" class=\"mtna-wf-progressive-form__container\">\n <mtna-wf-stepper\n *ngIf=\"stepArray$ | async as steps\"\n fxFlex=\"200px\"\n [steps]=\"steps\"\n (selected)=\"showSelectedStep($event)\"\n ></mtna-wf-stepper>\n <div fxFlex class=\"mtna-wf-progressive-form__form-container\">\n <form *ngIf=\"ngForm\" [formGroup]=\"ngForm\" [formDisabled]=\"readonly\">\n <ng-container *ngFor=\"let item of mtnaForm?.items | mtnaWfFilterHiddenItems\">\n <ng-container *ngIf=\"activeStepId$ | async as activeStepId\">\n <mtna-wf-item\n *ngIf=\"item.instanceId === activeStepId\"\n [item]=\"item\"\n [control]=\"ngForm.controls[item.instanceId]\"\n [readonly]=\"readonly\"\n [parentIds]=\"componentIds\"\n [step]=\"_steps?.[item.instanceId]\"\n (focusedSection)=\"focusedSection.emit($event)\"\n ></mtna-wf-item>\n </ng-container>\n </ng-container>\n </form>\n <div *ngIf=\"!loading\" class=\"mtna-wf-progressive-form__stepper-actions\" fxLayout=\"row\" fxLayoutAlign=\"center center\" fxLayoutGap=\"26px\">\n <button *ngIf=\"showPreviousButton\" mat-stroked-button color=\"primary\" (click)=\"showDirectionalStep('previous')\" i18n>\n Previous Step\n </button>\n <ng-container *ngIf=\"!lastStepActive; else parentActions\">\n <button mat-raised-button color=\"primary\" (click)=\"showDirectionalStep('next')\" i18n>Next Step</button>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #parentActions>\n <ng-content></ng-content>\n</ng-template>\n","import { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GetActiveFormStepItemPipeModule, GetProgressiveFormItemPipeModule, MtnaWfFilterHiddenItemsPipeModule } from '../../../pipes';\nimport { MtnaWfFormDisablerModule } from '../../form-disabler/form-disabler.module';\nimport { MtnaWfFormItemModule } from '../../form-item/form-item.module';\nimport { MtnaWfFormStepperModule } from '../../form-stepper/form-stepper.module';\nimport { MtnaWfProgressiveFormComponent } from './progressive-form.component';\n\n@NgModule({\n imports: [\n A11yModule,\n CommonModule,\n FlexLayoutModule,\n FormsModule,\n MatButtonModule,\n MatIconModule,\n MtnaWfFormDisablerModule,\n MtnaWfFormItemModule,\n ReactiveFormsModule,\n MtnaWfFilterHiddenItemsPipeModule,\n MtnaWfFormStepperModule,\n GetProgressiveFormItemPipeModule,\n GetActiveFormStepItemPipeModule,\n MtnaWfFilterHiddenItemsPipeModule,\n ],\n declarations: [MtnaWfProgressiveFormComponent],\n exports: [MtnaWfProgressiveFormComponent],\n})\nexport class MtnaWfProgressiveFormModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isKey","ErrorStateMatcher","i0","Injectable","isForm","FormGroup","Validators","CHECKBOX_ITEM_ID","FormArray","FormControl","DECIMAL_ANSWER_ITEM_ID","WHOLE_NUMBER_ANSWER_ITEM_ID","isWholeNumberItem","isNullOrUndefined","PARAGRAPH_ANSWER_ITEM_ID","SHORT_ANSWER_ITEM_ID","I18N_PARAGRAPH_ANSWER_ITEM_ID","I18N_SHORT_ANSWER_ITEM_ID","isProgressiveForm","isRepeatableItem","isSection","isFormItemGroupImpl","isTableItem","isOffsetDateRangeItem","isYearQuarterRangeItem","isPresent","isType","trigger","state","style","transition","animate","isObject","InjectionToken","isDataCubeItem","toLetters","FORM_ITEM_GROUP_IMPL_ID","SECTION_ID","TEXT_ITEM_ID","TITLE_ITEM_ID","templateObject_1","templateObject_2","templateObject_3","templateObject_4","templateObject_5","templateObject_6","templateObject_7","templateObject_8","templateObject_9","templateObject_10","templateObject_11","templateObject_12","templateObject_13","BehaviorSubject","isConditionalItem","isOptionItemImpl","isOptionGroupItemImpl","Optional","Inject","mixinDestroyNotifier","Component","Input","coerceBooleanProperty","HostBinding","EventEmitter","Output","MatRadioChange","MatSelectChange","MtnaComponentInjector","INJECTION_SERVICE","i1","Pipe","NgModule","i2.MtnaWfSanitizeHtmlPipe","ChangeDetectionStrategy","ViewEncapsulation","i1.MtnaWfUIService","i2","i3.MtnaWfItemInjector","i4.MtnaWfItemHeaderComponent","i5","MAT_DIALOG_DATA","i2.MtnaWfFormItemComponent","i3","i4","CommonModule","i1.MtnaWfGetObjectTypePipe","isValueItem","MtnaAnnotationsIndicatorModule","MatMomentDateModule","MatButtonModule","MatDialogModule","skipWhile","take","Subject","MtnaWfSerializer.insertFormItemValues","MtnaWfSerializer.determineSerializeFunctionToUse","MtnaWfFormItemChange","i1.MtnaWfApiService","i2.MtnaWfNgFormService","i3.MtnaWfUIService","MtnaSearchSelectionService","takeUntil","distinctUntilChanged","Subscription","i1.MtnaWfManagerService","i1.MtnaWfNgFormService","i1.MtnaWfFormDisablerComponent","i5.MtnaWfFilterHiddenItemsPipe","_FormStepMixinBase","mixinColor","i1.MtnaWfFormStepComponent","i6","i7","i8.MtnaWfFormStepGroupPipe","i9.CoerceFormStepPipe","i10.CoerceFormStepGroupPipe","i11.ChildStepActivePipe","i12.GetStepAriaLabel","FlexLayoutModule","MatDividerModule","MtnaStatusCircleModule","MatRippleModule","MatTooltipModule","MatIconModule","i6.MtnaWfSanitizeHtmlPipe","A11yModule","MatCardModule","FormsModule","ReactiveFormsModule","i3.MtnaWfFormItemComponent","MatSlideToggleModule","MtnaHighlightModule","i1.MtnaWfDialogService","i5.MtnaWfFormItemComponent","i8","i9","i10","i11","i12.MtnaWfGetFormControlErrorPipe","MatFormFieldModule","MatCheckboxModule","MatDatepicker","i7.MtnaWfGetFormControlErrorPipe","ViewChild","MatInputModule","MatDatepickerModule","i1.MtnaWfDateComponent","i5.MtnaWfCoerceFormControlPipe","i9.MtnaWfGetFormControlErrorPipe","i10.MtnaWfGetListIconPipe","i11.MtnaWfGetSelectedOptionNamePipe","MatSelectModule","MatListModule","MtnaFileDownloadModule","MtnaFileUploadModule","MatProgressSpinnerModule","DROPDOWN_ITEM_ID","i1.MtnaWfItemHeaderComponent","i7.MtnaWfItemsWithValuePipe","i1.MtnaWfStepCardComponent","i6.MtnaWfGetObjectTypePipe","isInternationalizedParagraphAnswerItem","MtnaLocaleIds","mtnaToLanguageId","mtnaLanguageIdToDisplay","i8.MtnaWfGetAutoCompletePipe","isDecimalAnswerItem","isParagraphAnswerItem","MatRadioModule","i3.MtnaWfSanitizeHtmlPipe","i2.MtnaWfItemHeaderComponent","i3.MtnaWfRepeatableItemComponent","i6.MtnaWfFormItemComponent","i10.MtnaWfCoerceFormItemPipe","COMPLEX_STANDARD","MtnaTrackByPropertyPipeModule","MtnaSearchDialogComponent","MtnaSearchDialogData","MatTableModule","merge","i8.MtnaWfGetFormControlErrorPipe","i9.MtnaWfGetAvailableQuartersPipe","i10.MtnaWfDateQuarterPipe","i1.MtnaWfYearQuarterComponent","BOOLEAN_ITEM_ID","DATE_ITEM_ID","OFFSET_DATE_RANGE_ITEM_ID","FILE_UPLOAD_ITEM_ID","MULTIPLE_CHOICE_ITEM_ID","NUMBERED_LIST_ITEM_ID","REPEATABLE_ITEM_ID","RESOURCE_SEARCH_ITEM_ID","BULLETED_LIST_ITEM_ID","YEAR_QUARTER_RANGE_ITEM_ID","InjectedComponentProvider","i3.MtnaWfFormStepperComponent","i4.MtnaWfFormDisablerComponent","i10.MtnaWfFilterHiddenItemsPipe"],"mappings":"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"}
|