{"version":3,"sources":["node_modules/@codemirror/commands/dist/index.js","node_modules/@codemirror/theme-one-dark/dist/index.js","node_modules/crelt/index.js","node_modules/@codemirror/search/dist/index.js","node_modules/@codemirror/lint/dist/index.js","node_modules/codemirror/dist/index.js","node_modules/@acrodata/code-editor/fesm2022/acrodata-code-editor.mjs","src/app/core/security/auth.guard.ts","src/app/shared/generated/Models/PatientDataVm.ts","src/app/fulfillment/services/rx-data-storage.service.ts","node_modules/@ngneat/until-destroy/fesm2022/ngneat-until-destroy.mjs","src/app/inventory/services/ai-dicts.ts","src/app/inventory/services/inventory.service.ts","src/app/inventory/scan-rx/scan-rx.component.ts","src/app/inventory/scan-rx/scan-rx.component.html","src/app/fulfillment/inv-choice-modal/inv-choice-modal.component.ts","src/app/fulfillment/inv-choice-modal/inv-choice-modal.component.html","src/app/fulfillment/shipment-list-rx-modal/shipment-list-rx-modal.component.ts","src/app/fulfillment/shipment-list-rx-modal/shipment-list-rx-modal.component.html","src/app/shared/fa-num-icon/fa-icon-name/fa-icon-name.ts","src/app/shared/fa-num-icon/fa-icon-position/fa-icon-position.ts","src/app/shared/fa-num-icon/fa-num-color/fa-num-color.enum.ts","src/app/services/global-variables.service.ts","src/app/inventory/rx-fulfillment/edit-rx-fulfillment/edit-rx-fulfillment.component.ts","src/app/inventory/rx-fulfillment/edit-rx-fulfillment/edit-rx-fulfillment.component.html","src/app/shared/generated/Inventory/Models/Shipping/ShipmentCommentVm.ts","src/app/shared/generated/Models/GenericCommentVm.ts","src/app/shared/conversations/conversations.component.ts","src/app/shared/conversations/conversations.component.html","src/app/inventory/rx-fulfillment/edit-rx-fulfillment/helpers/comments-modal/comments-modal.component.ts","src/app/inventory/rx-fulfillment/edit-rx-fulfillment/helpers/comments-modal/comments-modal.component.html","src/app/inventory/rx-fulfillment/edit-rx-fulfillment/helpers/patient-phi-card/patient-phi-card.component.ts","src/app/inventory/rx-fulfillment/edit-rx-fulfillment/helpers/patient-phi-card/patient-phi-card.component.html","node_modules/date-fns/addWeeks.mjs","node_modules/date-fns/subWeeks.mjs","src/app/shared/generated/Inventory/Models/Shipping/ShipmentListVm.ts","src/app/shared/fa-num-icon/fa-count/fa-count.component.ts","src/app/shared/fa-num-icon/fa-count/fa-count.component.html","src/app/shared/fa-num-icon/fa-num-icon.component.ts","src/app/shared/fa-num-icon/fa-num-icon.component.html","src/app/inventory/rx-fulfillment/shipment-list/shipment-list.component.ts","src/app/inventory/rx-fulfillment/shipment-list/shipment-list.component.html","src/app/shared/scan-product/scan-product.component.ts","src/app/shared/scan-product/scan-product.component.html","src/app/shared/generated/Models/AuditHistoryVm.ts","src/app/shared/audit-history/audit-history.component.ts","src/app/shared/audit-history/audit-history.component.html","src/app/core/enums/generated/VerificationTypeEnum.ts","src/app/shared/generated/Administration/Models/VerificationSettingVm.ts","src/app/shared/generated/Administration/Models/VerificationVm.ts","src/app/shared/authentication/verification-settings/verification-settings.component.ts","src/app/shared/authentication/verification-settings/verification-settings.component.html","node_modules/@pixelverse/strichjs-sdk/dist/strich.js","src/environments/environment.prod.ts","src/app/shared/barcode-scanner-strich/barcode-scanner-strich.component.ts","src/app/shared/barcode-scanner-strich/barcode-scanner-strich.component.html","src/app/core/sendgrid-api/sendgrid-api.service.ts","src/app/shared/bounce-alert/bounce-alert.component.ts","src/app/shared/bounce-alert/bounce-alert.component.html","src/app/shared/ci-workstation/ci-workstation.component.ts","src/app/shared/ci-workstation/ci-workstation.component.html","src/app/shared/generated/Models/GenericOrder/GenericOrderCommentVm.ts","src/app/shared/generated/MetabolicFormula/Models/MetabolicFormulaPatientInfoVm.ts","src/app/shared/generated/MetabolicFormula/Models/MetabolicFormulaPatientCareVm.ts","src/app/shared/generated/MetabolicFormula/Models/MetabolicFormulaInsuranceInfoVm.ts","src/app/shared/generated/Models/GenericOrder/GenericOrderDetailsVm.ts","src/app/shared/generated/CIRepack/Models/CiRepackOrder/CiOrderInfoVm.ts","src/app/shared/comments-modal/comments-modal.component.ts","src/app/shared/comments-modal/comments-modal.component.html","src/app/shared/generated/Administration/Models/Facilities/EditFacilityVm.ts","src/app/shared/generated/Administration/Models/Facilities/FacilityCardinalAccountVm.ts","src/app/shared/facilities/facility-cardinal-accounts/facility-cardinal-accounts.component.ts","src/app/shared/facilities/facility-cardinal-accounts/facility-cardinal-accounts.component.html","src/app/shared/facilities/facility-audit-history/facility-audit-history.component.ts","src/app/shared/facilities/facility-audit-history/facility-audit-history.component.html","src/app/shared/generated/Administration/Models/Facilities/FacilityUserListVm.ts","src/app/shared/generated/Administration/Models/Users/EditUserVm.ts","src/app/shared/facilities/facility-user-list/facility-user-list.component.ts","src/app/shared/facilities/facility-user-list/facility-user-list.component.html","src/app/shared/generated/Administration/Models/Facilities/BusinessAreas/EditFacilityCiDetailVm.ts","src/app/shared/generated/Administration/Models/Facilities/BusinessAreas/EditFacilityInventoryDetailVm.ts","src/app/shared/generated/Administration/Models/Facilities/BusinessAreas/FacilityBusinessAreaVm.ts","src/app/shared/facilities/facility-business-areas/ci-business-area/ci-business-area.component.ts","src/app/shared/facilities/facility-business-areas/ci-business-area/ci-business-area.component.html","src/app/shared/facilities/facility-business-areas/inventory-business-area/inventory-business-area.component.ts","src/app/shared/facilities/facility-business-areas/inventory-business-area/inventory-business-area.component.html","src/app/shared/facilities/facility-business-areas/metabolic-business-area/metabolic-business-area.component.ts","src/app/shared/facilities/facility-business-areas/facilty-business-areas.component.ts","src/app/shared/facilities/facility-business-areas/facilty-business-areas.component.html","src/app/shared/facilities/edit-facility/edit-facility.component.ts","src/app/shared/facilities/edit-facility/edit-facility.component.html","src/app/shared/generated/Administration/Models/Facilities/FacilityListVm.ts","src/app/shared/facilities/facilities-list/facilities-list.component.ts","src/app/shared/facilities/facilities-list/facilities-list.component.html","src/app/heros/applicants/edit-applicant/edit-applicant-helpers/photo-modal/photo-modal.component.ts","src/app/heros/applicants/edit-applicant/edit-applicant-helpers/photo-modal/photo-modal.component.html","src/app/shared/image-slider/image-slider/image-slider.component.ts","src/app/shared/image-slider/image-slider/image-slider.component.html","src/app/shared/image-slider/image-slider.module.ts","src/app/shared/generated/Administration/Models/Organizations/OrganizationAccountRequestVm.ts","src/app/shared/navigation/notification-nav/notification-nav.component.ts","src/app/shared/navigation/notification-nav/notification-nav.component.html","src/app/shared/navigation/nav-notification.service.ts","src/app/shared/organizations/organization-account-update/organization-account-update.component.ts","src/app/shared/organizations/organization-account-update/organization-account-update.component.html","src/app/ci-repack/ci-dashboard/ci-dashboard-service.service.ts","src/app/shared/navigation/ci-dashboard-actions/ci-dashboard-actions.component.ts","src/app/shared/navigation/ci-dashboard-actions/ci-dashboard-actions.component.html","src/app/shared/navigation/organization-account-update-nav/organization-account-update-nav.component.ts","src/app/shared/navigation/organization-account-update-nav/organization-account-update-nav.component.html","src/app/shared/fa-business-area-icons/fa-business-area-icons.service.ts","src/app/core/nav-areas/admin-nav.ts","src/app/core/nav-areas/ba-nav.ts","src/app/core/nav-areas/ci-repack-nav.ts","src/app/core/nav-areas/error-report-nav.ts","src/app/core/nav-areas/help-desk-nav.ts","src/app/core/nav-areas/heros-nav.ts","src/app/core/nav-areas/icq-nav.ts","src/app/core/nav-areas/inv-nav.ts","src/app/core/nav-areas/inventory-nav.ts","src/app/core/nav-areas/metabolic-formula-nav.ts","src/app/core/nav-areas/ndc-directory-nav.ts","src/app/core/nav-areas/pcg-nav.ts","src/app/core/nav-areas/pharmacy-inventory-nav.ts","src/app/core/nav-areas/pharmacy-nav.ts","src/app/core/nav-areas/reporting-nav.ts","src/app/core/nav-areas/rxconnects-nav.ts","src/app/core/main-nav-routes.ts","src/app/shared/navigation/navigation.service.ts","src/app/core/sse-notification/sse-notification.service.ts","src/app/shared/navigation/top-click-nav/top-click-nav.component.ts","src/app/shared/navigation/top-click-nav/top-click-nav.component.html","src/app/shared/navigation/top-secondary-nav/top-secondary-nav.component.ts","src/app/shared/navigation/top-secondary-nav/top-secondary-nav.component.html","src/app/ci-repack/admin/workstations/workstation.service.ts","src/app/shared/navigation/workstation-banner/workstation-banner.component.ts","src/app/shared/navigation/workstation-banner/workstation-banner.component.html","src/app/shared/navigation/quick-nav/quick-nav.service.ts","src/app/shared/navigation/quick-nav/quick-nav.component.ts","src/app/shared/navigation/quick-nav/quick-nav.component.html","src/app/shared/generated/pcg-settings-Development.ts","src/app/shared/generated/pcg-settings-Demo.ts","src/app/shared/generated/pcg-settings-Production.ts","src/app/shared/generated/pcg-settings.ts","src/app/shared/state/account-request-modal-state.service.ts","src/app/core/pages/dashboard/widgets/notifications-widget/notifications.service.ts","src/app/shared/navigation/mat-side-nav/mat-side-nav.component.ts","src/app/shared/navigation/mat-side-nav/mat-side-nav.component.html","src/app/shared/navigation/navigation.module.ts","src/app/shared/generated/Administration/Models/Organizations/EditOrganizationFacilityVm.ts","src/app/shared/organizations/programs-accounts-infographic/programs-accounts-infographic.component.ts","src/app/shared/organizations/programs-accounts-infographic/programs-accounts-infographic.component.html","src/app/shared/organizations/edit-organization-facility/edit-organization-facility.component.ts","src/app/shared/organizations/edit-organization-facility/edit-organization-facility.component.html","src/app/shared/generated/Administration/Models/Organizations/OrganizationUsersVm.ts","src/app/shared/organizations/edit-organization/edit-organization-tabs/associated-users/associated-users.component.ts","src/app/shared/organizations/edit-organization/edit-organization-tabs/associated-users/associated-users.component.html","src/app/shared/generated/Administration/Models/Facilities/MedicalDirectorVm.ts","src/app/shared/generated/Administration/Models/Organizations/EditOrganizationVm.ts","src/app/shared/generated/Administration/Models/Organizations/OrganizationFacilityListVm.ts","src/app/shared/generated/SysInv/Models/SysInvInventoryVm.ts","src/app/shared/facilities/facility-inventories/services/facility-inventory.service.ts","src/app/shared/organizations/org-facility-inventories/org-facility-inventories.component.ts","src/app/shared/organizations/org-facility-inventories/org-facility-inventories.component.html","src/app/shared/organizations/organization-facility-list/organization-facility-list.component.ts","src/app/shared/organizations/organization-facility-list/organization-facility-list.component.html","src/app/shared/organizations/organization-audit-history/organization-audit-history.component.ts","src/app/shared/organizations/organization-audit-history/organization-audit-history.component.html","src/app/shared/generated/Administration/Models/Organizations/OrganizationAccountVm.ts","src/app/shared/organizations/organization-accounts/organization-accounts.component.ts","src/app/shared/organizations/organization-accounts/organization-accounts.component.html","src/app/core/enums/generated/LoginTypeEnum.ts","src/app/core/enums/generated/SSOTypeEnum.ts","src/app/shared/organizations/organization-logins/organization-logins.component.ts","src/app/shared/organizations/organization-logins/organization-logins.component.html","src/app/shared/organizations/edit-organization/edit-organization.component.ts","src/app/shared/organizations/edit-organization/edit-organization.component.html","src/app/shared/organizations/edit-organization/edit-organization.module.ts","src/app/shared/animations/shared-animations.ts","src/app/shared/generated/Administration/Models/Organizations/OrganizationListVm.ts","src/app/core/enums/CollapsibleTableRowStateEnum.ts","src/app/core/collapsible-table/collapsible-table.service.ts","src/app/shared/organizations/organizations-list/organizations-list.component.ts","src/app/shared/organizations/organizations-list/organizations-list.component.html","src/app/shared/pipes/safe.pipe.ts","src/app/shared/pipes/utcToLocalDate.pipe.ts","src/app/shared/stepper/stepper.component.ts","src/app/shared/stepper/stepper.component.html","src/app/shared/stepper/stepper.module.ts","src/app/shared/tooltip-label/tooltip-label.component.ts","src/app/shared/tooltip-label/tooltip-label.component.html","src/app/shared/tooltip/tooltip.module.ts","src/app/shared/shared.module.ts"],"sourcesContent":["import { Annotation, Facet, combineConfig, StateField, Transaction, ChangeSet, ChangeDesc, EditorSelection, StateEffect, Text, findClusterBreak, countColumn, CharCategory } from '@codemirror/state';\nimport { EditorView, Direction } from '@codemirror/view';\nimport { IndentContext, getIndentation, indentString, matchBrackets, syntaxTree, getIndentUnit, indentUnit } from '@codemirror/language';\nimport { NodeProp } from '@lezer/common';\n\n/**\nComment or uncomment the current selection. Will use line comments\nif available, otherwise falling back to block comments.\n*/\nconst toggleComment = target => {\n let {\n state\n } = target,\n line = state.doc.lineAt(state.selection.main.from),\n config = getConfig(target.state, line.from);\n return config.line ? toggleLineComment(target) : config.block ? toggleBlockCommentByLine(target) : false;\n};\nfunction command(f, option) {\n return ({\n state,\n dispatch\n }) => {\n if (state.readOnly) return false;\n let tr = f(option, state);\n if (!tr) return false;\n dispatch(state.update(tr));\n return true;\n };\n}\n/**\nComment or uncomment the current selection using line comments.\nThe line comment syntax is taken from the\n[`commentTokens`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt).\n*/\nconst toggleLineComment = /*@__PURE__*/command(changeLineComment, 0 /* CommentOption.Toggle */);\n/**\nComment the current selection using line comments.\n*/\nconst lineComment = /*@__PURE__*/command(changeLineComment, 1 /* CommentOption.Comment */);\n/**\nUncomment the current selection using line comments.\n*/\nconst lineUncomment = /*@__PURE__*/command(changeLineComment, 2 /* CommentOption.Uncomment */);\n/**\nComment or uncomment the current selection using block comments.\nThe block comment syntax is taken from the\n[`commentTokens`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt).\n*/\nconst toggleBlockComment = /*@__PURE__*/command(changeBlockComment, 0 /* CommentOption.Toggle */);\n/**\nComment the current selection using block comments.\n*/\nconst blockComment = /*@__PURE__*/command(changeBlockComment, 1 /* CommentOption.Comment */);\n/**\nUncomment the current selection using block comments.\n*/\nconst blockUncomment = /*@__PURE__*/command(changeBlockComment, 2 /* CommentOption.Uncomment */);\n/**\nComment or uncomment the lines around the current selection using\nblock comments.\n*/\nconst toggleBlockCommentByLine = /*@__PURE__*/command((o, s) => changeBlockComment(o, s, selectedLineRanges(s)), 0 /* CommentOption.Toggle */);\nfunction getConfig(state, pos) {\n let data = state.languageDataAt(\"commentTokens\", pos);\n return data.length ? data[0] : {};\n}\nconst SearchMargin = 50;\n/**\nDetermines if the given range is block-commented in the given\nstate.\n*/\nfunction findBlockComment(state, {\n open,\n close\n}, from, to) {\n let textBefore = state.sliceDoc(from - SearchMargin, from);\n let textAfter = state.sliceDoc(to, to + SearchMargin);\n let spaceBefore = /\\s*$/.exec(textBefore)[0].length,\n spaceAfter = /^\\s*/.exec(textAfter)[0].length;\n let beforeOff = textBefore.length - spaceBefore;\n if (textBefore.slice(beforeOff - open.length, beforeOff) == open && textAfter.slice(spaceAfter, spaceAfter + close.length) == close) {\n return {\n open: {\n pos: from - spaceBefore,\n margin: spaceBefore && 1\n },\n close: {\n pos: to + spaceAfter,\n margin: spaceAfter && 1\n }\n };\n }\n let startText, endText;\n if (to - from <= 2 * SearchMargin) {\n startText = endText = state.sliceDoc(from, to);\n } else {\n startText = state.sliceDoc(from, from + SearchMargin);\n endText = state.sliceDoc(to - SearchMargin, to);\n }\n let startSpace = /^\\s*/.exec(startText)[0].length,\n endSpace = /\\s*$/.exec(endText)[0].length;\n let endOff = endText.length - endSpace - close.length;\n if (startText.slice(startSpace, startSpace + open.length) == open && endText.slice(endOff, endOff + close.length) == close) {\n return {\n open: {\n pos: from + startSpace + open.length,\n margin: /\\s/.test(startText.charAt(startSpace + open.length)) ? 1 : 0\n },\n close: {\n pos: to - endSpace - close.length,\n margin: /\\s/.test(endText.charAt(endOff - 1)) ? 1 : 0\n }\n };\n }\n return null;\n}\nfunction selectedLineRanges(state) {\n let ranges = [];\n for (let r of state.selection.ranges) {\n let fromLine = state.doc.lineAt(r.from);\n let toLine = r.to <= fromLine.to ? fromLine : state.doc.lineAt(r.to);\n let last = ranges.length - 1;\n if (last >= 0 && ranges[last].to > fromLine.from) ranges[last].to = toLine.to;else ranges.push({\n from: fromLine.from + /^\\s*/.exec(fromLine.text)[0].length,\n to: toLine.to\n });\n }\n return ranges;\n}\n// Performs toggle, comment and uncomment of block comments in\n// languages that support them.\nfunction changeBlockComment(option, state, ranges = state.selection.ranges) {\n let tokens = ranges.map(r => getConfig(state, r.from).block);\n if (!tokens.every(c => c)) return null;\n let comments = ranges.map((r, i) => findBlockComment(state, tokens[i], r.from, r.to));\n if (option != 2 /* CommentOption.Uncomment */ && !comments.every(c => c)) {\n return {\n changes: state.changes(ranges.map((range, i) => {\n if (comments[i]) return [];\n return [{\n from: range.from,\n insert: tokens[i].open + \" \"\n }, {\n from: range.to,\n insert: \" \" + tokens[i].close\n }];\n }))\n };\n } else if (option != 1 /* CommentOption.Comment */ && comments.some(c => c)) {\n let changes = [];\n for (let i = 0, comment; i < comments.length; i++) if (comment = comments[i]) {\n let token = tokens[i],\n {\n open,\n close\n } = comment;\n changes.push({\n from: open.pos - token.open.length,\n to: open.pos + open.margin\n }, {\n from: close.pos - close.margin,\n to: close.pos + token.close.length\n });\n }\n return {\n changes\n };\n }\n return null;\n}\n// Performs toggle, comment and uncomment of line comments.\nfunction changeLineComment(option, state, ranges = state.selection.ranges) {\n let lines = [];\n let prevLine = -1;\n for (let {\n from,\n to\n } of ranges) {\n let startI = lines.length,\n minIndent = 1e9;\n let token = getConfig(state, from).line;\n if (!token) continue;\n for (let pos = from; pos <= to;) {\n let line = state.doc.lineAt(pos);\n if (line.from > prevLine && (from == to || to > line.from)) {\n prevLine = line.from;\n let indent = /^\\s*/.exec(line.text)[0].length;\n let empty = indent == line.length;\n let comment = line.text.slice(indent, indent + token.length) == token ? indent : -1;\n if (indent < line.text.length && indent < minIndent) minIndent = indent;\n lines.push({\n line,\n comment,\n token,\n indent,\n empty,\n single: false\n });\n }\n pos = line.to + 1;\n }\n if (minIndent < 1e9) for (let i = startI; i < lines.length; i++) if (lines[i].indent < lines[i].line.text.length) lines[i].indent = minIndent;\n if (lines.length == startI + 1) lines[startI].single = true;\n }\n if (option != 2 /* CommentOption.Uncomment */ && lines.some(l => l.comment < 0 && (!l.empty || l.single))) {\n let changes = [];\n for (let {\n line,\n token,\n indent,\n empty,\n single\n } of lines) if (single || !empty) changes.push({\n from: line.from + indent,\n insert: token + \" \"\n });\n let changeSet = state.changes(changes);\n return {\n changes: changeSet,\n selection: state.selection.map(changeSet, 1)\n };\n } else if (option != 1 /* CommentOption.Comment */ && lines.some(l => l.comment >= 0)) {\n let changes = [];\n for (let {\n line,\n comment,\n token\n } of lines) if (comment >= 0) {\n let from = line.from + comment,\n to = from + token.length;\n if (line.text[to - line.from] == \" \") to++;\n changes.push({\n from,\n to\n });\n }\n return {\n changes\n };\n }\n return null;\n}\nconst fromHistory = /*@__PURE__*/Annotation.define();\n/**\nTransaction annotation that will prevent that transaction from\nbeing combined with other transactions in the undo history. Given\n`\"before\"`, it'll prevent merging with previous transactions. With\n`\"after\"`, subsequent transactions won't be combined with this\none. With `\"full\"`, the transaction is isolated on both sides.\n*/\nconst isolateHistory = /*@__PURE__*/Annotation.define();\n/**\nThis facet provides a way to register functions that, given a\ntransaction, provide a set of effects that the history should\nstore when inverting the transaction. This can be used to\nintegrate some kinds of effects in the history, so that they can\nbe undone (and redone again).\n*/\nconst invertedEffects = /*@__PURE__*/Facet.define();\nconst historyConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n minDepth: 100,\n newGroupDelay: 500,\n joinToEvent: (_t, isAdjacent) => isAdjacent\n }, {\n minDepth: Math.max,\n newGroupDelay: Math.min,\n joinToEvent: (a, b) => (tr, adj) => a(tr, adj) || b(tr, adj)\n });\n }\n});\nconst historyField_ = /*@__PURE__*/StateField.define({\n create() {\n return HistoryState.empty;\n },\n update(state, tr) {\n let config = tr.state.facet(historyConfig);\n let fromHist = tr.annotation(fromHistory);\n if (fromHist) {\n let item = HistEvent.fromTransaction(tr, fromHist.selection),\n from = fromHist.side;\n let other = from == 0 /* BranchName.Done */ ? state.undone : state.done;\n if (item) other = updateBranch(other, other.length, config.minDepth, item);else other = addSelection(other, tr.startState.selection);\n return new HistoryState(from == 0 /* BranchName.Done */ ? fromHist.rest : other, from == 0 /* BranchName.Done */ ? other : fromHist.rest);\n }\n let isolate = tr.annotation(isolateHistory);\n if (isolate == \"full\" || isolate == \"before\") state = state.isolate();\n if (tr.annotation(Transaction.addToHistory) === false) return !tr.changes.empty ? state.addMapping(tr.changes.desc) : state;\n let event = HistEvent.fromTransaction(tr);\n let time = tr.annotation(Transaction.time),\n userEvent = tr.annotation(Transaction.userEvent);\n if (event) state = state.addChanges(event, time, userEvent, config, tr);else if (tr.selection) state = state.addSelection(tr.startState.selection, time, userEvent, config.newGroupDelay);\n if (isolate == \"full\" || isolate == \"after\") state = state.isolate();\n return state;\n },\n toJSON(value) {\n return {\n done: value.done.map(e => e.toJSON()),\n undone: value.undone.map(e => e.toJSON())\n };\n },\n fromJSON(json) {\n return new HistoryState(json.done.map(HistEvent.fromJSON), json.undone.map(HistEvent.fromJSON));\n }\n});\n/**\nCreate a history extension with the given configuration.\n*/\nfunction history(config = {}) {\n return [historyField_, historyConfig.of(config), EditorView.domEventHandlers({\n beforeinput(e, view) {\n let command = e.inputType == \"historyUndo\" ? undo : e.inputType == \"historyRedo\" ? redo : null;\n if (!command) return false;\n e.preventDefault();\n return command(view);\n }\n })];\n}\n/**\nThe state field used to store the history data. Should probably\nonly be used when you want to\n[serialize](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) or\n[deserialize](https://codemirror.net/6/docs/ref/#state.EditorState^fromJSON) state objects in a way\nthat preserves history.\n*/\nconst historyField = historyField_;\nfunction cmd(side, selection) {\n return function ({\n state,\n dispatch\n }) {\n if (!selection && state.readOnly) return false;\n let historyState = state.field(historyField_, false);\n if (!historyState) return false;\n let tr = historyState.pop(side, state, selection);\n if (!tr) return false;\n dispatch(tr);\n return true;\n };\n}\n/**\nUndo a single group of history events. Returns false if no group\nwas available.\n*/\nconst undo = /*@__PURE__*/cmd(0 /* BranchName.Done */, false);\n/**\nRedo a group of history events. Returns false if no group was\navailable.\n*/\nconst redo = /*@__PURE__*/cmd(1 /* BranchName.Undone */, false);\n/**\nUndo a change or selection change.\n*/\nconst undoSelection = /*@__PURE__*/cmd(0 /* BranchName.Done */, true);\n/**\nRedo a change or selection change.\n*/\nconst redoSelection = /*@__PURE__*/cmd(1 /* BranchName.Undone */, true);\nfunction depth(side) {\n return function (state) {\n let histState = state.field(historyField_, false);\n if (!histState) return 0;\n let branch = side == 0 /* BranchName.Done */ ? histState.done : histState.undone;\n return branch.length - (branch.length && !branch[0].changes ? 1 : 0);\n };\n}\n/**\nThe amount of undoable change events available in a given state.\n*/\nconst undoDepth = /*@__PURE__*/depth(0 /* BranchName.Done */);\n/**\nThe amount of redoable change events available in a given state.\n*/\nconst redoDepth = /*@__PURE__*/depth(1 /* BranchName.Undone */);\n// History events store groups of changes or effects that need to be\n// undone/redone together.\nclass HistEvent {\n constructor(\n // The changes in this event. Normal events hold at least one\n // change or effect. But it may be necessary to store selection\n // events before the first change, in which case a special type of\n // instance is created which doesn't hold any changes, with\n // changes == startSelection == undefined\n changes,\n // The effects associated with this event\n effects,\n // Accumulated mapping (from addToHistory==false) that should be\n // applied to events below this one.\n mapped,\n // The selection before this event\n startSelection,\n // Stores selection changes after this event, to be used for\n // selection undo/redo.\n selectionsAfter) {\n this.changes = changes;\n this.effects = effects;\n this.mapped = mapped;\n this.startSelection = startSelection;\n this.selectionsAfter = selectionsAfter;\n }\n setSelAfter(after) {\n return new HistEvent(this.changes, this.effects, this.mapped, this.startSelection, after);\n }\n toJSON() {\n var _a, _b, _c;\n return {\n changes: (_a = this.changes) === null || _a === void 0 ? void 0 : _a.toJSON(),\n mapped: (_b = this.mapped) === null || _b === void 0 ? void 0 : _b.toJSON(),\n startSelection: (_c = this.startSelection) === null || _c === void 0 ? void 0 : _c.toJSON(),\n selectionsAfter: this.selectionsAfter.map(s => s.toJSON())\n };\n }\n static fromJSON(json) {\n return new HistEvent(json.changes && ChangeSet.fromJSON(json.changes), [], json.mapped && ChangeDesc.fromJSON(json.mapped), json.startSelection && EditorSelection.fromJSON(json.startSelection), json.selectionsAfter.map(EditorSelection.fromJSON));\n }\n // This does not check `addToHistory` and such, it assumes the\n // transaction needs to be converted to an item. Returns null when\n // there are no changes or effects in the transaction.\n static fromTransaction(tr, selection) {\n let effects = none;\n for (let invert of tr.startState.facet(invertedEffects)) {\n let result = invert(tr);\n if (result.length) effects = effects.concat(result);\n }\n if (!effects.length && tr.changes.empty) return null;\n return new HistEvent(tr.changes.invert(tr.startState.doc), effects, undefined, selection || tr.startState.selection, none);\n }\n static selection(selections) {\n return new HistEvent(undefined, none, undefined, undefined, selections);\n }\n}\nfunction updateBranch(branch, to, maxLen, newEvent) {\n let start = to + 1 > maxLen + 20 ? to - maxLen - 1 : 0;\n let newBranch = branch.slice(start, to);\n newBranch.push(newEvent);\n return newBranch;\n}\nfunction isAdjacent(a, b) {\n let ranges = [],\n isAdjacent = false;\n a.iterChangedRanges((f, t) => ranges.push(f, t));\n b.iterChangedRanges((_f, _t, f, t) => {\n for (let i = 0; i < ranges.length;) {\n let from = ranges[i++],\n to = ranges[i++];\n if (t >= from && f <= to) isAdjacent = true;\n }\n });\n return isAdjacent;\n}\nfunction eqSelectionShape(a, b) {\n return a.ranges.length == b.ranges.length && a.ranges.filter((r, i) => r.empty != b.ranges[i].empty).length === 0;\n}\nfunction conc(a, b) {\n return !a.length ? b : !b.length ? a : a.concat(b);\n}\nconst none = [];\nconst MaxSelectionsPerEvent = 200;\nfunction addSelection(branch, selection) {\n if (!branch.length) {\n return [HistEvent.selection([selection])];\n } else {\n let lastEvent = branch[branch.length - 1];\n let sels = lastEvent.selectionsAfter.slice(Math.max(0, lastEvent.selectionsAfter.length - MaxSelectionsPerEvent));\n if (sels.length && sels[sels.length - 1].eq(selection)) return branch;\n sels.push(selection);\n return updateBranch(branch, branch.length - 1, 1e9, lastEvent.setSelAfter(sels));\n }\n}\n// Assumes the top item has one or more selectionAfter values\nfunction popSelection(branch) {\n let last = branch[branch.length - 1];\n let newBranch = branch.slice();\n newBranch[branch.length - 1] = last.setSelAfter(last.selectionsAfter.slice(0, last.selectionsAfter.length - 1));\n return newBranch;\n}\n// Add a mapping to the top event in the given branch. If this maps\n// away all the changes and effects in that item, drop it and\n// propagate the mapping to the next item.\nfunction addMappingToBranch(branch, mapping) {\n if (!branch.length) return branch;\n let length = branch.length,\n selections = none;\n while (length) {\n let event = mapEvent(branch[length - 1], mapping, selections);\n if (event.changes && !event.changes.empty || event.effects.length) {\n // Event survived mapping\n let result = branch.slice(0, length);\n result[length - 1] = event;\n return result;\n } else {\n // Drop this event, since there's no changes or effects left\n mapping = event.mapped;\n length--;\n selections = event.selectionsAfter;\n }\n }\n return selections.length ? [HistEvent.selection(selections)] : none;\n}\nfunction mapEvent(event, mapping, extraSelections) {\n let selections = conc(event.selectionsAfter.length ? event.selectionsAfter.map(s => s.map(mapping)) : none, extraSelections);\n // Change-less events don't store mappings (they are always the last event in a branch)\n if (!event.changes) return HistEvent.selection(selections);\n let mappedChanges = event.changes.map(mapping),\n before = mapping.mapDesc(event.changes, true);\n let fullMapping = event.mapped ? event.mapped.composeDesc(before) : before;\n return new HistEvent(mappedChanges, StateEffect.mapEffects(event.effects, mapping), fullMapping, event.startSelection.map(before), selections);\n}\nconst joinableUserEvent = /^(input\\.type|delete)($|\\.)/;\nlet HistoryState = /*#__PURE__*/(() => {\n class HistoryState {\n constructor(done, undone, prevTime = 0, prevUserEvent = undefined) {\n this.done = done;\n this.undone = undone;\n this.prevTime = prevTime;\n this.prevUserEvent = prevUserEvent;\n }\n isolate() {\n return this.prevTime ? new HistoryState(this.done, this.undone) : this;\n }\n addChanges(event, time, userEvent, config, tr) {\n let done = this.done,\n lastEvent = done[done.length - 1];\n if (lastEvent && lastEvent.changes && !lastEvent.changes.empty && event.changes && (!userEvent || joinableUserEvent.test(userEvent)) && (!lastEvent.selectionsAfter.length && time - this.prevTime < config.newGroupDelay && config.joinToEvent(tr, isAdjacent(lastEvent.changes, event.changes)) ||\n // For compose (but not compose.start) events, always join with previous event\n userEvent == \"input.type.compose\")) {\n done = updateBranch(done, done.length - 1, config.minDepth, new HistEvent(event.changes.compose(lastEvent.changes), conc(event.effects, lastEvent.effects), lastEvent.mapped, lastEvent.startSelection, none));\n } else {\n done = updateBranch(done, done.length, config.minDepth, event);\n }\n return new HistoryState(done, none, time, userEvent);\n }\n addSelection(selection, time, userEvent, newGroupDelay) {\n let last = this.done.length ? this.done[this.done.length - 1].selectionsAfter : none;\n if (last.length > 0 && time - this.prevTime < newGroupDelay && userEvent == this.prevUserEvent && userEvent && /^select($|\\.)/.test(userEvent) && eqSelectionShape(last[last.length - 1], selection)) return this;\n return new HistoryState(addSelection(this.done, selection), this.undone, time, userEvent);\n }\n addMapping(mapping) {\n return new HistoryState(addMappingToBranch(this.done, mapping), addMappingToBranch(this.undone, mapping), this.prevTime, this.prevUserEvent);\n }\n pop(side, state, onlySelection) {\n let branch = side == 0 /* BranchName.Done */ ? this.done : this.undone;\n if (branch.length == 0) return null;\n let event = branch[branch.length - 1],\n selection = event.selectionsAfter[0] || state.selection;\n if (onlySelection && event.selectionsAfter.length) {\n return state.update({\n selection: event.selectionsAfter[event.selectionsAfter.length - 1],\n annotations: fromHistory.of({\n side,\n rest: popSelection(branch),\n selection\n }),\n userEvent: side == 0 /* BranchName.Done */ ? \"select.undo\" : \"select.redo\",\n scrollIntoView: true\n });\n } else if (!event.changes) {\n return null;\n } else {\n let rest = branch.length == 1 ? none : branch.slice(0, branch.length - 1);\n if (event.mapped) rest = addMappingToBranch(rest, event.mapped);\n return state.update({\n changes: event.changes,\n selection: event.startSelection,\n effects: event.effects,\n annotations: fromHistory.of({\n side,\n rest,\n selection\n }),\n filter: false,\n userEvent: side == 0 /* BranchName.Done */ ? \"undo\" : \"redo\",\n scrollIntoView: true\n });\n }\n }\n }\n HistoryState.empty = /*@__PURE__*/new HistoryState(none, none);\n /**\n Default key bindings for the undo history.\n \n - Mod-z: [`undo`](https://codemirror.net/6/docs/ref/#commands.undo).\n - Mod-y (Mod-Shift-z on macOS) + Ctrl-Shift-z on Linux: [`redo`](https://codemirror.net/6/docs/ref/#commands.redo).\n - Mod-u: [`undoSelection`](https://codemirror.net/6/docs/ref/#commands.undoSelection).\n - Alt-u (Mod-Shift-u on macOS): [`redoSelection`](https://codemirror.net/6/docs/ref/#commands.redoSelection).\n */\n return HistoryState;\n})();\nconst historyKeymap = [{\n key: \"Mod-z\",\n run: undo,\n preventDefault: true\n}, {\n key: \"Mod-y\",\n mac: \"Mod-Shift-z\",\n run: redo,\n preventDefault: true\n}, {\n linux: \"Ctrl-Shift-z\",\n run: redo,\n preventDefault: true\n}, {\n key: \"Mod-u\",\n run: undoSelection,\n preventDefault: true\n}, {\n key: \"Alt-u\",\n mac: \"Mod-Shift-u\",\n run: redoSelection,\n preventDefault: true\n}];\nfunction updateSel(sel, by) {\n return EditorSelection.create(sel.ranges.map(by), sel.mainIndex);\n}\nfunction setSel(state, selection) {\n return state.update({\n selection,\n scrollIntoView: true,\n userEvent: \"select\"\n });\n}\nfunction moveSel({\n state,\n dispatch\n}, how) {\n let selection = updateSel(state.selection, how);\n if (selection.eq(state.selection, true)) return false;\n dispatch(setSel(state, selection));\n return true;\n}\nfunction rangeEnd(range, forward) {\n return EditorSelection.cursor(forward ? range.to : range.from);\n}\nfunction cursorByChar(view, forward) {\n return moveSel(view, range => range.empty ? view.moveByChar(range, forward) : rangeEnd(range, forward));\n}\nfunction ltrAtCursor(view) {\n return view.textDirectionAt(view.state.selection.main.head) == Direction.LTR;\n}\n/**\nMove the selection one character to the left (which is backward in\nleft-to-right text, forward in right-to-left text).\n*/\nconst cursorCharLeft = view => cursorByChar(view, !ltrAtCursor(view));\n/**\nMove the selection one character to the right.\n*/\nconst cursorCharRight = view => cursorByChar(view, ltrAtCursor(view));\n/**\nMove the selection one character forward.\n*/\nconst cursorCharForward = view => cursorByChar(view, true);\n/**\nMove the selection one character backward.\n*/\nconst cursorCharBackward = view => cursorByChar(view, false);\nfunction cursorByGroup(view, forward) {\n return moveSel(view, range => range.empty ? view.moveByGroup(range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection to the left across one group of word or\nnon-word (but also non-space) characters.\n*/\nconst cursorGroupLeft = view => cursorByGroup(view, !ltrAtCursor(view));\n/**\nMove the selection one group to the right.\n*/\nconst cursorGroupRight = view => cursorByGroup(view, ltrAtCursor(view));\n/**\nMove the selection one group forward.\n*/\nconst cursorGroupForward = view => cursorByGroup(view, true);\n/**\nMove the selection one group backward.\n*/\nconst cursorGroupBackward = view => cursorByGroup(view, false);\nconst segmenter = typeof Intl != \"undefined\" && Intl.Segmenter ? /*@__PURE__*/new Intl.Segmenter(undefined, {\n granularity: \"word\"\n}) : null;\nfunction moveBySubword(view, range, forward) {\n let categorize = view.state.charCategorizer(range.from);\n let cat = CharCategory.Space,\n pos = range.from,\n steps = 0;\n let done = false,\n sawUpper = false,\n sawLower = false;\n let step = next => {\n if (done) return false;\n pos += forward ? next.length : -next.length;\n let nextCat = categorize(next),\n ahead;\n if (nextCat == CharCategory.Word && next.charCodeAt(0) < 128 && /[\\W_]/.test(next)) nextCat = -1; // Treat word punctuation specially\n if (cat == CharCategory.Space) cat = nextCat;\n if (cat != nextCat) return false;\n if (cat == CharCategory.Word) {\n if (next.toLowerCase() == next) {\n if (!forward && sawUpper) return false;\n sawLower = true;\n } else if (sawLower) {\n if (forward) return false;\n done = true;\n } else {\n if (sawUpper && forward && categorize(ahead = view.state.sliceDoc(pos, pos + 1)) == CharCategory.Word && ahead.toLowerCase() == ahead) return false;\n sawUpper = true;\n }\n }\n steps++;\n return true;\n };\n let end = view.moveByChar(range, forward, start => {\n step(start);\n return step;\n });\n if (segmenter && cat == CharCategory.Word && end.from == range.from + steps * (forward ? 1 : -1)) {\n let from = Math.min(range.head, end.head),\n to = Math.max(range.head, end.head);\n let skipped = view.state.sliceDoc(from, to);\n if (skipped.length > 1 && /[\\u4E00-\\uffff]/.test(skipped)) {\n let segments = Array.from(segmenter.segment(skipped));\n if (segments.length > 1) {\n if (forward) return EditorSelection.cursor(range.head + segments[1].index, -1);\n return EditorSelection.cursor(end.head + segments[segments.length - 1].index, 1);\n }\n }\n }\n return end;\n}\nfunction cursorBySubword(view, forward) {\n return moveSel(view, range => range.empty ? moveBySubword(view, range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection one group or camel-case subword forward.\n*/\nconst cursorSubwordForward = view => cursorBySubword(view, true);\n/**\nMove the selection one group or camel-case subword backward.\n*/\nconst cursorSubwordBackward = view => cursorBySubword(view, false);\nfunction interestingNode(state, node, bracketProp) {\n if (node.type.prop(bracketProp)) return true;\n let len = node.to - node.from;\n return len && (len > 2 || /[^\\s,.;:]/.test(state.sliceDoc(node.from, node.to))) || node.firstChild;\n}\nfunction moveBySyntax(state, start, forward) {\n let pos = syntaxTree(state).resolveInner(start.head);\n let bracketProp = forward ? NodeProp.closedBy : NodeProp.openedBy;\n // Scan forward through child nodes to see if there's an interesting\n // node ahead.\n for (let at = start.head;;) {\n let next = forward ? pos.childAfter(at) : pos.childBefore(at);\n if (!next) break;\n if (interestingNode(state, next, bracketProp)) pos = next;else at = forward ? next.to : next.from;\n }\n let bracket = pos.type.prop(bracketProp),\n match,\n newPos;\n if (bracket && (match = forward ? matchBrackets(state, pos.from, 1) : matchBrackets(state, pos.to, -1)) && match.matched) newPos = forward ? match.end.to : match.end.from;else newPos = forward ? pos.to : pos.from;\n return EditorSelection.cursor(newPos, forward ? -1 : 1);\n}\n/**\nMove the cursor over the next syntactic element to the left.\n*/\nconst cursorSyntaxLeft = view => moveSel(view, range => moveBySyntax(view.state, range, !ltrAtCursor(view)));\n/**\nMove the cursor over the next syntactic element to the right.\n*/\nconst cursorSyntaxRight = view => moveSel(view, range => moveBySyntax(view.state, range, ltrAtCursor(view)));\nfunction cursorByLine(view, forward) {\n return moveSel(view, range => {\n if (!range.empty) return rangeEnd(range, forward);\n let moved = view.moveVertically(range, forward);\n return moved.head != range.head ? moved : view.moveToLineBoundary(range, forward);\n });\n}\n/**\nMove the selection one line up.\n*/\nconst cursorLineUp = view => cursorByLine(view, false);\n/**\nMove the selection one line down.\n*/\nconst cursorLineDown = view => cursorByLine(view, true);\nfunction pageInfo(view) {\n let selfScroll = view.scrollDOM.clientHeight < view.scrollDOM.scrollHeight - 2;\n let marginTop = 0,\n marginBottom = 0,\n height;\n if (selfScroll) {\n for (let source of view.state.facet(EditorView.scrollMargins)) {\n let margins = source(view);\n if (margins === null || margins === void 0 ? void 0 : margins.top) marginTop = Math.max(margins === null || margins === void 0 ? void 0 : margins.top, marginTop);\n if (margins === null || margins === void 0 ? void 0 : margins.bottom) marginBottom = Math.max(margins === null || margins === void 0 ? void 0 : margins.bottom, marginBottom);\n }\n height = view.scrollDOM.clientHeight - marginTop - marginBottom;\n } else {\n height = (view.dom.ownerDocument.defaultView || window).innerHeight;\n }\n return {\n marginTop,\n marginBottom,\n selfScroll,\n height: Math.max(view.defaultLineHeight, height - 5)\n };\n}\nfunction cursorByPage(view, forward) {\n let page = pageInfo(view);\n let {\n state\n } = view,\n selection = updateSel(state.selection, range => {\n return range.empty ? view.moveVertically(range, forward, page.height) : rangeEnd(range, forward);\n });\n if (selection.eq(state.selection)) return false;\n let effect;\n if (page.selfScroll) {\n let startPos = view.coordsAtPos(state.selection.main.head);\n let scrollRect = view.scrollDOM.getBoundingClientRect();\n let scrollTop = scrollRect.top + page.marginTop,\n scrollBottom = scrollRect.bottom - page.marginBottom;\n if (startPos && startPos.top > scrollTop && startPos.bottom < scrollBottom) effect = EditorView.scrollIntoView(selection.main.head, {\n y: \"start\",\n yMargin: startPos.top - scrollTop\n });\n }\n view.dispatch(setSel(state, selection), {\n effects: effect\n });\n return true;\n}\n/**\nMove the selection one page up.\n*/\nconst cursorPageUp = view => cursorByPage(view, false);\n/**\nMove the selection one page down.\n*/\nconst cursorPageDown = view => cursorByPage(view, true);\nfunction moveByLineBoundary(view, start, forward) {\n let line = view.lineBlockAt(start.head),\n moved = view.moveToLineBoundary(start, forward);\n if (moved.head == start.head && moved.head != (forward ? line.to : line.from)) moved = view.moveToLineBoundary(start, forward, false);\n if (!forward && moved.head == line.from && line.length) {\n let space = /^\\s*/.exec(view.state.sliceDoc(line.from, Math.min(line.from + 100, line.to)))[0].length;\n if (space && start.head != line.from + space) moved = EditorSelection.cursor(line.from + space);\n }\n return moved;\n}\n/**\nMove the selection to the next line wrap point, or to the end of\nthe line if there isn't one left on this line.\n*/\nconst cursorLineBoundaryForward = view => moveSel(view, range => moveByLineBoundary(view, range, true));\n/**\nMove the selection to previous line wrap point, or failing that to\nthe start of the line. If the line is indented, and the cursor\nisn't already at the end of the indentation, this will move to the\nend of the indentation instead of the start of the line.\n*/\nconst cursorLineBoundaryBackward = view => moveSel(view, range => moveByLineBoundary(view, range, false));\n/**\nMove the selection one line wrap point to the left.\n*/\nconst cursorLineBoundaryLeft = view => moveSel(view, range => moveByLineBoundary(view, range, !ltrAtCursor(view)));\n/**\nMove the selection one line wrap point to the right.\n*/\nconst cursorLineBoundaryRight = view => moveSel(view, range => moveByLineBoundary(view, range, ltrAtCursor(view)));\n/**\nMove the selection to the start of the line.\n*/\nconst cursorLineStart = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from, 1));\n/**\nMove the selection to the end of the line.\n*/\nconst cursorLineEnd = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to, -1));\nfunction toMatchingBracket(state, dispatch, extend) {\n let found = false,\n selection = updateSel(state.selection, range => {\n let matching = matchBrackets(state, range.head, -1) || matchBrackets(state, range.head, 1) || range.head > 0 && matchBrackets(state, range.head - 1, 1) || range.head < state.doc.length && matchBrackets(state, range.head + 1, -1);\n if (!matching || !matching.end) return range;\n found = true;\n let head = matching.start.from == range.head ? matching.end.to : matching.end.from;\n return extend ? EditorSelection.range(range.anchor, head) : EditorSelection.cursor(head);\n });\n if (!found) return false;\n dispatch(setSel(state, selection));\n return true;\n}\n/**\nMove the selection to the bracket matching the one it is currently\non, if any.\n*/\nconst cursorMatchingBracket = ({\n state,\n dispatch\n}) => toMatchingBracket(state, dispatch, false);\n/**\nExtend the selection to the bracket matching the one the selection\nhead is currently on, if any.\n*/\nconst selectMatchingBracket = ({\n state,\n dispatch\n}) => toMatchingBracket(state, dispatch, true);\nfunction extendSel(view, how) {\n let selection = updateSel(view.state.selection, range => {\n let head = how(range);\n return EditorSelection.range(range.anchor, head.head, head.goalColumn, head.bidiLevel || undefined);\n });\n if (selection.eq(view.state.selection)) return false;\n view.dispatch(setSel(view.state, selection));\n return true;\n}\nfunction selectByChar(view, forward) {\n return extendSel(view, range => view.moveByChar(range, forward));\n}\n/**\nMove the selection head one character to the left, while leaving\nthe anchor in place.\n*/\nconst selectCharLeft = view => selectByChar(view, !ltrAtCursor(view));\n/**\nMove the selection head one character to the right.\n*/\nconst selectCharRight = view => selectByChar(view, ltrAtCursor(view));\n/**\nMove the selection head one character forward.\n*/\nconst selectCharForward = view => selectByChar(view, true);\n/**\nMove the selection head one character backward.\n*/\nconst selectCharBackward = view => selectByChar(view, false);\nfunction selectByGroup(view, forward) {\n return extendSel(view, range => view.moveByGroup(range, forward));\n}\n/**\nMove the selection head one [group](https://codemirror.net/6/docs/ref/#commands.cursorGroupLeft) to\nthe left.\n*/\nconst selectGroupLeft = view => selectByGroup(view, !ltrAtCursor(view));\n/**\nMove the selection head one group to the right.\n*/\nconst selectGroupRight = view => selectByGroup(view, ltrAtCursor(view));\n/**\nMove the selection head one group forward.\n*/\nconst selectGroupForward = view => selectByGroup(view, true);\n/**\nMove the selection head one group backward.\n*/\nconst selectGroupBackward = view => selectByGroup(view, false);\nfunction selectBySubword(view, forward) {\n return extendSel(view, range => moveBySubword(view, range, forward));\n}\n/**\nMove the selection head one group or camel-case subword forward.\n*/\nconst selectSubwordForward = view => selectBySubword(view, true);\n/**\nMove the selection head one group or subword backward.\n*/\nconst selectSubwordBackward = view => selectBySubword(view, false);\n/**\nMove the selection head over the next syntactic element to the left.\n*/\nconst selectSyntaxLeft = view => extendSel(view, range => moveBySyntax(view.state, range, !ltrAtCursor(view)));\n/**\nMove the selection head over the next syntactic element to the right.\n*/\nconst selectSyntaxRight = view => extendSel(view, range => moveBySyntax(view.state, range, ltrAtCursor(view)));\nfunction selectByLine(view, forward) {\n return extendSel(view, range => view.moveVertically(range, forward));\n}\n/**\nMove the selection head one line up.\n*/\nconst selectLineUp = view => selectByLine(view, false);\n/**\nMove the selection head one line down.\n*/\nconst selectLineDown = view => selectByLine(view, true);\nfunction selectByPage(view, forward) {\n return extendSel(view, range => view.moveVertically(range, forward, pageInfo(view).height));\n}\n/**\nMove the selection head one page up.\n*/\nconst selectPageUp = view => selectByPage(view, false);\n/**\nMove the selection head one page down.\n*/\nconst selectPageDown = view => selectByPage(view, true);\n/**\nMove the selection head to the next line boundary.\n*/\nconst selectLineBoundaryForward = view => extendSel(view, range => moveByLineBoundary(view, range, true));\n/**\nMove the selection head to the previous line boundary.\n*/\nconst selectLineBoundaryBackward = view => extendSel(view, range => moveByLineBoundary(view, range, false));\n/**\nMove the selection head one line boundary to the left.\n*/\nconst selectLineBoundaryLeft = view => extendSel(view, range => moveByLineBoundary(view, range, !ltrAtCursor(view)));\n/**\nMove the selection head one line boundary to the right.\n*/\nconst selectLineBoundaryRight = view => extendSel(view, range => moveByLineBoundary(view, range, ltrAtCursor(view)));\n/**\nMove the selection head to the start of the line.\n*/\nconst selectLineStart = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from));\n/**\nMove the selection head to the end of the line.\n*/\nconst selectLineEnd = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to));\n/**\nMove the selection to the start of the document.\n*/\nconst cursorDocStart = ({\n state,\n dispatch\n}) => {\n dispatch(setSel(state, {\n anchor: 0\n }));\n return true;\n};\n/**\nMove the selection to the end of the document.\n*/\nconst cursorDocEnd = ({\n state,\n dispatch\n}) => {\n dispatch(setSel(state, {\n anchor: state.doc.length\n }));\n return true;\n};\n/**\nMove the selection head to the start of the document.\n*/\nconst selectDocStart = ({\n state,\n dispatch\n}) => {\n dispatch(setSel(state, {\n anchor: state.selection.main.anchor,\n head: 0\n }));\n return true;\n};\n/**\nMove the selection head to the end of the document.\n*/\nconst selectDocEnd = ({\n state,\n dispatch\n}) => {\n dispatch(setSel(state, {\n anchor: state.selection.main.anchor,\n head: state.doc.length\n }));\n return true;\n};\n/**\nSelect the entire document.\n*/\nconst selectAll = ({\n state,\n dispatch\n}) => {\n dispatch(state.update({\n selection: {\n anchor: 0,\n head: state.doc.length\n },\n userEvent: \"select\"\n }));\n return true;\n};\n/**\nExpand the selection to cover entire lines.\n*/\nconst selectLine = ({\n state,\n dispatch\n}) => {\n let ranges = selectedLineBlocks(state).map(({\n from,\n to\n }) => EditorSelection.range(from, Math.min(to + 1, state.doc.length)));\n dispatch(state.update({\n selection: EditorSelection.create(ranges),\n userEvent: \"select\"\n }));\n return true;\n};\n/**\nSelect the next syntactic construct that is larger than the\nselection. Note that this will only work insofar as the language\n[provider](https://codemirror.net/6/docs/ref/#language.language) you use builds up a full\nsyntax tree.\n*/\nconst selectParentSyntax = ({\n state,\n dispatch\n}) => {\n let selection = updateSel(state.selection, range => {\n var _a;\n let stack = syntaxTree(state).resolveStack(range.from, 1);\n for (let cur = stack; cur; cur = cur.next) {\n let {\n node\n } = cur;\n if ((node.from < range.from && node.to >= range.to || node.to > range.to && node.from <= range.from) && ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.parent)) return EditorSelection.range(node.to, node.from);\n }\n return range;\n });\n dispatch(setSel(state, selection));\n return true;\n};\n/**\nSimplify the current selection. When multiple ranges are selected,\nreduce it to its main range. Otherwise, if the selection is\nnon-empty, convert it to a cursor selection.\n*/\nconst simplifySelection = ({\n state,\n dispatch\n}) => {\n let cur = state.selection,\n selection = null;\n if (cur.ranges.length > 1) selection = EditorSelection.create([cur.main]);else if (!cur.main.empty) selection = EditorSelection.create([EditorSelection.cursor(cur.main.head)]);\n if (!selection) return false;\n dispatch(setSel(state, selection));\n return true;\n};\nfunction deleteBy(target, by) {\n if (target.state.readOnly) return false;\n let event = \"delete.selection\",\n {\n state\n } = target;\n let changes = state.changeByRange(range => {\n let {\n from,\n to\n } = range;\n if (from == to) {\n let towards = by(range);\n if (towards < from) {\n event = \"delete.backward\";\n towards = skipAtomic(target, towards, false);\n } else if (towards > from) {\n event = \"delete.forward\";\n towards = skipAtomic(target, towards, true);\n }\n from = Math.min(from, towards);\n to = Math.max(to, towards);\n } else {\n from = skipAtomic(target, from, false);\n to = skipAtomic(target, to, true);\n }\n return from == to ? {\n range\n } : {\n changes: {\n from,\n to\n },\n range: EditorSelection.cursor(from, from < range.head ? -1 : 1)\n };\n });\n if (changes.changes.empty) return false;\n target.dispatch(state.update(changes, {\n scrollIntoView: true,\n userEvent: event,\n effects: event == \"delete.selection\" ? EditorView.announce.of(state.phrase(\"Selection deleted\")) : undefined\n }));\n return true;\n}\nfunction skipAtomic(target, pos, forward) {\n if (target instanceof EditorView) for (let ranges of target.state.facet(EditorView.atomicRanges).map(f => f(target))) ranges.between(pos, pos, (from, to) => {\n if (from < pos && to > pos) pos = forward ? to : from;\n });\n return pos;\n}\nconst deleteByChar = (target, forward, byIndentUnit) => deleteBy(target, range => {\n let pos = range.from,\n {\n state\n } = target,\n line = state.doc.lineAt(pos),\n before,\n targetPos;\n if (byIndentUnit && !forward && pos > line.from && pos < line.from + 200 && !/[^ \\t]/.test(before = line.text.slice(0, pos - line.from))) {\n if (before[before.length - 1] == \"\\t\") return pos - 1;\n let col = countColumn(before, state.tabSize),\n drop = col % getIndentUnit(state) || getIndentUnit(state);\n for (let i = 0; i < drop && before[before.length - 1 - i] == \" \"; i++) pos--;\n targetPos = pos;\n } else {\n targetPos = findClusterBreak(line.text, pos - line.from, forward, forward) + line.from;\n if (targetPos == pos && line.number != (forward ? state.doc.lines : 1)) targetPos += forward ? 1 : -1;else if (!forward && /[\\ufe00-\\ufe0f]/.test(line.text.slice(targetPos - line.from, pos - line.from))) targetPos = findClusterBreak(line.text, targetPos - line.from, false, false) + line.from;\n }\n return targetPos;\n});\n/**\nDelete the selection, or, for cursor selections, the character or\nindentation unit before the cursor.\n*/\nconst deleteCharBackward = view => deleteByChar(view, false, true);\n/**\nDelete the selection or the character before the cursor. Does not\nimplement any extended behavior like deleting whole indentation\nunits in one go.\n*/\nconst deleteCharBackwardStrict = view => deleteByChar(view, false, false);\n/**\nDelete the selection or the character after the cursor.\n*/\nconst deleteCharForward = view => deleteByChar(view, true, false);\nconst deleteByGroup = (target, forward) => deleteBy(target, range => {\n let pos = range.head,\n {\n state\n } = target,\n line = state.doc.lineAt(pos);\n let categorize = state.charCategorizer(pos);\n for (let cat = null;;) {\n if (pos == (forward ? line.to : line.from)) {\n if (pos == range.head && line.number != (forward ? state.doc.lines : 1)) pos += forward ? 1 : -1;\n break;\n }\n let next = findClusterBreak(line.text, pos - line.from, forward) + line.from;\n let nextChar = line.text.slice(Math.min(pos, next) - line.from, Math.max(pos, next) - line.from);\n let nextCat = categorize(nextChar);\n if (cat != null && nextCat != cat) break;\n if (nextChar != \" \" || pos != range.head) cat = nextCat;\n pos = next;\n }\n return pos;\n});\n/**\nDelete the selection or backward until the end of the next\n[group](https://codemirror.net/6/docs/ref/#view.EditorView.moveByGroup), only skipping groups of\nwhitespace when they consist of a single space.\n*/\nconst deleteGroupBackward = target => deleteByGroup(target, false);\n/**\nDelete the selection or forward until the end of the next group.\n*/\nconst deleteGroupForward = target => deleteByGroup(target, true);\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe end of the line. If the cursor is directly at the end of the\nline, delete the line break after it.\n*/\nconst deleteToLineEnd = view => deleteBy(view, range => {\n let lineEnd = view.lineBlockAt(range.head).to;\n return range.head < lineEnd ? lineEnd : Math.min(view.state.doc.length, range.head + 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe start of the line. If the cursor is directly at the start of the\nline, delete the line break before it.\n*/\nconst deleteToLineStart = view => deleteBy(view, range => {\n let lineStart = view.lineBlockAt(range.head).from;\n return range.head > lineStart ? lineStart : Math.max(0, range.head - 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe start of the line or the next line wrap before the cursor.\n*/\nconst deleteLineBoundaryBackward = view => deleteBy(view, range => {\n let lineStart = view.moveToLineBoundary(range, false).head;\n return range.head > lineStart ? lineStart : Math.max(0, range.head - 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe end of the line or the next line wrap after the cursor.\n*/\nconst deleteLineBoundaryForward = view => deleteBy(view, range => {\n let lineStart = view.moveToLineBoundary(range, true).head;\n return range.head < lineStart ? lineStart : Math.min(view.state.doc.length, range.head + 1);\n});\n/**\nDelete all whitespace directly before a line end from the\ndocument.\n*/\nconst deleteTrailingWhitespace = ({\n state,\n dispatch\n}) => {\n if (state.readOnly) return false;\n let changes = [];\n for (let pos = 0, prev = \"\", iter = state.doc.iter();;) {\n iter.next();\n if (iter.lineBreak || iter.done) {\n let trailing = prev.search(/\\s+$/);\n if (trailing > -1) changes.push({\n from: pos - (prev.length - trailing),\n to: pos\n });\n if (iter.done) break;\n prev = \"\";\n } else {\n prev = iter.value;\n }\n pos += iter.value.length;\n }\n if (!changes.length) return false;\n dispatch(state.update({\n changes,\n userEvent: \"delete\"\n }));\n return true;\n};\n/**\nReplace each selection range with a line break, leaving the cursor\non the line before the break.\n*/\nconst splitLine = ({\n state,\n dispatch\n}) => {\n if (state.readOnly) return false;\n let changes = state.changeByRange(range => {\n return {\n changes: {\n from: range.from,\n to: range.to,\n insert: Text.of([\"\", \"\"])\n },\n range: EditorSelection.cursor(range.from)\n };\n });\n dispatch(state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input\"\n }));\n return true;\n};\n/**\nFlip the characters before and after the cursor(s).\n*/\nconst transposeChars = ({\n state,\n dispatch\n}) => {\n if (state.readOnly) return false;\n let changes = state.changeByRange(range => {\n if (!range.empty || range.from == 0 || range.from == state.doc.length) return {\n range\n };\n let pos = range.from,\n line = state.doc.lineAt(pos);\n let from = pos == line.from ? pos - 1 : findClusterBreak(line.text, pos - line.from, false) + line.from;\n let to = pos == line.to ? pos + 1 : findClusterBreak(line.text, pos - line.from, true) + line.from;\n return {\n changes: {\n from,\n to,\n insert: state.doc.slice(pos, to).append(state.doc.slice(from, pos))\n },\n range: EditorSelection.cursor(to)\n };\n });\n if (changes.changes.empty) return false;\n dispatch(state.update(changes, {\n scrollIntoView: true,\n userEvent: \"move.character\"\n }));\n return true;\n};\nfunction selectedLineBlocks(state) {\n let blocks = [],\n upto = -1;\n for (let range of state.selection.ranges) {\n let startLine = state.doc.lineAt(range.from),\n endLine = state.doc.lineAt(range.to);\n if (!range.empty && range.to == endLine.from) endLine = state.doc.lineAt(range.to - 1);\n if (upto >= startLine.number) {\n let prev = blocks[blocks.length - 1];\n prev.to = endLine.to;\n prev.ranges.push(range);\n } else {\n blocks.push({\n from: startLine.from,\n to: endLine.to,\n ranges: [range]\n });\n }\n upto = endLine.number + 1;\n }\n return blocks;\n}\nfunction moveLine(state, dispatch, forward) {\n if (state.readOnly) return false;\n let changes = [],\n ranges = [];\n for (let block of selectedLineBlocks(state)) {\n if (forward ? block.to == state.doc.length : block.from == 0) continue;\n let nextLine = state.doc.lineAt(forward ? block.to + 1 : block.from - 1);\n let size = nextLine.length + 1;\n if (forward) {\n changes.push({\n from: block.to,\n to: nextLine.to\n }, {\n from: block.from,\n insert: nextLine.text + state.lineBreak\n });\n for (let r of block.ranges) ranges.push(EditorSelection.range(Math.min(state.doc.length, r.anchor + size), Math.min(state.doc.length, r.head + size)));\n } else {\n changes.push({\n from: nextLine.from,\n to: block.from\n }, {\n from: block.to,\n insert: state.lineBreak + nextLine.text\n });\n for (let r of block.ranges) ranges.push(EditorSelection.range(r.anchor - size, r.head - size));\n }\n }\n if (!changes.length) return false;\n dispatch(state.update({\n changes,\n scrollIntoView: true,\n selection: EditorSelection.create(ranges, state.selection.mainIndex),\n userEvent: \"move.line\"\n }));\n return true;\n}\n/**\nMove the selected lines up one line.\n*/\nconst moveLineUp = ({\n state,\n dispatch\n}) => moveLine(state, dispatch, false);\n/**\nMove the selected lines down one line.\n*/\nconst moveLineDown = ({\n state,\n dispatch\n}) => moveLine(state, dispatch, true);\nfunction copyLine(state, dispatch, forward) {\n if (state.readOnly) return false;\n let changes = [];\n for (let block of selectedLineBlocks(state)) {\n if (forward) changes.push({\n from: block.from,\n insert: state.doc.slice(block.from, block.to) + state.lineBreak\n });else changes.push({\n from: block.to,\n insert: state.lineBreak + state.doc.slice(block.from, block.to)\n });\n }\n dispatch(state.update({\n changes,\n scrollIntoView: true,\n userEvent: \"input.copyline\"\n }));\n return true;\n}\n/**\nCreate a copy of the selected lines. Keep the selection in the top copy.\n*/\nconst copyLineUp = ({\n state,\n dispatch\n}) => copyLine(state, dispatch, false);\n/**\nCreate a copy of the selected lines. Keep the selection in the bottom copy.\n*/\nconst copyLineDown = ({\n state,\n dispatch\n}) => copyLine(state, dispatch, true);\n/**\nDelete selected lines.\n*/\nconst deleteLine = view => {\n if (view.state.readOnly) return false;\n let {\n state\n } = view,\n changes = state.changes(selectedLineBlocks(state).map(({\n from,\n to\n }) => {\n if (from > 0) from--;else if (to < state.doc.length) to++;\n return {\n from,\n to\n };\n }));\n let selection = updateSel(state.selection, range => {\n let dist = undefined;\n if (view.lineWrapping) {\n let block = view.lineBlockAt(range.head),\n pos = view.coordsAtPos(range.head, range.assoc || 1);\n if (pos) dist = block.bottom + view.documentTop - pos.bottom + view.defaultLineHeight / 2;\n }\n return view.moveVertically(range, true, dist);\n }).map(changes);\n view.dispatch({\n changes,\n selection,\n scrollIntoView: true,\n userEvent: \"delete.line\"\n });\n return true;\n};\n/**\nReplace the selection with a newline.\n*/\nconst insertNewline = ({\n state,\n dispatch\n}) => {\n dispatch(state.update(state.replaceSelection(state.lineBreak), {\n scrollIntoView: true,\n userEvent: \"input\"\n }));\n return true;\n};\n/**\nReplace the selection with a newline and the same amount of\nindentation as the line above.\n*/\nconst insertNewlineKeepIndent = ({\n state,\n dispatch\n}) => {\n dispatch(state.update(state.changeByRange(range => {\n let indent = /^\\s*/.exec(state.doc.lineAt(range.from).text)[0];\n return {\n changes: {\n from: range.from,\n to: range.to,\n insert: state.lineBreak + indent\n },\n range: EditorSelection.cursor(range.from + indent.length + 1)\n };\n }), {\n scrollIntoView: true,\n userEvent: \"input\"\n }));\n return true;\n};\nfunction isBetweenBrackets(state, pos) {\n if (/\\(\\)|\\[\\]|\\{\\}/.test(state.sliceDoc(pos - 1, pos + 1))) return {\n from: pos,\n to: pos\n };\n let context = syntaxTree(state).resolveInner(pos);\n let before = context.childBefore(pos),\n after = context.childAfter(pos),\n closedBy;\n if (before && after && before.to <= pos && after.from >= pos && (closedBy = before.type.prop(NodeProp.closedBy)) && closedBy.indexOf(after.name) > -1 && state.doc.lineAt(before.to).from == state.doc.lineAt(after.from).from && !/\\S/.test(state.sliceDoc(before.to, after.from))) return {\n from: before.to,\n to: after.from\n };\n return null;\n}\n/**\nReplace the selection with a newline and indent the newly created\nline(s). If the current line consists only of whitespace, this\nwill also delete that whitespace. When the cursor is between\nmatching brackets, an additional newline will be inserted after\nthe cursor.\n*/\nconst insertNewlineAndIndent = /*@__PURE__*/newlineAndIndent(false);\n/**\nCreate a blank, indented line below the current line.\n*/\nconst insertBlankLine = /*@__PURE__*/newlineAndIndent(true);\nfunction newlineAndIndent(atEof) {\n return ({\n state,\n dispatch\n }) => {\n if (state.readOnly) return false;\n let changes = state.changeByRange(range => {\n let {\n from,\n to\n } = range,\n line = state.doc.lineAt(from);\n let explode = !atEof && from == to && isBetweenBrackets(state, from);\n if (atEof) from = to = (to <= line.to ? line : state.doc.lineAt(to)).to;\n let cx = new IndentContext(state, {\n simulateBreak: from,\n simulateDoubleBreak: !!explode\n });\n let indent = getIndentation(cx, from);\n if (indent == null) indent = countColumn(/^\\s*/.exec(state.doc.lineAt(from).text)[0], state.tabSize);\n while (to < line.to && /\\s/.test(line.text[to - line.from])) to++;\n if (explode) ({\n from,\n to\n } = explode);else if (from > line.from && from < line.from + 100 && !/\\S/.test(line.text.slice(0, from))) from = line.from;\n let insert = [\"\", indentString(state, indent)];\n if (explode) insert.push(indentString(state, cx.lineIndent(line.from, -1)));\n return {\n changes: {\n from,\n to,\n insert: Text.of(insert)\n },\n range: EditorSelection.cursor(from + 1 + insert[1].length)\n };\n });\n dispatch(state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input\"\n }));\n return true;\n };\n}\nfunction changeBySelectedLine(state, f) {\n let atLine = -1;\n return state.changeByRange(range => {\n let changes = [];\n for (let pos = range.from; pos <= range.to;) {\n let line = state.doc.lineAt(pos);\n if (line.number > atLine && (range.empty || range.to > line.from)) {\n f(line, changes, range);\n atLine = line.number;\n }\n pos = line.to + 1;\n }\n let changeSet = state.changes(changes);\n return {\n changes,\n range: EditorSelection.range(changeSet.mapPos(range.anchor, 1), changeSet.mapPos(range.head, 1))\n };\n });\n}\n/**\nAuto-indent the selected lines. This uses the [indentation service\nfacet](https://codemirror.net/6/docs/ref/#language.indentService) as source for auto-indent\ninformation.\n*/\nconst indentSelection = ({\n state,\n dispatch\n}) => {\n if (state.readOnly) return false;\n let updated = Object.create(null);\n let context = new IndentContext(state, {\n overrideIndentation: start => {\n let found = updated[start];\n return found == null ? -1 : found;\n }\n });\n let changes = changeBySelectedLine(state, (line, changes, range) => {\n let indent = getIndentation(context, line.from);\n if (indent == null) return;\n if (!/\\S/.test(line.text)) indent = 0;\n let cur = /^\\s*/.exec(line.text)[0];\n let norm = indentString(state, indent);\n if (cur != norm || range.from < line.from + cur.length) {\n updated[line.from] = indent;\n changes.push({\n from: line.from,\n to: line.from + cur.length,\n insert: norm\n });\n }\n });\n if (!changes.changes.empty) dispatch(state.update(changes, {\n userEvent: \"indent\"\n }));\n return true;\n};\n/**\nAdd a [unit](https://codemirror.net/6/docs/ref/#language.indentUnit) of indentation to all selected\nlines.\n*/\nconst indentMore = ({\n state,\n dispatch\n}) => {\n if (state.readOnly) return false;\n dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n changes.push({\n from: line.from,\n insert: state.facet(indentUnit)\n });\n }), {\n userEvent: \"input.indent\"\n }));\n return true;\n};\n/**\nRemove a [unit](https://codemirror.net/6/docs/ref/#language.indentUnit) of indentation from all\nselected lines.\n*/\nconst indentLess = ({\n state,\n dispatch\n}) => {\n if (state.readOnly) return false;\n dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n let space = /^\\s*/.exec(line.text)[0];\n if (!space) return;\n let col = countColumn(space, state.tabSize),\n keep = 0;\n let insert = indentString(state, Math.max(0, col - getIndentUnit(state)));\n while (keep < space.length && keep < insert.length && space.charCodeAt(keep) == insert.charCodeAt(keep)) keep++;\n changes.push({\n from: line.from + keep,\n to: line.from + space.length,\n insert: insert.slice(keep)\n });\n }), {\n userEvent: \"delete.dedent\"\n }));\n return true;\n};\n/**\nEnables or disables\n[tab-focus mode](https://codemirror.net/6/docs/ref/#view.EditorView.setTabFocusMode). While on, this\nprevents the editor's key bindings from capturing Tab or\nShift-Tab, making it possible for the user to move focus out of\nthe editor with the keyboard.\n*/\nconst toggleTabFocusMode = view => {\n view.setTabFocusMode();\n return true;\n};\n/**\nTemporarily enables [tab-focus\nmode](https://codemirror.net/6/docs/ref/#view.EditorView.setTabFocusMode) for two seconds or until\nanother key is pressed.\n*/\nconst temporarilySetTabFocusMode = view => {\n view.setTabFocusMode(2000);\n return true;\n};\n/**\nInsert a tab character at the cursor or, if something is selected,\nuse [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore) to indent the entire\nselection.\n*/\nconst insertTab = ({\n state,\n dispatch\n}) => {\n if (state.selection.ranges.some(r => !r.empty)) return indentMore({\n state,\n dispatch\n });\n dispatch(state.update(state.replaceSelection(\"\\t\"), {\n scrollIntoView: true,\n userEvent: \"input\"\n }));\n return true;\n};\n/**\nArray of key bindings containing the Emacs-style bindings that are\navailable on macOS by default.\n\n - Ctrl-b: [`cursorCharLeft`](https://codemirror.net/6/docs/ref/#commands.cursorCharLeft) ([`selectCharLeft`](https://codemirror.net/6/docs/ref/#commands.selectCharLeft) with Shift)\n - Ctrl-f: [`cursorCharRight`](https://codemirror.net/6/docs/ref/#commands.cursorCharRight) ([`selectCharRight`](https://codemirror.net/6/docs/ref/#commands.selectCharRight) with Shift)\n - Ctrl-p: [`cursorLineUp`](https://codemirror.net/6/docs/ref/#commands.cursorLineUp) ([`selectLineUp`](https://codemirror.net/6/docs/ref/#commands.selectLineUp) with Shift)\n - Ctrl-n: [`cursorLineDown`](https://codemirror.net/6/docs/ref/#commands.cursorLineDown) ([`selectLineDown`](https://codemirror.net/6/docs/ref/#commands.selectLineDown) with Shift)\n - Ctrl-a: [`cursorLineStart`](https://codemirror.net/6/docs/ref/#commands.cursorLineStart) ([`selectLineStart`](https://codemirror.net/6/docs/ref/#commands.selectLineStart) with Shift)\n - Ctrl-e: [`cursorLineEnd`](https://codemirror.net/6/docs/ref/#commands.cursorLineEnd) ([`selectLineEnd`](https://codemirror.net/6/docs/ref/#commands.selectLineEnd) with Shift)\n - Ctrl-d: [`deleteCharForward`](https://codemirror.net/6/docs/ref/#commands.deleteCharForward)\n - Ctrl-h: [`deleteCharBackward`](https://codemirror.net/6/docs/ref/#commands.deleteCharBackward)\n - Ctrl-k: [`deleteToLineEnd`](https://codemirror.net/6/docs/ref/#commands.deleteToLineEnd)\n - Ctrl-Alt-h: [`deleteGroupBackward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupBackward)\n - Ctrl-o: [`splitLine`](https://codemirror.net/6/docs/ref/#commands.splitLine)\n - Ctrl-t: [`transposeChars`](https://codemirror.net/6/docs/ref/#commands.transposeChars)\n - Ctrl-v: [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown)\n - Alt-v: [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp)\n*/\nconst emacsStyleKeymap = [{\n key: \"Ctrl-b\",\n run: cursorCharLeft,\n shift: selectCharLeft,\n preventDefault: true\n}, {\n key: \"Ctrl-f\",\n run: cursorCharRight,\n shift: selectCharRight\n}, {\n key: \"Ctrl-p\",\n run: cursorLineUp,\n shift: selectLineUp\n}, {\n key: \"Ctrl-n\",\n run: cursorLineDown,\n shift: selectLineDown\n}, {\n key: \"Ctrl-a\",\n run: cursorLineStart,\n shift: selectLineStart\n}, {\n key: \"Ctrl-e\",\n run: cursorLineEnd,\n shift: selectLineEnd\n}, {\n key: \"Ctrl-d\",\n run: deleteCharForward\n}, {\n key: \"Ctrl-h\",\n run: deleteCharBackward\n}, {\n key: \"Ctrl-k\",\n run: deleteToLineEnd\n}, {\n key: \"Ctrl-Alt-h\",\n run: deleteGroupBackward\n}, {\n key: \"Ctrl-o\",\n run: splitLine\n}, {\n key: \"Ctrl-t\",\n run: transposeChars\n}, {\n key: \"Ctrl-v\",\n run: cursorPageDown\n}];\n/**\nAn array of key bindings closely sticking to platform-standard or\nwidely used bindings. (This includes the bindings from\n[`emacsStyleKeymap`](https://codemirror.net/6/docs/ref/#commands.emacsStyleKeymap), with their `key`\nproperty changed to `mac`.)\n\n - ArrowLeft: [`cursorCharLeft`](https://codemirror.net/6/docs/ref/#commands.cursorCharLeft) ([`selectCharLeft`](https://codemirror.net/6/docs/ref/#commands.selectCharLeft) with Shift)\n - ArrowRight: [`cursorCharRight`](https://codemirror.net/6/docs/ref/#commands.cursorCharRight) ([`selectCharRight`](https://codemirror.net/6/docs/ref/#commands.selectCharRight) with Shift)\n - Ctrl-ArrowLeft (Alt-ArrowLeft on macOS): [`cursorGroupLeft`](https://codemirror.net/6/docs/ref/#commands.cursorGroupLeft) ([`selectGroupLeft`](https://codemirror.net/6/docs/ref/#commands.selectGroupLeft) with Shift)\n - Ctrl-ArrowRight (Alt-ArrowRight on macOS): [`cursorGroupRight`](https://codemirror.net/6/docs/ref/#commands.cursorGroupRight) ([`selectGroupRight`](https://codemirror.net/6/docs/ref/#commands.selectGroupRight) with Shift)\n - Cmd-ArrowLeft (on macOS): [`cursorLineStart`](https://codemirror.net/6/docs/ref/#commands.cursorLineStart) ([`selectLineStart`](https://codemirror.net/6/docs/ref/#commands.selectLineStart) with Shift)\n - Cmd-ArrowRight (on macOS): [`cursorLineEnd`](https://codemirror.net/6/docs/ref/#commands.cursorLineEnd) ([`selectLineEnd`](https://codemirror.net/6/docs/ref/#commands.selectLineEnd) with Shift)\n - ArrowUp: [`cursorLineUp`](https://codemirror.net/6/docs/ref/#commands.cursorLineUp) ([`selectLineUp`](https://codemirror.net/6/docs/ref/#commands.selectLineUp) with Shift)\n - ArrowDown: [`cursorLineDown`](https://codemirror.net/6/docs/ref/#commands.cursorLineDown) ([`selectLineDown`](https://codemirror.net/6/docs/ref/#commands.selectLineDown) with Shift)\n - Cmd-ArrowUp (on macOS): [`cursorDocStart`](https://codemirror.net/6/docs/ref/#commands.cursorDocStart) ([`selectDocStart`](https://codemirror.net/6/docs/ref/#commands.selectDocStart) with Shift)\n - Cmd-ArrowDown (on macOS): [`cursorDocEnd`](https://codemirror.net/6/docs/ref/#commands.cursorDocEnd) ([`selectDocEnd`](https://codemirror.net/6/docs/ref/#commands.selectDocEnd) with Shift)\n - Ctrl-ArrowUp (on macOS): [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp) ([`selectPageUp`](https://codemirror.net/6/docs/ref/#commands.selectPageUp) with Shift)\n - Ctrl-ArrowDown (on macOS): [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown) ([`selectPageDown`](https://codemirror.net/6/docs/ref/#commands.selectPageDown) with Shift)\n - PageUp: [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp) ([`selectPageUp`](https://codemirror.net/6/docs/ref/#commands.selectPageUp) with Shift)\n - PageDown: [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown) ([`selectPageDown`](https://codemirror.net/6/docs/ref/#commands.selectPageDown) with Shift)\n - Home: [`cursorLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.cursorLineBoundaryBackward) ([`selectLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.selectLineBoundaryBackward) with Shift)\n - End: [`cursorLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.cursorLineBoundaryForward) ([`selectLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.selectLineBoundaryForward) with Shift)\n - Ctrl-Home (Cmd-Home on macOS): [`cursorDocStart`](https://codemirror.net/6/docs/ref/#commands.cursorDocStart) ([`selectDocStart`](https://codemirror.net/6/docs/ref/#commands.selectDocStart) with Shift)\n - Ctrl-End (Cmd-Home on macOS): [`cursorDocEnd`](https://codemirror.net/6/docs/ref/#commands.cursorDocEnd) ([`selectDocEnd`](https://codemirror.net/6/docs/ref/#commands.selectDocEnd) with Shift)\n - Enter: [`insertNewlineAndIndent`](https://codemirror.net/6/docs/ref/#commands.insertNewlineAndIndent)\n - Ctrl-a (Cmd-a on macOS): [`selectAll`](https://codemirror.net/6/docs/ref/#commands.selectAll)\n - Backspace: [`deleteCharBackward`](https://codemirror.net/6/docs/ref/#commands.deleteCharBackward)\n - Delete: [`deleteCharForward`](https://codemirror.net/6/docs/ref/#commands.deleteCharForward)\n - Ctrl-Backspace (Alt-Backspace on macOS): [`deleteGroupBackward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupBackward)\n - Ctrl-Delete (Alt-Delete on macOS): [`deleteGroupForward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupForward)\n - Cmd-Backspace (macOS): [`deleteLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.deleteLineBoundaryBackward).\n - Cmd-Delete (macOS): [`deleteLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.deleteLineBoundaryForward).\n*/\nconst standardKeymap = /*@__PURE__*/[{\n key: \"ArrowLeft\",\n run: cursorCharLeft,\n shift: selectCharLeft,\n preventDefault: true\n}, {\n key: \"Mod-ArrowLeft\",\n mac: \"Alt-ArrowLeft\",\n run: cursorGroupLeft,\n shift: selectGroupLeft,\n preventDefault: true\n}, {\n mac: \"Cmd-ArrowLeft\",\n run: cursorLineBoundaryLeft,\n shift: selectLineBoundaryLeft,\n preventDefault: true\n}, {\n key: \"ArrowRight\",\n run: cursorCharRight,\n shift: selectCharRight,\n preventDefault: true\n}, {\n key: \"Mod-ArrowRight\",\n mac: \"Alt-ArrowRight\",\n run: cursorGroupRight,\n shift: selectGroupRight,\n preventDefault: true\n}, {\n mac: \"Cmd-ArrowRight\",\n run: cursorLineBoundaryRight,\n shift: selectLineBoundaryRight,\n preventDefault: true\n}, {\n key: \"ArrowUp\",\n run: cursorLineUp,\n shift: selectLineUp,\n preventDefault: true\n}, {\n mac: \"Cmd-ArrowUp\",\n run: cursorDocStart,\n shift: selectDocStart\n}, {\n mac: \"Ctrl-ArrowUp\",\n run: cursorPageUp,\n shift: selectPageUp\n}, {\n key: \"ArrowDown\",\n run: cursorLineDown,\n shift: selectLineDown,\n preventDefault: true\n}, {\n mac: \"Cmd-ArrowDown\",\n run: cursorDocEnd,\n shift: selectDocEnd\n}, {\n mac: \"Ctrl-ArrowDown\",\n run: cursorPageDown,\n shift: selectPageDown\n}, {\n key: \"PageUp\",\n run: cursorPageUp,\n shift: selectPageUp\n}, {\n key: \"PageDown\",\n run: cursorPageDown,\n shift: selectPageDown\n}, {\n key: \"Home\",\n run: cursorLineBoundaryBackward,\n shift: selectLineBoundaryBackward,\n preventDefault: true\n}, {\n key: \"Mod-Home\",\n run: cursorDocStart,\n shift: selectDocStart\n}, {\n key: \"End\",\n run: cursorLineBoundaryForward,\n shift: selectLineBoundaryForward,\n preventDefault: true\n}, {\n key: \"Mod-End\",\n run: cursorDocEnd,\n shift: selectDocEnd\n}, {\n key: \"Enter\",\n run: insertNewlineAndIndent\n}, {\n key: \"Mod-a\",\n run: selectAll\n}, {\n key: \"Backspace\",\n run: deleteCharBackward,\n shift: deleteCharBackward\n}, {\n key: \"Delete\",\n run: deleteCharForward\n}, {\n key: \"Mod-Backspace\",\n mac: \"Alt-Backspace\",\n run: deleteGroupBackward\n}, {\n key: \"Mod-Delete\",\n mac: \"Alt-Delete\",\n run: deleteGroupForward\n}, {\n mac: \"Mod-Backspace\",\n run: deleteLineBoundaryBackward\n}, {\n mac: \"Mod-Delete\",\n run: deleteLineBoundaryForward\n}].concat(/*@__PURE__*/emacsStyleKeymap.map(b => ({\n mac: b.key,\n run: b.run,\n shift: b.shift\n})));\n/**\nThe default keymap. Includes all bindings from\n[`standardKeymap`](https://codemirror.net/6/docs/ref/#commands.standardKeymap) plus the following:\n\n- Alt-ArrowLeft (Ctrl-ArrowLeft on macOS): [`cursorSyntaxLeft`](https://codemirror.net/6/docs/ref/#commands.cursorSyntaxLeft) ([`selectSyntaxLeft`](https://codemirror.net/6/docs/ref/#commands.selectSyntaxLeft) with Shift)\n- Alt-ArrowRight (Ctrl-ArrowRight on macOS): [`cursorSyntaxRight`](https://codemirror.net/6/docs/ref/#commands.cursorSyntaxRight) ([`selectSyntaxRight`](https://codemirror.net/6/docs/ref/#commands.selectSyntaxRight) with Shift)\n- Alt-ArrowUp: [`moveLineUp`](https://codemirror.net/6/docs/ref/#commands.moveLineUp)\n- Alt-ArrowDown: [`moveLineDown`](https://codemirror.net/6/docs/ref/#commands.moveLineDown)\n- Shift-Alt-ArrowUp: [`copyLineUp`](https://codemirror.net/6/docs/ref/#commands.copyLineUp)\n- Shift-Alt-ArrowDown: [`copyLineDown`](https://codemirror.net/6/docs/ref/#commands.copyLineDown)\n- Escape: [`simplifySelection`](https://codemirror.net/6/docs/ref/#commands.simplifySelection)\n- Ctrl-Enter (Cmd-Enter on macOS): [`insertBlankLine`](https://codemirror.net/6/docs/ref/#commands.insertBlankLine)\n- Alt-l (Ctrl-l on macOS): [`selectLine`](https://codemirror.net/6/docs/ref/#commands.selectLine)\n- Ctrl-i (Cmd-i on macOS): [`selectParentSyntax`](https://codemirror.net/6/docs/ref/#commands.selectParentSyntax)\n- Ctrl-[ (Cmd-[ on macOS): [`indentLess`](https://codemirror.net/6/docs/ref/#commands.indentLess)\n- Ctrl-] (Cmd-] on macOS): [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore)\n- Ctrl-Alt-\\\\ (Cmd-Alt-\\\\ on macOS): [`indentSelection`](https://codemirror.net/6/docs/ref/#commands.indentSelection)\n- Shift-Ctrl-k (Shift-Cmd-k on macOS): [`deleteLine`](https://codemirror.net/6/docs/ref/#commands.deleteLine)\n- Shift-Ctrl-\\\\ (Shift-Cmd-\\\\ on macOS): [`cursorMatchingBracket`](https://codemirror.net/6/docs/ref/#commands.cursorMatchingBracket)\n- Ctrl-/ (Cmd-/ on macOS): [`toggleComment`](https://codemirror.net/6/docs/ref/#commands.toggleComment).\n- Shift-Alt-a: [`toggleBlockComment`](https://codemirror.net/6/docs/ref/#commands.toggleBlockComment).\n- Ctrl-m (Alt-Shift-m on macOS): [`toggleTabFocusMode`](https://codemirror.net/6/docs/ref/#commands.toggleTabFocusMode).\n*/\nconst defaultKeymap = /*@__PURE__*/[{\n key: \"Alt-ArrowLeft\",\n mac: \"Ctrl-ArrowLeft\",\n run: cursorSyntaxLeft,\n shift: selectSyntaxLeft\n}, {\n key: \"Alt-ArrowRight\",\n mac: \"Ctrl-ArrowRight\",\n run: cursorSyntaxRight,\n shift: selectSyntaxRight\n}, {\n key: \"Alt-ArrowUp\",\n run: moveLineUp\n}, {\n key: \"Shift-Alt-ArrowUp\",\n run: copyLineUp\n}, {\n key: \"Alt-ArrowDown\",\n run: moveLineDown\n}, {\n key: \"Shift-Alt-ArrowDown\",\n run: copyLineDown\n}, {\n key: \"Escape\",\n run: simplifySelection\n}, {\n key: \"Mod-Enter\",\n run: insertBlankLine\n}, {\n key: \"Alt-l\",\n mac: \"Ctrl-l\",\n run: selectLine\n}, {\n key: \"Mod-i\",\n run: selectParentSyntax,\n preventDefault: true\n}, {\n key: \"Mod-[\",\n run: indentLess\n}, {\n key: \"Mod-]\",\n run: indentMore\n}, {\n key: \"Mod-Alt-\\\\\",\n run: indentSelection\n}, {\n key: \"Shift-Mod-k\",\n run: deleteLine\n}, {\n key: \"Shift-Mod-\\\\\",\n run: cursorMatchingBracket\n}, {\n key: \"Mod-/\",\n run: toggleComment\n}, {\n key: \"Alt-A\",\n run: toggleBlockComment\n}, {\n key: \"Ctrl-m\",\n mac: \"Shift-Alt-m\",\n run: toggleTabFocusMode\n}].concat(standardKeymap);\n/**\nA binding that binds Tab to [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore) and\nShift-Tab to [`indentLess`](https://codemirror.net/6/docs/ref/#commands.indentLess).\nPlease see the [Tab example](../../examples/tab/) before using\nthis.\n*/\nconst indentWithTab = {\n key: \"Tab\",\n run: indentMore,\n shift: indentLess\n};\nexport { blockComment, blockUncomment, copyLineDown, copyLineUp, cursorCharBackward, cursorCharForward, cursorCharLeft, cursorCharRight, cursorDocEnd, cursorDocStart, cursorGroupBackward, cursorGroupForward, cursorGroupLeft, cursorGroupRight, cursorLineBoundaryBackward, cursorLineBoundaryForward, cursorLineBoundaryLeft, cursorLineBoundaryRight, cursorLineDown, cursorLineEnd, cursorLineStart, cursorLineUp, cursorMatchingBracket, cursorPageDown, cursorPageUp, cursorSubwordBackward, cursorSubwordForward, cursorSyntaxLeft, cursorSyntaxRight, defaultKeymap, deleteCharBackward, deleteCharBackwardStrict, deleteCharForward, deleteGroupBackward, deleteGroupForward, deleteLine, deleteLineBoundaryBackward, deleteLineBoundaryForward, deleteToLineEnd, deleteToLineStart, deleteTrailingWhitespace, emacsStyleKeymap, history, historyField, historyKeymap, indentLess, indentMore, indentSelection, indentWithTab, insertBlankLine, insertNewline, insertNewlineAndIndent, insertNewlineKeepIndent, insertTab, invertedEffects, isolateHistory, lineComment, lineUncomment, moveLineDown, moveLineUp, redo, redoDepth, redoSelection, selectAll, selectCharBackward, selectCharForward, selectCharLeft, selectCharRight, selectDocEnd, selectDocStart, selectGroupBackward, selectGroupForward, selectGroupLeft, selectGroupRight, selectLine, selectLineBoundaryBackward, selectLineBoundaryForward, selectLineBoundaryLeft, selectLineBoundaryRight, selectLineDown, selectLineEnd, selectLineStart, selectLineUp, selectMatchingBracket, selectPageDown, selectPageUp, selectParentSyntax, selectSubwordBackward, selectSubwordForward, selectSyntaxLeft, selectSyntaxRight, simplifySelection, splitLine, standardKeymap, temporarilySetTabFocusMode, toggleBlockComment, toggleBlockCommentByLine, toggleComment, toggleLineComment, toggleTabFocusMode, transposeChars, undo, undoDepth, undoSelection };","import { EditorView } from '@codemirror/view';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nimport { tags } from '@lezer/highlight';\n\n// Using https://github.com/one-dark/vscode-one-dark-theme/ as reference for the colors\nconst chalky = \"#e5c07b\",\n coral = \"#e06c75\",\n cyan = \"#56b6c2\",\n invalid = \"#ffffff\",\n ivory = \"#abb2bf\",\n stone = \"#7d8799\",\n // Brightened compared to original to increase contrast\n malibu = \"#61afef\",\n sage = \"#98c379\",\n whiskey = \"#d19a66\",\n violet = \"#c678dd\",\n darkBackground = \"#21252b\",\n highlightBackground = \"#2c313a\",\n background = \"#282c34\",\n tooltipBackground = \"#353a42\",\n selection = \"#3E4451\",\n cursor = \"#528bff\";\n/**\nThe colors used in the theme, as CSS color strings.\n*/\nconst color = {\n chalky,\n coral,\n cyan,\n invalid,\n ivory,\n stone,\n malibu,\n sage,\n whiskey,\n violet,\n darkBackground,\n highlightBackground,\n background,\n tooltipBackground,\n selection,\n cursor\n};\n/**\nThe editor theme styles for One Dark.\n*/\nconst oneDarkTheme = /*@__PURE__*/EditorView.theme({\n \"&\": {\n color: ivory,\n backgroundColor: background\n },\n \".cm-content\": {\n caretColor: cursor\n },\n \".cm-cursor, .cm-dropCursor\": {\n borderLeftColor: cursor\n },\n \"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection\": {\n backgroundColor: selection\n },\n \".cm-panels\": {\n backgroundColor: darkBackground,\n color: ivory\n },\n \".cm-panels.cm-panels-top\": {\n borderBottom: \"2px solid black\"\n },\n \".cm-panels.cm-panels-bottom\": {\n borderTop: \"2px solid black\"\n },\n \".cm-searchMatch\": {\n backgroundColor: \"#72a1ff59\",\n outline: \"1px solid #457dff\"\n },\n \".cm-searchMatch.cm-searchMatch-selected\": {\n backgroundColor: \"#6199ff2f\"\n },\n \".cm-activeLine\": {\n backgroundColor: \"#6699ff0b\"\n },\n \".cm-selectionMatch\": {\n backgroundColor: \"#aafe661a\"\n },\n \"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket\": {\n backgroundColor: \"#bad0f847\"\n },\n \".cm-gutters\": {\n backgroundColor: background,\n color: stone,\n border: \"none\"\n },\n \".cm-activeLineGutter\": {\n backgroundColor: highlightBackground\n },\n \".cm-foldPlaceholder\": {\n backgroundColor: \"transparent\",\n border: \"none\",\n color: \"#ddd\"\n },\n \".cm-tooltip\": {\n border: \"none\",\n backgroundColor: tooltipBackground\n },\n \".cm-tooltip .cm-tooltip-arrow:before\": {\n borderTopColor: \"transparent\",\n borderBottomColor: \"transparent\"\n },\n \".cm-tooltip .cm-tooltip-arrow:after\": {\n borderTopColor: tooltipBackground,\n borderBottomColor: tooltipBackground\n },\n \".cm-tooltip-autocomplete\": {\n \"& > ul > li[aria-selected]\": {\n backgroundColor: highlightBackground,\n color: ivory\n }\n }\n}, {\n dark: true\n});\n/**\nThe highlighting style for code in the One Dark theme.\n*/\nconst oneDarkHighlightStyle = /*@__PURE__*/HighlightStyle.define([{\n tag: tags.keyword,\n color: violet\n}, {\n tag: [tags.name, tags.deleted, tags.character, tags.propertyName, tags.macroName],\n color: coral\n}, {\n tag: [/*@__PURE__*/tags.function(tags.variableName), tags.labelName],\n color: malibu\n}, {\n tag: [tags.color, /*@__PURE__*/tags.constant(tags.name), /*@__PURE__*/tags.standard(tags.name)],\n color: whiskey\n}, {\n tag: [/*@__PURE__*/tags.definition(tags.name), tags.separator],\n color: ivory\n}, {\n tag: [tags.typeName, tags.className, tags.number, tags.changed, tags.annotation, tags.modifier, tags.self, tags.namespace],\n color: chalky\n}, {\n tag: [tags.operator, tags.operatorKeyword, tags.url, tags.escape, tags.regexp, tags.link, /*@__PURE__*/tags.special(tags.string)],\n color: cyan\n}, {\n tag: [tags.meta, tags.comment],\n color: stone\n}, {\n tag: tags.strong,\n fontWeight: \"bold\"\n}, {\n tag: tags.emphasis,\n fontStyle: \"italic\"\n}, {\n tag: tags.strikethrough,\n textDecoration: \"line-through\"\n}, {\n tag: tags.link,\n color: stone,\n textDecoration: \"underline\"\n}, {\n tag: tags.heading,\n fontWeight: \"bold\",\n color: coral\n}, {\n tag: [tags.atom, tags.bool, /*@__PURE__*/tags.special(tags.variableName)],\n color: whiskey\n}, {\n tag: [tags.processingInstruction, tags.string, tags.inserted],\n color: sage\n}, {\n tag: tags.invalid,\n color: invalid\n}]);\n/**\nExtension to enable the One Dark theme (both the editor theme and\nthe highlight style).\n*/\nconst oneDark = [oneDarkTheme, /*@__PURE__*/syntaxHighlighting(oneDarkHighlightStyle)];\nexport { color, oneDark, oneDarkHighlightStyle, oneDarkTheme };","export default function crelt() {\n var elt = arguments[0];\n if (typeof elt == \"string\") elt = document.createElement(elt);\n var i = 1,\n next = arguments[1];\n if (next && typeof next == \"object\" && next.nodeType == null && !Array.isArray(next)) {\n for (var name in next) if (Object.prototype.hasOwnProperty.call(next, name)) {\n var value = next[name];\n if (typeof value == \"string\") elt.setAttribute(name, value);else if (value != null) elt[name] = value;\n }\n i++;\n }\n for (; i < arguments.length; i++) add(elt, arguments[i]);\n return elt;\n}\nfunction add(elt, child) {\n if (typeof child == \"string\") {\n elt.appendChild(document.createTextNode(child));\n } else if (child == null) {} else if (child.nodeType != null) {\n elt.appendChild(child);\n } else if (Array.isArray(child)) {\n for (var i = 0; i < child.length; i++) add(elt, child[i]);\n } else {\n throw new RangeError(\"Unsupported child node: \" + child);\n }\n}","import { showPanel, EditorView, getPanel, Decoration, ViewPlugin, runScopeHandlers } from '@codemirror/view';\nimport { codePointAt, fromCodePoint, codePointSize, StateEffect, StateField, EditorSelection, Facet, combineConfig, CharCategory, RangeSetBuilder, Prec, EditorState, findClusterBreak } from '@codemirror/state';\nimport elt from 'crelt';\nconst basicNormalize = typeof String.prototype.normalize == \"function\" ? x => x.normalize(\"NFKD\") : x => x;\n/**\nA search cursor provides an iterator over text matches in a\ndocument.\n*/\nclass SearchCursor {\n /**\n Create a text cursor. The query is the search string, `from` to\n `to` provides the region to search.\n \n When `normalize` is given, it will be called, on both the query\n string and the content it is matched against, before comparing.\n You can, for example, create a case-insensitive search by\n passing `s => s.toLowerCase()`.\n \n Text is always normalized with\n [`.normalize(\"NFKD\")`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/normalize)\n (when supported).\n */\n constructor(text, query, from = 0, to = text.length, normalize, test) {\n this.test = test;\n /**\n The current match (only holds a meaningful value after\n [`next`](https://codemirror.net/6/docs/ref/#search.SearchCursor.next) has been called and when\n `done` is false).\n */\n this.value = {\n from: 0,\n to: 0\n };\n /**\n Whether the end of the iterated region has been reached.\n */\n this.done = false;\n this.matches = [];\n this.buffer = \"\";\n this.bufferPos = 0;\n this.iter = text.iterRange(from, to);\n this.bufferStart = from;\n this.normalize = normalize ? x => normalize(basicNormalize(x)) : basicNormalize;\n this.query = this.normalize(query);\n }\n peek() {\n if (this.bufferPos == this.buffer.length) {\n this.bufferStart += this.buffer.length;\n this.iter.next();\n if (this.iter.done) return -1;\n this.bufferPos = 0;\n this.buffer = this.iter.value;\n }\n return codePointAt(this.buffer, this.bufferPos);\n }\n /**\n Look for the next match. Updates the iterator's\n [`value`](https://codemirror.net/6/docs/ref/#search.SearchCursor.value) and\n [`done`](https://codemirror.net/6/docs/ref/#search.SearchCursor.done) properties. Should be called\n at least once before using the cursor.\n */\n next() {\n while (this.matches.length) this.matches.pop();\n return this.nextOverlapping();\n }\n /**\n The `next` method will ignore matches that partially overlap a\n previous match. This method behaves like `next`, but includes\n such matches.\n */\n nextOverlapping() {\n for (;;) {\n let next = this.peek();\n if (next < 0) {\n this.done = true;\n return this;\n }\n let str = fromCodePoint(next),\n start = this.bufferStart + this.bufferPos;\n this.bufferPos += codePointSize(next);\n let norm = this.normalize(str);\n for (let i = 0, pos = start;; i++) {\n let code = norm.charCodeAt(i);\n let match = this.match(code, pos, this.bufferPos + this.bufferStart);\n if (i == norm.length - 1) {\n if (match) {\n this.value = match;\n return this;\n }\n break;\n }\n if (pos == start && i < str.length && str.charCodeAt(i) == code) pos++;\n }\n }\n }\n match(code, pos, end) {\n let match = null;\n for (let i = 0; i < this.matches.length; i += 2) {\n let index = this.matches[i],\n keep = false;\n if (this.query.charCodeAt(index) == code) {\n if (index == this.query.length - 1) {\n match = {\n from: this.matches[i + 1],\n to: end\n };\n } else {\n this.matches[i]++;\n keep = true;\n }\n }\n if (!keep) {\n this.matches.splice(i, 2);\n i -= 2;\n }\n }\n if (this.query.charCodeAt(0) == code) {\n if (this.query.length == 1) match = {\n from: pos,\n to: end\n };else this.matches.push(1, pos);\n }\n if (match && this.test && !this.test(match.from, match.to, this.buffer, this.bufferStart)) match = null;\n return match;\n }\n}\nif (typeof Symbol != \"undefined\") SearchCursor.prototype[Symbol.iterator] = function () {\n return this;\n};\nconst empty = {\n from: -1,\n to: -1,\n match: /*@__PURE__*//.*/.exec(\"\")\n};\nconst baseFlags = \"gm\" + (/x/.unicode == null ? \"\" : \"u\");\n/**\nThis class is similar to [`SearchCursor`](https://codemirror.net/6/docs/ref/#search.SearchCursor)\nbut searches for a regular expression pattern instead of a plain\nstring.\n*/\nclass RegExpCursor {\n /**\n Create a cursor that will search the given range in the given\n document. `query` should be the raw pattern (as you'd pass it to\n `new RegExp`).\n */\n constructor(text, query, options, from = 0, to = text.length) {\n this.text = text;\n this.to = to;\n this.curLine = \"\";\n /**\n Set to `true` when the cursor has reached the end of the search\n range.\n */\n this.done = false;\n /**\n Will contain an object with the extent of the match and the\n match object when [`next`](https://codemirror.net/6/docs/ref/#search.RegExpCursor.next)\n sucessfully finds a match.\n */\n this.value = empty;\n if (/\\\\[sWDnr]|\\n|\\r|\\[\\^/.test(query)) return new MultilineRegExpCursor(text, query, options, from, to);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.iter = text.iter();\n let startLine = text.lineAt(from);\n this.curLineStart = startLine.from;\n this.matchPos = toCharEnd(text, from);\n this.getLine(this.curLineStart);\n }\n getLine(skip) {\n this.iter.next(skip);\n if (this.iter.lineBreak) {\n this.curLine = \"\";\n } else {\n this.curLine = this.iter.value;\n if (this.curLineStart + this.curLine.length > this.to) this.curLine = this.curLine.slice(0, this.to - this.curLineStart);\n this.iter.next();\n }\n }\n nextLine() {\n this.curLineStart = this.curLineStart + this.curLine.length + 1;\n if (this.curLineStart > this.to) this.curLine = \"\";else this.getLine(0);\n }\n /**\n Move to the next match, if there is one.\n */\n next() {\n for (let off = this.matchPos - this.curLineStart;;) {\n this.re.lastIndex = off;\n let match = this.matchPos <= this.to && this.re.exec(this.curLine);\n if (match) {\n let from = this.curLineStart + match.index,\n to = from + match[0].length;\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n if (from == this.curLineStart + this.curLine.length) this.nextLine();\n if ((from < to || from > this.value.to) && (!this.test || this.test(from, to, match))) {\n this.value = {\n from,\n to,\n match\n };\n return this;\n }\n off = this.matchPos - this.curLineStart;\n } else if (this.curLineStart + this.curLine.length < this.to) {\n this.nextLine();\n off = 0;\n } else {\n this.done = true;\n return this;\n }\n }\n }\n}\nconst flattened = /*@__PURE__*/new WeakMap();\n// Reusable (partially) flattened document strings\nclass FlattenedDoc {\n constructor(from, text) {\n this.from = from;\n this.text = text;\n }\n get to() {\n return this.from + this.text.length;\n }\n static get(doc, from, to) {\n let cached = flattened.get(doc);\n if (!cached || cached.from >= to || cached.to <= from) {\n let flat = new FlattenedDoc(from, doc.sliceString(from, to));\n flattened.set(doc, flat);\n return flat;\n }\n if (cached.from == from && cached.to == to) return cached;\n let {\n text,\n from: cachedFrom\n } = cached;\n if (cachedFrom > from) {\n text = doc.sliceString(from, cachedFrom) + text;\n cachedFrom = from;\n }\n if (cached.to < to) text += doc.sliceString(cached.to, to);\n flattened.set(doc, new FlattenedDoc(cachedFrom, text));\n return new FlattenedDoc(from, text.slice(from - cachedFrom, to - cachedFrom));\n }\n}\nclass MultilineRegExpCursor {\n constructor(text, query, options, from, to) {\n this.text = text;\n this.to = to;\n this.done = false;\n this.value = empty;\n this.matchPos = toCharEnd(text, from);\n this.re = new RegExp(query, baseFlags + ((options === null || options === void 0 ? void 0 : options.ignoreCase) ? \"i\" : \"\"));\n this.test = options === null || options === void 0 ? void 0 : options.test;\n this.flat = FlattenedDoc.get(text, from, this.chunkEnd(from + 5000 /* Chunk.Base */));\n }\n chunkEnd(pos) {\n return pos >= this.to ? this.to : this.text.lineAt(pos).to;\n }\n next() {\n for (;;) {\n let off = this.re.lastIndex = this.matchPos - this.flat.from;\n let match = this.re.exec(this.flat.text);\n // Skip empty matches directly after the last match\n if (match && !match[0] && match.index == off) {\n this.re.lastIndex = off + 1;\n match = this.re.exec(this.flat.text);\n }\n if (match) {\n let from = this.flat.from + match.index,\n to = from + match[0].length;\n // If a match goes almost to the end of a noncomplete chunk, try\n // again, since it'll likely be able to match more\n if ((this.flat.to >= this.to || match.index + match[0].length <= this.flat.text.length - 10) && (!this.test || this.test(from, to, match))) {\n this.value = {\n from,\n to,\n match\n };\n this.matchPos = toCharEnd(this.text, to + (from == to ? 1 : 0));\n return this;\n }\n }\n if (this.flat.to == this.to) {\n this.done = true;\n return this;\n }\n // Grow the flattened doc\n this.flat = FlattenedDoc.get(this.text, this.flat.from, this.chunkEnd(this.flat.from + this.flat.text.length * 2));\n }\n }\n}\nif (typeof Symbol != \"undefined\") {\n RegExpCursor.prototype[Symbol.iterator] = MultilineRegExpCursor.prototype[Symbol.iterator] = function () {\n return this;\n };\n}\nfunction validRegExp(source) {\n try {\n new RegExp(source, baseFlags);\n return true;\n } catch (_a) {\n return false;\n }\n}\nfunction toCharEnd(text, pos) {\n if (pos >= text.length) return pos;\n let line = text.lineAt(pos),\n next;\n while (pos < line.to && (next = line.text.charCodeAt(pos - line.from)) >= 0xDC00 && next < 0xE000) pos++;\n return pos;\n}\nfunction createLineDialog(view) {\n let line = String(view.state.doc.lineAt(view.state.selection.main.head).number);\n let input = elt(\"input\", {\n class: \"cm-textfield\",\n name: \"line\",\n value: line\n });\n let dom = elt(\"form\", {\n class: \"cm-gotoLine\",\n onkeydown: event => {\n if (event.keyCode == 27) {\n // Escape\n event.preventDefault();\n view.dispatch({\n effects: dialogEffect.of(false)\n });\n view.focus();\n } else if (event.keyCode == 13) {\n // Enter\n event.preventDefault();\n go();\n }\n },\n onsubmit: event => {\n event.preventDefault();\n go();\n }\n }, elt(\"label\", view.state.phrase(\"Go to line\"), \": \", input), \" \", elt(\"button\", {\n class: \"cm-button\",\n type: \"submit\"\n }, view.state.phrase(\"go\")));\n function go() {\n let match = /^([+-])?(\\d+)?(:\\d+)?(%)?$/.exec(input.value);\n if (!match) return;\n let {\n state\n } = view,\n startLine = state.doc.lineAt(state.selection.main.head);\n let [, sign, ln, cl, percent] = match;\n let col = cl ? +cl.slice(1) : 0;\n let line = ln ? +ln : startLine.number;\n if (ln && percent) {\n let pc = line / 100;\n if (sign) pc = pc * (sign == \"-\" ? -1 : 1) + startLine.number / state.doc.lines;\n line = Math.round(state.doc.lines * pc);\n } else if (ln && sign) {\n line = line * (sign == \"-\" ? -1 : 1) + startLine.number;\n }\n let docLine = state.doc.line(Math.max(1, Math.min(state.doc.lines, line)));\n let selection = EditorSelection.cursor(docLine.from + Math.max(0, Math.min(col, docLine.length)));\n view.dispatch({\n effects: [dialogEffect.of(false), EditorView.scrollIntoView(selection.from, {\n y: 'center'\n })],\n selection\n });\n view.focus();\n }\n return {\n dom\n };\n}\nconst dialogEffect = /*@__PURE__*/StateEffect.define();\nconst dialogField = /*@__PURE__*/StateField.define({\n create() {\n return true;\n },\n update(value, tr) {\n for (let e of tr.effects) if (e.is(dialogEffect)) value = e.value;\n return value;\n },\n provide: f => showPanel.from(f, val => val ? createLineDialog : null)\n});\n/**\nCommand that shows a dialog asking the user for a line number, and\nwhen a valid position is provided, moves the cursor to that line.\n\nSupports line numbers, relative line offsets prefixed with `+` or\n`-`, document percentages suffixed with `%`, and an optional\ncolumn position by adding `:` and a second number after the line\nnumber.\n*/\nconst gotoLine = view => {\n let panel = getPanel(view, createLineDialog);\n if (!panel) {\n let effects = [dialogEffect.of(true)];\n if (view.state.field(dialogField, false) == null) effects.push(StateEffect.appendConfig.of([dialogField, baseTheme$1]));\n view.dispatch({\n effects\n });\n panel = getPanel(view, createLineDialog);\n }\n if (panel) panel.dom.querySelector(\"input\").select();\n return true;\n};\nconst baseTheme$1 = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-gotoLine\": {\n padding: \"2px 6px 4px\",\n \"& label\": {\n fontSize: \"80%\"\n }\n }\n});\nconst defaultHighlightOptions = {\n highlightWordAroundCursor: false,\n minSelectionLength: 1,\n maxMatches: 100,\n wholeWords: false\n};\nconst highlightConfig = /*@__PURE__*/Facet.define({\n combine(options) {\n return combineConfig(options, defaultHighlightOptions, {\n highlightWordAroundCursor: (a, b) => a || b,\n minSelectionLength: Math.min,\n maxMatches: Math.min\n });\n }\n});\n/**\nThis extension highlights text that matches the selection. It uses\nthe `\"cm-selectionMatch\"` class for the highlighting. When\n`highlightWordAroundCursor` is enabled, the word at the cursor\nitself will be highlighted with `\"cm-selectionMatch-main\"`.\n*/\nfunction highlightSelectionMatches(options) {\n let ext = [defaultTheme, matchHighlighter];\n if (options) ext.push(highlightConfig.of(options));\n return ext;\n}\nconst matchDeco = /*@__PURE__*/Decoration.mark({\n class: \"cm-selectionMatch\"\n});\nconst mainMatchDeco = /*@__PURE__*/Decoration.mark({\n class: \"cm-selectionMatch cm-selectionMatch-main\"\n});\n// Whether the characters directly outside the given positions are non-word characters\nfunction insideWordBoundaries(check, state, from, to) {\n return (from == 0 || check(state.sliceDoc(from - 1, from)) != CharCategory.Word) && (to == state.doc.length || check(state.sliceDoc(to, to + 1)) != CharCategory.Word);\n}\n// Whether the characters directly at the given positions are word characters\nfunction insideWord(check, state, from, to) {\n return check(state.sliceDoc(from, from + 1)) == CharCategory.Word && check(state.sliceDoc(to - 1, to)) == CharCategory.Word;\n}\nconst matchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.decorations = this.getDeco(view);\n }\n update(update) {\n if (update.selectionSet || update.docChanged || update.viewportChanged) this.decorations = this.getDeco(update.view);\n }\n getDeco(view) {\n let conf = view.state.facet(highlightConfig);\n let {\n state\n } = view,\n sel = state.selection;\n if (sel.ranges.length > 1) return Decoration.none;\n let range = sel.main,\n query,\n check = null;\n if (range.empty) {\n if (!conf.highlightWordAroundCursor) return Decoration.none;\n let word = state.wordAt(range.head);\n if (!word) return Decoration.none;\n check = state.charCategorizer(range.head);\n query = state.sliceDoc(word.from, word.to);\n } else {\n let len = range.to - range.from;\n if (len < conf.minSelectionLength || len > 200) return Decoration.none;\n if (conf.wholeWords) {\n query = state.sliceDoc(range.from, range.to); // TODO: allow and include leading/trailing space?\n check = state.charCategorizer(range.head);\n if (!(insideWordBoundaries(check, state, range.from, range.to) && insideWord(check, state, range.from, range.to))) return Decoration.none;\n } else {\n query = state.sliceDoc(range.from, range.to);\n if (!query) return Decoration.none;\n }\n }\n let deco = [];\n for (let part of view.visibleRanges) {\n let cursor = new SearchCursor(state.doc, query, part.from, part.to);\n while (!cursor.next().done) {\n let {\n from,\n to\n } = cursor.value;\n if (!check || insideWordBoundaries(check, state, from, to)) {\n if (range.empty && from <= range.from && to >= range.to) deco.push(mainMatchDeco.range(from, to));else if (from >= range.to || to <= range.from) deco.push(matchDeco.range(from, to));\n if (deco.length > conf.maxMatches) return Decoration.none;\n }\n }\n }\n return Decoration.set(deco);\n }\n}, {\n decorations: v => v.decorations\n});\nconst defaultTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-selectionMatch\": {\n backgroundColor: \"#99ff7780\"\n },\n \".cm-searchMatch .cm-selectionMatch\": {\n backgroundColor: \"transparent\"\n }\n});\n// Select the words around the cursors.\nconst selectWord = ({\n state,\n dispatch\n}) => {\n let {\n selection\n } = state;\n let newSel = EditorSelection.create(selection.ranges.map(range => state.wordAt(range.head) || EditorSelection.cursor(range.head)), selection.mainIndex);\n if (newSel.eq(selection)) return false;\n dispatch(state.update({\n selection: newSel\n }));\n return true;\n};\n// Find next occurrence of query relative to last cursor. Wrap around\n// the document if there are no more matches.\nfunction findNextOccurrence(state, query) {\n let {\n main,\n ranges\n } = state.selection;\n let word = state.wordAt(main.head),\n fullWord = word && word.from == main.from && word.to == main.to;\n for (let cycled = false, cursor = new SearchCursor(state.doc, query, ranges[ranges.length - 1].to);;) {\n cursor.next();\n if (cursor.done) {\n if (cycled) return null;\n cursor = new SearchCursor(state.doc, query, 0, Math.max(0, ranges[ranges.length - 1].from - 1));\n cycled = true;\n } else {\n if (cycled && ranges.some(r => r.from == cursor.value.from)) continue;\n if (fullWord) {\n let word = state.wordAt(cursor.value.from);\n if (!word || word.from != cursor.value.from || word.to != cursor.value.to) continue;\n }\n return cursor.value;\n }\n }\n}\n/**\nSelect next occurrence of the current selection. Expand selection\nto the surrounding word when the selection is empty.\n*/\nconst selectNextOccurrence = ({\n state,\n dispatch\n}) => {\n let {\n ranges\n } = state.selection;\n if (ranges.some(sel => sel.from === sel.to)) return selectWord({\n state,\n dispatch\n });\n let searchedText = state.sliceDoc(ranges[0].from, ranges[0].to);\n if (state.selection.ranges.some(r => state.sliceDoc(r.from, r.to) != searchedText)) return false;\n let range = findNextOccurrence(state, searchedText);\n if (!range) return false;\n dispatch(state.update({\n selection: state.selection.addRange(EditorSelection.range(range.from, range.to), false),\n effects: EditorView.scrollIntoView(range.to)\n }));\n return true;\n};\nconst searchConfigFacet = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n top: false,\n caseSensitive: false,\n literal: false,\n regexp: false,\n wholeWord: false,\n createPanel: view => new SearchPanel(view),\n scrollToMatch: range => EditorView.scrollIntoView(range)\n });\n }\n});\n/**\nAdd search state to the editor configuration, and optionally\nconfigure the search extension.\n([`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) will automatically\nenable this if it isn't already on).\n*/\nfunction search(config) {\n return config ? [searchConfigFacet.of(config), searchExtensions] : searchExtensions;\n}\n/**\nA search query. Part of the editor's search state.\n*/\nclass SearchQuery {\n /**\n Create a query object.\n */\n constructor(config) {\n this.search = config.search;\n this.caseSensitive = !!config.caseSensitive;\n this.literal = !!config.literal;\n this.regexp = !!config.regexp;\n this.replace = config.replace || \"\";\n this.valid = !!this.search && (!this.regexp || validRegExp(this.search));\n this.unquoted = this.unquote(this.search);\n this.wholeWord = !!config.wholeWord;\n }\n /**\n @internal\n */\n unquote(text) {\n return this.literal ? text : text.replace(/\\\\([nrt\\\\])/g, (_, ch) => ch == \"n\" ? \"\\n\" : ch == \"r\" ? \"\\r\" : ch == \"t\" ? \"\\t\" : \"\\\\\");\n }\n /**\n Compare this query to another query.\n */\n eq(other) {\n return this.search == other.search && this.replace == other.replace && this.caseSensitive == other.caseSensitive && this.regexp == other.regexp && this.wholeWord == other.wholeWord;\n }\n /**\n @internal\n */\n create() {\n return this.regexp ? new RegExpQuery(this) : new StringQuery(this);\n }\n /**\n Get a search cursor for this query, searching through the given\n range in the given state.\n */\n getCursor(state, from = 0, to) {\n let st = state.doc ? state : EditorState.create({\n doc: state\n });\n if (to == null) to = st.doc.length;\n return this.regexp ? regexpCursor(this, st, from, to) : stringCursor(this, st, from, to);\n }\n}\nclass QueryType {\n constructor(spec) {\n this.spec = spec;\n }\n}\nfunction stringCursor(spec, state, from, to) {\n return new SearchCursor(state.doc, spec.unquoted, from, to, spec.caseSensitive ? undefined : x => x.toLowerCase(), spec.wholeWord ? stringWordTest(state.doc, state.charCategorizer(state.selection.main.head)) : undefined);\n}\nfunction stringWordTest(doc, categorizer) {\n return (from, to, buf, bufPos) => {\n if (bufPos > from || bufPos + buf.length < to) {\n bufPos = Math.max(0, from - 2);\n buf = doc.sliceString(bufPos, Math.min(doc.length, to + 2));\n }\n return (categorizer(charBefore(buf, from - bufPos)) != CharCategory.Word || categorizer(charAfter(buf, from - bufPos)) != CharCategory.Word) && (categorizer(charAfter(buf, to - bufPos)) != CharCategory.Word || categorizer(charBefore(buf, to - bufPos)) != CharCategory.Word);\n };\n}\nclass StringQuery extends QueryType {\n constructor(spec) {\n super(spec);\n }\n nextMatch(state, curFrom, curTo) {\n let cursor = stringCursor(this.spec, state, curTo, state.doc.length).nextOverlapping();\n if (cursor.done) cursor = stringCursor(this.spec, state, 0, curFrom).nextOverlapping();\n return cursor.done ? null : cursor.value;\n }\n // Searching in reverse is, rather than implementing an inverted search\n // cursor, done by scanning chunk after chunk forward.\n prevMatchInRange(state, from, to) {\n for (let pos = to;;) {\n let start = Math.max(from, pos - 10000 /* FindPrev.ChunkSize */ - this.spec.unquoted.length);\n let cursor = stringCursor(this.spec, state, start, pos),\n range = null;\n while (!cursor.nextOverlapping().done) range = cursor.value;\n if (range) return range;\n if (start == from) return null;\n pos -= 10000 /* FindPrev.ChunkSize */;\n }\n }\n prevMatch(state, curFrom, curTo) {\n return this.prevMatchInRange(state, 0, curFrom) || this.prevMatchInRange(state, curTo, state.doc.length);\n }\n getReplacement(_result) {\n return this.spec.unquote(this.spec.replace);\n }\n matchAll(state, limit) {\n let cursor = stringCursor(this.spec, state, 0, state.doc.length),\n ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit) return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = stringCursor(this.spec, state, Math.max(0, from - this.spec.unquoted.length), Math.min(to + this.spec.unquoted.length, state.doc.length));\n while (!cursor.next().done) add(cursor.value.from, cursor.value.to);\n }\n}\nfunction regexpCursor(spec, state, from, to) {\n return new RegExpCursor(state.doc, spec.search, {\n ignoreCase: !spec.caseSensitive,\n test: spec.wholeWord ? regexpWordTest(state.charCategorizer(state.selection.main.head)) : undefined\n }, from, to);\n}\nfunction charBefore(str, index) {\n return str.slice(findClusterBreak(str, index, false), index);\n}\nfunction charAfter(str, index) {\n return str.slice(index, findClusterBreak(str, index));\n}\nfunction regexpWordTest(categorizer) {\n return (_from, _to, match) => !match[0].length || (categorizer(charBefore(match.input, match.index)) != CharCategory.Word || categorizer(charAfter(match.input, match.index)) != CharCategory.Word) && (categorizer(charAfter(match.input, match.index + match[0].length)) != CharCategory.Word || categorizer(charBefore(match.input, match.index + match[0].length)) != CharCategory.Word);\n}\nclass RegExpQuery extends QueryType {\n nextMatch(state, curFrom, curTo) {\n let cursor = regexpCursor(this.spec, state, curTo, state.doc.length).next();\n if (cursor.done) cursor = regexpCursor(this.spec, state, 0, curFrom).next();\n return cursor.done ? null : cursor.value;\n }\n prevMatchInRange(state, from, to) {\n for (let size = 1;; size++) {\n let start = Math.max(from, to - size * 10000 /* FindPrev.ChunkSize */);\n let cursor = regexpCursor(this.spec, state, start, to),\n range = null;\n while (!cursor.next().done) range = cursor.value;\n if (range && (start == from || range.from > start + 10)) return range;\n if (start == from) return null;\n }\n }\n prevMatch(state, curFrom, curTo) {\n return this.prevMatchInRange(state, 0, curFrom) || this.prevMatchInRange(state, curTo, state.doc.length);\n }\n getReplacement(result) {\n return this.spec.unquote(this.spec.replace).replace(/\\$([$&\\d+])/g, (m, i) => i == \"$\" ? \"$\" : i == \"&\" ? result.match[0] : i != \"0\" && +i < result.match.length ? result.match[i] : m);\n }\n matchAll(state, limit) {\n let cursor = regexpCursor(this.spec, state, 0, state.doc.length),\n ranges = [];\n while (!cursor.next().done) {\n if (ranges.length >= limit) return null;\n ranges.push(cursor.value);\n }\n return ranges;\n }\n highlight(state, from, to, add) {\n let cursor = regexpCursor(this.spec, state, Math.max(0, from - 250 /* RegExp.HighlightMargin */), Math.min(to + 250 /* RegExp.HighlightMargin */, state.doc.length));\n while (!cursor.next().done) add(cursor.value.from, cursor.value.to);\n }\n}\n/**\nA state effect that updates the current search query. Note that\nthis only has an effect if the search state has been initialized\n(by including [`search`](https://codemirror.net/6/docs/ref/#search.search) in your configuration or\nby running [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel) at least\nonce).\n*/\nconst setSearchQuery = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst searchState = /*@__PURE__*/StateField.define({\n create(state) {\n return new SearchState(defaultQuery(state).create(), null);\n },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setSearchQuery)) value = new SearchState(effect.value.create(), value.panel);else if (effect.is(togglePanel)) value = new SearchState(value.query, effect.value ? createSearchPanel : null);\n }\n return value;\n },\n provide: f => showPanel.from(f, val => val.panel)\n});\n/**\nGet the current search query from an editor state.\n*/\nfunction getSearchQuery(state) {\n let curState = state.field(searchState, false);\n return curState ? curState.query.spec : defaultQuery(state);\n}\n/**\nQuery whether the search panel is open in the given editor state.\n*/\nfunction searchPanelOpen(state) {\n var _a;\n return ((_a = state.field(searchState, false)) === null || _a === void 0 ? void 0 : _a.panel) != null;\n}\nclass SearchState {\n constructor(query, panel) {\n this.query = query;\n this.panel = panel;\n }\n}\nconst matchMark = /*@__PURE__*/Decoration.mark({\n class: \"cm-searchMatch\"\n }),\n selectedMatchMark = /*@__PURE__*/Decoration.mark({\n class: \"cm-searchMatch cm-searchMatch-selected\"\n });\nconst searchHighlighter = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.decorations = this.highlight(view.state.field(searchState));\n }\n update(update) {\n let state = update.state.field(searchState);\n if (state != update.startState.field(searchState) || update.docChanged || update.selectionSet || update.viewportChanged) this.decorations = this.highlight(state);\n }\n highlight({\n query,\n panel\n }) {\n if (!panel || !query.spec.valid) return Decoration.none;\n let {\n view\n } = this;\n let builder = new RangeSetBuilder();\n for (let i = 0, ranges = view.visibleRanges, l = ranges.length; i < l; i++) {\n let {\n from,\n to\n } = ranges[i];\n while (i < l - 1 && to > ranges[i + 1].from - 2 * 250 /* RegExp.HighlightMargin */) to = ranges[++i].to;\n query.highlight(view.state, from, to, (from, to) => {\n let selected = view.state.selection.ranges.some(r => r.from == from && r.to == to);\n builder.add(from, to, selected ? selectedMatchMark : matchMark);\n });\n }\n return builder.finish();\n }\n}, {\n decorations: v => v.decorations\n});\nfunction searchCommand(f) {\n return view => {\n let state = view.state.field(searchState, false);\n return state && state.query.spec.valid ? f(view, state) : openSearchPanel(view);\n };\n}\n/**\nOpen the search panel if it isn't already open, and move the\nselection to the first match after the current main selection.\nWill wrap around to the start of the document when it reaches the\nend.\n*/\nconst findNext = /*@__PURE__*/searchCommand((view, {\n query\n}) => {\n let {\n to\n } = view.state.selection.main;\n let next = query.nextMatch(view.state, to, to);\n if (!next) return false;\n let selection = EditorSelection.single(next.from, next.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, next), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nMove the selection to the previous instance of the search query,\nbefore the current main selection. Will wrap past the start\nof the document to start searching at the end again.\n*/\nconst findPrevious = /*@__PURE__*/searchCommand((view, {\n query\n}) => {\n let {\n state\n } = view,\n {\n from\n } = state.selection.main;\n let prev = query.prevMatch(state, from, from);\n if (!prev) return false;\n let selection = EditorSelection.single(prev.from, prev.to);\n let config = view.state.facet(searchConfigFacet);\n view.dispatch({\n selection,\n effects: [announceMatch(view, prev), config.scrollToMatch(selection.main, view)],\n userEvent: \"select.search\"\n });\n selectSearchInput(view);\n return true;\n});\n/**\nSelect all instances of the search query.\n*/\nconst selectMatches = /*@__PURE__*/searchCommand((view, {\n query\n}) => {\n let ranges = query.matchAll(view.state, 1000);\n if (!ranges || !ranges.length) return false;\n view.dispatch({\n selection: EditorSelection.create(ranges.map(r => EditorSelection.range(r.from, r.to))),\n userEvent: \"select.search.matches\"\n });\n return true;\n});\n/**\nSelect all instances of the currently selected text.\n*/\nconst selectSelectionMatches = ({\n state,\n dispatch\n}) => {\n let sel = state.selection;\n if (sel.ranges.length > 1 || sel.main.empty) return false;\n let {\n from,\n to\n } = sel.main;\n let ranges = [],\n main = 0;\n for (let cur = new SearchCursor(state.doc, state.sliceDoc(from, to)); !cur.next().done;) {\n if (ranges.length > 1000) return false;\n if (cur.value.from == from) main = ranges.length;\n ranges.push(EditorSelection.range(cur.value.from, cur.value.to));\n }\n dispatch(state.update({\n selection: EditorSelection.create(ranges, main),\n userEvent: \"select.search.matches\"\n }));\n return true;\n};\n/**\nReplace the current match of the search query.\n*/\nconst replaceNext = /*@__PURE__*/searchCommand((view, {\n query\n}) => {\n let {\n state\n } = view,\n {\n from,\n to\n } = state.selection.main;\n if (state.readOnly) return false;\n let next = query.nextMatch(state, from, from);\n if (!next) return false;\n let changes = [],\n selection,\n replacement;\n let effects = [];\n if (next.from == from && next.to == to) {\n replacement = state.toText(query.getReplacement(next));\n changes.push({\n from: next.from,\n to: next.to,\n insert: replacement\n });\n next = query.nextMatch(state, next.from, next.to);\n effects.push(EditorView.announce.of(state.phrase(\"replaced match on line $\", state.doc.lineAt(from).number) + \".\"));\n }\n if (next) {\n let off = changes.length == 0 || changes[0].from >= next.to ? 0 : next.to - next.from - replacement.length;\n selection = EditorSelection.single(next.from - off, next.to - off);\n effects.push(announceMatch(view, next));\n effects.push(state.facet(searchConfigFacet).scrollToMatch(selection.main, view));\n }\n view.dispatch({\n changes,\n selection,\n effects,\n userEvent: \"input.replace\"\n });\n return true;\n});\n/**\nReplace all instances of the search query with the given\nreplacement.\n*/\nconst replaceAll = /*@__PURE__*/searchCommand((view, {\n query\n}) => {\n if (view.state.readOnly) return false;\n let changes = query.matchAll(view.state, 1e9).map(match => {\n let {\n from,\n to\n } = match;\n return {\n from,\n to,\n insert: query.getReplacement(match)\n };\n });\n if (!changes.length) return false;\n let announceText = view.state.phrase(\"replaced $ matches\", changes.length) + \".\";\n view.dispatch({\n changes,\n effects: EditorView.announce.of(announceText),\n userEvent: \"input.replace.all\"\n });\n return true;\n});\nfunction createSearchPanel(view) {\n return view.state.facet(searchConfigFacet).createPanel(view);\n}\nfunction defaultQuery(state, fallback) {\n var _a, _b, _c, _d, _e;\n let sel = state.selection.main;\n let selText = sel.empty || sel.to > sel.from + 100 ? \"\" : state.sliceDoc(sel.from, sel.to);\n if (fallback && !selText) return fallback;\n let config = state.facet(searchConfigFacet);\n return new SearchQuery({\n search: ((_a = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _a !== void 0 ? _a : config.literal) ? selText : selText.replace(/\\n/g, \"\\\\n\"),\n caseSensitive: (_b = fallback === null || fallback === void 0 ? void 0 : fallback.caseSensitive) !== null && _b !== void 0 ? _b : config.caseSensitive,\n literal: (_c = fallback === null || fallback === void 0 ? void 0 : fallback.literal) !== null && _c !== void 0 ? _c : config.literal,\n regexp: (_d = fallback === null || fallback === void 0 ? void 0 : fallback.regexp) !== null && _d !== void 0 ? _d : config.regexp,\n wholeWord: (_e = fallback === null || fallback === void 0 ? void 0 : fallback.wholeWord) !== null && _e !== void 0 ? _e : config.wholeWord\n });\n}\nfunction getSearchInput(view) {\n let panel = getPanel(view, createSearchPanel);\n return panel && panel.dom.querySelector(\"[main-field]\");\n}\nfunction selectSearchInput(view) {\n let input = getSearchInput(view);\n if (input && input == view.root.activeElement) input.select();\n}\n/**\nMake sure the search panel is open and focused.\n*/\nconst openSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (state && state.panel) {\n let searchInput = getSearchInput(view);\n if (searchInput && searchInput != view.root.activeElement) {\n let query = defaultQuery(view.state, state.query.spec);\n if (query.valid) view.dispatch({\n effects: setSearchQuery.of(query)\n });\n searchInput.focus();\n searchInput.select();\n }\n } else {\n view.dispatch({\n effects: [togglePanel.of(true), state ? setSearchQuery.of(defaultQuery(view.state, state.query.spec)) : StateEffect.appendConfig.of(searchExtensions)]\n });\n }\n return true;\n};\n/**\nClose the search panel.\n*/\nconst closeSearchPanel = view => {\n let state = view.state.field(searchState, false);\n if (!state || !state.panel) return false;\n let panel = getPanel(view, createSearchPanel);\n if (panel && panel.dom.contains(view.root.activeElement)) view.focus();\n view.dispatch({\n effects: togglePanel.of(false)\n });\n return true;\n};\n/**\nDefault search-related key bindings.\n\n - Mod-f: [`openSearchPanel`](https://codemirror.net/6/docs/ref/#search.openSearchPanel)\n - F3, Mod-g: [`findNext`](https://codemirror.net/6/docs/ref/#search.findNext)\n - Shift-F3, Shift-Mod-g: [`findPrevious`](https://codemirror.net/6/docs/ref/#search.findPrevious)\n - Mod-Alt-g: [`gotoLine`](https://codemirror.net/6/docs/ref/#search.gotoLine)\n - Mod-d: [`selectNextOccurrence`](https://codemirror.net/6/docs/ref/#search.selectNextOccurrence)\n*/\nconst searchKeymap = [{\n key: \"Mod-f\",\n run: openSearchPanel,\n scope: \"editor search-panel\"\n}, {\n key: \"F3\",\n run: findNext,\n shift: findPrevious,\n scope: \"editor search-panel\",\n preventDefault: true\n}, {\n key: \"Mod-g\",\n run: findNext,\n shift: findPrevious,\n scope: \"editor search-panel\",\n preventDefault: true\n}, {\n key: \"Escape\",\n run: closeSearchPanel,\n scope: \"editor search-panel\"\n}, {\n key: \"Mod-Shift-l\",\n run: selectSelectionMatches\n}, {\n key: \"Mod-Alt-g\",\n run: gotoLine\n}, {\n key: \"Mod-d\",\n run: selectNextOccurrence,\n preventDefault: true\n}];\nclass SearchPanel {\n constructor(view) {\n this.view = view;\n let query = this.query = view.state.field(searchState).query.spec;\n this.commit = this.commit.bind(this);\n this.searchField = elt(\"input\", {\n value: query.search,\n placeholder: phrase(view, \"Find\"),\n \"aria-label\": phrase(view, \"Find\"),\n class: \"cm-textfield\",\n name: \"search\",\n form: \"\",\n \"main-field\": \"true\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.replaceField = elt(\"input\", {\n value: query.replace,\n placeholder: phrase(view, \"Replace\"),\n \"aria-label\": phrase(view, \"Replace\"),\n class: \"cm-textfield\",\n name: \"replace\",\n form: \"\",\n onchange: this.commit,\n onkeyup: this.commit\n });\n this.caseField = elt(\"input\", {\n type: \"checkbox\",\n name: \"case\",\n form: \"\",\n checked: query.caseSensitive,\n onchange: this.commit\n });\n this.reField = elt(\"input\", {\n type: \"checkbox\",\n name: \"re\",\n form: \"\",\n checked: query.regexp,\n onchange: this.commit\n });\n this.wordField = elt(\"input\", {\n type: \"checkbox\",\n name: \"word\",\n form: \"\",\n checked: query.wholeWord,\n onchange: this.commit\n });\n function button(name, onclick, content) {\n return elt(\"button\", {\n class: \"cm-button\",\n name,\n onclick,\n type: \"button\"\n }, content);\n }\n this.dom = elt(\"div\", {\n onkeydown: e => this.keydown(e),\n class: \"cm-search\"\n }, [this.searchField, button(\"next\", () => findNext(view), [phrase(view, \"next\")]), button(\"prev\", () => findPrevious(view), [phrase(view, \"previous\")]), button(\"select\", () => selectMatches(view), [phrase(view, \"all\")]), elt(\"label\", null, [this.caseField, phrase(view, \"match case\")]), elt(\"label\", null, [this.reField, phrase(view, \"regexp\")]), elt(\"label\", null, [this.wordField, phrase(view, \"by word\")]), ...(view.state.readOnly ? [] : [elt(\"br\"), this.replaceField, button(\"replace\", () => replaceNext(view), [phrase(view, \"replace\")]), button(\"replaceAll\", () => replaceAll(view), [phrase(view, \"replace all\")])]), elt(\"button\", {\n name: \"close\",\n onclick: () => closeSearchPanel(view),\n \"aria-label\": phrase(view, \"close\"),\n type: \"button\"\n }, [\"×\"])]);\n }\n commit() {\n let query = new SearchQuery({\n search: this.searchField.value,\n caseSensitive: this.caseField.checked,\n regexp: this.reField.checked,\n wholeWord: this.wordField.checked,\n replace: this.replaceField.value\n });\n if (!query.eq(this.query)) {\n this.query = query;\n this.view.dispatch({\n effects: setSearchQuery.of(query)\n });\n }\n }\n keydown(e) {\n if (runScopeHandlers(this.view, e, \"search-panel\")) {\n e.preventDefault();\n } else if (e.keyCode == 13 && e.target == this.searchField) {\n e.preventDefault();\n (e.shiftKey ? findPrevious : findNext)(this.view);\n } else if (e.keyCode == 13 && e.target == this.replaceField) {\n e.preventDefault();\n replaceNext(this.view);\n }\n }\n update(update) {\n for (let tr of update.transactions) for (let effect of tr.effects) {\n if (effect.is(setSearchQuery) && !effect.value.eq(this.query)) this.setQuery(effect.value);\n }\n }\n setQuery(query) {\n this.query = query;\n this.searchField.value = query.search;\n this.replaceField.value = query.replace;\n this.caseField.checked = query.caseSensitive;\n this.reField.checked = query.regexp;\n this.wordField.checked = query.wholeWord;\n }\n mount() {\n this.searchField.select();\n }\n get pos() {\n return 80;\n }\n get top() {\n return this.view.state.facet(searchConfigFacet).top;\n }\n}\nfunction phrase(view, phrase) {\n return view.state.phrase(phrase);\n}\nconst AnnounceMargin = 30;\nconst Break = /[\\s\\.,:;?!]/;\nfunction announceMatch(view, {\n from,\n to\n}) {\n let line = view.state.doc.lineAt(from),\n lineEnd = view.state.doc.lineAt(to).to;\n let start = Math.max(line.from, from - AnnounceMargin),\n end = Math.min(lineEnd, to + AnnounceMargin);\n let text = view.state.sliceDoc(start, end);\n if (start != line.from) {\n for (let i = 0; i < AnnounceMargin; i++) if (!Break.test(text[i + 1]) && Break.test(text[i])) {\n text = text.slice(i);\n break;\n }\n }\n if (end != lineEnd) {\n for (let i = text.length - 1; i > text.length - AnnounceMargin; i--) if (!Break.test(text[i - 1]) && Break.test(text[i])) {\n text = text.slice(0, i);\n break;\n }\n }\n return EditorView.announce.of(`${view.state.phrase(\"current match\")}. ${text} ${view.state.phrase(\"on line\")} ${line.number}.`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-panel.cm-search\": {\n padding: \"2px 6px 4px\",\n position: \"relative\",\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"4px\",\n backgroundColor: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n },\n \"& input, & button, & label\": {\n margin: \".2em .6em .2em 0\"\n },\n \"& input[type=checkbox]\": {\n marginRight: \".2em\"\n },\n \"& label\": {\n fontSize: \"80%\",\n whiteSpace: \"pre\"\n }\n },\n \"&light .cm-searchMatch\": {\n backgroundColor: \"#ffff0054\"\n },\n \"&dark .cm-searchMatch\": {\n backgroundColor: \"#00ffff8a\"\n },\n \"&light .cm-searchMatch-selected\": {\n backgroundColor: \"#ff6a0054\"\n },\n \"&dark .cm-searchMatch-selected\": {\n backgroundColor: \"#ff00ff8a\"\n }\n});\nconst searchExtensions = [searchState, /*@__PURE__*/Prec.low(searchHighlighter), baseTheme];\nexport { RegExpCursor, SearchCursor, SearchQuery, closeSearchPanel, findNext, findPrevious, getSearchQuery, gotoLine, highlightSelectionMatches, openSearchPanel, replaceAll, replaceNext, search, searchKeymap, searchPanelOpen, selectMatches, selectNextOccurrence, selectSelectionMatches, setSearchQuery };","import { Decoration, showPanel, EditorView, ViewPlugin, logException, gutter, showTooltip, hoverTooltip, getPanel, WidgetType, GutterMarker } from '@codemirror/view';\nimport { StateEffect, StateField, Facet, combineConfig, RangeSet } from '@codemirror/state';\nimport elt from 'crelt';\nclass SelectedDiagnostic {\n constructor(from, to, diagnostic) {\n this.from = from;\n this.to = to;\n this.diagnostic = diagnostic;\n }\n}\nclass LintState {\n constructor(diagnostics, panel, selected) {\n this.diagnostics = diagnostics;\n this.panel = panel;\n this.selected = selected;\n }\n static init(diagnostics, panel, state) {\n // Filter the list of diagnostics for which to create markers\n let markedDiagnostics = diagnostics;\n let diagnosticFilter = state.facet(lintConfig).markerFilter;\n if (diagnosticFilter) markedDiagnostics = diagnosticFilter(markedDiagnostics, state);\n let ranges = Decoration.set(markedDiagnostics.map(d => {\n // For zero-length ranges or ranges covering only a line break, create a widget\n return d.from == d.to || d.from == d.to - 1 && state.doc.lineAt(d.from).to == d.from ? Decoration.widget({\n widget: new DiagnosticWidget(d),\n diagnostic: d\n }).range(d.from) : Decoration.mark({\n attributes: {\n class: \"cm-lintRange cm-lintRange-\" + d.severity + (d.markClass ? \" \" + d.markClass : \"\")\n },\n diagnostic: d\n }).range(d.from, d.to);\n }), true);\n return new LintState(ranges, panel, findDiagnostic(ranges));\n }\n}\nfunction findDiagnostic(diagnostics, diagnostic = null, after = 0) {\n let found = null;\n diagnostics.between(after, 1e9, (from, to, {\n spec\n }) => {\n if (diagnostic && spec.diagnostic != diagnostic) return;\n found = new SelectedDiagnostic(from, to, spec.diagnostic);\n return false;\n });\n return found;\n}\nfunction hideTooltip(tr, tooltip) {\n let from = tooltip.pos,\n to = tooltip.end || from;\n let result = tr.state.facet(lintConfig).hideOn(tr, from, to);\n if (result != null) return result;\n let line = tr.startState.doc.lineAt(tooltip.pos);\n return !!(tr.effects.some(e => e.is(setDiagnosticsEffect)) || tr.changes.touchesRange(line.from, Math.max(line.to, to)));\n}\nfunction maybeEnableLint(state, effects) {\n return state.field(lintState, false) ? effects : effects.concat(StateEffect.appendConfig.of(lintExtensions));\n}\n/**\nReturns a transaction spec which updates the current set of\ndiagnostics, and enables the lint extension if if wasn't already\nactive.\n*/\nfunction setDiagnostics(state, diagnostics) {\n return {\n effects: maybeEnableLint(state, [setDiagnosticsEffect.of(diagnostics)])\n };\n}\n/**\nThe state effect that updates the set of active diagnostics. Can\nbe useful when writing an extension that needs to track these.\n*/\nconst setDiagnosticsEffect = /*@__PURE__*/StateEffect.define();\nconst togglePanel = /*@__PURE__*/StateEffect.define();\nconst movePanelSelection = /*@__PURE__*/StateEffect.define();\nconst lintState = /*@__PURE__*/StateField.define({\n create() {\n return new LintState(Decoration.none, null, null);\n },\n update(value, tr) {\n if (tr.docChanged && value.diagnostics.size) {\n let mapped = value.diagnostics.map(tr.changes),\n selected = null,\n panel = value.panel;\n if (value.selected) {\n let selPos = tr.changes.mapPos(value.selected.from, 1);\n selected = findDiagnostic(mapped, value.selected.diagnostic, selPos) || findDiagnostic(mapped, null, selPos);\n }\n if (!mapped.size && panel && tr.state.facet(lintConfig).autoPanel) panel = null;\n value = new LintState(mapped, panel, selected);\n }\n for (let effect of tr.effects) {\n if (effect.is(setDiagnosticsEffect)) {\n let panel = !tr.state.facet(lintConfig).autoPanel ? value.panel : effect.value.length ? LintPanel.open : null;\n value = LintState.init(effect.value, panel, tr.state);\n } else if (effect.is(togglePanel)) {\n value = new LintState(value.diagnostics, effect.value ? LintPanel.open : null, value.selected);\n } else if (effect.is(movePanelSelection)) {\n value = new LintState(value.diagnostics, value.panel, effect.value);\n }\n }\n return value;\n },\n provide: f => [showPanel.from(f, val => val.panel), EditorView.decorations.from(f, s => s.diagnostics)]\n});\n/**\nReturns the number of active lint diagnostics in the given state.\n*/\nfunction diagnosticCount(state) {\n let lint = state.field(lintState, false);\n return lint ? lint.diagnostics.size : 0;\n}\nconst activeMark = /*@__PURE__*/Decoration.mark({\n class: \"cm-lintRange cm-lintRange-active\"\n});\nfunction lintTooltip(view, pos, side) {\n let {\n diagnostics\n } = view.state.field(lintState);\n let found = [],\n stackStart = 2e8,\n stackEnd = 0;\n diagnostics.between(pos - (side < 0 ? 1 : 0), pos + (side > 0 ? 1 : 0), (from, to, {\n spec\n }) => {\n if (pos >= from && pos <= to && (from == to || (pos > from || side > 0) && (pos < to || side < 0))) {\n found.push(spec.diagnostic);\n stackStart = Math.min(from, stackStart);\n stackEnd = Math.max(to, stackEnd);\n }\n });\n let diagnosticFilter = view.state.facet(lintConfig).tooltipFilter;\n if (diagnosticFilter) found = diagnosticFilter(found, view.state);\n if (!found.length) return null;\n return {\n pos: stackStart,\n end: stackEnd,\n above: view.state.doc.lineAt(stackStart).to < stackEnd,\n create() {\n return {\n dom: diagnosticsTooltip(view, found)\n };\n }\n };\n}\nfunction diagnosticsTooltip(view, diagnostics) {\n return elt(\"ul\", {\n class: \"cm-tooltip-lint\"\n }, diagnostics.map(d => renderDiagnostic(view, d, false)));\n}\n/**\nCommand to open and focus the lint panel.\n*/\nconst openLintPanel = view => {\n let field = view.state.field(lintState, false);\n if (!field || !field.panel) view.dispatch({\n effects: maybeEnableLint(view.state, [togglePanel.of(true)])\n });\n let panel = getPanel(view, LintPanel.open);\n if (panel) panel.dom.querySelector(\".cm-panel-lint ul\").focus();\n return true;\n};\n/**\nCommand to close the lint panel, when open.\n*/\nconst closeLintPanel = view => {\n let field = view.state.field(lintState, false);\n if (!field || !field.panel) return false;\n view.dispatch({\n effects: togglePanel.of(false)\n });\n return true;\n};\n/**\nMove the selection to the next diagnostic.\n*/\nconst nextDiagnostic = view => {\n let field = view.state.field(lintState, false);\n if (!field) return false;\n let sel = view.state.selection.main,\n next = field.diagnostics.iter(sel.to + 1);\n if (!next.value) {\n next = field.diagnostics.iter(0);\n if (!next.value || next.from == sel.from && next.to == sel.to) return false;\n }\n view.dispatch({\n selection: {\n anchor: next.from,\n head: next.to\n },\n scrollIntoView: true\n });\n return true;\n};\n/**\nMove the selection to the previous diagnostic.\n*/\nconst previousDiagnostic = view => {\n let {\n state\n } = view,\n field = state.field(lintState, false);\n if (!field) return false;\n let sel = state.selection.main;\n let prevFrom, prevTo, lastFrom, lastTo;\n field.diagnostics.between(0, state.doc.length, (from, to) => {\n if (to < sel.to && (prevFrom == null || prevFrom < from)) {\n prevFrom = from;\n prevTo = to;\n }\n if (lastFrom == null || from > lastFrom) {\n lastFrom = from;\n lastTo = to;\n }\n });\n if (lastFrom == null || prevFrom == null && lastFrom == sel.from) return false;\n view.dispatch({\n selection: {\n anchor: prevFrom !== null && prevFrom !== void 0 ? prevFrom : lastFrom,\n head: prevTo !== null && prevTo !== void 0 ? prevTo : lastTo\n },\n scrollIntoView: true\n });\n return true;\n};\n/**\nA set of default key bindings for the lint functionality.\n\n- Ctrl-Shift-m (Cmd-Shift-m on macOS): [`openLintPanel`](https://codemirror.net/6/docs/ref/#lint.openLintPanel)\n- F8: [`nextDiagnostic`](https://codemirror.net/6/docs/ref/#lint.nextDiagnostic)\n*/\nconst lintKeymap = [{\n key: \"Mod-Shift-m\",\n run: openLintPanel,\n preventDefault: true\n}, {\n key: \"F8\",\n run: nextDiagnostic\n}];\nconst lintPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.timeout = -1;\n this.set = true;\n let {\n delay\n } = view.state.facet(lintConfig);\n this.lintTime = Date.now() + delay;\n this.run = this.run.bind(this);\n this.timeout = setTimeout(this.run, delay);\n }\n run() {\n clearTimeout(this.timeout);\n let now = Date.now();\n if (now < this.lintTime - 10) {\n this.timeout = setTimeout(this.run, this.lintTime - now);\n } else {\n this.set = false;\n let {\n state\n } = this.view,\n {\n sources\n } = state.facet(lintConfig);\n if (sources.length) Promise.all(sources.map(source => Promise.resolve(source(this.view)))).then(annotations => {\n let all = annotations.reduce((a, b) => a.concat(b));\n if (this.view.state.doc == state.doc) this.view.dispatch(setDiagnostics(this.view.state, all));\n }, error => {\n logException(this.view.state, error);\n });\n }\n }\n update(update) {\n let config = update.state.facet(lintConfig);\n if (update.docChanged || config != update.startState.facet(lintConfig) || config.needsRefresh && config.needsRefresh(update)) {\n this.lintTime = Date.now() + config.delay;\n if (!this.set) {\n this.set = true;\n this.timeout = setTimeout(this.run, config.delay);\n }\n }\n }\n force() {\n if (this.set) {\n this.lintTime = Date.now();\n this.run();\n }\n }\n destroy() {\n clearTimeout(this.timeout);\n }\n});\nconst lintConfig = /*@__PURE__*/Facet.define({\n combine(input) {\n return Object.assign({\n sources: input.map(i => i.source).filter(x => x != null)\n }, combineConfig(input.map(i => i.config), {\n delay: 750,\n markerFilter: null,\n tooltipFilter: null,\n needsRefresh: null,\n hideOn: () => null\n }, {\n needsRefresh: (a, b) => !a ? b : !b ? a : u => a(u) || b(u)\n }));\n }\n});\n/**\nGiven a diagnostic source, this function returns an extension that\nenables linting with that source. It will be called whenever the\neditor is idle (after its content changed). If `null` is given as\nsource, this only configures the lint extension.\n*/\nfunction linter(source, config = {}) {\n return [lintConfig.of({\n source,\n config\n }), lintPlugin, lintExtensions];\n}\n/**\nForces any linters [configured](https://codemirror.net/6/docs/ref/#lint.linter) to run when the\neditor is idle to run right away.\n*/\nfunction forceLinting(view) {\n let plugin = view.plugin(lintPlugin);\n if (plugin) plugin.force();\n}\nfunction assignKeys(actions) {\n let assigned = [];\n if (actions) actions: for (let {\n name\n } of actions) {\n for (let i = 0; i < name.length; i++) {\n let ch = name[i];\n if (/[a-zA-Z]/.test(ch) && !assigned.some(c => c.toLowerCase() == ch.toLowerCase())) {\n assigned.push(ch);\n continue actions;\n }\n }\n assigned.push(\"\");\n }\n return assigned;\n}\nfunction renderDiagnostic(view, diagnostic, inPanel) {\n var _a;\n let keys = inPanel ? assignKeys(diagnostic.actions) : [];\n return elt(\"li\", {\n class: \"cm-diagnostic cm-diagnostic-\" + diagnostic.severity\n }, elt(\"span\", {\n class: \"cm-diagnosticText\"\n }, diagnostic.renderMessage ? diagnostic.renderMessage(view) : diagnostic.message), (_a = diagnostic.actions) === null || _a === void 0 ? void 0 : _a.map((action, i) => {\n let fired = false,\n click = e => {\n e.preventDefault();\n if (fired) return;\n fired = true;\n let found = findDiagnostic(view.state.field(lintState).diagnostics, diagnostic);\n if (found) action.apply(view, found.from, found.to);\n };\n let {\n name\n } = action,\n keyIndex = keys[i] ? name.indexOf(keys[i]) : -1;\n let nameElt = keyIndex < 0 ? name : [name.slice(0, keyIndex), elt(\"u\", name.slice(keyIndex, keyIndex + 1)), name.slice(keyIndex + 1)];\n return elt(\"button\", {\n type: \"button\",\n class: \"cm-diagnosticAction\",\n onclick: click,\n onmousedown: click,\n \"aria-label\": ` Action: ${name}${keyIndex < 0 ? \"\" : ` (access key \"${keys[i]})\"`}.`\n }, nameElt);\n }), diagnostic.source && elt(\"div\", {\n class: \"cm-diagnosticSource\"\n }, diagnostic.source));\n}\nclass DiagnosticWidget extends WidgetType {\n constructor(diagnostic) {\n super();\n this.diagnostic = diagnostic;\n }\n eq(other) {\n return other.diagnostic == this.diagnostic;\n }\n toDOM() {\n return elt(\"span\", {\n class: \"cm-lintPoint cm-lintPoint-\" + this.diagnostic.severity\n });\n }\n}\nclass PanelItem {\n constructor(view, diagnostic) {\n this.diagnostic = diagnostic;\n this.id = \"item_\" + Math.floor(Math.random() * 0xffffffff).toString(16);\n this.dom = renderDiagnostic(view, diagnostic, true);\n this.dom.id = this.id;\n this.dom.setAttribute(\"role\", \"option\");\n }\n}\nclass LintPanel {\n constructor(view) {\n this.view = view;\n this.items = [];\n let onkeydown = event => {\n if (event.keyCode == 27) {\n // Escape\n closeLintPanel(this.view);\n this.view.focus();\n } else if (event.keyCode == 38 || event.keyCode == 33) {\n // ArrowUp, PageUp\n this.moveSelection((this.selectedIndex - 1 + this.items.length) % this.items.length);\n } else if (event.keyCode == 40 || event.keyCode == 34) {\n // ArrowDown, PageDown\n this.moveSelection((this.selectedIndex + 1) % this.items.length);\n } else if (event.keyCode == 36) {\n // Home\n this.moveSelection(0);\n } else if (event.keyCode == 35) {\n // End\n this.moveSelection(this.items.length - 1);\n } else if (event.keyCode == 13) {\n // Enter\n this.view.focus();\n } else if (event.keyCode >= 65 && event.keyCode <= 90 && this.selectedIndex >= 0) {\n // A-Z\n let {\n diagnostic\n } = this.items[this.selectedIndex],\n keys = assignKeys(diagnostic.actions);\n for (let i = 0; i < keys.length; i++) if (keys[i].toUpperCase().charCodeAt(0) == event.keyCode) {\n let found = findDiagnostic(this.view.state.field(lintState).diagnostics, diagnostic);\n if (found) diagnostic.actions[i].apply(view, found.from, found.to);\n }\n } else {\n return;\n }\n event.preventDefault();\n };\n let onclick = event => {\n for (let i = 0; i < this.items.length; i++) {\n if (this.items[i].dom.contains(event.target)) this.moveSelection(i);\n }\n };\n this.list = elt(\"ul\", {\n tabIndex: 0,\n role: \"listbox\",\n \"aria-label\": this.view.state.phrase(\"Diagnostics\"),\n onkeydown,\n onclick\n });\n this.dom = elt(\"div\", {\n class: \"cm-panel-lint\"\n }, this.list, elt(\"button\", {\n type: \"button\",\n name: \"close\",\n \"aria-label\": this.view.state.phrase(\"close\"),\n onclick: () => closeLintPanel(this.view)\n }, \"×\"));\n this.update();\n }\n get selectedIndex() {\n let selected = this.view.state.field(lintState).selected;\n if (!selected) return -1;\n for (let i = 0; i < this.items.length; i++) if (this.items[i].diagnostic == selected.diagnostic) return i;\n return -1;\n }\n update() {\n let {\n diagnostics,\n selected\n } = this.view.state.field(lintState);\n let i = 0,\n needsSync = false,\n newSelectedItem = null;\n diagnostics.between(0, this.view.state.doc.length, (_start, _end, {\n spec\n }) => {\n let found = -1,\n item;\n for (let j = i; j < this.items.length; j++) if (this.items[j].diagnostic == spec.diagnostic) {\n found = j;\n break;\n }\n if (found < 0) {\n item = new PanelItem(this.view, spec.diagnostic);\n this.items.splice(i, 0, item);\n needsSync = true;\n } else {\n item = this.items[found];\n if (found > i) {\n this.items.splice(i, found - i);\n needsSync = true;\n }\n }\n if (selected && item.diagnostic == selected.diagnostic) {\n if (!item.dom.hasAttribute(\"aria-selected\")) {\n item.dom.setAttribute(\"aria-selected\", \"true\");\n newSelectedItem = item;\n }\n } else if (item.dom.hasAttribute(\"aria-selected\")) {\n item.dom.removeAttribute(\"aria-selected\");\n }\n i++;\n });\n while (i < this.items.length && !(this.items.length == 1 && this.items[0].diagnostic.from < 0)) {\n needsSync = true;\n this.items.pop();\n }\n if (this.items.length == 0) {\n this.items.push(new PanelItem(this.view, {\n from: -1,\n to: -1,\n severity: \"info\",\n message: this.view.state.phrase(\"No diagnostics\")\n }));\n needsSync = true;\n }\n if (newSelectedItem) {\n this.list.setAttribute(\"aria-activedescendant\", newSelectedItem.id);\n this.view.requestMeasure({\n key: this,\n read: () => ({\n sel: newSelectedItem.dom.getBoundingClientRect(),\n panel: this.list.getBoundingClientRect()\n }),\n write: ({\n sel,\n panel\n }) => {\n let scaleY = panel.height / this.list.offsetHeight;\n if (sel.top < panel.top) this.list.scrollTop -= (panel.top - sel.top) / scaleY;else if (sel.bottom > panel.bottom) this.list.scrollTop += (sel.bottom - panel.bottom) / scaleY;\n }\n });\n } else if (this.selectedIndex < 0) {\n this.list.removeAttribute(\"aria-activedescendant\");\n }\n if (needsSync) this.sync();\n }\n sync() {\n let domPos = this.list.firstChild;\n function rm() {\n let prev = domPos;\n domPos = prev.nextSibling;\n prev.remove();\n }\n for (let item of this.items) {\n if (item.dom.parentNode == this.list) {\n while (domPos != item.dom) rm();\n domPos = item.dom.nextSibling;\n } else {\n this.list.insertBefore(item.dom, domPos);\n }\n }\n while (domPos) rm();\n }\n moveSelection(selectedIndex) {\n if (this.selectedIndex < 0) return;\n let field = this.view.state.field(lintState);\n let selection = findDiagnostic(field.diagnostics, this.items[selectedIndex].diagnostic);\n if (!selection) return;\n this.view.dispatch({\n selection: {\n anchor: selection.from,\n head: selection.to\n },\n scrollIntoView: true,\n effects: movePanelSelection.of(selection)\n });\n }\n static open(view) {\n return new LintPanel(view);\n }\n}\nfunction svg(content, attrs = `viewBox=\"0 0 40 40\"`) {\n return `url('data:image/svg+xml,${encodeURIComponent(content)}')`;\n}\nfunction underline(color) {\n return svg(``, `width=\"6\" height=\"3\"`);\n}\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-diagnostic\": {\n padding: \"3px 6px 3px 8px\",\n marginLeft: \"-1px\",\n display: \"block\",\n whiteSpace: \"pre-wrap\"\n },\n \".cm-diagnostic-error\": {\n borderLeft: \"5px solid #d11\"\n },\n \".cm-diagnostic-warning\": {\n borderLeft: \"5px solid orange\"\n },\n \".cm-diagnostic-info\": {\n borderLeft: \"5px solid #999\"\n },\n \".cm-diagnostic-hint\": {\n borderLeft: \"5px solid #66d\"\n },\n \".cm-diagnosticAction\": {\n font: \"inherit\",\n border: \"none\",\n padding: \"2px 4px\",\n backgroundColor: \"#444\",\n color: \"white\",\n borderRadius: \"3px\",\n marginLeft: \"8px\",\n cursor: \"pointer\"\n },\n \".cm-diagnosticSource\": {\n fontSize: \"70%\",\n opacity: .7\n },\n \".cm-lintRange\": {\n backgroundPosition: \"left bottom\",\n backgroundRepeat: \"repeat-x\",\n paddingBottom: \"0.7px\"\n },\n \".cm-lintRange-error\": {\n backgroundImage: /*@__PURE__*/underline(\"#d11\")\n },\n \".cm-lintRange-warning\": {\n backgroundImage: /*@__PURE__*/underline(\"orange\")\n },\n \".cm-lintRange-info\": {\n backgroundImage: /*@__PURE__*/underline(\"#999\")\n },\n \".cm-lintRange-hint\": {\n backgroundImage: /*@__PURE__*/underline(\"#66d\")\n },\n \".cm-lintRange-active\": {\n backgroundColor: \"#ffdd9980\"\n },\n \".cm-tooltip-lint\": {\n padding: 0,\n margin: 0\n },\n \".cm-lintPoint\": {\n position: \"relative\",\n \"&:after\": {\n content: '\"\"',\n position: \"absolute\",\n bottom: 0,\n left: \"-2px\",\n borderLeft: \"3px solid transparent\",\n borderRight: \"3px solid transparent\",\n borderBottom: \"4px solid #d11\"\n }\n },\n \".cm-lintPoint-warning\": {\n \"&:after\": {\n borderBottomColor: \"orange\"\n }\n },\n \".cm-lintPoint-info\": {\n \"&:after\": {\n borderBottomColor: \"#999\"\n }\n },\n \".cm-lintPoint-hint\": {\n \"&:after\": {\n borderBottomColor: \"#66d\"\n }\n },\n \".cm-panel.cm-panel-lint\": {\n position: \"relative\",\n \"& ul\": {\n maxHeight: \"100px\",\n overflowY: \"auto\",\n \"& [aria-selected]\": {\n backgroundColor: \"#ddd\",\n \"& u\": {\n textDecoration: \"underline\"\n }\n },\n \"&:focus [aria-selected]\": {\n background_fallback: \"#bdf\",\n backgroundColor: \"Highlight\",\n color_fallback: \"white\",\n color: \"HighlightText\"\n },\n \"& u\": {\n textDecoration: \"none\"\n },\n padding: 0,\n margin: 0\n },\n \"& [name=close]\": {\n position: \"absolute\",\n top: \"0\",\n right: \"2px\",\n background: \"inherit\",\n border: \"none\",\n font: \"inherit\",\n padding: 0,\n margin: 0\n }\n }\n});\nfunction severityWeight(sev) {\n return sev == \"error\" ? 4 : sev == \"warning\" ? 3 : sev == \"info\" ? 2 : 1;\n}\nclass LintGutterMarker extends GutterMarker {\n constructor(diagnostics) {\n super();\n this.diagnostics = diagnostics;\n this.severity = diagnostics.reduce((max, d) => severityWeight(max) < severityWeight(d.severity) ? d.severity : max, \"hint\");\n }\n toDOM(view) {\n let elt = document.createElement(\"div\");\n elt.className = \"cm-lint-marker cm-lint-marker-\" + this.severity;\n let diagnostics = this.diagnostics;\n let diagnosticsFilter = view.state.facet(lintGutterConfig).tooltipFilter;\n if (diagnosticsFilter) diagnostics = diagnosticsFilter(diagnostics, view.state);\n if (diagnostics.length) elt.onmouseover = () => gutterMarkerMouseOver(view, elt, diagnostics);\n return elt;\n }\n}\nfunction trackHoverOn(view, marker) {\n let mousemove = event => {\n let rect = marker.getBoundingClientRect();\n if (event.clientX > rect.left - 10 /* Hover.Margin */ && event.clientX < rect.right + 10 /* Hover.Margin */ && event.clientY > rect.top - 10 /* Hover.Margin */ && event.clientY < rect.bottom + 10 /* Hover.Margin */) return;\n for (let target = event.target; target; target = target.parentNode) {\n if (target.nodeType == 1 && target.classList.contains(\"cm-tooltip-lint\")) return;\n }\n window.removeEventListener(\"mousemove\", mousemove);\n if (view.state.field(lintGutterTooltip)) view.dispatch({\n effects: setLintGutterTooltip.of(null)\n });\n };\n window.addEventListener(\"mousemove\", mousemove);\n}\nfunction gutterMarkerMouseOver(view, marker, diagnostics) {\n function hovered() {\n let line = view.elementAtHeight(marker.getBoundingClientRect().top + 5 - view.documentTop);\n const linePos = view.coordsAtPos(line.from);\n if (linePos) {\n view.dispatch({\n effects: setLintGutterTooltip.of({\n pos: line.from,\n above: false,\n create() {\n return {\n dom: diagnosticsTooltip(view, diagnostics),\n getCoords: () => marker.getBoundingClientRect()\n };\n }\n })\n });\n }\n marker.onmouseout = marker.onmousemove = null;\n trackHoverOn(view, marker);\n }\n let {\n hoverTime\n } = view.state.facet(lintGutterConfig);\n let hoverTimeout = setTimeout(hovered, hoverTime);\n marker.onmouseout = () => {\n clearTimeout(hoverTimeout);\n marker.onmouseout = marker.onmousemove = null;\n };\n marker.onmousemove = () => {\n clearTimeout(hoverTimeout);\n hoverTimeout = setTimeout(hovered, hoverTime);\n };\n}\nfunction markersForDiagnostics(doc, diagnostics) {\n let byLine = Object.create(null);\n for (let diagnostic of diagnostics) {\n let line = doc.lineAt(diagnostic.from);\n (byLine[line.from] || (byLine[line.from] = [])).push(diagnostic);\n }\n let markers = [];\n for (let line in byLine) {\n markers.push(new LintGutterMarker(byLine[line]).range(+line));\n }\n return RangeSet.of(markers, true);\n}\nconst lintGutterExtension = /*@__PURE__*/gutter({\n class: \"cm-gutter-lint\",\n markers: view => view.state.field(lintGutterMarkers)\n});\nconst lintGutterMarkers = /*@__PURE__*/StateField.define({\n create() {\n return RangeSet.empty;\n },\n update(markers, tr) {\n markers = markers.map(tr.changes);\n let diagnosticFilter = tr.state.facet(lintGutterConfig).markerFilter;\n for (let effect of tr.effects) {\n if (effect.is(setDiagnosticsEffect)) {\n let diagnostics = effect.value;\n if (diagnosticFilter) diagnostics = diagnosticFilter(diagnostics || [], tr.state);\n markers = markersForDiagnostics(tr.state.doc, diagnostics.slice(0));\n }\n }\n return markers;\n }\n});\nconst setLintGutterTooltip = /*@__PURE__*/StateEffect.define();\nconst lintGutterTooltip = /*@__PURE__*/StateField.define({\n create() {\n return null;\n },\n update(tooltip, tr) {\n if (tooltip && tr.docChanged) tooltip = hideTooltip(tr, tooltip) ? null : Object.assign(Object.assign({}, tooltip), {\n pos: tr.changes.mapPos(tooltip.pos)\n });\n return tr.effects.reduce((t, e) => e.is(setLintGutterTooltip) ? e.value : t, tooltip);\n },\n provide: field => showTooltip.from(field)\n});\nconst lintGutterTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-gutter-lint\": {\n width: \"1.4em\",\n \"& .cm-gutterElement\": {\n padding: \".2em\"\n }\n },\n \".cm-lint-marker\": {\n width: \"1em\",\n height: \"1em\"\n },\n \".cm-lint-marker-info\": {\n content: /*@__PURE__*/svg(``)\n },\n \".cm-lint-marker-warning\": {\n content: /*@__PURE__*/svg(``)\n },\n \".cm-lint-marker-error\": {\n content: /*@__PURE__*/svg(``)\n }\n});\nconst lintExtensions = [lintState, /*@__PURE__*/EditorView.decorations.compute([lintState], state => {\n let {\n selected,\n panel\n } = state.field(lintState);\n return !selected || !panel || selected.from == selected.to ? Decoration.none : Decoration.set([activeMark.range(selected.from, selected.to)]);\n}), /*@__PURE__*/hoverTooltip(lintTooltip, {\n hideOn: hideTooltip\n}), baseTheme];\nconst lintGutterConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n hoverTime: 300 /* Hover.Time */,\n markerFilter: null,\n tooltipFilter: null\n });\n }\n});\n/**\nReturns an extension that installs a gutter showing markers for\neach line that has diagnostics, which can be hovered over to see\nthe diagnostics.\n*/\nfunction lintGutter(config = {}) {\n return [lintGutterConfig.of(config), lintGutterMarkers, lintGutterExtension, lintGutterTheme, lintGutterTooltip];\n}\n/**\nIterate over the marked diagnostics for the given editor state,\ncalling `f` for each of them. Note that, if the document changed\nsince the diagnostics were created, the `Diagnostic` object will\nhold the original outdated position, whereas the `to` and `from`\narguments hold the diagnostic's current position.\n*/\nfunction forEachDiagnostic(state, f) {\n let lState = state.field(lintState, false);\n if (lState && lState.diagnostics.size) for (let iter = RangeSet.iter([lState.diagnostics]); iter.value; iter.next()) f(iter.value.spec.diagnostic, iter.from, iter.to);\n}\nexport { closeLintPanel, diagnosticCount, forEachDiagnostic, forceLinting, lintGutter, lintKeymap, linter, nextDiagnostic, openLintPanel, previousDiagnostic, setDiagnostics, setDiagnosticsEffect };","import { lineNumbers, highlightActiveLineGutter, highlightSpecialChars, drawSelection, dropCursor, rectangularSelection, crosshairCursor, highlightActiveLine, keymap } from '@codemirror/view';\nexport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { foldGutter, indentOnInput, syntaxHighlighting, defaultHighlightStyle, bracketMatching, foldKeymap } from '@codemirror/language';\nimport { history, defaultKeymap, historyKeymap } from '@codemirror/commands';\nimport { highlightSelectionMatches, searchKeymap } from '@codemirror/search';\nimport { closeBrackets, autocompletion, closeBracketsKeymap, completionKeymap } from '@codemirror/autocomplete';\nimport { lintKeymap } from '@codemirror/lint';\n\n// (The superfluous function calls around the list of extensions work\n// around current limitations in tree-shaking software.)\n/**\nThis is an extension value that just pulls together a number of\nextensions that you might want in a basic editor. It is meant as a\nconvenient helper to quickly set up CodeMirror without installing\nand importing a lot of separate packages.\n\nSpecifically, it includes...\n\n - [the default command bindings](https://codemirror.net/6/docs/ref/#commands.defaultKeymap)\n - [line numbers](https://codemirror.net/6/docs/ref/#view.lineNumbers)\n - [special character highlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars)\n - [the undo history](https://codemirror.net/6/docs/ref/#commands.history)\n - [a fold gutter](https://codemirror.net/6/docs/ref/#language.foldGutter)\n - [custom selection drawing](https://codemirror.net/6/docs/ref/#view.drawSelection)\n - [drop cursor](https://codemirror.net/6/docs/ref/#view.dropCursor)\n - [multiple selections](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)\n - [reindentation on input](https://codemirror.net/6/docs/ref/#language.indentOnInput)\n - [the default highlight style](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle) (as fallback)\n - [bracket matching](https://codemirror.net/6/docs/ref/#language.bracketMatching)\n - [bracket closing](https://codemirror.net/6/docs/ref/#autocomplete.closeBrackets)\n - [autocompletion](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion)\n - [rectangular selection](https://codemirror.net/6/docs/ref/#view.rectangularSelection) and [crosshair cursor](https://codemirror.net/6/docs/ref/#view.crosshairCursor)\n - [active line highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLine)\n - [active line gutter highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLineGutter)\n - [selection match highlighting](https://codemirror.net/6/docs/ref/#search.highlightSelectionMatches)\n - [search](https://codemirror.net/6/docs/ref/#search.searchKeymap)\n - [linting](https://codemirror.net/6/docs/ref/#lint.lintKeymap)\n\n(You'll probably want to add some language package to your setup\ntoo.)\n\nThis extension does not allow customization. The idea is that,\nonce you decide you want to configure your editor more precisely,\nyou take this package's source (which is just a bunch of imports\nand an array literal), copy it into your own code, and adjust it\nas desired.\n*/\nconst basicSetup = /*@__PURE__*/(() => [lineNumbers(), highlightActiveLineGutter(), highlightSpecialChars(), history(), foldGutter(), drawSelection(), dropCursor(), EditorState.allowMultipleSelections.of(true), indentOnInput(), syntaxHighlighting(defaultHighlightStyle, {\n fallback: true\n}), bracketMatching(), closeBrackets(), autocompletion(), rectangularSelection(), crosshairCursor(), highlightActiveLine(), highlightSelectionMatches(), keymap.of([...closeBracketsKeymap, ...defaultKeymap, ...searchKeymap, ...historyKeymap, ...foldKeymap, ...completionKeymap, ...lintKeymap])])();\n/**\nA minimal set of extensions to create a functional editor. Only\nincludes [the default keymap](https://codemirror.net/6/docs/ref/#commands.defaultKeymap), [undo\nhistory](https://codemirror.net/6/docs/ref/#commands.history), [special character\nhighlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars), [custom selection\ndrawing](https://codemirror.net/6/docs/ref/#view.drawSelection), and [default highlight\nstyle](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle).\n*/\nconst minimalSetup = /*@__PURE__*/(() => [highlightSpecialChars(), history(), drawSelection(), syntaxHighlighting(defaultHighlightStyle, {\n fallback: true\n}), keymap.of([...defaultKeymap, ...historyKeymap])])();\nexport { basicSetup, minimalSetup };","import * as i0 from '@angular/core';\nimport { EventEmitter, booleanAttribute, forwardRef, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, NgModule } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { indentWithTab } from '@codemirror/commands';\nimport { indentUnit } from '@codemirror/language';\nimport { Annotation, Compartment, EditorState, StateEffect } from '@codemirror/state';\nimport { oneDark } from '@codemirror/theme-one-dark';\nimport { EditorView, placeholder, keymap, highlightWhitespace } from '@codemirror/view';\nimport { basicSetup, minimalSetup } from 'codemirror';\nimport { MergeView } from '@codemirror/merge';\nconst External = Annotation.define();\nlet CodeEditor = /*#__PURE__*/(() => {\n class CodeEditor {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n /**\n * Whether focus on the editor after init.\n *\n * Don't support change dynamically!\n */\n this.autoFocus = false;\n /** The editor's value. */\n this.value = '';\n /** Whether the editor is disabled. */\n this.disabled = false;\n /** Whether the editor is readonly. */\n this.readonly = false;\n /** The editor's theme. */\n this.theme = 'light';\n /** The editor's placecholder. */\n this.placeholder = '';\n /** Whether indent with Tab key. */\n this.indentWithTab = false;\n /** Should be a string consisting either entirely of the same whitespace character. */\n this.indentUnit = '';\n /** Whether the editor wraps lines. */\n this.lineWrapping = false;\n /** Whether highlight the whitespace. */\n this.highlightWhitespace = false;\n /**\n * An array of language descriptions for known\n * [language-data](https://github.com/codemirror/language-data/blob/main/src/language-data.ts).\n *\n * Don't support change dynamically!\n */\n this.languages = [];\n /** The editor's language. You should set the `languages` prop at first. */\n this.language = '';\n /**\n * The editor's built-in setup. The value can be set to\n * [`basic`](https://codemirror.net/docs/ref/#codemirror.basicSetup),\n * [`minimal`](https://codemirror.net/docs/ref/#codemirror.minimalSetup) or `null`.\n */\n this.setup = 'basic';\n /**\n * It will be appended to the root\n * [extensions](https://codemirror.net/docs/ref/#state.EditorStateConfig.extensions).\n */\n this.extensions = [];\n /** Event emitted when the editor's value changes. */\n this.change = new EventEmitter();\n /** Event emitted when focus on the editor. */\n this.focus = new EventEmitter();\n /** Event emitted when the editor has lost focus. */\n this.blur = new EventEmitter();\n this._onChange = () => {};\n this._onTouched = () => {};\n this._updateListener = EditorView.updateListener.of(vu => {\n if (vu.docChanged && !vu.transactions.some(tr => tr.annotation(External))) {\n const value = vu.state.doc.toString();\n this._onChange(value);\n this.change.emit(value);\n }\n });\n // Extension compartments can be used to make a configuration dynamic.\n // https://codemirror.net/docs/ref/#state.Compartment\n this._editableConf = new Compartment();\n this._readonlyConf = new Compartment();\n this._themeConf = new Compartment();\n this._placeholderConf = new Compartment();\n this._indentWithTabConf = new Compartment();\n this._indentUnitConf = new Compartment();\n this._lineWrappingConf = new Compartment();\n this._highlightWhitespaceConf = new Compartment();\n this._languageConf = new Compartment();\n }\n _getAllExtensions() {\n return [this._updateListener, this._editableConf.of([]), this._readonlyConf.of([]), this._themeConf.of([]), this._placeholderConf.of([]), this._indentWithTabConf.of([]), this._indentUnitConf.of([]), this._lineWrappingConf.of([]), this._highlightWhitespaceConf.of([]), this._languageConf.of([]), this.setup === 'basic' ? basicSetup : this.setup === 'minimal' ? minimalSetup : [], ...this.extensions];\n }\n ngOnChanges(changes) {\n if (changes['value']) {\n this.setValue(this.value);\n }\n if (changes['readonly']) {\n this.setReadonly(this.readonly);\n }\n if (changes['theme']) {\n this.setTheme(this.theme);\n }\n if (changes['placeholder']) {\n this.setPlaceholder(this.placeholder);\n }\n if (changes['indentWithTab']) {\n this.setIndentWithTab(this.indentWithTab);\n }\n if (changes['indentUnit']) {\n this.setIndentUnit(this.indentUnit);\n }\n if (changes['lineWrapping']) {\n this.setLineWrapping(this.lineWrapping);\n }\n if (changes['highlightWhitespace']) {\n this.setHighlightWhitespace(this.highlightWhitespace);\n }\n if (changes['language']) {\n this.setLanguage(this.language);\n }\n if (changes['setup'] || changes['extensions']) {\n this.setExtensions(this._getAllExtensions());\n }\n }\n ngOnInit() {\n this.view = new EditorView({\n root: this.root,\n parent: this._elementRef.nativeElement,\n state: EditorState.create({\n doc: this.value,\n extensions: this._getAllExtensions()\n })\n });\n if (this.autoFocus) {\n this.view?.focus();\n }\n this.view?.contentDOM.addEventListener('focus', () => {\n this._onTouched();\n this.focus.emit();\n });\n this.view?.contentDOM.addEventListener('blur', () => {\n this._onTouched();\n this.blur.emit();\n });\n this.setEditable(!this.disabled);\n this.setReadonly(this.readonly);\n this.setTheme(this.theme);\n this.setPlaceholder(this.placeholder);\n this.setIndentWithTab(this.indentWithTab);\n this.setIndentUnit(this.indentUnit);\n this.setLineWrapping(this.lineWrapping);\n this.setHighlightWhitespace(this.highlightWhitespace);\n this.setLanguage(this.language);\n }\n ngOnDestroy() {\n this.view?.destroy();\n }\n writeValue(value) {\n if (this.view) {\n this.setValue(value);\n }\n }\n registerOnChange(fn) {\n this._onChange = fn;\n }\n registerOnTouched(fn) {\n this._onTouched = fn;\n }\n setDisabledState(isDisabled) {\n this.disabled = isDisabled;\n this.setEditable(!isDisabled);\n }\n /** Sets editor's value. */\n setValue(value) {\n this.view?.dispatch({\n changes: {\n from: 0,\n to: this.view.state.doc.length,\n insert: value\n }\n });\n }\n _dispatchEffects(effects) {\n return this.view?.dispatch({\n effects\n });\n }\n /** Sets the root extensions of the editor. */\n setExtensions(value) {\n this._dispatchEffects(StateEffect.reconfigure.of(value));\n }\n /** Sets editor's editable state. */\n setEditable(value) {\n this._dispatchEffects(this._editableConf.reconfigure(EditorView.editable.of(value)));\n }\n /** Sets editor's readonly state. */\n setReadonly(value) {\n this._dispatchEffects(this._readonlyConf.reconfigure(EditorState.readOnly.of(value)));\n }\n /** Sets editor's theme. */\n setTheme(value) {\n this._dispatchEffects(this._themeConf.reconfigure(value === 'light' ? [] : value === 'dark' ? oneDark : value));\n }\n /** Sets editor's placeholder. */\n setPlaceholder(value) {\n this._dispatchEffects(this._placeholderConf.reconfigure(value ? placeholder(value) : []));\n }\n /** Sets editor' indentWithTab. */\n setIndentWithTab(value) {\n this._dispatchEffects(this._indentWithTabConf.reconfigure(value ? keymap.of([indentWithTab]) : []));\n }\n /** Sets editor's indentUnit. */\n setIndentUnit(value) {\n this._dispatchEffects(this._indentUnitConf.reconfigure(value ? indentUnit.of(value) : []));\n }\n /** Sets editor's lineWrapping. */\n setLineWrapping(value) {\n this._dispatchEffects(this._lineWrappingConf.reconfigure(value ? EditorView.lineWrapping : []));\n }\n /** Sets editor's highlightWhitespace. */\n setHighlightWhitespace(value) {\n this._dispatchEffects(this._highlightWhitespaceConf.reconfigure(value ? highlightWhitespace() : []));\n }\n /** Sets editor's language dynamically. */\n setLanguage(lang) {\n if (!lang) {\n return;\n }\n if (this.languages.length === 0) {\n if (this.view) {\n console.error('No supported languages. Please set the `languages` prop at first.');\n }\n return;\n }\n const langDesc = this._findLanguage(lang);\n langDesc?.load().then(lang => {\n this._dispatchEffects(this._languageConf.reconfigure([lang]));\n });\n }\n /** Find the language's extension by its name. Case insensitive. */\n _findLanguage(name) {\n for (const lang of this.languages) {\n for (const alias of [lang.name, ...lang.alias]) {\n if (name.toLowerCase() === alias.toLowerCase()) {\n return lang;\n }\n }\n }\n console.error('Language not found:', name);\n console.info('Supported language names:', this.languages.map(lang => lang.name).join(', '));\n return null;\n }\n static {\n this.ɵfac = function CodeEditor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CodeEditor)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: CodeEditor,\n selectors: [[\"code-editor\"]],\n hostAttrs: [1, \"code-editor\"],\n inputs: {\n root: \"root\",\n autoFocus: [2, \"autoFocus\", \"autoFocus\", booleanAttribute],\n value: \"value\",\n disabled: [2, \"disabled\", \"disabled\", booleanAttribute],\n readonly: [2, \"readonly\", \"readonly\", booleanAttribute],\n theme: \"theme\",\n placeholder: \"placeholder\",\n indentWithTab: [2, \"indentWithTab\", \"indentWithTab\", booleanAttribute],\n indentUnit: \"indentUnit\",\n lineWrapping: [2, \"lineWrapping\", \"lineWrapping\", booleanAttribute],\n highlightWhitespace: [2, \"highlightWhitespace\", \"highlightWhitespace\", booleanAttribute],\n languages: \"languages\",\n language: \"language\",\n setup: \"setup\",\n extensions: \"extensions\"\n },\n outputs: {\n change: \"change\",\n focus: \"focus\",\n blur: \"blur\"\n },\n features: [i0.ɵɵProvidersFeature([{\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CodeEditor),\n multi: true\n }]), i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature],\n decls: 0,\n vars: 0,\n template: function CodeEditor_Template(rf, ctx) {},\n styles: [\".code-editor{display:block}.code-editor .cm-editor{height:100%}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return CodeEditor;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet DiffEditor = /*#__PURE__*/(() => {\n class DiffEditor {\n constructor(_elementRef) {\n this._elementRef = _elementRef;\n /**\n * The editor's built-in setup. The value can be set to\n * [`basic`](https://codemirror.net/docs/ref/#codemirror.basicSetup),\n * [`minimal`](https://codemirror.net/docs/ref/#codemirror.minimalSetup) or `null`.\n *\n * Don't support change dynamically!\n */\n this.setup = 'basic';\n /** The diff-editor's original value. */\n this.originalValue = '';\n /**\n * The MergeView original config's\n * [extensions](https://codemirror.net/docs/ref/#state.EditorStateConfig.extensions).\n *\n * Don't support change dynamically!\n */\n this.originalExtensions = [];\n /** The diff-editor's modified value. */\n this.modifiedValue = '';\n /**\n * The MergeView modified config's\n * [extensions](https://codemirror.net/docs/ref/#state.EditorStateConfig.extensions).\n *\n * Don't support change dynamically!\n */\n this.modifiedExtensions = [];\n /**\n * By default, the merge view will mark inserted and deleted text\n * in changed chunks. Set this to false to turn that off.\n */\n this.highlightChanges = true;\n /** Controls whether a gutter marker is shown next to changed lines. */\n this.gutter = true;\n /** Event emitted when the editor's original value changes. */\n this.originalValueChange = new EventEmitter();\n /** Event emitted when the editor's modified value changes. */\n this.modifiedValueChange = new EventEmitter();\n this._updateListener = valueChange => {\n return EditorView.updateListener.of(vu => {\n if (vu.docChanged && !vu.transactions.some(tr => tr.annotation(External))) {\n const value = vu.state.doc.toString();\n valueChange.emit(value);\n }\n });\n };\n }\n ngOnChanges(changes) {\n if (changes['originalValue']) {\n this.setOriginalValue(this.originalValue);\n }\n if (changes['modifiedValue']) {\n this.setModifiedValue(this.modifiedValue);\n }\n if (changes['orientation']) {\n this.mergeView?.reconfigure({\n orientation: this.orientation\n });\n }\n if (changes['revertControls']) {\n this.mergeView?.reconfigure({\n revertControls: this.revertControls\n });\n }\n if (changes['renderRevertControl']) {\n this.mergeView?.reconfigure({\n renderRevertControl: this.renderRevertControl\n });\n }\n if (changes['highlightChanges']) {\n this.mergeView?.reconfigure({\n highlightChanges: this.highlightChanges\n });\n }\n if (changes['gutter']) {\n this.mergeView?.reconfigure({\n gutter: this.gutter\n });\n }\n if (changes['collapseUnchanged']) {\n this.mergeView?.reconfigure({\n collapseUnchanged: this.collapseUnchanged\n });\n }\n if (changes['diffConfig']) {\n this.mergeView?.reconfigure({\n diffConfig: this.diffConfig\n });\n }\n }\n ngOnInit() {\n this.mergeView = new MergeView({\n parent: this._elementRef.nativeElement,\n a: {\n doc: this.originalValue,\n extensions: [this._updateListener(this.originalValueChange), this.setup === 'basic' ? basicSetup : this.setup === 'minimal' ? minimalSetup : [], ...this.originalExtensions]\n },\n b: {\n doc: this.modifiedValue,\n extensions: [this._updateListener(this.modifiedValueChange), this.setup === 'basic' ? basicSetup : this.setup === 'minimal' ? minimalSetup : [], ...this.modifiedExtensions]\n },\n orientation: this.orientation,\n revertControls: this.revertControls,\n renderRevertControl: this.renderRevertControl,\n highlightChanges: this.highlightChanges,\n gutter: this.gutter,\n collapseUnchanged: this.collapseUnchanged,\n diffConfig: this.diffConfig\n });\n }\n ngOnDestroy() {\n this.mergeView?.destroy();\n }\n /** Sets diff-editor's original value. */\n setOriginalValue(value) {\n this.mergeView?.a.dispatch({\n changes: {\n from: 0,\n to: this.mergeView.a.state.doc.length,\n insert: value\n }\n });\n }\n /** Sets diff-editor's modified value. */\n setModifiedValue(value) {\n this.mergeView?.b.dispatch({\n changes: {\n from: 0,\n to: this.mergeView.b.state.doc.length,\n insert: value\n }\n });\n }\n static {\n this.ɵfac = function DiffEditor_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || DiffEditor)(i0.ɵɵdirectiveInject(i0.ElementRef));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: DiffEditor,\n selectors: [[\"diff-editor\"]],\n hostAttrs: [1, \"diff-editor\"],\n inputs: {\n setup: \"setup\",\n originalValue: \"originalValue\",\n originalExtensions: \"originalExtensions\",\n modifiedValue: \"modifiedValue\",\n modifiedExtensions: \"modifiedExtensions\",\n orientation: \"orientation\",\n revertControls: \"revertControls\",\n renderRevertControl: \"renderRevertControl\",\n highlightChanges: [2, \"highlightChanges\", \"highlightChanges\", booleanAttribute],\n gutter: [2, \"gutter\", \"gutter\", booleanAttribute],\n collapseUnchanged: \"collapseUnchanged\",\n diffConfig: \"diffConfig\"\n },\n outputs: {\n originalValueChange: \"originalValueChange\",\n modifiedValueChange: \"modifiedValueChange\"\n },\n features: [i0.ɵɵInputTransformsFeature, i0.ɵɵNgOnChangesFeature],\n decls: 0,\n vars: 0,\n template: function DiffEditor_Template(rf, ctx) {},\n styles: [\".diff-editor{display:block}.diff-editor :is(.cm-mergeView,.cm-mergeViewEditors){height:100%}.diff-editor :is(.cm-mergeView .cm-editor,.cm-mergeView .cm-scroller){height:100%!important}\\n\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n }\n return DiffEditor;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet CodeEditorModule = /*#__PURE__*/(() => {\n class CodeEditorModule {\n static {\n this.ɵfac = function CodeEditorModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || CodeEditorModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: CodeEditorModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({});\n }\n }\n return CodeEditorModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of code-editor\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CodeEditor, CodeEditorModule, DiffEditor, External };\n","import { Injectable } from '@angular/core';\r\nimport { ActivatedRouteSnapshot, Route, Router, RouterStateSnapshot, UrlSegment } from '@angular/router';\r\n\r\nimport { ModuleAccessSecurityVm } from 'app/shared/generated/Administration/Models/Users/ModuleAccessSecurityVm';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { SystemMessageService } from '../system-message/system-message-service';\r\nimport { SecurityService } from './security.service';\r\n\r\n@Injectable()\r\nexport class AuthGuard {\r\n\r\n\tconstructor(\r\n\t\tprivate sec: SecurityService\r\n\t\t, private router: Router\r\n\t\t, private ms: SystemMessageService\r\n\t) { }\r\n\r\n\t/**\r\n\t * Controls whether or not a user can access a component\r\n\t */\r\n\tcanActivate(\r\n\t\troute: ActivatedRouteSnapshot\r\n\t\t, state: RouterStateSnapshot\r\n\t) {\r\n\t\tlet modules = !route.data \r\n\t\t\t? undefined \r\n\t\t\t: (route.data['moduleAccess'] as ModuleAccessSecurityVm)?.modules;\r\n\t\tlet roles = !route.data \r\n\t\t\t? undefined \r\n\t\t\t: (route.data['moduleAccess'] as ModuleAccessSecurityVm)?.permissionRoles;\r\n\t\tlet user = this.sec.getUser();\r\n\r\n\t\tif (modules === undefined) { modules = user?.modules; }\r\n\t\tif (roles === undefined) { roles = user?.permissionRoles; }\r\n\r\n\t\tif (this.checkSecurity(state.url, modules, roles)) { return true; }\t\t\r\n\t\t\t\t\r\n\t\tif (user) { \r\n\t\t\tthis.ms.setSystemMessage(\r\n\t\t\t\t\"Access Denied! You don't have access to this module. Review your module access from your profile or open a new support ticket if you believe this is a mistake.\"\r\n\t\t\t\t, \"error\"\r\n\t\t\t); \r\n\t\t}\r\n\r\n\t\treturn this.router.createUrlTree(['/dashboard']);\r\n\t}\r\n\r\n\t/**\r\n\t * Controls whether or not a module will be lazy loaded\r\n\t */\r\n\tcanLoad(route: Route, urlSegment: UrlSegment[]) {\r\n\t\tlet modules= !route.data \r\n\t\t\t? undefined \r\n\t\t\t: (route.data['moduleAccess'] as ModuleAccessSecurityVm)?.modules;\r\n\t\tlet roles = !route.data \r\n\t\t\t? undefined \r\n\t\t\t: (route.data['moduleAccess'] as ModuleAccessSecurityVm)?.permissionRoles;\r\n\t\tconst redirectUrl = '/' + window.location.href.replace(document.getElementsByTagName('base')[0].href, '');\r\n\t\tlet user = this.sec.getUser();\r\n\r\n\t\tif (modules === undefined) { modules = user?.modules; }\r\n\t\tif (roles === undefined) { roles = user?.permissionRoles; }\r\n\r\n\t\tif (this.checkSecurity(redirectUrl, modules, roles)) { return true; }\r\n\t\t\r\n\t\tif (user) { \r\n\t\t\tthis.ms.setSystemMessage(\r\n\t\t\t\t\"Access Denied! You don't have access to this module. Review your module access from your profile or open a new support ticket if you believe this is a mistake.\"\r\n\t\t\t\t, \"error\"\r\n\t\t\t); \r\n\t\t}\r\n\r\n\t\treturn this.router.createUrlTree(['/dashboard']);\r\n\t}\r\n\r\n\t/**\r\n\t * Right now it just calls checkSecurity in the security service\r\n\t * to ensure they are logged in and saves the redirect URL.\r\n\t *\r\n\t * We may want to eventually use this to lock people out\r\n\t * of entire modules of the website in one place, based on\r\n\t * a single security setting.\r\n\t */\r\n\tcheckSecurity(\r\n\t\turl: string\r\n\t\t, modules: BusinessAreaEnum[] = []\r\n\t\t, permissionRoles: PermissionRole[] = []\r\n\t) {\r\n\t\tconst isValid = this.sec.checkSecurity(modules, permissionRoles);\r\n\r\n\t\t// If they are not logged on, save the URL they tried to go to\r\n\t\tif (!isValid && !this.sec.isLoggedOn()) { this.router.navigateByUrl(`/login?redirectUrl=${encodeURIComponent(url)}`); }\r\n\t\t\r\n\t\treturn isValid;\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../table/interfaces/pcg-table-column.interface';\r\nimport { ProductInfoVm, ProductInfoVmFromFg } from '../Inventory/Models/ProductInfoVm';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class PatientDataVm {\r\n\tpatientID?: string;\r\n\tfirstName?: string;\r\n\tmiddleInitial?: string;\r\n\tlastName?: string;\r\n\tpatientDOB?: string;\r\n\taddress?: string;\r\n\taddress2?: string;\r\n\tcity?: string;\r\n\tstate?: string;\r\n\tzip?: string;\r\n\thomePhone?: string;\r\n\tfacility?: string;\r\n\tfacilityCode?: string;\r\n\trefillsRemaining?: string;\r\n\tqs1Status?: string;\r\n\tmedicalRecordNumber?: string;\r\n\tquantityPrescribed: number;\r\n\tndc?: string;\r\n\texpirationDate?: string;\r\n\tlastFillDate?: string;\r\n\tlastFillDateColor?: string;\r\n\twithin30DaysDate?: string;\r\n\twithin30DaysCreateddBy?: string;\r\n\tnextFillDate?: string;\r\n\trxNumber?: string;\r\n\terrorMessage?: string;\r\n\tproductName?: string;\r\n\tpfsFormID?: number;\r\n\tpfsProductId?: number;\r\n\tpfsProgramId?: number;\r\n\tpfsUnitOfMeasureId?: number;\r\n\tpfsCountUom?: number;\r\n\tpfsUrl?: string;\r\n\tpfsRequestType?: string;\r\n\tshipmentId?: number;\r\n\tinventorySiteId?: number;\r\n\tinventoryProductId?: number;\r\n\tisFacility?: boolean;\r\n\tisEos?: boolean;\r\n\tisOverrideLastFillDate?: boolean;\r\n\tisOverridePatientTransfer?: boolean;\r\n\tisSoftStop?: boolean;\r\n\tsoftStopDays?: number;\r\n\tisHardStop?: boolean;\r\n\thardStopDays?: number;\r\n\tinventories?: ProductInfoVm[];\r\n\tdrugClass?: string;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'patientID': new UntypedFormControl(null, [...(validators['patientID'] ?? []), ...[]]),\r\n\t\t\t'firstName': new UntypedFormControl(null, [...(validators['firstName'] ?? []), ...[]]),\r\n\t\t\t'middleInitial': new UntypedFormControl(null, [...(validators['middleInitial'] ?? []), ...[]]),\r\n\t\t\t'lastName': new UntypedFormControl(null, [...(validators['lastName'] ?? []), ...[]]),\r\n\t\t\t'patientDOB': new UntypedFormControl(null, [...(validators['patientDOB'] ?? []), ...[]]),\r\n\t\t\t'address': new UntypedFormControl(null, [...(validators['address'] ?? []), ...[]]),\r\n\t\t\t'address2': new UntypedFormControl(null, [...(validators['address2'] ?? []), ...[]]),\r\n\t\t\t'city': new UntypedFormControl(null, [...(validators['city'] ?? []), ...[]]),\r\n\t\t\t'state': new UntypedFormControl(null, [...(validators['state'] ?? []), ...[]]),\r\n\t\t\t'zip': new UntypedFormControl(null, [...(validators['zip'] ?? []), ...[]]),\r\n\t\t\t'homePhone': new UntypedFormControl(null, [...(validators['homePhone'] ?? []), ...[]]),\r\n\t\t\t'facility': new UntypedFormControl(null, [...(validators['facility'] ?? []), ...[]]),\r\n\t\t\t'facilityCode': new UntypedFormControl(null, [...(validators['facilityCode'] ?? []), ...[]]),\r\n\t\t\t'refillsRemaining': new UntypedFormControl(null, [...(validators['refillsRemaining'] ?? []), ...[]]),\r\n\t\t\t'qs1Status': new UntypedFormControl(null, [...(validators['qs1Status'] ?? []), ...[]]),\r\n\t\t\t'medicalRecordNumber': new UntypedFormControl(null, [...(validators['medicalRecordNumber'] ?? []), ...[]]),\r\n\t\t\t'quantityPrescribed': new UntypedFormControl(0, [...(validators['quantityPrescribed'] ?? []), ...[Validators.required]]),\r\n\t\t\t'ndc': new UntypedFormControl(null, [...(validators['ndc'] ?? []), ...[]]),\r\n\t\t\t'expirationDate': new UntypedFormControl(null, [...(validators['expirationDate'] ?? []), ...[]]),\r\n\t\t\t'lastFillDate': new UntypedFormControl(null, [...(validators['lastFillDate'] ?? []), ...[]]),\r\n\t\t\t'lastFillDateColor': new UntypedFormControl(null, [...(validators['lastFillDateColor'] ?? []), ...[]]),\r\n\t\t\t'within30DaysDate': new UntypedFormControl(null, [...(validators['within30DaysDate'] ?? []), ...[]]),\r\n\t\t\t'within30DaysCreateddBy': new UntypedFormControl(null, [...(validators['within30DaysCreateddBy'] ?? []), ...[]]),\r\n\t\t\t'nextFillDate': new UntypedFormControl(null, [...(validators['nextFillDate'] ?? []), ...[]]),\r\n\t\t\t'rxNumber': new UntypedFormControl(null, [...(validators['rxNumber'] ?? []), ...[]]),\r\n\t\t\t'errorMessage': new UntypedFormControl(null, [...(validators['errorMessage'] ?? []), ...[]]),\r\n\t\t\t'productName': new UntypedFormControl(null, [...(validators['productName'] ?? []), ...[]]),\r\n\t\t\t'pfsFormID': new UntypedFormControl(null, [...(validators['pfsFormID'] ?? []), ...[]]),\r\n\t\t\t'pfsProductId': new UntypedFormControl(null, [...(validators['pfsProductId'] ?? []), ...[]]),\r\n\t\t\t'pfsProgramId': new UntypedFormControl(null, [...(validators['pfsProgramId'] ?? []), ...[]]),\r\n\t\t\t'pfsUnitOfMeasureId': new UntypedFormControl(null, [...(validators['pfsUnitOfMeasureId'] ?? []), ...[]]),\r\n\t\t\t'pfsCountUom': new UntypedFormControl(null, [...(validators['pfsCountUom'] ?? []), ...[]]),\r\n\t\t\t'pfsUrl': new UntypedFormControl(null, [...(validators['pfsUrl'] ?? []), ...[]]),\r\n\t\t\t'pfsRequestType': new UntypedFormControl(null, [...(validators['pfsRequestType'] ?? []), ...[]]),\r\n\t\t\t'shipmentId': new UntypedFormControl(null, [...(validators['shipmentId'] ?? []), ...[]]),\r\n\t\t\t'inventorySiteId': new UntypedFormControl(null, [...(validators['inventorySiteId'] ?? []), ...[]]),\r\n\t\t\t'inventoryProductId': new UntypedFormControl(null, [...(validators['inventoryProductId'] ?? []), ...[]]),\r\n\t\t\t'isFacility': new UntypedFormControl(null, [...(validators['isFacility'] ?? []), ...[]]),\r\n\t\t\t'isEos': new UntypedFormControl(null, [...(validators['isEos'] ?? []), ...[]]),\r\n\t\t\t'isOverrideLastFillDate': new UntypedFormControl(null, [...(validators['isOverrideLastFillDate'] ?? []), ...[]]),\r\n\t\t\t'isOverridePatientTransfer': new UntypedFormControl(null, [...(validators['isOverridePatientTransfer'] ?? []), ...[]]),\r\n\t\t\t'isSoftStop': new UntypedFormControl(null, [...(validators['isSoftStop'] ?? []), ...[]]),\r\n\t\t\t'softStopDays': new UntypedFormControl(null, [...(validators['softStopDays'] ?? []), ...[]]),\r\n\t\t\t'isHardStop': new UntypedFormControl(null, [...(validators['isHardStop'] ?? []), ...[]]),\r\n\t\t\t'hardStopDays': new UntypedFormControl(null, [...(validators['hardStopDays'] ?? []), ...[]]),\r\n\t\t\t'inventories': new UntypedFormArray([]),\r\n\t\t\t'drugClass': new UntypedFormControl(null, [...(validators['drugClass'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): PatientDataVmFromFg {\r\n\t\treturn new PatientDataVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class PatientDataVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget patientID(): string {\r\n\t\treturn this.fg.get('patientID').value;\r\n\t}\r\n\tset patientID(val) {\r\n\t\tthis.fg.get('patientID').setValue(val);\r\n\t}\r\n\r\n\tget firstName(): string {\r\n\t\treturn this.fg.get('firstName').value;\r\n\t}\r\n\tset firstName(val) {\r\n\t\tthis.fg.get('firstName').setValue(val);\r\n\t}\r\n\r\n\tget middleInitial(): string {\r\n\t\treturn this.fg.get('middleInitial').value;\r\n\t}\r\n\tset middleInitial(val) {\r\n\t\tthis.fg.get('middleInitial').setValue(val);\r\n\t}\r\n\r\n\tget lastName(): string {\r\n\t\treturn this.fg.get('lastName').value;\r\n\t}\r\n\tset lastName(val) {\r\n\t\tthis.fg.get('lastName').setValue(val);\r\n\t}\r\n\r\n\tget patientDOB(): string {\r\n\t\treturn this.fg.get('patientDOB').value;\r\n\t}\r\n\tset patientDOB(val) {\r\n\t\tthis.fg.get('patientDOB').setValue(val);\r\n\t}\r\n\r\n\tget address(): string {\r\n\t\treturn this.fg.get('address').value;\r\n\t}\r\n\tset address(val) {\r\n\t\tthis.fg.get('address').setValue(val);\r\n\t}\r\n\r\n\tget address2(): string {\r\n\t\treturn this.fg.get('address2').value;\r\n\t}\r\n\tset address2(val) {\r\n\t\tthis.fg.get('address2').setValue(val);\r\n\t}\r\n\r\n\tget city(): string {\r\n\t\treturn this.fg.get('city').value;\r\n\t}\r\n\tset city(val) {\r\n\t\tthis.fg.get('city').setValue(val);\r\n\t}\r\n\r\n\tget state(): string {\r\n\t\treturn this.fg.get('state').value;\r\n\t}\r\n\tset state(val) {\r\n\t\tthis.fg.get('state').setValue(val);\r\n\t}\r\n\r\n\tget zip(): string {\r\n\t\treturn this.fg.get('zip').value;\r\n\t}\r\n\tset zip(val) {\r\n\t\tthis.fg.get('zip').setValue(val);\r\n\t}\r\n\r\n\tget homePhone(): string {\r\n\t\treturn this.fg.get('homePhone').value;\r\n\t}\r\n\tset homePhone(val) {\r\n\t\tthis.fg.get('homePhone').setValue(val);\r\n\t}\r\n\r\n\tget facility(): string {\r\n\t\treturn this.fg.get('facility').value;\r\n\t}\r\n\tset facility(val) {\r\n\t\tthis.fg.get('facility').setValue(val);\r\n\t}\r\n\r\n\tget facilityCode(): string {\r\n\t\treturn this.fg.get('facilityCode').value;\r\n\t}\r\n\tset facilityCode(val) {\r\n\t\tthis.fg.get('facilityCode').setValue(val);\r\n\t}\r\n\r\n\tget refillsRemaining(): string {\r\n\t\treturn this.fg.get('refillsRemaining').value;\r\n\t}\r\n\tset refillsRemaining(val) {\r\n\t\tthis.fg.get('refillsRemaining').setValue(val);\r\n\t}\r\n\r\n\tget qs1Status(): string {\r\n\t\treturn this.fg.get('qs1Status').value;\r\n\t}\r\n\tset qs1Status(val) {\r\n\t\tthis.fg.get('qs1Status').setValue(val);\r\n\t}\r\n\r\n\tget medicalRecordNumber(): string {\r\n\t\treturn this.fg.get('medicalRecordNumber').value;\r\n\t}\r\n\tset medicalRecordNumber(val) {\r\n\t\tthis.fg.get('medicalRecordNumber').setValue(val);\r\n\t}\r\n\r\n\tget quantityPrescribed(): number {\r\n\t\treturn this.fg.get('quantityPrescribed').value;\r\n\t}\r\n\tset quantityPrescribed(val) {\r\n\t\tthis.fg.get('quantityPrescribed').setValue(val);\r\n\t}\r\n\r\n\tget ndc(): string {\r\n\t\treturn this.fg.get('ndc').value;\r\n\t}\r\n\tset ndc(val) {\r\n\t\tthis.fg.get('ndc').setValue(val);\r\n\t}\r\n\r\n\tget expirationDate(): string {\r\n\t\treturn this.fg.get('expirationDate').value;\r\n\t}\r\n\tset expirationDate(val) {\r\n\t\tthis.fg.get('expirationDate').setValue(val);\r\n\t}\r\n\r\n\tget lastFillDate(): string {\r\n\t\treturn this.fg.get('lastFillDate').value;\r\n\t}\r\n\tset lastFillDate(val) {\r\n\t\tthis.fg.get('lastFillDate').setValue(val);\r\n\t}\r\n\r\n\tget lastFillDateColor(): string {\r\n\t\treturn this.fg.get('lastFillDateColor').value;\r\n\t}\r\n\tset lastFillDateColor(val) {\r\n\t\tthis.fg.get('lastFillDateColor').setValue(val);\r\n\t}\r\n\r\n\tget within30DaysDate(): string {\r\n\t\treturn this.fg.get('within30DaysDate').value;\r\n\t}\r\n\tset within30DaysDate(val) {\r\n\t\tthis.fg.get('within30DaysDate').setValue(val);\r\n\t}\r\n\r\n\tget within30DaysCreateddBy(): string {\r\n\t\treturn this.fg.get('within30DaysCreateddBy').value;\r\n\t}\r\n\tset within30DaysCreateddBy(val) {\r\n\t\tthis.fg.get('within30DaysCreateddBy').setValue(val);\r\n\t}\r\n\r\n\tget nextFillDate(): string {\r\n\t\treturn this.fg.get('nextFillDate').value;\r\n\t}\r\n\tset nextFillDate(val) {\r\n\t\tthis.fg.get('nextFillDate').setValue(val);\r\n\t}\r\n\r\n\tget rxNumber(): string {\r\n\t\treturn this.fg.get('rxNumber').value;\r\n\t}\r\n\tset rxNumber(val) {\r\n\t\tthis.fg.get('rxNumber').setValue(val);\r\n\t}\r\n\r\n\tget errorMessage(): string {\r\n\t\treturn this.fg.get('errorMessage').value;\r\n\t}\r\n\tset errorMessage(val) {\r\n\t\tthis.fg.get('errorMessage').setValue(val);\r\n\t}\r\n\r\n\tget productName(): string {\r\n\t\treturn this.fg.get('productName').value;\r\n\t}\r\n\tset productName(val) {\r\n\t\tthis.fg.get('productName').setValue(val);\r\n\t}\r\n\r\n\tget pfsFormID(): number {\r\n\t\treturn this.fg.get('pfsFormID').value;\r\n\t}\r\n\tset pfsFormID(val) {\r\n\t\tthis.fg.get('pfsFormID').setValue(val);\r\n\t}\r\n\r\n\tget pfsProductId(): number {\r\n\t\treturn this.fg.get('pfsProductId').value;\r\n\t}\r\n\tset pfsProductId(val) {\r\n\t\tthis.fg.get('pfsProductId').setValue(val);\r\n\t}\r\n\r\n\tget pfsProgramId(): number {\r\n\t\treturn this.fg.get('pfsProgramId').value;\r\n\t}\r\n\tset pfsProgramId(val) {\r\n\t\tthis.fg.get('pfsProgramId').setValue(val);\r\n\t}\r\n\r\n\tget pfsUnitOfMeasureId(): number {\r\n\t\treturn this.fg.get('pfsUnitOfMeasureId').value;\r\n\t}\r\n\tset pfsUnitOfMeasureId(val) {\r\n\t\tthis.fg.get('pfsUnitOfMeasureId').setValue(val);\r\n\t}\r\n\r\n\tget pfsCountUom(): number {\r\n\t\treturn this.fg.get('pfsCountUom').value;\r\n\t}\r\n\tset pfsCountUom(val) {\r\n\t\tthis.fg.get('pfsCountUom').setValue(val);\r\n\t}\r\n\r\n\tget pfsUrl(): string {\r\n\t\treturn this.fg.get('pfsUrl').value;\r\n\t}\r\n\tset pfsUrl(val) {\r\n\t\tthis.fg.get('pfsUrl').setValue(val);\r\n\t}\r\n\r\n\tget pfsRequestType(): string {\r\n\t\treturn this.fg.get('pfsRequestType').value;\r\n\t}\r\n\tset pfsRequestType(val) {\r\n\t\tthis.fg.get('pfsRequestType').setValue(val);\r\n\t}\r\n\r\n\tget shipmentId(): number {\r\n\t\treturn this.fg.get('shipmentId').value;\r\n\t}\r\n\tset shipmentId(val) {\r\n\t\tthis.fg.get('shipmentId').setValue(val);\r\n\t}\r\n\r\n\tget inventorySiteId(): number {\r\n\t\treturn this.fg.get('inventorySiteId').value;\r\n\t}\r\n\tset inventorySiteId(val) {\r\n\t\tthis.fg.get('inventorySiteId').setValue(val);\r\n\t}\r\n\r\n\tget inventoryProductId(): number {\r\n\t\treturn this.fg.get('inventoryProductId').value;\r\n\t}\r\n\tset inventoryProductId(val) {\r\n\t\tthis.fg.get('inventoryProductId').setValue(val);\r\n\t}\r\n\r\n\tget isFacility(): boolean {\r\n\t\treturn this.fg.get('isFacility').value;\r\n\t}\r\n\tset isFacility(val) {\r\n\t\tthis.fg.get('isFacility').setValue(val);\r\n\t}\r\n\r\n\tget isEos(): boolean {\r\n\t\treturn this.fg.get('isEos').value;\r\n\t}\r\n\tset isEos(val) {\r\n\t\tthis.fg.get('isEos').setValue(val);\r\n\t}\r\n\r\n\tget isOverrideLastFillDate(): boolean {\r\n\t\treturn this.fg.get('isOverrideLastFillDate').value;\r\n\t}\r\n\tset isOverrideLastFillDate(val) {\r\n\t\tthis.fg.get('isOverrideLastFillDate').setValue(val);\r\n\t}\r\n\r\n\tget isOverridePatientTransfer(): boolean {\r\n\t\treturn this.fg.get('isOverridePatientTransfer').value;\r\n\t}\r\n\tset isOverridePatientTransfer(val) {\r\n\t\tthis.fg.get('isOverridePatientTransfer').setValue(val);\r\n\t}\r\n\r\n\tget isSoftStop(): boolean {\r\n\t\treturn this.fg.get('isSoftStop').value;\r\n\t}\r\n\tset isSoftStop(val) {\r\n\t\tthis.fg.get('isSoftStop').setValue(val);\r\n\t}\r\n\r\n\tget softStopDays(): number {\r\n\t\treturn this.fg.get('softStopDays').value;\r\n\t}\r\n\tset softStopDays(val) {\r\n\t\tthis.fg.get('softStopDays').setValue(val);\r\n\t}\r\n\r\n\tget isHardStop(): boolean {\r\n\t\treturn this.fg.get('isHardStop').value;\r\n\t}\r\n\tset isHardStop(val) {\r\n\t\tthis.fg.get('isHardStop').setValue(val);\r\n\t}\r\n\r\n\tget hardStopDays(): number {\r\n\t\treturn this.fg.get('hardStopDays').value;\r\n\t}\r\n\tset hardStopDays(val) {\r\n\t\tthis.fg.get('hardStopDays').setValue(val);\r\n\t}\r\n\r\n\tget drugClass(): string {\r\n\t\treturn this.fg.get('drugClass').value;\r\n\t}\r\n\tset drugClass(val) {\r\n\t\tthis.fg.get('drugClass').setValue(val);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nimport { PatientDataVm } from 'app/shared/generated/Models/PatientDataVm';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class RxDataStorageService {\r\n\r\nconstructor() { }\r\n\r\n\t//Properties used to temporarily store and pass data between modules for the inventory choice modal\r\n\tPatientData: PatientDataVm;\r\n\tIsFacility: boolean;\r\n\r\n\t//Need a function that will reset the data stored in the service between sessions\r\n\tresetInventoryChoiceModalData(){\r\n\t\tthis.PatientData = null;\r\n\t\tthis.IsFacility = null;\r\n\t}\r\n}\r\n","import { Subject, Subscription, from, EMPTY } from 'rxjs';\nimport { ɵNG_PIPE_DEF, ɵgetLContext, ɵglobal } from '@angular/core';\nimport { mergeMap, takeUntil } from 'rxjs/operators';\nconst NG_PIPE_DEF = ɵNG_PIPE_DEF;\nfunction isPipe(target) {\n return !!target[NG_PIPE_DEF];\n}\n\n/**\n * Applied to instances and stores `Subject` instance when\n * no custom destroy method is provided.\n */\nconst DESTROY = Symbol('__destroy');\n/**\n * Applied to definitions and informs that class is decorated\n */\nconst DECORATOR_APPLIED = Symbol('__decoratorApplied');\n/**\n * If we use the `untilDestroyed` operator multiple times inside the single\n * instance providing different `destroyMethodName`, then all streams will\n * subscribe to the single subject. If any method is invoked, the subject will\n * emit and all streams will be unsubscribed. We wan't to prevent this behavior,\n * thus we store subjects under different symbols.\n */\nfunction getSymbol(destroyMethodName) {\n if (typeof destroyMethodName === 'string') {\n return Symbol(`__destroy__${destroyMethodName}`);\n } else {\n return DESTROY;\n }\n}\nfunction markAsDecorated(type) {\n // Store this property on the prototype if it's an injectable class, component or directive.\n // We will be able to handle class extension this way.\n type.prototype[DECORATOR_APPLIED] = true;\n}\nfunction createSubjectOnTheInstance(instance, symbol) {\n if (!instance[symbol]) {\n instance[symbol] = new Subject();\n }\n}\nfunction completeSubjectOnTheInstance(instance, symbol) {\n if (instance[symbol]) {\n instance[symbol].next();\n instance[symbol].complete();\n // We also have to re-assign this property thus in the future\n // we will be able to create new subject on the same instance.\n instance[symbol] = null;\n }\n}\nfunction unsubscribe(property) {\n if (property instanceof Subscription) {\n property.unsubscribe();\n }\n}\nfunction unsubscribeIfPropertyIsArrayLike(property) {\n Array.isArray(property) && property.forEach(unsubscribe);\n}\nfunction decorateNgOnDestroy(ngOnDestroy, options) {\n return function () {\n // Invoke the original `ngOnDestroy` if it exists\n ngOnDestroy && ngOnDestroy.call(this);\n // It's important to use `this` instead of caching instance\n // that may lead to memory leaks\n completeSubjectOnTheInstance(this, getSymbol());\n // Check if subscriptions are pushed to some array\n if (options.arrayName) {\n unsubscribeIfPropertyIsArrayLike(this[options.arrayName]);\n }\n // Loop through the properties and find subscriptions\n if (options.checkProperties) {\n for (const property in this) {\n if (options.blackList?.includes(property)) {\n continue;\n }\n unsubscribe(this[property]);\n }\n }\n };\n}\nfunction decorateProviderDirectiveOrComponent(type, options) {\n type.prototype.ngOnDestroy = decorateNgOnDestroy(type.prototype.ngOnDestroy, options);\n}\nfunction decoratePipe(type, options) {\n const def = type.ɵpipe;\n def.onDestroy = decorateNgOnDestroy(def.onDestroy, options);\n}\nfunction UntilDestroy(options = {}) {\n return type => {\n if (isPipe(type)) {\n decoratePipe(type, options);\n } else {\n decorateProviderDirectiveOrComponent(type, options);\n }\n markAsDecorated(type);\n };\n}\n\n// `LView` is an array where each index matches the specific data structure.\n// The 7th element in an `LView` is an array of cleanup listeners. They are\n// invoked when the view is removed (similar to `ComponentRef.onDestroy`).\nconst CLEANUP = 7;\nconst CheckerHasBeenSet = Symbol('CheckerHasBeenSet');\nfunction setupSubjectUnsubscribedChecker(instance, destroy$) {\n // This function is used within the `untilDestroyed` operator and setups a function that\n // listens for the view removal and checks if the `destroy$` subject has any observers (usually `takeUntil`).\n // Note: this code will not be shipped into production since it's guarded with `ngDevMode`,\n // this means it'll exist only in development mode.\n if (instance[CheckerHasBeenSet] || isAngularInTestMode()) {\n return;\n }\n runOutsideAngular(() => from(Promise.resolve()).pipe(mergeMap(() => {\n let lContext;\n try {\n // The `ɵgetLContext` might not work for a pipe, because it's not a component nor a directive,\n // which means there's no `RNode` for an instance.\n lContext = ɵgetLContext(instance);\n } catch {\n lContext = null;\n }\n const lView = lContext?.lView;\n if (lView == null) {\n return EMPTY;\n }\n const lCleanup = lView[CLEANUP] || (lView[CLEANUP] = []);\n const cleanupHasBeenExecuted$ = new Subject();\n // Note: this function is named for debugging purposes.\n lCleanup.push(function untilDestroyedLCleanup() {\n // We leave the Angular zone, so RxJS will also call subsequent `next` functions\n // outside of the Angular zone, which is done to avoid scheduling a microtask (through\n // `asapScheduler`) within the Angular zone.\n runOutsideAngular(() => {\n cleanupHasBeenExecuted$.next();\n cleanupHasBeenExecuted$.complete();\n });\n });\n return cleanupHasBeenExecuted$;\n }),\n // We can't use `observeOn(asapScheduler)` because this might break the app's change detection.\n // RxJS schedulers coalesce tasks and then flush the queue, which means our task might be scheduled\n // within the root zone, and then all of the tasks (that were set up by developers in the Angular zone)\n // will also be flushed in the root zone.\n mergeMap(() => Promise.resolve())).subscribe(() => {\n // Note: The `observed` property is available only in RxJS@7.2.0, which will throw\n // an error in lower versions. We have integration test with RxJS@6 to ensure we don't\n // import operators from `rxjs`; that's why it's wrapped into braces. The `observers`\n // property is also being deprecated.\n const observed = destroy$['observed'] ?? destroy$['observers'].length > 0;\n if (observed) {\n console.warn(createMessage(instance));\n }\n }));\n instance[CheckerHasBeenSet] = true;\n}\nfunction isAngularInTestMode() {\n // Gets whether the code is currently running in a test environment.\n // We don't use `declare const` because it might cause conflicts with the real typings.\n return (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n typeof __karma__ !== 'undefined' && !!__karma__ ||\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n typeof jasmine !== 'undefined' && !!jasmine ||\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n typeof jest !== 'undefined' && !!jest ||\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n typeof Mocha !== 'undefined' && !!Mocha ||\n // Jest is not defined in ESM mode since it must be access only by importing from `@jest/globals`.\n // There's no way to check if we're in Jest ESM mode or not, but we can check if the `process` is defined.\n // Note: it's required to check for `[object process]` because someone might be running unit tests with\n // Webpack and shimming `process`.\n typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]'\n );\n}\nfunction runOutsideAngular(fn) {\n // We cannot inject the `NgZone` class when running the checker. The `__ngContext__` is read\n // for the first time within a microtask which triggers change detection; we want to avoid that.\n // The `Zone` is always available globally when the `zone.js` is imported. Otherwise, it may be\n // nooped through bootstrap options. The `NgZone.runOutsideAngular` calls `Zone.root.run`, so we're\n // safe calling that function directly.\n const Zone = ɵglobal.Zone;\n const isNgZoneEnabled = !!Zone && typeof Zone.root?.run === 'function';\n return isNgZoneEnabled ? Zone.root.run(fn) : fn();\n}\nfunction createMessage(instance) {\n return `\n The ${instance.constructor.name} still has subscriptions that haven't been unsubscribed.\n This may happen if the class extends another class decorated with @UntilDestroy().\n The child class implements its own ngOnDestroy() method but doesn't call super.ngOnDestroy().\n Let's look at the following example:\n @UntilDestroy()\n @Directive()\n export abstract class BaseDirective {}\n @Component({ template: '' })\n export class ConcreteComponent extends BaseDirective implements OnDestroy {\n constructor() {\n super();\n someObservable$.pipe(untilDestroyed(this)).subscribe();\n }\n ngOnDestroy(): void {\n // Some logic here...\n }\n }\n The BaseDirective.ngOnDestroy() will not be called since Angular will call ngOnDestroy()\n on the ConcreteComponent, but not on the BaseDirective.\n One of the solutions is to declare an empty ngOnDestroy method on the BaseDirective:\n @UntilDestroy()\n @Directive()\n export abstract class BaseDirective {\n ngOnDestroy(): void {}\n }\n @Component({ template: '' })\n export class ConcreteComponent extends BaseDirective implements OnDestroy {\n constructor() {\n super();\n someObservable$.pipe(untilDestroyed(this)).subscribe();\n }\n ngOnDestroy(): void {\n // Some logic here...\n super.ngOnDestroy();\n }\n }\n `;\n}\nconst NG_DEV_MODE = typeof ngDevMode === 'undefined' || ngDevMode;\nfunction overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol) {\n const originalDestroy = instance[destroyMethodName];\n if (NG_DEV_MODE && typeof originalDestroy !== 'function') {\n throw new Error(`${instance.constructor.name} is using untilDestroyed but doesn't implement ${destroyMethodName}`);\n }\n createSubjectOnTheInstance(instance, symbol);\n instance[destroyMethodName] = function () {\n // eslint-disable-next-line prefer-rest-params\n originalDestroy.apply(this, arguments);\n completeSubjectOnTheInstance(this, symbol);\n // We have to re-assign this property back to the original value.\n // If the `untilDestroyed` operator is called for the same instance\n // multiple times, then we will be able to get the original\n // method again and not the patched one.\n instance[destroyMethodName] = originalDestroy;\n };\n}\nfunction untilDestroyed(instance, destroyMethodName) {\n return source => {\n const symbol = getSymbol(destroyMethodName);\n // If `destroyMethodName` is passed then the developer applies\n // this operator to something non-related to Angular DI system\n if (typeof destroyMethodName === 'string') {\n overrideNonDirectiveInstanceMethod(instance, destroyMethodName, symbol);\n } else {\n NG_DEV_MODE && ensureClassIsDecorated(instance);\n createSubjectOnTheInstance(instance, symbol);\n }\n const destroy$ = instance[symbol];\n NG_DEV_MODE && setupSubjectUnsubscribedChecker(instance, destroy$);\n return source.pipe(takeUntil(destroy$));\n };\n}\nfunction ensureClassIsDecorated(instance) {\n const prototype = Object.getPrototypeOf(instance);\n const missingDecorator = !(DECORATOR_APPLIED in prototype);\n if (missingDecorator) {\n throw new Error('untilDestroyed operator cannot be used inside directives or ' + 'components or providers that are not decorated with UntilDestroy decorator');\n }\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { UntilDestroy, untilDestroyed };\n","export const AI_LOT_NUMBER = '10';\r\nexport const AI_SERIAL_NUMBER = '21';\r\nexport const AI_GTIN = '01';\r\nexport const AI_EXPIRATION_DATE = '17';\r\n\r\n/**\r\n* Dictionary mapping fixed length application identifiers to their length\r\n* Variable length identifiers are null and their max length is defined in AI_OPTIONAL_MAX_DICT\r\n* https://en.wikipedia.org/wiki/GS1-128\r\n* */\r\nexport const AI_DICT = {\r\n\t'00': 18,\r\n\t'01': 14,\r\n\t'02': 14,\r\n\t'10': null,\r\n\t'11': 6,\r\n\t'12': 6,\r\n\t'13': 6,\r\n\t'15': 6,\r\n\t'16': 6,\r\n\t'17': 6,\r\n\t'20': 2,\r\n\t'21': null,\r\n\t'22': null,\r\n\t'23': null,\r\n\t'240': null,\r\n\t'241': null,\r\n\t'242': null,\r\n\t'243': null,\r\n\t'250': null,\r\n\t'251': null,\r\n\t'253': null,\r\n\t'254': null,\r\n\t'255': null,\r\n\t'30': null,\r\n\t'310': 7,\r\n\t'311': 7,\r\n\t'312': 7,\r\n\t'313': 7,\r\n\t'314': 7,\r\n\t'315': 7,\r\n\t'316': 7,\r\n\t'320': 7,\r\n\t'321': 7,\r\n\t'322': 7,\r\n\t'323': 7,\r\n\t'324': 7,\r\n\t'325': 7,\r\n\t'326': 7,\r\n\t'327': 7,\r\n\t'328': 7,\r\n\t'329': 7,\r\n\t'330': 7,\r\n\t'331': 7,\r\n\t'332': 7,\r\n\t'333': 7,\r\n\t'334': 7,\r\n\t'335': 7,\r\n\t'336': 7,\r\n\t'337': 7,\r\n\t'340': 7,\r\n\t'341': 7,\r\n\t'342': 7,\r\n\t'343': 7,\r\n\t'344': 7,\r\n\t'345': 7,\r\n\t'346': 7,\r\n\t'347': 7,\r\n\t'348': 7,\r\n\t'349': 7,\r\n\t'350': 7,\r\n\t'351': 7,\r\n\t'352': 7,\r\n\t'353': 7,\r\n\t'354': 7,\r\n\t'355': 7,\r\n\t'356': 7,\r\n\t'357': 7,\r\n\t'360': 7,\r\n\t'361': 7,\r\n\t'362': 7,\r\n\t'363': 7,\r\n\t'364': 7,\r\n\t'365': 7,\r\n\t'366': 7,\r\n\t'367': 7,\r\n\t'368': 7,\r\n\t'369': 7,\r\n\t'37': null,\r\n\t'390': null,\r\n\t'391': null,\r\n\t'392': null,\r\n\t'393': null,\r\n\t'400': null,\r\n\t'401': null,\r\n\t'402': 17,\r\n\t'403': null,\r\n\t'410': 13,\r\n\t'411': 13,\r\n\t'412': 13,\r\n\t'413': 13,\r\n\t'414': 13,\r\n\t'420': null,\r\n\t'421': null,\r\n\t'422': 3,\r\n\t'423': null,\r\n\t'424': 3,\r\n\t'425': 3,\r\n\t'426': 3,\r\n\t'7001': 13,\r\n\t'7002': null,\r\n\t'7003': 10,\r\n\t'7004': null,\r\n\t'703': null,\r\n\t'8001': 14,\r\n\t'8002': null,\r\n\t'8003': null,\r\n\t'8004': null,\r\n\t'8005': 6,\r\n\t'8006': 18,\r\n\t'8007': null,\r\n\t'8008': null,\r\n\t'8018': 18,\r\n\t'8020': null,\r\n\t'8100': 6,\r\n\t'8101': 10,\r\n\t'8102': 2,\r\n\t'8110': null,\r\n\t'8200': null,\r\n\t'90': null,\r\n\t'91': null,\r\n\t'92': null,\r\n\t'93': null,\r\n\t'94': null,\r\n\t'95': null,\r\n\t'96': null,\r\n\t'97': null,\r\n\t'98': null,\r\n\t'99': null,\r\n};\r\n\r\n/**\r\n * Dictionary mapping optional application identifiers to their max lengths\r\n * */\r\nexport const AI_OPTIONAL_MAX_DICT = {\r\n\t'10': 20,\r\n\t'21': 20,\r\n\t'22': 29,\r\n\t'23': 20,\r\n\t'240': 30,\r\n\t'241': 30,\r\n\t'242': 6,\r\n\t'243': 20,\r\n\t'250': 30,\r\n\t'251': 30,\r\n\t'253': 17,\r\n\t'254': 20,\r\n\t'255': 25,\r\n\t'30': 8,\r\n\t'37': 8,\r\n\t'390': 16,\r\n\t'391': 19,\r\n\t'392': 16,\r\n\t'393': 19,\r\n\t'400': 30,\r\n\t'401': 30,\r\n\t'403': 30,\r\n\t'420': 20,\r\n\t'421': 15,\r\n\t'423': 15,\r\n\t'7002': 30,\r\n\t'7004': 4,\r\n\t'703': 31,\r\n\t'8002': 21,\r\n\t'8003': 31,\r\n\t'8004': 30,\r\n\t'8007': 30,\r\n\t'8008': 12,\r\n\t'8020': 25,\r\n\t'8110': 30,\r\n\t'8200': 70,\r\n\t'90': 90,\r\n\t'91': 90,\r\n\t'92': 90,\r\n\t'93': 90,\r\n\t'94': 90,\r\n\t'95': 90,\r\n\t'96': 90,\r\n\t'97': 90,\r\n\t'98': 90,\r\n\t'99': 90\r\n};\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { untilDestroyed } from '@ngneat/until-destroy';\r\nimport { Observable } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, switchMap, map } from 'rxjs/operators';\r\nimport { AI_DICT, AI_EXPIRATION_DATE, AI_GTIN, AI_LOT_NUMBER, AI_OPTIONAL_MAX_DICT, AI_SERIAL_NUMBER } from './ai-dicts';\r\n\r\nimport { SystemMessage } from 'app/core/system-message/system-message-service';\r\nimport { CurrentInventoryGfcVm } from 'app/shared/generated/Inventory/Models/CurrentInventoryGfcVm';\r\nimport { ProductInfoVm } from 'app/shared/generated/Inventory/Models/ProductInfoVm';\r\nimport { PatientDataVm } from 'app/shared/generated/Models/PatientDataVm';\r\nimport { IInventoryService } from './IInventoryService';\r\nimport { ProductBarcode } from './product-barcode';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class InventoryService implements IInventoryService {\r\n\r\n\tconstructor(private httpClient: HttpClient) { }\r\n\r\n\t// NDC Typeahead\r\n\tgetNdcTypeahead = (text$: Observable) => {\r\n\t\treturn text$.pipe(\r\n\t\t\tdebounceTime(200),\r\n\t\t\tdistinctUntilChanged(),\r\n\t\t\tswitchMap(ndc => ndc.length < 5 \r\n\t\t\t\t? []\r\n\t\t\t\t: this.httpClient.get(`api/Select/GetGlobalNdcList?ndc=${encodeURIComponent(ndc)}`)\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\tgetNdc10Typeahead = (text$: Observable) => {\r\n\t\treturn text$.pipe(\r\n\t\t\tdebounceTime(200),\r\n\t\t\tdistinctUntilChanged(),\r\n\t\t\tswitchMap(ndc10 => ndc10.length < 5 \r\n\t\t\t\t? []\r\n\t\t\t\t: this.httpClient.get(`api/Select/GetGlobalNdc10List?ndc10=${encodeURIComponent(ndc10)}`)\r\n\t\t\t\t\t.pipe(map((response: any) => response.slice(0, 10)))\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t// API: api/Inventory/Inventory/GetProductInfoByNdc/\r\n\tgetNdcProductInfo(\r\n\t\tcomponent: any\r\n\t\t, ndc: string\r\n\t\t, inventorySiteId = null\r\n\t): Observable {\r\n\t\treturn this.httpClient.get(this.formatNdcProductInfoRequest(ndc, inventorySiteId))\r\n\t\t\t.pipe(untilDestroyed(component)) as Observable;\r\n\t}\r\n\r\n\tformatNdcProductInfoRequest = (\r\n\t\tndc: string\r\n\t\t, inventorySiteId: number | null = null\r\n\t): string => `api/Inventory/Inventory/GetProductInfoByNdc/?ndc=${encodeURIComponent(ndc)}&inventorySiteId=${encodeURIComponent(inventorySiteId)}`;\r\n\r\n\tgetIdProductInfo(\r\n\t\tcomponent: any\r\n\t\t, id: number\r\n\t): Observable { \r\n\t\treturn this.httpClient.get(this.formatIdProductInfoRequest(id))\r\n\t\t\t.pipe(untilDestroyed(component)) as Observable;\r\n\t}\r\n\r\n\tformatIdProductInfoRequest = (id: number): string => `api/Inventory/Inventory/GetProductInfo/?productId=${encodeURIComponent(id)}`;\r\n\r\n\tgetInstockProductInfo(\r\n\t\tcomponent: any\r\n\t\t, inventorySiteId: number\r\n\t\t, barcode: ProductBarcode\r\n\t\t, qtyPrescribed: number = null\r\n\t\t, isUser: boolean = false\r\n\t): Observable {\r\n\t\tconsole.log(\"isUser = \" + isUser);\r\n\t\treturn this.httpClient.get(\r\n\t\t\tthis.formatInstockProductInfoRequest(\r\n\t\t\t\tinventorySiteId\r\n\t\t\t\t, barcode\r\n\t\t\t\t, qtyPrescribed\r\n\t\t\t\t, isUser\r\n\t\t\t)\r\n\t\t).pipe(untilDestroyed(component)) as Observable;\r\n\t}\r\n\r\n\tformatInstockProductInfoRequest = (\r\n\t\tinventorySiteId: number\r\n\t\t, barcode: ProductBarcode\r\n\t\t, qtyPrescribed: number = null\r\n\t\t, isUser: boolean = false\r\n\t): string => `api/Inventory/${isUser == true ? \"RxFulfillmentUser\" : \"Inventory\"}/GetInstockProductInfo/` \r\n\t\t+ `?inventorySiteId=${inventorySiteId}` \r\n\t\t+ `&ndc=${encodeURIComponent(barcode.productInfo?.ndc)}` \r\n\t\t+ `&lotNumber=${barcode.lotNumber}` \r\n\t\t+ `&expDateStr=${barcode.expirationDate?.toLocaleDateString()}` \r\n\t\t+ `&serialNumber=${barcode.serialNumber}` \r\n\t\t+ `&qtyPrescribed=${qtyPrescribed}`;\r\n\r\n\t// API: api/Inventory/Inventory/GetFastPackProductInfo/\r\n\tgetFastPackProductInfo(\r\n\t\tcomponent: any\r\n\t\t, inventorySiteId: number\r\n\t\t, ndc: string\r\n\t\t, barcodeStr: string\r\n\t): Observable {\r\n\t\treturn this.httpClient.get(this.formatFastPackProductInfo(inventorySiteId, ndc, barcodeStr))\r\n\t\t\t.pipe(untilDestroyed(component)) as Observable;\r\n\t}\r\n\r\n\tformatFastPackProductInfo = (\r\n\t\tinventorySiteId: number\r\n\t\t, ndc: string\r\n\t\t, barcodeStr: string\r\n\t): string => `api/Inventory/Inventory/GetFastPackProductInfo/` \r\n\t\t+ `?inventorySiteId=${inventorySiteId}` \r\n\t\t+ `&ndc=${ndc}` \r\n\t\t+ `&barcodeStr=${barcodeStr}`\r\n\r\n\tgetProductId(\r\n\t\tcomponent: any\r\n\t\t, inventorySiteId: number\r\n\t\t, ndc: string\r\n\t\t, isUser: boolean = false\r\n\t): Observable {\r\n\t\treturn this.httpClient.get(\r\n\t\t\t`api/Inventory/${isUser == true ? \"RxFulfillmentUser\" : \"Inventory\"}/GetInstockProductInfo/` \r\n\t\t\t+ `?inventorySiteId=${inventorySiteId}` \r\n\t\t\t+ `&ndc=${encodeURIComponent(ndc)}`\r\n\t\t).pipe(untilDestroyed(component)) as Observable;\r\n\t}\r\n\r\n\tgetSiteName(\r\n\t\tcomponent: any\r\n\t\t, inventorySiteId: number\r\n\t): Observable {\r\n\t\treturn this.httpClient.get(`api/Inventory/Inventory/GetInventorySiteName/${inventorySiteId}`)\r\n\t\t\t.pipe(untilDestroyed(component));\r\n\t}\r\n\r\n\tgetCurrentStock(\r\n\t\tcomponent: any\r\n\t\t, inventorySiteId: number\r\n\t\t, ndc: string\r\n\t\t, lotNum: string\r\n\t\t, expDate: Date\r\n\t\t, serialNum: string\r\n\t): Observable {\r\n\t\tif (serialNum === null) { serialNum = ''; }\r\n\t\treturn this.httpClient.get(`api/Inventory/Inventory/GetCurrentStock/\r\n\t\t\t?inventorySiteId=${inventorySiteId}\r\n\t\t\t&ndc=${ndc}\r\n\t\t\t&lotNum=${lotNum}\r\n\t\t\t&expDate=${expDate}\r\n\t\t\t&serialNum=${serialNum}`\r\n\t\t).pipe(untilDestroyed(component)) as Observable;\r\n\t}\r\n\r\n\tgetCurrentInventoryByGfc(\r\n\t\tcomponent: any\r\n\t\t, inventorySiteId : number\r\n\t\t, isActive : boolean\r\n\t\t, needsOrdering : boolean\r\n\t) : Observable {\r\n\t\treturn this.httpClient.get(`api/Inventory/Inventory/GetCurrentInventoryByGfc/\r\n\t\t\t?inventorySiteId=${inventorySiteId}\r\n\t\t\t&isActive=${isActive}\r\n\t\t\t&needsOrdering=${needsOrdering}`\r\n\t\t).pipe(untilDestroyed(component)) as Observable\r\n\t}\r\n\r\n\t// Validate that the product has not been previously returned.\r\n\tvalidateRxReturn(\r\n\t\tcomponent: any\r\n\t\t, inventorySiteId: number\r\n\t\t, ndc: string\r\n\t\t, inventoryProductId: number\r\n\t\t, lotNum: string\r\n\t\t, expDate: Date\r\n\t\t, serialNum: string\r\n\t): Observable {\r\n\t\tif (serialNum === null) { serialNum = ''; }\r\n\t\treturn >this.httpClient\r\n\t\t\t.get(`api/Inventory/Inventory/ValidateRxReturn/\r\n\t\t\t\t?inventorySiteId=${inventorySiteId}\r\n\t\t\t\t&ndc=${ndc}\r\n\t\t\t\t&inventoryProductId=${inventoryProductId}\r\n\t\t\t\t&lotNum=${lotNum}\r\n\t\t\t\t&expDate=${expDate}\r\n\t\t\t\t&serialNum=${serialNum}`\r\n\t\t\t).pipe(untilDestroyed(component));\r\n\t}\r\n\r\n\tgetPatientInfo(\r\n\t\tcomponent: any\r\n\t\t, barcodeStr: string\r\n\t\t, shipmentId: number\r\n\t\t, scanned: boolean\r\n\t\t, isUser: boolean = false\r\n\t): Observable {\r\n\t\treturn >this.httpClient\r\n\t\t\t.get(\r\n\t\t\t\t`api/Inventory/QS1/GetRxData/` \r\n\t\t\t\t+ `?rxNumber=${encodeURIComponent(barcodeStr)}` \r\n\t\t\t\t+ `&shipmentId=${encodeURIComponent(shipmentId)}` \r\n\t\t\t\t+ `&scanned=${encodeURIComponent(scanned)}`\r\n\t\t\t\t+ `&isUser=${encodeURIComponent(isUser)}`\r\n\t\t\t).pipe(untilDestroyed(component));\r\n\t}\r\n\r\n\tgetPatientInfoNoShipment(\r\n\t\tcomponent: any\r\n\t\t, barcodeStr: string\r\n\t\t, isFacility: boolean\r\n\t\t, scanned: boolean\r\n\t\t, isUser: boolean = false\r\n\t): Observable {\r\n\t\treturn >this.httpClient\r\n\t\t\t.get(\r\n\t\t\t\t`api/Inventory/QS1/GetRxData/` \r\n\t\t\t\t+ `?rxNumber=${encodeURIComponent(barcodeStr)}` \r\n\t\t\t\t+ `&isFacility=${isFacility}` \r\n\t\t\t\t+ `&scanned=${encodeURIComponent(scanned)}`\r\n\t\t\t\t+ `&isUser=${encodeURIComponent(isUser)}`\r\n\t\t\t).pipe(untilDestroyed(component));\r\n\t}\r\n\r\n\t/**\r\n\t * The main function that will be called from the application to get the barcode data\r\n\t * @param barcode The barcode to parse\r\n\t * @param delimiter The delimeter to use when parsing.\r\n\t * The function will attempt to guess the delimiter if it is not provided.\r\n\t*/\r\n\tscanGs1Barcode(\r\n\t\tbarcode: string\r\n\t\t, delimiter: string = null\r\n\t) {\r\n\t\tif (barcode.substr(0, 3) === 'PFS') { return this.getProductBarCodeFromPfsData(barcode); }\r\n\t\tif (\r\n\t\t\tbarcode === null \r\n\t\t\t|| typeof barcode === 'undefined' \r\n\t\t\t|| barcode.length < 20\r\n\t\t) { return null; }\r\n\t\tif (delimiter !== null) {\r\n\t\t\treturn this.getProductBarCodeFromGs1Data(this.parseGs1Barcode(delimiter !== '↔' ? barcode.replace(/↔/g, '') : barcode, delimiter));\r\n\t\t}\r\n\r\n\t\tlet gs1Data = null;\r\n\t\tconst guessedDelimiters = [];\r\n\t\t// Make up to 10 guesses on the delimiter\r\n\t\tfor (let i = 0; i < 10; ++i) {\r\n\t\t\tlet delimiterGuess = this.guessGs1Delimiter(barcode, guessedDelimiters);\r\n\t\t\tgs1Data = this.parseGs1Barcode(delimiterGuess !== '↔' ? barcode.replace(/↔/g, '') : barcode, delimiterGuess);\r\n\t\t\tguessedDelimiters.push(delimiterGuess);\r\n\r\n\t\t\t// Return data if we make a good guess\r\n\t\t\tif (gs1Data !== null) { return this.getProductBarCodeFromGs1Data(gs1Data); }\r\n\t\t}\r\n\r\n\t\t// Return null if we failed to parse the barcode\r\n\t\treturn null;\r\n\t}\r\n\r\n\tprivate getProductBarCodeFromPfsData(gs1Data: any): ProductBarcode {\r\n\t\tif (gs1Data === null) { return gs1Data; }\r\n\t\tlet array = gs1Data.split('|');\r\n\t\treturn {\r\n\t\t\tndc10: this.parseNdc10FromGtin(array[1]),\r\n\t\t\tlotNumber: array[3],\r\n\t\t\tserialNumber: null,\r\n\t\t\texpirationDate: new Date(+array[2].substr(4, 4), +array[2].substr(0, 2) - 1, +array[2].substr(2, 2)),\r\n\t\t\tisPfs: true\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a friendly object based on the parsed GS1 barcode\r\n\t * @param gs1Data An object mapping application identifiers to their values, generated by parseGs1Barcode\r\n\t*/\r\n\tprivate getProductBarCodeFromGs1Data(gs1Data: any): ProductBarcode {\r\n\t\tif (gs1Data === null) { return gs1Data; }\r\n\t\tvar expDateStr = gs1Data[AI_EXPIRATION_DATE];\r\n\t\tvar last2 = expDateStr?.slice(-2);\r\n\t\tif (last2 === \"00\") { expDateStr = this.convertZeroZeroToEndOfMonth(expDateStr); }\r\n\t\t// Per GS1 documentation, exp date is formatted 'YYMMDD'\r\n\t\t// Date strings should be formatted 'MM DD YY' before being passed into Date.parse()\r\n\t\tlet formatExpDateStr = `${expDateStr?.slice(2,4)} ${expDateStr?.slice(4)} ${expDateStr?.slice(0,2)}`;\r\n\t\tlet timestamp = Date.parse(formatExpDateStr);\r\n\t\tif (isNaN(timestamp)) { return gs1Data; }\r\n\t\treturn {\r\n\t\t\tndc10: this.parseNdc10FromGtin(gs1Data[AI_GTIN])\r\n\t\t\t, lotNumber: gs1Data[AI_LOT_NUMBER].toUpperCase()\r\n\t\t\t, serialNumber: gs1Data[AI_SERIAL_NUMBER]\r\n\t\t\t, expirationDate: new Date(\r\n\t\t\t\t+expDateStr?.substr(0, 2) + 2000\r\n\t\t\t\t, +expDateStr?.substr(2, 2) - 1\r\n\t\t\t\t, +expDateStr?.substr(4, 2)\r\n\t\t\t)\r\n\t\t\t, gtin: gs1Data[AI_GTIN]\r\n\t\t};\r\n\t}\r\n\r\n\tconvertZeroZeroToEndOfMonth(expDate: string) {\r\n\t\tvar lastDay = new Date(+expDate?.substr(0,2) + 2000, +expDate?.substr(2,2), 0);\r\n\t\tvar newDate = expDate?.substr(0,2) + expDate?.substr(2,2) + lastDay.getDate().toString();\r\n\t\treturn newDate;\r\n\t}\r\n\r\n\t/**\r\n\t * Attempt to guess the GS1 delimiter based on the barcode, in case we don't have a way of knowing it.\r\n\t * A null value will be returned if no possible values are found\r\n\t * @param barcode The barcode to parse\r\n\t * @param excludedChars Characters that have already been tried. These will not be returned.\r\n\t*/\r\n\tprivate guessGs1Delimiter(\r\n\t\tbarcode: string\r\n\t\t, excludedChars: string[] = []\r\n\t) {\r\n\t\t// Return null if we do not have a string\r\n\t\tif (\r\n\t\t\tbarcode === null \r\n\t\t\t|| typeof barcode === 'undefined' \r\n\t\t\t|| barcode.length === 0\r\n\t\t) { return null; }\r\n\r\n\t\t// Filter out characters that have already been guessed\r\n\t\tconst bcChars = barcode?.split('').filter(o => !excludedChars.includes(o));\r\n\r\n\t\t// Return null if all characters have been guessed\r\n\t\tif (bcChars.length === 0) { return null; }\r\n\r\n\t\t// Return the first character if it is not a number\r\n\t\tif (isNaN(+bcChars[0])) { return bcChars[0]; }\r\n\r\n\t\t// Check for double arrow\r\n\t\tif (bcChars.includes('↔')) { return '↔'; }\r\n\r\n\t\t// Look for characters outside of the extended ASCII range\r\n\t\tlet nonAsciiChars = bcChars.filter(o => o > '\\u00FF');\r\n\t\tif (nonAsciiChars.length > 0) { return nonAsciiChars[0]; }\r\n\r\n\t\t// Look for characters outside of the standard ASCII range\r\n\t\tnonAsciiChars = bcChars.filter(o => o > '\\u007F');\r\n\t\tif (nonAsciiChars.length > 0) { return nonAsciiChars[0]; }\r\n\r\n\t\t// Look for any other non-alphanumeric characters\r\n\t\tconst nonAlphanumericChars = bcChars.filter(o => o < '0' || (o > '9' && o < 'A') || (o > 'Z' && o < 'a') || o > 'z');\r\n\t\tif (nonAlphanumericChars.length > 0) { return nonAlphanumericChars[0]; }\r\n\r\n\t\t// Otherwise, just return something\r\n\t\treturn bcChars[0];\r\n\t}\r\n\r\n\t/**\r\n\t * Get the 10-digit NDC, without dashes, from the 12 or 14 digit GTIN\r\n\t * @param gtin GTIN is parsed from either the GS1 barcode (14-digit), or is\r\n\t * the value gotten from the traditional barcode (12-digit).\r\n\t * A null value will be returned if GTIN is not a valid length.\r\n\t*/\r\n\tparseNdc10FromGtin(gtin: string) {\r\n\t\t// Return null if we don't have a GTIN\r\n\t\tif (\r\n\t\t\tgtin === null \r\n\t\t\t|| typeof gtin === 'undefined'\r\n\t\t) { return null; }\r\n\r\n\t\t// Parse 11-digit GTIN (used when scanning Homer repack labels which contain regular NDC without \"-\". This returns a full NDC rather than NDC10..\r\n\t\t// Move to its own method or change the method name/ndc10 property name on Product Barcode model to avoid confusion?)\r\n\t\tif (gtin.length === 11) { return gtin.slice(0, 5) + \"-\" + gtin.slice(5, 9) + \"-\" + gtin.slice(9, 11); }\r\n\r\n\t\t// Parse 12-digit GTIN\r\n\t\tif (gtin.length === 12) { return gtin.substr(1, 10); }\r\n\r\n\t\t// Parse 14-digit GTIN\r\n\t\tif (gtin.length === 14) { return gtin.substr(3, 10) }\r\n\r\n\t\t// Otherwise, return null\r\n\t\treturn null;\r\n\t}\r\n\r\n\t/**\r\n\t * Scan the GS1 barcode and return an object mapping its application identifiers to\r\n\t * their values in the barcode.\r\n\t * A null value will be returned if the barcode is not in a valid format.\r\n\t * @param barcode The barcode to parse\r\n\t * @param delimiter The delimeter to use for the barcode's variable length fields\r\n\t*/\r\n\tparseGs1Barcode(\r\n\t\tbarcode: string\r\n\t\t, delimiter: string\r\n\t) {\r\n\t\tlet parsingAi = true; // bool indicating whether or not we are currently parsing an application identifier\r\n\t\tlet ai = ''; // current application identifier value\r\n\t\tlet val = ''; // current parsed value\r\n\t\tlet parseObj = {}; // this will map discovered application identifiers to their values\r\n\r\n\t\t// Loop through the barcode string\r\n\t\tfor (let i = 0; i < barcode.length; ++i) {\r\n\t\t\t// Look for the application identifier, if we don't have one already\r\n\t\t\tif (parsingAi) {\r\n\t\t\t\tif (barcode[i] !== delimiter) { ai += barcode[i]; }\r\n\t\t\t\t// We found a valid application identifier, so stop parsing it\r\n\t\t\t\tif (typeof AI_DICT[ai] !== 'undefined') { parsingAi = false; }\r\n\t\t\t\tcontinue;\r\n\t\t\t}\r\n\r\n\t\t\t// After we have an application identifier, parse its corresponding value\r\n\t\t\t// Stop parsing value if we exceed max number of characters for string or hit the delimiter\r\n\t\t\tif (\r\n\t\t\t\tAI_DICT[ai] === val.length \r\n\t\t\t\t|| (\r\n\t\t\t\t\tAI_OPTIONAL_MAX_DICT[ai] \r\n\t\t\t\t\t&& val.length >= AI_OPTIONAL_MAX_DICT[ai]\r\n\t\t\t\t) \r\n\t\t\t\t|| barcode[i] === delimiter\r\n\t\t\t) {\r\n\t\t\t\tparseObj[ai] = val;\r\n\t\t\t\tparsingAi = true;\r\n\t\t\t\tval = '';\r\n\t\t\t\tai = '';\r\n\t\t\t\t--i;\r\n\t\t\t} else { val += barcode[i]; }\r\n\t\t}\r\n\r\n\t\t// Set the value that was last in the barcode\r\n\t\tif (typeof AI_DICT[ai] !== 'undefined') {\r\n\t\t\tparseObj[ai] = val;\r\n\t\t} else if (ai.length > 0) { // Invalid value at the end of barcode, return null to indicate error \r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn parseObj;\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { UntilDestroy } from '@ngneat/until-destroy';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { RxDataStorageService } from 'app/fulfillment/services/rx-data-storage.service';\r\nimport { PatientDataVm } from 'app/shared/generated/Models/PatientDataVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { InventoryService } from '../services/inventory.service';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'pcg-scan-rx',\r\n templateUrl: './scan-rx.component.html',\r\n standalone: false\r\n})\r\nexport class ScanRxComponent implements OnInit {\r\n\r\n\tconstructor(\r\n\t\tprivate httpClient: HttpClient\r\n\t\t, private ms: SystemMessageService\r\n\t\t, private inventoryService: InventoryService\r\n\t\t, public router: Router\r\n\t\t, private rxDataStorageService: RxDataStorageService\r\n\t\t, private formatHelper: FormatHelperService\r\n\t) { }\r\n\r\n\t// These variables are used for the scanning sounds\r\n\tbeepSuccess = new Audio();\r\n\tbeepError = new Audio();\r\n\tisControlDown = false;\r\n\r\n\t@Input() autofocus = true;\r\n\t@Input() inputPlaceholder = 'Scan Rx';\r\n\t@Input() id?: number = null;\r\n\t@Input() inventoryId: number;\r\n\t@Input() navigateToShipment = false;\r\n\t@Input() hitApi = true;\r\n\t@Input() apiStr = \"api/Inventory/Shipping/GetShipmentByRxNumber/\";\r\n\t@Input() isUser = false;\r\n\r\n\t@Output() scanSuccess = new EventEmitter();\r\n\t@Output() scanSuccessFromList = new EventEmitter();\r\n\t@Output() scanSuccessInventoryList = new EventEmitter();\r\n\t@Output() scanError = new EventEmitter();\r\n\t@Output() scan = new EventEmitter();\r\n\r\n\t@ViewChild('rxNumber', { static: true }) rxNumber: ElementRef;\r\n\r\n\tsubscriptions = new Subscription();\r\n\tformGroup = PatientDataVm.Form;\r\n\tmodel: any;\r\n\tpatient: any;\r\n\r\n\t/** Handle control up and down */\r\n\t@HostListener('document:keydown', ['$event'])\r\n\tcontrolDown(event: KeyboardEvent) { if (event.key === 'Control') { this.isControlDown = true; } }\r\n\r\n\t@HostListener('document:keyup', ['$event'])\r\n\tcontrolUp(event: KeyboardEvent) { if (event.key === 'Control') { this.isControlDown = false; } }\r\n\r\n\tngOnInit() {\r\n\t\tconst basePath = document.getElementsByTagName('base')[0].href;\r\n\t\tthis.beepSuccess.src = basePath + 'assets/sounds/GreenScan.mp3';\r\n\t\tthis.beepSuccess.load();\r\n\t\tthis.beepError.src = basePath + 'assets/sounds/RedScan.mp3';\r\n\t\tthis.beepError.load();\r\n\t}\r\n\r\n\t/**\r\n\t * Hitting F8 and Ctrl + ] will add a double arrow, which can be used as a delimiter.\r\n\t * New Zebra Scanners will add a delimeter with the Alt key.\r\n\t * Hitting Enter will process the barcode.\r\n\t * @param event The key down event\r\n\t*/\r\n\tkeyDown(event: { key: string; preventDefault: () => void; }) {\r\n\t\tif (\r\n\t\t\tevent.key === 'F8' \r\n\t\t\t|| (\r\n\t\t\t\tthis.isControlDown \r\n\t\t\t\t&& event.key === ']'\r\n\t\t\t) \r\n\t\t\t|| event.key === 'Alt'\r\n\t\t) { this.rxNumber.nativeElement.value += '↔'; } \r\n\t\telse if (event.key === 'Enter') {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.scanBarcode();\r\n\t\t}\r\n\t}\r\n\r\n\t/** This function gets fired when enter is pressed in the textbox or the scan button is pressed */\r\n\tscanBarcode() {\r\n\t\tif (!FormatHelperService.GetIsNullyOrWhitespace(this.rxNumber?.nativeElement?.value)) {\r\n\t\t\tconst barcodeStr = this.rxNumber.nativeElement.value;\r\n\t\t\tthis.rxNumber.nativeElement.value = '';\r\n\t\t\tif (this.hitApi === true) {\r\n\t\t\t\t// Emit the scan events and get the product info, if desired\r\n\t\t\t\tif (this.navigateToShipment) {\r\n\t\t\t\t\tthis.httpClient.get(\r\n\t\t\t\t\t\t`${this.apiStr}` \r\n\t\t\t\t\t\t+ `?rxNumber=${barcodeStr}` \r\n\t\t\t\t\t\t+ `&inventoryId=${this.inventoryId}`\r\n\t\t\t\t\t).subscribe((ids: number[]) => {\r\n\t\t\t\t\t\t// if scanning inside an inventory area and returning a single id go directly to fulfillment\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\tthis.inventoryId != null \r\n\t\t\t\t\t\t\t&& ids?.length === 1\r\n\t\t\t\t\t\t) { \r\n\t\t\t\t\t\t\t// navigate to the shipment\r\n\t\t\t\t\t\t\tthis.router.navigateByUrl(`pharmacy/inventories/fulfillment/edit/${ids[0]}/${this.inventoryId}`);\r\n\t\t\t\t\t\t\t// returning anything greater than 0 filter the list\r\n\t\t\t\t\t\t} else if (ids?.length > 0 ) {\r\n\t\t\t\t\t\t\tthis.scanSuccessFromList.emit(ids);\r\n\t\t\t\t\t\t\tthis.scanSuccess.emit(barcodeStr);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tthis.beepError.play();\r\n\t\t\t\t\t\t\t//Decide the validation message based off of whether or not we are in centralized fulfillment\r\n\t\t\t\t\t\t\tlet validationMessage = this.formatHelper.GetIsNully(this.inventoryId) \r\n\t\t\t\t\t\t\t\t? 'The Rx Number scanned has not been used on a fulfillment.' \r\n\t\t\t\t\t\t\t\t: 'The Rx Number scanned has not been used on a fulfillment in this inventory.';\r\n\t\t\t\t\t\t\tthis.ms.setSystemMessage(validationMessage, 'warning');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} else if (barcodeStr?.length > 0) {\r\n\t\t\t\t\t//If there is no shipment\r\n\t\t\t\t\tif (this.formatHelper.GetIsNully(this.id)) {\r\n\t\t\t\t\t\t// Passing in true, since it was scanned\r\n\t\t\t\t\t\tthis.inventoryService.getPatientInfoNoShipment(\r\n\t\t\t\t\t\t\tthis\r\n\t\t\t\t\t\t\t, barcodeStr\r\n\t\t\t\t\t\t\t, this.rxDataStorageService.IsFacility\r\n\t\t\t\t\t\t\t, true\r\n\t\t\t\t\t\t\t, this.isUser\r\n\t\t\t\t\t\t).subscribe(model => { this.processPatientInfo(model, barcodeStr, false); });\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t//Otherwise, there is a shipment\r\n\t\t\t\t\t\t// Passing in true, since it was scanned\r\n\t\t\t\t\t\tthis.inventoryService.getPatientInfo(\r\n\t\t\t\t\t\t\tthis\r\n\t\t\t\t\t\t\t, barcodeStr\r\n\t\t\t\t\t\t\t, this.id\r\n\t\t\t\t\t\t\t, true\r\n\t\t\t\t\t\t\t, this.isUser\r\n\t\t\t\t\t\t).subscribe(model => { this.processPatientInfo(model, barcodeStr, true); });\r\n\t\t\t\t\t}\r\n\t\t\t\t} else { this.emitScan(barcodeStr); }\r\n\t\t\t} else {\r\n\t\t\t\tthis.scanSuccessFromList.emit(barcodeStr);\r\n\t\t\t\tthis.scanSuccess.emit(barcodeStr);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tprocessPatientInfo(\r\n\t\tmodel: PatientDataVm\r\n\t\t, barcodeStr: string\r\n\t\t, hasShipment: boolean\r\n\t) {\r\n\t\tif (!this.formatHelper.GetIsNully(model.errorMessage)) { this.ms.setSystemMessage(model.errorMessage, 'error'); } \r\n\t\telse if (this.formatHelper.GetIsNully(model.lastName)) { this.ms.setSystemMessage('Invalid Rx Number was entered.', 'error'); }\r\n\t\tthis.formGroup.patchValue(model);\r\n\t\tthis.model = model;\r\n\t\tif (hasShipment) { this.emitScan(barcodeStr); } \r\n\t\telse {\r\n\t\t\tthis.rxDataStorageService.PatientData = model;\r\n\t\t\tthis.emitScan(barcodeStr, model);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function emits the scan events that can be used by other components\r\n\t * @param barcode The string (RxNumber) that was parsed from the barcode\r\n\t*/\r\n\temitScan(\r\n\t\tbarcode: string\r\n\t\t, patientListDataModel: PatientDataVm = null\r\n\t) {\r\n\t\tif (patientListDataModel !== null) {\r\n\t\t\tthis.beepSuccess?.play();\r\n\t\t\tthis.scanSuccessInventoryList?.emit(patientListDataModel);\r\n\t\t} else if (\r\n\t\t\tbarcode !== null \r\n\t\t\t&& barcode !== ''\r\n\t\t) {\r\n\t\t\tthis.beepSuccess?.play();\r\n\t\t\tthis.scanSuccess?.emit(this.model);\r\n\t\t} else {\r\n\t\t\tthis.beepError?.play();\r\n\t\t\tthis.scanError?.emit(this.model);\r\n\t\t}\r\n\t\tthis.scan?.emit(this.model);\r\n\t}\r\n}\r\n","\r\n\r\n
\r\n\t
\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n
","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { PcgSelectComponent } from 'app/shared/form-elements/components/pcg-select-component/select.component';\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { PatientDataVm } from 'app/shared/generated/Models/PatientDataVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { SecurityService } from '../../core/security/security.service';\r\nimport { RxDataStorageService } from '../services/rx-data-storage.service';\r\n\r\n@Component({\r\n selector: 'pcg-inv-choice-modal',\r\n templateUrl: './inv-choice-modal.component.html',\r\n styleUrls: ['./inv-choice-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class InvChoiceModalComponent implements OnInit {\r\n\r\n\t@Input() modal: any;\r\n\tselectPfsForm: PcgSelectComponent;\r\n\r\n\tpatientDataFormGroup = PatientDataVm.Form;\r\n\tpatientDataModel = PatientDataVm.GetModel(this.patientDataFormGroup);\r\n\tmodel: PatientDataVm;\r\n\r\n\thasMultipleInvChoices = false;\r\n\ttitle = \"Create New\";\r\n\tsubTitle: string;\r\n\r\n\tcanEdit: boolean;\r\n\r\n\tconstructor(\r\n\t\tprivate sec: SecurityService\r\n\t\t, public router: Router\r\n\t\t, private ms: SystemMessageService\r\n\t\t, public rxDataStorageService: RxDataStorageService\r\n\t\t, private httpClient: HttpClient\r\n\t\t, private formatHelper: FormatHelperService\r\n\t) {\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.canEdit = this.sec?.hasModuleAccess([BusinessAreaEnum.Inventory], SecurityService.setMinRole(PermissionRole.Technician));\r\n\t\tthis.subTitle = this.rxDataStorageService.IsFacility \r\n\t\t\t? \"CI/CHD Delivery\" \r\n\t\t\t: \"Home Delivery\";\r\n\t\tthis.title = \"Create New \" + this.subTitle;\r\n\t}\r\n\r\n\tscanSuccessInventoryList($event: PatientDataVm) {\r\n\t\tif (!this.formatHelper.GetIsNully($event.errorMessage)) { this.ms.setSystemMessage($event.errorMessage, 'error'); }\r\n\t\telse if ($event.inventories?.length === 0) {\r\n\t\t\tthis.ms.setSystemMessage(\r\n\t\t\t\t`Product NDC (${this.formatHelper.FormatNdc($event.ndc)}) not found for any inventory. Please add the NDC to an inventory.`\r\n\t\t\t\t, 'warning'\r\n\t\t\t);\r\n\t\t} else if ($event.inventories?.length === 1) {\r\n\t\t\t//Head straight to a new RxFulfillment\r\n\t\t\tthis.chooseInventory($event.inventories[0].inventorySiteId, $event.inventories[0].inventoryName);\r\n\t\t} else if ($event.inventories?.length > 1) {\r\n\t\t\t//Set the modal up for the user to select an inventory choice\r\n\t\t\tthis.title = \"Choose an Inventory for \" + this.subTitle;\r\n\t\t\tthis.hasMultipleInvChoices = true;\r\n\t\t\tthis.model = $event;\r\n\t\t} else { this.ms.setSystemMessage(`There were no inventories found for Rx ${$event.rxNumber}`, 'error'); }\r\n\t}\r\n\r\n\tchooseInventory(\r\n\t\tinvId: number\r\n\t\t, invName: string\r\n\t) {\r\n\t\tlet isConfirmed = true;\r\n\r\n\t\tif (this.hasMultipleInvChoices) { isConfirmed = confirm(`Inventory: ${invName} was selected. Is this the correct inventory?`); }\r\n\r\n\t\tif (!isConfirmed) { return null; }\r\n\t\telse {\r\n\t\t\tconst patientData: PatientDataVm = this.rxDataStorageService.PatientData;\r\n\t\t\tpatientData.isFacility = this.rxDataStorageService.IsFacility;\r\n\t\t\t\r\n\t\t\tthis.httpClient.post(`api/Inventory/QS1/ValidateAndSaveRxData/?inventorySiteId=${invId}`, patientData)\r\n\t\t\t\t.subscribe((returnData: PatientDataVm) => {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\treturnData.errorMessage === null \r\n\t\t\t\t\t\t|| returnData.errorMessage === undefined\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t//Need to write over the old patient data since there is a facility address check that may provide new info not available ealier\r\n\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\treturnData.address !== patientData.address \r\n\t\t\t\t\t\t\t|| returnData.address2 !== patientData.address2 \r\n\t\t\t\t\t\t\t|| returnData.city !== patientData.city\r\n\t\t\t\t\t\t\t|| returnData.state !== patientData.state \r\n\t\t\t\t\t\t\t|| returnData.zip !== patientData.zip\r\n\t\t\t\t\t\t) { this.rxDataStorageService.PatientData = returnData; }\r\n\r\n\t\t\t\t\t\t//Now that validation has passed, and a shipment has been created, we can navigate to it\r\n\t\t\t\t\t\tthis.router.navigateByUrl('/pharmacy/inventories/fulfillment/edit/'\r\n\t\t\t\t\t\t\t+ encodeURIComponent(`${returnData.shipmentId}`) + '/' + encodeURIComponent(`${invId}`));\r\n\t\t\t\t\t\tthis.modal?.dismiss();\r\n\t\t\t\t\t} else { this.ms.setSystemMessage(returnData.errorMessage, 'error'); }\r\n\t\t\t\t},\r\n\t\t\t\t(error) => {//Dismiss the modal if security was revoked\r\n\t\t\t\t\tthis.modal.dismiss();\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n}\r\n","
\r\n\t
\r\n\t\t
{{ title }}
\r\n\t\t\r\n\t
\r\n\t\r\n\t@if (!this.hasMultipleInvChoices) {\r\n\t\t
\r\n\t\t\t

Warning: Scanning an Rx here will create a fulfillment.

\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t} @else {\r\n\t\t\r\n\t\t
\r\n\t\t\t

Multiple inventories contain the NDC for this Rx. Please choose the inventory to fill the prescription from.

\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\t\r\n\t}\r\n\r\n\t
\r\n\t\t\r\n\t
\r\n
","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faFilePrescription, faRandom, faStepForward } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { ShipmentListRxModalVm } from 'app/shared/generated/Inventory/Models/Shipping/ShipmentListRxModalVm';\r\n\r\n@Component({\r\n selector: 'pcg-shipment-list-rx-modal',\r\n templateUrl: './shipment-list-rx-modal.component.html',\r\n styleUrls: ['./shipment-list-rx-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class ShipmentListRxModalComponent implements OnInit {\r\n\r\n\t@Input() shipmentId: number;\r\n\t@Input() modal: any;\r\n\t@Input() isUser: boolean = false;\r\n\r\n\t@Output() reloadTable = new EventEmitter();\r\n\r\n\trxList: ShipmentListRxModalVm[] = [];\r\n\tisEmpty = false;\r\n\t\r\n\tfaTransfer = faRandom;\r\n\tfaEOS = faStepForward;\r\n\tfaEarlyRx = faFilePrescription;\r\n\r\n\tconstructor(\r\n private http: HttpClient\r\n , private ms: SystemMessageService\r\n ) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.http.get(\r\n\t\t\t`api/Inventory/${this.isUser ? 'RxFulfillmentUser' : 'Shipping'}/GetShipmentListRxs?shipmentId=${this.shipmentId}`\r\n\t\t).subscribe((rxListResult: ShipmentListRxModalVm[]): void => {\r\n\t\t\tif (rxListResult === null) {\r\n\t\t\t\tthis.ms.setSystemMessage(\"The shipment you selected does not exist. Table has been updated.\", \"warning\");\r\n\t\t\t\tthis.reloadTable.emit();\r\n\t\t\t} else {\r\n\t\t\t\tthis.rxList = rxListResult;\r\n\t\t\t\tthis.isEmpty = this.rxList.length === 0;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n}\r\n","
\r\n\t
Prescriptions
\r\n\t
 | {{ rxList[0].pfsNumber }}
\r\n\t\r\n
\r\n\r\n
\r\n\t
\r\n\t\t
\r\n = EOS\r\n
\r\n\t\t
\r\n = Early Refill\r\n
\r\n\t\t
\r\n = Transfer\r\n
\r\n\t
\r\n\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t
RxFirst NameLast NameProductPFS Flags
{{ row.rxNumber }}{{ row.patientFirstName }}{{ row.patientLastName }}{{ row.productName }}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\r\n\t

There are no Rx's assigned to this fulfillment.

\r\n
","import {\r\n\tfaBell as faBellRegular,\r\n\tfaComments as faCommentsRegular\r\n} from '@fortawesome/pro-regular-svg-icons';\r\nimport {\r\n\tfaAddressBook,\r\n\tfaAddressCard,\r\n\tfaArrowRightArrowLeft,\r\n\tfaBell,\r\n\tfaBoxOpen,\r\n\tfaClock,\r\n\tfaComments,\r\n\tfaExclamation,\r\n\tfaExclamationCircle,\r\n\tfaExclamationTriangle,\r\n\tfaHourglassEnd,\r\n\tfaHourglassHalf,\r\n\tfaPlus,\r\n\tfaPrescription,\r\n\tfaPrescriptionBottle,\r\n\tfaPrescriptionBottleAlt,\r\n\tfaSearch,\r\n\tfaSun,\r\n\tfaUser,\r\n\tfaUserMd\r\n} from \"@fortawesome/pro-solid-svg-icons\";\r\n\r\n\r\nexport class FaIconName {\r\n faBell= faBell;\r\n faUser= faUser;\r\n faSearch= faSearch;\r\n faPrescription= faPrescription; \r\n faPrescriptionBottle= faPrescriptionBottle;\r\n faBoxOpen= faBoxOpen;\r\n faUserMd= faUserMd;\r\n faPrescriptionBottleAlt= faPrescriptionBottleAlt;\r\n faSun= faSun;\r\n faHourglassEnd = faHourglassEnd;\r\n faClock = faClock;\r\n faHourglassHalf = faHourglassHalf;\r\n\tfaComments = faComments;\r\n\tfaExclamationCircle = faExclamationCircle;\r\n\tfaExclamation = faExclamation;\r\n\tfaExclamationTriangle = faExclamationTriangle;\r\n\tfaAddressBook = faAddressBook;\r\n\tfaAddressCard = faAddressCard;\r\n\tfaCommentsRegular = faCommentsRegular;\r\n\tfaBellRegular = faBellRegular;\r\n\tfaPlus = faPlus;\r\n\tfaArrowRightArrowLeft = faArrowRightArrowLeft\r\n}\r\n","export enum FaPositionUnits{\r\n percent,\r\n emphemeral,\r\n pixels\r\n}\r\nexport class FaIconPosition {\r\n\r\n constructor(topVal: number = null, rightVal = null, bottomVal = null, leftVal = null, units: FaPositionUnits = null) {\r\n this.top = topVal;\r\n this.right = rightVal;\r\n this.bottom = bottomVal;\r\n this.left = leftVal;\r\n this.positionUnits = units;\r\n }\r\n top?: number;\r\n right?: number;\r\n bottom?: number;\r\n left?: number;\r\n positionUnits: FaPositionUnits;\r\n\r\n getMyPositionUnits(): string{\r\n return FaIconPosition.getPositionUnits(this.positionUnits);\r\n }\r\n static getPositionUnits(units: FaPositionUnits): string{\r\n switch(units){\r\n case FaPositionUnits.percent:\r\n return '%';\r\n case FaPositionUnits.emphemeral:\r\n return 'em';\r\n case FaPositionUnits.pixels:\r\n return 'px';\r\n default:\r\n return '%';\r\n }\r\n }\r\n static getPositionPropValue = (value: number, unitString: string): string => `${value}${unitString}`;\r\n}\r\n","//When adding a color to this enum, make sure to add a case to the switch in ../fa-num-icon.component.ts\r\nexport enum FaNumColor {\r\n success,\r\n warning,\r\n danger,\r\n info,\r\n secondary,\r\n other\r\n}\r\n","import { Injectable, signal } from '@angular/core';\r\nimport { UntilDestroy } from '@ngneat/until-destroy';\r\n\r\n@UntilDestroy()\r\n@Injectable({ providedIn: 'root' })\r\nexport class GlobalVariablesService { \r\n \r\n pharmInvName = signal(\"\");\r\n invName = signal(\"\");\r\n isNavFixed = signal(false);\r\n}\r\n","import { StepperSelectionEvent } from \"@angular/cdk/stepper\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { AfterContentChecked, AfterViewInit, ChangeDetectorRef, Component, HostListener, OnDestroy, OnInit, ViewChild } from \"@angular/core\";\r\nimport { Title } from \"@angular/platform-browser\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { faComments } from \"@fortawesome/pro-regular-svg-icons\";\r\nimport { faCheck, faLevelDownAlt, faTimes, faTruck } from \"@fortawesome/pro-solid-svg-icons\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\nimport { PcgSelectComponent } from 'app/shared/form-elements/components/pcg-select-component/select.component';\r\nimport { SelectItem } from 'app/shared/models/select-item';\r\nimport { BusinessAreaEnum } from \"app/core/enums/generated/BusinessAreaEnum\";\r\nimport { PermissionRole } from \"app/core/enums/generated/PermissionRole\";\r\nimport { SecurityService } from \"app/core/security/security.service\";\r\nimport { SystemMessage, SystemMessageService } from \"app/core/system-message/system-message-service\";\r\nimport { GlobalVariablesService } from \"app/services/global-variables.service\";\r\nimport { FaIconName } from \"app/shared/fa-num-icon/fa-icon-name/fa-icon-name\";\r\nimport { FaIconPosition, FaPositionUnits } from \"app/shared/fa-num-icon/fa-icon-position/fa-icon-position\";\r\nimport { FaNumColor } from \"app/shared/fa-num-icon/fa-num-color/fa-num-color.enum\";\r\nimport { EditShipmentVm } from \"app/shared/generated/Inventory/Models/Shipping/EditShipmentVm\";\r\nimport { FormatHelperService } from \"app/shared/helpers/format-helper.service\";\r\nimport { StepperComponent } from \"app/shared/stepper/stepper.component\";\r\nimport { RxFulfillmentPackagesComponent } from \"./helpers/packages/rx-fulfillment-packages.component\";\r\nimport { RxFulfillmentPrescriptionsComponent } from \"./helpers/prescriptions/rx-fulfillment-prescriptions.component\";\r\nimport { QcCheckComponent } from \"./helpers/qc-check/qc-check.component\";\r\nimport { SubmitComponent } from \"./helpers/submit/submit.component\";\r\nimport { ConfirmationModalComponent } from \"app/shared/form-elements/components/confirmation-modal/confirmation-modal.component\";\r\nimport { NotificationService } from \"app/notification.service\";\r\nimport { UserJsVm } from \"app/shared/generated/Administration/Models/Users/UserJsVm\";\r\n\r\n@Component({\r\n selector: \"pcg-edit-rx-fulfillment\",\r\n templateUrl: \"./edit-rx-fulfillment.component.html\",\r\n styleUrls: [\"./edit-rx-fulfillment.component.scss\"],\r\n standalone: false\r\n})\r\nexport class EditRxFulfillmentComponent implements OnInit, OnDestroy, AfterContentChecked, AfterViewInit {\r\n\r\n\t@ViewChild(\"stepper\", { static: true }) stepper: StepperComponent;\r\n\t@ViewChild(\"packages\") packages: RxFulfillmentPackagesComponent;\r\n\t@ViewChild(\"prescriptions\") prescriptions: RxFulfillmentPrescriptionsComponent;\r\n\t@ViewChild(\"qcCheck\") qcCheck: QcCheckComponent;\r\n\t@ViewChild(\"submit\") submit: SubmitComponent;\r\n\t@ViewChild(\"printerSelect\", { static: true }) printerSelect: PcgSelectComponent;\r\n\r\n\t// IDs\r\n\tinventoryId: number;\r\n\tshipmentId: number;\r\n\tcurrentStep: number;\r\n\tselectedStep: number;\r\n\tcommentsCount = 0;\r\n\tshipmentPrinterId: number;\r\n\tuserId: number;\r\n\r\n\tisComplete: boolean;\r\n\tisNotActive: boolean;\r\n\tisFacility: boolean;\r\n\tcanEditDeliveryType = false;\r\n\tcanEdit: boolean;\r\n\tcanEditQc: boolean;\r\n\tauditHistoryAccess: boolean;\r\n\tisPcg: boolean;\r\n\tisUser: boolean = false;\r\n\tuserSubmitted: boolean = false;\r\n\r\n\tinventorySiteName: string;\r\n\tdataSource = \"api/Inventory/Shipping/GetShipment/\";\r\n\tbackLink = \"/pharmacy/fulfillment/list\";\r\n facilityName: string;\r\n\t\r\n\tprinterSelectItem: SelectItem;\r\n user: UserJsVm;\r\n\r\n\tfaTruck = faTruck;\r\n\tfaLevelDownAlt = faLevelDownAlt;\r\n\tfaCheck = faCheck;\r\n\tfaTimes = faTimes;\r\n\tfaComments = faComments;\r\n\tcommentPosition: FaIconPosition = new FaIconPosition(\r\n\t\t-10\r\n\t\t, 10\r\n\t\t, null\r\n\t\t, null\r\n\t\t, FaPositionUnits.pixels\r\n\t);\r\n\tfaNumColor: typeof FaNumColor = FaNumColor;\r\n\tfaIconName: FaIconName = new FaIconName();\r\n\r\n\tconstructor(\r\n\t\ttitle: Title\r\n\t\t, private route: ActivatedRoute\r\n\t\t, private httpClient: HttpClient\r\n\t\t, private sec: SecurityService\r\n\t\t, public modalService: NgbModal\r\n\t\t, private ms: SystemMessageService\r\n\t\t, private router: Router\r\n\t\t, private gvs: GlobalVariablesService\r\n\t\t, private cdRef: ChangeDetectorRef\r\n , private notificationService: NotificationService\r\n\t) {\r\n\t\tthis.auditHistoryAccess = sec.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.Inventory ]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t);\r\n\t\tthis.canEdit = sec.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.Inventory ]\r\n\t\t\t, [ PermissionRole.Technician, PermissionRole.Pharmacist ]\r\n\t\t\t, false\r\n\t\t);\r\n\t\tthis.canEditQc = sec.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.Inventory ]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t);\r\n this.user = this.sec.getUser();\r\n this.userId = this.user?.id;\r\n\t\tthis.isUser = this.user?.isRxUser;\r\n\t\tif (this.isUser) {\r\n\t\t\tthis.dataSource = \"api/Inventory/RxFulfillmentUser/GetShipment/\";\r\n\t\t\tthis.backLink = \"/pharmacy/fulfillment/list\";\r\n title.setTitle(\"Edit Refill Request\");\r\n\t\t} else { \r\n this.backLink = \"/pharmacy/inventories/fulfillment/list/\" + this.inventoryId; \r\n title.setTitle(\"Edit Rx Fulfillment\");\r\n }\r\n\t}\r\n\r\n\t//This host listener makes it so that the post fires even when the browser or tab closes\r\n\t@HostListener(\"window:beforeunload\", [\"$event\"])\r\n\tbeforeunloadHandler(event) { this.closeUserFromFulfillment(this.userId); }\r\n\r\n\tngOnInit() {\r\n\t\tthis.shipmentId = parseInt(this.route.snapshot.paramMap.get(\"id\"), 10);\r\n\t\tthis.inventoryId = parseInt(this.route.snapshot.paramMap.get(\"inventoryId\"), 10);\r\n\t\tthis.isPcg = this.sec.getUser().email?.includes(\"paulconsulting\");\t\t\r\n\t}\r\n\r\n\tngAfterViewInit() { this.getDetails(); this.cdRef.detectChanges(); }\r\n\tngAfterContentChecked() { this.cdRef.detectChanges(); }\r\n\r\n\treloadContent(event: StepperSelectionEvent) {\r\n\t\tthis.selectedStep = event.selectedIndex;\r\n\t\tif (event.selectedIndex === 2) {\r\n\t\t\tthis.qcCheck.rxNumberSelect.clear();\r\n\t\t\tthis.qcCheck.rxNumberSelect.getData();\r\n\t\t\tthis.qcCheck.rxNumberSelect.triggerChanged();\r\n\t\t\tthis.qcCheck.focusRx();\r\n\t\t\tthis.getPrinter();\r\n\t\t}\r\n\t\tif (event.selectedIndex === 3) { this.getPrinter(); }\r\n\t}\r\n\r\n\topenCommentsModal(\r\n\t\tmodal: any\r\n\t\t, shipmentId: number\r\n\t) {\r\n\t\tthis.shipmentId = shipmentId;\r\n\t\tthis.modalService.open(\r\n\t\t\tmodal\r\n\t\t\t, {\r\n\t\t\t\tanimation: false\r\n\t\t\t\t, beforeDismiss: () => {\r\n\t\t\t\t\tthis.getDetails();\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tgetDetails() {\r\n\t\tthis.httpClient.get(this.dataSource + this.shipmentId)\r\n\t\t\t.subscribe((model: EditShipmentVm) => {\r\n\t\t\t\tif (model !== null) {\t\t\t\t\t\r\n\t\t\t\t\tthis.currentStep = model.currentStep;\r\n\t\t\t\t\tthis.commentsCount = model.commentsCount;\r\n\t\t\t\t\tthis.setCurrentStep();\r\n\t\t\t\t\tthis.isComplete = this.currentStep === 4;\r\n\t\t\t\t\tif (this.submit) { \r\n\t\t\t\t\t\tthis.submit.isSuccessful = this.isComplete;\r\n\t\t\t\t\t\tthis.submit.hideShowSelection(); \r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.isFacility = model.isFacility;\r\n\t\t\t\t\tthis.userSubmitted = model.userSubmitted;\r\n\t\t\t\t\tthis.canEditDeliveryType = model.canEditDeliveryType;\r\n\t\t\t\t\tthis.inventorySiteName = model.inventoryName;\r\n\t\t\t\t\tthis.gvs.pharmInvName.set(this.inventorySiteName);\r\n\t\t\t\t\tthis.isNotActive = model.isNotActive;\r\n this.facilityName = model.facilityName;\r\n\t\t\t\t\tif (\r\n !FormatHelperService.GetIsNullyOrWhitespace(model.openUsersWarningMessage)\r\n && !this.isUser\r\n ) { this.ms.setSystemMessage(model.openUsersWarningMessage, \"warning\"); }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n setActivation() {\r\n const modal = this.modalService.open(ConfirmationModalComponent);\r\n modal.componentInstance.modalRef = modal;\r\n modal.componentInstance.confirmationMessage = \r\n\t\t`

Are you sure you want to ${this.isNotActive ? \"activate\" : \"deactivate\"} this fulfillment?

`;\r\n\t\tif(!this.isNotActive) {\r\n modal.componentInstance.confirmationMessage +=`

This will:
\r\n

    \r\n
  • Void all package labels that have not yet been shipped
  • \r\n
  • Remove all Rx's from the fulfillment
  • \r\n
  • Return all products to the inventory
  • \r\n
\r\n

`;\r\n }\r\n\r\n // If user continues:\r\n modal.result.then((emittedValue) => {\r\n if (emittedValue) { \r\n\t\t\t\t// Activate fulfillment\r\n if (this.isNotActive) {\r\n this.httpClient.get(`api/Inventory/Shipping/SetFulfillmentActivation?id=${this.shipmentId}`)\r\n .subscribe((msg: SystemMessage) => {\r\n this.notificationService.showMessage(msg.message, msg.messageClass);\r\n this.isNotActive = msg.value;\r\n });\r\n } \r\n // Deactivate fulfillment\r\n else {\r\n this.httpClient.get(`api/Inventory/Shipping/DeactivateFulfillment?id=${this.shipmentId}`)\r\n .subscribe((msg: SystemMessage) => {\r\n this.notificationService.showMessage(msg.message, msg.messageClass);\r\n if(msg.isSuccessful) {\r\n this.isNotActive = msg.value;\r\n // Page reload to reset stepper and child components\r\n window.location.reload();\r\n }\r\n });\r\n }\r\n\t\t\t} \r\n }).catch(err => {\r\n // Prevents Uncaught (in promise) error when user \r\n // closes modal from clicking outside modal. \r\n });\r\n\t}\r\n\r\n\tundoQcCheck() {\r\n\t\tthis.currentStep = 2;\r\n\t\tthis.setCurrentStep();\r\n\t}\r\n\r\n\tsetCurrentStep() {\r\n\t\t// set the current step to Done if its set to 4, other wise set to the current step\r\n\t\tif (!this.isUser) { setTimeout(() => { this.stepper.selectedIndex = this.currentStep !== 4 ? this.currentStep : 3; }, 1); }\t\t\r\n\t}\r\n\r\n\tcompleteStep1() {\r\n\t\tif (\r\n\t\t\tthis.isComplete \r\n\t\t\t|| this.qcCheck?.qcCheckComplete\r\n\t\t) { this.stepper.next(); } \r\n\t\telse if (this.stepper.selectedIndex === 0) {\r\n\t\t\tthis.currentStep = 1;\r\n\t\t\tthis.setCurrentStep();\r\n\t\t\tthis.qcCheck.getQcCheck();\r\n\t\t\tthis.qcCheck.rxNumberSelect.getData();\r\n\t\t}\r\n\t}\r\n\r\n\tuncompleteStep1() { if (this.currentStep > 0) { this.currentStep = 0; } }\r\n\r\n\t// Move on to step 3 after continue button is hit in step 2\r\n\tcompleteStep2() {\r\n\t\tif (\r\n\t\t\t!this.canEditQc \r\n\t\t\t&& !this.qcCheck?.qcCheckComplete\r\n\t\t) { this.router.navigateByUrl(\"/pharmacy/fulfillment/list\"); }\r\n\t\tif (\r\n\t\t\tthis.isComplete \r\n\t\t\t|| this.qcCheck?.qcCheckComplete\r\n\t\t) { this.stepper.next(); } \r\n\t\telse if (this.stepper.selectedIndex === 1) {\r\n\t\t\tthis.currentStep = 2;\r\n\t\t\tthis.setCurrentStep();\r\n\t\t}\r\n\t\tthis.qcCheck.reloadPage();\r\n\t}\r\n\r\n\tcloseUserFromFulfillment(userId: number) {\r\n\t\treturn this.httpClient.post(`api/Account/CloseUserFromFulfillment/?fulfillmentId=${this.shipmentId}&userId=${userId}`, {}).subscribe();\r\n\t}\r\n\r\n\t// Move on to step 4 after continue button is hit in step 3\r\n\tcompleteStep3() {\r\n\t\tif (this.isComplete) { this.stepper.next(); }\r\n\t\tif (\r\n\t\t\tthis.stepper.selectedIndex === 2 \r\n\t\t\t&& this.qcCheck?.qcCheckComplete\r\n\t\t) {\r\n\t\t\tif (this.currentStep < 3) { this.currentStep = 3; }\r\n\t\t\tthis.setCurrentStep();\r\n\t\t\tthis.submit.submit();\r\n\t\t}\r\n\t}\r\n\r\n\tsubmitShipment() {\r\n\t\tthis.currentStep = 4;\r\n\t\tthis.isComplete = true;\r\n\t}\r\n\r\n\t// Keeps the packages table on step 4 in sync with changes from step 2\r\n\treloadStep4() { if (this.submit) { this.submit.table.ajaxReload(); } }\r\n\r\n\tchangeDeliveryType() {\r\n\t\tconst deliveryType = this.isFacility \r\n\t\t\t? \"Home Delivery\" \r\n\t\t\t: \"CI/CHD Delivery\";\r\n\t\tif (confirm(\"Are you sure you want to change the delivery type to \" + deliveryType + \"?\")) {\r\n\t\t\tthis.httpClient\r\n\t\t\t\t.get(`api/Inventory/Shipping/ChangeShipmentDeliveryType/?shipmentId=${this.shipmentId}&isFacility=${!this.isFacility}`)\r\n\t\t\t\t.subscribe((msg: SystemMessage) => {\r\n\t\t\t\t\tthis.ms.setSystemMessage(msg.message, msg.messageClass);\r\n\t\t\t\t\tif (msg.isSuccessful) { this.isFacility = !this.isFacility; }\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\tsavePrinter() {\r\n\t\tif (this.printerSelect.value !== null) {\r\n\t\t\tif (this.printerSelect.additionalData === 1) { sessionStorage.setItem(\"fedexPrinter\", this.printerSelect.value); } \r\n\t\t\telse { sessionStorage.setItem(\"upsPrinter\", this.printerSelect.value); }\r\n\t\t}\r\n\t}\r\n\r\n\tgetPrinter() {\r\n\t\tconst fedexPrinter: number = +sessionStorage.getItem(\"fedexPrinter\");\r\n\t\tconst upsPrinter: number = +sessionStorage.getItem(\"upsPrinter\");\r\n\t\tthis.shipmentPrinterId = null;\r\n\t\tthis.httpClient.get(`api/Select/ShipmentPrinters?shipmentId=${this.shipmentId}`)\r\n\t\t\t.subscribe((items: SelectItem[]) => {\r\n\t\t\t\tthis.printerSelect.clear();\r\n\t\t\t\tthis.printerSelect.sourceItems = this.printerSelect.items = items;\r\n\t\t\t\tif (\r\n\t\t\t\t\tthis.printerSelect.items.find((o) => o.additionalData === 1) !== undefined\r\n\t\t\t\t\t&& this.printerSelect.items.find((o) => o.value === fedexPrinter) !== undefined\r\n\t\t\t\t) { this.setPrinter(fedexPrinter); } \r\n\t\t\t\telse if (\r\n\t\t\t\t\tthis.printerSelect.items.find((o) => o.additionalData === 2) !== undefined\r\n\t\t\t\t\t&& this.printerSelect.items.find((o) => o.value === upsPrinter) !== undefined\r\n\t\t\t\t) { this.setPrinter(upsPrinter); }\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tsetPrinter(id: number) {\r\n\t\tif (this.printerSelect.items.find((o) => o.value === id) !== undefined) { this.printerSelect.value = id; }\r\n\t}\r\n\r\n\t// Open packing slip in new window\r\n\tgetPackingSlip() { \r\n\t\tlocalStorage.setItem(\"isNavFixed\", \"false\");\r\n\t\twindow.open(`/pharmacy/inventories/fulfillment/packing-slip/${this.shipmentId}`, \"_blank\"); \r\n\t}\r\n\r\n\ttestZebraApi() {\r\n\t\tthis.httpClient.get(`api/Zebra/ZebraTest`)\r\n\t\t\t.subscribe((sm: SystemMessage) => { this.ms.setSystemMessage(sm.message, sm.messageClass); }\r\n\t\t);\r\n\t}\r\n\r\n\tngOnDestroy() { this.closeUserFromFulfillment(this.userId); }\r\n}\r\n","\r\n\r\n\r\n\t\r\n\r\n\r\n@if (isNotActive) {
This fulfillment has been deactivated. Click the checkmark to reactivate it.
}\r\n\r\n
\r\n\t
\r\n\t\t
\r\n @if (!isUser) {\r\n \r\n {{ shipmentId === 0 ? \"Create\" : \"Edit\" }} Rx {{ isFacility ? \"CI/CHD\" : \"Home\" }} Fulfillment\r\n @if (shipmentId) { | {{ shipmentId }} }\r\n \r\n } @else {\r\n \r\n {{ shipmentId === 0 ? \"Create\" : \"Edit\" }} {{ facilityName }} Refill Request\r\n @if (shipmentId) { | {{ shipmentId }} }\r\n \r\n }\r\n\t\t
\r\n\t
\r\n\r\n\t@if (\r\n\t\tcurrentStep >=2 \r\n\t\t&& isPcg\r\n\t) {\r\n\t\t\r\n\t}\r\n\r\n\t
\r\n\t\t\r\n\t
\r\n\r\n\t
\r\n\t\t@if (canEditDeliveryType) {\r\n\t\t\t\r\n\t\t}\r\n\t\t@if (currentStep >=2) {\r\n\t\t\t\r\n\t\t}\r\n\t\t\r\n\t\t@if (auditHistoryAccess) {\r\n\t\t\t\r\n\t\t}\r\n\t\t@if (!isUser) {\r\n\t\t\t@if (isNotActive) {\r\n\t\t\t\t\r\n\t\t\t} @else {\t\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t}\r\n\t
\r\n
\r\n
\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t@if (\r\n\t\t\tselectedStep == 0 \r\n\t\t\t|| selectedStep == undefined \r\n\t\t\t|| !selectedStep\r\n\t\t\t|| isUser\r\n\t\t) {\r\n\t\t\t\r\n\t\t}\t\t\r\n\t\r\n\r\n\t@if (!isUser) {\r\n\t\t\r\n\t\t\t\r\n\t\t\t@if (selectedStep == 1) {\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\nimport { ShipmentCommentListVm, ShipmentCommentListVmFromFg } from '../../../Inventory/Models/Shipping/ShipmentCommentListVm';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class ShipmentCommentVm {\r\n\tshipmentCommentId: number;\r\n\tshipmentId?: number;\r\n\tpfsFormID?: number;\r\n\tcomment?: string;\r\n\tcommentorInfo?: string;\r\n\tcommentDateTime: Date;\r\n\tstrCommentDateTime?: string;\r\n\tstrTimeAgo?: string;\r\n\tcountPfsFormIds: number;\r\n\tpfsUrl?: string;\r\n\tcurrentStep: number;\r\n\tcommentList?: ShipmentCommentListVm[];\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'shipmentCommentId': new UntypedFormControl(0, [...(validators['shipmentCommentId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'shipmentId': new UntypedFormControl(null, [...(validators['shipmentId'] ?? []), ...[]]),\r\n\t\t\t'pfsFormID': new UntypedFormControl(null, [...(validators['pfsFormID'] ?? []), ...[]]),\r\n\t\t\t'comment': new UntypedFormControl(null, [...(validators['comment'] ?? []), ...[Validators.required]]),\r\n\t\t\t'commentorInfo': new UntypedFormControl(null, [...(validators['commentorInfo'] ?? []), ...[]]),\r\n\t\t\t'commentDateTime': new UntypedFormControl('', [...(validators['commentDateTime'] ?? []), ...[Validators.required]]),\r\n\t\t\t'strCommentDateTime': new UntypedFormControl(null, [...(validators['strCommentDateTime'] ?? []), ...[]]),\r\n\t\t\t'strTimeAgo': new UntypedFormControl(null, [...(validators['strTimeAgo'] ?? []), ...[]]),\r\n\t\t\t'countPfsFormIds': new UntypedFormControl(0, [...(validators['countPfsFormIds'] ?? []), ...[Validators.required]]),\r\n\t\t\t'pfsUrl': new UntypedFormControl(null, [...(validators['pfsUrl'] ?? []), ...[]]),\r\n\t\t\t'currentStep': new UntypedFormControl(0, [...(validators['currentStep'] ?? []), ...[Validators.required]]),\r\n\t\t\t'commentList': new UntypedFormArray([])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['shipmentCommentId', {\"orderId\":0,\"sortColumn\":\"shipmentCommentId\",\"searchColumn\":\"shipmentCommentId\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Comment ID\",\"isVisible\":true,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['shipmentId', {\"orderId\":1,\"sortColumn\":\"shipmentId\",\"searchColumn\":\"shipmentId\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Fulfillment ID\",\"isVisible\":true,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['pfsFormID', {\"orderId\":2,\"sortColumn\":\"pfsFormID\",\"searchColumn\":\"pfsFormID\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"PFS Form ID\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['comment', {\"orderId\":3,\"sortColumn\":\"comment\",\"searchColumn\":\"comment\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Comment\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['commentorInfo', {\"orderId\":4,\"sortColumn\":\"commentorInfo\",\"searchColumn\":\"commentorInfo\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Commenter Info\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['commentDateTime', {\"orderId\":5,\"sortColumn\":\"commentDateTime\",\"searchColumn\":\"commentDateTime\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Comment Date\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): ShipmentCommentVmFromFg {\r\n\t\treturn new ShipmentCommentVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class ShipmentCommentVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget shipmentCommentId(): number {\r\n\t\treturn this.fg.get('shipmentCommentId').value;\r\n\t}\r\n\tset shipmentCommentId(val) {\r\n\t\tthis.fg.get('shipmentCommentId').setValue(val);\r\n\t}\r\n\r\n\tget shipmentId(): number {\r\n\t\treturn this.fg.get('shipmentId').value;\r\n\t}\r\n\tset shipmentId(val) {\r\n\t\tthis.fg.get('shipmentId').setValue(val);\r\n\t}\r\n\r\n\tget pfsFormID(): number {\r\n\t\treturn this.fg.get('pfsFormID').value;\r\n\t}\r\n\tset pfsFormID(val) {\r\n\t\tthis.fg.get('pfsFormID').setValue(val);\r\n\t}\r\n\r\n\tget comment(): string {\r\n\t\treturn this.fg.get('comment').value;\r\n\t}\r\n\tset comment(val) {\r\n\t\tthis.fg.get('comment').setValue(val);\r\n\t}\r\n\r\n\tget commentorInfo(): string {\r\n\t\treturn this.fg.get('commentorInfo').value;\r\n\t}\r\n\tset commentorInfo(val) {\r\n\t\tthis.fg.get('commentorInfo').setValue(val);\r\n\t}\r\n\r\n\tget commentDateTime(): Date {\r\n\t\treturn this.fg.get('commentDateTime').value;\r\n\t}\r\n\tset commentDateTime(val) {\r\n\t\tthis.fg.get('commentDateTime').setValue(val);\r\n\t}\r\n\r\n\tget strCommentDateTime(): string {\r\n\t\treturn this.fg.get('strCommentDateTime').value;\r\n\t}\r\n\tset strCommentDateTime(val) {\r\n\t\tthis.fg.get('strCommentDateTime').setValue(val);\r\n\t}\r\n\r\n\tget strTimeAgo(): string {\r\n\t\treturn this.fg.get('strTimeAgo').value;\r\n\t}\r\n\tset strTimeAgo(val) {\r\n\t\tthis.fg.get('strTimeAgo').setValue(val);\r\n\t}\r\n\r\n\tget countPfsFormIds(): number {\r\n\t\treturn this.fg.get('countPfsFormIds').value;\r\n\t}\r\n\tset countPfsFormIds(val) {\r\n\t\tthis.fg.get('countPfsFormIds').setValue(val);\r\n\t}\r\n\r\n\tget pfsUrl(): string {\r\n\t\treturn this.fg.get('pfsUrl').value;\r\n\t}\r\n\tset pfsUrl(val) {\r\n\t\tthis.fg.get('pfsUrl').setValue(val);\r\n\t}\r\n\r\n\tget currentStep(): number {\r\n\t\treturn this.fg.get('currentStep').value;\r\n\t}\r\n\tset currentStep(val) {\r\n\t\tthis.fg.get('currentStep').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class GenericCommentVm {\r\n\tid: number;\r\n\tparentId: number;\r\n\tcommentorInfo?: string;\r\n\tcommentDate: Date;\r\n\tcommentDateStr?: string;\r\n\tcommentText?: string;\r\n\tcommentUserId?: number;\r\n\tisEdit: boolean;\r\n\tisDelete: boolean;\r\n\tshowEditDelete: boolean;\r\n\tshowCommentDate: boolean;\r\n\tfriendlyId?: string;\r\n\thasSeen: boolean;\r\n\tpfsFormID?: number;\r\n\tpfsUrl?: string;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'id': new UntypedFormControl(0, [...(validators['id'] ?? []), ...[Validators.required]]),\r\n\t\t\t'parentId': new UntypedFormControl(0, [...(validators['parentId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'commentorInfo': new UntypedFormControl(null, [...(validators['commentorInfo'] ?? []), ...[Validators.maxLength(500)]]),\r\n\t\t\t'commentDate': new UntypedFormControl('', [...(validators['commentDate'] ?? []), ...[Validators.required]]),\r\n\t\t\t'commentDateStr': new UntypedFormControl(null, [...(validators['commentDateStr'] ?? []), ...[]]),\r\n\t\t\t'commentText': new UntypedFormControl(null, [...(validators['commentText'] ?? []), ...[Validators.maxLength(3000)]]),\r\n\t\t\t'commentUserId': new UntypedFormControl(null, [...(validators['commentUserId'] ?? []), ...[]]),\r\n\t\t\t'isEdit': new UntypedFormControl(false, [...(validators['isEdit'] ?? []), ...[]]),\r\n\t\t\t'isDelete': new UntypedFormControl(false, [...(validators['isDelete'] ?? []), ...[]]),\r\n\t\t\t'showEditDelete': new UntypedFormControl(false, [...(validators['showEditDelete'] ?? []), ...[]]),\r\n\t\t\t'showCommentDate': new UntypedFormControl(false, [...(validators['showCommentDate'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'hasSeen': new UntypedFormControl(false, [...(validators['hasSeen'] ?? []), ...[]]),\r\n\t\t\t'pfsFormID': new UntypedFormControl(null, [...(validators['pfsFormID'] ?? []), ...[]]),\r\n\t\t\t'pfsUrl': new UntypedFormControl(null, [...(validators['pfsUrl'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): GenericCommentVmFromFg {\r\n\t\treturn new GenericCommentVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class GenericCommentVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget id(): number {\r\n\t\treturn this.fg.get('id').value;\r\n\t}\r\n\tset id(val) {\r\n\t\tthis.fg.get('id').setValue(val);\r\n\t}\r\n\r\n\tget parentId(): number {\r\n\t\treturn this.fg.get('parentId').value;\r\n\t}\r\n\tset parentId(val) {\r\n\t\tthis.fg.get('parentId').setValue(val);\r\n\t}\r\n\r\n\tget commentorInfo(): string {\r\n\t\treturn this.fg.get('commentorInfo').value;\r\n\t}\r\n\tset commentorInfo(val) {\r\n\t\tthis.fg.get('commentorInfo').setValue(val);\r\n\t}\r\n\r\n\tget commentDate(): Date {\r\n\t\treturn this.fg.get('commentDate').value;\r\n\t}\r\n\tset commentDate(val) {\r\n\t\tthis.fg.get('commentDate').setValue(val);\r\n\t}\r\n\r\n\tget commentDateStr(): string {\r\n\t\treturn this.fg.get('commentDateStr').value;\r\n\t}\r\n\tset commentDateStr(val) {\r\n\t\tthis.fg.get('commentDateStr').setValue(val);\r\n\t}\r\n\r\n\tget commentText(): string {\r\n\t\treturn this.fg.get('commentText').value;\r\n\t}\r\n\tset commentText(val) {\r\n\t\tthis.fg.get('commentText').setValue(val);\r\n\t}\r\n\r\n\tget commentUserId(): number {\r\n\t\treturn this.fg.get('commentUserId').value;\r\n\t}\r\n\tset commentUserId(val) {\r\n\t\tthis.fg.get('commentUserId').setValue(val);\r\n\t}\r\n\r\n\tget isEdit(): boolean {\r\n\t\treturn this.fg.get('isEdit').value;\r\n\t}\r\n\tset isEdit(val) {\r\n\t\tthis.fg.get('isEdit').setValue(val);\r\n\t}\r\n\r\n\tget isDelete(): boolean {\r\n\t\treturn this.fg.get('isDelete').value;\r\n\t}\r\n\tset isDelete(val) {\r\n\t\tthis.fg.get('isDelete').setValue(val);\r\n\t}\r\n\r\n\tget showEditDelete(): boolean {\r\n\t\treturn this.fg.get('showEditDelete').value;\r\n\t}\r\n\tset showEditDelete(val) {\r\n\t\tthis.fg.get('showEditDelete').setValue(val);\r\n\t}\r\n\r\n\tget showCommentDate(): boolean {\r\n\t\treturn this.fg.get('showCommentDate').value;\r\n\t}\r\n\tset showCommentDate(val) {\r\n\t\tthis.fg.get('showCommentDate').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget hasSeen(): boolean {\r\n\t\treturn this.fg.get('hasSeen').value;\r\n\t}\r\n\tset hasSeen(val) {\r\n\t\tthis.fg.get('hasSeen').setValue(val);\r\n\t}\r\n\r\n\tget pfsFormID(): number {\r\n\t\treturn this.fg.get('pfsFormID').value;\r\n\t}\r\n\tset pfsFormID(val) {\r\n\t\tthis.fg.get('pfsFormID').setValue(val);\r\n\t}\r\n\r\n\tget pfsUrl(): string {\r\n\t\treturn this.fg.get('pfsUrl').value;\r\n\t}\r\n\tset pfsUrl(val) {\r\n\t\tthis.fg.get('pfsUrl').setValue(val);\r\n\t}\r\n}\r\n","import { AfterViewInit, Component, EventEmitter, HostListener, Input, OnInit, Output } from '@angular/core';\r\nimport { faMessages, faComments, faPen, faTrash, faSave, faCancel, faXmark, faPaperPlaneTop, faMessagePlus } from '@fortawesome/pro-solid-svg-icons';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { interval, Subscription } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { GlobalService } from 'app/shared/services/global.service';\r\nimport { UserJsVm } from '../generated/Administration/Models/Users/UserJsVm';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { GenericCommentVm } from '../generated/Models/GenericCommentVm';\r\nimport { SelectItem } from 'app/shared/models/select-item';\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\n\r\n@Component({\r\n selector: 'pcg-conversations',\r\n templateUrl: './conversations.component.html',\r\n styleUrls: ['./conversations.component.scss'],\r\n standalone: false\r\n})\r\nexport class ConversationsComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() parentId: number;\r\n @Input() getUrl = \"\";\r\n @Input() saveUrl = \"\";\r\n @Input() deleteUrl = \"\";\r\n @Input() isShowingConvo = true;\r\n @Input() header = \"Conversation\";\r\n @Input() useTemplateResponses = false;\r\n @Input() templateResponseApi = \"\";\r\n @Input() isAssignee = false;\r\n @Input() usesSidenav = false;\r\n @Input() showCommenterInfo = false;\r\n @Input() isHeros = false;\r\n @Input() herosId = null;\r\n @Input() herosPrimary: boolean = null;\r\n @Input() herosSecondary: boolean = null;\r\n @Input() herosTertiary: boolean = null;\r\n @Input() fromFulfillment: boolean = false;\r\n @Input() pfsFormId: number;\r\n @Input() statusClosed: boolean = false;\r\n @Input() autoRefresh: boolean = false;\r\n @Input() autoRefreshInterval = 10000;\r\n\r\n @Output() closeConvo = new EventEmitter();\r\n @Output() successDataReturn = new EventEmitter();\r\n @Output() deleteReturn = new EventEmitter();\r\n\r\n subscriptions = new Subscription();\r\n user: UserJsVm;\r\n commentList: GenericCommentVm[];\r\n templateItems: SelectItem[] = [];\r\n \r\n isCommentError = false;\r\n isMobile = false;\r\n\r\n commentErrorString = \"\";\r\n newCommentText = \"\";\r\n editCommentText = \"\";\r\n newTemplateId = \"\";\r\n isSysAdmin: boolean;\r\n \r\n faIconName = { \r\n faMessages\r\n , faComments\r\n , faPen\r\n , faTrash\r\n , faSave\r\n , faCancel\r\n , faXmark\r\n , faPaperPlaneTop\r\n , faMessagePlus \r\n };\r\n\r\n xDown = null;\r\n\tyDown = null;\r\n\r\n source = interval(this.autoRefreshInterval);\r\n subscribe = this.source.subscribe({\r\n next: () => { this.getComments(); }\r\n , complete: () => { this.getComments(); }\r\n });\r\n\r\n constructor(\r\n private sec: SecurityService\r\n , private httpClient: HttpClient\r\n , public sm: SystemMessageService\r\n , public router: Router\r\n ) { }\r\n\r\n @HostListener('window:resize')\r\n\tonResize() { this.isMobile = GlobalService.setIsMobile(window.innerWidth); }\r\n\r\n ngOnInit() {\r\n this.isMobile = GlobalService.setIsMobile(window.innerWidth);\r\n this.isShowingConvo = !this.isMobile;\r\n this.user = this.sec.getUser();\r\n this.isSysAdmin = this.sec.hasModuleAccess(\r\n [ BusinessAreaEnum.HelpDesk ]\r\n , SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n );\r\n this.getComments();\r\n if (!this.isSysAdmin) { this.useTemplateResponses = false; }\r\n if (\r\n this.useTemplateResponses === true \r\n && this.templateResponseApi !== \"\"\r\n ) { this.getTemplateItems(); }\r\n //event listeners for swiping away side nav in mobile\r\n\t\tdocument.addEventListener('touchstart', (evt) => this.handleTouchStart(evt), false); \r\n\t\tdocument.addEventListener('touchmove', (evt) => this.handleTouchMove(evt), false);\r\n if (this.autoRefresh === true) { this.subscribe; }\r\n }\r\n\r\n refreshConvo() {\r\n interval(this.autoRefreshInterval).pipe()\r\n .subscribe({\r\n next: () => { this.getComments(); }\r\n , complete: () => { this.getComments(); }\r\n });\r\n }\r\n\r\n ngAfterViewInit() { this.autoScroll(); }\r\n\r\n autoScroll() {\r\n setTimeout(() => {\r\n let elem = document.getElementById('divConvoMessages');\r\n if (elem !== null) { elem.scrollTop = elem.scrollHeight; }\r\n }, 100);\r\n }\r\n\r\n getComments() {\r\n this.httpClient.get(`${this.getUrl}?id=${this.parentId}`)\r\n .subscribe((list: GenericCommentVm[]) => { this.commentList = list; }); \r\n }\r\n\r\n getTemplateItems() {\r\n this.subscriptions.add(this.httpClient.get(`${this.templateResponseApi}`)\r\n .subscribe((items: SelectItem[]) => { this.templateItems = items; }));\r\n }\r\n\r\n templateChange(value) {\r\n if (value !== \"\") { \r\n var findItem = this.templateItems.find(o => o.value.toString() === value);\r\n this.newCommentText = findItem?.additionalData?.responseMessage; \r\n }\r\n }\r\n\r\n openTemplateDropdown() {\r\n var event = new MouseEvent('mousedown');\r\n document.getElementById(\"template-select\").dispatchEvent(event);\r\n }\r\n\r\n saveNewComment() {\r\n this.isCommentError = false;\r\n this.commentErrorString = \"\";\r\n\r\n if (this.newCommentText === \"\") {\r\n this.isCommentError = true;\r\n this.commentErrorString = \"Message is required\";\r\n return;\r\n }\r\n\r\n let form = new GenericCommentVm();\r\n form.parentId = this.parentId;\r\n form.commentText = this.insertLinkTags(this.newCommentText);\r\n if (this.pfsFormId != null) { form.pfsFormID = this.pfsFormId };\r\n if (!this.isHeros) {\r\n this.httpClient.post(`${this.saveUrl}`, form)\r\n .subscribe((sm: SystemMessage) => { \r\n if (sm.isSuccessful) {\r\n this.commentList = sm.model; \r\n this.newCommentText = \"\";\r\n this.newTemplateId = \"\";\r\n this.autoScroll();\r\n this.successDataReturn.emit(sm.value);\r\n } else {\r\n this.isCommentError = true;\r\n this.commentErrorString = sm.message;\r\n } \r\n }\r\n );\r\n } else {\r\n const url = `${this.saveUrl}?id=${this.herosId}` +\r\n `&message=${encodeURIComponent(form.commentText)}` +\r\n `&orderPlaced=${null}` +\r\n `&commentId=${null}` +\r\n `&primary=${this.herosPrimary}` +\r\n `&secondary=${this.herosSecondary}` +\r\n `&tertiary=${this.herosTertiary}`;\r\n this.httpClient.get(url).subscribe((sm: SystemMessage) => { \r\n if (sm.isSuccessful) {\r\n this.commentList = sm.model; \r\n this.newCommentText = \"\";\r\n this.newTemplateId = \"\";\r\n this.autoScroll();\r\n this.successDataReturn.emit(sm.value);\r\n } else {\r\n this.isCommentError = true;\r\n this.commentErrorString = sm.message;\r\n } \r\n });\r\n }\r\n }\r\n\r\n deleteComment(row: GenericCommentVm) { \r\n row.isDelete = true; \r\n this.subscribe.unsubscribe();\r\n }\r\n\r\n noDeleteClick(row: GenericCommentVm) { \r\n row.isDelete = false; \r\n this.source.subscribe({\r\n next: () => { this.getComments(); }\r\n , complete: () => { this.getComments(); }\r\n });\r\n }\r\n\r\n yesDeleteClick(row: GenericCommentVm) {\r\n this.isCommentError = false;\r\n this.commentErrorString = \"\";\r\n\r\n this.sm.getHttpObservable(this, `${this.deleteUrl}?id=${row.id}`)\r\n .subscribe((sm: SystemMessage) => {\r\n if (sm.isSuccessful) { \r\n this.commentList = sm.model; \r\n this.autoScroll();\r\n this.deleteReturn.emit(sm);\r\n } else { \r\n this.isCommentError = true;\r\n this.commentErrorString = sm.message;\r\n }\r\n }\r\n );\r\n\r\n this.source.subscribe({\r\n next: () => { this.getComments(); }\r\n , complete: () => { this.getComments(); }\r\n });\r\n }\r\n\r\n editComment(row: GenericCommentVm) {\r\n row.isEdit = true; \r\n this.editCommentText = row.commentText;\r\n this.subscribe.unsubscribe();\r\n }\r\n\r\n cancelEditComment(row: GenericCommentVm) {\r\n row.isEdit = false; \r\n row.commentText = this.editCommentText;\r\n this.editCommentText = \"\";\r\n this.source.subscribe({\r\n next: () => { this.getComments(); }\r\n , complete: () => { this.getComments(); }\r\n });\r\n }\r\n\r\n saveEditComment(row: GenericCommentVm) {\r\n this.isCommentError = false;\r\n this.commentErrorString = \"\";\r\n\r\n if (!this.isHeros) {\r\n this.httpClient.post(`${this.saveUrl}`, row)\r\n .subscribe((sm: SystemMessage) => { \r\n if (sm.isSuccessful) {\r\n this.commentList = sm.model; \r\n this.newCommentText = \"\";\r\n this.autoScroll();\r\n this.successDataReturn.emit(sm.value);\r\n } else {\r\n this.isCommentError = true;\r\n this.commentErrorString = sm.message;\r\n } \r\n }\r\n );\r\n } else {\r\n this.httpClient.get(\r\n `${this.saveUrl}\r\n ?id=${this.herosId}\r\n &message=${row.commentText}\r\n &orderPlaced=${null}\r\n &commentId=${row.id}\r\n &primary=${this.herosPrimary}\r\n &seconday=${this.herosSecondary}\r\n &tertiary=${this.herosTertiary}`\r\n ).subscribe((sm: SystemMessage) => { \r\n if (sm.isSuccessful) {\r\n this.commentList = sm.model; \r\n this.newCommentText = \"\";\r\n this.autoScroll();\r\n this.successDataReturn.emit(sm.value);\r\n } else {\r\n this.isCommentError = true;\r\n this.commentErrorString = sm.message;\r\n } \r\n });\r\n }\r\n\r\n this.source.subscribe({\r\n next: () => { this.getComments(); }\r\n , complete: () => { this.getComments(); }\r\n });\r\n }\r\n\r\n toggleConversationsMenu() {\r\n this.isShowingConvo = !this.isShowingConvo;\r\n if (!this.isShowingConvo) { this.closeConvo.emit(false); }\r\n }\r\n\r\n handleTouchStart(evt) {\r\n\t\tif (\r\n window.innerWidth < 993 \r\n && this.isShowingConvo === true\r\n ) {\r\n\t\t\tlet firstTouch = evt.touches || evt.originalEvent.touches; \r\n\t\t\tthis.xDown = firstTouch[0].clientX; \r\n\t\t\tthis.yDown = firstTouch[0].clientY; \r\n\t\t}\t\t\t \r\n\t}; \r\n\r\n handleTouchMove(evt) {\r\n\t\tif (\r\n this.isMobile \r\n && this.isShowingConvo === true\r\n ) {\r\n\t\t\tif ( !this.xDown || !this.yDown ) { return; }\r\n \r\n\t\t\tlet xUp = evt.touches[0].clientX; \r\n\t\t\tlet yUp = evt.touches[0].clientY;\r\n\t\t\tlet xDiff = this.xDown - xUp;\r\n\t\t\tlet yDiff = this.yDown - yUp;\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\tif ( Math.abs(xDiff) > Math.abs(yDiff) ) {/*most significant*/\r\n\t\t\t\tif (xDiff > 8) { /* right swipe */ } \r\n else { \r\n /* left swipe */ \r\n this.isShowingConvo = false;\r\n\t\t\t\t\tthis.closeConvo.emit(false);\r\n } \r\n\t\t\t} else {\r\n\t\t\t\tif (yDiff > 8) { /* down swipe */ } \r\n\t\t\t\telse { /* up swipe */ } \r\n\t\t\t}\r\n\t\t\t/* reset values */\r\n\t\t\tthis.xDown = null;\r\n\t\t\tthis.yDown = null; \r\n\t\t}\r\n\t}\r\n\r\n insertLinkTags(txt: string) {\r\n let stringWithLinkTag = \"\";\r\n if (txt.includes(\"https://\")) { \r\n var words = txt.split(\" \")\r\n for (var i = 0; i < words.length; i++) {\r\n if (words[i].includes(\"https://\")) {\r\n words[i] = `${words[i]}`;\r\n }\r\n }\r\n stringWithLinkTag = words.join(\" \");\r\n } else { stringWithLinkTag = txt; }\r\n return stringWithLinkTag;\r\n }\r\n\r\n ngOnDestroy() { this.subscribe.unsubscribe(); }\r\n}\r\n","\r\n\r\n @if (usesSidenav) {\r\n
\r\n
\r\n \r\n
{{ header }}
\r\n
\r\n \r\n
\r\n }\r\n \r\n
\r\n @if (isCommentError) {\r\n
\r\n
\r\n {{ commentErrorString }}\r\n
\r\n
\r\n }\r\n \r\n
\r\n @if (row?.commentUserId !== user.id) {\r\n
\r\n @if (\r\n commentList[i + 1]?.commentUserId !== row?.commentUserId\r\n || row.showCommentDate === true\r\n ) {\r\n

\r\n @if (\r\n isSysAdmin \r\n || isAssignee \r\n || showCommenterInfo\r\n ) { {{ row?.commentorInfo }} | }\r\n \r\n {{ row?.commentDateStr }}\r\n\r\n @if (\r\n fromFulfillment \r\n && row.pfsFormID !== null \r\n && row.pfsFormID !== 0\r\n ) {\r\n \r\n  | \r\n {{ row.pfsFormID }}\r\n \r\n } \r\n

\r\n }\r\n \r\n @if (!row?.isEdit) {\r\n

\r\n } \r\n
\r\n } \r\n\r\n @if (row?.commentUserId === user.id) {\r\n
\r\n @if (\r\n commentList[i + 1]?.commentUserId !== row?.commentUserId\r\n || row.showCommentDate === true\r\n ) {\r\n

\r\n Me | {{ row?.commentDateStr }}\r\n @if (\r\n fromFulfillment \r\n && row.pfsFormID !== null \r\n && row.pfsFormID !== 0\r\n ) {\r\n \r\n  | \r\n {{ row.pfsFormID }}\r\n \r\n } \r\n

\r\n }\r\n \r\n @if (!row?.isEdit) {\r\n

\r\n } \r\n
\r\n } \r\n\r\n @if (row?.isEdit) {\r\n \r\n }\r\n\r\n @if (row?.commentUserId === user.id) {\r\n
\r\n @if (\r\n row.showEditDelete\r\n && !row?.isEdit \r\n && !row?.isDelete\r\n && !statusClosed\r\n ) {\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n \r\n @if (\r\n !row?.isEdit \r\n && row?.isDelete\r\n ) {\r\n
\r\n
\r\n Are you sure you want to delete this comment?\r\n
\r\n \r\n   \r\n \r\n
\r\n
\r\n }\r\n \r\n @if (row?.isEdit) {\r\n \r\n \r\n }\r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n @if (\r\n useTemplateResponses \r\n && templateResponseApi !== ''\r\n ) {\r\n
\r\n \r\n
\r\n } \r\n
","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { PcgSelectComponent } from 'app/shared/form-elements/components/pcg-select-component/select.component';\r\nimport { EditRxFulfillmentComponent } from 'app/inventory/rx-fulfillment/edit-rx-fulfillment/edit-rx-fulfillment.component'\r\nimport { SystemMessage } from 'app/core/system-message/system-message-service';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { ShipmentCommentVm } from 'app/shared/generated/Inventory/Models/Shipping/ShipmentCommentVm';\r\n\r\n@Component({\r\n selector: 'pcg-shipment-comments-modal',\r\n templateUrl: './comments-modal.component.html',\r\n styleUrls: ['./comments-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class RxCommentsModalComponent implements OnInit {\r\n\r\n\t@ViewChild('pfsFormSelect', {static: false}) pfsFormSelect: PcgSelectComponent;\r\n\t@ViewChild(EditRxFulfillmentComponent, {static: true}) editRxFulfillment: EditRxFulfillmentComponent;\r\n\r\n\t@Input() shipmentId: number;\r\n\t@Input() modal: any;\r\n\t@Input() isUser: boolean = false;\r\n\r\n\tinventoryId: number;\r\n\tuser: UserJsVm;\r\n\tformGroup = ShipmentCommentVm.Form;\r\n\tcountPfs: number;\r\n\tpfsFormIdLink: string;\r\n\tformId: string;\r\n\r\n\tconstructor(\r\n\t\tprivate sec: SecurityService\r\n\t\t, private route: ActivatedRoute\r\n\t\t, private httpClient: HttpClient\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.sec.user$.subscribe(user => { this.user = user; });\r\n\t\tthis.inventoryId = Number(this.route.snapshot.params.inventoryId);\r\n\t\tthis.getPfsForm();\r\n\t}\r\n\r\n\tgetPfsForm() {\r\n\t\tthis.httpClient.get(\r\n\t\t\t`api/Inventory/${this.isUser ? 'RxFulfillmentUser' : 'Shipping'}/GetPfsForm?id=${this.shipmentId}`\r\n\t\t).subscribe((msg: SystemMessage) => {\r\n\t\t\tif (msg.model.pfsFormId != null) {\r\n\t\t\t\tthis.formGroup.controls.pfsFormID.setValue(msg.model.pfsFormId);\r\n\t\t\t\tthis.pfsFormIdLink = msg.model.pfsUrl;\r\n\t\t\t\tthis.formId = msg.model.pfsFormId;\r\n\t\t\t}\r\n\t\t\tthis.countPfs = msg.model.countPfsFormIds;\r\n\t\t});\r\n\t}\r\n}\r\n","
\r\n\t
\r\n\t\t
Fulfillment Comments
\r\n\t\t\r\n\t
\r\n\r\n\t
\r\n\t\t\r\n\t\t\r\n\r\n\t\t@if (countPfs > 0) {\r\n\t\t\t
\r\n\t\t\t\t
PFS Form
\r\n\t\t\t\t@if (countPfs === 1) {\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{{ formId }}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t} @else if (countPfs > 1) {\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t\t

\r\n\t\t\t
\r\n\t\t}\r\n\r\n\t\t\r\n\t
\r\n
","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { faFilePrescription, faRandom, faStepForward, faUser, faRefresh} from '@fortawesome/pro-solid-svg-icons';\r\nimport { UntilDestroy } from '@ngneat/until-destroy';\r\n\r\nimport { PatientDataVm } from 'app/shared/generated/Models/PatientDataVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'pcg-patient-phi-card',\r\n templateUrl: './patient-phi-card.component.html',\r\n styleUrls: ['./patient-phi-card.component.scss'],\r\n standalone: false\r\n})\r\nexport class PatientPhiCardComponent implements OnInit {\r\n\r\n\tconstructor(public http: HttpClient) { }\r\n\r\n\t@Input() patientData: any;\r\n\t@Input() isFacility: boolean;\r\n\t@Input() addressValidationError: string;\r\n\t@Input() facilityCodeValidationError: string;\r\n\t@Input() shipmentId: number;\r\n\t@Output() refreshQs1 = new EventEmitter();\r\n\t\r\n\tgoogleAddress : string = '';\r\n\tfaUser = faUser;\r\n\tfaTransfer = faRandom;\r\n\tfaEOS = faStepForward;\r\n\tfaEarlyRx = faFilePrescription;\r\n\tfaRefresh = faRefresh;\r\n\r\n\tngOnInit() { \r\n\t\tlet encodedAddress = encodeURIComponent(\r\n\t\t\t`${this.patientData?.address}, ${this.patientData?.address2}, ${this.patientData?.city}, ${this.patientData?.state}, ${this.patientData?.zip},`\r\n\t\t);\r\n\t\tthis.googleAddress = `https://google.com/maps/place/${encodedAddress}`;\t\t\r\n\t}\r\n\r\n\tgetLastFillDateColor() {\r\n\t\tif (this.patientData?.lastFillDateColor === 'yellow') { this.patientData.lastFillDateColor = 'red'; }\r\n\t\treturn this.patientData?.lastFillDateColor;\r\n\t}\r\n\r\n\tupdateQs1Address() {\r\n\t\tthis.http.get(`api/Inventory/QS1/UpdateRxAddressData?rxNumber=${this.patientData.rxNumber}&shipmentId=${this.patientData.shipmentId == null ? this.shipmentId : this.patientData.shipmentId}`)\r\n\t\t\t.subscribe((vm: PatientDataVm) => {\r\n\t\t\t\tif (vm != this.patientData) {\r\n\t\t\t\t\tthis.patientData.address = vm.address;\r\n\t\t\t\t\tthis.patientData.address2 = vm.address2;\r\n\t\t\t\t\tthis.patientData.city = vm.city;\r\n\t\t\t\t\tthis.patientData.state = vm.state;\r\n\t\t\t\t\tthis.patientData.zip = vm.zip;\r\n\t\t\t\t\tif(!FormatHelperService.GetIsNullyOrWhitespace(vm.address)) {\r\n\t\t\t\t\t\tthis.addressValidationError = null;\r\n\t\t\t\t\t\tthis.refreshQs1.emit();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n}\r\n","
\r\n\t
\r\n\t\t\r\n\t\t{{ patientData?.firstName + \" \" + (patientData?.middleInitial ? patientData?.middleInitial + \" \" : \"\") + patientData?.lastName }}\r\n\t
\r\n\t
DOB: {{ patientData?.dateOfBirth }}
\r\n\r\n\t
\r\n\t\t\r\n\t\t\t{{ patientData?.facility + (patientData?.facilityCode ? (\" : \" + patientData?.facilityCode) : \"\") }}\r\n\t\t\t@if (facilityCodeValidationError != null) {

{{ facilityCodeValidationError }}

}\r\n\t\t\t@else {
}\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t{{ patientData?.address + \" \" + patientData?.address2 }}\r\n\t\t\t
\r\n\t\t\t{{ patientData?.city + (patientData?.state ? \", \" + patientData?.state : \"\") + \" \" + patientData?.zip }}\r\n\t\t\t
\r\n\t\t
\r\n\r\n\t\t@if (addressValidationError != null) { \r\n\t\t\t

{{ addressValidationError }}

\r\n\t\t\t

\r\n\t\t\t\tSuggested Address\r\n\t\t\t

\r\n\t\t}\t\t\r\n\t\t
\r\n\r\n\t\t\r\n\t\t\tLast Fill Date: \r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\tNext Fill Date: {{ patientData?.nextFillDate }}\r\n\t\t
\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\tQS1 Status: {{ patientData?.qs1Status }}\r\n\t\t
\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t Refresh from QS1\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\tPFS Form: \r\n\t\t\t{{ patientData?.pfsRequestType }}\r\n\t\t
\r\n\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t = EOS
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t = Early Refill
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t = Patient Facility Transfer
\r\n\t\t\t
\r\n\r\n\t\t\tPFS Flags: \r\n\t\t\t \r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t\t \r\n\t\t\t\r\n\t\t
\r\n\t
\r\n
","import { addDays } from \"./addDays.mjs\";\n\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of weeks to be added.\n *\n * @returns The new date with the weeks added\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * const result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\nexport function addWeeks(date, amount) {\n const days = amount * 7;\n return addDays(date, days);\n}\n\n// Fallback for modularized imports:\nexport default addWeeks;","import { addWeeks } from \"./addWeeks.mjs\";\n\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * @typeParam DateType - The `Date` type, the function operates on. Gets inferred from passed arguments. Allows to use extensions like [`UTCDate`](https://github.com/date-fns/utc).\n *\n * @param date - The date to be changed\n * @param amount - The amount of weeks to be subtracted.\n *\n * @returns The new date with the weeks subtracted\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * const result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\nexport function subWeeks(date, amount) {\n return addWeeks(date, -amount);\n}\n\n// Fallback for modularized imports:\nexport default subWeeks;","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class ShipmentListVm {\r\n\tshipmentId: number;\r\n\tcreatedById?: number;\r\n\tcreatedBy?: string;\r\n\tshipmentServiceTypeID?: any;\r\n\tshipmentTypeStr?: string;\r\n\tmasterTrackingNumber?: string;\r\n\tweightPounds?: number;\r\n\tpackageStatus?: string;\r\n\tdateCreated: Date;\r\n\tdateCreatedStr?: string;\r\n\tdateDelivered?: Date;\r\n\tdateDeliveredStr?: string;\r\n\trxNumberCount: number;\r\n\tfulfillmentStatus?: string;\r\n\tshipmentStep?: any;\r\n\tdeliveryType?: string;\r\n\tisRejected: boolean;\r\n\tprescriptionCount: number;\r\n\tcanDelete: boolean;\r\n\tisNotActive?: boolean;\r\n\tpfsLink?: string;\r\n\tinventory?: string;\r\n\tinventoryId?: number;\r\n\tisOverdue1: boolean;\r\n\tisOverdue2: boolean;\r\n\thasFulfillmentBeenOpened: boolean;\r\n\tisOpen: boolean;\r\n\topenUserTooltip?: any;\r\n\tcommentCount: number;\r\n\tlastCommentDate?: string;\r\n\tuserSubmitted?: boolean;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'shipmentId': new UntypedFormControl(0, [...(validators['shipmentId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'createdById': new UntypedFormControl(null, [...(validators['createdById'] ?? []), ...[]]),\r\n\t\t\t'createdBy': new UntypedFormControl(null, [...(validators['createdBy'] ?? []), ...[]]),\r\n\t\t\t'shipmentServiceTypeID': new UntypedFormControl(null, [...(validators['shipmentServiceTypeID'] ?? []), ...[]]),\r\n\t\t\t'shipmentTypeStr': new UntypedFormControl(null, [...(validators['shipmentTypeStr'] ?? []), ...[]]),\r\n\t\t\t'masterTrackingNumber': new UntypedFormControl(null, [...(validators['masterTrackingNumber'] ?? []), ...[]]),\r\n\t\t\t'weightPounds': new UntypedFormControl(null, [...(validators['weightPounds'] ?? []), ...[]]),\r\n\t\t\t'packageStatus': new UntypedFormControl(null, [...(validators['packageStatus'] ?? []), ...[]]),\r\n\t\t\t'dateCreated': new UntypedFormControl('', [...(validators['dateCreated'] ?? []), ...[Validators.required]]),\r\n\t\t\t'dateCreatedStr': new UntypedFormControl(null, [...(validators['dateCreatedStr'] ?? []), ...[]]),\r\n\t\t\t'dateDelivered': new UntypedFormControl(null, [...(validators['dateDelivered'] ?? []), ...[]]),\r\n\t\t\t'dateDeliveredStr': new UntypedFormControl(null, [...(validators['dateDeliveredStr'] ?? []), ...[]]),\r\n\t\t\t'rxNumberCount': new UntypedFormControl(0, [...(validators['rxNumberCount'] ?? []), ...[Validators.required]]),\r\n\t\t\t'fulfillmentStatus': new UntypedFormControl(null, [...(validators['fulfillmentStatus'] ?? []), ...[]]),\r\n\t\t\t'shipmentStep': new UntypedFormControl('', [...(validators['shipmentStep'] ?? []), ...[Validators.required]]),\r\n\t\t\t'deliveryType': new UntypedFormControl(null, [...(validators['deliveryType'] ?? []), ...[]]),\r\n\t\t\t'isRejected': new UntypedFormControl(false, [...(validators['isRejected'] ?? []), ...[]]),\r\n\t\t\t'prescriptionCount': new UntypedFormControl(0, [...(validators['prescriptionCount'] ?? []), ...[Validators.required]]),\r\n\t\t\t'canDelete': new UntypedFormControl(false, [...(validators['canDelete'] ?? []), ...[]]),\r\n\t\t\t'isNotActive': new UntypedFormControl(null, [...(validators['isNotActive'] ?? []), ...[]]),\r\n\t\t\t'pfsLink': new UntypedFormControl(null, [...(validators['pfsLink'] ?? []), ...[]]),\r\n\t\t\t'inventory': new UntypedFormControl(null, [...(validators['inventory'] ?? []), ...[]]),\r\n\t\t\t'inventoryId': new UntypedFormControl(null, [...(validators['inventoryId'] ?? []), ...[]]),\r\n\t\t\t'isOverdue1': new UntypedFormControl(false, [...(validators['isOverdue1'] ?? []), ...[]]),\r\n\t\t\t'isOverdue2': new UntypedFormControl(false, [...(validators['isOverdue2'] ?? []), ...[]]),\r\n\t\t\t'hasFulfillmentBeenOpened': new UntypedFormControl(false, [...(validators['hasFulfillmentBeenOpened'] ?? []), ...[]]),\r\n\t\t\t'isOpen': new UntypedFormControl(false, [...(validators['isOpen'] ?? []), ...[]]),\r\n\t\t\t'openUserTooltip': new UntypedFormControl(null, [...(validators['openUserTooltip'] ?? []), ...[]]),\r\n\t\t\t'commentCount': new UntypedFormControl(0, [...(validators['commentCount'] ?? []), ...[Validators.required]]),\r\n\t\t\t'lastCommentDate': new UntypedFormControl(null, [...(validators['lastCommentDate'] ?? []), ...[]]),\r\n\t\t\t'userSubmitted': new UntypedFormControl(null, [...(validators['userSubmitted'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['fulfillmentStatus', {\"orderId\":0,\"sortColumn\":\"shipmentStep\",\"searchColumn\":\"fulfillmentStatus\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Fulfillment Status\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['inventory', {\"orderId\":1,\"sortColumn\":\"inventory\",\"searchColumn\":\"inventory\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Inventory\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['deliveryType', {\"orderId\":2,\"sortColumn\":\"deliveryType\",\"searchColumn\":\"deliveryType\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Delivery Type\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['commentCount', {\"orderId\":3,\"sortColumn\":\"commentCount\",\"searchColumn\":\"commentCount\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Comments\",\"isVisible\":true,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['dateCreatedStr', {\"orderId\":4,\"sortColumn\":\"dateCreated\",\"searchColumn\":\"dateCreatedStr\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Created By\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['rxNumberCount', {\"orderId\":5,\"sortColumn\":\"rxNumberCount\",\"searchColumn\":\"rxNumberCount\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Rx #s\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['prescriptionCount', {\"orderId\":6,\"sortColumn\":\"prescriptionCount\",\"searchColumn\":\"prescriptionCount\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Product Count\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['shipmentTypeStr', {\"orderId\":7,\"sortColumn\":\"shipmentTypeStr\",\"searchColumn\":\"shipmentTypeStr\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Shipment Info\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['canDelete', {\"orderId\":8,\"sortColumn\":\"canDelete\",\"searchColumn\":\"canDelete\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Delete\",\"isVisible\":true,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): ShipmentListVmFromFg {\r\n\t\treturn new ShipmentListVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class ShipmentListVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget shipmentId(): number {\r\n\t\treturn this.fg.get('shipmentId').value;\r\n\t}\r\n\tset shipmentId(val) {\r\n\t\tthis.fg.get('shipmentId').setValue(val);\r\n\t}\r\n\r\n\tget createdById(): number {\r\n\t\treturn this.fg.get('createdById').value;\r\n\t}\r\n\tset createdById(val) {\r\n\t\tthis.fg.get('createdById').setValue(val);\r\n\t}\r\n\r\n\tget createdBy(): string {\r\n\t\treturn this.fg.get('createdBy').value;\r\n\t}\r\n\tset createdBy(val) {\r\n\t\tthis.fg.get('createdBy').setValue(val);\r\n\t}\r\n\r\n\tget shipmentServiceTypeID(): any {\r\n\t\treturn this.fg.get('shipmentServiceTypeID').value;\r\n\t}\r\n\tset shipmentServiceTypeID(val) {\r\n\t\tthis.fg.get('shipmentServiceTypeID').setValue(val);\r\n\t}\r\n\r\n\tget shipmentTypeStr(): string {\r\n\t\treturn this.fg.get('shipmentTypeStr').value;\r\n\t}\r\n\tset shipmentTypeStr(val) {\r\n\t\tthis.fg.get('shipmentTypeStr').setValue(val);\r\n\t}\r\n\r\n\tget masterTrackingNumber(): string {\r\n\t\treturn this.fg.get('masterTrackingNumber').value;\r\n\t}\r\n\tset masterTrackingNumber(val) {\r\n\t\tthis.fg.get('masterTrackingNumber').setValue(val);\r\n\t}\r\n\r\n\tget weightPounds(): number {\r\n\t\treturn this.fg.get('weightPounds').value;\r\n\t}\r\n\tset weightPounds(val) {\r\n\t\tthis.fg.get('weightPounds').setValue(val);\r\n\t}\r\n\r\n\tget packageStatus(): string {\r\n\t\treturn this.fg.get('packageStatus').value;\r\n\t}\r\n\tset packageStatus(val) {\r\n\t\tthis.fg.get('packageStatus').setValue(val);\r\n\t}\r\n\r\n\tget dateCreated(): Date {\r\n\t\treturn this.fg.get('dateCreated').value;\r\n\t}\r\n\tset dateCreated(val) {\r\n\t\tthis.fg.get('dateCreated').setValue(val);\r\n\t}\r\n\r\n\tget dateCreatedStr(): string {\r\n\t\treturn this.fg.get('dateCreatedStr').value;\r\n\t}\r\n\tset dateCreatedStr(val) {\r\n\t\tthis.fg.get('dateCreatedStr').setValue(val);\r\n\t}\r\n\r\n\tget dateDelivered(): Date {\r\n\t\treturn this.fg.get('dateDelivered').value;\r\n\t}\r\n\tset dateDelivered(val) {\r\n\t\tthis.fg.get('dateDelivered').setValue(val);\r\n\t}\r\n\r\n\tget dateDeliveredStr(): string {\r\n\t\treturn this.fg.get('dateDeliveredStr').value;\r\n\t}\r\n\tset dateDeliveredStr(val) {\r\n\t\tthis.fg.get('dateDeliveredStr').setValue(val);\r\n\t}\r\n\r\n\tget rxNumberCount(): number {\r\n\t\treturn this.fg.get('rxNumberCount').value;\r\n\t}\r\n\tset rxNumberCount(val) {\r\n\t\tthis.fg.get('rxNumberCount').setValue(val);\r\n\t}\r\n\r\n\tget fulfillmentStatus(): string {\r\n\t\treturn this.fg.get('fulfillmentStatus').value;\r\n\t}\r\n\tset fulfillmentStatus(val) {\r\n\t\tthis.fg.get('fulfillmentStatus').setValue(val);\r\n\t}\r\n\r\n\tget shipmentStep(): any {\r\n\t\treturn this.fg.get('shipmentStep').value;\r\n\t}\r\n\tset shipmentStep(val) {\r\n\t\tthis.fg.get('shipmentStep').setValue(val);\r\n\t}\r\n\r\n\tget deliveryType(): string {\r\n\t\treturn this.fg.get('deliveryType').value;\r\n\t}\r\n\tset deliveryType(val) {\r\n\t\tthis.fg.get('deliveryType').setValue(val);\r\n\t}\r\n\r\n\tget isRejected(): boolean {\r\n\t\treturn this.fg.get('isRejected').value;\r\n\t}\r\n\tset isRejected(val) {\r\n\t\tthis.fg.get('isRejected').setValue(val);\r\n\t}\r\n\r\n\tget prescriptionCount(): number {\r\n\t\treturn this.fg.get('prescriptionCount').value;\r\n\t}\r\n\tset prescriptionCount(val) {\r\n\t\tthis.fg.get('prescriptionCount').setValue(val);\r\n\t}\r\n\r\n\tget canDelete(): boolean {\r\n\t\treturn this.fg.get('canDelete').value;\r\n\t}\r\n\tset canDelete(val) {\r\n\t\tthis.fg.get('canDelete').setValue(val);\r\n\t}\r\n\r\n\tget isNotActive(): boolean {\r\n\t\treturn this.fg.get('isNotActive').value;\r\n\t}\r\n\tset isNotActive(val) {\r\n\t\tthis.fg.get('isNotActive').setValue(val);\r\n\t}\r\n\r\n\tget pfsLink(): string {\r\n\t\treturn this.fg.get('pfsLink').value;\r\n\t}\r\n\tset pfsLink(val) {\r\n\t\tthis.fg.get('pfsLink').setValue(val);\r\n\t}\r\n\r\n\tget inventory(): string {\r\n\t\treturn this.fg.get('inventory').value;\r\n\t}\r\n\tset inventory(val) {\r\n\t\tthis.fg.get('inventory').setValue(val);\r\n\t}\r\n\r\n\tget inventoryId(): number {\r\n\t\treturn this.fg.get('inventoryId').value;\r\n\t}\r\n\tset inventoryId(val) {\r\n\t\tthis.fg.get('inventoryId').setValue(val);\r\n\t}\r\n\r\n\tget isOverdue1(): boolean {\r\n\t\treturn this.fg.get('isOverdue1').value;\r\n\t}\r\n\tset isOverdue1(val) {\r\n\t\tthis.fg.get('isOverdue1').setValue(val);\r\n\t}\r\n\r\n\tget isOverdue2(): boolean {\r\n\t\treturn this.fg.get('isOverdue2').value;\r\n\t}\r\n\tset isOverdue2(val) {\r\n\t\tthis.fg.get('isOverdue2').setValue(val);\r\n\t}\r\n\r\n\tget hasFulfillmentBeenOpened(): boolean {\r\n\t\treturn this.fg.get('hasFulfillmentBeenOpened').value;\r\n\t}\r\n\tset hasFulfillmentBeenOpened(val) {\r\n\t\tthis.fg.get('hasFulfillmentBeenOpened').setValue(val);\r\n\t}\r\n\r\n\tget isOpen(): boolean {\r\n\t\treturn this.fg.get('isOpen').value;\r\n\t}\r\n\tset isOpen(val) {\r\n\t\tthis.fg.get('isOpen').setValue(val);\r\n\t}\r\n\r\n\tget openUserTooltip(): any {\r\n\t\treturn this.fg.get('openUserTooltip').value;\r\n\t}\r\n\tset openUserTooltip(val) {\r\n\t\tthis.fg.get('openUserTooltip').setValue(val);\r\n\t}\r\n\r\n\tget commentCount(): number {\r\n\t\treturn this.fg.get('commentCount').value;\r\n\t}\r\n\tset commentCount(val) {\r\n\t\tthis.fg.get('commentCount').setValue(val);\r\n\t}\r\n\r\n\tget lastCommentDate(): string {\r\n\t\treturn this.fg.get('lastCommentDate').value;\r\n\t}\r\n\tset lastCommentDate(val) {\r\n\t\tthis.fg.get('lastCommentDate').setValue(val);\r\n\t}\r\n\r\n\tget userSubmitted(): boolean {\r\n\t\treturn this.fg.get('userSubmitted').value;\r\n\t}\r\n\tset userSubmitted(val) {\r\n\t\tthis.fg.get('userSubmitted').setValue(val);\r\n\t}\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { FaIconPosition } from '../fa-icon-position/fa-icon-position';\r\nimport { FaNumColor } from '../fa-num-color/fa-num-color.enum';\r\n\r\n@Component({\r\n selector: 'pcg-fa-count',\r\n templateUrl: './fa-count.component.html',\r\n styleUrls: ['./fa-count.component.scss'],\r\n standalone: false\r\n})\r\nexport class FaCountComponent implements OnInit {\r\n\r\n @Input() num?: number;\r\n @Input() numColor?: FaNumColor;\r\n @Input() isNumVisible = true;\r\n @Input() numPosition?: FaIconPosition;\r\n\r\n iconNumClassNames = \"badge badge-pill countNum\";\r\n \r\n numPositionStyles: object;\r\n \r\n constructor(private formatHelper: FormatHelperService) { }\r\n\r\n ngOnInit() {\r\n this.assignNumColor(this.numColor);\r\n if (this.formatHelper.GetIsNully(this.num)) { this.isNumVisible = false; }\r\n if (!this.formatHelper.GetIsNully(this.numPosition)) { this.assignNumPosition(this.numPosition); }\r\n }\r\n\r\n //When adding a new case on this switch, make sure to add the same to the enum in ../fa-num-color/fa-num-color.enum.ts\r\n assignNumColor(numColor?: FaNumColor) {\r\n this.numColor = numColor;\r\n switch(numColor){\r\n case FaNumColor.success: this.iconNumClassNames += \" badge-success\"; break;\r\n case FaNumColor.warning: this.iconNumClassNames += \" badge-warning\"; break;\r\n case FaNumColor.danger: this.iconNumClassNames += \" badge-danger\"; break;\r\n case FaNumColor.info: this.iconNumClassNames += \" badge-info\"; break;\r\n case FaNumColor.secondary: this.iconNumClassNames += \" badge-secondary\"; break;\r\n case FaNumColor.other: this.iconNumClassNames += \" badge-secondary\"; break;\r\n default: this.iconNumClassNames += \" badge-secondary\";\r\n }\r\n } \r\n\r\n assignNumPosition(position: FaIconPosition):void{\r\n let isPositionAssigned = false;\r\n let numStyles = { position: 'relative' };\r\n\r\n if (!this.formatHelper.GetIsNully(position.top)){\r\n isPositionAssigned = true;\r\n numStyles['top'] = FaIconPosition.getPositionPropValue(position.top, position.getMyPositionUnits());\r\n }\r\n if (!this.formatHelper.GetIsNully(position.right)){\r\n isPositionAssigned = true;\r\n numStyles['right'] = FaIconPosition.getPositionPropValue(position.right, position.getMyPositionUnits());\r\n }\r\n if (!this.formatHelper.GetIsNully(position.bottom)){\r\n isPositionAssigned = true;\r\n numStyles['bottom'] = FaIconPosition.getPositionPropValue(position.bottom, position.getMyPositionUnits());\r\n }\r\n if (!this.formatHelper.GetIsNully(position.left)){\r\n isPositionAssigned = true;\r\n numStyles['left'] = FaIconPosition.getPositionPropValue(position.left, position.getMyPositionUnits());\r\n }\r\n\r\n if (isPositionAssigned) { this.numPositionStyles = numStyles; }\r\n }\r\n}\r\n","@if (isNumVisible) {\r\n {{ num }}\r\n}","import { Component, Input, OnInit } from '@angular/core';\r\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\r\nimport { FormatHelperService } from '../helpers/format-helper.service';\r\nimport { FaIconPosition } from './fa-icon-position/fa-icon-position';\r\nimport { FaNumColor } from './fa-num-color/fa-num-color.enum';\r\n\r\n/**\r\n * This component centralizes the ability to have a font-awesome icon with a number label in the top right corner\r\n * To properly use this component, the parent component needs to have a property on it for the icon name so that\r\n * the template html can pass the correct value to this component. \r\n * \r\n * - For example:\r\n * class MyClassComponent{\r\n * faIconName: FaIconName = new FaIconName();\r\n * }\r\n * \r\n * - Then in the template html you could have:\r\n * \r\n * \r\n * - To do the same with the color, the code would be:\r\n * faNumColor: typeof FaNumColor = FaNumColor;\r\n * \r\n * \r\n * - For a position, define an object:\r\n * faNumPosition: FaNumPosition = new FaIconPosition(topVal: 0, rightVal: 0, bottomVal: 0, leftVal: 0, FaPositionUnits.percent);\r\n * \r\n */\r\n@Component({\r\n selector: 'pcg-fa-num-icon',\r\n templateUrl: './fa-num-icon.component.html',\r\n styleUrls: ['./fa-num-icon.component.scss'],\r\n standalone: false\r\n})\r\nexport class FaNumIconComponent implements OnInit {\r\n\r\n\t@Input() num?: number;\r\n\t@Input() numColor?: FaNumColor;\r\n\t@Input() isNumVisible = true;\r\n\t@Input() iconName: IconDefinition;\r\n\t@Input() iconColor?: string; // Accepts color keywords, rgb, and hex values\r\n\t@Input() numPosition?: FaIconPosition;\r\n\r\n\ticonColorName = \"inherit\";\r\n\r\n\tconstructor(private formatHelper: FormatHelperService) { }\r\n\r\n\tngOnInit() {\r\n\t\tif (!this.formatHelper.GetIsNully(this.iconColor)) { this.iconColorName = this.iconColor; }\r\n\t}\r\n}\r\n","\r\n \r\n \r\n\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { faComments } from '@fortawesome/pro-regular-svg-icons';\r\nimport { faExclamationCircle, faHourglassEnd, faPrescriptionBottleAlt, faUserMd } from '@fortawesome/pro-solid-svg-icons';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UntilDestroy } from '@ngneat/until-destroy';\r\nimport { subWeeks, subYears } from 'date-fns';\r\n\r\nimport { PcgSelectComponent } from 'app/shared/form-elements/components/pcg-select-component/select.component';\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { RxDataStorageService } from 'app/fulfillment/services/rx-data-storage.service';\r\nimport { InventoryService } from 'app/inventory/services/inventory.service';\r\nimport { FaIconName } from 'app/shared/fa-num-icon/fa-icon-name/fa-icon-name';\r\nimport { FaIconPosition, FaPositionUnits } from 'app/shared/fa-num-icon/fa-icon-position/fa-icon-position';\r\nimport { FaNumColor } from 'app/shared/fa-num-icon/fa-num-color/fa-num-color.enum';\r\nimport { ShipmentListVm } from 'app/shared/generated/Inventory/Models/Shipping/ShipmentListVm';\r\nimport { DateRange } from 'app/shared/models/date-range';\r\nimport { ButtonFilterService } from 'app/shared/table/table-top/button-filter/button-filter.service';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\nimport { PatientDataVm } from 'app/shared/generated/Models/PatientDataVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { SelectItem } from 'app/shared/models/select-item';\r\nimport { TableTopLegendVm } from 'app/shared/table/table-top/table-top-legend/table-top-legendVm';\r\nimport { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'pcg-shipment-list',\r\n templateUrl: './shipment-list.component.html',\r\n styleUrls: ['./shipment-list.component.scss'],\r\n standalone: false\r\n})\r\nexport class ShipmentListComponent implements OnInit {\r\n\r\n\t@ViewChild(TableComponent, { static: true }) table: TableComponent;\r\n\t@ViewChild('pfsForms', { static: true }) selectPfsForm: PcgSelectComponent;\r\n\t@ViewChild('facilitySelect', { static: true }) facilitySelect: PcgSelectComponent;\r\n\t@Input() isCentralized = false;\r\n\r\n\tfedexLink = 'https://www.fedex.com/apps/fedextrack/?action=track&cntry_code=us&locale=en_US&trackingnumber=';\r\n\tupsLink = 'https://www.ups.com/track?loc=en_US&tracknum=';\r\n\tinputPlaceholder = 'Filter Rx';\r\n\tfaIconName = new FaIconName();\r\n\tfaNumColor = FaNumColor;\r\n\r\n\tcolumns = ShipmentListVm.ColumnDefs;\r\n\tfacilitySelectItems: SelectItem[] = [];\t\r\n\tmodel: PatientDataVm;\r\n user: UserJsVm;\r\n\r\n\t// Table filters\r\n\tfilters = {\r\n\t\tinventorySiteId: null\r\n\t\t, firstName: null\r\n\t\t, lastName: null\r\n\t\t, dob: \"\" // Made this an empty string to compare since element changes it to this anyways.\r\n\t\t, zip: null\r\n\t\t, date: new DateRange(subWeeks(new Date(), 2), new Date())\r\n\t\t, status: '[]'\r\n\t\t, strShipmentIds: null\r\n\t\t, facilityName: null\r\n\t\t, pfsFormId: null\r\n\t\t, isNotActive: false\r\n\t\t, confirm: null\r\n\t\t, facilityId: null\r\n\t\t, userId: null\r\n\t};\r\n\r\n\t// Table filters\r\n\temptyFilters = {\r\n\t\tinventorySiteId: null\r\n\t\t, firstName: null\r\n\t\t, lastName: null\r\n\t\t, dob: \"\"// Made this an empty string to compare since element changes it to this anyways.\r\n\t\t, zip: null\r\n\t\t, date: new DateRange(subWeeks(new Date(), 2), new Date())\r\n\t\t, status: '[]'\r\n\t\t, strShipmentIds: null\r\n\t\t, facilityName: null\r\n\t\t, pfsFormId: null\r\n\t\t, isNotActive: false\r\n\t\t, facilityId: null\r\n\t\t, userId: null\r\n\t};\r\n\r\n\tselectedStatus = new Array();\r\n\tinitFilters = Object.assign({}, this.filters);\r\n\r\n\tfilterMap = {\r\n\t\t\"inventorySiteId\": \"Inventory Site\"\r\n\t\t, \"firstName\": \"First Name\"\r\n\t\t, \"lastName\": \"Last Name\"\r\n\t\t, \"dob\": \"DOB\"\r\n\t\t, \"zip\": \"Zip\"\r\n\t\t, \"date\": \"Date Created\"\r\n\t\t, \"status\": \"Status\"\r\n\t\t, \"facilityName\": \"Facility Name\"\r\n\t\t, \"pfsFormId\": \"PFS Form\"\r\n\t\t, \"isNotActive\": \"Inactive Fulfillments\"\r\n\t\t, \"facilityId\": \"Facility\"\r\n\t};\r\n\r\n\t// For DateRange filter \r\n\tmaxDate = new Date();\r\n\tminDate = new Date(1900, 0, 1);\r\n\t\r\n\tfaUserMd = faUserMd;\r\n\tfaExclamationCircle = faExclamationCircle;\r\n\tfaHourglassEnd = faHourglassEnd;\r\n\trxCountIcon = faPrescriptionBottleAlt;\r\n\tfaComments = faComments;\r\n\tcommentPosition: FaIconPosition = new FaIconPosition(-10, 20, null, null, FaPositionUnits.pixels);\r\n\r\n\tdangerColor = '#dc3545';\r\n\twarningColor = '#ffc107';\r\n\tsortDir = 'desc';\r\n\tinventorySiteName: string;\r\n\tdataSource = \"api/Inventory/Shipping/GetShipmentList\";\r\n\tcreateSource = \"api/Inventory/Shipping/CreateShipment/\";\r\n\teditSource = \"/pharmacy/inventories/fulfillment/edit/\";\r\n\terrorStr = \"\";\r\n sortData = [[ \"dateCreatedStr\", this.sortDir ]];\r\n\r\n\tinventorySiteId: number; // Shared throughout page. Comes from URL.\t\r\n\trxListShipmentId = 0;// Used for the rx list modal and comments modal components \r\n\tnewFacilityId: number;\r\n\t\t\r\n\tcanEdit: boolean; \r\n\tcanCreateFulfillments: boolean; \r\n\tinventoryEditAccess: boolean;\r\n\tcurrentSiteName: string;\r\n\tfirstLoad = true;\r\n\tuserId: number;\r\n\tisUser: boolean = false;\r\n\tisNewFacility = false;\r\n\tisError = false;\r\n\thasMultipleInvChoices = false;\r\n\r\n\t// Colors for table row highlighting and table legend\r\n\tlastViewedRxColor: string = '#d5def3';\r\n\r\n // Table legend\r\n\tlegend: TableTopLegendVm[] = \r\n\t[\r\n\t\t{\r\n\t\t\tid: 0,\r\n\t\t\tcolorCode: this.lastViewedRxColor,\r\n\t\t\tdescription: 'Highlights the fulfillment containing the last viewed Rx'\r\n\t\t}\r\n\t];\r\n\r\n\tconstructor(\r\n\t\tprivate route: ActivatedRoute\r\n\t\t, private title: Title\r\n\t\t, private sec: SecurityService\r\n\t\t, private httpClient: HttpClient\r\n\t\t, public router: Router\r\n\t\t, public modalService: NgbModal\r\n\t\t, private rxDataStorageService: RxDataStorageService\r\n\t\t, public inventoryService: InventoryService\r\n\t\t, public btnFilterService: ButtonFilterService\r\n\t\t, private formatHelper: FormatHelperService\r\n\t) {\r\n\t\ttitle.setTitle('Rx Fulfillment List');\r\n\t\t// Don't want to keep Rx Data for inventory specific interactions\r\n\t\tif (!this.isCentralized) { this.rxDataStorageService.resetInventoryChoiceModalData(); }\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.user = this.sec.getUser();\r\n this.userId = this.user?.id;\r\n\t\tthis.canEdit = this.sec.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.Inventory ]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.User)\r\n\t\t);\r\n\t\tthis.canCreateFulfillments = this.sec.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.Inventory ]\r\n\t\t\t, [ \r\n\t\t\t\tPermissionRole.User\r\n\t\t\t\t, PermissionRole.Technician\r\n\t\t\t\t, PermissionRole.Pharmacist \r\n\t\t\t]\r\n\t\t\t, false\r\n\t\t);\r\n\t\tthis.inventoryEditAccess = this.sec.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.Inventory ]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t);\t\r\n\t\t// Set the inventorySiteId\r\n\t\tthis.route.paramMap.subscribe(params => {\r\n\t\t\tif (!this.isCentralized) { this.initFilters.inventorySiteId = parseInt(params.get('id'), 0); }\r\n\t\t\tif (this.firstLoad) {\r\n\t\t\t\tthis.filters.inventorySiteId = this.initFilters.inventorySiteId;\r\n\t\t\t\tthis.initFilters = Object.assign({}, this.filters);\r\n\t\t\t\tthis.serializeStatus();\r\n\t\t\t} else { this.resetFilters(); } // Reset filters when route params(id: changing inventories) change after component is first loaded.\r\n\t\t\tthis.inventorySiteId = this.filters.inventorySiteId;\r\n\t\t\tif (this.inventorySiteId != null) { this.getSiteName(); }\r\n\t\t});\r\n\r\n\t\tthis.isUser = this.user?.isRxUser;\r\n\t\tif (this.isUser) { \r\n\t\t\tthis.filters.userId = this.userId; \r\n\t\t\tthis.dataSource = \"api/Inventory/RxFulfillmentUser/GetShipmentList\";\r\n\t\t\tthis.createSource = \"api/Inventory/RxFulfillmentUser/CreateShipment/\";\r\n\t\t\tthis.editSource = \"/pharmacy/fulfillment/edit/\";\r\n this.title.setTitle('Refill Request List');\r\n this.sortData = [[ \"fulfillmentStatus\", \"asc\" ]];\r\n\t\t}\r\n\r\n\t\t// Set the status from the flowmometer\r\n\t\tthis.route.queryParamMap.subscribe(qParams => {\r\n\t\t\tconst statusParam = qParams.get(\"status\");\r\n\t\t\t// Reset filters when route query params(tab: changing inventory tab, or status: flowmometer) change after component is first loaded.\r\n\t\t\tif (!this.firstLoad) { this.resetFilters(); }\r\n\t\t\tif (statusParam) {\r\n\t\t\t\tsessionStorage.removeItem('rxFulfillmentFilters');\r\n this.selectedStatus = [parseInt(qParams.get('status'))];\r\n\t\t\t\tthis.serializeStatus();\r\n\t\t\t\tthis.filters.date = new DateRange(subYears(new Date(), 1), new Date());\r\n\t\t\t\tthis.sortDir = 'asc';\r\n\t\t\t} else { this.preFilter(); }\r\n\t\t});\r\n\t\tObject.assign({}, this.filters);\r\n\r\n\t\tthis.firstLoad = false;// Set this to false so the filters will be reset when the route params change.\r\n\t\tthis.columns.get('inventory').isVisible = this.isCentralized;\r\n\r\n\t\t// Set the siteName\r\n\t\tif (this.inventorySiteId != null) {\r\n\t\t\tthis.inventoryService.getSiteName(this, this.inventorySiteId).subscribe(siteName => { this.inventorySiteName = siteName; });\r\n\t\t}\r\n\t\tthis.btnFilterService.resetFilterData.subscribe(() => { this.resetFilters(); });\r\n\t\tthis.setScanFocus()\r\n\r\n\t\t// Hide delete button by default for users who cannot delete\r\n\t\tif (!this.inventoryEditAccess) this.columns.get('canDelete').isVisible = false;\r\n\t}\r\n\r\n\tscanSuccessFromList($event: number[]) {\r\n\t\tthis.filters.strShipmentIds = JSON.stringify($event);\r\n\t\tthis.table.ajaxReload();\r\n\t}\r\n\r\n\tresetFilters() {\r\n\t\t// Reset filters by copy filters values set on init \r\n\t\tthis.filters = Object.assign(this.filters, this.initFilters);\r\n\t\tthis.selectedStatus = JSON.parse(this.filters.status);\r\n\t\tthis.inputPlaceholder = 'Filter Rx';\r\n\t\t// Update url when it contains a status param.\r\n\t\tif (this.route.snapshot.queryParamMap.get('status')) { this.router.navigateByUrl('pharmacy/fulfillment/list'); }\r\n\t\tsessionStorage.removeItem('rxFulfillmentFilters');\r\n\t\tthis.table.ajaxReload();\r\n\t}\r\n\r\n\tnewFulfillment(isFacility: boolean) {\r\n\t\tthis.httpClient.get(`${this.createSource}?inventorySiteId=${this.inventorySiteId}&isFacility=${isFacility}`)\r\n\t\t\t.subscribe((shipmentId: number) => {\r\n\t\t\t\tthis.router.navigateByUrl('/pharmacy/inventories/fulfillment/edit/'\r\n\t\t\t\t\t+ encodeURIComponent(`${shipmentId}`) + '/' + encodeURIComponent(`${this.inventorySiteId}`));\r\n\t\t\t}\r\n\t\t);\r\n\t}\t\r\n\r\n\tnavigateToInventoryEdit() {\r\n\t\tlet inventoryId = this.inventorySiteId;\r\n\t\tif (\r\n\t\t\tthis.inventoryEditAccess \r\n\t\t\t&& inventoryId\r\n\t\t) { this.router.navigate([`/pharmacy/inventories/edit/${inventoryId}`]); }\r\n\t}\r\n\r\n\tgetSiteName() {\r\n\t\tthis.httpClient.get('api/Inventory/Inventory/GetInventorySiteName/' + this.inventorySiteId)\r\n\t\t\t.subscribe((name: string) => { this.currentSiteName = name; });\r\n\t}\r\n\r\n\t// Centralized Rx-Fulfillment Inventory Choice Modal\r\n\topenInventoryChoiceModal(\r\n\t\tmodal: any\r\n\t\t, isFacility: boolean\r\n\t): void {\r\n\t\tthis.rxDataStorageService.IsFacility = isFacility;\r\n\t\tthis.modalService.open(modal, { animation: false });\r\n\t}\t\r\n\r\n\topenRxListModal(\r\n\t\tmodal: any\r\n\t\t, shipmentId: number\r\n\t): void {\r\n\t\tthis.rxListShipmentId = shipmentId;\r\n\t\tthis.modalService.open(modal, { animation: false });\r\n\t}\r\n\r\n\topenCommentsModal(\r\n\t\tmodal: any\r\n\t\t, shipmentId: number\r\n\t) {\r\n\t\tthis.rxListShipmentId = shipmentId;\r\n\t\tthis.modalService.open(\r\n\t\t\tmodal\r\n\t\t\t, {\r\n\t\t\t\tanimation: false\r\n\t\t\t\t, beforeDismiss: () => {\r\n\t\t\t\t\tthis.table?.ajaxReload();\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tpreFilter() {\r\n\t\tif (this.hasStoredFilters()){\r\n\t\t\tconst preFilters = JSON.parse(this.getStoredFilters());\r\n\t\t\tthis.filters.firstName = preFilters?.firstName;\r\n\t\t\tthis.filters.lastName = preFilters?.lastName;\r\n\t\t\tthis.filters.dob = preFilters?.dob;\r\n\t\t\tthis.filters.zip = preFilters?.zip;\r\n\t\t\tthis.filters.facilityName = preFilters?.facilityName;\r\n\t\t\tthis.filters.pfsFormId = preFilters?.pfsFormId;\r\n\t\t\tif (!this.inventorySiteId) { this.filters.inventorySiteId = preFilters?.inventorySiteId; }\r\n\t\t\tthis.filters.zip = preFilters?.zip;\r\n\t\t\tthis.filters.isNotActive = preFilters?.isNotActive;\r\n\t\t\tthis.filters.status = preFilters?.status;\r\n\t\t\tthis.filters.facilityId = preFilters?.facilityId;\r\n\t\t\tthis.selectedStatus = JSON.parse(preFilters?.status);\r\n\t\t\tif (\r\n\t\t\t\tpreFilters.date !== undefined\r\n\t\t\t\t&& !this.hasNullDate(preFilters.date.dateBegin) \r\n\t\t\t\t&& !this.hasNullDate(preFilters.date.dateEnd)\r\n\t\t\t) { this.filters.date = new DateRange(new Date(preFilters.date.dateBegin), new Date(preFilters.date.dateEnd)); }\r\n\t\t}\r\n\t}\r\n\r\n\tfilterChange = () => this.setStoredFilters();\r\n\t// Checking to see if the filters have been changed since init.\r\n\t// Used to determine when to show the reset filters button next to the scan.\r\n\tfiltersTouched() { return JSON.stringify(this.filters) !== JSON.stringify(this.initFilters); }\r\n\tsetScanFocus() { setTimeout(() => { document.getElementById('scanRx')?.focus(); }, 1); }\r\n\tserializeStatus() { this.filters.status = JSON.stringify(this.selectedStatus); }\r\n\tscanRxNumber(rx: string) { this.inputPlaceholder = 'Filtered by Rx: ' + rx; }\r\n\tnavigateToFulfillment(inventoryId: string) { this.router.navigate([`/pharmacy/inventories/fulfillment/list/${inventoryId}`]); }\r\n\tgetIsFulfillmentOpenedLink = (isFulfillmentOpen: boolean): string => isFulfillmentOpen ? 'color:purple;' : '';\r\n\t// HELPERS\r\n\thasNullDate = (date: Date) : boolean => date == null; \r\n\t// Stored Filters\r\n\thasStoredFilters = () : boolean => sessionStorage.getItem('rxFulfillmentFilters') !== null;\r\n\tsetStoredFilters = () : void => sessionStorage.setItem('rxFulfillmentFilters', JSON.stringify(this.filters));\r\n\tgetStoredFilters = () => sessionStorage.getItem('rxFulfillmentFilters');\r\n\r\n\t// #region User functions\r\n\tcreateNewFacilityRx() {\r\n\t\tthis.httpClient.get(`api/Select/Facilities?userId=${this.userId}&businessArea=4&formTypeId=1`)\r\n\t\t\t.subscribe((items: SelectItem[]) => {\r\n\t\t\t\tthis.facilitySelectItems = items;\r\n\t\t\t\tif (items.length === 1) { this.newFacilityId = items[0].value; }\r\n\t\t\t}\r\n\t\t);\r\n\t\tthis.rxDataStorageService.IsFacility = true;\r\n\t\tthis.isNewFacility = true;\r\n\t\tthis.isError = false;\r\n\t\tthis.errorStr = \"\";\r\n\t}\r\n\r\n\tcancelRx() {\r\n\t\tthis.rxDataStorageService.IsFacility = false;\r\n\t\tthis.isNewFacility = false;\r\n\t\tthis.newFacilityId = null;\r\n\t\tthis.isError = false;\r\n\t\tthis.errorStr = \"\";\r\n\t}\r\n\r\n\tscanSuccessInventoryList($event: PatientDataVm) {\r\n\t\tif (!this.formatHelper.GetIsNully($event.errorMessage)) { \r\n\t\t\tthis.isError = true;\r\n\t\t\tthis.errorStr = $event.errorMessage;\r\n\t\t} else if ($event.inventories?.length === 0) {\r\n\t\t\tthis.isError = true;\r\n\t\t\tthis.errorStr = `Product NDC (${this.formatHelper.FormatNdc($event.ndc)}) not found for any inventory.`;\r\n\t\t} else if ($event.inventories?.length === 1) {\r\n\t\t\t// Head straight to a new RxFulfillment\r\n\t\t\tthis.chooseInventory($event.inventories[0].inventorySiteId, $event.inventories[0].inventoryName);\r\n\t\t} else if ($event.inventories?.length > 1) {\r\n\t\t\t// Set the modal up for the user to select an inventory choice\r\n\t\t\t//this.title = \"Choose an Inventory for \" + this.subTitle;\r\n\t\t\tthis.hasMultipleInvChoices = true;\r\n\t\t\tthis.model = $event;\r\n\t\t} else { \r\n\t\t\tthis.isError = true;\r\n\t\t\tthis.errorStr = `There were no inventories found for Rx ${$event.rxNumber}`;\r\n\t\t}\r\n\t}\r\n\r\n\tchooseInventory(\r\n\t\tinvId: number\r\n\t\t, invName: string\r\n\t) {\r\n\t\tlet isConfirmed = true;\r\n\t\tif (this.hasMultipleInvChoices) { isConfirmed = confirm(`Inventory: ${invName} was selected. Is this the correct inventory?`); }\r\n\t\t\r\n\t\tif (!isConfirmed) { return null; }\r\n\t\telse {\r\n\t\t\tconst patientData: PatientDataVm = this.rxDataStorageService.PatientData;\r\n\t\t\tpatientData.isFacility = this.rxDataStorageService.IsFacility;\r\n\t\t\t\r\n\t\t\tthis.httpClient.post(\r\n\t\t\t\t`api/Inventory/QS1/ValidateAndSaveRxData/` \r\n\t\t\t\t\t+ `?inventorySiteId=${invId}` \r\n\t\t\t\t\t+ `&isUser=${this.isUser}`\r\n\t\t\t\t\t+ `&facilityId=${this.newFacilityId}`\r\n\t\t\t\t, patientData\r\n\t\t\t).subscribe((returnData: PatientDataVm) => {\r\n\t\t\t\tif (\r\n\t\t\t\t\treturnData.errorMessage === null \r\n\t\t\t\t\t|| returnData.errorMessage === undefined\r\n\t\t\t\t) {\r\n\t\t\t\t\t// Need to write over the old patient data since there is a facility address check that may provide new info not available ealier\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\treturnData.address !== patientData.address \r\n\t\t\t\t\t\t|| returnData.address2 !== patientData.address2 \r\n\t\t\t\t\t\t|| returnData.city !== patientData.city\r\n\t\t\t\t\t\t|| returnData.state !== patientData.state \r\n\t\t\t\t\t\t|| returnData.zip !== patientData.zip\r\n\t\t\t\t\t) { this.rxDataStorageService.PatientData = returnData; }\r\n\r\n\t\t\t\t\t// Now that validation has passed, and a shipment has been created, we can navigate to it\r\n\t\t\t\t\tthis.router.navigateByUrl('/pharmacy/fulfillment/edit/'\r\n\t\t\t\t\t\t+ encodeURIComponent(`${returnData.shipmentId}`) + '/' + encodeURIComponent(`${invId}`));\r\n\t\t\t\t} else { \r\n\t\t\t\t\tthis.isError = true;\r\n\t\t\t\t\tthis.errorStr = returnData.errorMessage; \r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\t// #endregion\r\n}\r\n","\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\t\r\n\r\n\r\n\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t = In progress fulfillments that are close to being overdue\r\n\t\t
\r\n\t\t\r\n\t\t
\r\n\t\t\t = In progress fulfillments that are overdue\r\n\t\t
\r\n\t
\r\n
\r\n\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t \r\n\t\t\t= Fulfillment is open and a user is working on it. The name and how long it has been open will be on the tooltip.\r\n\t\t
\r\n\t\t
\r\n\t\t\tFulfillment Step \r\n\t\t\t= Fulfillment that has been opened before by a user. Record of who opened it is in Fulfillment Audit History.\r\n\t\t
\r\n\t
\r\n
\r\n\r\n
\r\n \r\n\t
\r\n\t\t

\r\n\t\t\t@if (inventorySiteName) { {{ inventorySiteName }} - }\r\n\t\t\t{{!isUser ? \"Rx Fulfillments\" : \"Refill Requests\"}}\r\n\t\t

\r\n\t\t@if (canCreateFulfillments) {\r\n\t\t\t
\r\n\t\t\t\t@if (!isUser) {\r\n\t\t\t\t\tNew CI/CHD Delivery\r\n\t\t\t\t\tNew Home Delivery\r\n\t\t\t\t} @else {\r\n\t\t\t\t\tNew Refill Request\r\n\t\t\t\t}\r\n\t\t\t
\r\n\t\t}\t\r\n\t
\r\n\t
\r\n\r\n\t\r\n\t
\r\n\t\t
\r\n\t\t\t@if (!isCentralized) {\r\n\t\t\t\t

\r\n\t\t\t\t\tRecords highlighted in red indicate that there are one or more rejected Rx numbers on a Fulfillment. Fulfillments older than two weeks that have\r\n\t\t\t\t\tno Products added in Step 1 are automatically deleted from this list.\r\n\t\t\t\t

\r\n\t\t\t} @else {

Records highlighted in red indicate that there are one or more rejected Rx numbers on a Fulfillment.

}\r\n\t\t\t\r\n\t\t\t\tThe Fulfillment Overdue Thresholds can be set per inventory via the Edit Inventory page.\r\n\t\t\t\t
\r\n\t\t\t\t@if (!isCentralized) { Select the icon to navigate to the edit page for {{ currentSiteName }}. }\r\n\t\t\t
\r\n\t\t
\r\n\t\t@if (\r\n\t\t\tcanEdit \r\n\t\t\t&& !isUser\r\n\t\t) {\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t}\r\n\t
\r\n\r\n\t\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t

DOB

\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\r\n\t\t\t\t@if (isCentralized) {\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\t\t\r\n\t\r\n\t\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{{ columns.get('fulfillmentStatus').displayName }}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n @if (isUser) {\r\n @if (\r\n row.fulfillmentStatus == \"Product Prep\" \r\n && row.userSubmitted != true\r\n ) { Not Submitted }\r\n @if (\r\n row.fulfillmentStatus == \"Product Prep\" \r\n && row.userSubmitted == true\r\n ) { Submitted }\r\n @else if (row.fulfillmentStatus == \"Shipping Prep\") { In Progress }\r\n @else if (row.fulfillmentStatus == \"QC Check\") { In Progress }\r\n @else if (row.fulfillmentStatus == \"Pending Shipment\") { Fulfilled }\r\n @else if (\r\n row.fulfillmentStatus == \"Completed\"\r\n && row.dateDeliveredStr == \"\"\r\n ) { Shipped }\r\n @else if (\r\n row.fulfillmentStatus == \"Completed\"\r\n && row.dateDeliveredStr != \"\"\r\n ) { Delivered }\r\n } @else { {{ row.fulfillmentStatus }} }\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t@if (\r\n row.isOpen \r\n && !isUser\r\n ) {\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('inventory').displayName }}\r\n\t\t\t\r\n\t\t\t\t@if (\r\n\t\t\t\t\tisCentralized \r\n\t\t\t\t\t&& !isUser\r\n\t\t\t\t) {\r\n\t\t\t\t\t{{ row.inventory }}\r\n\t\t\t\t} @else { {{ row.inventory }} }\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('deliveryType').displayName }}\r\n\t\t\t{{ row.deliveryType }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{{ columns.get('commentCount').displayName }}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{{ columns.get('dateCreatedStr').displayName }}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{{ row.dateCreatedStr }}\r\n\t\t\t\t@if (\r\n\t\t\t\t\trow.isOverdue1 \r\n\t\t\t\t\t|| row.isOverdue2\r\n\t\t\t\t) {\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t@if (row.pfsLink) {\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{{ row.createdBy }}\r\n\t\t\t\t} @else {
{{ row.createdBy }} }\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('rxNumberCount').displayName }}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('prescriptionCount').displayName }}\r\n\t\t\t{{ row.prescriptionCount }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('shipmentTypeStr').displayName }}\r\n\t\t\t\r\n\t\t\t\t{{ row.shipmentTypeStr }}\r\n\t\t\t\t@if (\r\n\t\t\t\t\trow.shipmentTypeStr === \"Fedex Ground\" \r\n\t\t\t\t\t|| row.shipmentTypeStr === \"Fedex Express\"\r\n\t\t\t\t) {\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{{ row.masterTrackingNumber }}\r\n\t\t\t\t} @else if (\r\n\t\t\t\t\trow.shipmentTypeStr === \"UPS Ground\" \r\n\t\t\t\t\t|| row.shipmentTypeStr === \"UPS Next Day Air\"\r\n\t\t\t\t) {\r\n\t\t\t\t\t
\r\n\t\t\t\t\t{{ row.masterTrackingNumber }}\r\n\t\t\t\t}\r\n\t\t\t\t@if (row.weightPounds) {
{{ row.weightPounds }} lbs }\r\n\t\t\t\t@if (row.packageStatus) {
{{ row.packageStatus }} }\r\n\t\t\t\t@if (row.dateDeliveredStr) {
{{ row.dateDeliveredStr }} }\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t\r\n\t\t\t{{columns.get('currentStep').displayName }}\r\n\t\t\t{{ row.currentStep }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('canDelete').displayName }}\r\n\t\t\t\r\n\t\t\t\t@if (\r\n\t\t\t\t\t(\r\n\t\t\t\t\t\trow.canDelete \r\n\t\t\t\t\t\t&& inventoryEditAccess\r\n\t\t\t\t\t)\r\n\t\t\t\t\t|| (\r\n\t\t\t\t\t\tisUser == true\r\n\t\t\t\t\t\t&& userId == row.createdById\r\n\t\t\t\t\t\t&& row.canDelete\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\r\n\r\n\t
\r\n
\r\n\t\r\n
\r\n
\r\n\t\t

New Refill Request

\t\t\r\n\t
\r\n\t
\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n \r\n\t\t\t\t\r\n\t\t
\r\n\r\n\t\t@if (newFacilityId > 0) {\r\n\t\t\t@if (!this.hasMultipleInvChoices) {\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t} @else {\r\n\t\t\t\t
\r\n\t\t\t\t\t

Multiple inventories contain the NDC for this Rx. Please choose the inventory to fill the prescription from.

\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t}\r\n\t\t}\r\n\t
\r\n\r\n\t@if (newFacilityId > 0) {\r\n\t\t


Warning: Scanning an Rx here will create a fulfillment.

\r\n\t}\r\n\r\n\t\r\n\t\t\r\n\t\r\n
","import { Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UntilDestroy } from '@ngneat/until-destroy';\r\nimport { faSquareQuestion } from '@fortawesome/pro-solid-svg-icons';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { InventoryService } from '../../inventory/services/inventory.service';\r\nimport { ProductBarcode } from '../../inventory/services/product-barcode';\r\nimport { ConfirmationModalComponent } from '../form-elements/components/confirmation-modal/confirmation-modal.component';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'pcg-scan-product',\r\n templateUrl: './scan-product.component.html',\r\n styleUrls: ['./scan-product.component.scss'],\r\n standalone: false\r\n})\r\nexport class ScanProductComponent implements OnInit {\r\n\r\n\t@Input() autofocus = false;\r\n\t@Input() includeProductInfo = false;\r\n\t@Input() inputPlaceholder = 'Scan Barcode';\r\n\t@Input() inventorySiteId: number;\r\n\t@Input() ndc: string;\r\n\t@Input() isDisabled = false;\r\n\t@Input() isFulfillment = true;\r\n\t@Input() isCiReceiving = false;\r\n\t@Input() isCiRepack = false;\r\n\t@Input() scanDetection = false; // When enabled, this will detect any scans on the the page.\r\n\t@Input() showHelp = true;\r\n\r\n\t@Output() scanSuccess = new EventEmitter();\r\n\t@Output() scanError = new EventEmitter();\r\n\t@Output() scan = new EventEmitter();\r\n\r\n\t@ViewChild('txtBarcode', { static: true }) txtBarcode: ElementRef;\r\n\t@ViewChild('helpModal', { static: true }) helpModal: TemplateRef;\r\n\r\n\tfaIcon = { faSquareQuestion };\r\n\r\n\t// These variables are used for the scanning sounds\r\n\tbeepSuccess = new Audio();\r\n\tbeepError = new Audio();\r\n\tisControlDown = false;\r\n\tisProcessing = false;\r\n\r\n\t// These variables are used for scan detection.\r\n\tprivate timeoutId: NodeJS.Timeout; \t// Used for scan detection to differentiate between scans and manual input based on how quickly the events are fired.\r\n\tprivate _input: string = ''; \t\t// _input will be populated with barcode to be emited when scan detection is enabled.\r\n\tprivate _oldValue: string = ''; \t// _oldValue is used to retain an inputs value if a scan is detected while focused on an input element other than the scan.\r\n \r\n // Used to determine if the event is coming from the numpad.\r\n NUMPAD_EVENT_LOCATION = 3;\r\n\r\n\t/** Handle control up and down and scan detection */\r\n\t@HostListener('document:keydown', ['$event'])\r\n\tcontrolDown(event: KeyboardEvent) {\r\n\t\tif (event.key === 'Control') { this.isControlDown = true; return; }\r\n\t\t// If scan detection has been enabled.\r\n\t\tif (this.scanDetection) { this.scanDetectionProcessing(event); }\r\n\t}\r\n\r\n\t@HostListener('document:keyup', ['$event'])\r\n\tcontrolUp(event: KeyboardEvent) { if (event.key === 'Control') { this.isControlDown = false; } }\r\n\r\n\tconstructor(\r\n\t\tprivate inventoryService: InventoryService\r\n\t\t, private toastr: ToastrService\r\n\t\t, public modalService: NgbModal\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tconst basePath = document.getElementsByTagName('base')[0].href;\r\n\t\tthis.beepSuccess.src = basePath + 'assets/sounds/GreenScan.mp3';\r\n\t\tthis.beepSuccess.load();\r\n\t\tthis.beepError.src = basePath + 'assets/sounds/RedScan.mp3';\r\n\t\tthis.beepError.load();\r\n\t\tif (this.autofocus) { this.txtBarcode.nativeElement.focus(); }\r\n\t}\r\n\r\n\tngOnChanges() { if (this.autofocus) { this.txtBarcode.nativeElement.focus(); } }\r\n\tfocus() { setTimeout(() => { this.txtBarcode.nativeElement.focus(); }, 50); }\r\n\r\n\t/**\r\n\t * Hitting F8 and Ctrl + ] will add a double arrow, which can be used as a delimiter.\r\n\t * New Zebra Scanners will add a delimeter with the Alt key.\r\n\t * Hitting Enter will process the barcode.\r\n\t * @param event The key down event\r\n\t*/\r\n\tkeyDown(event) {\r\n\t\tif (\r\n\t\t\tevent.key === 'F8' \r\n\t\t\t|| (\r\n\t\t\t\tthis.isControlDown \r\n\t\t\t\t&& event.key === ']'\r\n\t\t\t) \r\n\t\t\t|| event.key === 'Alt'\r\n\t\t) { this.txtBarcode.nativeElement.value += '↔'; } \r\n\t\telse if (event.key === 'Enter') {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.scanBarcode();\r\n\t\t}\r\n\t}\r\n\r\n\t/** This function gets fired when enter is pressed in the textbox or the scan button is pressed */\r\n\tscanBarcode() {\r\n\t\tthis.isProcessing = true; // Disable scan input.\r\n\t\ttry {\r\n\t\t\tif (!FormatHelperService.GetIsNullyOrWhitespace(this.txtBarcode?.nativeElement?.value)) {\r\n\t\t\t\tconst barcodeStr: string = this.txtBarcode.nativeElement.value;\r\n\t\t\t\tthis.txtBarcode.nativeElement.value = '';\r\n\t\t\t\t// Get the barcode info\r\n\t\t\t\tlet barcode: ProductBarcode = null;\r\n\t\t\t\t// Standard barcode, can only get the NDC\r\n\t\t\t\tif (barcodeStr.length === 12) {\r\n\t\t\t\t\tbarcode = {\r\n\t\t\t\t\t\tndc10: this.inventoryService.parseNdc10FromGtin(barcodeStr)\r\n\t\t\t\t\t\t, lotNumber: null\r\n\t\t\t\t\t\t, serialNumber: null\r\n\t\t\t\t\t\t, expirationDate: null\r\n\t\t\t\t\t\t, lotExpId: null\r\n\t\t\t\t\t};\r\n\t\t\t\t} else if (\r\n\t\t\t\t\tbarcodeStr?.split(\" \")?.length === 2 \r\n\t\t\t\t\t|| barcodeStr?.includes(\";\")\r\n\t\t\t\t) {\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t!this.ndc \r\n\t\t\t\t\t\t&& !barcodeStr?.includes(\";\")\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\tthis.toastr.error(\r\n\t\t\t\t\t\t\t'Please select an Rx Number before scanning product.'\r\n\t\t\t\t\t\t\t, null\r\n\t\t\t\t\t\t\t, { positionClass: 'toast-top-right', timeOut: 2000 }\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t\treturn this.emitScan(null);\r\n\t\t\t\t\t} \t\r\n\t\t\t\t\tthis.inventoryService.getFastPackProductInfo(\r\n\t\t\t\t\t\tthis\r\n\t\t\t\t\t\t, this.inventorySiteId\r\n\t\t\t\t\t\t, this.ndc\r\n\t\t\t\t\t\t, barcodeStr\r\n\t\t\t\t\t).subscribe(productInfo => {\r\n\t\t\t\t\t\tif (productInfo) {\r\n\t\t\t\t\t\t\tbarcode = {\r\n\t\t\t\t\t\t\t\tndc10: productInfo.ndc10\r\n\t\t\t\t\t\t\t\t, lotNumber: barcodeStr?.includes(\";\") \r\n\t\t\t\t\t\t\t\t\t? barcodeStr?.split(\";\")[2].toUpperCase() \r\n\t\t\t\t\t\t\t\t\t: barcodeStr?.split(\" \")[1].toUpperCase()\r\n\t\t\t\t\t\t\t\t, serialNumber: null\r\n\t\t\t\t\t\t\t\t, expirationDate: barcodeStr?.includes(\";\") \r\n\t\t\t\t\t\t\t\t\t? new Date(barcodeStr?.split(\";\")[3]) \r\n\t\t\t\t\t\t\t\t\t: new Date(barcodeStr?.split(\" \")[0])\r\n\t\t\t\t\t\t\t\t, lotExpId: productInfo.lotExpId\r\n\t\t\t\t\t\t\t\t, productInfo: productInfo\r\n\t\t\t\t\t\t\t\t, quantity: barcodeStr?.includes(\";\") \r\n\t\t\t\t\t\t\t\t\t? this.parseAtp2Qty(barcodeStr?.split(\";\")[4]) \r\n\t\t\t\t\t\t\t\t\t: null\r\n\t\t\t\t\t\t\t\t, isBulkLot: productInfo.isBulkLot\r\n\t\t\t\t\t\t\t\t, currentStock: productInfo?.currentStock\r\n\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t// Pass in optional param 'barcodeStr' to check if NDCs match (scanned NDC vs expected)\r\n\t\t\t\t\t\t\tthis.emitScan(barcode, barcodeStr);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\tbarcodeStr?.includes(\";\") \r\n\t\t\t\t\t\t\t\t&& this.isCiRepack\r\n\t\t\t\t\t\t\t) { //For Ci Repack ATP2 Scans\r\n\t\t\t\t\t\t\t\tbarcode = {\r\n\t\t\t\t\t\t\t\t\tndc10: barcodeStr?.split(\";\")[1]\r\n\t\t\t\t\t\t\t\t\t, lotNumber: barcodeStr?.split(\";\")[2].toUpperCase()\r\n\t\t\t\t\t\t\t\t\t, expirationDate: new Date(barcodeStr?.split(\";\")[3])\r\n\t\t\t\t\t\t\t\t\t, quantity: this.parseAtp2Qty(barcodeStr?.split(\";\")[4])\r\n\t\t\t\t\t\t\t\t};\r\n\t\t\t\t\t\t\t\treturn this.emitScan(barcode);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t!this.ndc \r\n\t\t\t\t\t\t\t\t&& barcodeStr?.includes(\";\")\r\n\t\t\t\t\t\t\t) { \r\n\t\t\t\t\t\t\t\tthis.toastr.error(\r\n\t\t\t\t\t\t\t\t\t'Please select an Rx Number before scanning product.'\r\n\t\t\t\t\t\t\t\t\t, null\r\n\t\t\t\t\t\t\t\t\t, { positionClass: 'toast-top-right', timeOut: 2000 }\r\n\t\t\t\t\t\t\t\t); \r\n\t\t\t\t\t\t\t} else { \r\n\t\t\t\t\t\t\t\tthis.toastr.error(`Product scanned does not match prescribed product. Please check the Rx Number and try again. \r\n\t\t\t\t\t\t\t\t\tIf this is an ATP label, ensure that the product has \"Is Bulk Lot?\" and \"Use Parata Lot Number\" \r\n\t\t\t\t\t\t\t\t\ttoggled within the product detail of the current inventory.`, null, { positionClass: 'toast-top-right', timeOut: 8000 });\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn this.emitScan(null);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Fancy GS1 barcode, can get all data\r\n\t\t\t\t\tbarcode = this.inventoryService.scanGs1Barcode(barcodeStr);\r\n\t\t\t\t}\r\n\t\t\t\t// Emit the scan events and get the product info, if desired\r\n\t\t\t\tif (\r\n\t\t\t\t\tthis.includeProductInfo \r\n\t\t\t\t\t&& barcode !== null \r\n\t\t\t\t\t&& (\r\n\t\t\t\t\t\tthis.isFulfillment \r\n\t\t\t\t\t\t|| this.isCiReceiving\r\n\t\t\t\t\t)\r\n\t\t\t\t) {\r\n\t\t\t\t\tthis.inventoryService.getNdcProductInfo(\r\n\t\t\t\t\t\tthis\r\n\t\t\t\t\t\t, barcode.ndc10\r\n\t\t\t\t\t\t, this.inventorySiteId\r\n\t\t\t\t\t).subscribe(productInfo => {\r\n\t\t\t\t\t\tif (productInfo) {\r\n\t\t\t\t\t\t\tbarcode.productInfo = productInfo;\r\n\t\t\t\t\t\t\tif (\r\n\t\t\t\t\t\t\t\t!barcode.productInfo.isInventoryProductActive \r\n\t\t\t\t\t\t\t\t&& this.isFulfillment\r\n\t\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\tthis.toastr.error('The product scanned is not active in your current inventory.', null, { positionClass: 'toast-top-right', timeOut: 2000 });\r\n\t\t\t\t\t\t\t\tthis.beepError.play();\r\n\t\t\t\t\t\t\t\tthis.scanError.emit(barcode);\r\n\t\t\t\t\t\t\t\tthis.isProcessing = false;\r\n\t\t\t\t\t\t\t\tconsole.log(\"scan-product: scanBarcode() isProcessing line 226\", this.isProcessing);\r\n\t\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t} else if (!this.isCiReceiving) { \r\n\t\t\t\t\t\t\tbarcode = null; \r\n\t\t\t\t\t\t\tthis.toastr.error('The product scanned does not exist in the GlobalNDC table.', null, { positionClass: 'toast-top-right', timeOut: 2000 });\r\n\t\t\t\t\t\t\tthis.beepError.play();\r\n\t\t\t\t\t\t\tthis.scanError.emit(barcode);\r\n\t\t\t\t\t\t\tthis.isProcessing = false;\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.emitScan(barcode);\t\t\r\n\t\t\t\t\t});\r\n\t\t\t\t} else { this.emitScan(barcode); }\r\n\t\t\t}\r\n\t\t\tthis.isProcessing = false; // ensure scan is re-enabled.\r\n\t\t} catch (error) {\r\n\t\t\tthis.isProcessing = false; // ensure scan is re-enabled.\r\n\t\t\tconsole.log(error);\r\n\t\t\tthrow error;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * This function parses the Quantity from the ATP2 Barcode \r\n\t * which might have partial pills\r\n\t * @param quantity \r\n\t * @returns Quantity parsed\r\n\t*/\r\n\tparseAtp2Qty(quantity: string) {\r\n\t\tif (quantity.includes('x')) {\r\n\t\t\tlet wholeNumber = parseInt(quantity?.split('x')[0]);\r\n\t\t\tlet fraction = quantity?.split('x')[1];\r\n\t\t\tlet dividend = parseInt(fraction?.split('/')[0]);\r\n\t\t\tlet divisor = parseInt(fraction?.split('/')[1]);\r\n\t\t\tlet finalNumber = wholeNumber * (dividend / divisor);\r\n\t\t\treturn finalNumber;\r\n\t\t} else { return parseInt(quantity); }\r\n\t}\r\n\r\n\t/**\r\n\t * This function emits the scan events that can be used by other components\r\n\t * @param barcode The ProductBarcode that was parsed\r\n\t*/\r\n\temitScan(\r\n\t\tbarcode: ProductBarcode\r\n\t\t, barcodeStr: string = null\r\n\t) {\r\n\t\tthis.isProcessing = false; // ensure scan is re-enabled.\r\n\t\tlet scannedNdc = null;\r\n\t\tif (barcodeStr !== null) { scannedNdc = FormatHelperService.FormatNdc(barcodeStr.split(\";\")[1]); }\r\n\t\tif (barcode !== null) {\r\n\t\t\t// If scanned NDC does not match the product NDC for the selected Rx, open confirmation modal\r\n\t\t\tif (\r\n\t\t\t\tscannedNdc !== null \r\n\t\t\t\t&& scannedNdc !== this.ndc\r\n\t\t\t) {\tthis.confirmIncorrectNdc(barcode, scannedNdc); }\r\n\t\t\telse {\r\n\t\t\t\t// Check if the inventory product is active, if not return an error message.\r\n\t\t\t\tthis.beepSuccess.play();\r\n\t\t\t\tthis.scanSuccess.emit(barcode);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.beepError.play();\r\n\t\t\tthis.scanError.emit(barcode);\r\n\t\t}\r\n\t\tthis.scan.emit(barcode);\r\n\t}\r\n\r\n\tscanDetectionProcessing(event: KeyboardEvent) {\r\n let target = (event.target as HTMLFormElement);\r\n\t\t// When focused in the scanner, return to speed things up.\r\n\t\tif (target.id === this.txtBarcode.nativeElement.id) { return; }\r\n\t\t// Since the scan happens so rapidly, timeoutId having value should indicate a scan is in progress.\r\n\t\tif (this.timeoutId) {\r\n\t\t\t// Prevent the timeout function below from happening. timeoutId will be the for the last time this was fired in the last 60 milliseconds.\r\n\t\t\tclearTimeout(this.timeoutId);\r\n\t\t\t// Getting here means that a scan is most likey in progress. If the user is currently focused on another input element, we want to retain the elements original value. \r\n\t\t\ttarget.value = this._oldValue;\r\n\t\t}\r\n\t\t// Save the inputs original value. \r\n\t\telse { this._oldValue = target?.value; }\r\n\t\t// The following should only process on manual inputs, or when the last character of a scan has been entered.\r\n\t\tthis.timeoutId = setTimeout(() => {\r\n\t\t\t// reset these variables after manual entry or the last character of a scan has been entered.\r\n\t\t\tthis._input = '';\r\n\t\t\tthis.timeoutId = null;\r\n\t\t\t// On 'Enter' trigger the key down, validation in this function will take over from here.\r\n\t\t\tif (event.key === 'Enter') { this.keyDown(event); }\r\n\t\t}, 30); // May need to up the timeout if the browser cannot process quickly enough.\r\n\t\t// The last character on a scan should be 'Enter', once input set the scan value.\r\n\t\tif (event.key === 'Enter') { this.txtBarcode.nativeElement.value = this._input; }\r\n\t\t// Capture delimeter appropriately.\r\n\t\telse if (\r\n\t\t\tevent.key === 'F8' \r\n\t\t\t|| (\r\n\t\t\t\tthis.isControlDown \r\n\t\t\t\t&& event.key === ']'\r\n\t\t\t)\r\n\t\t\t|| event.key === 'Alt'\r\n\t\t) { this._input += '↔'; }\r\n\t\t// Ignore complex keys.\r\n\t\telse if (event.key?.length > 1) { return; }\r\n // Ignore keys that are from the Numpad. Zebra scanners append '0029' characters (Alt+29 = ↔)\r\n else if (event.location == this.NUMPAD_EVENT_LOCATION) { return; }\r\n\t\t// Adding the event key to the '_input' variable here since scans should finish procesessing before the value is reset in the timeout function above.\r\n\t\telse { this._input += event.key; }\r\n\t}\r\n\r\n\t// Opens confirmation modal if the scanned NDC != NDC passed into this component from the selected Rx\r\n\tconfirmIncorrectNdc(\r\n\t\tbarcode: ProductBarcode\r\n\t\t, scannedNdc: string\r\n\t) {\r\n\t\tconst modal = this.modalService.open(ConfirmationModalComponent);\r\n\t\t// Passes modal reference into component to give us the ability to close it.\r\n\t\tmodal.componentInstance.modalRef = modal;\r\n\t\t// Instantiates properties in the component.\r\n\t\tmodal.componentInstance.confirmationMessage = \r\n\t\t`

The scanned product NDC (${scannedNdc}) does not match the selected Rx product NDC (${this.ndc}).

\r\n\t\t

Are you sure you want to continue?

`;\r\n\r\n\t\tmodal.result.then((emittedValue) => {\r\n\t\t\tif(emittedValue) {\r\n\t\t\t\tthis.beepSuccess.play();\r\n\t\t\t\tthis.scanSuccess.emit(barcode);\r\n\t\t\t}\r\n\t\t}).catch(err => {\r\n\t\t\t// Prevents Uncaught (in promise) error when user \r\n\t\t\t// closes modal from clicking outside modal. \r\n\t\t});\r\n\t}\r\n\r\n\thelpButtonClicked() { this.modalService.open(this.helpModal); }\r\n}\r\n","\r\n\r\n
\r\n\t
\r\n\t\t\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\t\r\n
\r\n\r\n\r\n\r\n\t
\r\n\t\t
Scanner Help
\r\n\t\t\r\n\t
\r\n\t\r\n\t
\r\n\t\t
\r\n\t\t\t\"QR\r\n\t\t
\r\n\t\t

\r\n\t\t\tPlease locate the GS1 DataMatrix barcode that looks similar to this one.

\r\n\t\t\tStandard barcodes will not work.

\r\n\t\t\tSimply use your barcode scanner to scan this making sure you have first clicked into the input field to the\r\n\t\t\tleft of the help button.

\r\n\t\t\tTip: If your barcode and QR matrix are close to each other cover up the barcode with your other hand.\r\n\t\t

\r\n\t
\r\n\r\n\t
\r\n\t\t\r\n\t
\r\n
","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class AuditHistoryVm {\r\n\tauditHistoryID: number;\r\n\tdateChanged: Date;\r\n\tdateChangedFormatted?: string;\r\n\tfield?: string;\r\n\tchangedFrom?: string;\r\n\tchangedTo?: string;\r\n\tchangedBy?: string;\r\n\tpfsLink?: string;\r\n\tmodule?: string;\r\n\trecordAffected?: string;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'auditHistoryID': new UntypedFormControl(0, [...(validators['auditHistoryID'] ?? []), ...[Validators.required]]),\r\n\t\t\t'dateChanged': new UntypedFormControl('', [...(validators['dateChanged'] ?? []), ...[Validators.required]]),\r\n\t\t\t'dateChangedFormatted': new UntypedFormControl(null, [...(validators['dateChangedFormatted'] ?? []), ...[]]),\r\n\t\t\t'field': new UntypedFormControl(null, [...(validators['field'] ?? []), ...[]]),\r\n\t\t\t'changedFrom': new UntypedFormControl(null, [...(validators['changedFrom'] ?? []), ...[]]),\r\n\t\t\t'changedTo': new UntypedFormControl(null, [...(validators['changedTo'] ?? []), ...[]]),\r\n\t\t\t'changedBy': new UntypedFormControl(null, [...(validators['changedBy'] ?? []), ...[]]),\r\n\t\t\t'pfsLink': new UntypedFormControl(null, [...(validators['pfsLink'] ?? []), ...[]]),\r\n\t\t\t'module': new UntypedFormControl(null, [...(validators['module'] ?? []), ...[]]),\r\n\t\t\t'recordAffected': new UntypedFormControl(null, [...(validators['recordAffected'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['dateChanged', {\"orderId\":0,\"sortColumn\":\"dateChanged\",\"searchColumn\":\"dateChangedFormatted\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Date Changed\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['module', {\"orderId\":1,\"sortColumn\":\"module\",\"searchColumn\":\"module\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Module\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['recordAffected', {\"orderId\":2,\"sortColumn\":\"recordAffected\",\"searchColumn\":\"recordAffected\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Record Affected\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['field', {\"orderId\":3,\"sortColumn\":\"field\",\"searchColumn\":\"field\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Field\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['changedFrom', {\"orderId\":4,\"sortColumn\":\"changedFrom\",\"searchColumn\":\"changedFrom\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Changed From\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['changedTo', {\"orderId\":5,\"sortColumn\":\"changedTo\",\"searchColumn\":\"changedTo\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Changed To\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['changedBy', {\"orderId\":6,\"sortColumn\":\"changedBy\",\"searchColumn\":\"changedBy\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Changed By\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): AuditHistoryVmFromFg {\r\n\t\treturn new AuditHistoryVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class AuditHistoryVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget auditHistoryID(): number {\r\n\t\treturn this.fg.get('auditHistoryID').value;\r\n\t}\r\n\tset auditHistoryID(val) {\r\n\t\tthis.fg.get('auditHistoryID').setValue(val);\r\n\t}\r\n\r\n\tget dateChanged(): Date {\r\n\t\treturn this.fg.get('dateChanged').value;\r\n\t}\r\n\tset dateChanged(val) {\r\n\t\tthis.fg.get('dateChanged').setValue(val);\r\n\t}\r\n\r\n\tget dateChangedFormatted(): string {\r\n\t\treturn this.fg.get('dateChangedFormatted').value;\r\n\t}\r\n\tset dateChangedFormatted(val) {\r\n\t\tthis.fg.get('dateChangedFormatted').setValue(val);\r\n\t}\r\n\r\n\tget field(): string {\r\n\t\treturn this.fg.get('field').value;\r\n\t}\r\n\tset field(val) {\r\n\t\tthis.fg.get('field').setValue(val);\r\n\t}\r\n\r\n\tget changedFrom(): string {\r\n\t\treturn this.fg.get('changedFrom').value;\r\n\t}\r\n\tset changedFrom(val) {\r\n\t\tthis.fg.get('changedFrom').setValue(val);\r\n\t}\r\n\r\n\tget changedTo(): string {\r\n\t\treturn this.fg.get('changedTo').value;\r\n\t}\r\n\tset changedTo(val) {\r\n\t\tthis.fg.get('changedTo').setValue(val);\r\n\t}\r\n\r\n\tget changedBy(): string {\r\n\t\treturn this.fg.get('changedBy').value;\r\n\t}\r\n\tset changedBy(val) {\r\n\t\tthis.fg.get('changedBy').setValue(val);\r\n\t}\r\n\r\n\tget pfsLink(): string {\r\n\t\treturn this.fg.get('pfsLink').value;\r\n\t}\r\n\tset pfsLink(val) {\r\n\t\tthis.fg.get('pfsLink').setValue(val);\r\n\t}\r\n\r\n\tget module(): string {\r\n\t\treturn this.fg.get('module').value;\r\n\t}\r\n\tset module(val) {\r\n\t\tthis.fg.get('module').setValue(val);\r\n\t}\r\n\r\n\tget recordAffected(): string {\r\n\t\treturn this.fg.get('recordAffected').value;\r\n\t}\r\n\tset recordAffected(val) {\r\n\t\tthis.fg.get('recordAffected').setValue(val);\r\n\t}\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { AuditHistoryVm } from 'app/shared/generated/Models/AuditHistoryVm';\r\nimport { TableComponent } from '../table/table.component';\r\n\r\n@Component({\r\n selector: 'pcg-audit-history',\r\n templateUrl: './audit-history.component.html',\r\n styleUrls: ['./audit-history.component.scss'],\r\n standalone: false\r\n})\r\nexport class AuditHistoryComponent implements OnInit {\r\n\r\n\t@ViewChild(TableComponent, { static: true }) table: TableComponent;\r\n\r\n @Input() id: number;\r\n @Input() viewModel: string;\r\n @Input() auditHistoryName: string;\r\n @Input() hideBackButton: boolean = false;\r\n @Input() pageSize: number = 100;\r\n\r\n columns = AuditHistoryVm.ColumnDefs;\r\n auditName: string;\r\n filters = {\r\n id: null,\r\n viewModel: null,\r\n auditName: null\r\n };\r\n\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute\r\n ) { }\r\n\r\n ngOnInit() {\r\n if (this.id && this.viewModel && this.auditHistoryName) {\r\n this.filters.id = this.id;\r\n this.filters.viewModel = this.viewModel;\r\n this.filters.auditName = this.auditHistoryName;\r\n } else if (this.activatedRoute.snapshot.params['vmType'] && this.activatedRoute.snapshot.params['auditName']) {\r\n this.filters.id = this.activatedRoute.snapshot.params['id'];\r\n this.filters.viewModel = this.activatedRoute.snapshot.params['vmType'];\r\n this.filters.auditName = this.activatedRoute.snapshot.params['auditName'];\r\n } else {\r\n this.filters.id = this.activatedRoute.snapshot.params['id'];\r\n this.filters.viewModel = localStorage?.getItem('vmType');\r\n this.filters.auditName = localStorage?.getItem('auditName');\r\n }\r\n\t\tif (this.activatedRoute.snapshot.queryParamMap.get('hideBackButton')) {\r\n\t\t\tconst hideBackButtonStr = this.activatedRoute.snapshot.queryParamMap.get('hideBackButton');\r\n\t\t\tif (hideBackButtonStr === \"true\") { this.hideBackButton = true; }\r\n\t\t}\r\n // Display the module comment by default for CI Repack. This will eventually by default shown for all BA's once audit enhancements are complete. \r\n if ((this.filters.viewModel as string)?.includes('CIRepack')) { this.columns.get('module').isVisible = true; } \r\n }\r\n\r\n // CI Navigation Conditional Methods\r\n isCi = () => this.viewModel?.includes(\"Job\") || this.filters?.viewModel?.includes(\"Job\")\r\n isCiJob = () => this.viewModel?.includes(\"Job\") || this.filters?.viewModel?.includes(\"Job\")\r\n goBack() { window.history.back(); }\r\n}\r\n","

Audit History

\r\n\r\n \r\n \r\n {{ columns.get('friendlyRecordId').displayName }}\r\n {{ row.friendlyRecordId }}\r\n \r\n\r\n \r\n {{ columns.get('dateChanged').displayName }}\r\n {{ row.dateChangedFormatted }}\r\n \r\n\r\n\t\r\n\t\t{{ columns.get('module').displayName }}\r\n\t\t{{ row.module }}\r\n\t\r\n\r\n \r\n\t\t{{ columns.get('recordAffected').displayName }}\r\n\t\t{{ row.recordAffected }}\r\n\t\r\n\r\n \r\n {{ columns.get('field').displayName }}\r\n {{ row.field }}\r\n \r\n\r\n \r\n {{ columns.get('changedFrom').displayName }}\r\n {{ row.changedFrom }}\r\n \r\n\r\n \r\n {{ columns.get('changedTo').displayName }}\r\n {{ row.changedTo }}\r\n \r\n\r\n \r\n {{ columns.get('changedBy').displayName }}\r\n {{ row.changedBy }}\r\n \r\n\r\n\r\n
\r\n Back\r\n
","// tslint:disable: quotemark\r\nexport enum VerificationTypeEnum {\r\n\tFido = 0,\r\n\tFingerprint = 1,\r\n\tPin = 2,\r\n\tCredentials = 3\r\n}\r\n\r\nexport namespace VerificationTypeEnum {\r\n\texport function toDescription(val: VerificationTypeEnum) {\r\n\t\tswitch (val) {\r\n\t\t\tcase 0:\r\n\t\t\t\treturn \"FIDO device without biometrics\";\r\n\t\t\tcase 1:\r\n\t\t\t\treturn \"Biometric identification\";\r\n\t\t\tcase 2:\r\n\t\t\t\treturn \"PIN\";\r\n\t\t\tcase 3:\r\n\t\t\t\treturn \"Credentials\";\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\texport function toDisplay(val: VerificationTypeEnum) {\r\n\t\tswitch (val) {\r\n\t\t\tcase 0:\r\n\t\t\t\treturn \"Device\";\r\n\t\t\tcase 1:\r\n\t\t\t\treturn \"SecuGen\";\r\n\t\t\tcase 2:\r\n\t\t\t\treturn \"PIN\";\r\n\t\t\tcase 3:\r\n\t\t\t\treturn \"Credentials\";\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../table/interfaces/pcg-table-column.interface';\r\nimport { VerificationVm, VerificationVmFromFg } from '../../Administration/Models/VerificationVm';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class VerificationSettingVm {\r\n\tbusinessArea?: any;\r\n\tamountOfChoices?: any;\r\n\tverificationChoices?: any;\r\n\tverificationSettings?: VerificationVm[];\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'businessArea': new UntypedFormControl('', [...(validators['businessArea'] ?? []), ...[Validators.required]]),\r\n\t\t\t'amountOfChoices': new UntypedFormControl(null, [...(validators['amountOfChoices'] ?? []), ...[]]),\r\n\t\t\t'verificationChoices': new UntypedFormControl(null, [...(validators['verificationChoices'] ?? []), ...[]]),\r\n\t\t\t'verificationSettings': new UntypedFormArray([])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): VerificationSettingVmFromFg {\r\n\t\treturn new VerificationSettingVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class VerificationSettingVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget businessArea(): any {\r\n\t\treturn this.fg.get('businessArea').value;\r\n\t}\r\n\tset businessArea(val) {\r\n\t\tthis.fg.get('businessArea').setValue(val);\r\n\t}\r\n\r\n\tget amountOfChoices(): any {\r\n\t\treturn this.fg.get('amountOfChoices').value;\r\n\t}\r\n\tset amountOfChoices(val) {\r\n\t\tthis.fg.get('amountOfChoices').setValue(val);\r\n\t}\r\n\r\n\tget verificationChoices(): any {\r\n\t\treturn this.fg.get('verificationChoices').value;\r\n\t}\r\n\tset verificationChoices(val) {\r\n\t\tthis.fg.get('verificationChoices').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class VerificationVm {\r\n\tverificationEnum?: any;\r\n\tverificationStr?: string;\r\n\tnumberOfVerificationsRequired?: any;\r\n\tverificationTypesAllowed?: any;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'verificationEnum': new UntypedFormControl(null, [...(validators['verificationEnum'] ?? []), ...[]]),\r\n\t\t\t'verificationStr': new UntypedFormControl(null, [...(validators['verificationStr'] ?? []), ...[]]),\r\n\t\t\t'numberOfVerificationsRequired': new UntypedFormControl(null, [...(validators['numberOfVerificationsRequired'] ?? []), ...[]]),\r\n\t\t\t'verificationTypesAllowed': new UntypedFormControl(null, [...(validators['verificationTypesAllowed'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): VerificationVmFromFg {\r\n\t\treturn new VerificationVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class VerificationVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget verificationEnum(): any {\r\n\t\treturn this.fg.get('verificationEnum').value;\r\n\t}\r\n\tset verificationEnum(val) {\r\n\t\tthis.fg.get('verificationEnum').setValue(val);\r\n\t}\r\n\r\n\tget verificationStr(): string {\r\n\t\treturn this.fg.get('verificationStr').value;\r\n\t}\r\n\tset verificationStr(val) {\r\n\t\tthis.fg.get('verificationStr').setValue(val);\r\n\t}\r\n\r\n\tget numberOfVerificationsRequired(): any {\r\n\t\treturn this.fg.get('numberOfVerificationsRequired').value;\r\n\t}\r\n\tset numberOfVerificationsRequired(val) {\r\n\t\tthis.fg.get('numberOfVerificationsRequired').setValue(val);\r\n\t}\r\n\r\n\tget verificationTypesAllowed(): any {\r\n\t\treturn this.fg.get('verificationTypesAllowed').value;\r\n\t}\r\n\tset verificationTypesAllowed(val) {\r\n\t\tthis.fg.get('verificationTypesAllowed').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnInit } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormGroup } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { faUsbDrive } from '@fortawesome/pro-solid-svg-icons';\r\nimport { Observable } from 'rxjs';\r\nimport { tap } from 'rxjs/operators';\r\n\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { VerificationTypeEnum } from 'app/core/enums/generated/VerificationTypeEnum';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { VerificationSettingVm } from 'app/shared/generated/Administration/Models/VerificationSettingVm';\r\nimport { VerificationVm } from 'app/shared/generated/Administration/Models/VerificationVm';\r\nimport { SelectItem } from 'app/shared/models/select-item';\r\n\r\n@Component({\r\n selector: 'pcg-verification-settings',\r\n templateUrl: './verification-settings.component.html',\r\n styleUrls: ['./verification-settings.component.scss'],\r\n standalone: false\r\n})\r\nexport class VerificationSettingsComponent implements OnInit {\r\n\r\n @Input() businessArea: BusinessAreaEnum;\r\n @Input() getUrlAction: string;\r\n @Input() saveUrlAction: string;\r\n\r\n formGroup = VerificationSettingVm.Form;\r\n\tmodel = VerificationSettingVm.GetModel(this.formGroup);\r\n\tmodel$: Observable;\r\n verificationVm: VerificationVm[] = [];\r\n amountOfSigs: SelectItem[] = [];\r\n user: UserJsVm;\r\n\r\n canEdit = false;\r\n\r\n faIcon = { faUsbDrive };\r\n\r\n verificationType = VerificationTypeEnum;\r\n\r\n constructor(\r\n private httpClient: HttpClient\r\n\t\t, private sms: SystemMessageService\r\n\t\t, public router: Router\r\n\t\t, public sec: SecurityService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.user = this.sec.getUser();\r\n this.checkSecurity();\r\n \r\n this.model$ = this.httpClient\r\n\t\t\t.get(`api/Administration/VerificationSettings/${this.getUrlAction}`)\r\n\t\t\t.pipe(tap((vm: VerificationSettingVm) => {\r\n this.addVerificationSettings(vm.verificationSettings.length);\r\n\t\t\t\tthis.formGroup.setValue(vm); \r\n\t\t\t\tthis.amountOfSigs = vm.amountOfChoices;\r\n\t\t\t\tthis.verificationVm = this.formGroup.get('verificationSettings').value;\t\r\n\t\t\t}));\r\n }\r\n\r\n checkSecurity() {\r\n if (this.businessArea === BusinessAreaEnum.CI) {\r\n this.canEdit = this.sec.hasModuleAccess(\r\n [ BusinessAreaEnum.CI ]\r\n , SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n );\r\n } else if (this.businessArea === BusinessAreaEnum.Inventory) {\r\n this.canEdit = this.sec.hasModuleAccess(\r\n [ BusinessAreaEnum.Inventory ]\r\n , SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n );\r\n } else if (this.businessArea === BusinessAreaEnum.Admin) {\r\n this.canEdit = this.sec.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n );\r\n } else if (this.businessArea === BusinessAreaEnum.SysInv) {\r\n this.canEdit = this.sec.hasModuleAccess(\r\n [ BusinessAreaEnum.SysInv ]\r\n , SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n );\r\n }\r\n if (!this.canEdit) {\r\n this.router.navigateByUrl('dashboard');\r\n this.sms.setSystemMessage(\"Access Denied. You do not have sufficient permission level.\", \"error\");\r\n }\r\n }\r\n\r\n addVerificationSettings(amount: number) {\r\n for (let i = 0; i < amount; i++) {\r\n\t\t\t(this.formGroup.controls.verificationSettings as UntypedFormArray)\r\n .push(new UntypedFormGroup(VerificationVm.FormData));\r\n\t\t}\r\n }\r\n\r\n numVerificationsChange(val: number, cntrl, item: VerificationVm ) {\r\n\t\tcntrl.setValue(val);\r\n\t\tthis.saveForm(item);\r\n\t}\r\n\r\n verificationTypeChange(val: number, cntrl, isSelected: boolean, item: VerificationVm) {\r\n\t\tconst index = cntrl.value.indexOf(val, 0);\r\n\t\tif (isSelected === true) { cntrl.value.splice(index, 1); } \r\n\t\telse { cntrl.value.push(val); }\r\n\t\tthis.saveForm(item, val, cntrl);\r\n\t}\r\n\r\n saveForm(item: VerificationVm, val?: number, cntrl?) {\r\n this.httpClient.post(\r\n\t\t\t`api/Administration/VerificationSettings/${this.saveUrlAction}`, \r\n\t\t\tthis.filterForm(item)\r\n\t\t).subscribe((sm: SystemMessage) => { \r\n\t\t\tthis.sms.setSystemMessage(sm.message, sm.messageClass);\r\n if(!sm.isSuccessful){\r\n cntrl.value.push(val);\r\n }\r\n\t\t});\r\n }\r\n\r\n // Filter verificationsSettings list by the item (verificationEnum member) you are changing\r\n filterForm(item: VerificationVm) : VerificationSettingVm {\r\n var settingsVm : VerificationSettingVm = this.formGroup.getRawValue();\r\n settingsVm.verificationSettings = settingsVm.verificationSettings.filter(o => o.verificationEnum == item.verificationEnum);\r\n return settingsVm;\r\n }\r\n}\r\n","
\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
{{ item.get(\"verificationStr\").value }}
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t

\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t

\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
","var YI = Object.create;\nvar AI = Object.defineProperty;\nvar HI = Object.getOwnPropertyDescriptor;\nvar mI = Object.getOwnPropertyNames;\nvar fI = Object.getPrototypeOf,\n uI = Object.prototype.hasOwnProperty;\nvar lI = (E, I) => () => (I || E((I = {\n exports: {}\n}).exports, I), I.exports);\nvar pI = (E, I, A, g) => {\n if (I && typeof I == \"object\" || typeof I == \"function\") for (let C of mI(I)) !uI.call(E, C) && C !== A && AI(E, C, {\n get: () => I[C],\n enumerable: !(g = HI(I, C)) || g.enumerable\n });\n return E;\n};\nvar qI = (E, I, A) => (A = E != null ? YI(fI(E)) : {}, pI(I || !E || !E.__esModule ? AI(A, \"default\", {\n value: E,\n enumerable: !0\n}) : A, E));\nvar QI = lI((wA, qA) => {\n \"use strict\";\n\n var pA = (() => {\n var E = typeof document < \"u\" && document.currentScript ? document.currentScript.src : void 0;\n return function (I = {}) {\n var A;\n A || (A = typeof I < \"u\" ? I : {});\n var g, C;\n A.ready = new Promise(function (e, a) {\n g = e, C = a;\n });\n var Q = Object.assign({}, A),\n i = \"\";\n typeof document < \"u\" && document.currentScript && (i = document.currentScript.src), E && (i = E), i.indexOf(\"blob:\") !== 0 ? i = i.substr(0, i.replace(/[?#].*/, \"\").lastIndexOf(\"/\") + 1) : i = \"\";\n var t = A.print || console.log.bind(console),\n D = A.printErr || console.warn.bind(console);\n Object.assign(A, Q), Q = null;\n var c;\n A.wasmBinary && (c = A.wasmBinary);\n var S = A.noExitRuntime || !0;\n typeof WebAssembly != \"object\" && Z(\"no native wasm support detected\");\n var h,\n K = !1,\n bA = typeof TextDecoder < \"u\" ? new TextDecoder(\"utf8\") : void 0;\n function AA(e, a) {\n for (var s = a + NaN, r = a; e[r] && !(r >= s);) ++r;\n if (16 < r - a && e.buffer && bA) return bA.decode(e.subarray(a, r));\n for (s = \"\"; a < r;) {\n var w = e[a++];\n if (w & 128) {\n var R = e[a++] & 63;\n if ((w & 224) == 192) s += String.fromCharCode((w & 31) << 6 | R);else {\n var M = e[a++] & 63;\n w = (w & 240) == 224 ? (w & 15) << 12 | R << 6 | M : (w & 7) << 18 | R << 12 | M << 6 | e[a++] & 63, 65536 > w ? s += String.fromCharCode(w) : (w -= 65536, s += String.fromCharCode(55296 | w >> 10, 56320 | w & 1023));\n }\n } else s += String.fromCharCode(w);\n }\n return s;\n }\n var TA, u, oA;\n function OA() {\n var e = h.buffer;\n A.HEAP8 = TA = new Int8Array(e), A.HEAP16 = new Int16Array(e), A.HEAP32 = new Int32Array(e), A.HEAPU8 = u = new Uint8Array(e), A.HEAPU16 = new Uint16Array(e), A.HEAPU32 = oA = new Uint32Array(e), A.HEAPF32 = new Float32Array(e), A.HEAPF64 = new Float64Array(e);\n }\n var ZA = [],\n vA = [],\n WA = [];\n function kI() {\n var e = A.preRun.shift();\n ZA.unshift(e);\n }\n var O = 0,\n YA = null,\n IA = null;\n function Z(e) {\n throw A.onAbort && A.onAbort(e), e = \"Aborted(\" + e + \")\", D(e), K = !0, e = new WebAssembly.RuntimeError(e + \". Build with -sASSERTIONS for more info.\"), C(e), e;\n }\n function HA(e) {\n return e.startsWith(\"data:application/octet-stream;base64,\");\n }\n var W;\n if (W = \"data:application/octet-stream;base64,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CyAAIAAtAAwgAUEIdmoiAToADCAAIAAtAA0gAUEIdmoiAToADSAAIAAtAA4gAUEIdmoiAToADiAAIAAtAA8gAUEIdmoiAToADyAAIAAtABAgAUEIdmoiAToAECAAIAAtABEgAUEIdmoiAToAESAAIAAtABIgAUEIdmoiAToAEiAAIAAtABMgAUEIdmoiAToAEyAAIAAtABQgAUEIdmoiAToAFCAAIAAtABUgAUEIdmoiAToAFSAAIAAtABYgAUEIdmoiAToAFiAAIAAtABcgAUEIdmoiAToAFyAAIAAtABggAUEIdmoiAToAGCAAIAAtABkgAUEIdmoiAToAGSAAIAAtABogAUEIdmoiAToAGiAAIAAtABsgAUEIdmoiAToAGyAAIAAtABwgAUEIdmoiAToAHCAAIAAtAB0gAUEIdmoiAToAHSAAIAAtAB4gAUEIdmoiAToAHiAAIAAtAB8gAUEIdmo6AB8LjAICA38CfgJAIAApA3AiBEIAUiAEIAApA3ggACgCBCIBIAAoAiwiAmusfCIFV3FFBEAjAEEQayICJABBfyEBAkAgABDCAQ0AIAAgAkEPakEBIAAoAiARBQBBAUcNACACLQAPIQELIAJBEGokACABIgNBAE4NASAAKAIEIQEgACgCLCECCyAAQn83A3AgACABNgJoIAAgBSACIAFrrHw3A3hBfw8LIAVCAXwhBSAAKAIEIQEgACgCCCECAkAgACkDcCIEUA0AIAQgBX0iBCACIAFrrFkNACABIASnaiECCyAAIAI2AmggACAFIAAoAiwiACABa6x8NwN4IAAgAU8EQCABQQFrIAM6AAALIAMLwwoCBX8PfiMAQeAAayIFJAAgBEL///////8/gyEMIAIgBIVCgICAgICAgICAf4MhCiACQv///////z+DIg1CIIghDiAEQjCIp0H//wFxIQcCQAJAIAJCMIinQf//AXEiCUH//wFrQYKAfk8EQCAHQf//AWtBgYB+Sw0BCyABUCACQv///////////wCDIgtCgICAgICAwP//AFQgC0KAgICAgIDA//8AURtFBEAgAkKAgICAgIAghCEKDAILIANQIARC////////////AIMiAkKAgICAgIDA//8AVCACQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQogAyEBDAILIAEgC0KAgICAgIDA//8AhYRQBEAgAiADhFAEQEKAgICAgIDg//8AIQpCACEBDAMLIApCgICAgICAwP//AIQhCkIAIQEMAgsgAyACQoCAgICAgMD//wCFhFAEQCABIAuEIQJCACEBIAJQBEBCgICAgICA4P//ACEKDAMLIApCgICAgICAwP//AIQhCgwCCyABIAuEUARAQgAhAQwCCyACIAOEUARAQgAhAQwCCyALQv///////z9YBEAgBUHQAGogASANIAEgDSANUCIGG3kgBkEGdK18pyIGQQ9rECBBECAGayEGIAUpA1giDUIgiCEOIAUpA1AhAQsgAkL///////8/Vg0AIAVBQGsgAyAMIAMgDCAMUCIIG3kgCEEGdK18pyIIQQ9rECAgBiAIa0EQaiEGIAUpA0ghDCAFKQNAIQMLIANCD4YiC0KAgP7/D4MiAiABQiCIIgR+IhAgC0IgiCITIAFC/////w+DIgF+fCIPQiCGIhEgASACfnwiCyARVK0gAiANQv////8PgyINfiIVIAQgE358IhEgDEIPhiISIANCMYiEQv////8PgyIDIAF+fCIUIA8gEFStQiCGIA9CIIiEfCIPIAIgDkKAgASEIgx+IhYgDSATfnwiDiASQiCIQoCAgIAIhCICIAF+fCIQIAMgBH58IhJCIIZ8Ihd8IQEgByAJaiAGakH//wBrIQYCQCACIAR+IhggDCATfnwiBCAYVK0gBCAEIAMgDX58IgRWrXwgAiAMfnwgBCAEIBEgFVStIBEgFFatfHwiBFatfCADIAx+IgMgAiANfnwiAiADVK1CIIYgAkIgiIR8IAQgAkIghnwiAiAEVK18IAIgAiAQIBJWrSAOIBZUrSAOIBBWrXx8QiCGIBJCIIiEfCICVq18IAIgAiAPIBRUrSAPIBdWrXx8IgJWrXwiBEKAgICAgIDAAINCAFIEQCAGQQFqIQYMAQsgC0I/iCEDIARCAYYgAkI/iIQhBCACQgGGIAFCP4iEIQIgC0IBhiELIAMgAUIBhoQhAQsgBkH//wFOBEAgCkKAgICAgIDA//8AhCEKQgAhAQwBCwJ+IAZBAEwEQEEBIAZrIgdB/wBNBEAgBUEwaiALIAEgBkH/AGoiBhAgIAVBIGogAiAEIAYQICAFQRBqIAsgASAHED4gBSACIAQgBxA+IAUpAzAgBSkDOIRCAFKtIAUpAyAgBSkDEISEIQsgBSkDKCAFKQMYhCEBIAUpAwAhAiAFKQMIDAILQgAhAQwCCyAEQv///////z+DIAatQjCGhAsgCoQhCiALUCABQgBZIAFCgICAgICAgICAf1EbRQRAIAogAkIBfCIBUK18IQoMAQsgCyABQoCAgICAgICAgH+FhEIAUgRAIAIhAQwBCyAKIAIgAkIBg3wiASACVK18IQoLIAAgATcDACAAIAo3AwggBUHgAGokAAuUBAEDfyABIAAgAUYiAjoADAJAIAINAANAIAEoAggiAi0ADA0BAkAgAiACKAIIIgMoAgAiBEYEQAJAIAMoAgQiBEUNACAELQAMDQAMAgsCQCABIAIoAgBGBEAgAiEBDAELIAIgAigCBCIBKAIAIgA2AgQgASAABH8gACACNgIIIAIoAggFIAMLNgIIIAIoAggiACAAKAIAIAJHQQJ0aiABNgIAIAEgAjYCACACIAE2AgggASgCCCIDKAIAIQILIAFBAToADCADQQA6AAwgAyACKAIEIgA2AgAgAARAIAAgAzYCCAsgAiADKAIINgIIIAMoAggiACAAKAIAIANHQQJ0aiACNgIAIAIgAzYCBCADIAI2AggPCwJAIARFDQAgBC0ADA0ADAELAkAgASACKAIARwRAIAIhAQwBCyACIAEoAgQiADYCACABIAAEfyAAIAI2AgggAigCCAUgAws2AgggAigCCCIAIAAoAgAgAkdBAnRqIAE2AgAgASACNgIEIAIgATYCCCABKAIIIQMLIAFBAToADCADQQA6AAwgAyADKAIEIgAoAgAiATYCBCABBEAgASADNgIICyAAIAMoAgg2AgggAygCCCIBIAEoAgAgA0dBAnRqIAA2AgAgACADNgIAIAMgADYCCAwCCyAEQQxqIQEgAkEBOgAMIAMgACADRjoADCABQQE6AAAgAyIBIABHDQALCwsFABAAAAvqAgEBfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCABKAIAIgFBAmsOfwAREQEREQIDEREEBRERERERERERERERBhERERERERERCAkREQwHERERERERERERERERERERERERERERERERDQ4PEREREREREREREREREREREREREREREREREREKEREREREREREREREREREREREREREREREREREREREREREREQsQ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QQh0IAhyIQILIAFFDQELIAMgB2otAAAhAyAAIAEgBWo2AgggAiABdCADQX9BCCABayIAdHEgAHZyIQILIAILaQEDfwJAIAAiAUEDcQRAA0AgAS0AAEUNAiABQQFqIgFBA3ENAAsLA0AgASICQQRqIQEgAigCACIDQX9zIANBgYKECGtxQYCBgoR4cUUNAAsDQCACIgFBAWohAiABLQAADQALCyABIABrCwYAIAAQBwuOAgEEfyAAKAIAIgRFBEBBAA8LAkACQAJAIAAoAgQiBQRAIAFBAEgNAiAAKAIIIgMgBUkNAQwCCyABQQBIDQEgACgCCCEDCyAFIAEgA2pBAWoiAU8EQCADIARqDwsgACgCEARAQQAPCwJ/IAFBgICAgARPBEBB/////wcgAUEATg0BGkEADwsgAUEBdAshAgJAIAAoAiAiAQRAIAQgAiABEQQAIgENAQwDCyACIAAoAhgRAQAiAUUEQAwDCyABIAAoAgAgACgCCEEBahAOGiAAKAIAIAAoAhwRAAALIAAgATYCACAAIAI2AgQgASAAKAIIaiECCyACDwsgACgCACAAKAIcEQAAIABCADcCAEEAC9UBAQJ/IwBBEGsiBCQAAkACQCACQQtJBEAgACIDIAAtAAtBgAFxIAJyOgALIAAgAC0AC0H/AHE6AAsMAQsgAkHv////B0sNASAEQQhqIAAgAkELTwR/IAJBEGpBcHEiAyADQQFrIgMgA0ELRhsFQQoLQQFqED0gBCgCDBogACAEKAIIIgM2AgAgACAAKAIIQYCAgIB4cSAEKAIMQf////8HcXI2AgggACAAKAIIQYCAgIB4cjYCCCAAIAI2AgQLIAMgASACQQFqEDMgBEEQaiQADwsQEwALxQkCBH8FfiMAQfAAayIGJAAgBEL///////////8AgyEJAkACQCABUCIFIAJC////////////AIMiCkKAgICAgIDA//8AfUKAgICAgIDAgIB/VCAKUBtFBEAgA0IAUiAJQoCAgICAgMD//wB9IgtCgICAgICAwICAf1YgC0KAgICAgIDAgIB/URsNAQsgBSAKQoCAgICAgMD//wBUIApCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhBCABIQMMAgsgA1AgCUKAgICAgIDA//8AVCAJQoCAgICAgMD//wBRG0UEQCAEQoCAgICAgCCEIQQMAgsgASAKQoCAgICAgMD//wCFhFAEQEKAgICAgIDg//8AIAIgASADhSACIASFQoCAgICAgICAgH+FhFAiBRshBEIAIAEgBRshAwwCCyADIAlCgICAgICAwP//AIWEUA0BIAEgCoRQBEAgAyAJhEIAUg0CIAEgA4MhAyACIASDIQQMAgsgAyAJhEIAUg0AIAEhAyACIQQMAQsgAyABIAEgA1QgCSAKViAJIApRGyIIGyEKIAQgAiAIGyILQv///////z+DIQkgAiAEIAgbIgJCMIinQf//AXEhByALQjCIp0H//wFxIgVFBEAgBkHgAGogCiAJIAogCSAJUCIFG3kgBUEGdK18pyIFQQ9rECAgBikDaCEJIAYpA2AhCkEQIAVrIQULIAEgAyAIGyEDIAJC////////P4MhBCAHRQRAIAZB0ABqIAMgBCADIAQgBFAiBxt5IAdBBnStfKciB0EPaxAgQRAgB2shByAGKQNYIQQgBikDUCEDCyAEQgOGIANCPYiEQoCAgICAgIAEhCEBIAlCA4YgCkI9iIQhBCACIAuFIQ0CfiADQgOGIgIgBSAHRg0AGiAFIAdrIgdB/wBLBEBCACEBQgEMAQsgBkFAayACIAFBgAEgB2sQICAGQTBqIAIgASAHED4gBikDOCEBIAYpAzAgBikDQCAGKQNIhEIAUq2ECyEJIARCgICAgICAgASEIQwgCkIDhiEKAkAgDUIAUwRAQgAhA0IAIQQgCSAKhSABIAyFhFANAiAKIAl9IQIgDCABfSAJIApWrX0iBEL/////////A1YNASAGQSBqIAIgBCACIAQgBFAiBxt5IAdBBnStfKdBDGsiBxAgIAUgB2shBSAGKQMoIQQgBikDICECDAELIAkgCnwiAiAJVK0gASAMfHwiBEKAgICAgICACINQDQAgCUIBgyAEQj+GIAJCAYiEhCECIAVBAWohBSAEQgGIIQQLIAtCgICAgICAgICAf4MhASAFQf//AU4EQCABQoCAgICAgMD//wCEIQRCACEDDAELQQAhBwJAIAVBAEoEQCAFIQcMAQsgBkEQaiACIAQgBUH/AGoQICAGIAIgBEEBIAVrED4gBikDACAGKQMQIAYpAxiEQgBSrYQhAiAGKQMIIQQLIAKnQQdxIgVBBEutIARCPYYgAkIDiIQiAnwiAyACVK0gBEIDiEL///////8/gyAHrUIwhoQgAYR8IQQCQCAFQQRGBEAgBCADQgGDIgEgA3wiAyABVK18IQQMAQsgBUUNAQsLIAAgAzcDACAAIAQ3AwggBkHwAGokAAt+AgJ/AX4jAEEQayIDJAAgAAJ+IAFFBEBCAAwBCyADIAEgAUEfdSICcyACayICrUIAIAJnIgJB0QBqECAgAykDCEKAgICAgIDAAIVBnoABIAJrrUIwhnwgAUGAgICAeHGtQiCGhCEEIAMpAwALNwMAIAAgBDcDCCADQRBqJAALBAAgAAvqAQEFfyMAQRBrIgUkACAAQgA3AgQgACABNgIAIABBADYCDCAAQQRqIQQCQAJAIAIoAgQiASACKAIAIgZrIgNBBUkNACAGKAIADQBBAiADQQJ1IgcgB0ECTRshA0EBIQECQANAIAYgAUECdGooAgANASABQQFqIgEgA0cNAAsgAyEBCyABIAdGBEAgBUEANgIMIARBASAFQQxqEIwBDAILIAQgByABaxAxIAIoAgQiAyACKAIAIAFBAnRqIgFGDQEgBCgCACABIAMgAWsQDRoMAQsgAiAERg0AIAQgBiABEGMLIAVBEGokACAAC9EFAQN/QdoBIQMDQCAAIARqIAMgASAEai0AAGogAiAEai0AAGtBgP4DaiIDOgAAIANBCHYhBSAEQQFyIgNBH0ZFBEAgACADaiAFIAEgA2otAABqIAIgA2otAABrQYD+A2oiAzoAACADQQh2IQMgBEECaiEEDAELCyAAIAEtAB8gAi0AH2sgBWoiAUH/AHE6AB8gACAALQAAIAFBB3ZBE2xqIgE6AAAgACAALQABIAFBCHZqIgE6AAEgACAALQACIAFBCHZqIgE6AAIgACAALQADIAFBCHZqIgE6AAMgACAALQAEIAFBCHZqIgE6AAQgACAALQAFIAFBCHZqIgE6AAUgACAALQAGIAFBCHZqIgE6AAYgACAALQAHIAFBCHZqIgE6AAcgACAALQAIIAFBCHZqIgE6AAggACAALQAJIAFBCHZqIgE6AAkgACAALQAKIAFBCHZqIgE6AAogACAALQALIAFBCHZqIgE6AAsgACAALQAMIAFBCHZqIgE6AAwgACAALQANIAFBCHZqIgE6AA0gACAALQAOIAFBCHZqIgE6AA4gACAALQAPIAFBCHZqIgE6AA8gACAALQAQIAFBCHZqIgE6ABAgACAALQARIAFBCHZqIgE6ABEgACAALQASIAFBCHZqIgE6ABIgACAALQATIAFBCHZqIgE6ABMgACAALQAUIAFBCHZqIgE6ABQgACAALQAVIAFBCHZqIgE6ABUgACAALQAWIAFBCHZqIgE6ABYgACAALQAXIAFBCHZqIgE6ABcgACAALQAYIAFBCHZqIgE6ABggACAALQAZIAFBCHZqIgE6ABkgACAALQAaIAFBCHZqIgE6ABogACAALQAbIAFBCHZqIgE6ABsgACAALQAcIAFBCHZqIgE6ABwgACAALQAdIAFBCHZqIgE6AB0gACAALQAeIAFBCHZqIgE6AB4gACAALQAfIAFBCHZqOgAfC0cBAn8gACABNwNwIAAgACgCLCAAKAIEIgNrrDcDeCAAKAIIIQICQCABUA0AIAIgA2usIAFXDQAgAyABp2ohAgsgACACNgJoCx0AIAEEQCAAIAEoAgAQLyAAIAEoAgQQLyABEAcLC5MBAQN/IAAEQANAIAAiASgCACEAAkAgASgCDCICQYACcQ0AIAEoAggiA0UNACADEDAgASgCDCECCwJAIAJBgAJxDQAgASgCECIDRQ0AIANBjIABKAIAEQAAIAEoAgwhAgsCQCACQYAEcQ0AIAEoAiAiAkUNACACQYyAASgCABEAAAsgAUGMgAEoAgARAAAgAA0ACwsL5QEBB38gASAAKAIIIgQgACgCBCICa0ECdU0EQCAAIAEEfyACQQAgAUECdCIAEAsgAGoFIAILNgIEDwsCQCACIAAoAgAiAmsiBkECdSIHIAFqIgNBgICAgARJBEBB/////wMgBCACayIEQQF2IgggAyADIAhJGyAEQfz///8HTxsiAwRAIANBgICAgARPDQIgA0ECdBAJIQULIAdBAnQgBWpBACABQQJ0IgEQCyEEIAAgBSACIAYQDSIFIANBAnRqNgIIIAAgASAEajYCBCAAIAU2AgAgAgRAIAIQBwsPCxAAAAsQEwALigEBAn8CfyAALQALQQd2BEAgACgCAAwBCyAACyEDAn8gAC0AC0EHdgRAIAAoAgQMAQsgAC0AC0H/AHELIQQjAEEQayIAJAAgACABOgAPQX8hASACIARJBEAgBCACayIBBH8gAiADaiAALQAPIAEQggEFQQALIgEgA2tBfyABGyEBCyAAQRBqJAAgAQsMACABIAIgABCvARoL+QECA34CfyMAQRBrIgUkAAJ+IAG9IgNC////////////AIMiAkKAgICAgICACH1C/////////+//AFgEQCACQjyGIQQgAkIEiEKAgICAgICAgDx8DAELIAJCgICAgICAgPj/AFoEQCADQjyGIQQgA0IEiEKAgICAgIDA//8AhAwBCyACUARAQgAMAQsgBSACQgAgA6dnQSBqIAJCIIinZyACQoCAgIAQVBsiBkExahAgIAUpAwAhBCAFKQMIQoCAgICAgMAAhUGM+AAgBmutQjCGhAshAiAAIAQ3AwAgACACIANCgICAgICAgICAf4OENwMIIAVBEGokAAuXKQELfyMAQRBrIgskAAJAAkACQAJAAkACQAJAAkACQCAAQfQBTQRAQYytAigCACIGQRAgAEELakF4cSAAQQtJGyIFQQN2IgB2IgFBA3EEQAJAIAFBf3NBAXEgAGoiAkEDdCIBQbStAmoiACABQbytAmooAgAiASgCCCIERgRAQYytAiAGQX4gAndxNgIADAELIAQgADYCDCAAIAQ2AggLIAFBCGohACABIAJBA3QiAkEDcjYCBCABIAJqIgEgASgCBEEBcjYCBAwKCyAFQZStAigCACIHTQ0BIAEEQAJAQQIgAHQiAkEAIAJrciABIAB0cSIAQQAgAGtxaCIBQQN0IgBBtK0CaiICIABBvK0CaigCACIAKAIIIgRGBEBBjK0CIAZBfiABd3EiBjYCAAwBCyAEIAI2AgwgAiAENgIICyAAIAVBA3I2AgQgACAFaiIIIAFBA3QiASAFayIEQQFyNgIEIAAgAWogBDYCACAHBEAgB0F4cUG0rQJqIQFBoK0CKAIAIQICfyAGQQEgB0EDdnQiA3FFBEBBjK0CIAMgBnI2AgAgAQwBCyABKAIICyEDIAEgAjYCCCADIAI2AgwgAiABNgIMIAIgAzYCCAsgAEEIaiEAQaCtAiAINgIAQZStAiAENgIADAoLQZCtAigCACIKRQ0BIApBACAKa3FoQQJ0QbyvAmooAgAiAigCBEF4cSAFayEDIAIhAQNAAkAgASgCECIARQRAIAEoAhQiAEUNAQsgACgCBEF4cSAFayIBIAMgASADSSIBGyEDIAAgAiABGyECIAAhAQwBCwsgAigCGCEJIAIgAigCDCIERwRAQZytAigCABogAigC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AgAgBwRAIAdBeHFBtK0CaiEAQaCtAigCACEBAn9BASAHQQN2dCIFIAZxRQRAQYytAiAFIAZyNgIAIAAMAQsgACgCCAshBiAAIAE2AgggBiABNgIMIAEgADYCDCABIAY2AggLQaCtAiAENgIAQZStAiADNgIACyACQQhqIQALIAtBEGokACAAC4wDAQ1/IwBBEGshBSABKAIEIggoAgQiAkEAIAJrIAEoAhwgASgCFCIJayIEQQBKGyEKQX9BASABKAIYIAEoAhAiBmsiB0EATBshAyAIKAIAIgggAiAJbCAGaiIJQQJ0IgIgASgCCCINamohBiAIIAIgASgCDCIOamohDAJAIAcgB0EfdSIBcyABayIBIAQgBEEfdSICcyACayICTwRAIAEhBCACIQEgAyECIAohAwwBCyACIQQgCiECCyAGLQAAIQogDC0AACEGIAUgAjYCCCAFIAIgA2o2AgwgBSABIARrQQF0NgIEIAUgAUEBdCIBNgIAIAEgBGshAUEAIQJBACEHA0AgCiEDIAIgCCAJQQJ0IgwgDWpqLQAAIgogA2siAiACQR91IgJzIAJraiECIAcgBiAIIAwgDmpqLQAAIgZHaiEHIAUgAUF/c0EddkEEcSIDaigCACABaiEBIAVBCGogA2ooAgAgCWohCSAEIAtGIQMgC0EBaiELIANFDQALIAAgAjYCBCAAIAc2AgALxQIBA38CQEEoQYiAASgCABEBACIDRQ0AIANCADcDCCADQgA3AwAgA0IANwMgIANCADcDECADIAI5AxggA0EINgIMIAMCf0H/////ByACRAAAwP///99BZg0AGkGAgICAeCACRAAAAAAAAODBZQ0AGiACmUQAAAAAAADgQWMEQCACqgwBC0GAgICAeAs2AhQgAEUNACABRQ0AIAAgA0YNACABECVBAWoiBEGIgAEoAgARAQAiBUUNACAFIAEgBBAOIQEgAygCDCIEQf97cSEFAkAgBEGABHENACADKAIgIgRFDQAgBEGMgAEoAgARAAALIAMgBTYCDCADIAE2AiAgACgCCCIBRQRAIAAgAzYCCCADQQA2AgAgAyADNgIEDwsgASgCBCIARQRADwsgACADNgIAIAMgADYCBCABIAM2AgQPCyADEDALYgECfwJAIAFBwQBJDQAgACgCYCICIAFLDQBBASEDIAFBgAJLDQAgACgCAEGAAiACQUBrIgIgAkGAAk8bIAEgASACSRsiARBOIgJFDQAgACABNgJgIAAgAjYCAEEAIQMLIAMLYQEDfwJAIABFDQAgACgCACIDRQ0AIAAoAggiASAAKAIEIgJPDQACQANAIAEgA2otAABBIE0EQCAAIAFBAWoiATYCCCABIAJHDQEMAgsLIAEgAkcNAQsgACACQQFrNgIICwuzBQEDfwNAIAAgA2ogAiADai0AACABIANqLQAAIARBgP4DcUEIdmpqIgU6AAAgACADQQFyIgRqIAIgBGotAAAgASAEai0AACAFQQh2amoiBDoAACADQQJqIgNBIEcNAAsgACAALQAfQf8AcToAHyAAIAAtAAAgBEGA/wNxQQd2QRNsaiIBOgAAIAAgAC0AASABQQh2aiIBOgABIAAgAC0AAiABQQh2aiIBOgACIAAgAC0AAyABQQh2aiIBOgADIAAgAC0ABCABQQh2aiIBOgAEIAAgAC0ABSABQQh2aiIBOgAFIAAgAC0ABiABQQh2aiIBOgAGIAAgAC0AByABQQh2aiIBOgAHIAAgAC0ACCABQQh2aiIBOgAIIAAgAC0ACSABQQh2aiIBOgAJIAAgAC0ACiABQQh2aiIBOgAKIAAgAC0ACyABQQh2aiIBOgALIAAgAC0ADCABQQh2aiIBOgAMIAAgAC0ADSABQQh2aiIBOgANIAAgAC0ADiABQQh2aiIBOgAOIAAgAC0ADyABQQh2aiIBOgAPIAAgAC0AECABQQh2aiIBOgAQIAAgAC0AESABQQh2aiIBOgARIAAgAC0AEiABQQh2aiIBOgASIAAgAC0AEyABQQh2aiIBOgATIAAgAC0AFCABQQh2aiIBOgAUIAAgAC0AFSABQQh2aiIBOgAVIAAgAC0AFiABQQh2aiIBOgAWIAAgAC0AFyABQQh2aiIBOgAXIAAgAC0AGCABQQh2aiIBOgAYIAAgAC0AGSABQQh2aiIBOgAZIAAgAC0AGiABQQh2aiIBOgAaIAAgAC0AGyABQQh2aiIBOgAbIAAgAC0AHCABQQh2aiIBOgAcIAAgAC0AHSABQQh2aiIBOgAdIAAgAC0AHiABQQh2aiIBOgAeIAAgAC0AHyABQQh2ajoAHwu2AwEEfyAAKAKkASIBBEADQAJAIAAoAqwBIgIgACgCkAFBBXRBEHIiBEYgAUEATHFFBEAgACgCsAEhASAAIAI2ArABIAAgAiABa0EAIAEbIgE2ArQBIAAgARBMIQIgACAENgKsASAAQQAgACgCpAFrIgE2AqQBDAELIABBADYCtAEgAEEANgKkASAAQQAQTCECIAAoAqQBIQELIAIgAyACIANKGyEDIAENAAsLIABCADcCkAEgAEEANgK0ASAAQgA3AqwBIABCADcCoAEgAEIANwKYASAAIAAoAowBNgKoASAAQQA6AAwgAEEANgJcIABBEGpBAEHIABALGiAAKAJoIgEEQCABIAEoAgAoAggRAAALIAAoAmwiAQRAIAEgASgCACgCCBEAAAsgACgCcCIBBEAgASABKAIAKAIIEQAACyAAKAJ0IgEEQCABIAEoAgAoAggRAAALIAAoAngiAQRAIAFBADYCVCABQf8BOgAIIAFB/wE6ADggAUH/AToAKCABQf8BOgAYCyAAKAJ8IgEEQCABEPYBCyAAKAKAASIBBEAgASABKAIAKAIIEQAACyAAQQA6AIgBCxMAIAFBAXRBwP4AakECIAAQrwELFgAgAhAJIQEgACACNgIEIAAgATYCAAtQAQF+AkAgA0HAAHEEQCACIANBQGqtiCEBQgAhAgwBCyADRQ0AIAJBwAAgA2uthiABIAOtIgSIhCEBIAIgBIghAgsgACABNwMAIAAgAjcDCAvbAQIBfwJ+QQEhBAJAIABCAFIgAUL///////////8AgyIFQoCAgICAgMD//wBWIAVCgICAgICAwP//AFEbDQAgAkIAUiADQv///////////wCDIgZCgICAgICAwP//AFYgBkKAgICAgIDA//8AURsNACAAIAKEIAUgBoSEUARAQQAPCyABIAODQgBZBEBBfyEEIAAgAlQgASADUyABIANRGw0BIAAgAoUgASADhYRCAFIPC0F/IQQgACACViABIANVIAEgA1EbDQAgACAChSABIAOFhEIAUiEECyAEC1IBAn9ByNkBKAIAIgEgAEEHakF4cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQBEUNAQtByNkBIAA2AgAgAQ8LQcirAkEwNgIAQX8L3wMBCn8CQAJAIAMgBEcEQCAAKAIEIgsgACgCCCIOIAJsIgwgAWpqLQAAIANHDQEgACgCgHohByAAKAKEeiIJIAI2AgAgCyAMaiINIAFqLQAA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AAQLgQIBA38CQEEoQYiAASgCABEBACICRQ0AIAJCADcDCCACQgA3AwAgAkIANwMgIAJCADcDGCACQgA3AxAgAkHAADYCDCAARQ0AIAFFDQAgACACRg0AIAEQJUEBaiIDQYiAASgCABEBACIERQ0AIAQgASADEA4hASACKAIMIgNB/3txIQQCQCADQYAEcQ0AIAIoAiAiA0UNACADQYyAASgCABEAAAsgAiAENgIMIAIgATYCICAAKAIIIgFFBEAgACACNgIIIAJBADYCACACIAI2AgQgAg8LIAEoAgQiAEUEQCACDwsgACACNgIAIAIgADYCBCABIAI2AgQgAg8LIAIQMEEACy8BAX8gAEF/QQEgAUEATBtBACABGzYCACAAQQRqIAEgAUEfdSICcyACaxBxGiAAC+EDAQd/AkAgACgCIEUEQCAAQrCAgICABjcCKEEwIQEMAQsgACgCLCIBDQAgACAAKAIoIgE2AiwLIAFBMGshAwJAAkACQCAAKAIUIgEgACgCGCIESQRAIAEgAzYCACAAIAFBBGo2AhQMAQsgASAAKAIQIgFrIgZBAnUiBUEBaiICQYCAgIAETw0BQf////8DIAQgAWsiBEEBdiIHIAIgAiAHSRsgBEH8////B08bIgIEfyACQYCAgIAETw0DIAJBAnQQCQVBAAsiBCAFQQJ0aiIFIAM2AgAgACAEIAEgBhANIgMgAkECdGo2AhggACAFQQRqNgIUIAAgAzYCECABRQ0AIAEQBwsgACgCLCEBIAAgACgCKCICNgIsIAAgAiABayIDNgIwIAAoAggiASAAKAIMIgJJBEAgASADOwEAIAAgAUECajYCCA8LIAEgACgCBCIBayIEQX1MDQBB/////wcgAiABayICIARBAXUiBUEBaiIGIAIgBksbIAJB/v///wdPGyICBH8gAkEASA0CIAJBAXQQCQVBAAshBiAGIAVBAXRqIgUgAzsBACAAIAYgASAEEA0iAyACQQF0ajYCDCAAIAVBAmo2AgggACADNgIEIAEEQCABEAcLDwsQAAALEBMACx0AIAEEQCAAIAEoAgAQWyAAIAEoAgQQWyABEAcLC50EAhJ+An8jAEGAAWshFQNAIBUgFEEDdGogASkAACICQjiGIAJCgP4Dg0IohoQgAkKAgPwHg0IYhiACQoCAgPgPg0IIhoSEIAJCCIhCgICA+A+DIAJCGIhCgID8B4OEIAJCKIhCgP4DgyACQjiIhISENwMAIAFBCGohASAUQQFqIhRBEEcNAAtBACEBIAApAwAiDCEHIAApAwgiDSEDIAApAxAiDiEEIAApAxgiDyEIIAApAyAiECEFIAApAygiESECIAApAzAiEiEGIAApAzgiEyEJA0AgBiELIAIhBiAEIQogAyEEIBUgAUEPcUEDdGoiFCAUKQMAIgMgFSABQQlqQQ9xQQN0aikDAHwgFSABQQFqIhRBD3FBA3RqKQMAIgJCP4kgAkI4iYUgAkIHiIV8IBUgAUEOakEPcUEDdGopAwAiAkItiSACQgOJhSACQgaIhXw3AwAgAUEDdEGgwgBqKQMAIAMgCyAFIgJCf4WDIAl8IAIgBoN8IAJCMokgAkIuiYUgAkIXiYV8fHwiBSAHIgNCJIkgA0IeiYUgA0IZiYUgAyAEIAqFgyAEIAqDhXx8IQcgBSAIfCEFIAohCCALIQkgFCIBQdAARw0ACyAAIAkgE3w3AzggACAGIBJ8NwMwIAAgAiARfDcDKCAAIAUgEHw3AyAgACAIIA98NwMYIAAgBCAOfDcDECAAIAMgDXw3AwggACAHIAx8NwMAC4kDAQN/IwBBEGsiBCQAIAQgAzYCDCACAn8gAS0AC0EHdgRAIAEoAgQMAQsgAS0AC0H/AHELIgNLBEAQEwALAn8gAS0AC0EHdgRAIAEoAgAMAQsgAQshASAEIAMgAms2AgQgASACaiEFIwBBEGsiASQAIARBBGoiAigCACAEQQxqIgMoAgBJIQYgAUEQaiQAIAIgAyAGGygCACECIwBBEGsiAyQAAkAgAkHv////B00EQAJAIAJBC0kEQCAAIAAtAAtBgAFxIAJyOgALIAAgAC0AC0H/AHE6AAsgACEBDAELIANBCGogACACQQtPBH8gAkEQakFwcSIBIAFBAWsiASABQQtGGwVBCgtBAWoQPSADKAIMGiAAIAMoAggiATYCACAAIAAoAghBgICAgHhxIAMoAgxB/////wdxcjYCCCAAIAAoAghBgICAgHhyNgIIIAAgAjYCBAsgASAFIAIQMyADQQA6AAcgASACaiADLQAHOgAAIANBEGokAAwBCxATAAsgBEEQaiQAIAALgAMBBX8jAEEQayIIJAAgAiABQX9zQe////8Hak0EQAJ/IAAtAAtBB3YEQCAAKAIADAELIAALIQkgCEEEaiAAIAFB5////wNJBH8gCCABQQF0NgIMIAggASACajYCBCMAQRBrIgIkACAIQQRqIgooAgAgCEEMaiILKAIASSEMIAJBEGokACALIAogDBsoAgAiAkELTwR/IAJBEGpBcHEiAiACQQFrIgIgAkELRhsFQQoLQQFqBUHv////BwsQPSAIKAIEIQIgCCgCCBogBARAIAIgCSAEEDMLIAYEQCACIARqIAcgBhAzCyADIAQgBWoiCmshByADIApHBEAgAiAEaiAGaiAEIAlqIAVqIAcQMwsgAUEKRwRAIAkQBwsgACACNgIAIAAgACgCCEGAgICAeHEgCCgCCEH/////B3FyNgIIIAAgACgCCEGAgICAeHI2AgggACAEIAZqIAdqIgA2AgQgCEEAOgAMIAAgAmogCC0ADDoAACAIQRBqJAAPCxATAAtNAQJ/IAEtAAAhAgJAIAAtAAAiA0UNACACIANHDQADQCABLQABIQIgAC0AASIDRQ0BIAFBAWohASAAQQFqIQAgAiADRg0ACwsgAyACawuLAgEGfyAAKAIIIQIgACgCBCEEAkAgAUUEQCACIARGDQEgAkEEaygCAA8LAkAgAUEBRgRAIAIgBEYEQEEADwsgACgCACgCACEAA0AgBCgCACADaiIBIABBACAAIAFMG2shAyAEQQRqIgQgAkcNAAsMAQsgBCgCACEDIAIgBGsiAkEFSQ0AQQIgAkECdSICIAJBAk0bIQcgACgCACICKAIAIQZBASEAA0BBACEFIAMEfyACKAIEIAIoAhAiBSADQQF0ai4BACAFIAFBAXRqLgEAakEBdGouAQAFQQALIAQgAEECdGooAgBqIgMgBkEAIAMgBk4bayEDIABBAWoiACAHRw0ACwsgAw8LEAAAC60GAQZ/IwBBEGsiAiQAQYzgAUIANwIAQYjgAUGhBzYCAEGU4AFCADcCAEGc4AFCADcCACACQQQQCSIANgIEIAIgAEEEaiIBNgIMIABBADYCACACIAE2AghBpOABQYjgASACQQRqECwaIAIoAgQiAARAIAIgADYCCCAAEAcLIAJBBBAJIgA2AgQgAiAAQQRqIgE2AgwgAEEBNgIAIAIgATYCCEG04AFBiOABIAJBBGoQLBogAigCBCIABEAgAiAANgIIIAAQBwsgAkEAOwEE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AykDIDcCAAwGCyAEQRxqIQAgAUEcayIBQQRqKAIAIQIgBCgCICIFIAQoAgRPBEAgAiAFTw0GIAMgACgCGDYCOCADIAApAhA3AzAgAyAAKQIINwMoIAMgACkCADcDICAAIAEoAhg2AhggACABKQIQNwIQIAAgASkCCDcCCCAAIAEpAgA3AgAgASADKAI4NgIYIAEgAykDMDcCECABIAMpAyg3AgggASADKQMgNwIAIAQoAiAgBCgCBE8NBiADIARBGGooAgA2AjggAyAEQRBqKQIANwMwIAMgBEEIaikCADcDKCADIAQpAgA3AyAgBCAAKAIYNgIYIAQgACkCEDcCECAEIAApAgg3AgggBCAAKQIANwIAIAAgAygCODYCGCAAIAMpAzA3AhAgACADKQMoNwIIIAAgAykDIDcCAAwGCyACIAVJBEAgAyAEQRhqKAIANgI4IAMgBEEQaikCADcDMCADIARBCGopAgA3AyggAyAEKQIANwMgIAQgASgCGDYCGCAEIAEpAhA3AhAgBCABKQIINwIIIAQgASkCADcCACABIAMoAjg2AhggASADKQMwNwIQIAEgAykDKDcCCCABIAMpAyA3AgAMBgsgAyAEQRhqKAIANgI4IAMgBEEQaikCADcDMCADIARBCGopAgA3AyggAyAEKQIANwMgIAQgACgCGDYCGCAEIAApAhA3AhAgBCAAKQIINwIIIAQgACkCADcCACAAIAMoAjg2AhggACADKQMwNwIQIAAgAykDKDcCCCAAIAMpAyA3AgAgASgCBCAEKAIgTw0FIAMgACgCGDYCOCADIAApAhA3AzAgAyAAKQIINwMoIAMgACkCADcDICAAIAEoAhg2AhggACABKQIQNwIQIAAgASkCCDcCCCAAIAEpAgA3AgAgASADKAI4NgIYIAEgAykDMDcCECABIAMpAyg3AgggASADKQMgNwIADAULIAQgBEEcaiIAIARBOGoiAiAEQdQAaiIFEE0aIAFBGGsoAgAgBEHYAGooAgBPDQQgAyAFKAIYNgI4IAMgBSkCEDcDMCADIAUpAgg3AyggAyAFKQIANwMgIAUgAUEcayIBQRhqKAIANgIYIAUgASkCEDcCECAFIAEpAgg3AgggBSABKQIANwIAIAEgAygCODYCGCABIAMpAzA3AhAgASADKQMoNwIIIAEgAykDIDcCACAEKAJYIARBPGooAgBPDQQgAyACKAIYNgI4IAMgAikCEDcDMCADIAIpAgg3AyggAyACKQIANwMgIAIgBSgCGDYCGCACIAUpAhA3AhAgAiAFKQIINwIIIAIgBSkCADcCACAFIAMoAjg2AhggBSADKQMwNwIQIAUgAykDKDcCCCAFIAMpAyA3AgAgBCgCPCAEQSBqKAIATw0EIAMgACgCGDYCOCADIAApAhA3AzAgAyAAKQIINwMoIAMgACkCADcDICAAIAIoAhg2AhggACACKQIQNwIQIAAgAikCCDcCCCAAIAIpAgA3AgAgAiADKAI4NgIYIAIgAykDMDcCECACIAMpAyg3AgggAiADKQMgNwIAIAQoAiAgBCgCBE8NBCADIARBGGooAgA2AjggAyAEQRBqKQIANwMwIAMgBEEIaikCADcDKCADIAQpAgA3AyAgBCAAKAIYNgIYIAQgACkCEDcCECAEIAApAgg3AgggBCAAKQIANwIAIAAgAygCODYCGCAAIAMpAzA3AhAgACADKQMoNwIIIAAgAykDIDcCAAwECyAKQeMGTARAIARBHGohACAEQThqIQIgBCgCPCEFAkAgBCgCICIGIAQoAgQiB08EQCAFIAZPDQEgAyAAKAIYNgI4IAMgACkCEDcDMCADIAApAgg3AyggAyAAKQIANwMgIAAgAkEYaigCADYCGCAAIAJBEGopAgA3AhAgACACQQhqKQIANwIIIAAgAikCADcCACACIAMoAjg2AhggAiADKQMwNwIQIAIgAykDKDcCCCACIAMpAyA3AgAgBCgCICAHTw0BIAMgBEEYaigCADYCOCADIARBEGopAgA3AzAgAyAEQQhqKQIANwMoIAMgBCkCADcDICAEIAAoAhg2AhggBCAAKQIQNwIQIAQgACkCCDcCCCAEIAApAgA3AgAgACADKAI4NgIYIAAgAykDMDcCECAAIAMpAyg3AgggACADKQMgNwIADAELIAUgBkkEQCADIARBGGooAgA2AjggAyAEQRBqKQIANwMwIAMgBEEIaikCADcDKCADIAQpAgA3AyAgBCACQRhqKAIANgIYIAQgAkEQaikCADcCECAEIAJBCGopAgA3AgggBCACKQIANwIAIAIgAygCODYCGCACIAMpAzA3AhAgAiADKQMoNwIIIAIgAykDIDcCAAwBCyADIARBGGooAgA2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IQJBAAs2AhAgBCACNgIMIAQoAgwhASMAQRBrIgckACMAQRBrIgQkAAJAIAEgBmsiBUHv////B00EQAJAIAVBC0kEQCAAIAAtAAtBgAFxIAVyOgALIAAgAC0AC0H/AHE6AAsgACECDAELIARBCGogACAFQQtPBH8gBUEQakFwcSICIAJBAWsiAiACQQtGGwVBCgtBAWoQPSAEKAIMGiAAIAQoAggiAjYCACAAIAAoAghBgICAgHhxIAQoAgxB/////wdxcjYCCCAAIAAoAghBgICAgHhyNgIIIAAgBTYCBAsDQCABIAZHBEAgAiAGLQAAOgAAIAJBAWohAiAGQQFqIQYMAQsLIARBADoAByACIAQtAAc6AAAgBEEQaiQADAELEBMACyAHQRBqJAAgCCQAC4sEAQh/IwBBEGsiBCQAIAQgAToADwJAAkACfyAALQALQQd2IgJFBEBBCiEBIAAtAAtB/wBxDAELIAAoAghB/////wdxQQFrIQEgACgCBAsiBSABRgRAIwBBEGsiAiQAAkAgAUHv////B0cEQAJ/IAAtAAtBB3YEQCAAKAIADAELIAALIQYgAkEEaiAAIAFB5////wNJBH8gAiABQQF0NgIMIAIgAUEBajYCBCMAQRBrIgMkACACQQRqIgcoAgAgAkEMaiIIKAIASSEJIANBEGokACAIIAcgCRsoAgAiA0ELTwR/IANBEGpBcHEiAyADQQFrIgMgA0ELRhsFQQoLQQFqBUHv////BwsQPSACKAIEIQMgAigCCBogAQRAIAMgBiABEDMLIAFBCkcEQCAGEAcLIAAgAzYCACAAIAAoAghBgICAgHhxIAIoAghB/////wdxcjYCCCAAIAAoAghBgICAgHhyNgIIIAJBEGokAAwBCxATAAsCfyAALQALQQd2BEAgACgCAAwBC0EACxoMAQsCfyAALQALQQd2BEAgACgCAAwBC0EACxogAg0AIAAiASAFQQFqIAAtAAtBgAFxcjoACyAAIAAtAAtB/wBxOgALDAELIAAoAgAhASAAIAVBAWo2AgQLIAEgBWoiACAELQAPOgAAIARBADoADiAAIAQtAA46AAEgBEEQaiQAC/4BAQR/An8gARAlIQIjAEEQayIFJAACfyAALQALQQd2BEAgACgCBAwBCyAALQALQf8AcQsiBEEATwRAAkAgAiAALQALQQd2BH8gACgCCEH/////B3FBAWsFQQoLIgMgBGtNBEAgAkUNAQJ/IAAtAAtBB3YEQCAAKAIADAELIAALIgMgBAR/IAIgA2ogAyAEEKwBIAEgAkEAIAMgBGogAUsbQQAgASADTxtqBSABCyACEKwBIAAgAiAEaiIBEK4BIAVBADoADyABIANqIAUtAA86AAAMAQsgACADIAIgBGogA2sgBEEAQQAgAiABEF4LIAVBEGokACAADAELEBMACwvRAwICfgJ/IwBBIGsiBCQAAkAgAUL///////////8AgyIDQoCAgICAgMCAPH0gA0KAgICAgIDA/8MAfVQEQCABQgSGIABCPIiEIQMgAEL//////////w+DIgBCgYCAgICAgIAIWgRAIANCgYCAgICAgIDAAHwhAgwCCyADQoCAgICAgICAQH0hAiAAQoCAgICAgICACFINASACIANCAYN8IQIMAQsgAFAgA0KAgICAgIDA//8AVCADQoCAgICAgMD//wBRG0UEQCABQgSGIABCPIiEQv////////8Dg0KAgICAgICA/P8AhCECDAELQoCAgICAgID4/wAhAiADQv///////7//wwBWDQBCACECIANCMIinIgVBkfcASQ0AIARBEGogACABQv///////z+DQoCAgICAgMAAhCICIAVBgfcAaxAgIAQgACACQYH4ACAFaxA+IAQpAwhCBIYgBCkDACIAQjyIhCECIAQpAxAgBCkDGIRCAFKtIABC//////////8Pg4QiAEKBgICAgICAgAhaBEAgAkIBfCECDAELIABCgICAgICAgIAIUg0AIAJCAYMgAnwhAgsgBEEgaiQAIAIgAUKAgICAgICAgIB/g4S/C0QBAX8jAEEQayIFJAAgBSABIAIgAyAEQoCAgICAgICAgH+FECkgBSkDACEBIAAgBSkDCDcDCCAAIAE3AwAgBUEQaiQAC1oCAX8BfgJAAn9BACAARQ0AGiAArSABrX4iA6ciAiAAIAFyQYCABEkNABpBfyACIANCIIinGwsiAhA1IgBFDQAgAEEEay0AAEEDcUUNACAAQQAgAhALGgsgAAvUAgEEfyMAQdABayIFJAAgBSACNgLMASAFQaABaiICQQBBKBALGiAFIAUoAswBNgLIAQJAQQAgASAFQcgBaiAFQdAAaiACIAMgBBC5AUEASARAQX8hBAwBCyAAKAJMQQBOIQYgACgCACEHIAAoAkhBAEwEQCAAIAdBX3E2AgALAn8CQAJAIAAoAjBFBEAgAEHQADYCMCAAQQA2AhwgAEIANwMQIAAoAiwhCCAAIAU2AiwMAQsgACgCEA0BC0F/IAAQuwENARoLIAAgASAFQcgBaiAFQdAAaiAFQaABaiADIAQQuQELIQIgCARAIABBAEEAIAAoAiQRBQAaIABBADYCMCAAIAg2AiwgAEEANgIcIAAoAhQhASAAQgA3AxAgAkF/IAEbIQILIAAgACgCACIAIAdBIHFyNgIAQX8gAiAAQSBxGyEEIAZFDQALIAVB0AFqJAAgBAupAQEBfEQAAAAAAADwPyEBAkAgAEGACE4EQEQAAAAAAADgfyEBIABB/w9JBEAgAEH/B2shAAwCC0QAAAAAAADwfyEBQf0XIAAgAEH9F04bQf4PayEADAELIABBgXhKDQBEAAAAAAAAYAMhASAAQbhwSwRAIABByQdqIQAMAQtEAAAAAAAAAAAhAUHwaCAAIABB8GhMG0GSD2ohAAsgASAAQf8Haq1CNIa/ogv+AQECfwJAAkACQAJAIAEgACIDc0EDcQ0AIAJBAEchBAJAIAFBA3FFDQAgAkUNAANAIAMgAS0AACIEOgAAIARFDQUgA0EBaiEDIAJBAWsiAkEARyEEIAFBAWoiAUEDcUUNASACDQALCyAERQ0CIAEtAABFDQMgAkEESQ0AA0AgASgCACIEQX9zIARBgYKECGtxQYCBgoR4cQ0CIAMgBDYCACADQQRqIQMgAUEEaiEBIAJBBGsiAkEDSw0ACwsgAkUNAQsDQCADIAEtAAAiBDoAACAERQ0CIANBAWohAyABQQFqIQEgAkEBayICDQALC0EAIQILIANBACACEAsaIAAL4wEBAn8gAkEARyEDAkACQAJAIABBA3FFDQAgAkUNACABQf8BcSEEA0AgAC0AACAERg0CIAJBAWsiAkEARyEDIABBAWoiAEEDcUUNASACDQALCyADRQ0BAkAgAC0AACABQf8BcUYNACACQQRJDQAgAUH/AXFBgYKECGwhAwNAIAAoAgAgA3MiBEF/cyAEQYGChAhrcUGAgYKEeHENAiAAQQRqIQAgAkEEayICQQNLDQALCyACRQ0BCyABQf8BcSEBA0AgASAALQAARgRAIAAPCyAAQQFqIQAgAkEBayICDQALC0EAC5IDARt/IAAgASACIAMQDCEMIAAgASACQQFrIgQgA0EBayIFEAwhDSAAIAEgBCADQQFqIgYQDCEOIAAgASACQQFqIgcgBRAMIQ8gACABIAcgBhAMIRAgACABIAIgBRAMIREgACABIAQgAxAMIRIgACABIAcgAxAMIRMgACABIAIgBhAMIRQgACABIAJBAmsiCCADQQJrIgkQDCEVIAAgASAIIANBAmoiChAMIRYgACABIAJBAmoiCyAJEAwhFyAAIAEgCyAKEAwhGCAAIAEgBCAJEAwhGSAAIAEgCCAGEAwhGiAAIAEgCyAFEAwhGyAAIAEgByAKEAwhHCAAIAEgAiAJEAwhHSAAIAEgCCADEAwhHiAAIAEgCyADEAwhAyAAIAEgAiAKEAwhAiAAIAEgByAJEAwgAiADIB4gHSAcIBsgGiAZIBggFyAVIBZqampqampqampqamogACABIAggBRAMaiAAIAEgCyAGEAxqIAAgASAEIAoQDGogDCAUIBMgEiARIBAgDyANIA5qampqampqa2oL3gIBB38gASgCCCEJIAEoAgQhBiABKAIAIQggAigCACEHIAIoAgQhBSAAQgA3AgggACAHrSAFrUIghoQ3AgAgByIBQQBOBEAgBSAGbCEKIAchAgNAIAMgCCACIgEgCmpBAnQgBGpqLQAASQRAIAFBAWshAiABDQELCyAAIAE2AgALAkAgBiAHTA0AIAZBAWshCiAFIAZsIQsgByECA0AgAiAKRyADIAggAiALakECdCAEamotAABJcUUEQCAAIAIgAWs2AggMAgsgAkEBaiICIAZHDQALCyAFIgFBAE4EQCAFIQIDQCADIAggAiIBIAZsIAdqQQJ0IARqai0AAEkEQCABQQFrIQIgAQ0BCwsgACABNgIECyAFIAlIBEAgCUEBayECA0AgAiAFRyADIAggBSAGbCAHakECdCAEamotAABJcUUEQCAAIAUgAWs2AgwPCyAFQQFqIgUgCUcNAAsLC80vAhR/AX4jAEGwAWsiAyQAAkACQAJAAkACQAJAIAEoAgQiByABKAIAIgRGDQACQAJAAkAgByAEayIKQQBIDQAgChAJIgghBgNAIAYgBCgCADYCACAGQQRqIQYgBEEEaiIEIAdHDQALIANBADYCWCADQgA3AlAgAyAANgJAIAYgCEYNAyAD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IAogCBAMIR4gACABIA0gBxAMIR8gACABIAkgDBAMISAgACABIAQgCxAMISEgACABIAogBRAMISIgACABIA0gBRAMISMgACABIAQgDBAMISQgACABIAkgCxAMISUgACABIAogBxAMISYgACABIA0gCBAMIScgACABIAYgDBAMISggACABIAIgAxAMISkgACABIAIgA0EGaiIOEAwhKiAAIAEgAkEGaiIPIAMQDCErIAAgASAPIA4QDCEsIAAgASAKIAMQDCEtIAAgASACIAwQDCEuIAAgASAPIAsQDCEvIAAgASANIA4QDCEwIAAgASAGIAMQDCExIAAgASACIAgQDCEyIAAgASAPIAcQDCEzIAAgASAJIA4QDCE0IAAgASAEIAMQDCE1IAAgASACIAUQDCE2IAAgASAPIAUQDCEFIAAgASAEIA4QDCEEIAAgASAJIAMQDCEJIAAgASACIAcQDCEHIAAgASAPIAgQDCEIIAAgASAGIA4QDCEGIAAgASANIAMQDCAGIAggByAJIAQgBSA2IDUgNCAzIDIgMSAwIC8gLiAtICwgKyApICpqampqampqampqampqampqampqaiAAIAEgAiALEAxqIAAgASAPIAwQDGogACABIAogDhAMaiAQIBggFyAWIBUgFCATIBEgEmpqampqampqICggJyAmICUgJCAjICIgISAgIB8gHiAdIBwgGyAZIBpqampqampqampqampqampragvJCgELfyMAQRBrIgwkACACKAIAIg4oAgAhByAMQQA2AgwgDEIANwIEAkACQAJAAkACQCADIAdGBEBBACECDAELIAcgA2siAkEBdCIGQYCAgIAETw0BIAwgAkEDdBAJIg82AgQgDCAPIAZBAnRqIgY2AgxBACECIA9BACAHQQN0IANBA3RrEAshBSAMIAY2AgggDigCACIJIANMDQADQCADQQFqIQcCfyAOIANBAnRqKAIAIgZBgwdMBEAgBSACQQJ0aiIDIAZBHm0iCjYCACADIAYgCkEebGs2AgQgByEDIAJBAmoMAQtBxhAhCiAGQZEHRwRAIAZBhAdrIgdBHE0EQEEBIAd0IgdBh4CAjgFxDQQgB0GAgIDwAHENBgtB4BYhCgwFCyAFIAJBAnRqQZEHNgIAIA4gB0ECdGooAgAiCEGdB2tBA0kNBCACQQFqIQYgByAJTgRAIAchAyAGDAELIAUgBkECdGogCDYCACADQQJqIQMgAkECagshAiADIAlIDQALCyAAAn8CfyABIQ4gBCEGQQAhBEEAIQpBACEHAkAgAkEASgRAA0AgDCgCBCIIIApBAnRqKAIAIgVBnQdrQQJNBEAgDkHGEDYCZEECDAQLAkAgBUGRB0YEQCACIApBAWoiAUwEQCABIQoMAgsgCkECaiEKIAggAUECdGooAgAhBSAGKAIEIgEgBigCCCILSQRAIAEgBToAACAGIAFBAWo2AgQMAgsgASAGKAIAIgFrIglBAWoiCEEASA0EIAlB/////wcgCyABayILQQF0Ig0gCCAIIA1JGyALQf////8DTxsiCAR/IAgQCQVBAAsiC2oiDSAFOgAAIAYgCyABIAkQDSIFIAhqNgIIIAYgDUEBajYCBCAGIAU2AgAgAUUNASABEAcMAQsCQAJAAkACfwJ/AkACQAJAAkACQCAEDgYAAAECAwQJCyAFQRlMBEAgBUHhAEHBACAEG2ohCSAEDAYLQSAhCSAFQRpGBEAgBCEBDAcLAkAgBUEbRyIBDQAgBA0AQQEhBAwJCwJAIAENACAEQQFHDQBBBCEEQQEhBwwJCyAFQRxGBEBBAiEEDAkLIApBAWoiASACTg0IIAcgBCAIIAFBAnRqKAIAQZEHRiIBGyEHIARBBSABGyEEDAgLIAVBGEwEQCAFQZMTai0AACEJQQIMBQtBAyEEQQIhAUEgIQkCQAJAAkAgBUEZaw4ECggAAQILQQEhBAwJC0EAIQQMCAtBAiEEIApBAWoiASACTg0HIAdBAiAIIAFBAnRqKAIAQZEHRiIBGyEHQQJBBSABGyEEDAcLQQAhBCAFQRxKDQYgBUGDGmotAAAhCUEDDAMLIAVBwQBqIAVBGUwNARpBICEJIAchASAFQRpGDQMgByEEDAULQQAhBCAFQRxKDQQgBUGDGmotAAALIQkgBwshASAJQf8BcUUNAQsgBigCBCIEIAYoAggiC0kEQCAEIAk6AAAgBiAEQQFqNgIEDAELIAQgBigCACIEayIFQQFqIghBAEgNBSAFQf////8HIAsgBGsiC0EBdCINIAggCCANSRsgC0H/////A08bIggEfyAIEAkFQQALIgtqIg0gCToAACAGIAsgBCAFEA0iBSAIajYCCCAGIA1BAWo2AgQgBiAFNgIAIARFDQAgBBAHCyABIQQLIApBAWohCgsgAiAKSg0ACwtBAAwBCxAAAAsEQCAAQQA6AABBAAwBCyAAIAM2AgBBAQs6AAQgD0UNAwwCCxAAAAsgASAKNgJkIABBADoABCAAQQA6AAALIA8QBwsgDEEQaiQAC8INAwh/AXwCfiMAQdAAayIHJAACQCABRQ0AIAEoAgAiAkUNAAJAIAEoAggiA0EEaiIEIAEoAgQiBksiCA0AIAIgA2pByA5BBBBQDQAgAEEENgIMIAEgBDYCCEEBIQUMAQsCQCADQQVqIgkgBksNACACIANqQeAPQQUQUA0AQQEhBSAAQQE2AgwgASAJNgIIDAELAkAgCA0AIAIgA2pB2w9BBBBQDQBBASEFIABBATYCFCAAQQI2AgwgASAENgIIDAELIAMgBk8NACACIANqIgQtAAAiAkEiRgRAIAAgARDHASEFDAELIAJBLUcgAkEwa0H/AXFBCUtxRQRAIAdBADYCTCAGIANrIgNBACADIAZNGyEDA0ACQCADIAVGBEAgAyECDAELAkAgBCAFai0AACICQTBrQQpJDQAgAkErayIGQRpNQQBBASAGdEGNgIAgcRsNACACQeUARg0AIAUhAgwBCyAFIAdqIAI6AAAgAyAFQQFqIgJGBEAgAyECDAELAkAgAiAEai0AACIGQTBrQQpJDQAgBkErayIIQRpNQQBBASAIdEGNgIAgcRsNACAGQeUARw0BCyACIAdqIAY6AAAgAyAFQQJqIgJGBEAgAyECDAELAkAgAiAEai0AACIGQTBrQQpJDQAgBkErayIIQRpNQQBBASAIdEGNgIAgcRsNACAGQeUARw0BCyACIAdqIAY6AABBPyECIAVBA2oiBUE/Rw0BCwtBACEFIAIgB2pBADoAACMAQRBrIgMkACMAQaABayICJAAgAiAHNgI8IAIgBzYCFCACQX82AhggAkEQaiIEQgAQLiACIARBAUEBEL0BIAIpAwghCyACKQMAIQwgB0HMAGoiBARAIAQgByACKAIUIAIoAogBaiACKAI8a2o2AgALIAMgCzcDCCADIAw3AwAgAkGgAWokACADKQMAIAMpAwgQfCEKIANBEGokACAHIAcoAkwiA0YNASAAIAo5AxgCf0H/////ByAKRAAAwP///99BZg0AGkGAgICAeCAKRAAAAAAAAODBZQ0AGiAKmUQAAAAAAADgQWMEQCAKqgwBC0GAgICAeAshBSAAQQg2AgwgACAFNgIUIAEgASgCCCADIAdrajYCCEEBIQUMAQsCQCACQfsARwRAIAJB2wBHDQIgASgCDCICQecHSw0CIAEgAkEBajYCDCAELQAAQdsARw0CIAEgA0EBajYCCCABEDkCQAJAAkAgASgCCCICIAEoAgRJBEAgASgCACACai0AAEHdAEcNASABIAEoAgxBAWs2AgxBACEDDAILIAEgAkEBazYCCAwFCyABIAJBAWs2AghBACEGA0BBKCABKAIQEQEAIgRFDQIgBEIANwMAIARCADcDICAEQgA3AxggBEIANwMQIARCADcDCCAEIQMgBQRAIAYgBDYCACAEIAY2AgQgBSEDCyABIAEoAghBAWo2AgggARA5IAQgARCJAUUEQCADEDAMBQsgARA5IAEoAggiAiABKAIETwRAIAMQMAwFCyADIQUgBCEGIAEoAgAgAmotAAAiBEEsRg0ACyAEQd0ARwRAIAMQMAwECyABIAEoAgxBAWs2AgwgAyAGNgIECyAAIAM2AgggAEEgNgIMQQEhBSABIAJBAWo2AggMAwsgBUUNASAFEDAMAQsgASgCDCICQecHSw0BIAEgAkEBajYCDCAELQAAQfsARw0BIAEgA0EBajYCCCABEDkCQAJAAkACQCABKAIIIgIgASgCBEkEQCABKAIAIAJqLQAAQf0ARw0BIAEgASgCDEEBazYCDEEAIQMMAgsgASACQQFrNgIIDAULIAEgAkEBazYCCEEAIQYDQEEoIAEoAhARAQAiBEUNAiAEQgA3AwAgBEIANwMgIARCADcDGCAEQgA3AxAgBEIANwMIIAQhAyAFBEAgBiAENgIAIAQgBjYCBCAFIQMLIAEgASgCCEEBajYCCCABEDkgBCABEMcBRQRAIAMhBQwECyABEDkgBCAEKAIQNgIgIARBADYCECABKAIIIgUgASgCBE8EQCADIQUMBAsgASgCACAFai0AAEE6RwRAIAMhBQwECyABIAVBAWo2AgggARA5IAQgARCJAUUEQCADIQUMBAsgARA5IAEoAggiAiABKAIETwRAIAMhBQwECyADIQUgBCEGIAEoAgAgAmotAAAiBEEsRg0ACyAEQf0ARw0CIAEgASgCDEEBazYCDCADIAY2AgQLIAAgAzYCCCAAQcAANgIM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A0H8////B08bIgUEQCAFQYCAgIAETw0CIAVBAnQQCSEJCyAJIAZBAnRqIgYhAyABQQdxIgQEQANAIAMgAigCADYCACADQQRqIQMgCEEBaiIIIARHDQALCyAGIAFBAnRqIQQgAUEBa0H/////A3FBB08EQANAIAMgAigCADYCACADIAIoAgA2AgQgAyACKAIANgIIIAMgAigCADYCDCADIAIoAgA2AhAgAyACKAIANgIUIAMgAigCADYCGCADIAIoAgA2AhwgA0EgaiIDIARHDQALCyAJIAcgChANIQEgACAENgIEIAAgATYCACAAIAEgBUECdGo2AgggBwRAIAcQBwsPCxAAAAsQEwAL2QEBBX8CQAJAAkACQCABDgIAAQILIAAoAghBBGsoAgAPCyAAKAIEIgEgACgCCCIARg0BA0AgASgCACACcyECIAFBBGoiASAARw0ACwwBCyAAKAIEIgQoAgAhAiAAKAIIIARrIgNBBUkNAEECIANBAnUiAyADQQJNGyEDIAAoAgAhACABQQF0IQVBASEBA0AgAgR/IAAoAgggACgCFCIGIAJBAXRqLgEAIAUgBmouAQBqQQF0ai4BAAVBAAsgBCABQQJ0aigCAHMhAiABQQFqIgEgA0cNAAsLIAILigMCBn8DfiMAQTBrIgQkAAJAIAEtACANAAJAAkBBrNwBKAIAIgNFDQAgASgCCCABLQAPIgUgBcBBAEgiBRshByABKAIEIAFBBGogBRshCCABKAIAIQUDQCADKAIQIgYgBUoEQCADKAIAIgMNAQwCCyAFIAZMDQIgAygCBCIDDQALCxAAAAsCQCADLAAfQQBOBEAgBCADKAIcNgIoIAQgAykCFDcDIAwBCyAEQSBqIAMoAhQgAygCGBAoCwJ/IAEtABxFBEBBACEDQQAMAQsgASgCFCABLQAbIgMgA8BBAEgiBRshAyABKAIQIAFBEGogBRsLIQEgBCgCICEFIAQsACshBiAEIAIpAgAiCTcDACAEIAIoAgggCadqrSIKIAlCgICAgHCDhDcDCCAEIAIoAgwgCUIgiKdqrUIghiILIAlC/////w+DhDcDGCAEIAogC4Q3AxAgACAIIAcgBSAEQSBqIAZBAEgbIAEgAyAEQQAQVCAELAArQQBODQAgBCgCIBAHCyAEQTBqJAALtwMBAX8CQCAALQAkIgIgAS0AJEYEQCACRQ0BIAAgASgCADYCACAALAAPQQBIBEAgACgCBBAHCyAAIAEpAgQ3AgQgACABKAIMNgIMIAFBADoABCABQQA6AA8CQCAALQAcIgIgAS0AHEYEQCACRQ0BIAAsABtBAEgEQCAAKAIQEAcLIAAgASkCEDcCECAAIAEoAhg2AhggAUEAOgAQIAFBADoAGwwBCyACBEAgACwAG0EASARAIAAoAhAQBwsgAEEAOgAcDAELIAAgASkCEDcCECAAIAEoAhg2AhggAUIANwIQIAFBADYCGCAAQQE6ABwLIAAgAS0AIDoAIA8LIAIEQAJAIAAtABxFDQAgACwAG0EATg0AIAAoAhAQBwsgACwAD0EASARAIAAoAgQQBwsgAEEAOgAkDwsgACABKAIANgIAIAAgASgCDDYCDCAAIAEpAgQ3AgQgAUEANgIMIAFCADcCBCAAQQA6ABwgAEEAOgAQIAEtABwEQCAAIAEpAhA3AhAgACABKAIYNgIYIAFCADcCECABQQA2AhggAEEBOgAcCyABLQAgIQEgAEEBOgAkIAAgAToAIAsLHwAgAQRAIAAgASgCABCQASAAIAEoAgQQkAEgARAHCwtdAQF/QQEhAQJAIAAtACANACAALQAhDQAgAC0AJA0AIAAtACUNACAALQAmDQAgAC0AJw0AIAAtACgNACAALQApDQAgAC0AKg0AIAAtACsNACAALQAsQQBHIQELIAELmJgCAgd/AX4jAEGgAmsiACQAIABBCGoiAUGAzABBxAAQDhpB2NkBQdzZATYCAEHc2QFCADcCAEHY2QEgASAAQcwAahAcIABBtRUtAAA6AAwgAEEAOgAcIABBADoALCAAQoiAgIDQrJi3NTcCJCAAQQA6ADwgAEKFgICA0KyYtzI3AjQgAEKCgICA0I7cseEANwJEIABBADoATCAAQQw2AlQgAEEFOgATIABBsRUoAAA2AgggAEEEOgAjIABBADoADSAAQQQ6ADMgAEKNgICA0KyYtzg3AhQgAEEEOgBDIABBBDoAUyAAQQQ6AGMgAEEJNgJkIABBADoAXCAAQSI2AnQgAEGfDCgAADYAayAAQQc6AHMgAEH14I2rBjYCWCAAQQA6AG8gAEGcDCgAADYCaEEQEAkhAiAAQouAgICAgoCAgH83AnwgACACNgJ4IAJBtQwoAAA2AAcgAkGuDCkAADcAACACQQA6AAsgAEGDFS8AADsBjAEgAEEnNgKUASAAQa4VLwAAOwGcASAAQd0ANgKkASAAQSM2AoQBIABBBjoAkwEgAEH/FCgAADYCiAEgAEEGOgCjASAAQQA6AI4BIABBqhUoAAA2ApgBIABBBzoAswEgAEEAOgCeASAAQYABNgK0ASAAQRk2AsQBIABBiRUoAAA2AKsBIABBnRUtAAA6ALoBIABBAzoAwwEgAEEAOgCvASAAQQc6ANMBIABBADoAuwEgAEGGFSgAADYCqAEgAEGbFS8AADsBuAEgAEGnDCgAADYAywEgAEGkDCgAADYCyAEgAEEmNgLUASAAQQI6AOMBIABBADoAzwEgAEHAADYC5AEgAEEFOgDzASAAQQA6ANoBIABB8eQBOwHYASAAQacSLQAAOgDsASAAQaMSKAAANgLoASAAQcEANgL0ASAAQQo6AIMCIABBADoA7QEgAEG4CC8AADsBgAIgAEGwCCkAADcC+AEgAEHCADYChAIgAEEGOgCTAiAAQQA6AIICIABBkhUvAAA7AYwCIABBjhUoAAA2AogCIABBoQM2ApQCIABBADoAjgJB6NkBQgA3AgBB5NkBQejZATYCACAAQZgCaiICQeTZAUHo2QEgASABEAggAkHk2QFB6NkBIABBGGoiASABEAggAkHk2QFB6NkBIABBKGoiASABEAggAkHk2QFB6NkBIABBOGoiASABEAggAkHk2QFB6NkBIABByABqIgEgARAIIAJB5NkBQejZASAAQdgAaiIBIAEQCCACQeTZAUHo2QEgAEHoAGoiASABEAggAkHk2QFB6NkBIABB+ABqIgEgARAIIAJB5NkBQejZASAAQYgBaiIBIAEQCCACQeTZAUHo2QEgAEGYAWoiASABEAggAkHk2QFB6NkBIABBqAFqIgEgARAIIAJB5NkBQejZASAAQbgBaiIBIAEQCCACQeTZAUHo2QEgAEHIAWoiASABEAggAkHk2QFB6NkBIABB2AFqIgEgARAIIAJB5NkBQejZASAAQegBaiIBIAEQCCACQeTZAUHo2QEgAEH4AWoiASABEAggAkHk2QFB6NkBIABBiAJqIgEgARAIIAAsAJMCQQBIBEAgACgCiAIQBwsgACwAgwJBAEgEQCAAKAL4ARAHCyAALADzAUEASARAIAAoAugBEAcLIAAsAOMBQQBIBEAgACgC2AEQBwsgACwA0wFBAEgEQCAAKALIARAHCyAALADDAUEASARAIAAoArgBEAcLIAAsALMBQQBIBEAgACgCqAEQBwsgACwAowFBAEgEQCAAKAKYARAHCyAALACTAUEASARAIAAoAogBEAcLIAAsAIMBQQBIBEAgACgCeBAHCyAALABzQQBIBEAgACgCaBAHCyAALABjQQBIBEAgACgCWBAHCyAALABTQQBIBEAgACgCSBAHCyAALABDQQBIBEAgACgCOBAHCyAALAAzQQBIBEAgACgCKBAHCyAALAAjQQBIBEAgACgCGBAHCyAALAATQQBIBEAgACgCCBAHC0EAIQJB8NkBQfTZATYCAEH02QFCADcCAAJAQeTZASgCACIDQejZAUYNAANAIANBEGohBiADKAIcIQQCQAJAIAJFBEBB9NkBIQVB9NkBIQEMAQsDQCACIgEoAhAiAiAESgRAIAEhBSABKAIAIgINAQwCCyACIAROBEAgASECDAMLIAEoAgQiAg0ACyABQQRqIQULQSAQCSICIAQ2AhAgAiABNgIIIAJCADcCACACQgA3AhQgAkEANgIcIAUgAjYCACACIQFB8NkBKAIAKAIAIgQEQEHw2QEgBDYCACAFKAIAIQELQfTZASgCACABEBJB+NkBQfjZASgCAEEBajYCAAsCQCACQRRqIgQgBkYNACADLQAbIgXAIQEgAiwAH0EATgRAIAFBAE4EQCAEIAYpAgA3AgAgBCAGKAIINgIIDAILIAQgAygCECADKAIUEB0MAQsgBCADKAIQIAYgAUEASCIBGyADKAIUIAUgARsQHgsCQCADKAIEIgIEQANAIAIiASgCACICDQAMAgsACwNAIAMoAggiASgCACADRyECIAEhAyACDQALCyABQejZAUYNAUH02QEoAgAhAiABIQMMAAsACyAAQaACaiQAQfzZAUHQABAJIgE2AgBBgNoBQsCAgICAioCAgH83AgAgAUGKEykAADcAOCABQYITKQAANwAwIAFB+hIpAAA3ACggAUHyEikAADcAICABQeoSKQAANwAYIAFB4hIpAAA3ABAgAUHaEikAADcACCABQdISKQAANwAAIAFBADoAQCMAQaACayIAJAAgAEEIaiIBQcTMAEHEABAOGkGI2gFBjNoBNgIAQYzaAUIANwIAQYjaASABIABB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uNoBQbzaATYCACAAQZgCaiICQbjaAUG82gEgASABEAggAkG42gFBvNoBIABBGGoiASABEAggAkG42gFBvNoBIABBKGoiASABEAggAkG42gFBvNoBIABBOGoiASABEAggAkG42gFBvNoBIABByABqIgEgARAIIAJBuNoBQbzaASAAQdgAaiIBIAEQCCACQbjaAUG82gEgAEHoAGoiASABEAggAkG42gFBvNoBIABB+ABqIgEgARAIIAJBuNoBQbzaASAAQYgBaiIBIAEQCCACQbjaAUG82gEgAEGYAWoiASABEAggAkG42gFBvNoBIABBqAFqIgEgARAIIAJBuNoBQbzaASAAQbgBaiIBIAEQCCACQbjaAUG82gEgAEHIAWoiASABEAggAkG42gFBvNoBIABB2AFqIgEgARAIIAJBuNoBQbzaASAAQegBaiIBIAEQCCACQbjaAUG82gEgAEH4AWoiASABEAggAkG42gFBvNoBIABBiAJqIgEgARAIIAAsAJMCQQBIBEAgACgCiAIQBwsgACwAgwJBAEgEQCAAKAL4ARAHCyAALADzAUEASARAIAAoAugBEAcLIAAsAOMBQQBIBEAgACgC2AEQBwsgACwA0wFBAEgEQCAAKALIARAHCyAALADDAUEASARAIAAoArgBEAcLIAAsALMBQQBIBEAgACgCqAEQBwsgACwAowFBAEgEQCAAKAKYARAHCyAALACTAUEASARAIAAoAogBEAcLIAAsAIMBQQBIBEAgACgCeBAHCyAALABzQQBIBEAgACgCaBAHCyAALABjQQBIBEAgACgCWBAHCyAALABTQQBIBEAgACgCSBAHCyAALABDQQBIBEAgACgCOBAHCyAALAAzQQBIBEAgACgCKBAHCyAALAAjQQBIBEAgACgCGBAHCyAALAATQQBIBEAgACgCCBAHC0EAIQJBxNoBQcjaATYCAEHI2gFCADcCAAJAQbjaASgCACIDQbzaAUYNAANAIANBEGohBiADKAIcIQQCQAJAIAJFBEBByNoBIQVByNoBIQEMAQsDQCACIgEoAhAiAiAESgRAIAEhBSABKAIAIgINAQwCCyACIAROBEAgASECDAMLIAEoAgQiAg0ACyABQQRqIQULQSAQCSICIAQ2AhAgAiABNgIIIAJCADcCACACQgA3AhQgAkEANgIcIAUgAjYCACAC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AnwgACACNgJ4IAJBtQwoAAA2AAcgAkGuDCkAADcAACACQQA6AAsgAEGDFS8AADsBjAEgAEEnNgKUASAAQa4VLwAAOwGcASAAQd0ANgKkASAAQSM2AoQBIABBBjoAkwEgAEH/FCgAADYCiAEgAEEGOgCjASAAQQA6AI4BIABBqhUoAAA2ApgBIABBBzoAswEgAEEAOgCeASAAQYABNgK0ASAAQRk2AsQBIABBiRUoAAA2AKsBIABBnRUtAAA6ALoBIABBAzoAwwEgAEEAOgCvASAAQQc6ANMBIABBADoAuwEgAEGGFSgAADYCqAEgAEGbFS8AADsBuAEgAEGnDCgAADYAywEgAEGkDCgAADYCyAEgAEEmNgLUASAAQQI6AOMBIABBADoAzwEgAEHAADYC5AEgAEEFOgDzASAAQQA6ANoBIABB8eQBOwHYASAAQacSLQAAOgDsASAAQaMSKAAANgLoASAAQcEANgL0ASAAQQo6AIMCIABBADoA7QEgAEG4CC8AADsBgAIgAEGwCCkAADcC+AEgAEHCADYChAIgAEEGOgCTAiAAQQA6AIICIABBkhUvAAA7AYwCIABBjhUoAAA2AogCIABBoQM2ApQCIABBADoAjgJBqNsBQgA3AgBBpNsBQajbATYCACAAQZgCaiICQaTbAUGo2wEgASABEAggAkGk2wFBqNsBIABBGGoiASABEAggAkGk2wFBqNsBIABBKGoiASABEAggAkGk2wFBqNsBIABBOGoiASABEAggAkGk2wFBqNsBIABByABqIgEgARAIIAJBpNsBQajbASAAQdgAaiIBIAEQCCACQaTbAUGo2wEgAEHoAGoiASABEAggAkGk2wFBqNsBIABB+ABqIgEgARAIIAJBpNsBQajbASAAQYgBaiIBIAEQCCACQaTbAUGo2wEgAEGYAWoiASABEAggAkGk2wFBqNsBIABBqAFqIgEgARAIIAJBpNsBQajbASAAQbgBaiIBIAEQCCACQaTbAUGo2wEgAEHIAWoiASABEAggAkGk2wFBqNsBIABB2AFqIgEgARAIIAJBpNsBQajbASAAQegBaiIBIAEQCCACQaTbAUGo2wEgAEH4AWoiASABEAggAkGk2wFBqNsBIABBiAJqIgEgARAIIAAsAJMCQQBIBEAgACgCiAIQBwsgACwAgwJBAEgEQCAAKAL4ARAHCyAALADzAUEASARAIAAoAugBEAcLIAAsAOMBQQBIBEAgACgC2AEQBwsgACwA0wFBAEgEQCAAKALIARAHCyAALADDAUEASARAIAAoArgBEAcLIAAsALMBQQBIBEAgACgCqAEQBwsgACwAowFBAEgEQCAAKAKYARAHCyAALACTAUEASARAIAAoAogBEAcLIAAsAIMBQQBIBEAgACgCeBAHCyAALABzQQBIBEAgACgCaBAHCyAALABjQQBIBEAgACgCWBAHCyAALABTQQBIBEAgACgCSBAHCyAALABDQQBIBEAgACgCOBAHCyAALAAzQQBIBEAgACgCKBAHCyAALAAjQQBIBEAgACgCGBAHCyAALAATQQBIBEAgACgCCBAHC0EAIQJBsNsBQbTbATYCAEG02wFCADcCAAJAQaTbASgCACIDQajbAUYNAANAIANBEGohBiADKAIcIQQCQAJAIAJFBEBBtNsBIQVBtNsBIQEMAQsDQCACIgEoAhAiAiAESgRAIAEhBSABKAIAIgINAQwCCyACIAROBEAgASECDAMLIAEoAgQiAg0ACyABQQRqIQULQSAQCSICIAQ2AhAgAiABNgIIIAJCADcCACACQgA3AhQgAkEANgIcIAUgAjYCACACIQFBsNsBKAIAKAIAIgQEQEGw2wEgBDYCACAFKAIAIQELQbTbASgCACABEBJBuNsBQbjbASgCAEEBajYCAAsCQCACQRRqIgQgBkYNACADLQAbIgXAIQEgAiwAH0EATgRAIAFBAE4EQCAEIAYpAgA3AgAgBCAGKAIINgIIDAILIAQgAygCECADKAIUEB0MAQsgBCADKAIQIAYgAUEASCIBGyADKAIUIAUgARsQHgsCQCADKAIEIgIEQANAIAIiASgCACICDQAMAgsACwNAIAMoAggiASgCACADRyECIAEhAyACDQALCyABQajbAUYNAUG02wEoAgAhAiABIQMMAAsACyAAQaACaiQAIwBBoAJrIgAkACAAQQhqIgFBlOgAQcQAEA4aQbzbAUHA2wE2AgBBwNsBQgA3AgBBvNsBIAEgAEHMAGoQHCAAQbUVLQAAOgAMIABBADoAHCAAQQA6ACwgAEKIgICA0KyYtzU3AiQgAEEAOgA8IABChYCAgNCsmLcyNwI0IABCgoCAgNCO3LHhADcCRCAAQQA6AEwgAEEMNgJUIABBBToAEyAAQbEVKAAANgIIIABBBDoAIyAAQQA6AA0gAEEEOgAzIABCjYCAgNCsmLc4NwIUIABBBDoAQyAAQQQ6AFMgAEEEOgBjIABBCTYCZCAAQQA6AFwgAEEiNgJ0IABBnwwoAAA2AGsgAEEHOgBzIABB9eCNqwY2AlggAEEAOgBvIABBnAwoAAA2AmhBEBAJIQIgAEKLgICAgIKAgIB/NwJ8IAAgAjYCeCACQbUMKAAANgAHIAJBrgwpAAA3AAAgAkEAOgALIABBgxUvAAA7AYwBIABBJzYClAEgAEGuFS8AADsBnAEgAEHdADYCpAEgAEEjNgKEASAAQQY6AJMBIABB/xQoAAA2AogBIABBBjoAowEgAEEAOgCOASAAQaoVKAAANgKYASAAQQc6ALMBIABBADoAngEgAEGAATYCtAEgAEEZNgLEASAAQYkVKAAANgCrASAAQZ0VLQAAOgC6ASAAQQM6AMMBIABBADoArwEgAEEHOgDTASAAQQA6ALsBIABBhhUoAAA2AqgBIABBmxUvAAA7AbgBIABBpwwoAAA2AMsBIABBpAwoAAA2AsgBIABBJjYC1AEgAEECOgDjASAAQQA6AM8BIABBwAA2AuQBIABBBToA8wEgAEEAOgDaASAAQfHkATsB2AEgAEGnEi0AADoA7AEgAEGjEigAADYC6AEgAEHBADYC9AEgAEEKOgCDAiAAQQA6AO0BIABBuAgvAAA7AYACIABBsAgpAAA3AvgBIABBwgA2AoQCIABBBjoAkwIgAEEAOgCCAiAAQZIVLwAAOwGMAiAAQY4VKAAANgKIAiAAQaEDNgKUAiAAQQA6AI4CQczbAUIANwIAQcjbAUHM2wE2AgAgAEGYAmoiAkHI2wFBzNsBIAEgARAIIAJByNsBQczbASAAQRhqIgEgARAIIAJByNsBQczbASAAQShqIgEgARAIIAJByNsBQczbASAAQThqIgEgARAIIAJByNsBQczbASAAQcgAaiIBIAEQCCACQcjbAUHM2wEgAEHYAGoiASABEAggAkHI2wFBzNsBIABB6ABqIgEgARAIIAJByNsBQczbASAAQfgAaiIBIAEQCCACQcjbAUHM2wEgAEGIAWoiASABEAggAkHI2wFBzNsBIABBmAFqIgEgARAIIAJByNsBQczbASAAQagBaiIBIAEQCCACQcjbAUHM2wEgAEG4AWoiASABEAggAkHI2wFBzNsBIABByAFqIgEgARAIIAJByNsBQczbASAAQdgBaiIBIAEQCCACQcjbAUHM2wEgAEHoAWoiASABEAggAkHI2wFBzNsBIABB+AFqIgEgARAIIAJByNsBQczbASAAQYgCaiIBIAEQCCAALACTAkEASARAIAAoAogCEAcLIAAsAIMCQQBIBEAgACgC+AEQBwsgACwA8wFBAEgEQCAAKALoARAHCyAALADjAUEASARAIAAoAtgBEAcLIAAsANMBQQBIBEAgACgCyAEQBwsgACwAwwFBAEgEQCAAKAK4ARAHCyAALACzAUEASARAIAAoAqgBEAcLIAAsAKMBQQBIBEAgACgCmAEQBwsgACwAkwFBAEgEQCAAKAKIARAHCyAALACDAUEASARAIAAoAngQBwsgACwAc0EASARAIAAoAmgQBwsgACwAY0EASARAIAAoAlgQBwsgACwAU0EASARAIAAoAkgQBwsgACwAQ0EASARAIAAoAjgQBwsgACwAM0EASARAIAAoAigQBwsgACwAI0EASARAIAAoAhgQBwsgACwAE0EASARAIAAoAggQBwtBACECQdTbAUHY2wE2AgBB2NsBQgA3AgACQEHI2wEoAgAiA0HM2wFGDQADQCADQRBqIQYgAygCHCEEAkACQCACRQRAQdjbASEFQdjbASEBDAELA0AgAiIBKAIQIgIgBEoEQCABIQUgASgCACICDQEMAgsgAiAETgRAIAEhAgwDCyABKAIEIgINAAsgAUEEaiEFC0EgEAkiAiAENgIQIAIgATYCCCACQgA3AgAgAkIANwIUIAJBADYCHCAFIAI2AgAgAiEBQdTbASgCACgCACIEBEBB1NsBIAQ2AgAgBSgCACEBC0HY2wEoAgAgARASQdzbAUHc2wEoAgBBAWo2AgALAkAgAkEUaiIEIAZGDQAgAy0AGyIFwCEBIAIsAB9BAE4EQCABQQBOBEAgBCAGKQIANwIAIAQgBigCCDYCCAwCCyAEIAMoAhAgAygCFBAdDAELIAQgAygCECAGIAFBAEgiARsgAygCFCAFIAEbEB4LAkAgAygCBCICBEADQCACIgEoAgAiAg0ADAILAAsDQCADKAIIIgEoAgAgA0chAiABIQMgAg0ACwsgAUHM2wFGDQFB2NsBKAIAIQIgASEDDAALAAsgAEGg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IAJBmN4BQZzeASAAQbgBaiIBIAEQCCACQZjeAUGc3gEgAEHIAWoiASABEAggAkGY3gFBnN4BIABB2AFqIgEgARAIIAJBmN4BQZzeASAAQegBaiIBIAEQCCACQZjeAUGc3gEgAEH4AWoiASABEAggAkGY3gFBnN4BIABBiAJqIgEgARAIIAAsAJMCQQBIBEAgACgCiAIQBwsgACwAgwJBAEgEQCAAKAL4ARAHCyAALADzAUEASARAIAAoAugBEAcLIAAsAOMBQQBIBEAgACgC2AEQBwsgACwA0wFBAEgEQCAAKALIARAHCyAALADDAUEASARAIAAoArgBEAcLIAAsALMBQQBIBEAgACgCqAEQBwsgACwAowFBAEgEQCAAKAKYARAHCyAALACTAUEASARAIAAoAogBEAcLIAAsAIMBQQBIBEAgACgCeBAHCyAALABzQQBIBEAgACgCaBAHCyAALABjQQBIBEAgACgCWBAHCyAALABTQQBIBEAgACgCSBAHCyAALABDQQBIBEAgACgCOBAHCyAALAAzQQBIBEAgACgCKBAHCyAALAAjQQBIBEAgACgCGBAHCyAALAATQQBIBEAgACgCCBAHC0EAIQJBpN4BQajeATYCAEGo3gFCADcCAAJAQZjeASgCACIDQZzeAUYNAANAIANBEGohBiADKAIcIQQCQAJAIAJFBEBBqN4BIQVBqN4BIQEMAQsDQCACIgEoAhAiAiAESgRAIAEhBSABKAIAIgINAQwCCyACIAROBEAgASECDAMLIAEoAgQiAg0ACyABQQRqIQULQSAQCSICIAQ2AhAgAiABNgIIIAJCADcCACACQgA3AhQgAkEANgIcIAUgAjYCACACIQFBpN4BKAIAKAIAIgQEQEGk3gEgBDYCACAFKAIAIQELQajeASgCACABEBJBrN4BQazeASgCAEEBajYCAAsCQCACQRRqIgQgBkYNACADLQAbIgXAIQEgAiwAH0EATgRAIAFBAE4EQCAEIAYpAgA3AgAgBCAGKAIINgIIDAILIAQgAygCECADKAIUEB0MAQsgBCADKAIQIAYgAUEASCIBGyADKAIUIAUgARsQHgsCQCADKAIEIgIEQANAIAIiASgCACICDQAMAgsACwNAIAMoAggiASgCACADRyECIAEhAyACDQALCyABQZzeAUYNAUGo3gEoAgAhAiABIQMMAAsACyAAQaACaiQAIwBBoAJrIgAkACAAQQhqIgFBkO8AQcQAEA4aQbDeAUG03gE2AgBBtN4BQgA3AgBBsN4BIAEgAEHMAGoQHCAAQbUVLQAAOgAMIABBADoAHCAAQQA6ACwgAEKIgICA0KyYtzU3AiQgAEEAOgA8IABChYCAgNCsmLcyNwI0IABCgoCAgNCO3LHhADcCRCAAQQA6AEwgAEEMNgJUIABBBToAEyAAQbEVKAAANgIIIABBBDoAIyAAQQA6AA0gAEEEOgAzIABCjYCAgNCsmLc4NwIUIABBBDoAQyAAQQQ6AFMgAEEEOgBjIABBCTYCZCAAQQA6AFwgAEEiNgJ0IABBnwwoAAA2AGsgAEEHOgBzIABB9eCNqwY2AlggAEEAOgBvIABBnAwoAAA2AmhBEBAJIQIgAEKLgICAgIKAgIB/NwJ8IAAgAjYCeCACQbUMKAAANgAHIAJBrgwpAAA3AAAgAkEAOgALIABBgxUvAAA7AYwBIABBJzYClAEgAEGuFS8AADsBnAEgAEHdADYCpAEgAEEjNgKEASAAQQY6AJMBIABB/xQoAAA2AogBIABBBjoAowEgAEEAOgCOASAAQaoVKAAANgKYASAAQQc6ALMBIABBADoAngEgAEGAATYCtAEgAEEZNgLEASAAQYkVKAAANgCrASAAQZ0VLQAAOgC6ASAAQQM6AMMBIABBADoArwEgAEEHOgDTASAAQQA6ALsBIABBhhUoAAA2AqgBIABBmxUvAAA7AbgBIABBpwwoAAA2AMsBIABBpAwoAAA2AsgBIABBJjYC1AEgAEECOgDjASAAQQA6AM8BIABBwAA2AuQBIABBBToA8wEgAEEAOgDaASAAQfHkATsB2AEgAEGnEi0AADoA7AEgAEGjEigAADYC6AEgAEHBADYC9AEgAEEKOgCDAiAAQQA6AO0BIABBuAgvAAA7AYACIABBsAgpAAA3AvgBIABBwgA2AoQCIABBBjoAkwIgAEEAOgCCAiAAQZIVLwAAOwGMAiAAQY4VKAAANgKIAiAAQaEDNgKUAiAAQQA6AI4CQcDeAUIANwIAQbzeAUHA3gE2AgAgAEGYAmoiAkG83gFBwN4BIAEgARAIIAJBvN4BQcDeASAAQRhqIgEgARAIIAJBvN4BQcDeASAAQShqIgEgARAIIAJBvN4BQcDeASAAQThqIgEgARAIIAJBvN4BQcDeASAAQcgAaiIBIAEQCCACQbzeAUHA3gEgAEHYAGoiASABEAggAkG83gFBwN4BIABB6ABqIgEgARAIIAJBvN4BQcDeASAAQfgAaiIBIAEQCCACQbzeAUHA3gEgAEGIAWoiASABEAggAkG83gFBwN4BIABBmAFqIgEgARAIIAJBvN4BQcDeASAAQagBaiIBIAEQCCACQbzeAUHA3gEgAEG4AWoiASABEAggAkG83gFBwN4BIABByAFqIgEgARAIIAJBvN4BQcDeASAAQdgBaiIBIAEQCCACQbzeAUHA3gEgAEHoAWoiASABEAggAkG83gFBwN4BIABB+AFqIgEgARAIIAJBvN4BQcDeASAAQYgCaiIBIAEQCCAALACTAkEASARAIAAoAogCEAcLIAAsAIMCQQBIBEAgACgC+AEQBwsgACwA8wFBAEgEQCAAKALoARAHCyAALADjAUEASARAIAAoAtgBEAcLIAAsANMBQQBIBEAgACgCyAEQBwsgACwAwwFBAEgEQCAAKAK4ARAHCyAALACzAUEASARAIAAoAqgBEAcLIAAsAKMBQQBIBEAgACgCmAEQBwsgACwAkwFBAEgEQCAAKAKIARAHCyAALACDAUEASARAIAAoAngQBwsgACwAc0EASARAIAAoAmgQBwsgACwAY0EASARAIAAoAlgQBwsgACwAU0EASARAIAAoAkgQBwsgACwAQ0EASARAIAAoAjgQBwsgACwAM0EASARAIAAoAigQBwsgACwAI0EASARAIAAoAhgQBwsgACwAE0EASARAIAAoAggQBwtBACECQcjeAUHM3gE2AgBBzN4BQgA3AgACQEG83gEoAgAiA0HA3gFGDQADQCADQRBqIQYgAygCHCEEAkACQCACRQRAQczeASEFQczeASEBDAELA0AgAiIBKAIQIgIgBEoEQCABIQUgASgCACICDQEMAgsgAiAETgRAIAEhAgwDCyABKAIEIgINAAsgAUEEaiEFC0EgEAkiAiAENgIQIAIgATYCCCACQgA3AgAgAkIANwIUIAJBADYCHCAFIAI2AgAgAiEBQcjeASgCACgCACIEBEBByN4BIAQ2AgAgBSgCACEBC0HM3gEoAgAgARASQdDeAUHQ3gEoAgBBAWo2AgALAkAgAkEUaiIEIAZGDQAgAy0AGyIFwCEBIAIsAB9BAE4EQCABQQBOBEAgBCAGKQIANwIAIAQgBigCCDYCCAwCCyAEIAMoAhAgAygCFBAdDAELIAQgAygCECAGIAFBAEgiARsgAygCFCAFIAEbEB4LAkAgAygCBCICBEADQCACIgEoAgAiAg0ADAILAAsDQCADKAIIIgEoAgAgA0chAiABIQMgAg0ACwsgAUHA3gFGDQFBzN4BKAIAIQIgASEDDAALAAsgAEGgAmokACMAQaACayIAJAAgAEEIaiIBQdzwAEHEABAOGkHU3gFB2N4BNgIAQdjeAUIANwIAQdTeASABIABBzABqEBwgAEG1FS0AADoADCAAQQA6ABwgAEEAOgAsIABCiICAgNCsmLc1NwIkIABBADoAPCAAQoWAgIDQrJi3MjcCNCAAQoKAgIDQjtyx4QA3AkQgAEEAOgBMIABBDDYCVCAAQQU6ABMgAEGxFSgAADYCCCAAQQQ6ACMgAEEAOgANIABBBDoAMyAAQo2AgIDQrJi3ODcCFCAAQQQ6AEMgAEEEOgBTIABBBDoAYyAAQQk2AmQgAEEAOgBcIABBIjYCdCAAQZ8MKAAANgBrIABBBzoAcyAAQfXgjasGNgJYIABBADoAbyAAQZwMKAAANgJoQRAQCSECIABCi4CAgICCgICAfzcCfCAAIAI2AnggAkG1DCgAADYAByACQa4MKQAANwAAIAJBADoACyAAQYMVLwAAOwGMASAAQSc2ApQBIABBrhUvAAA7AZwBIABB3QA2AqQBIABBIzYChAEgAEEGOgCTASAAQf8UKAAANgKIASAAQQY6AKMBIABBADoAjgEgAEGqFSgAADYCmAEgAEEHOgCzASAAQQA6AJ4BIABBgAE2ArQBIABBGTYCxAEgAEGJFSgAADYAqwEgAEGdFS0AADoAugEgAEEDOgDDASAAQQA6AK8BIABBBzoA0wEgAEEAOgC7ASAAQYYVKAAANgKoASAAQZsVLwAAOwG4ASAAQacMKAAANgDLASAAQaQMKAAANgLIASAAQSY2AtQBIABBAjoA4wEgAEEAOgDPASAAQcAANgLkASAAQQU6APMBIABBADoA2gEgAEHx5AE7AdgBIABBpxItAAA6AOwBIABBoxIoAAA2AugBIABBwQA2AvQBIABBCjoAgwIgAEEAOgDtASAAQbgILwAAOwGAAiAAQbAIKQAANwL4ASAAQcIANgKEAiAAQQY6AJMCIABBADoAggIgAEGSFS8AADsBjAIgAEGOFSgAADYCiAIgAEGhAzYClAIgAEEAOgCOAkHk3gFCADcCAEHg3gFB5N4BNgIAIABBmAJqIgJB4N4BQeTeASABIAEQCCACQeDeAUHk3gEgAEEYaiIBIAEQCCACQeDeAUHk3gEgAEEoaiIBIAEQCCACQeDeAUHk3gEgAEE4aiIBIAEQCCACQeDeAUHk3gEgAEHIAGoiASABEAggAkHg3gFB5N4BIABB2ABqIgEgARAIIAJB4N4BQeTeASAAQegAaiIBIAEQCCACQeDeAUHk3gEgAEH4AGoiASABEAggAkHg3gFB5N4BIABBiAFqIgEgARAIIAJB4N4BQeTeASAAQZgBaiIBIAEQCCACQeDeAUHk3gEgAEGoAWoiASABEAggAkHg3gFB5N4BIABBuAFqIgEgARAIIAJB4N4BQeTeASAAQcgBaiIBIAEQCCACQeDeAUHk3gEgAEHYAWoiASABEAggAkHg3gFB5N4BIABB6AFqIgEgARAIIAJB4N4BQeTeASAAQfgBaiIBIAEQCCACQeDeAUHk3gEgAEGIAmoiASABEAggACwAkwJBAEgEQCAAKAKIAhAHCyAALACDAkEASARAIAAoAvgBEAcLIAAsAPMBQQBIBEAgACgC6AEQBwsgACwA4wFBAEgEQCAAKALYARAHCyAALADTAUEASARAIAAoAsgBEAcLIAAsAMMBQQBIBEAgACgCuAEQBwsgACwAswFBAEgEQCAAKAKoARAHCyAALACjAUEASARAIAAoApgBEAcLIAAsAJMBQQBIBEAgACgCiAEQBwsgACwAgwFBAEgEQCAAKAJ4EAcLIAAsAHNBAEgEQCAAKAJoEAcLIAAsAGNBAEgEQCAAKAJYEAcLIAAsAFNBAEgEQCAAKAJIEAcLIAAsAENBAEgEQCAAKAI4EAcLIAAsADNBAEgEQCAAKAIoEAcLIAAsACNBAEgEQCAAKAIYEAcLIAAsABNBAEgEQCAAKAIIEAcLQQAhAkHs3gFB8N4BNgIAQfDeAUIANwIAAkBB4N4BKAIAIgNB5N4BRg0AA0AgA0EQaiEGIAMoAhwhBAJAAkAgAkUEQEHw3gEhBUHw3gEhAQwBCwNAIAIiASgCECICIARKBEAgASEFIAEoAgAiAg0BDAILIAIgBE4EQCABIQIMAwsgASgCBCICDQALIAFBBGohBQtBIBAJIgIgBDYCECACIAE2AgggAkIANwIAIAJCADcCFCACQQA2AhwgBSACNgIAIAIhAUHs3gEoAgAoAgAiBARAQezeASAENgIAIAUoAgAhAQtB8N4BKAIAIAEQEkH03gFB9N4BKAIAQQFqNgIACwJAIAJBFGoiBCAGRg0AIAMtABsiBcAhASACLAAfQQBOBEAgAUEATgRAIAQgBikCADcCACAEIAYoAgg2AggMAgsgBCADKAIQIAMoAhQQHQwBCyAEIAMoAhAgBiABQQBIIgEbIAMoAhQgBSABGxAeCwJAIAMoAgQiAgRAA0AgAiIBKAIAIgINAAwCCwALA0AgAygCCCIBKAIAIANHIQIgASEDIAINAAsLIAFB5N4BRg0BQfDeASgCACECIAEhAwwACwALIABBoAJqJAAjAEGgAmsiACQAIABBCGoiAUG08QBBxAAQDhpB+N4BQfzeATYCAEH83gFCADcCAEH43gEgASAAQcwAahAcIABBtRUtAAA6AAwgAEEAOgAcIABBADoALCAAQoiAgIDQrJi3NTcCJCAAQQA6ADwgAEKFgICA0KyYtzI3AjQgAEKCgICA0I7cseEANwJEIABBADoATCAAQQw2AlQgAEEFOgATIABBsRUoAAA2AgggAEEEOgAjIABBADoADSAAQQQ6ADMgAEKNgICA0KyYtzg3AhQgAEEEOgBDIABBBDoAUyAAQQQ6AGMgAEEJNgJkIABBADoAXCAAQSI2AnQgAEGfDCgAADYAayAAQQc6AHMgAEH14I2rBjYCWCAAQQA6AG8gAEGcDCgAADYCaEEQEAkhAiAAQouAgICAgoCAgH83AnwgACACNgJ4IAJBtQwoAAA2AAcgAkGuDCkAADcAACACQQA6AAsgAEGDFS8AADsBjAEgAEEnNgKUASAAQa4VLwAAOwGcASAAQd0ANgKkASAAQSM2AoQBIABBBjoAkwEgAEH/FCgAADYCiAEgAEEGOgCjASAAQQA6AI4BIABBqhUoAAA2ApgBIABBBzoAswEgAEEAOgCeASAAQYABNgK0ASAAQRk2AsQBIABBiRUoAAA2AKsBIABBnRUtAAA6ALoBIABBAzoAwwEgAEEAOgCvASAAQQc6ANMBIABBADoAuwEgAEGGFSgAADYCqAEgAEGbFS8AADsBuAEgAEGnDCgAADYAywEgAEGkDCgAADYCyAEgAEEmNgLUASAAQQI6AOMBIABBADoAzwEgAEHAADYC5AEgAEEFOgDzASAAQQA6ANoBIABB8eQBOwHYASAAQacSLQAAOgDsASAAQaMSKAAANgLoASAAQcEANgL0ASAAQQo6AIMCIABBADoA7QEgAEG4CC8AADsBgAIgAEGwCCkAADcC+AEgAEHCADYChAIgAEEGOgCTAiAAQQA6AIICIABBkhUvAAA7AYwCIABBjhUoAAA2AogCIABBoQM2ApQCIABBADoAjgJBiN8BQgA3AgBBhN8BQYjfATYCACAAQZgCaiICQYTfAUGI3wEgASABEAggAkGE3wFBiN8BIABBGGoiASABEAggAkGE3wFBiN8BIABBKGoiASABEAggAkGE3wFBiN8BIABBOGoiASABEAggAkGE3wFBiN8BIABByABqIgEgARAIIAJBhN8BQYjfASAAQdgAaiIBIAEQCCACQYTfAUGI3wEgAEHoAGoiASABEAggAkGE3wFBiN8BIABB+ABqIgEgARAIIAJBhN8BQYjfASAAQYgBaiIBIAEQCCACQYTfAUGI3wEgAEGYAWoiASABEAggAkGE3wFBiN8BIABBqAFqIgEgARAIIAJBhN8BQYjfASAAQbgBaiIBIAEQCCACQYTfAUGI3wEgAEHIAWoiASABEAggAkGE3wFBiN8BIABB2AFqIgEgARAIIAJBhN8BQYjfASAAQegBaiIBIAEQCCACQYTfAUGI3wEgAEH4AWoiASABEAggAkGE3wFBiN8BIABBiAJqIgEgARAIIAAsAJMCQQBIBEAgACgCiAIQBwsgACwAgwJBAEgEQCAAKAL4ARAHCyAALADzAUEASARAIAAoAugBEAcLIAAsAOMBQQBIBEAgACgC2AEQBwsgACwA0wFBAEgEQCAAKALIARAHCyAALADDAUEASARAIAAoArgBEAcLIAAsALMBQQBIBEAgACgCqAEQBwsgACwAowFBAEgEQCAAKAKYARAHCyAALACTAUEASARAIAAoAogBEAcLIAAsAIMBQQBIBEAgACgCeBAHCyAALABzQQBIBEAgACgCaBAHCyAALABjQQBIBEAgACgCWBAHCyAALABTQQBIBEAgACgCSBAHCyAALABDQQBIBEAgACgCOBAHCyAALAAzQQBIBEAgACgCKBAHCyAALAAjQQBIBEAgACgCGBAHCyAALAATQQBIBEAgACgCCBAHC0EAIQJBkN8BQZTfATYCAEGU3wFCADcCAAJAQYTfASgCACIDQYjfAUYNAANAIANBEGohBiADKAIcIQQCQAJAIAJFBEBBlN8BIQVBlN8BIQEMAQsDQCACIgEoAhAiAiAESgRAIAEhBSABKAIAIgINAQwCCyACIAROBEAgASECDAMLIAEoAgQiAg0ACyABQQRqIQULQSAQCSICIAQ2AhAgAiABNgIIIAJCADcCACACQgA3AhQgAkEANgIcIAUgAjYCACACIQFBkN8BKAIAKAIAIgQEQEGQ3wEgBDYCACAFKAIAIQELQZTfASgCACABEBJBmN8BQZjfASgCAEEBajYCAAsCQCACQRRqIgQgBkYNACADLQAbIgXAIQEgAiwAH0EATgRAIAFBAE4EQCAEIAYpAgA3AgAgBCAGKAIINgIIDAILIAQgAygCECADKAIUEB0MAQsgBCADKAIQIAYgAUEASCIBGyADKAIUIAUgARsQHgsCQCADKAIEIgIEQANAIAIiASgCACICDQAMAgsACwNAIAMoAggiASgCACADRyECIAEhAyACDQALCyABQYjfAUYNAUGU3wEoAgAhAiABIQMMAAsACyAAQaACaiQAIwBBoAJrIgAkACAAQQhqIgFB+PEAQcQAEA4aQZzfAUGg3wE2AgBBoN8BQgA3AgBBnN8BIAEgAEHMAGoQHCAAQbUVLQAAOgAMIABBADoAHCAAQQA6ACwgAEKIgICA0KyYtzU3AiQgAEEAOgA8IABChYCAgNCsmLcyNwI0IABCgoCAgNCO3LHhADcCRCAAQQA6AEwgAEEMNgJUIABBBToAEyAAQbEVKAAANgIIIABBBDoAIyAAQQA6AA0gAEEEOgAzIABCjYCAgNCsmLc4NwIUIABBBDoAQyAAQQQ6AFMgAEEEOgBjIABBCTYCZCAAQQA6AFwgAEEiNgJ0IABBnwwoAAA2AGsgAEEHOgBzIABB9eCNqwY2AlggAEEAOgBvIABBnAwoAAA2AmhBEBAJIQIgAEKLgICAgIKAgIB/NwJ8IAAgAjYCeCACQbUMKAAANgAHIAJBrgwpAAA3AAAgAkEAOgALIABBgxUvAAA7AYwBIABBJzYClAEgAEGuFS8AADsBnAEgAEHdADYCpAEgAEEjNgKEASAAQQY6AJMBIABB/xQoAAA2AogBIABBBjoAowEgAEEAOgCOASAAQaoVKAAANgKYASAAQQc6ALMBIABBADoAngEgAEGAATYCtAEgAEEZNgLEASAAQYkVKAAANgCrASAAQZ0VLQAAOgC6ASAAQQM6AMMBIABBADoArwEgAEEHOgDTASAAQQA6ALsBIABBhhUoAAA2AqgBIABBmxUvAAA7AbgBIABBpwwoAAA2AMsBIABBpAwoAAA2AsgBIABBJjYC1AEgAEECOgDjASAAQQA6AM8BIABBwAA2AuQBIABBBToA8wEgAEEAOgDaASAAQfHkATsB2AEgAEGnEi0AADoA7AEgAEGjEigAADYC6AEgAEHBADYC9AEgAEEKOgCDAiAAQQA6AO0BIABBuAgvAAA7AYACIABBsAgpAAA3AvgBIABBwgA2AoQCIABBBjoAkwIgAEEAOgCCAiAAQZIVLwAAOwGMAiAAQY4VKAAANgKIAiAAQaEDNgKUAiAAQQA6AI4CQazfAUIANwIAQajfAUGs3wE2AgAgAEGYAmoiAkGo3wFBrN8BIAEgARAIIAJBqN8BQazfASAAQRhqIgEgARAIIAJBqN8BQazfASAAQShqIgEgARAIIAJBqN8BQazfASAAQThqIgEgARAIIAJBqN8BQazfASAAQcgAaiIBIAEQCCACQajfAUGs3wEgAEHYAGoiASABEAggAkGo3wFBrN8BIABB6ABqIgEgARAIIAJBqN8BQazfASAAQfgAaiIBIAEQCCACQajfAUGs3wEgAEGIAWoiASABEAggAkGo3wFBrN8BIABBmAFqIgEgARAIIAJBqN8BQazfASAAQagBaiIBIAEQCCACQajfAUGs3wEgAEG4AWoiASABEAggAkGo3wFBrN8BIABByAFqIgEgARAIIAJBqN8BQazfASAAQdgBaiIBIAEQCCACQajfAUGs3wEgAEHoAWoiASABEAggAkGo3wFBrN8BIABB+AFqIgEgARAIIAJBqN8BQazfASAAQYgCaiIBIAEQCCAALACTAkEASARAIAAoAogCEAcLIAAsAIMCQQBIBEAgACgC+AEQBwsgACwA8wFBAEgEQCAAKALoARAHCyAALADjAUEASARAIAAoAtgBEAcLIAAsANMBQQBIBEAgACgCyAEQBwsgACwAwwFBAEgEQCAAKAK4ARAHCyAALACzAUEA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QfTfASAAQYgBaiIBIAEQCCACQfDfAUH03wEgAEGYAWoiASABEAggAkHw3wFB9N8BIABBqAFqIgEgARAIIAJB8N8BQfTfASAAQbgBaiIBIAEQCCACQfDfAUH03wEgAEHIAWoiASABEAggAkHw3wFB9N8BIABB2AFqIgEgARAIIAJB8N8BQfTfASAAQegBaiIBIAEQCCACQfDfAUH03wEgAEH4AWoiASABEAggAkHw3wFB9N8BIABBiAJqIgEgARAIIAAsAJMCQQBIBEAgACgCiAIQBwsgACwAgwJBAEgEQCAAKAL4ARAHCyAALADzAUEASARAIAAoAugBEAcLIAAsAOMBQQBIBEAgACgC2AEQBwsgACwA0wFBAEgEQCAAKALIARAHCyAALADDAUEASARAIAAoArgBEAcLIAAsALMBQQBIBEAgACgCqAEQBwsgACwAowFBAEgEQCAAKAKYARAHCyAALACTAUEASARAIAAoAogBEAcLIAAsAIMBQQBIBEAgACgCeBAHCyAALABzQQBIBEAgACgCaBAHCyAALABjQQBIBEAgACgCWBAHCyAALABTQQBIBEAgACgCSBAHCyAALABDQQBIBEAgACgCOBAHCyAALAAzQQBIBEAgACgCKBAHCyAALAAjQQBIBEAgACgCGBAHCyAALAATQQBIBEAgACgCCBAHC0EAIQJB/N8BQYDgATYCAEGA4AFCADcCAAJAQfDfASgCACIDQfTfAUYNAANAIANBEGohBiADKAIcIQQCQAJAIAJFBEBBgOABIQVBgOABIQEMAQsDQCACIgEoAhAiAiAESgRAIAEhBSABKAIAIgINAQwCCyACIAROBEAgASECDAMLIAEoAgQiAg0ACyABQQRqIQULQSAQCSICIAQ2AhAgAiABNgIIIAJCADcCACACQgA3AhQgAkEANgIcIAUgAjYCACACIQFB/N8BKAIAKAIAIgQEQEH83wEgBDYCACAFKAIAIQELQYDgASgCACABEBJBhOABQYTgASgCAEEBajYCAAsCQCACQRRqIgQgBkYNACADLQAbIgXAIQEgAiwAH0EATgRAIAFBAE4EQCAEIAYpAgA3AgAgBCAGKAIINgIIDAILIAQgAygCECADKAIUEB0MAQsgBCADKAIQIAYgAUEASCIBGyADKAIUIAUgARsQHgsCQCADKAIEIgIEQANAIAIiASgCACICDQAMAgsACwNAIAMoAggiASgCACADRyECIAEhAyACDQALCyABQfTfAUYNAUGA4AEoAgAhAiABIQMMAAsACyAAQaACaiQAIwBBoAJrIgAkACAAQQhqIgFB2PMAQcQAEA4aQcziAUHQ4gE2AgBB0OIBQgA3AgBBzOIBIAEgAEHMAGoQHCAAQbUVLQAAOgAMIABBADoAHCAAQQA6ACwgAEKIgICA0KyYtzU3AiQgAEEAOgA8IABChYCAgNCsmLcyNwI0IABCgoCAgNCO3LHhADcCRCAAQQA6AEwgAEEMNgJUIABBBToAEyAAQbEVKAAANgIIIABBBDoAIyAAQQA6AA0gAEEEOgAzIABCjYCAgNCsmLc4NwIUIABBBDoAQyAAQQQ6AFMgAEEEOgBjIABBCTYCZCAAQQA6AFwgAEEiNgJ0IABBnwwoAAA2AGsgAEEHOgBzIABB9eCNqwY2AlggAEEAOgBvIABBnAwoAAA2AmhBEBAJIQIgAEKLgICAgIKAgIB/NwJ8IAAgAjYCeCACQbUMKAAANgAHIAJBrgwpAAA3AAAgAkEAOgALIABBgxUvAAA7AYwBIABBJzYClAEgAEGuFS8AADsBnAEgAEHdADYCpAEgAEEjNgKEASAAQQY6AJMBIABB/xQoAAA2AogBIABBBjoAowEgAEEAOgCOASAAQaoVKAAANgKYASAAQQc6ALMBIABBADoAngEgAEGAATYCtAEgAEEZNgLEASAAQYkVKAAANgCrASAAQZ0VLQAAOgC6ASAAQQM6AMMBIABBADoArwEgAEEHOgDTASAAQQA6ALsBIABBhhUoAAA2AqgBIABBmxUvAAA7AbgBIABBpwwoAAA2AMsBIABBpAwoAAA2AsgBIABBJjYC1AEgAEECOgDjASAAQQA6AM8BIABBwAA2AuQBIABBBToA8wEgAEEAOgDaASAAQfHkATsB2AEgAEGnEi0AADoA7AEgAEGjEigAADYC6AEgAEHBADYC9AEgAEEKOgCDAiAAQQA6AO0BIABBuAgvAAA7AYACIABBsAgpAAA3AvgBIABBwgA2AoQCIABBBjoAkwIgAEEAOgCCAiAAQZIVLwAAOwGMAiAAQY4VKAAANgKIAiAAQaEDNgKUAiAAQQA6AI4CQdziAUIANwIAQdjiAUHc4gE2AgAgAEGYAmoiAkHY4gFB3OIBIAEgARAIIAJB2OIBQdziASAAQRhqIgEgARAIIAJB2OIBQdziASAAQShqIgEgARAIIAJB2OIBQdziASAAQThqIgEgARAIIAJB2OIBQdziASAAQcgAaiIBIAEQCCACQdjiAUHc4gEgAEHYAGoiASABEAggAkHY4gFB3OIBIABB6ABqIgEgARAIIAJB2OIBQdziASAAQfgAaiIBIAEQCCACQdjiAUHc4gEgAEGIAWoiASABEAggAkHY4gFB3OIBIABBmAFqIgEgARAIIAJB2OIBQdziASAAQagBaiIBIAEQCCACQdjiAUHc4gEgAEG4AWoiASABEAggAkHY4gFB3OIBIABByAFqIgEgARAIIAJB2OIBQdziASAAQdgBaiIBIAEQCCACQdjiAUHc4gEgAEHoAWoiASABEAggAkHY4gFB3OIBIABB+AFqIgEgARAIIAJB2OIBQdziASAAQYgCaiIBIAEQCCAALACTAkEASARAIAAoAogCEAcLIAAsAIMCQQBIBEAgACgC+AEQBwsgACwA8wFBAEgEQCAAKALoARAHCyAALADjAUEASARAIAAoAtgBEAcLIAAsANMBQQBIBEAgACgCyAEQBwsgACwAwwFBAEgEQCAAKAK4ARAHCyAALACzAUEASARAIAAoAqgBEAcLIAAsAKMBQQBIBEAgACgCmAEQBwsgACwAkwFBAEgEQCAAKAKIARAHCyAALACDAUEASARAIAAoAngQBwsgACwAc0EASARAIAAoAmgQBwsgACwAY0EASARAIAAoAlgQBwsgACwAU0EASARAIAAoAkgQBwsgACwAQ0EASARAIAAoAjgQBwsgACwAM0EASARAIAAoAigQBwsgACwAI0EASARAIAAoAhgQBwsgACwAE0EASARAIAAoAggQBwtBACECQeTiAUHo4gE2AgBB6OIBQgA3AgACQEHY4gEoAgAiA0Hc4gFGDQADQCADQRBqIQYgAygCHCEEAkACQCACRQRAQejiASEFQejiASEBDAELA0AgAiIBKAIQIgIgBEoEQCABIQUgASgCACICDQEMAgsgAiAETgRAIAEhAgwDCyABKAIEIgINAAsgAUEEaiEFC0EgEAkiAiAENgIQIAIgATYCCCACQgA3AgAgAkIANwIUIAJBADYCHCAFIAI2AgAgAiEBQeTiASgCACgCACIEBEBB5OIBIAQ2AgAgBSgC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NgIsAkAgBEUEQCAGQRhqQQoQcRpBACEBDAELIAEoAgghB0EAIQFBACEFIARBBE8EQCAEQXxxIQgDQCACIAVBAnQiA2ogAyAHaigCADYCACACIANBBHIiCWogByAJaigCADYCACACIANBCHIiCWogByAJaigCADYCACACIANBDHIiA2ogAyAHaigCADYCACAFQQRqIQUgCkEEaiIKIAhHDQALCyAEQQNxIgMEQANAIAIgBUECdCIIaiAHIAhqKAIANgIAIAVBAWohBSABQQFqIgEgA0cNAAsLIAZBGGpBChBxIQlBACEBIARFDQADQCAGIAQ2AgwgBiAENgIQIAZBfyAEQQJ0IARB/////wNLGxAJIgI2AhQgBigCLCEHQQAhBSAEQQFrQQNPBEAgBEF8cSEKQQAhCANAIAIgBUECdCIDaiADIAdqKAIANgIAIAIgA0EEciILaiAHIAtqKAIANgIAIAIgA0EIciILaiAHIAtqKAIANgIAIAIgA0EMciIDaiADIAdqKAIANgIAIAVBBGohBSAIQQRqIgggCkcNAAsLIARBA3EhA0EAIQQgAwRAA0AgAiAFQQJ0IghqIAcgCGooAgA2AgAgBUEBaiEFIARBAWoiBCADRw0ACwsgBkEMaiAJIAZBJGoQlwFBACECAkACQAJAIAYoAhAOAgIAAQsgBigCFCgCACICQYCABEkNAQsQAAALIAAoAgggAUEBdGogAjsBACAGKAIUIgIEQCACEAcLIAFBAWohASAGKAIoIgQNAAsLIAAgATYCBCAGKAIgIgEEQCABEAcLIAYoAiwiAQRAIAEQBwsgBkEwaiQAIAALyQkBFX8jAEEQayIMJAACQCAAIAJGDQAgACABRyABIAJHcUUEQCAMIAEoAgQiBDYCBCAMIAQ2AgggDEF/IARBAnQgBEH/////A0sbEAkiBTYCDAJAIARFDQAgASgCCCEBIARBBE8EQCAEQXxxIQcDQCAFIANBAnQiCGogASAIaigCADYCACAFIAhBBHIiCmogASAKaigCADYCACAFIAhBCHIiCmogASAKaigCADYCACAFIAhBDHIiCGogASAIaigCADYCACADQQRqIQMgBkEEaiIGIAdHDQALCyAEQQNxIgRFDQADQCAFIANBAnQiBmogASAGaigCADYCACADQQFqIQMgCUEBaiIJIARHDQALCyAA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IAAgAUEcayIBQRhqKAIANgIYIAAgASkCEDcCECAAIAEpAgg3AgggACABKQIANwIAIAEgAigCGDYCGCABIAIpAxA3AhAgASACKQMINwIIIAEgAikDADcCAAwECyAAQRxqIQMgAUEcayIBQQRqKAIAIQQgACgCICIFIAAoAgRPBEAgBCAFTw0EIAIgAygCGDYCGCACIAMpAhA3AxAgAiADKQIINwMIIAIgAykCADcDACADIAEoAhg2AhggAyABKQIQNwIQIAMgASkCCDcCCCADIAEpAgA3AgAgASACKAIYNgIYIAEgAikDEDcCECABIAIpAwg3AgggASACKQMANwIAIAAoAiAgACgCBE8NBCACIAAoAhg2AhggAiAAKQIQNwMQIAIgACkCCDcDCCACIAApAgA3AwAgACADKAIYNgIYIAAgAykCEDcCECAAIAMpAgg3AgggACADKQIANwIAIAMgAigCGDYCGCADIAIpAxA3AhAgAyACKQMINwIIIAMgAikDADcCAAwECyAEIAVJBEAgAiAAKAIYNgIYIAIgACkCEDcDECACIAApAgg3AwggAiAAKQIANwMAIAAgASgCGDYCGCAAIAEpAhA3AhAgACABKQIINwIIIAAgASkCADcCACABIAIoAhg2AhggASACKQMQNwIQIAEgAikDCDcCCCABIAIpAwA3AgAMBAsgAiAAKAIYNgIYIAIgACkCEDcDECACIAApAgg3AwggAiAAKQIANwMAIAAgAygCGDYCGCAAIAMpAhA3AhAgACADKQIINwIIIAAgAykCADcCACADIAIoAhg2AhggAyACKQMQNwIQIAMgAikDCDcCCCADIAIpAwA3AgAgASgCBCAAKAIgTw0DIAIgAygCGDYCGCACIAMpAhA3AxAgAiADKQIINwMIIAIgAykCADcDACADIAEoAhg2AhggAyABKQIQNwIQIAMgASkCCDcCCCADIAEpAgA3AgAgASACKAIYNgIYIAEgAikDEDcCECABIAIpAwg3AgggASACKQMANwIADAMLIAAgAEEcaiAAQThqIAFBHGsQTRoMAgsgACAAQRxqIgMgAEE4aiIEIABB1ABqIgUQTRogAUEYaygCACAAKAJYTw0BIAIgBSgCGDYCGCACIAUpAhA3AxAgAiAFKQIINwMIIAIgBSkCADcDACAFIAFBHGsiAUEYaigCADYCGCAFIAEpAhA3AhAgBSABKQIINwIIIAUgASkCADcCACABIAIoAhg2AhggASACKQMQNwIQIAEgAikDCDcCCCABIAIpAwA3AgAgACgCWCAAKAI8Tw0BIAIgBCgCGDYCGCACIAQpAhA3AxAgAiAEKQIINwMIIAIgBCkCADcDACAEIAUoAhg2AhggBCAFKQIQNwIQIAQgBSkCCDcCCCAEIAUpAgA3AgAgBSACKAIYNgIYIAUgAikDEDcCECAFIAIpAwg3AgggBSACKQMANwIAIAAoAjwgACgCIE8NASACIAMoAhg2AhggAiADKQIQNwMQIAIgAykCCDcDCCACIAMpAgA3AwAgAyAEKAIYNgIYIAMgBCkCEDcCECADIAQpAgg3AgggAyAEKQIANwIAIAQgAigCGDYCGCAEIAIpAxA3AhAgBCACKQMINwIIIAQgAikDADcCACAAKAIgIAAoAgRPDQEgAiAAKAIYNgIYIAIgACkCEDcDECACIAApAgg3AwggAiAAKQIANwMAIAAgAygCGDYCGCAAIAMpAhA3AhAgACADKQIINwIIIAAgAykCADcCACADIAIoAhg2AhggAyACKQMQNwIQIAMgAikDCDcCCCADIAIpAwA3AgAMAQsgAEEcaiEEIABBOGohAyAAKAI8IQUCQCAAKAIgIgcgACgCBCIITwRAIAUgB08NASACIAQoAhg2AhggAiAEKQIQNwMQIAIgBCkCCDcDCCACIAQpAgA3AwAgBCADQRhqKAIANgIYIAQgA0EQaikCADcCECAEIANBCGopAgA3AgggBCADKQIANwIAIAMgAigCGDYCGCADIAIpAxA3AhAgAyACKQMINwIIIAMgAikDADcCACAAKAIgIAhPDQEgAiAAKAIYNgIYIAIgACkCEDcDECACIAApAgg3AwggAiAAKQIANwMAIAAgBCgCGDYCGCAAIAQpAhA3AhAgACAEKQIINwIIIAAgBCkCADcCACAEIAIoAhg2AhggBCACKQMQNwIQIAQgAikDCDcCCCAEIAIpAwA3AgAMAQsgBSAHSQRAIAIgACgCGDYCGCACIAApAhA3AxAgAiAAKQIINwMIIAIgACkCADcDACAAIANBGGooAgA2AhggACADQRBqKQIANwIQIAAgA0EIaikCADcCCCAAIAMpAgA3AgAgAyACKAIYNgIYIAMgAikDEDcCECADIAIpAwg3AgggAyACKQMANwIADAELIAIgACgCGDYCGCACIAApAhA3AxAgAiAAKQIINwMIIAIgACkCADcDACAAIAQoAhg2AhggACAEKQIQNwIQIAAgBCkCCDcCCCAAIAQpAgA3AgAgBCACKAIYNgIYIAQgAikDEDcCECAEIAIpAwg3AgggBCACKQMANwIAIAUgACgCIE8NACACIAQoAhg2AhggAiAEKQIQNwMQIAIgBCkCCDcDCCACIAQpAgA3AwAgBCADQRhqKAIANgIYIAQgA0EQaikCADcCECAEIANBCGopAgA3AgggBCADKQIANwIAIAMgAigCGDYCGCADIAIpAxA3AhAgAyACKQMINwIIIAMgAikDADcCAAsgAEHUAGoiBCABRg0AQQAhBwNAAkAgBCgCBCIIIAMoAgRPDQAgBCgCACEJIAIgBCgCGDYCECACIAQpAhA3AwggAiAEKQIINwMAIAQhBQNAAkAgBSADIgYpAgA3AgAgBSADKAIYNgIYIAUgAykCEDcCECAFIAMpAgg3AgggACADRgRAIAAhBgwBCyAIIAYiBUEcayIDKAIESQ0BCwsgBiAINgIEIAYgCTYCACAGIAIpAwA3AgggBiACKQMINwIQIAYgAigCEDYCGCAHQQFqIgdBCEcNACAEQRxqIAFGIQYMAgsgBCIDQRxqIgYhBCABIAZHDQALQQEhBgsgAkEgaiQAIAYLiAMBBX8gAEUEQEEADwsgABAlQQFqIQIjAEEgayIBJAAgAUEANgIYIAFCADcDECABQgA3AwggAUIANwMAQdDZAUEANgIAQdTZAUEANgIAAkBB1NkBAn8CQCAARQ0AIAJFDQAgAUGQgAEoAgA2AhggASACNgIEIAEgADYCACABQYiAASkCADcDEEEAQShBiIABKAIAEQEAIgRFDQEaIARCADcDACAEQgA3AyAgBEIANwMYIARCADcDECAEQgA3AwgCQCACQQVJDQAgAEGACEEDEFANACABQQM2AghBAyEDCwJAIAIgA00NAAJAIAAgA2otAABBIU8EQCABKAIIIQMMAQsDQCACIANBAWoiA0cEQCAAIANqLQAAQSBNDQEMAgsLIAEgAkEBazYCCAwBCyABIAM2AggLIAQgARCJAQRAIAQhBQwDCyAEEDALIABFDQEgASgCBCECIAEoAggLIgMgAkEBayIEQQAg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IAEtABYgAC0AFnNyIAEtABcgAC0AF3NyIAEtABggAC0AGHNyIAEtABkgAC0AGXNyIAEtABogAC0AGnNyIAEtABsgAC0AG3NyIAEtABwgAC0AHHNyIAEtAB0gAC0AHXNyIAEtAB4gAC0AHnNyIAEtAB8gAC0AH3NyIgBB8AFxQQR2IAByIgBB/AFxQQJ2IAByIgBBAXYgAHJBf3NBAXELqQ8CBX8PfiMAQdACayIFJAAgBEL///////8/gyELIAJC////////P4MhCiACIASFQoCAgICAgICAgH+DIQ0gBEIwiKdB//8BcSEIAkACQCACQjCIp0H//wFxIglB//8Ba0GCgH5PBEAgCEH//wFrQYGAfksNAQsgAVAgAkL///////////8AgyIMQoCAgICAgMD//wBUIAxCgICAgICAwP//AFEbRQRAIAJCgICAgICAIIQhDQwCCyADUCAEQv///////////wCDIgJCgICAgICAwP//AFQgAkKAgICAgIDA//8AURtFBEAgBEKAgICAgIAghCENIAMhAQwCCyABIAxCgICAgICAwP//AIWEUARAIAMgAkKAgICAgIDA//8AhYRQBEBCACEBQoCAgICAgOD//wAhDQwDCyANQoCAgICAgMD//wCEIQ1CACEBDAILIAMgAkKAgICAgIDA//8AhYRQBEBCACEBDAILIAEgDIRQBEBCgICAgICA4P//ACANIAIgA4RQGyENQgAhAQwCCyACIAOEUARAIA1CgICAgICAwP//AIQhDUIAIQEMAgsgDEL///////8/WARAIAVBwAJqIAEgCiABIAogClAiBht5IAZBBnStfKciBkEPaxAgQRAgBmshBiAFKQPIAiEKIAUpA8ACIQELIAJC////////P1YNACAFQbACaiADIAsgAyALIAtQIgcbeSAHQQZ0rXynIgdBD2sQICAGIAdqQRBrIQYgBSkDuAIhCyAFKQOwAiEDCyAFQaACaiALQoCAgICAgMAAhCISQg+GIANCMYiEIgJCAEKAgICAsOa8gvUAIAJ9IgRCABAfIAVBkAJqQgAgBSkDqAJ9QgAgBEIAEB8gBUGAAmogBSkDmAJCAYYgBSkDkAJCP4iEIgRCACACQgAQHyAFQfABaiAEQgBCACAFKQOIAn1CABAfIAVB4AFqIAUpA/gBQgGGIAUpA/ABQj+IhCIEQgAgAkIAEB8gBUHQAWogBEIAQgAgBSkD6AF9QgAQHyAFQcABaiAFKQPYAUIBhiAFKQPQAUI/iIQiBEIAIAJCABAfIAVBsAFqIARCAEIAIAUpA8gBfUIAEB8gBUGgAWogAkIAIAUpA7gBQgGGIAUpA7ABQj+IhEIBfSICQgAQHyAFQZABaiADQg+GQgAgAkIAEB8gBUHwAGogAkIAQgAgBSkDqAEgBSkDoAEiDCAFKQOYAXwiBCAMVK18IARCAVatfH1CABAfIAVBgAFqQgEgBH1CACACQgAQHyAGIAkgCGtqIQYCfyAFKQNwIhNCAYYiDiAFKQOIASIPQgGGIAUpA4ABQj+IhHwiEELn7AB9IhRCIIgiAiAKQoCAgICAgMAAhCIVQgGGIhZCIIgiBH4iESABQgGGIgxCIIgiCyAQIBRWrSAOIBBWrSAFKQN4QgGGIBNCP4iEIA9CP4h8fHxCAX0iE0IgiCIQfnwiDiARVK0gDiAOIBNC/////w+DIhMgAUI/iCIXIApCAYaEQv////8PgyIKfnwiDlatfCAEIBB+fCAEIBN+IhEgCiAQfnwiDyARVK1CIIYgD0IgiIR8IA4gDiAPQiCGfCIOVq18IA4gDiAUQv////8PgyIUIAp+IhEgAiALfnwiDyARVK0gDyAPIBMgDEL+////D4MiEX58Ig9WrXx8Ig5WrXwgDiAEIBR+IhggECARfnwiBCACIAp+fCIKIAsgE358IhBCIIggCiAQVq0gBCAYVK0gBCAKVq18fEIghoR8IgQgDlStfCAEIA8gAiARfiICIAsgFH58IgtCIIggAiALVq1CIIaEfCICIA9UrSACIBBCIIZ8IAJUrXx8IgIgBFStfCIEQv////////8AWARAIBYgF4QhFSAFQdAAaiACIAQgAyASEB8gAUIxhiAFKQNYfSAFKQNQIgFCAFKtfSEKQgAgAX0hCyAGQf7/AGoMAQsgBUHgAGogBEI/hiACQgGIhCICIARCAYgiBCADIBIQHyABQjCGIAUpA2h9IAUpA2AiDEIAUq19IQpCACAMfSELIAEhDCAGQf//AGoLIgZB//8BTgRAIA1CgICAgICAwP//AIQhDUIAIQEMAQsCfiAGQQBKBEAgCkIBhiALQj+IhCEKIARC////////P4MgBq1CMIaEIQwgC0IBhgwBCyAGQY9/TARAQgAhAQwCCyAFQUBrIAIgBEEBIAZrED4gBUEwaiAMIBUgBkHwAGoQICAFQSBqIAMgEiAFKQNAIgIgBSkDSCIMEB8gBSkDOCAFKQMoQgGGIAUpAyAiAUI/iIR9IAUpAzAiBCABQgGGIgFUrX0hCiAEIAF9CyEEIAVBEGogAyASQgNCABAfIAUgAyASQgVCABAfIAwgAiACIAMgAkIBgyIBIAR8IgNUIAogASADVq18IgEgElYgASASURutfCICVq18IgQgAiACIARCgICAgICAwP//AFQgAyAFKQMQViABIAUpAxgiBFYgASAEURtxrXwiAlatfCIEIAIgBEKAgICAgIDA//8AVCADIAUpAwBWIAEgBSkDCCIDViABIANRG3GtfCIBIAJUrXwgDYQhDQsgACABNwMAIAAgDTcDCCAFQdACaiQAC8ABAgF/An5BfyEDAkAgAEIAUiABQv///////////wCDIgRCgICAgICAwP//AFYgBEKAgICAgIDA//8AURsNACACQv///////////wCDIgVCgICAgICAwP//AFYgBUKAgICAgIDA//8AUnENACAAIAQgBYSEUARAQQAPCyABIAKDQgBZBEAgASACUiABIAJTcQ0BIAAgASAChYRCAFIPCyAAQgBSIAEgAlUgASACURsNACAAIAEgAoWEQgBSIQMLIAMLqgsBBn8gACABaiEFAkACQCAAKAIEIgJBAXENACACQQNxRQ0BIAAoAgAiAiABaiEBAkAgACACayIAQaCtAigCAEcEQCACQf8BTQRAIAJBA3YhAiAAKAIIIgQgACgCDCIDRw0CQYytAkGMrQIoAgBBfiACd3E2AgAMAwsgACgCGCEGAkAgACAAKAIMIgJHBEBBnK0CKAIAGiAAKAIIIgMgAjYCDCACIAM2AggMAQsCQCAAQRRqIgQoAgAiAw0AIABBEGoiBCgCACIDDQBBACECDAELA0AgBCEHIAMiAkEUaiIEKAIAIgMNACACQRBqIQQgAigCECIDDQALIAdBADYCAAsgBkUNAgJAIAAoAhwiBEECdEG8rwJqIgMoAgAgAEYEQCADIAI2AgAgAg0BQZCtAkGQrQIoAgBBfiAEd3E2AgAMBAsgBkEQQRQgBigCECAARhtqIAI2AgAgAkUNAwsgAiAGNgIYIAAoAhAiAwRAIAIgAzYCECADIAI2AhgLIAAo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gICA/z8QESACQUBrIAIpA1AgAikDWCAVIBcQKSACKQNIIRdBASEHIAIpA0AhFQsgE0IBfCETQQEhCQsgASgCBCIFIAEoAmhHBH8gASAFQQFqNgIEIAUtAAAFIAEQEAshBQwBCwsCfiAJRQRAAkACQCABKQNwQgBZBEAgASABKAIEIgVBAWs2AgQgA0UNASABIAVBAms2AgQgBEUNAiABIAVBA2s2AgQMAgsgAw0BCyABQgAQLgsgAkHgAGogBrdEAAAAAAAAAACiEDQgAikDYCEVIAIpA2gMAQsgE0IHVwRAIBMhFANAIApBBHQhCiAUQgF8IhRCCFINAAsLAkACQAJAIAVBX3FB0ABGBEAgASADELwBIhRCgICAgICAgICAf1INAyADBEAgASkDcEIAWQ0CDAMLQgAhFSABQgAQLkIADAQLQgAhFCABKQNwQgBTDQILIAEgASgCBEEBazYCBAtCACEUCyAKRQRAIAJB8ABqIAa3RAAAAAAAAAAAohA0IAIpA3AhFSACKQN4DAELIBYgEyAEG0IChiAUfEIgfSITQQAgD2utVQRAQcirAkHEADYCACACQaABaiAGECogAkGQAWogAikDoAEgAikDqAFCf0L///////+///8AEBEgAkGAAWogAikDkAEgAikDmAFCf0L///////+///8AEBEgAikDgAEhFSACKQOIAQwBCyAPQeIBa6wgE1cEQCAKQQBOBEADQCACQaADaiAVIBdCAEKAgICAgIDA/79/ECkgFSAXQoCAgICAgID/PxCyASEBIAJBkANqIBUgFyACKQOgAyAVIAFBAE4iARsgAikDqAMgFyABGxApIBNCAX0hEyACKQOYAyEXIAIpA5ADIRUgCkEBdCABciIKQQBODQALCwJ+IBMgD6x9QiB8IhSnIgFBACABQQBKGyAOIBQgDq1TGyIBQfEATgRAIAJBgANqIAYQKiACKQOIAyEWIAIpA4ADIRhCAAwBCyACQeACakGQASABaxCAARA0IAJB0AJqIAYQKiACQfACaiACKQPgAiACKQPoAiACKQPQAiIYIAIpA9gCIhYQwQEgAikD+AIhGSACKQPwAgshFCACQcACaiAKIApBAXFFIBUgF0IAQgAQP0EARyABQSBIcXEiAWoQQiACQbACaiAYIBYgAikDwAIgAikDyAIQESACQZACaiACKQOw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ChAtIAcgDCAIEC0gAyALEKoBIAMgAyAKEC0gBSAGIAcQDyAUIAwgAxAPIAVBQGsgBiADEA8gFSAHIAwQDyADQeABaiQAIAQgBSABEMMBIAUgBSAEIBMgCUEHcXZBAXEiAxBPIA8gDyASIAMQTyAOIA4gESADEE8gDSANIBAgAxBPIAlBAWshAyAJDQALIAAgBEGAAWpBgAEQDhogBEGAAmokAAvHBgIEfwN+IwBBgAFrIgUkAAJAAkACQCADIARCAEIAED9FDQACfyAEQv///////z+DIQoCfyAEQjCIp0H//wFxIgZB//8BRwRAQQQgBg0BGkECQQMgAyAKhFAbDAILIAMgCoRQCwshBiACQjCIpyIIQf//AXEiB0H//wFGDQAgBg0BCyAFQRBqIAEgAiADIAQQESAFIAUpAxAiAiAFKQMYIgEgAiABELEBIAUpAwghAiAFKQMAIQQMAQsgASACQv///////////wCDIgogAyAEQv///////////wCDIgkQP0EATARAIAEgCiADIAkQPwRAIAEhBAwCCyAFQfAAaiABIAJCAEIAEBEgBSkDeCECIAUpA3AhBAwBCyAEQjCIp0H//wFxIQYgBwR+IAEFIAVB4ABqIAEgCkIAQoCAgICAgMC7wAAQESAFKQNoIgpCMIinQfgAayEHIAUpA2ALIQQgBkUEQCAFQdAAaiADIAlCAEKAgICAgIDAu8AAEBEgBSkDWCIJQjCIp0H4AGshBiAFKQNQIQMLIAlC////////P4NCgICAgICAwACEIQsgCkL///////8/g0KAgICAgIDAAIQhCiAGIAdIBEADQAJ+IAogC30gAyAEVq19IglCAFkEQCAJIAQgA30iBIRQBEAgBUEgaiABIAJCAEIAEBEgBSkDKCECIAUpAyAhBAwFCyAJQgGGIARCP4iEDAELIApCAYYgBEI/iIQLIQogBEIBhiEEIAdBAWsiByAGSg0ACyAGIQcLAkAgCiALfSADIARWrX0iCUIAUwRAIAohCQwBCyAJIAQgA30iBIRCAFINACAFQTBqIAEgAkIAQgAQESAFKQM4IQIgBSkDMCEEDAELIAlC////////P1gEQANAIARCP4ghASAHQQFrIQcgBEIBhiEEIAEgCUIBhoQiCUKAgICAgIDAAFQNAAsLIAhBgIACcSEGIAdBAEwEQCAFQUBrIAQgCUL///////8/gyAHQfgAaiAGcq1CMIaEQgBCgICAgICAwMM/EBEgBSkDSCECIAUpA0AhBAwBCyAJQv///////z+DIAYgB3KtQjCGhCECCyAAIAQ3AwAgACACNwMIIAVBgAFqJAALvwIBAX8jAEHQAGsiBCQAAkAgA0GAgAFOBEAgBEEgaiABIAJCAEKAgICAgICA//8AEBEgBCkDKCECIAQpAyAhASADQf//AUkEQCADQf//AGshAwwCCyAEQRBqIAEgAkIAQoCAgICAgID//wAQEUH9/wIgAyADQf3/Ak4bQf7/AWshAyAEKQMYIQIgBCkDECEBDAELIANBgYB/Sg0AIARBQGsgASACQgBCgICAgICAgDkQESAEKQNIIQIgBCkDQCEBIANB9IB+SwRAIANBjf8AaiEDDAELIARBMGogASACQgBCgICAgICAgDkQEUHogX0gAyADQeiBfUwbQZr+AWohAyAEKQM4IQIgBCkDMCEBCyAEIAEgAkIAIANB//8Aaq1CMIYQESAAIAQpAwg3AwggACAEKQMANwMAIARB0ABqJAALNQAgACABNwMAIAAgAkL///////8/gyAEQjCIp0GAgAJxIAJCMIinQf//AXFyrUIwhoQ3AwgLfAECfyAAIAAoAkgiAUEBayABcjYCSCAAKAIUIAAoAhxHBEAgAEEAQQAgACgCJBEFABoLIABBADYCHCAAQgA3AxAgACgCACIBQQRxBEAgACABQSByNgIAQX8PCyAAIAAoAiwgACgCMGoiAjYCCCAAIAI2AgQgAUEbdEEfdQvyAQEGfyMAQYACayIDJAAgA0GgAWoiBSABQSBqIgYgARAtIANBgAFqIgQgAkEgaiIHIAIQLSADQeABaiIIIAUgBBAPIAUgBiABEDogBCAHIAIQOiADQcABaiIGIAUgBBAPIAQgAUFAayACQUBrEA8gBSAEQYDBABAPIAQgAUHgAGogAkHgAGoQDyAEIAQgBBA6IANB4ABqIgEgBiAIEC0gA0FAayICIAQgBRAtIANBIGoiByAEIAUQOiADIAYgCBA6IAAgASACEA8gAEEgaiAHIAMQDyAAQUBrIAEgAxAPIABB4ABqIAIgBxAPIANBgAJqJAALqAEBBH8jAEEQayIFJAAgBSACNgIMIwBBoAFrIgMkACADQQhqIgZBoPkAQZABEA4aIAMgADYCNCADIAA2AhwgA0H/////B0F+IABrIgQgBEH/////B0sbIgQ2AjggAyAAIARqIgA2AiQgAyAANgIYIAYgASACQf8AQQAQfyEAIAQEQCADKAIcIgEgASADKAIYRmtBADoAAAsgA0GgAWokACAFQRBqJAAgAAunAQEEfyMAQRBrIgUkACAFIAI2AgwjAEGgAWsiAyQAIANBCGoiBkGg+QBBkAEQDhogAyAANgI0IAMgADYCHCADQf////8HQX4gAGsiBCAEQf////8HSxsiBDYCOCADIAAgBGoiADYCJCADIAA2AhggBiABIAJBAEEAEH8hACAEBEAgAygCHCIBIAEgAygCGEZrQQA6AAALIANBoAFqJAAgBUEQaiQAIAAL9gwBBn8jAEHgAGsiAyQAIAItAB8hCCABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpAAA3AAAgASABLQAfQf8AcToAHyADIAEgARAPIANBIGoiByADQeDAABAPIANBQGsiBSAHQcDBABA6IAcgBRCpASAFIANBwMEAEC0gAyAFIAcQDyMAQYABayIEJAAgBEEgaiICIAMtAABBAXQiAToAACACIAMtAAFBAXQgAUEIdmoiAToAASACIAMtAAJBAXQgAUEIdmoiAToAAiACIAMtAANBAXQgAUEIdmoiAToAAyACIAMtAARBAXQgAUEIdmoiAToABCACIAMtAAVBAXQgAUEIdmoiAToABSACIAMtAAZBAXQgAUEIdmoiAToABiACIAMtAAdBAXQgAUEIdmoiAToAByACIAMtAAhBAXQgAUEIdmoiAToACCACIAMtAAlBAXQgAUEIdmoiAToACSACIAMtAApBAXQgAUEIdmoiAToACiACIAMtAAtBAXQgAUEIdmoiAToACyACIAMtAAxBAXQgAUEIdmoiAToADCACIAMtAA1BAXQgAUEIdmoiAToADSACIAMtAA5BAXQgAUEIdmoiAToADiACIAMtAA9BAXQgAUEIdmoiAToADyACIAMtABBBAXQgAUEIdmoiAToAECACIAMtABFBAXQgAUEIdmoiAToAESACIAMtABJBAXQgAUEIdmoiAToAEiACIAMtABNBAXQgAUEIdmoiAToAEyACIAMtABRBAXQgAUEIdmoiAToAFCACIAMtABVBAXQgAUEIdmoiAToAFSAC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bGpB5ABqQQAgASgCnMQCIABKGyECCyACC5UBACAAIAEpAAA3AAAgACABKQAYNwAYIAAgASkAEDcAECAAIAEpAAg3AAggACACKQAANwAgIAAgAikACDcAKCAAIAIpABA3ADAgACACKQAYNwA4IABBAToAYCAAQgA3AGQgAEEAOgBjIABBADoAYiAAQQA6AGEgAEIANwBsIABCADcAdCAAQQA2AHwgAEFAayABIAIQDwuVAQEHfyAAIAEgAhDNASEGAkAgASgCDCIDQQBMDQAgASgCCCIEQQBMDQAgAyABKAIEIgVqIQcgBCABKAIAIgNqIQQDQCADIQEDQCAAKAIAIgggACgCBCAFbCABakECdCIJQQNqakF/QQAgCCACIAlqai0AACAGSxs6AAAgAUEBaiIBIARIDQALIAVBAWoiBSAHSA0ACwsLpgMCC38GfSMAQYAIayIEJAAgASgCDCEHIAEoAgQhBiABKAIIIQggASgCACEFIARBAEGACBALIQQCQCAHQQBMDQAgCEEATA0AIAUgCGohCSAGIAdqIQogACgCBCELIAAoAgAhAANAIAYgC2whDCAFIQEDQCAEIAAgASAMakECdCACamotAABBAnRqIg0gDSgCAEEBajYCACABQQFqIgEgCUgNAAsgBkEBaiIGIApIDQALCyAHIAhsIQUDQCAPIAQgA0ECdGooAgAgA2yykiAEIANBAXIiAEECdGooAgAgAGyykiAEIANBAnIiAEECdGooAgAgAGyykiAEIANBA3IiAEECdGooAgAgAGyykiEPIANBBGoiA0GAAkcNAAtBACEBQQAhAkEAIQADQAJAIAQgAUECdGooAgAiAyAAaiIABEAgACAFRg0BIBAgASADbLKSIhAgALIiEZUgDyAQkyAFIABrsiISlZMiEyATIBEgEpSUlCIRIA4gDiARXSIDGyEOIAEgAiADGyECCyABQQFqIgFBgAJHDQELCyAEQYAIaiQAIAJB/wFxCx4BAX8gACgCACIBKAIAEAcgASgChHoQByABEAcgAAvSAgIKfAJ/AkAgACsDICIDIAArAxAiBKEgACsDCCICIAArAxgiBqGiIAArAygiByAGoSAAKwMAIgggBKGioSIBRAAAAAAAAAAAZCIMIAArAzAiCSADoSAGIAehoiAAKwM4IgogB6EgBCADoaKhIgVEAAAAAAAA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IAFBBGoiCCACQQRqIgsgBiADayAEIAlrSyIEGyIKKAIEIQJBACEBIAdBADYCDCAHQgA3AgQgAyAJIAQbIgYgAkcEfyACIAZrIgJBAEgNAiAHIAIQCSIBNgIEIAcgASACQXxxajYCDCAHIAFBACACEAsgAmo2AgggCigCBAUgBgsgBmtBAnUiCiALIAggBBsoAgQgCSADIAQbIglrIgRBAnVrIgIEQCABIAYgAkECdBANGgsCQCACIApPDQAgAiEDIARBBHEEQCABIAJBAnQiA2ogAyAGaigCACAJKAIAaiIDIAUoAgAiCEEAIAMgCE4bazYCACACQQFqIQMLIARBBEYNAANAIAEgA0ECdCIEaiAEIAZqKAIAIAkgAyACa0ECdGooAgBqIgQgBSgCACIIQQAgBCAIThtrNgIAIAEgA0EBaiIEQQJ0IghqIAYgCGooAgAgCSAEIAJrQQJ0aigCAGoiBCAFKAIAIghBACAEIAhOG2s2AgAgA0ECaiIDIApHDQALCyAAIAUgB0EEahAsGiAHKAIEIgBFDQAgByAANgIIIAAQBwsgB0EQaiQADwsQAAALkQMBA38jAEEQayIEJAACQAJAIAFBAEgEQEGk4AEoAgAhASAAQQA2AgwgAEIANwIEIAAgATYCAEGs4AEoAgAiA0Go4AEoAgAiAUYNASADIAFrIgVBAEgNAiAAIAUQCSICNgIEIAAgAiAFQXxxajYCDANAIAIgASgCADYCACACQQRqIQIgAUEEaiIBIANHDQALIAAgAjYCCAwBCyACRQRAQaTgASgCACEBIABBADYCDCAAQgA3AgQgACABNgIAQazgASgCACIDQajgASgCACIBRg0BIAMgAWsiBUEASA0CIAAgBRAJIgI2AgQgACACIAVBfHFqNgIMA0AgAiABKAIANgIAIAJBBGohAiABQQRqIgEgA0cNAAsgACACNgIIDAELIAFB/////wNPDQEgBCABQQJ0QQRqIgEQCSIDNgIEIAQgASADaiIFNgIMIANBACABEAshASAEIAU2AgggASACNgIAIABBiOABIARBBGoQLBogBCgCBCIARQ0AIAQgADYCCCAAEAcLIARBEGokAA8LEAAACzMAIAFBH2tB//8DcUHi/wNPBEAgAUH//wNxQQF0IABqIgBBvAFqIAAvAbwBQQFqOwEACwvPAQEFfwJAIAFB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QcQAaiEEIAAoAgQiAyAAKAIAIgFGDQIDQCACQcQAayICIANBxABrIgMpAgA3AgAgAiADKAIoNgIoIAIgAykCIDcCICACIAMpAhg3AhggAiADKQIQNwIQIAIgAykCCDcCCCACQQA2AjQgAkIANwIsIAIgAygCLDYCLCACIAMoAjA2AjAgAiADKAI0NgI0IANBADYCNCADQgA3AiwgAkFAayIGQQA2AgAgAkIANwI4IAIgAygCODYCOCACIAMoAjw2AjwgBiADQUBrIgYoAgA2AgAgBkEANgIAIANCADcCOCABIANHDQALIAAgBTYCCCAAKAIEIQEgACAENgIEIAAoAgAhAyAAIAI2AgAgASADRg0DA0AgAUHEAGsiACgCOCICBEAgAUEIayACNgIAIAIQBwsgAUEYaygCACICBEAgAUEUayACNgIAIAIQBwsgACIBIANHDQALDAMLEAAACxATAAsgACAFNgIIIAAgBDYCBCAAIAI2AgALIAMEQCADEAcLC6cDAQV/AkAgACgCCCAAKAIAIgNrQcQAbSABTw0AAkACQCABQcSHjx5JBEAgACgCBCECIAFBxABsIgEQCSIEIAFqIQUgBCACIANrQcQAbUHEAGxqIQQgAiADRg0BIAQhAQNAIAFBxABrIgEgAkHEAGsiAikCADcCACABIAIoAig2AiggASACKQIgNwIgIAEgAikCGDcCGCABIAIpAhA3AhAgASACKQIINwIIIAEgAigCLDYCLCABIAIoAjA2AjAgASACKAI0NgI0IAJBADYCNCACQgA3AiwgASACKAI4NgI4IAEgAigCPDYCPCABQUBrIAJBQGsiBigCADYCACAGQQA2AgAgAkIANwI4IAIgA0cNAAsgACAFNgIIIAAoAgQhAiAAIAQ2AgQgACgCACEDIAAgATYCACACIANGDQIDQCACQcQAayIAKAI4IgEEQCACQQhrIAE2AgAgARAHCyACQRhrKAIAIgEEQCACQRRrIAE2AgAgARAHCyAAIgIgA0cNAAsMAgsQAAALIAAgBTYCCCAAIAQ2AgQgACAENgIACyADRQ0AIAMQBwsLzQIBBn8CQCAGQQhBDCAHQQBIG2oiCSgCACIIIAYoAgQiC0wEQANAIAIgASAIai0AAEYEQCAGIAYoAgAgB2oiCjYCECAAKAIEIgsgACgCCCIMIApsIg1qIgkg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QCAKIAkoAgAgCSAEGyACECIiAg0BCyAGIAdJDQEMAgsgAkEATg0BCyABIQUgASgCACICDQMMAgsCQCAGIAEoAhggAS0AHyICIALAQQBIIgQbIgcgBiAHSRsiAgRAIAkoAgAgCSAEGyAKIAIQIiICDQELIAYgB0sNAQwCCyACQQBODQELIAFBBGohBSABKAIEIgINAQsLIAggATYCDCAFCyIEKAIAIgJFBEBBJBAJIgIgAygCADYCECACQRRqIQECQCADLAAPQQBOBEAgASADQQRqKQIANwIAIAEgAygCDDYCCAwBCyABIAMoAgQgAygCCBAoCyACQQA2AiAgAiAIKAIMNgIIIAJCADcCACAEIAI2AgAgAiEBIAAoAgAoAgAiBQRAIAAgBTYCACAEKAIAIQELIAAoAgQgARASIAAgACgCCEEBajYCCAsgCEEQaiQAIAJBIGoL5wIBCH8gAEEEaiEHAkACQCAAKAIEIgBFDQAgASgCCCABLQAPIgIgAsBBAEgiAhshBCABKAIEIAFBBGogAhshBiABKAIAIQUgByECA0ACQCAFIAAoAhAiAUoEQCAAQQRqIQEMAQsgASAFSgRAIAAiASECDAELAkAgBCAAKAIYIAAtAB8iASABwEEASCIDGyIBIAEgBEsbIggEQCAAQRRqIgkoAgAgCSADGyAGIAgQIiIDDQELIABBBGogACABIARJIgMbIQEgAiAAIAMbIQIMAQsgAEEEaiAAIANBAEgiAxshASACIAAgAxshAgsgASgCACIADQALIAIgB0YNACAFIAIoAhAiAEgNACAAIAVIDQECQCACKAIYIAItAB8iACAAwEEASCIBGyIAIAQgACAESRsiBQRAIAYgAkEUaiIGKAIAIAYgARsgBRAiIgENAQsgACAESw0BDAILIAFBAE4NAQsgByECCyACCz0BAX8gACAAKAIEEEYgACAAQQRqNgIAIABCADcCBCAAQQxqIABBEGoiASgCABBGIAAgATYCDCAAQgA3AhALLwAgAEIANwKQASAAQgA3ArABIABCADcCqAEgAEIANwKgASAAQgA3ApgBIAAQnwEL+gIBA38gAEGo8QA2AgAgACgC5AEiAQRAIAAoAugBIgMgASICRwRAA0AgA0EBaywAAEEASARAIANBDGsoAgAQBwsgA0EQayICIQMgASACRw0ACyAAKALk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9gFqIANB9AFqIANB8gFqIANB8AFqIANB7gFqIANB7AFqIANB6gFqIANB6AFqIANB5gFqIANB5AFqIANB4gFqIANB4AFqIANB3gFqIANB3AFqIANB2gFqIANB2AFqIANB1gFqIANB1AFqIANB0gFqIANB0AFqIANBzgFqIANBzAFqIANBygFqIANByAFqIANBxgFqIANBxAFqIANBwgFqIANBwAFqIANBvgFqIgQgAy4BvgEiASADLgHAASICSBsgASACIAEgAkobIgEgAy4BwgEiAkgbIAEgAiABIAJKGyIBIAMuAcQBIgJIGyABIAIgASACShsiASADLgHGASICSBsgASACIAEgAkobIgEgAy4ByAEiAkgbIAEgAiABIAJKGyIBIAMuAcoBIgJIGyABIAIgASACShsiASADLgHMASICSBsgASACIAEgAkobIgEgAy4BzgEiAkgbIAEgAiABIAJKGyIBIAMuAdABIgJIGyABIAIgASACShsiASADLgHSASICSBsgASACIAEgAkobIgEgAy4B1AEiAkgbIAEgAiABIAJKGyIBIAMuAdYBIgJIGyABIAIgASACShsiASADLgHYASICSBsgASACIAEgAkobIgEgAy4B2gEiAkgbIAEgAiABIAJKGyIBIAMuAdwBIgJIGyABIAIgASACShsiASADLgHeASICSBsgASACIAEgAkobIgEgAy4B4AEiAkgbIAEgAiABIAJKGyIBIAMuAeIBIgJIGyABIAIgASACShsiASADLgHkASICSBsgASACIAEgAkobIgEgAy4B5gEiAkgbIAEgAiABIAJKGyIBIAMuAegBIgJIGyABIAIgASACShsiASADLgHqASICSBsgASACIAEgAkobIgEgAy4B7AEiAkgbIAEgAiABIAJKGyIBIAMuAe4BIgJIGyABIAIgASACShsiASADLgHwASICSBsgASACIAEgAkobIgEgAy4B8gEiAkgbIAEgAiABIAJKGyIBIAMuAfQBIgJIGyABIAIgASACShsiASADLgH2ASICSBsgAy4B+AEgASACIAEgAkobShsiASADQfoBaiICRg0AIAEuAQBBBEgNACADIAEgBGtBAXZBAWo7AQILAkAgA0GKAmogA0GIAmogA0GGAmogA0GEAmogA0GCAmogA0GAAmogA0H+AWogA0H8AWogAiADLgH6ASIBIAMuAfwBIgRIGyABIAQgASAEShsiASADLgH+ASIESBsgASAEIAEgBEobIgEgAy4BgAIiBEgbIAEgBCABIARKGyIBIAMuAYICIgRIGyABIAQgASAEShsiASADLgGEAiIESBsgASAEIAEgBEobIgEgAy4BhgIiBEgbIAEgBCABIARKGyIBIAMuAYgCIgRIGyADLgGKAiABIAQgASAEShtKGyIBIANBjAJqRg0AIAEuAQBBBEgNACADIAEgAmtBAXY7AQQLQQAhAgJAIAMvAQBB//8DRg0AIAMvAQJB//8DRg0AIAMvAQRB//8DRyECCwJAIAJFBEAgEkHECTYCZCATQQA6AEwgE0EAOgAQDAELIBBBxABqIQxBACEBQQAhCUEAIQojAEEQayIRJAAgECgC4AIiDiAQKALcAiIPa0HEAG0hAgJAAkACQCAOIA9GBEBBACECDAELIAJBgICAgARPDQkgAkECdCIBEAkiBCABaiEJIAEQCSIHIAFqIQogBCECIAchAQNAAkAgDy8BCEH//wNGDQAgDygCECEDIAQgCUkEQCAEIAM2AgAgBEEEaiEEDAELIAQgAmsiFEECdSIIQQFqIgRBgICAgARPDQtB/////wMgCSACayIJQQF2Ig0gBCAEIA1JGyAJQfz///8HTxsiBAR/IARBgICAgARPDQQgBEECdBAJBUEACyIJIAhBAnRqIgggAzYCACAJIAIgFBANIgMgBEECdGohCSAIQQRqIQQgAgRAIAIQBwsgAyECCwJAIA8vARxB//8DRg0AIA8oAiQhAyAHIApJBEAgByADNgIAIAdBBGohBwwBCyAHIAFrIhRBAnUiCEEBaiIHQYCAgIAETw0LQf////8DIAogAWsiCkEBdiINIAcgByANSRsgCkH8////B08bIgcEfyAHQYCAgIAETw0EIAdBAnQQCQVBAAsiCiAIQQJ0aiIIIAM2AgAgCiABIBQQDSIDIAdBAnRqIQogCEEEaiEHIAEEQCABEAcLIAMhAQsgD0HEAGoiDyAORw0AC0EAIQpBACEJIAIgBEcEQCAEIAIgBCACa0EBdUF8cWoiA0cEQCACIAMgBBDaAQsgAygCACEJCyABIAdGDQAgByABIAcgAWtBAXVBfHFqIgNHBEAgASADIAcQ2gELIAMoAgAhCgsgDEEANgIIIAxCADcCACAMIBAo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AyAGajYCCCABIAVBAWo2AgQgASADNgIAIARFDQMgBBAHDAILIANBG0wEQCADQbDnAGotAAAgBEEHdGohByABKAIEIgMgASgCCCIFSQRAIAMgBzoAACABIANBAWo2AgQMAwsgAyABKAIAIgRrIghBAWoiBkEASA0IQQAhCkEAIQNB/////wcgBSAEayIFQQF0IgkgBiAGIAlJGyAFQf////8DTxsiBgRAIAYQCSEDCyADIAhqIgUgBzoAACABIAMgBCAIEA0iAyAGajYCCCABIAVBAWo2AgQgASADNgIAIARFDQMgBBAHDAILIANBHkcNBkEBIQRBACEKDAMLIAJFBEBB4AFB4AAgBBsgA2ohByABKAIEIgMgASgCCCIFSQRAIAMgBzoAACABIANBAWo2AgQMAgsgAyABKAIAIgRrIghBAWoiBkEASA0HQQAhCkEAIQNB/////wcgBSAEayIFQQF0IgkgBiAGIAlJGyAFQf////8DTxsiBgRAIAYQCSEDCyADIAhqIgUgBzoAACABIAMgBCAIEA0iAyAGajYCCCABIAVBAWo2AgQgASADNgIAIARFDQIgBBAHDAELIANBH0sNBSADQdDnAGotAAAgBEEHdGohByABKAIEIgMgASgCCCIFSQRAIAMgBzoAACABIANBAWo2AgQMAQsgAyABKAIAIgRrIghBAWoiBkEASA0GQQAhCkEAIQNB/////wcgBSAEayIFQQF0IgkgBiAGIAlJGyAFQf////8DTxsiBgRAIAYQCSEDCyADIAhqIgUgBzoAACABIAMgBCAIEA0iAyAGajYCCCABIAVBAWo2AgQgASADNgIAIARFDQEgBBAHC0EAIQoLQQAhBAsgC0EBaiILQQNHDQALIAAoAgAiAygCBCAAKAIEIAMoAgBqa0EDdCAAKAIIa0EPSg0ACwsgDEEQaiQADwsQAAALDAAgACgCECgCABAwC+IIAQl/IwBBgAFrIgYkACAAKAIgIQMCfwJAAn8gAgRAIABBJGoiACADQQFrIgQgA0EDdCICakEDdWotAAAgBEEHcXZBAXEgACADQQJrIgcgAmpBA3VqLQAAIAdBB3F2QQFxIAAgA0EDayIIIAJqQQN1ai0AACAIQQdxdkEBcSAAIANBBWsiCiACakEDdWotAAAgCkEHcXZBAXEgACADQQZrIgUgAmpBA3VqLQAAIAVBB3F2QQFxIAAgAiADakEIa0EDdWotAAAgA0EHcXZBAXEgACADQQdrIgsgA2wiCUEIakEDdWotAAAgCUEHcXZBAXEgACADIAVsIgVBCGpBA3VqLQAAIAVBB3F2QQF0QQJxIAAgA0EEayIFIANsIglBCGpBA3VqLQAAIAlBB3F2QQFxIAAgAyAIbCIIQQhqQQN1ai0AACAIQQdxdkEBdEECcSAAIAMgB2wiB0EIakEDdWotAAAgB0EHcXZBAXEgACADIARsIgRBCGpBA3VqLQAAIARBB3F2QQF0QQJxckECdHJyQQN0IAAgAyAKbCIDQQhqQQN1ai0AACADQQdxdkEBcUECdHJyckEBdEH+/wFxckECdCAAIAIgC2pBA3VqLQAAIAtBB3F2QQF0QQJxcnJBAXRB/v8BcXJBAnQgACACIAVqQQN1ai0AACAFQQdxdkEBdEECcXJyQQF0Qf7/A3FyQQF0cgwBCyAALQAlQQFxIABBJGoiACADQQhqQQN1ai0AACADQQdxdkEBcSAAIANBAXQiAkEIakEDdWotAAAgAkEGcXZBAXEgACADQQNsIgJBCGpBA3VqLQAAIAJBB3F2QQF0QQJxIAAgA0ECdCICQQhqQQN1ai0AACACQQRxdkEBcSAAIANBBWwiAkEIakEDdWotAAAgAkEHcXZBAXEgACADQQdsIgJBCGpBA3VqLQAAIAJBB3F2QQF0QQJxIAAgA0EDdEEIakEDdWotAABBAXEgACADai0AACIAQRh0IABBgP4DcUEIdHIgAEEIdkGA/gNxIABBGHZyciICQQR2QY+evPgAcSACQY+evPgAcUEEdHIiAkECdkGz5syZA3EgAkGz5syZA3FBAnRyIgJBAXZBgICAoAVxIAJBgICAoAVxQQF0ckEYdiAAQQZ2QQJxcnJBAnRyckEBdEH+/wFxckECdHJyQQF0Qf7/A3FyQQF0cgtBkqgBcyIDQf//A3EgBkFAaxDwAUUNACAGQUBrQQZBiCAgBhDzAUEAIQQDQEGvICAEay0AAEGwIGotAAAhB0EAIQBBACECA0AgACAGai0AACIIBEAgCEGwIGotAAAgACAHbGpBD3BBoCBqLQAAIAJzIQILIABBAWoiAEHAAEcNAAtBAEEBIAR0IAJB/wFxGyADcyEDIARBAWoiBEEPRw0ACyADQf//A3EgBkFAaxDwAUUNAEEDDAELIAEgA0EKdkEHcTYCCCABIANBDXZBB3E2AgRBAAshACAGQYABaiQAIAAL0wIAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAEoAgAiAUECaw5/ABERARERAgMFEQQFBREREREREREREREGEREREREREREICRERDAcRERERERERERERERERERERERERERERERENDg8REREREREREREREREREREREREREREREREREQoRERERERERERERERERERERERERERERERERERERERERERERCxALIAAgAjoAIg8LIAAgAjoAIw8LIAAgAjoAIQ8LIAAgAjoAJQ8LIAAgAjoAJA8LIAAgAjoAIA8LIAAgAjoAKg8LIAAgAjoALA8LIAAgAjoAJg8LIAAgAjoAJw8LIAAgAjoAKA8LIAAgAjoAKQ8LIAAgAjoAKw8LIAAgAjoALg8LIAAgAjoALQ8LIAAgAjoALw8LIAFBoQNHDQAgACACOgAwCwuyBQEIfyMAQRBrIgckACABIAJHBEAgAEEEaiEGA0ACfyAHQQhqIQMCQCAGIABBBGoiBUcEQCABKAIQIgggBigCECIETg0BCyAGKAIAIQkCQCAGIgQgACgCAEcEQAJAIAlFBEAgBiEDA0AgAygCCCIEKAIAIANGIQggBCEDIAgNAAsMAQsgCSEDA0AgAyIEKAIEIgMNAAsLIAEoAhAiCCAEKAIQTA0BCyAJRQRAIAcgBjYCDCAGDAMLIAcgBDYCDCAEQQRqDAILIAUoAgAiA0UEQCAHIAU2AgwgBQwCCwNAAkAgAyIEKAIQIgMgCEoEQCAEIgUoAgAiAw0CDAELIAMgCE4NACAEQQRqIQUgBCgCBCIDDQELCyAHIAQ2AgwgBQwBCyAEIAhIBEACQCAGKAIEIglFBEAgBiEDA0AgAygCCCIEKAIAIANHIQogBCEDIAoNAAsMAQsgCSEDA0AgAyIEKAIAIgMNAAsLAkAgBCAFRwRAIAggBCgCEE4NAQsgCUUEQCAHIAY2AgwgBkEEagwDCyAHIAQ2AgwgBAwCCyAFKAIAIgNFBEAgByAFNgIMIAUMAgsDQAJAIAMiBCgCECIDIAhKBEAgBCIFKAIAIgMNAgwBCyADIAhODQAgBEEEaiEFIAQoAgQiAw0BCwsgByAENgIMIAUMAQsgByAG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DQAgASAAQdjAAGxqQeQAakEAIAEoApzEAiAAShsiAEUNACAAQdDAAGotAABFDQAgAEHMwABqKAIAIQILIAILWAECfwJAQajjASgCACIBRQ0AQaDjAS0AAEUNACABIABB2MAAbGpB5ABqQQAgASgCnMQCIABKGyIARQ0AIABB0MAAai0AAEUNACAAQcjAAGooAgAhAgsgAgtYAQJ/AkBBqOMBKAIAIgFFDQBBoOMBLQAARQ0AIAEgAEHYwABsakHkAGpBACABKAKcxAIgAEobIgBFDQAgAEHQwABqLQAARQ0AIABBxMAAaigCACECCyACC1gBAn8CQEGo4wEoAgAiAUUNAEGg4wEtAABFDQAgASAAQdjAAGxqQeQAakEAIAEoApzEAiAAShsiAEUNACAAQdDAAGotAABFDQAgAEHAwABqKAIAIQILIAILWAECfwJAQajjASgCACIBRQ0AQaDjAS0AAEUNACABIABB2MAAbGpB5ABqQQAgASgCnMQCIABKGyIARQ0AIABB0MAAai0AAEUNACAAQbzAAGooAgAhAgsgAgtYAQJ/AkBBqOMBKAIAIgFFDQBBoOMBLQAARQ0AIAEgAEHYwABsakHkAGpBACABKAKcxAIgAEobIgBFDQAgAEHQwABqLQAARQ0AIABBuMAAaigCACECCyACC1gBAn8CQEGo4wEoAgAiAUUNAEGg4wEtAABFDQAgASAAQdjAAGxqQeQAakEAIAEoApzEAiAAShsiAEUNACAAQdDAAGotAABFDQAgAEG0wABqKAIAIQILIAILVAECfwJAQajjASgCACIBRQ0AQaDjAS0AAEUNACABIABB2MAAbGpB5ABqQQAgASgCnMQCIABKGyIARQ0AIABB0MAAai0AAEUNACAAKAKwQCECCyACC0gBAn8CQEGo4wEoAgAiAUUNAEGg4wEtAABFDQAgASAAQdjAAGxqQeQAakEAIAEoApzEAiAAShsiAEGkwABqQQAgABshAgsgAgtIAQJ/AkBBqOMBKAIAIgFFDQBBoOMBLQAARQ0AIAEgAEHYwABsakHkAGpBACABKAKcxAIgAEobIgBBhMAAakEAIAAbIQILIAILSwECfwJAQajjASgCACIBRQ0AQaDjAS0AAEUNACABIABB2MAAbGpB5ABqQQAgASgCnMQCIABKGyIARQRAQX8PCyAAKAKAQCEC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ACgCBBEAAAsgASgCVCEAIAFBADYCVCAABEAgACAAKAIAKAIEEQAACyABKAJQIQAgAUEANgJQIAAEQCAAEM4BEAcLIAEoAkwhACABQQA2AkwgAARAIAAgACgCACgCCBEAAAsgAUFAayABKAJEEC8gAUE0aiABKAI4EC8gARAHC0Go4wFBADYCAAsL0TkDG38BfAF9IwBBEGsiDiQAQQMhAQJAAkBBqOMBKAIADQBBoOMBLQAARQ0AQazjAUEANgIAQaDEAhAJIgNBMGpBAEHwwwIQCyEBIANBADYCPCADQd4CNgIcIANCgICA8CM3AhQgA0KFgICA0Jmz5j03AgwgA0GAggQ2AgggA0KKgICAIDcCACADQgA3AiAgA0IANwIoIAFBADoAACADQQA2AkggAyADQThqNgI0IAMgA0HEAGo2AkBBmNsBKAIAIgFBnNsBRwRAA0ACQAJAIAEoAhBBAmsOBAEAAAEACyADIAFBEGpBABCEAgsCQCABKAIEIgIEQANAIAIiASgCACICDQAMAgsACwNAIAEgASgCCCIBKAIARw0ACwsgAUGc2wFHDQALCyADQQA2ApzEAiADQZTEAmpBADoAACADQfTDAmpBADoAACADQbyDAmpBADoAACADQZyDAmpBADoAACADQeTCAWpBADoAACADQcTCAWpBADoAACADQYyCAWpBADoAACADQeyBAWpBADoAACADQbTBAGpBADoAACADQZTBAGpBADoAACADQgA3AkwgA0IANwJUIANCADcCXEGo4wEgAzYCACAAECUiAUHw////B08NAQJAAkAgAUELTwRAIAFBD3JBAWoiBBAJIQIgDiAEQYCAgIB4cjYCDCAOIAI2AgQgDiABNgIIIAEgAmohBAwBCyAOIAE6AA8gDkEEaiICIAFqIQQgAUUNAQsgAiAAIAEQDhoLIARBADoAACMAQeAAayIIJAAgA0HkAGpBAEG8wwIQCxoCQCAOQQRqIgEoAgQgAS0ACyIAIADAQQBIG0UEQEGAHUEAEBtBAiEADAELIwBB0ABrIgUkACAFQTxqIhZCADcCACAFQgA3AiwgBUEAOgA0IAVByABqIhdCADcCACAFQd4CNgIgIAVCgICA8CM3AhggBUKFgICA0Jmz5j03AhAgBUGAggQ2AgwgBUKKgICAIDcCBCAFQgA3AiQgBSAWNgI4IAUg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AgAQGQsL8ccBgwEAQYAIC5IY77u/AH8AfgB9AHwAewB6AGluZmluaXR5AG11bHRpcGx5AEdlbmVyaWNHRlBvbHkAZGF0YW1hdHJpeAB1JTA0eAAtKyAgIDBYMHgALTBYKzBYIDBYLTB4KzB4IDB4AHcAdgB1AGh5c3RlcmVzaXNNaW5Db3VudABtYXhTMlBvaW50AG1heFMxUG9pbnQAaGVpZ2h0AG1heFMyUmVjdABtYXhTMVJlY3QAYWRkT3JTdWJ0cmFjdABhekNvbXBhY3QAaXNzAFBERjQxNzogZmFpbGVkIHRvIGRldGVybWluZSBzdHJ1Y3R1cmFsIHBhcmFtZXRlcnMAbnVtU2NhbmxpbmVzAGNhcGFiaWxpdGllcwBzeW1ib2xvZ2llcwBpbnZlcnRlZENvZGVzAFJlZ2lvbiBzaXplIGV4Y2VlZHMgYWxsb2NhdGVkIGJvdW5kcwBJbWFnZSBzaXplIGV4Y2VlZHMgYWxsb2NhdGVkIGJvdW5kcwBzMlBhZGRpbmdGYWN0b3IAczFQYWRkaW5nRmFjdG9yAFBERjQxNzogRm9ybWF0IGVycm9yAERhdGEgTWF0cml4OiBFQ0MgZXJyb3IAQXp0ZWMgQ29kZTogRUNDIGVycm9yAFFSIENvZGU6IEVDQyBlcnJvcgBQREY0MTc6IEVDQyBlcnJvcgBBenRlYyBDb2RlOiBNTSBFQ0MgRXJyb3IAYXpDZW50ZXIAZGF0YWJhcgBjb2RhYmFyAHEAZGF0YWJhci1leHAALi4vdmVuZG9yL3p4aW5nL0dlbmVyaWNHRlBvbHkuY3BwAGZyb20gIT0gdG8AZGV2LnN0cmljaC5pbwBQREY0MTc6IFRvbyBtYW55IGNvZGV3b3JkcyBpbiBudW1lcmljIGNvbXBhY3Rpb24AUERGNDE3OiBVbmFibGUgdG8gZGVjb2RlIG51bWVyaWMgY29tcGFjdGlvbgBRUiBDb2RlOiBpbnZhbGlkIHZlcnNpb24Ab3JpZ2luAG1heExlbgBtaW5MZW4AbmFuAGZhbGxiYWNrU2NhbgByb3dbeF0gPT0gZnJvbQBxLT5waXhlbHNbeTAgKiBxLT53ICsgeDBdID09IGZyb20AYXpEaW0AbnVsbABoeXN0ZXJlc2lzSW50ZXJ2YWwAbXVsdGlwbHlCeU1vbm9taWFsAHNldE1vbm9taWFsAGsAagBpAHdpZHRoAC4uL3ZlbmRvci96eGluZy9HZW5lcmljR0ZQb2x5LmgAYmFzaWNfc3RyaW5nACVsZwAlMS4xN2cAJTEuMTVnAGluZgAxNzk0MGFmAHNpemUAdHJ1ZQBmYWxzZQBvZmZsaW5lAGZsb29kX2ZpbGxfbGluZQBuYW1lAGRpdmlkZQBhdWQAX2ZpZWxkID09IG90aGVyLl9maWVsZABTd2l0Y2ggZW5jb2RpbmcgaXMgbm90IHN1cHBvcnRlZABQREY0MTc6IEVDSSBpcyBub3Qgc3VwcG9ydGVkAFBERjQxNzogRUNJIG5vdCBzdXBwb3J0ZWQATWFjcm8gUERGNDE3IG5vdCBzdXBwb3J0ZWQAUERGNDE3OiBpbnN1ZmZpY2llbnQgY29kZXdvcmRzIHNhbXBsZWQAZmxvb2RfZmlsbF9zZWVkAG1pblNjYW5saW5lc05lZWRlZABQREY0MTcgUkVBREVSX0lOSVQgbWlzcGxhY2VkAFBERjQxNyBMSU5LQUdFIEVBTi9VQ0MgbWlzcGxhY2VkACVkAGF6dGVjAC4uL3ZlbmRvci9xdWlyYy9pZGVudGlmeS5jAHN1YgBhAGAAQ1RSTF8AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktXwAwMTIzNDU2Nzg5Jg0JLDojLS4kLyslKj1eAF0AXABbAFoAWQBYAFcAVgBVAFQAQ1RSTF9VUwBDVFJMX1BTAENUUkxfQlMAUgBRAFAATwBGTEdOAE5BTgBNAENUUkxfVUwAQ1RSTF9QTABDVFJMX01MAENUUkxfTEwAQ1RSTF9ETABLAEoASQBIAEcASU5GAEUAZG1QRABwcmVQcm9jZXNzMUQAZG1QQwBkbVBCAGRtUEEAQAA/AD4APQA8ADsAMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaICQlKistLi86AGNvZGUzOQBjb2RlMTI4AHBkZjQxNwA2AF1RNQBpMjUANABdUTMAYXpDMwBjb2RlOTMAZWFuMTMAbWF4UzIAYXpDMgBtYXhTMQBhekMxAGF6QzAAZGVncmVlID49IDAALwAuAC0ALAArACoAUERGNDE3OiBGb3JtYXQgZXJyb3IgKGludmFsaWQgY291bnQpAEludmFsaWQgdmFsdWUgZm9yIHN5bWJvbG9neSBtYXhMZW4gKGhhcyB0byBiZSBncmVhdGVyIG9yIGVxdWFsIHRvIG1pbkxlbikAKG51bGwpAFBERjQxNzogRm9ybWF0IGVycm9yIChpbnZhbGlkIGNvZGV3b3JkKQBQREY0MTc6IEZvcm1hdCBlcnJvciAoY29kZXdvcmRzIGV4aGF1c3RlZCkASW52YWxpZCB2YWx1ZSBmb3Igc3ltYm9sb2d5IG1heExlbiAob21pdCBpZiBubyBtYXhpbXVtIHNob3VsZCBiZSBjb25maWd1cmVkKQBJbnZhbGlkIHZhbHVlIGZvciBzeW1ib2xvZ3kgbWluTGVuIChvbWl0IGlmIG5vIG1pbmltdW0gc2hvdWxkIGJlIGNvbmZpZ3VyZWQpAFBERjQxNyAocmVzZXJ2ZWQgY29kZXdvcmQgZW5jb3VudGVyZWQpAFBERjQxNyAoTElOS0FHRV9PVEhFUikARmFpbGVkIHRvIHBhcnNlIGNvbmZpZ3VyYXRpb24gKG1hbGZvcm1lZCBKU09OKQBkZWdyZWUgPj0gMCAmJiAoY29lZmZpY2llbnQgIT0gMCB8fCBkZWdyZWUgPT0gMCkAIWNvZWZmaWNpZW50cy5lbXB0eSgpACgAOzw+QFtcXV9gfiENCSw6Ci0uJC8ifCooKT97fScAVW5zdXBwb3J0ZWQgc3ltYm9sb2d5IGNvbmZpZyBlbnRyeSwgYmFkIHR5cGUgZm9yIGZpZWxkICdtYXhMZW4nAFVuc3VwcG9ydGVkIHN5bWJvbG9neSBjb25maWcgZW50cnksIGJhZCB0eXBlIGZvciBmaWVsZCAnbWluTGVuJwBVbnN1cHBvcnRlZCBzeW1ib2xvZ3kgY29uZmlnIGVudHJ5LCBtaXNzaW5nIHJlcXVpcmVkIGZpZWxkICduYW1lJwAmAC0uICQvKyUAJAAjACIiAFB1cmUgdmlydHVhbCBmdW5jdGlvbiBjYWxsZWQhADogAC4gACwgAB8AHgBbKT4eMDYdAFspPh4wNR0AHAAbAA0ADAALAFVuc3VwcG9ydGVkIHN5bWJvbG9neSBuYW1lOiAlcwoAT3V0IG9mIG1lbW9yeSB3aGVuIHJlc2l6aW5nIFFSIGJ1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ICQvKyUqAAAAAA0AAAAIAAAABQAAAAIAAAAMAAAACQAAACIAAAAjAAAAJwAAAF0AAACAAAAAGQAAACYAAABAAAAAQQAAAEIAAAChAQBBrNMACwklAAAAJgAAACcAQcDTAAueAQ8rMDgTGxEqCv8vDzg4LzckOhs2GCYCLCsFITsEFRIMACYjAP8uPxMuNv8ICf8VFP8AITv/MwD/LQwbCj8/KRwbHB0eHzs8PT4/W1xdXl97fH1+fwBAYH9/fwAADQAAAAgAAAAFAAAAAgAAAAwAAAAJAAAAIgAAACMAAAAnAAAAXQAAAIAAAAAZAAAAJgAAAEAAAABBAAAAQgAAAKEBAEHo1AALzAIrAAAALAAAAC0AAAAuAAAALwAAAP////8AAAAA/////wEAAAD/////AgAAAAAAAAD+////AAAAAP////8BAAAA/////wIAAAD/////AwAAAP/////9////AAAAAP7///8AAAAA/////wAAAAAAAAAA/P///wAAAAD9////AAAAAP7///8AAAAA/////wEAAAD//////////wAAAAD//////////wAAAAD9////AAAAAP7///8AAAAA/////wEAAAD9////AQAAAP7///8BAAAA//////3///8AAAAA/v///wAAAAD/////AAAAAAAAAAD+////AAAAAP////8BAAAA/////wIAAAD/////AwAAAP/////+/////v////7///////////////7///////////////////8AAAAAAAAAAP7///8AAAAA/////wBBwNcACx0BAAAACgAAAAoAAAAIAAAACAAAAAUAAAABAAAAAwBB6NcACx0CAAAADAAAAAwAAAAKAAAACgAAAAcAAAABAAAABQBBkNgACx0DAAAADgAAAA4AAAAMAAAADAAAAAoAAAABAAAACABBuNgACx0EAAAAEAAAABAAAAAOAAAADgAAAAwAAAABAAAADABB4NgACx0FAAAAEgAAABIAAAAQAAAAEAAAAA4AAAABAAAAEgBBiNkACx0GAAAAFAAAABQAAAASAAAAEgAAABIAAAABAAAAFgBBsNkACx0HAAAAFgAAABYAAAAUAAAAFAAAABQAAAABAAAAHgBB2NkACx0IAAAAGAAAABgAAAAWAAAAFgAAABgAAAABAAAAJABBgNoACx0JAAAAGgAA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+AALJxUAAAAAFQAAAAAJFgAAAAAAFgAAFgAAMDEyMzQ1Njc4OUFCQ0RFRgBBxPkACwGBAEHs+QALCP//////////AEGw+gAL2AX/////////////////////////////////////////////////////////////////AAECAwQFBgcICf////////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI////////woLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIj/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wABAgQHAwYFAAAAAAAAAAIAAMADAADABAAAwAUAAMAGAADABwAAwAgAAMAJAADACgAAwAsAAMAMAADADQAAwA4AAMAPAADAEAAAwBEAAMASAADAEwAAwBQAAMAVAADAFgAAwBcAAMAYAADAGQAAwBoAAMAbAADAHAAAwB0AAMAeAADAHwAAwAAAALMBAADDAgAAwwMAAMMEAADDBQAAwwYAAMMHAADDCAAAwwkAAMMKAADDCwAAwwwAAMMNAADTDgAAww8AAMMAAAy7AQAMwwIADMMDAAzDBAAM2wAAAAAAAAAACgAAAGQAAADoAwAAECcAAKCGAQBAQg8AgJaYAADh9QUAypo7AAAAAAAAAAAwMDAxMDIwMzA0MDUwNjA3MDgwOTEwMTExMjEzMTQxNTE2MTcxODE5MjAyMTIyMjMyNDI1MjYyNzI4MjkzMDMxMzIzMzM0MzUzNjM3MzgzOTQwNDE0MjQzNDQ0NTQ2NDc0ODQ5NTA1MTUyNTM1NDU1NTY1NzU4NTk2MDYxNjI2MzY0NjU2NjY3Njg2OTcwNzE3MjczNzQ3NTc2Nzc3ODc5ODA4MTgyODM4NDg1ODY4Nzg4ODk5MDkxOTI5Mzk0OTU5Njk3OTg5OQBBiIABC6FXAQAAAAIAAAADAAAAbCIiYogiIoKkIiKiaiQiYoYkIoKiJCKiTCYiQmgmImJKKCJCLCoiIkgqIkIqLCIibEIiQohCImKkQiKCakQiQoZEImKiRCKCTEYiImhGIkJKSCIibGIiIohiIkKkYiJiamQiIoZkIkKiZCJiaGYiIoRmIkKIgiIipIIiQoaEIiKihCJCpKIiIiLCIqJqIiRihiIkgqIiJKJMJCRCaCQkYoQkJIJKJiRCZiYkYiwoJCJIKCRCZCgkYioqJCJGKiRCKCwkImpCJEKGQiRiokIkgkxEJCJoRCRChEQkYkpGJCJmRiRCgkYkYkhIJCJkSCRCamIkIoZiJEKiYiRiaGQkIoRkJEJmZiQigmYkQoaCJCKigiRChIQkIoKGJCJMIiZCaCImYoQiJoJKJCZCZiQmYoIkJoIsJiYiSCYmQmQmJmIqKCYiRigmQigqJiImLCYiTEImImhCJkKEQiZiSkQmImZEJkKCRCZiSEYmImRGJkJGSCYiREomImhiJiKEYiZCZmQmIoJkJkJkZiYihIImIkoiKEJmIihigiIogiwkKCJIJChCZCQoYiomKCJGJihCYiYoYigoKCJEKChCJiooIkIqKEJKQigiZkIoQoJCKGJIRCgiZEQoQkZGKCJiRihCREgoIkJKKCKCYihCYmYoIiwiKiJIIipCZCIqYiokKiJGJCpCYiQqYigmKiJEJipCJigqIkIoKkIkKioiSEIqIkZEKiJERioiKiIsImIiLGJEJCxCQiYsQiIqLCJqIiJkhiIihKIiIqRMJCJEaCQiZIQkIoRKJiJEZiYiZIImIoQsKCIkSCgiRCoqIiRqQiJEhkIiZKJCIoRMRCIkaEQiRIREImRKRiIkZkYiREhIIiRGSiIkamIiJIZiIkSiYiJkaGQiJIRkIkRmZiIkZGgiJIaCIiSigiJEhIQiJKKiIiRMIkJiaCJCgoQiQqJKJEJiZiRCgoIkQqIsJkJCSCZCYmQmQoIqKEJCRihCYmIoQoIoKkJCRCpCYkwiJERoIiRkhCIkhExCQkJKJCREZiQkZIIkJIRKREJCZkRCYoJEQoIsRkIiKigkJEYoJERiKCRkKkhCIkZIQkIoSkIiTEIkJGhCJESEQiRkTGJCIkpEJCRmRCREgkQkZEpkQiJmZEJCgmRCYkhmQiJGSCQkRmhCImhiJCSEYiREaIJCImZkJCSCZCREZoRCIoKEQkJkhkIihIIkJISiQiKChCQkgqRCIkoiRGJmIkSCgiJEoiwkREJIJERiZCREgiomREJGJkRiYiZEgigoREJEKERiJipEQiQsREJKIiZEZiImZIIiJoRKQkRCSCQmRGQkJmQsREQiKiYmJGRERGJiJiZkKkZEIigoJiREKCZEKEhEIkRIREJCKiZEJCwmJEpCJiRmQiZEgkImZEpiRCJIRCYkZEQmREhkRCJkZERCYkYmREZmRCJESCYkQkomJGZiJiSCYiZEZoJEImRkJiRkhEQiYmYmJGKGRCKCokQiLCJGQkgiRmJkIkaCKiRGQkYkRmJiJEaCKCZGQkQmRmImKEZCQihGYiQqRkIiLEZCLCIoJEgiKERkIihkLEJGIiokKCRGJChEYiQoZCpERiJGREZCYkRGYihGRiImKCgkQigoRCZIRiJCSEZCJEpGIkhCKCRkQihESGJGIkZEKCRiRChERmRGImJkRkJEZkYiQkgoJEJoRiJkgkYiYoRGIioiSEJGIkhiYiJIgigkSEJEJEhiJiZIQkImSGIkKEhCIipIQioiKiRGIipEYiIqZCpCSCIoJCokRCQqRChESCJEREhCQiYqRCZGSCIkKCokJEhIIiIqKiRGQiokRmJIIkRkSCJCZkgiRCJKYkIkSmIiKEpCRCIsRCYkLCQmREoiJEZKIiJISiJMIiJGaCIiZoQiIoZKJCJGZiQiZiwmIiZIJiJGZCYiZiooIiZGKCJGKCoiJiYsIiZMQiImaEIiRoRCImZKRCImZkQiRoJEImZIRiImZEYiRkZIIiZESiImaGIiJoRiIkZmZCImgmQiRmRmIiaEgiImgoQiJkoiQmRmIkKEgiJCpCwkQkRIJEJkZCRChComQkRGJkJkYiZChCgoQkREKEJkJipCREIqQmRKIiRGZiIkZoIiJIZKQkJESCQkRmQkJGYsREIkKiYkJmREQmRiJiRmKkZCJEZGQkREKCRGKEhCJCYqJCYmSkIkSkIkJmZCJEaCQiRmSmJCJEhEJCaCYkJkSGRCJGRkQkRiRiRGRmZCJERIJCZEaEIkZmIkJoJiJEZmgkIkZGQkJmSEQiRiZiQmgoIkJoKiQiQsImJiSCJigmQiYqIqJGJiRiRigmIkYqIoJmJiRCZigiYoYmJCKGKCJCpiYiwiRERIIkRkZCJEhCxCYkIqJEREZEJigmIkRIQqRGJCRkRiYmJEYoIoRmJCJihEREIoRGQmSGJCQkhiYiIsREQsIiYmSCImRmQiJmYsQkQkKiQmJkYkJkZiJCZmLGJiIipERCRGREREYkREZCpkYiJGZGJCYmRiYkIoJkYoZmIiJkhEJEJIREQmaGIiIiwmJkhCJiZkQiZGSGJEJEZEJiZiRCZGSIJiIkZkRCRiZERERoRiImKEYkJCSCYmQmhEJGRiJiZkgkQkYmQmJmSiYiJihEQkKiJkYkYiZIJiImSiKCRkYkQkZIImJmRiQiZkgiQoZGIiKmRiKiJGREYiRmRiIkaEKkJkQigkRkRiQmSCKERkQkREZGJCJkZkJkZkQiQoRkQkSGRCIipGRCJKZEIqIigmRiIoRmIiKGYqQkYkKCQoJkQkKEYqYmQiKERGJERERkRCJihGKGRkIkRkZEIkKCgmJmZkIiRIRiQiKigmIkpGJEZCKCZiQihGRmJGJEREKCZGgmQiRGRGJEJGKCZEhGQiQmZGJGJiKCZiomQiKCJmYkQiZoImJGZiQiRmgiQmZmIiKGZiKCJIREQiSGQoQmZCJiRIREIkSGQmRGZCQkRmYiRGZkIiKEhEIkhmQigiKiZEIipGKEJIJCYkKiZCJCpGKGJmIiZESCRCREhEJmRmIkJkZkIiKComJGZmIiJISCQiaGYiRGJIJESCZiJChGYiQiJogiImaGJCIkpkJCRKRCImSkQmIiwmJkJKJCZiaCIiJiwmIkZKJEoiIkgsJCIoSCQiSComIihGJiJIYiYiaCgoIihEKCJIJioiKEIqIkhKQiIoZkIiSIJCImhIRCIoZEQiSEZGIihiRiJIREgiKEJKIihmYiIogmIiSGRkIihiZiIogoIiKCwiQkZIIkJmZCJChiokQkZGJEJmKCZCRkQmQmYmKEJGQihCZiQqQkYsIiQoSCIkSGQiJGgsQkImKiQkKGRCQmZiJCRoKkRCJkZEQkZiREJmKEZCJiYoJChCKCRIJkhCJkJIQkYiLCQoSEIkKGRCJEhIYkImRkQkKGJEJEhGZEImYmRCRkRmQiZCSCQoZGIkKGSCQiZiZCQoYoRCJioiYmRGImKEYiJipCgkYmREJGKEJiZiZEImYoQkKGJkIipiZCoiREZGIkRmKkJiRCgkREZEJERmKERiREREYmRCJkRmJkZiRCQoREYkSGJEIipERiJKYkQqIiYoRiImSCpCRCYoJCYoYkJEZipiYiQoREQmRERERkImJkgoZGIkRGRiRCQoJigmZmIkJEhEJiIqJigiSkQmRkImKGJCJkhGYkQmREQmKEaCYiREZEQmQkYmKESEYiRCZkQmYmImKGKCRCZiomIkKCKCgkQigqImJIKCQiSCoiQmgoIiKIKCKCJkZEQiZIQoQoJiREKCgkIkZIQmRIJiQkSCgiRGgmIiKGRkIkiCYigiRkZEIkZmKEJkRCYkRkZCJEZmKGKCQiZEZERCRGRkJmSCQkJkgmIiKEZGJGaCQiJIZEQiaIJCKCIoKEQiKEgoQkYmJiQoKEIkKEgoYmQkJkRGJkJERkYogoIiJmRkJEJkZEQiKCgoJoSCIkKEgkIiSEYmJIaCIkRCKChEYkYmQkQoKESCZCRCZEYmRKKCIkKEZCRCpIIiJiKEgkIihKIkJISCIiaEgiYiZmRCImaEJkKEYkJChIIkRIRiIiZmZCJGhGImIkhGQiJIZiZCZkQkJEhGJmKEQiREZkQiJkhGJGSEQiJGZkQiZoRCJiIqKEIiKkgmQkgmQkJIRiZiZiQkREgmIiYqKCaChCIkZGYkIkZIJiSEhCIiZmYkIoaEIkJiSCZCooQiIiSGgiRChmIiRIZiJEJoRCRihkIiZIZCJEJKJiRiaCQkgoYiIoSGIiwiIioqJCIqRiQiSigmIiomKCIqJCoiKkhCIipGRCIqREYiKkJIIipkYiIqYmQiKioiQkgoJEJIRCRCaCYmQkhCJkJoJChCSCIqQkgqIiQqRiIkSipCQihGQkJIRCQkSihEQihEREJIJkZCKEJGQkgkSEIoIiokKiJKQihGQiQqYkIkSkZiQihiYkJIRGRCKEJGJCpCZkIoYmIkKmKCQigoImJmJiRiZiQmYmYiKGJmKCJESChCYkZEQmJmQiREaCZEYkZCRGJmJEZiRiIoREgiSGJGKCImKihCRCgmJCYqQiQmSihiYiYmREQoJCYmKiZkYiYkRkQoIigmKiRmYiYiSEQoREImKkRiRChCRCYqRIJiJkJkRChChGImJiKChCQkgoQiJoKEJiJkZiZCgmRCQoKEJESCZCImZGYiRoJkJiJGSEIiRmgmQmRGQkJkZiZigkQkRGRGIiZGSCRkgkQiRmRGImaCRCYiKCpCIihKJkJGKEJCRkgmYmQmJERGKCImKComgoIkJGRkJiJGRigkhIIkImZkJkJCKCpCYkYoQoJkJkKigiQkIqKiIiSioiQihIQkQqKCIiSEhCJEooIkImZmJEKEZCIkZmYkYqJiIkSEZCJkomIkIkhIJEJmRiIkSEgkYoREIkRmRiSCokJKIiKiZiIiwiwkIoJIJCKiZCQiwiomIoJGJiKiYiYiwigoIoJEKCKiJioigkIqIqIkLCKCSkIigmZCIqKCQiLCLEQiYkhEIoJkRCKiKkYiYkZGIoJiRiKiKEgiYkRIIoImSiJiQkoigiRMImJKYiJiZmIigoJiIqIsZCJCSGQiYmRkIoIqZiJCRmYiYmJmIoIoaCJCRGgiYiZqIkJCaiJiJGwiQkqCIkJmgiJigoIigiyEIiJIhCJCZIQiYiqGIiJGhiJCYoYiYiiIIiJEiCJCJooiIkKKIkJKoiIiZqIiQoKiImJIpCIiZKQiQkamIiJipiJCRKgiImbCIiKCwiJCZMQiImLGIiIsIiSCSCIkomQiJMIqJCSCRiQkomIkJMIoJiSCRCYkoiYoJIJCKCSiJCokgiIsJIIsQiRiSEIkgmRCJKIqRCRiRkQkgmJEJKIoRiRiREYkgiZIJGJCSCSCJEokYiJMJGIsYiRCSGIkYmRiJIIqZCRCRmQkYmJkJIIoZiRCRGYkYiZoJEJCaCRiJGokQiJsJEIsgiQiSIIkQmSCJGIqhCQiRoQkQmKEJGIohiQiRIYkQiaIJCJCiCRCJIokIkiiJCJkoiRCRqQkImKkJEJEpiQiQqgkImTCJCJixCQiKiImgkYiJqJiIibCKCQmgkQkJqImJiaCQiYmoiQoJoIiKiaCKkImYkZCJoJiQiaiKEQmYkREJoImRiZiQkYmgiRIJmIiSiZiKmImQkZiJmJiYiaCKGQmQkRkJmImZiZCQmYmYiRoJkIiaiZCKoImIkaCJkJigiZiKIQmIkSEJkImhiYiQoYmQiSIJiIiiiYiRqImImKiJkJEpCYiQqYmImLCJiIoIiiCRCIooiYkKIJCJCiiJCYogiIoKIIoQihiREIogiZEKGJCRCiCJEYoYiJIKGIoYihCRGIoYiZkKEJCZChiJGYoQiJoKEIogigiRIIoQiaEKCJChChCJIYoIiKIKCJEoigiQqQoIiYiKoJCIiqiJCQqgiImKoImQipiQkIqgiREKmIiRipiJmIqQkJiKmIkZCpCImYqQiaCKiJCgipCJIQqIiKGKiIkIiyCIiQsgiRCLGIiRCxiJGIsQiJkLEIsIiKESCIipGQiIsQqJCKERiQipGIkIsQoJiKERCYipCYoIoRCKCKkJCoihCIsIoQsQiJkSEIihGRCIqQqRCJkRkQihGJEIqQoRiJkREYihCZIImRCSCKEJEoiZCJMImQsYiJESGIiZGRiIoQqZCJERmQiZGJkIoQoZiJERGYiZCZoIkRCaCJkJGoiRCJsIkQsgiIkSIIiRGSCImQqhCIkRoQiRGKEImQohiIkRIYiRCaIIiRCiCJEJIoiJEiiIiRkoiJERqQiJGKkIkREpiIkQqgiJGTCIiRixCIkKiJCokYiQsLIIkIiKCRCokQkQsLGJEIiJiZCokImQsLEJkIiJChCoiIqQqIqIiSERiIkpGIiJMQqQkKCKCQkhGJCQsIoREKCRERCokImJKQmRkKCJCgkhCRIQoIiKiSEIkpCgipCJGRGQiSEYkIkpCpiQmIoRCRkREQkhChkQmJEZEKCQkYkhCZmQmIkSCRkJGhCYiJKJGQiakJiKmIkREZiJGRiYiSEKoJCQihkJEREZCRkKIRCQkSEQmJCZiRkJoZCQiRoJEQkiEJCImokRCKKQkIqgiQkRoIkRGKCJGQqokIiKIQkJESEJEQopEIiRKRCQkKGJEQmpkIiJIgkJCSoQiIiiiQkRqIkJGKiJERGwkIiRKQkJETEQiJCpiQkQsZCImLCJCQoIkSiRCJEwsYiRCImJESiQiREwsQkRCIkJkSiwiZEIiIoRKIoIiaERCImpChCRIImJCaEQiQmpCZERIJCRESiJEZEgiIoJoQiSESCKEImZERCJoQoYkRiJkQmZEJEJoQmZERiQmREgiRmRGIiSCZkImhEYihiJkREYiZkKIJEQiZkJkRCZCZkJoREQkKERGIkhkRCImgmRCKIREIogiYkRIImRCiiRCImhCYkQoQmRCakRCJCpERCJKZEIiKIJiQiqEQiRKImJETCRCJCpCYkQsREIiYiRqJCIkbCxCJGIiQkRqLCJEYiIiZGoiYiKIRCIiikJkJGgkJCRqIkREaCIiYohCJGRoImQihkQkIohCZiRmIkRChkJGRGYiJGKGQiZkZiJmIoREJiKGQmgkZCQoJGYiSERkIiZihEIoZGQiaCKCRCgihEJqJGIiSEKCQkpEYiIoYoJCKmRiJCoigkQsJGIiQiSKLCIkgiIiRIoiQiKoQkQkiCIiQqhCJESIIkQipkJGJIYiJEKmQiZEhiJGIqRCSCSEIiZCpEIoRIQiSCKiQkokgiIoQqJCKkSCIiIkqiIiIshCJCSoIiQixkImJKYiJiLEQigkpCKiIihkYiIqZiIiLGKCQihkQkIqYmJiKGQiYipiQoIoYiKiKGKkIiZkZCIoZiQiKmKEQiZkREIoYmRiJmQkYihiRIImYiSiJmKmIiRkZiImZiYiKGKGQiRkRkImYmZiJGQmYiZiRoIkYiaiJGKoIiJkaCIkZigiJmKIQiJkSEIkYmhiImQoYiRiSIIiYiiiImRqIiJmKiIkZEpCImQqYiJmLCIiYoIkKkRCJCxMYiQiQmJEKkQiRCxMQkQiQkJkKkwiZCJCIoQqQoIiSGRCIkpihCQoQmJCSGQiQkpiZEQoRCREKkJEZChCIoJIYiSEKEKEIkZkRCJIYoYkJkJkQkZkJEJIYmZEJkQmRChCRmQmQiSCRmImhCZChiJEZEYiRmKIJCRCZkJEZCZCRmJoRCREKEQmQkhkJEImgkRiKIQkQogiQmRIIkRiiiQiQmhCQmQoQkRiakQiRCpEJEJKZCJCKIJCYiqEIkRKIkJkTCQiRCpCQmQsRCJCYiYsKoImIixCJiQiQkYsKmJGIiwiRiQiImYsKkJmIioihiIiYiRKRCIkTExCJEJCZCYqJCQmLCxEJiIsIkRCQkRGKiIiZEpMJEYiIiRmKiJiImhkIiJqYmQkSEJCQmhiZiYoJCYmKiIiYmhiRkYoIiRkSEImZigiZCJmZCQiaGJmJEZCREJmYmgmJiJGREZCJGJmYkhGJiImZEZCKGYmImYiZGQmImZiaCREQkZCZGJqJiQiSEREQiZiZGJKRiQiKGREQipmJCJoImJkKCJkYmokQkJIQmJibCYiIkpEQkIoYmJiTEYiIipkQkIsZiIkKiJiZCwkQkJCJkwqYiZCLCImRCIiRkwqQkZCKiJmQiJCJGpMIiRiQkQmSiIiRGpMJCZCIiRGSiJCIohiRCRoQiJCiGJGJkgiJERoQiZGSCJEIoZiRiRmQiRChmJIJkYiJkRmQihGRiJGIoRiSCRkQiZChGJKJkQiKERkQipGRCJIIoJiSiRiQihCgmJMJkIiKkRiQixGQiIiJmwqQiZiKiJGYiIiJIpCJCZqIiIiqGIkJIhCJiZoIiQipmImJIZCKCZmIiYipGIoJIRCKiZkIigiomIqJIJCLCZiKiImgiKCIiiEQiIqgmJCKIQiQiqCQmIogiKCKIKEIiaERCIogmRCJoQkQiiCRGImgiSCJoKGIiSERiImgmZCJIQmQiaCRmIkgiaCJIKIIiKESCIkgmhCIoQoQiSCSGIigiiCIoRKIiKEKkIigmIkKmQiJCxsQiQiYkJEKmwiRCJiImQqYmIiSIQiIkqCZCQoYkJCSIJERChiImJIgiRkKGJkIkaEJCJIgmYkJmJEQkaCRkQmYiRiRoImZCZiZiJEhCYiRoJoJCRiRkJEgkhEJGImYkSCKGQkYmgiQoQoIkSCaiQiYkhCQoJKRCJiKGJCgipkImQqIkKELCQiYkImLEpiJiJMIiYkQiJGLEpCRiJKImYiQkIkSmwiJEJiRCYqQiJESmwkJiJCJEYqQkIiaIJEJEhiIkJogkYmKEIkREhiJkYoQkQiZoJGJEZiJEJmgkgmJkImREZiKEYmQkYiZIJIJERiJkJkgkomJEIoRERiKkYkQkgiYoJKJEJiKEJigkwmIkIqREJiLEYiSIIoIipCKCQoYkgiKiJIJChCaCIoIogiIiImTEpCJkJCJCgsKkQoIioiRkJKJEgiIiIkamIkJkpCJigqIiIiiIIkJGhiJiZIQigoKCIkIoaCJiRmYigmRkIqKCYiJiKEgigkZGIqJkRCLCgkIigigoIqJGJiLCZCSGIoQioiKEQoQkhCKCJoQioiJmJKJChCKEIoYigiSGIoIiiCImIiKKJCQiiiImIoomQiJqQkIiiiREImoiRiJqJmIiSkJiImokZCJKImYiSiaCIipCgiJKJIQiKiKGIipCoiIqJCJCqMIiQigiJEKoJCIkiiRCQogiJCSKIkRCiCRCJGokYkJoIkQkaiJkQmgkYiRKJIJCSCJkJEoihEJIJIIkKiSiQigihCQqIqRCKCIiYsakImImoiRiJiIiRKgiQmKmIiImiiJCRIgiYmKGIkImaiJiRGgigmJmImImSiKCREgiomJGIoImKiKiRCgiwmImhiKCJKIigkSEJIIkgiaCJKIiZCaiQoIkaCKiIoQiokJmJKIigiSiQmQmoiJiKKIihCKEJIRCoiKCJIQkgkSiImYipCKCIqRCZCSkImImpCKCIoYkgkKkImQipiJiJKYiYiKoIiRCImwiRCJsJGIiTCJkIkwkgiIsIoQiLCJCQooiQiRsImJCaiJiJEwigkJKIoIkLCKiQiqiImIohCKCJoIkgiZmIqIkgiKiRGQkoiRiJqIkgiKEJoJCoiRIIsIiZCLCQkYkwiJiJMJCRCbCIkIowiJkIqQkZELCImIkpCRiRMIiRiLEImIixEJEJMQiQibEImIipiRiQsQiRCLGIkIkxiKCIoIoZCKiJmIkoiZGIsIkYiLCREQkwiRCJsIkYiKkJmJCwiREIsQkQiTEJKoiIkLGIiJijCQiIqgkIkLEJCJiiiYiIqYmIkLCJiJiiCgiIqQoIkKGKiIiKEIiwqpCIiLGQiJCJkQiwqhEIiLERCJCJEYiwqZGIiLCRiJCIkgiwqRIIiIoYiKiRGIiwsZiIiImZCKiQmQiwsRkIiIkZiKiwmYiIiJoIqIogiKCRIIioiaEIoJChCKiJIYigiKIIoIooiJiRKIigiakImJCpCKCJKYiYiKoImIowiJCRMIiYibEIkJCxCJiJMYiQowiJCKoIiRCxCIkYookJCKmJCRCwiQkYogmJCKkJiRChigkIqIoJEKEKiQiJkIkwqhCJCLEQiRCJEQkwqZEJCLCRCRCIkYkwqRGJCKiSCQiJmIkokJiJMLEYiQiJGQkosJkJCIiZiSiJoIkgkKCJKIkhCSCIoYkgiaiJGJCoiSCJKQkYiKmJGImwiRCQsIkYiTEJEIixiRCiiImIqYiJkLCIiZiiCQmIqQkJkKGJiYioiYmQoQoJiKCKiYiJEImwqZCJiLCQiZCIkQmwqREJiKiRiYiJGImosJiJiIiZCaiJIImgiKEJoIkoiZiIqQmYiTCJkIixCZCiCIoIqQiKEKGJCgioiQoQoQmKCKCKCgiIkIowqRCKCKiRCgiImIooiKCKIIioihihiIqIqIiKkKEJCoigiYqIqJCKiKEIiwigiQsIowiIiSoIiJExCIiZIokIiSmJCJEwiQiZIgmIiSkJiJEhigiJKIoIkSEKiIkJkIixKhCIiTEQiJEJEQixKZEIiTCRCJEIkYixKRGIiSiSCIkJmIipEJiIsTEYiIkJGQipMJkIiQiZiKkJoIihEKCIqQkhCKEIoYihCaiImRCoiKEJKQiZCKmImQmwiJEQsIiZCTEIkQixiJEiiJCQqYiQmLCIkKCbCRCIogkQkKkJEJiaiZCIoYmQkKiJkJiaChCIoQoQkJmKkIigipCQmQsQiKKIiQkpiIkRMIiJGSKQkIiiCQkJKQkJESIREIipERCQqImJESGRkIihCgkJIRIQiKCKiQkgkpCIiRCJMSmQiQkwkIkRCRiQsIiRCTEpmJCIqREJCQiZELCpGRCIqJGJCSiZkIiJGIkpMJiJCQkgkKiImQkpMKCQiIihEKiJIIkhCSiQoIihCSEIqRCgiSiJGQkwkJiIqQkZCLEQmIkwiREIsQkRGwiRCKIIkRCpCJEYmokRCKGJERCoiREYmgmRCKEJkRCZihEIoIoREJkKkQiYixEIogiJiSkIiZEiEJEIoYkJiSiJCZEhkREIqJEREKERkQigigmJIJIRCIiQibEpEImJCJiRMKkYkQiokQmJKJkRCIiYiakIoJEoiKCJoQiokSCIqImZCLCRGIiwiZEaiJGIoYiRkKiIkZiaCRGIoQkRkJmJkYigiZGQmQoRiJiKkYihiIoJKIiKESGQkYihCQoJIRERiKCJigkgkZGIqJCKCSiYkYiaCJIIoQiSEJmJEgigiRIQmQmSCJiKEgihCIqJIRCSCKCJCokgkRIImYiSiKCIkpCZCRKImImSiKCIiwkgkJKImQiTCJiJEwiiiIiJqYiIkbCIiJmiCQiJqQkIkaGJiImoiYiRoQoIiaCKiImJEIixqZCIibCQiJGIkQixqREIiaiRiImJGIipsJiIiYiZCKmJIIihiKEIoYkoiJmIqQiZiTCIkYixCJGbCJCJIgiQkSkIkJkaiRCJIYkQkSiJEJkaCZCJIQmQkRmKEIkgihCRGQqQiRiLEIkiCIkJqQiJEaIQkIkhiQkJqIkJEaGREIkokRCRIRGQiSCKCQmgkhCJCJCJMakQiQmImJCxKRiQiSiRCQmomRCJCJiJKYigkKkIoIkhiKiQoQioiRmIsJCZCLCJEZqImJChiJiYqIiYoJMJGIiaCRiQoQkYmJKJmIiZiZiQoImYmJIKGIiZChiQkYqYiJiKmJCRCxiImoiRCSGIkREoiJEZGpCYiJoJEQkhCRERGhEYiKERGJCgiZERGZGYiJkKEQkZEhiImIqRCRiSmIihiImJqIiJkaGQkQkhCQmJoZiYiKEREQkgiYmJoRkYiKCRkQkgmZiIqJCJiaiYkQkooJiIkwiZCJoImRChCJkYkokZCJmJGRCgiRkYkgmZCJkJmRCRihkImIoZEJEKmQiQixkImgiRiSEIkZEaEJkImYkRiSCJEZEZkRkIoJEZEJkRmQiYihGJGJIZCKEIigmhEJGJIIkKCaEYmQigkRGJIJkZCJKImYiZiJmQoIiZmJIJGYiZCRmQkYmZiJiJmZCRChmIkIqZiJmIkgkgiJIRGZCZiJkJEgkZERmImImSCRiRmYigiIqJoJCSCSCYmYiSCJoImQiaEJGJGgiYiRoQkQmaCJCKGgiZCJKJGRCaCJiJEokYkRoIkYiaiJiImpCRCRqIkImaiJiIkwkYkJqIkQibCJCJGwiiCIiKKQiIkiGJCIooiQiSIQmIiiCKCIopEIiKKJEIigiYiKoIoIiiCKiImgiwiJIaiJCJoYiQkaiIkJmaCRCJoQkQkZmJkImgiZCRmQoQiZiKkImhiIkKKIiJEiGQkImhCQkKIREQiaCJiQogkZCJqJCJCiiYkImTCJiJGgiYkSEImJkSiRiJGYkYkSCJGJkSCZiJGQmYkRGKGIkYihiREQqYiRCLGIkaCJEJoQiREZoQmIkZiREJoIkREZmRGIkZCZEJmRGYiRiKEQmYkhiJIQiJiiEQkQmgiQmKIRiYiSCREQmgmRiJEoigkJmIoJigiKCgiwkgiJIJIJCZCSCYiomgiJGJoJCYiaCYigogiJEKIJCJiqCIkIqgkIkLIIiSiJkJGYiZESCImRkSkKCIkgkZCRkJGRESESCImREgkJiJmRERkaCIkQoZCRESIIiQipkJEJKgiJmIkYmgiJGRmZCZCRkJEYmZmKCImREZCRiJkYmZGSCImJGZCRiZoIigiIoKIJCRiaCYmQkgoKCIiwihCJIIoRCZCKEYiokhCJGJIRCYiSEYigmhCJEJoRCJiiEIkIohEIkKoQiIiyEIkgiZiRkImZESEKEIkYkZiRiJGZERkSEImJEhEJERoQiQihmJEJIhCJkIkgmZEJmJGIkSCZkYoQiYkRmJGJkhCIqIoYiRiKGQmIihmIoJIYiRCSGQiYmhiJCJoZCJCiGIiIqhiJGImgkYiJoREZChiJEJGgkRESGIkImaCRCRoYiYiJKJmJCaCRiYoYiKCKIIkQiiEImJIgiQiSIQiQmiCIiKIgiRCJqJERCiCJCJGokQkSIIiYiiiJCIopCJCSKIiImiiJCImwkQkKKIoYiIiqiIiJKhCQiKoImIiqiQiIqaCJCKIQiQkhmJEIogiRCSGQmQihiKEIohCIkKoRCQiiCJCQqgkRCKEoiYiZmImJGgiJiZkgkYiZkJGJGRiZiJmImYkZEKGImQipiJmYiRCiCIkRIZkJiJmQkRChkRGImYiZEKGJGYiaCIiYqgkJEKIJiYiYsIoIkSCKCRGQigmQqJIIkRiSCRGIkgmQoJoIkRCaCRCYogiRCKIJEJCqCJCIsgiRIImQmZCJkRkhCgiRGJGQmYiRkRkZEgiRiRIJEREaCJEIoZCZCSIIkZCJGKGRCZCZiJEYoZGKCJGJEZCZiZIIkKiKiQkYiomJiIqKCKCSiQkQkomImJqJCQiaiYiQookIiKqJCKiKEJEYihERiIoRkKkKiIigkhCREJIREKESiIkREokJCJoREJkaiIiQohCQkSKIiIiqEJCJKoiJGImYmYiJmRkZChCREJGYmRmKiIkREhCRCJmYmRGSiIkJGhCRCZqIiYiJIKGJCZiZiYoQkYoKiIigipEJEIqRiJiSkQkIkpGIkJqRCIiikQigihiREIoZEKEKkIiYkhiRCJIZEJkSkIkJEpEIkRqQiIiiGJCJIpCJEImgmREKGJEIkaCZEYqQiQkSGJEJkpCImIqZCQiKmYiQkpkIiJqZCJiKIJEIiiEQmQqYiJCSIJCREpiIiJogkIkamIkIiaiZCQogkQmKmIiQiqEIiJKhCJCKKJCRCqCIiJIokIkSoIoQiIiyCJCIsZiJCKoIiQkpkJEIqYiZCKoIiJCyCQkIqSCJiKGQiYkhGJGIoYiRiSEQmYihCKGIoZCJEKmRCYihiJEQqYkRiKCoigiZGIoJGYiKCZigkgiZEJIJGJiaCJkImgkYkKIImIiqCJkYiZChiImRIRkKCJmJCgkZERIImQiZkKEJGgiZiIkYqYkJkKGJigiYoIqJERCKiZCYkokRCJKJkJCaiRCIookQoIoQmRCKERihCoiREQqJEQiSERiZEoiQkJoQmJEaiJCIohCYiSKIkRCJmKERChCZCJGYoRGKiJEJEhCZCZKIkJiLCYkIiwoIkJMJiIibCYiYipERCIqRkJkLCQiQkpEQkRMJCIiakRCJGwkImIoYmQiKGRiZCpCQkJIYmJmLCIiREpCQiJoYmJGTCIiJGpCQiZsIiQiJoKEJChiZCYqQkQoLCIiQixGIiJMRiJCKmRCRCxEIiJKZEIkTEQiQiiCYkQqYkIiSIJiRixCIiRKYkImTEIiIixmIiIqhEIkLGQiIiiiYiQqgkImLGImQiQixiJEIsRiJiKmIiYkpEJGIqQiZiKmIiRCxiQmIqKCKCKEQigkgmJIIoQiSCSCQmgigiKIIoRCJkKkRCgihCJGQqQkSCKCYiokZCIqJmJCSiRiImokYmIoQoQiKESCZCoiZCQqJGJESiJiImhCgiRqImQiJmKkJChChCYqImJCLCZCIkwmQkIqRGJELCRCIkpEYiRMJEJCKGKCRCpCYiJIYoJGLCJCJEpCYiZMIkIiLEZCIipkYiQsREIiKIKCJCpiYiYsQkRCJiLEIkYiwmIoIqQiKCSiQkgioiJoIqQiJkLEJCgiokIqJIIiSiSCQihCokQqIoIiSEKiJEoigiIsJmzgcAAAAAAAAFAEG01wELAXoAQczXAQsKewAAAHwAAAC8kQBB5NcBCwECAEH01wELCP//////////AEG42AELAQUAQcTYAQsBfQBB3NgBCw57AAAAfgAAAMiRAAAABABB9NgBCwEBAEGE2QELBf////8KAEHI2QELA4CYUA==\", !HA(W)) {\n var PA = W;\n W = A.locateFile ? A.locateFile(PA, i) : i + PA;\n }\n function jA(e) {\n try {\n if (e == W && c) return new Uint8Array(c);\n if (HA(e)) try {\n var a = UI(e.slice(37)),\n s = new Uint8Array(a.length);\n for (e = 0; e < a.length; ++e) s[e] = a.charCodeAt(e);\n var r = s;\n } catch {\n throw Error(\"Converting base64 string to bytes failed.\");\n } else r = void 0;\n var w = r;\n if (w) return w;\n throw \"both async and sync fetching of the wasm failed\";\n } catch (R) {\n Z(R);\n }\n }\n function JI(e) {\n return c || typeof fetch != \"function\" ? Promise.resolve().then(function () {\n return jA(e);\n }) : fetch(e, {\n credentials: \"same-origin\"\n }).then(function (a) {\n if (!a.ok) throw \"failed to load wasm binary file at '\" + e + \"'\";\n return a.arrayBuffer();\n }).catch(function () {\n return jA(e);\n });\n }\n function VA(e, a, s) {\n return JI(e).then(function (r) {\n return WebAssembly.instantiate(r, a);\n }).then(function (r) {\n return r;\n }).then(s, function (r) {\n D(\"failed to asynchronously prepare wasm: \" + r), Z(r);\n });\n }\n function KI(e, a) {\n var s = W;\n return c || typeof WebAssembly.instantiateStreaming != \"function\" || HA(s) || typeof fetch != \"function\" ? VA(s, e, a) : fetch(s, {\n credentials: \"same-origin\"\n }).then(function (r) {\n return WebAssembly.instantiateStreaming(r, e).then(a, function (w) {\n return D(\"wasm streaming compile failed: \" + w), D(\"falling back to ArrayBuffer instantiation\"), VA(s, e, a);\n });\n });\n }\n function mA(e) {\n for (; 0 < e.length;) e.shift()(A);\n }\n var MI = [null, [], []];\n function XA(e, a, s, r) {\n var w = {\n string: G => {\n var H = 0;\n if (G != null && G !== 0) {\n var q = (G.length << 2) + 1;\n H = fA(q);\n var L = H,\n x = u;\n if (0 < q) {\n q = L + q - 1;\n for (var tA = 0; tA < G.length; ++tA) {\n var U = G.charCodeAt(tA);\n if (55296 <= U && 57343 >= U) {\n var LI = G.charCodeAt(++tA);\n U = 65536 + ((U & 1023) << 10) | LI & 1023;\n }\n if (127 >= U) {\n if (L >= q) break;\n x[L++] = U;\n } else {\n if (2047 >= U) {\n if (L + 1 >= q) break;\n x[L++] = 192 | U >> 6;\n } else {\n if (65535 >= U) {\n if (L + 2 >= q) break;\n x[L++] = 224 | U >> 12;\n } else {\n if (L + 3 >= q) break;\n x[L++] = 240 | U >> 18, x[L++] = 128 | U >> 12 & 63;\n }\n x[L++] = 128 | U >> 6 & 63;\n }\n x[L++] = 128 | U & 63;\n }\n }\n x[L] = 0;\n }\n }\n return H;\n },\n array: G => {\n var H = fA(G.length);\n return TA.set(G, H), H;\n }\n };\n e = A[\"_\" + e];\n var R = [],\n M = 0;\n if (r) for (var J = 0; J < r.length; J++) {\n var v = w[s[J]];\n v ? (M === 0 && (M = zA()), R[J] = v(r[J])) : R[J] = r[J];\n }\n return s = e.apply(null, R), s = function (G) {\n return M !== 0 && _A(M), a === \"string\" ? G ? AA(u, G) : \"\" : a === \"boolean\" ? !!G : G;\n }(s);\n }\n var UI = typeof atob == \"function\" ? atob : function (e) {\n var a = \"\",\n s = 0;\n e = e.replace(/[^A-Za-z0-9\\+\\/=]/g, \"\");\n do {\n var r = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(e.charAt(s++)),\n w = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(e.charAt(s++)),\n R = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(e.charAt(s++)),\n M = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\".indexOf(e.charAt(s++));\n r = r << 2 | w >> 4, w = (w & 15) << 4 | R >> 2;\n var J = (R & 3) << 6 | M;\n a += String.fromCharCode(r), R !== 64 && (a += String.fromCharCode(w)), M !== 64 && (a += String.fromCharCode(J));\n } while (s < e.length);\n return a;\n },\n dI = {\n b: function (e, a, s, r) {\n Z(\"Assertion failed: \" + (e ? AA(u, e) : \"\") + \", at: \" + [a ? a ? AA(u, a) : \"\" : \"unknown filename\", s, r ? r ? AA(u, r) : \"\" : \"unknown function\"]);\n },\n a: function () {\n Z(\"\");\n },\n g: function (e, a, s) {\n u.copyWithin(e, a, a + s);\n },\n e: function (e) {\n var a = u.length;\n e >>>= 0, 2147483648 < e && Z(\"OOM\");\n for (var s = 1; 4 >= s; s *= 2) {\n var r = a * (1 + .2 / s);\n r = Math.min(r, e + 100663296);\n var w = Math,\n R = w.min;\n r = Math.max(e, r), r += (65536 - r % 65536) % 65536;\n A: {\n var M = h.buffer;\n try {\n h.grow(R.call(w, 2147483648, r) - M.byteLength + 65535 >>> 16), OA();\n var J = 1;\n break A;\n } catch {}\n J = void 0;\n }\n if (J) return !0;\n }\n Z(\"OOM\");\n },\n f: function () {\n return 52;\n },\n d: function () {\n return 70;\n },\n c: function (e, a, s, r) {\n for (var w = 0, R = 0; R < s; R++) {\n var M = oA[a >> 2],\n J = oA[a + 4 >> 2];\n a += 8;\n for (var v = 0; v < J; v++) {\n var G = u[M + v],\n H = MI[e];\n G === 0 || G === 10 ? ((e === 1 ? t : D)(AA(H, 0)), H.length = 0) : H.push(G);\n }\n w += J;\n }\n return oA[r >> 2] = w, 0;\n }\n };\n (function () {\n function e(s) {\n if (s = s.exports, A.asm = s, h = A.asm.h, OA(), vA.unshift(A.asm.i), O--, A.monitorRunDependencies && A.monitorRunDependencies(O), O == 0 && (YA !== null && (clearInterval(YA), YA = null), IA)) {\n var r = IA;\n IA = null, r();\n }\n return s;\n }\n var a = {\n a: dI\n };\n if (O++, A.monitorRunDependencies && A.monitorRunDependencies(O), A.instantiateWasm) try {\n return A.instantiateWasm(a, e);\n } catch (s) {\n D(\"Module.instantiateWasm callback failed with error: \" + s), C(s);\n }\n return KI(a, function (s) {\n e(s.instance);\n }).catch(C), {};\n })(), A._strich_version = function () {\n return (A._strich_version = A.asm.k).apply(null, arguments);\n }, A._strich_init = function () {\n return (A._strich_init = A.asm.l).apply(null, arguments);\n }, A._strich_set_debug = function () {\n return (A._strich_set_debug = A.asm.m).apply(null, arguments);\n }, A._strich_engine_init = function () {\n return (A._strich_engine_init = A.asm.n).apply(null, arguments);\n }, A._strich_engine_destroy = function () {\n return (A._strich_engine_destroy = A.asm.o).apply(null, arguments);\n }, A._strich_engine_process_frame = function () {\n return (A._strich_engine_process_frame = A.asm.p).apply(null, arguments);\n }, A._strich_engine_create_buffer = function () {\n return (A._strich_engine_create_buffer = A.asm.q).apply(null, arguments);\n }, A._strich_engine_destroy_buffer = function () {\n return (A._strich_engine_destroy_buffer = A.asm.r).apply(null, arguments);\n }, A._strich_engine_get_number_of_results = function () {\n return (A._strich_engine_get_number_of_results = A.asm.s).apply(null, arguments);\n }, A._strich_engine_get_result_data = function () {\n return (A._strich_engine_get_result_data = A.asm.t).apply(null, arguments);\n }, A._strich_engine_get_result_data_len = function () {\n return (A._strich_engine_get_result_data_len = A.asm.u).apply(null, arguments);\n }, A._strich_engine_get_result_raw_data = function () {\n return (A._strich_engine_get_result_raw_data = A.asm.v).apply(null, arguments);\n }, A._strich_engine_get_result_type = function () {\n return (A._strich_engine_get_result_type = A.asm.w).apply(null, arguments);\n }, A._strich_engine_get_result_supplemental_data = function () {\n return (A._strich_engine_get_result_supplemental_data = A.asm.x).apply(null, arguments);\n }, A._strich_engine_get_quad_p1_x = function () {\n return (A._strich_engine_get_quad_p1_x = A.asm.y).apply(null, arguments);\n }, A._strich_engine_get_quad_p1_y = function () {\n return (A._strich_engine_get_quad_p1_y = A.asm.z).apply(null, arguments);\n }, A._strich_engine_get_quad_p2_x = function () {\n return (A._strich_engine_get_quad_p2_x = A.asm.A).apply(null, arguments);\n }, A._strich_engine_get_quad_p2_y = function () {\n return (A._strich_engine_get_quad_p2_y = A.asm.B).apply(null, arguments);\n }, A._strich_engine_get_quad_p3_x = function () {\n return (A._strich_engine_get_quad_p3_x = A.asm.C).apply(null, arguments);\n }, A._strich_engine_get_quad_p3_y = function () {\n return (A._strich_engine_get_quad_p3_y = A.asm.D).apply(null, arguments);\n }, A._strich_engine_get_quad_p4_x = function () {\n return (A._strich_engine_get_quad_p4_x = A.asm.E).apply(null, arguments);\n }, A._strich_engine_get_quad_p4_y = function () {\n return (A._strich_engine_get_quad_p4_y = A.asm.F).apply(null, arguments);\n }, A._strich_engine_get_symbology_identifier = function () {\n return (A._strich_engine_get_symbology_identifier = A.asm.G).apply(null, arguments);\n }, A._strich_engine_get_debug_output = function () {\n return (A._strich_engine_get_debug_output = A.asm.H).apply(null, arguments);\n }, A._strich_engine_get_status_message = function () {\n return (A._strich_engine_get_status_message = A.asm.I).apply(null, arguments);\n }, A._strich_engine_get_exception_message = function () {\n return (A._strich_engine_get_exception_message = A.asm.J).apply(null, arguments);\n }, A._mem_used = function () {\n return (A._mem_used = A.asm.K).apply(null, arguments);\n }, A._lsan_leak_check = function () {\n return (A._lsan_leak_check = A.asm.L).apply(null, arguments);\n };\n function zA() {\n return (zA = A.asm.M).apply(null, arguments);\n }\n function _A() {\n return (_A = A.asm.N).apply(null, arguments);\n }\n function fA() {\n return (fA = A.asm.O).apply(null, arguments);\n }\n A.ccall = XA, A.cwrap = function (e, a, s, r) {\n var w = !s || s.every(R => R === \"number\" || R === \"boolean\");\n return a !== \"string\" && w && !r ? A[\"_\" + e] : function () {\n return XA(e, a, s, arguments, r);\n };\n };\n var eA;\n IA = function e() {\n eA || $A(), eA || (IA = e);\n };\n function $A() {\n function e() {\n if (!eA && (eA = !0, A.calledRun = !0, !K)) {\n if (mA(vA), g(A), A.onRuntimeInitialized && A.onRuntimeInitialized(), A.postRun) for (typeof A.postRun == \"function\" && (A.postRun = [A.postRun]); A.postRun.length;) {\n var a = A.postRun.shift();\n WA.unshift(a);\n }\n mA(WA);\n }\n }\n if (!(0 < O)) {\n if (A.preRun) for (typeof A.preRun == \"function\" && (A.preRun = [A.preRun]); A.preRun.length;) kI();\n mA(ZA), 0 < O || (A.setStatus ? (A.setStatus(\"Running...\"), setTimeout(function () {\n setTimeout(function () {\n A.setStatus(\"\");\n }, 1), e();\n }, 1)) : e());\n }\n }\n if (A.preInit) for (typeof A.preInit == \"function\" && (A.preInit = [A.preInit]); 0 < A.preInit.length;) A.preInit.pop()();\n return $A(), I.ready;\n };\n })();\n typeof wA == \"object\" && typeof qA == \"object\" ? qA.exports = pA : typeof define == \"function\" && define.amd ? define([], function () {\n return pA;\n }) : typeof wA == \"object\" && (wA.Module = pA);\n});\nvar gA = /*#__PURE__*/(() => {\n let gA = class gA {\n static getDeviceId() {\n return localStorage.getItem(gA.localStorageKey);\n }\n static setDeviceId(I) {\n localStorage.setItem(gA.localStorageKey, I);\n }\n };\n gA.localStorageKey = \"strich_device_id\";\n return gA;\n})();\nvar b = gA;\nvar DA = class {\n constructor(I) {\n let A = I.split(\".\");\n if (A.length !== 3) throw new Error(\"Malformed license key\");\n let C = A[1].replace(/-/g, \"+\").replace(/_/g, \"/\"),\n Q = decodeURIComponent(atob(C).split(\"\").map(i => \"%\" + (\"00\" + i.charCodeAt(0).toString(16)).slice(-2)).join(\"\"));\n try {\n this.licenseJwt = JSON.parse(Q), this.licenseKey = I;\n } catch {\n throw new Error(\"Malformed license key\");\n }\n if (this.licenseJwt.aud == null || this.licenseJwt.sub == null || this.licenseJwt.iss == null || this.licenseJwt.version == null) throw new Error(\"Malformed license key\");\n }\n get licenseId() {\n return this.licenseJwt.sub;\n }\n get isDevLicense() {\n return this.licenseJwt.iss === \"dev.strich.io\";\n }\n get isOffline() {\n return this.licenseJwt.capabilities.hasOwnProperty(\"offline\") && this.licenseJwt.capabilities.offline === !0;\n }\n get isAnalyticsOptOut() {\n return this.licenseJwt.capabilities.hasOwnProperty(\"analyticsOptOut\") && this.licenseJwt.capabilities.analyticsOptOut === !0;\n }\n get hasCustomOverlayLogoCapability() {\n return this.licenseJwt.capabilities.hasOwnProperty(\"customOverlayLogo\") && this.licenseJwt.capabilities.customOverlayLogo === !0;\n }\n get version() {\n return this.licenseJwt.version;\n }\n};\nvar N = class N {\n static setLanguageFromNavigator(I) {\n let A = this.defaultLang;\n I && (A = I.split(\"-\")[0].toLowerCase()), A in N.translations ? N.lang = A : N.lang = this.defaultLang;\n }\n static t(I) {\n let A = N.translations[N.lang];\n return A[I] ? A[I] : N.translations[N.defaultLang][I] ? N.translations[N.defaultLang][I] : I;\n }\n static default(I) {\n return N.translations[N.defaultLang][I] ?? I;\n }\n};\nN.defaultLang = \"en\", N.lang = \"en\", N.translations = {\n en: {\n \"action.reload\": \"Reload application\",\n \"action.retry\": \"Retry\",\n \"action.resumeScanning\": \"Resume scanning\",\n \"error.internal\": \"An internal error has occurred.\",\n \"error.requirementsNotFulfilled\": \"Your browser is not supported. Please use an up-to-date browser.\",\n \"error.featureNotAvailable\": \"Your browser does not support this feature.\",\n \"error.cameraNotReadable\": \"Unable to open camera. Make sure no other app or browser tab is using the camera.\",\n \"error.cameraNotAllowed\": \"Camera access is not permitted, please review website permissions and retry.\",\n \"error.cameraNotFound\": \"No suitable camera device was found.\",\n \"error.cameraOverconstrained\": \"Camera access failed, camera device is not compatible.\",\n \"error.cameraAbort\": \"Camera access was aborted.\",\n \"error.cameraLost\": \"Access to camera stream was lost, please tap to re-acquire.\",\n \"error.originNotSecure\": \"Camera access requires a secure origin (HTTPS)\",\n \"error.sdkNotInitialized\": \"Please initialize the SDK before using a BarcodeReader.\",\n \"error.licenseInvalid\": \"The license key is invalid or expired. Please obtain a new one.\",\n \"error.licenseCheckFailed\": \"The license key could not be checked. An internet connection is required.\",\n \"error.outdatedSdk\": \"The STRICH SDK is out of date, please update to a more recent version.\",\n \"error.invalidConfiguration\": \"The supplied configuration is not valid.\"\n },\n de: {\n \"action.reload\": \"App neu laden\",\n \"action.retry\": \"Nochmals versuchen\",\n \"action.resumeScanning\": \"Scanning fortsetzen\",\n \"error.internal\": \"Ein interner Fehler ist aufgetreten.\",\n \"error.requirementsNotFulfilled\": \"Ihr Browser ist nicht unterst\\xFCtzt. Bitte verwenden Sie einen aktuellen Browser.\",\n \"error.featureNotAvailable\": \"Ihr Browser unterst\\xFCtzt diese Funktion nicht.\",\n \"error.cameraNotReadable\": \"Kamerazugriff fehlgeschlagen, bitte stellen Sie sicher dass keine andere App oder Browser-Tab die Kamera verwendet.\",\n \"error.cameraNotAllowed\": \"Kamerazugriff nicht erlaubt, bitte passen sie die Berechtigungen der Webseite an.\",\n \"error.cameraNotFound\": \"Keine geeignete Kamera gefunden.\",\n \"error.cameraOverconstrained\": \"Keine kompatible Kamera gefunden.\",\n \"error.cameraAbort\": \"Kamerazugriff fehlgeschlagen.\",\n \"error.cameraLost\": \"Der Kamerazugriff ging verloren, bitte tippen sie auf den Knopf um ihn wieder anzufordern.\"\n },\n fr: {\n \"action.reload\": \"Recharger l'application\",\n \"action.retry\": \"R\\xE9essayer\",\n \"action.resumeScanning\": \"Reprendre la lecture des codes-barres\",\n \"error.internal\": \"Une erreur interne s'est produite.\",\n \"error.requirementsNotFulfilled\": \"Votre navigateur n'est pas pris en charge. Veuillez utiliser un navigateur plus r\\xE9cent.\",\n \"error.featureNotAvailable\": \"Votre navigateur ne prend pas en charge cette fonctionnalit\\xE9.\",\n \"error.cameraNotReadable\": \"Impossible d'acc\\xE9der \\xE0 la cam\\xE9ra. Assurez-vous qu'aucune autre application ou onglet de navigateur n'y acc\\xE8de.\",\n \"error.cameraNotAllowed\": \"L'acc\\xE8s \\xE0 la cam\\xE9ra n'est pas autoris\\xE9, veuillez v\\xE9rifier les autorisations du site web et r\\xE9essayer.\",\n \"error.cameraNotFound\": \"Aucune cam\\xE9ra appropri\\xE9 n'a \\xE9t\\xE9 trouv\\xE9.\",\n \"error.cameraOverconstrained\": \"L'acc\\xE8s \\xE0 la cam\\xE9ra a \\xE9chou\\xE9, l'appareil photo n'est pas compatible.\",\n \"error.cameraAbort\": \"L'acc\\xE8s \\xE0 la cam\\xE9ra a \\xE9t\\xE9 interrompu.\",\n \"error.cameraLost\": \"L'acc\\xE8s au flux de donn\\xE9es de la cam\\xE9ra a \\xE9t\\xE9 perdu, veuillez appuyer sur le bouton pour le r\\xE9acqu\\xE9rir.\"\n },\n it: {\n \"action.reload\": \"Ricarica l'applicazione\",\n \"action.retry\": \"Riprovare\",\n \"action.resumeScanning\": \"Riprendere la scansione\",\n \"error.internal\": \"Si \\xE8 verificato un errore interno.\",\n \"error.requirementsNotFulfilled\": \"Il vostro browser non \\xE8 supportato. Utilizzare un browser aggiornato.\",\n \"error.featureNotAvailable\": \"Il browser non supporta questa funzione.\",\n \"error.cameraNotReadable\": \"Impossibile aprire la fotocamera. Assicuratevi che nessun'altra applicazione o scheda del browser stia utilizzando la fotocamera.\",\n \"error.cameraNotAllowed\": \"L'accesso alla fotocamera non \\xE8 consentito, controllare le autorizzazioni del sito web e riprovare.\",\n \"error.cameraNotFound\": \"Non \\xE8 stato trovato un dispositivo fotocamera adatto.\",\n \"error.cameraOverconstrained\": \"L'accesso alla fotocamera non \\xE8 riuscito, il dispositivo non \\xE8 compatibile.\",\n \"error.cameraAbort\": \"L'accesso alla fotocamera \\xE8 stato interrotto.\",\n \"error.cameraLost\": \"L'accesso al flusso della camera \\xE8 stato perso, toccare per riaccedere.\"\n },\n es: {\n \"action.reload\": \"Recargar la aplicaci\\xF3n\",\n \"action.retry\": \"Reintentar\",\n \"action.resumeScanning\": \"Reanudar la lectura del c\\xF3digo de barras\",\n \"error.internal\": \"Se ha producido un error interno.\",\n \"error.requirementsNotFulfilled\": \"Su navegador no es compatible. Utilice un navegador actualizado.\",\n \"error.featureNotAvailable\": \"Su navegador no es compatible con esta funci\\xF3n.\",\n \"error.cameraNotReadable\": \"No se puede abrir la c\\xE1mara. Aseg\\xFArate de que ninguna otra aplicaci\\xF3n o pesta\\xF1a del navegador est\\xE9 utilizando la c\\xE1mara.\",\n \"error.cameraNotAllowed\": \"El acceso a la c\\xE1mara no est\\xE1 permitido, revisa los permisos del sitio web y vuelve a intentarlo.\",\n \"error.cameraNotFound\": \"No se ha encontrado ning\\xFAn dispositivo de c\\xE1mara adecuado.\",\n \"error.cameraOverconstrained\": \"El acceso a la c\\xE1mara ha fallado, el dispositivo de la c\\xE1mara no es compatible.\",\n \"error.cameraAbort\": \"Se ha cancelado el acceso a la c\\xE1mara.\",\n \"error.cameraLost\": \"Se ha perdido el acceso a la c\\xE1mara, pulse para volver a obtenerlo.\"\n }\n};\nvar y = N;\nvar B = class E extends Error {\n constructor(I, A) {\n super(I), Object.setPrototypeOf(this, E.prototype), this.name = this.constructor.name, this.duringCameraAccess = !1, this.message = y.default(I) ?? I, this.localizedMessage = y.t(I) ?? this.message, this.cause = A, this.detailMessage = A?.message;\n }\n static invalidLicenseErrorWithDetail(I) {\n let A = new E(\"error.licenseInvalid\");\n return A.message = A.message + \" (\" + I + \")\", A.detailMessage = I, A;\n }\n static internalErrorWithCause(I) {\n return I instanceof Error ? new E(\"error.internal\", I) : new E(\"error.internal\");\n }\n static internalErrorWithDetail(I) {\n let A = new E(\"error.internal\");\n return A.detailMessage = I, A;\n }\n static configurationErrorWithDetail(I, A) {\n let g = new E(\"error.invalidConfiguration\");\n return g.detailMessage = I, A && (g.message += ` (${I})`), g;\n }\n static unfulfilledRequirementErrorWithDetail(I, A) {\n let g = new E(\"error.requirementsNotFulfilled\");\n return g.detailMessage = I, A && (g.message += ` (${I})`), g;\n }\n static fromGetUserMediaError(I) {\n let A;\n switch (I.name) {\n case \"NotReadableError\":\n A = \"error.cameraNotReadable\";\n break;\n case \"NotFoundError\":\n A = \"error.cameraNotFound\";\n break;\n case \"AbortError\":\n A = \"error.cameraAbort\";\n break;\n case \"NotAllowedError\":\n A = \"error.cameraNotAllowed\";\n break;\n case \"OverconstrainedError\":\n A = \"error.cameraOverconstrained\";\n break;\n default:\n A = \"error.cameraNotReadable\";\n break;\n }\n let g = new E(A, I);\n return g.duringCameraAccess = !0, g;\n }\n};\nfunction k(E, I) {\n return {\n x: E,\n y: I\n };\n}\nfunction Y(E, I) {\n if (E < 0 || I < 0) throw B.internalErrorWithDetail(\"Negative width or height passed to makeSize()\");\n return {\n width: E,\n height: I\n };\n}\nfunction m(E, I) {\n return {\n origin: E,\n size: I\n };\n}\nfunction P(E, I) {\n if (I.left < 0 || I.right >= .5 || I.right < 0 || I.right >= .5 || I.top < 0 || I.top >= .5 || I.bottom < 0 || I.bottom >= .5) throw B.internalErrorWithDetail(\"Invalid region of interest specified (HINT: check left, right, top, bottom parameters)\");\n return m(k(Math.trunc(I.left * E.width), Math.trunc(I.bottom * E.height)), Y(Math.trunc((1 - (I.right + I.left)) * E.width), Math.trunc((1 - (I.top + I.bottom)) * E.height)));\n}\nfunction II(E, I, A, g) {\n return {\n points: [E, I, A, g]\n };\n}\nfunction gI(E) {\n let I = [E.points[0].x, E.points[1].x, E.points[2].x, E.points[3].x],\n A = [E.points[0].y, E.points[1].y, E.points[2].y, E.points[3].y],\n g = Math.min(...I),\n C = Math.max(...I),\n Q = Math.min(...A),\n i = Math.max(...A);\n return m({\n x: g,\n y: Q\n }, {\n width: C - g,\n height: i - Q\n });\n}\nfunction j() {\n return [\"iPad Simulator\", \"iPhone Simulator\", \"iPod Simulator\", \"iPad\", \"iPhone\", \"iPod\"].indexOf(navigator.platform) !== -1 || navigator.userAgent.indexOf(\"Mac\") !== -1 && \"ontouchend\" in document;\n}\nasync function uA(E) {\n return new Promise(I => setTimeout(I, E));\n}\nfunction lA(E, I, A) {\n return Math.min(Math.max(E, I), A);\n}\nfunction CI() {\n let E = new Date().getTime(),\n I = typeof performance < \"u\" && performance.now && performance.now() * 1e3 || 0;\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, A => {\n let g = Math.random() * 16;\n return E > 0 ? (g = (E + g) % 16 | 0, E = Math.floor(E / 16)) : (g = (I + g) % 16 | 0, I = Math.floor(I / 16)), (A === \"x\" ? g : g & 3 | 8).toString(16);\n });\n}\nvar aA = \"https://license.strich.io/api/v1\",\n sA = \"https://license-dev.strich.io/api/v1\";\nvar rA = class {\n constructor(I, A, g, C) {\n this.api = I;\n this.deviceId = A;\n this.locationHref = g;\n this.userAgent = C;\n }\n verify(I) {\n let A = this.api.strich_init(I, window.location.href, Date.now() / 1e3);\n if (A !== 0) return A === 1 ? Promise.reject(new B(\"error.outdatedSdk\")) : Promise.reject(new B(\"error.licenseInvalid\"));\n let g;\n try {\n g = new DA(I);\n } catch (C) {\n return Promise.reject(new B(\"error.licenseInvalid\", C instanceof Error ? C : void 0));\n }\n return g.isOffline ? (this.deviceId === null && b.setDeviceId(CI()), Promise.resolve(g)) : this.verifyV1OnlineLicense(g);\n }\n verifyV1OnlineLicense(I) {\n return this.deviceId === null ? this.enrollDevice(I).then(A => (b.setDeviceId(A), Promise.resolve(I))) : this.pingDevice(I, this.deviceId).then(() => I);\n }\n enrollDevice(I) {\n let A = {\n licenseKey: I.licenseKey,\n locationHref: this.locationHref,\n userAgent: this.userAgent,\n sdkVersion: o.version()\n },\n g = this.getApiEndpoint(I);\n return this.fetchWithRetries(`${g}/web/enroll`, 2, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(A)\n }).then(C => C.ok ? C.json().then(Q => Q.deviceId).catch(() => {\n throw B.invalidLicenseErrorWithDetail(\"Failed to parse JSON response\");\n }) : this.handleLicenseServiceErrorResponse(C)).catch(C => {\n throw C instanceof B ? C : new B(\"error.licenseCheckFailed\", C);\n });\n }\n pingDevice(I, A) {\n let g = {\n deviceId: A,\n licenseKey: I.licenseKey,\n locationHref: this.locationHref,\n userAgent: this.userAgent,\n sdkVersion: o.version()\n },\n C = this.getApiEndpoint(I);\n return this.fetchWithRetries(`${C}/web/ping`, 2, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\"\n },\n body: JSON.stringify(g)\n }).then(Q => {\n if (!Q.ok) return this.handleLicenseServiceErrorResponse(Q);\n }).catch(Q => {\n throw Q instanceof B ? Q : new B(\"error.licenseCheckFailed\", Q);\n });\n }\n handleLicenseServiceErrorResponse(I) {\n if (I.status === 400 || I.status === 404 || I.status === 403) return I.json().then(A => {\n throw B.invalidLicenseErrorWithDetail(A.message);\n }).catch(A => {\n throw A instanceof B ? A : new B(\"error.licenseInvalid\", A);\n });\n throw new B(\"error.licenseCheckFailed\");\n }\n getApiEndpoint(I) {\n return I.isDevLicense ? sA : aA;\n }\n async fetchWithRetries(I, A, g) {\n for (let C = 0; C < A; C++) try {\n let Q = await fetch(I, g);\n if (Q.ok || Q.status === 403) return Q;\n await uA(500);\n } catch {\n C < A && (await uA(500));\n }\n throw new Error(`Fetch failed after ${A} retries`);\n }\n};\nvar BI = \"1.4.9\";\nvar d = class d {\n constructor(I) {\n this.iOS = j(), this.beep = I.audio === void 0 ? !0 : I.audio, this.vibrate = I.vibration === void 0 ? !0 : I.vibration, this.busyBeeping = !1;\n }\n static warmupAudio() {\n d.audio === void 0 && (d.audio = new Audio(d.BEEP_BASE64));\n }\n feedback() {\n return new Promise((I, A) => {\n this.vibrate && this.doVibrate(), this.beep ? this.doBeep().then(() => I()).catch(g => A(g)) : I();\n });\n }\n doBeep() {\n if (!this.beep || this.busyBeeping) return Promise.resolve();\n let I;\n return this.iOS && d.audio !== void 0 ? (d.audio.src = d.BEEP_BASE64, d.audio.currentTime = 0, I = d.audio.play()) : I = new Audio(d.BEEP_BASE64).play(), I.then(() => {\n this.busyBeeping = !1;\n }).catch(() => {\n this.busyBeeping = !1;\n });\n }\n doVibrate() {\n !window || !window.navigator || !window.navigator.vibrate || window.navigator.vibrate(d.VIBRATE_DURATION_MS);\n }\n};\nd.BEEP_BASE64 = \"data:audio/mp3;base64,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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/+5LA/4AAAAEsAAAAAAAAJYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//uSwP+AAAABLAAAAAAAACWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7ksD/gAAAASwAAAAAAAAlgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\", d.VIBRATE_DURATION_MS = 200;\nvar V = d;\nvar cA = class {\n constructor() {\n this.supportsWASM = this.isWASMSupported(), this.supportsWASMSIMD = this.isWASMSIMDSupported(), this.supportsWebGL2 = this.isWebGL2Supported(), this.supportsWebGL = this.isWebGLSupported(), this.supportsGetUserMedia = this.isGetUserMediaSupported(), this.supportsOffscreenCanvas = this.isOffscreenCanvasSupported(), this.supportsRVF = this.isRequestVideoFrameCallbackSupported();\n }\n isWASMSupported() {\n try {\n if (typeof WebAssembly == \"object\" && typeof WebAssembly.instantiate == \"function\") {\n let I = new WebAssembly.Module(Uint8Array.of(0, 97, 115, 109, 1, 0, 0, 0));\n if (I instanceof WebAssembly.Module) return new WebAssembly.Instance(I) instanceof WebAssembly.Instance;\n }\n } catch {}\n return !1;\n }\n isWASMSIMDSupported() {\n try {\n if (typeof WebAssembly == \"object\" && typeof WebAssembly.validate == \"function\") return WebAssembly.validate(new Uint8Array([0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3, 2, 1, 0, 10, 10, 1, 8, 0, 65, 0, 253, 15, 253, 98, 11]));\n } catch {}\n return !1;\n }\n isWebGL2Supported() {\n return document.createElement(\"canvas\").getContext(\"webgl2\") !== null;\n }\n isWebGLSupported() {\n let I = document.createElement(\"canvas\");\n return (I.getContext(\"webgl\") || I.getContext(\"experimental-webgl\")) !== null;\n }\n isGetUserMediaSupported() {\n return navigator.mediaDevices && typeof navigator.mediaDevices.getUserMedia == \"function\";\n }\n isOffscreenCanvasSupported() {\n return HTMLCanvasElement.prototype.transferControlToOffscreen ? new OffscreenCanvas(16, 16).getContext(\"webgl\") !== null : !1;\n }\n isRequestVideoFrameCallbackSupported() {\n return \"requestVideoFrameCallback\" in HTMLVideoElement.prototype;\n }\n};\nvar EI = qI(QI(), 1);\nfunction iI() {\n return (0, EI.default)().then(E => {\n let I = {\n strich_version: E.cwrap(\"strich_version\", \"string\", []),\n strich_init: E.cwrap(\"strich_init\", \"number\", [\"string\", \"string\", \"number\"]),\n strich_set_debug: E.cwrap(\"strich_set_debug\", null, [\"number\"]),\n strich_engine_init: E.cwrap(\"strich_engine_init\", \"number\", [\"string\"]),\n strich_engine_process_frame: E.cwrap(\"strich_engine_process_frame\", \"number\", [\"number\", \"number\", \"number\", \"number\", \"number\", \"number\", \"number\"]),\n strich_engine_destroy: E.cwrap(\"strich_engine_destroy\", null, []),\n strich_engine_get_number_of_results: E.cwrap(\"strich_engine_get_number_of_results\", \"number\", []),\n strich_engine_get_result_data: E.cwrap(\"strich_engine_get_result_data\", \"string\", [\"number\"]),\n strich_engine_get_result_data_len: E.cwrap(\"strich_engine_get_result_data_len\", \"number\", [\"number\"]),\n strich_engine_get_result_raw_data: E.cwrap(\"strich_engine_get_result_raw_data\", \"number\", [\"number\"]),\n strich_engine_get_result_type: E.cwrap(\"strich_engine_get_result_type\", \"string\", [\"number\"]),\n strich_engine_get_result_supplemental_data: E.cwrap(\"strich_engine_get_result_supplemental_data\", \"string\", [\"number\"]),\n strich_engine_get_quad_p1_x: E.cwrap(\"strich_engine_get_quad_p1_x\", \"number\", [\"number\"]),\n strich_engine_get_quad_p1_y: E.cwrap(\"strich_engine_get_quad_p1_y\", \"number\", [\"number\"]),\n strich_engine_get_quad_p2_x: E.cwrap(\"strich_engine_get_quad_p2_x\", \"number\", [\"number\"]),\n strich_engine_get_quad_p2_y: E.cwrap(\"strich_engine_get_quad_p2_y\", \"number\", [\"number\"]),\n strich_engine_get_quad_p3_x: E.cwrap(\"strich_engine_get_quad_p3_x\", \"number\", [\"number\"]),\n strich_engine_get_quad_p3_y: E.cwrap(\"strich_engine_get_quad_p3_y\", \"number\", [\"number\"]),\n strich_engine_get_quad_p4_x: E.cwrap(\"strich_engine_get_quad_p4_x\", \"number\", [\"number\"]),\n strich_engine_get_quad_p4_y: E.cwrap(\"strich_engine_get_quad_p4_y\", \"number\", [\"number\"]),\n strich_engine_get_symbology_identifier: E.cwrap(\"strich_engine_get_symbology_identifier\", \"string\", [\"number\"]),\n strich_engine_get_debug_output: E.cwrap(\"strich_engine_get_debug_output\", \"string\", []),\n strich_engine_get_status_message: E.cwrap(\"strich_engine_get_status_message\", \"string\", []),\n strich_engine_create_buffer: E.cwrap(\"strich_engine_create_buffer\", \"number\", [\"number\", \"number\", \"number\"]),\n strich_engine_destroy_buffer: E.cwrap(\"strich_engine_destroy_buffer\", null, [\"number\"]),\n strich_engine_get_exception_message: E.cwrap(\"strich_engine_get_exception_message\", \"string\", [\"number\"]),\n lsan_leak_check: E.cwrap(\"lsan_leak_check\", null, []),\n mem_used: E.cwrap(\"mem_used\", \"number\", []),\n Module: E\n };\n for (let A of Object.keys(I)) if (I[A] === null) throw B.internalErrorWithDetail(`WASM API binding failed (missing key: ${A})`);\n return I;\n }).catch(E => {\n throw E instanceof B ? E : B.internalErrorWithCause(E);\n });\n}\nvar n = class n {\n static version() {\n return BI;\n }\n static isInitialized() {\n return n._initialized;\n }\n static initialize(I) {\n return n.browserCapabilities = new cA(), window.isSecureContext ? (y.setLanguageFromNavigator(navigator.language), iI().then(A => {\n n.api = A, n._debug && n.dumpMemoryUsage(\"initial\");\n let g = window.location.href.split(\"?\")[0];\n return new rA(A, b.getDeviceId(), g, window.navigator.userAgent).verify(I).then(Q => (n.deviceId = b.getDeviceId(), n.license = Q, n._initialized = !0, j() && window.addEventListener(\"touchstart\", this._touchEventListener, {\n passive: !0\n }), Promise.resolve()));\n }).catch(A => (n._initialized = !1, Promise.reject(A)))) : Promise.reject(new B(\"error.originNotSecure\"));\n }\n static setCustomId(I) {\n n.customId = I;\n }\n static setLanguage(I) {\n y.setLanguageFromNavigator(I);\n }\n static hasCameraDevice() {\n return navigator.mediaDevices && navigator.mediaDevices.enumerateDevices ? navigator.mediaDevices.enumerateDevices().then(I => I && I.filter(A => A.kind === \"videoinput\").length > 0).catch(I => {\n throw B.fromGetUserMediaError(I);\n }) : Promise.reject(new B(\"error.requirementsNotFulfilled\"));\n }\n static dumpMemoryUsage(I) {\n if (!n.api || !n._debug) return;\n let A = n.api.Module.HEAP8.length,\n g = n.api.mem_used(),\n C = g - this.lastUsedMem;\n console.debug(`[${I}] wasm mem = ${A}, used = ${g} (\\u0394=${C})`), this.lastUsedMem = g;\n }\n};\nn._initialized = !1, n._debug = !1, n.api = null, n.lastUsedMem = 0, n._touchEventListener = () => {\n V.warmupAudio(), window.removeEventListener(\"touchstart\", n._touchEventListener);\n};\nvar o = n;\nvar l = `#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nattribute vec2 a_position;attribute vec2 a_tex_coord;varying vec2 v_tex_coord;void main(){v_tex_coord=a_tex_coord;gl_Position=vec4(a_position.xy,0,1.0);}`;\nvar oI = `#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec2 v_tex_coord;uniform sampler2D u_texture;float luminance(vec4 color){return 0.3*color.x+0.59*color.y+0.11*color.z;}float chroma(vec4 color){float max_rgb=max(color.r,color.g);max_rgb=max(max_rgb,color.b);float min_rgb=min(color.r,color.g);min_rgb=min(min_rgb,color.b);return max_rgb-min_rgb;}void main(){vec4 color=texture2D(u_texture,v_tex_coord);float luminance=luminance(color);float c=chroma(color);gl_FragColor=vec4(luminance,luminance,luminance,c);}`;\nvar eI = `#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec2 v_tex_coord;uniform vec2 u_step;uniform sampler2D u_texture;void main(){vec2 step=u_step;vec2 uv=v_tex_coord;float x1=texture2D(u_texture,uv+vec2(-2.0*step.x,0.0)).x;float x2=texture2D(u_texture,uv+vec2(-step.x,0.0)).x;vec4 color=texture2D(u_texture,uv);float x3=color.r;float chroma=color.a;float x4=texture2D(u_texture,uv+vec2(step.x,0.0)).x;float x5=texture2D(u_texture,uv+vec2(2.0*step.x,0.0)).x;float I_k=x1*0.109604+x2*0.276691+x3*0.000000+x4*-0.276691+x5*-0.109604;float I_d=x1*0.037659+x2*0.249153+x3*0.426375+x4*0.249153+x5*0.037659;gl_FragColor=vec4(I_k,I_d,0.0,chroma);}`;\nvar tI = `#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec2 v_tex_coord;uniform vec2 u_step;uniform sampler2D u_texture;void main(){vec2 step=u_step;vec2 uv=v_tex_coord;vec2 y1=texture2D(u_texture,uv+vec2(0.0,-2.0*step.y)).rg;vec2 y2=texture2D(u_texture,uv+vec2(0.0,-step.y)).rg;vec4 color=texture2D(u_texture,uv);vec2 y3=color.rg;float chroma=color.a;vec2 y4=texture2D(u_texture,uv+vec2(0.0,step.y)).rg;vec2 y5=texture2D(u_texture,uv+vec2(0.0,2.0*step.y)).rg;float I_x=y1.r*0.037659+y2.r*0.249153+y3.r*0.426375+y4.r*0.249153+y5.r*0.037659;float I_y=y1.g*0.109604+y2.g*0.276691+y3.g*0.000000+y4.g*-0.276691+y5.g*-0.109604;gl_FragColor=vec4(I_x*I_x,I_y*I_y,I_x*I_y,chroma);}`;\nvar DI = `#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec2 v_tex_coord;uniform sampler2D u_texture;uniform vec2 u_step;uniform float u_chroma_threshold;void main(){vec2 uv=v_tex_coord;float hstep=u_step.x;float vstep=u_step.y;vec4 sum=vec4(0.0);sum+=texture2D(u_texture,vec2(uv.x-3.0*hstep,uv.y-3.0*vstep))*0.071303;sum+=texture2D(u_texture,vec2(uv.x-2.0*hstep,uv.y-2.0*vstep))*0.131514;sum+=texture2D(u_texture,vec2(uv.x-1.0*hstep,uv.y-1.0*vstep))*0.189879;vec4 color=texture2D(u_texture,uv);float chroma=color.a;sum+=color*0.214607;sum+=texture2D(u_texture,vec2(uv.x+1.0*hstep,uv.y+1.0*vstep))*0.189879;sum+=texture2D(u_texture,vec2(uv.x+2.0*hstep,uv.y-2.0*vstep))*0.131514;sum+=texture2D(u_texture,vec2(uv.x+3.0*hstep,uv.y-3.0*vstep))*0.071303;float A=1.0-step(u_chroma_threshold,chroma);gl_FragColor=A*sum;}`;\nvar aI = `#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec2 v_tex_coord;uniform sampler2D u_texture;void main(){vec4 struct_matrix=texture2D(u_texture,v_tex_coord);float Cxx=struct_matrix.r;float Cyy=struct_matrix.g;float Cxy=struct_matrix.b;float denom=(Cxx+Cyy)*(Cxx+Cyy)+0.001;float m2=4.0*(Cxx*Cyy-Cxy*Cxy)/denom;gl_FragColor=vec4(0.0,m2,0.0,1.0);}`;\nvar sI = `#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nvarying vec2 v_tex_coord;uniform sampler2D u_texture;void main(){vec4 struct_matrix=texture2D(u_texture,v_tex_coord);float Cxx=struct_matrix.r;float Cyy=struct_matrix.g;float Cxy=struct_matrix.b;float a=Cxx+Cyy;float b=Cxx-Cyy;float denom=(Cxx+Cyy)*(Cxx+Cyy)+0.001;float m1=((Cxx-Cyy)*(Cxx-Cyy)+4.0*Cxy*Cxy)/denom;gl_FragColor=vec4(m1,0.0,0.0,1.0);}`;\nvar rI = `#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nuniform sampler2D u_texture;varying vec2 v_tex_coord;uniform vec2 u_step;const int size=16;void main(){vec2 uv=v_tex_coord;float size_f=float(size);vec4 sum=vec4(0.0);vec2 coord=uv+vec2(-size_f-0.5,-size_f-0.5)*u_step;vec2 two_step=u_step*2.0;for(int i=0;i= C ? this.scaleFactor = g : this.scaleFactor = C, this.yOffset = I.height * this.scaleFactor - A.height, this.xOffset = I.width * this.scaleFactor - A.width;\n }\n projectPoint(I) {\n return k(Math.trunc(I.x * this.scaleFactor - this.xOffset / 2), Math.trunc(I.y * this.scaleFactor - this.yOffset / 2));\n }\n projectRect(I) {\n let A = this.projectPoint(I.origin),\n g = Y(Math.trunc(I.size.width * this.scaleFactor), Math.trunc(I.size.height * this.scaleFactor));\n return m(A, g);\n }\n unprojectPoint(I) {\n return k(Math.trunc((I.x + this.xOffset / 2) / this.scaleFactor), Math.trunc((I.y + this.yOffset / 2) / this.scaleFactor));\n }\n unprojectRect(I) {\n let A = this.unprojectPoint(I.origin),\n g = Y(Math.trunc(I.size.width / this.scaleFactor), Math.trunc(I.size.height / this.scaleFactor));\n return m(A, g);\n }\n};\nfunction SA(E) {\n if (o.browserCapabilities.supportsOffscreenCanvas === !0) return new OffscreenCanvas(E.width, E.height);\n {\n let I = document.createElement(\"canvas\");\n return I.style.visibility = \"hidden\", I.width = E.width, I.height = E.height, I;\n }\n}\nvar X = class X {\n constructor(I, A, g, C) {\n this.config = {}, this.config.regionOfInterest = I?.regionOfInterest || A, this.frameSource = g, this.viewportSize = C, this.config.chromaReject = I?.chromaReject === !0, this.chromaRejectThreshold = this.config.chromaReject ? .25 : 1;\n }\n initialize() {\n return new Promise((I, A) => {\n try {\n this.imageSize = this.frameSource.getImageSize(), this.calculateRegionOfInterest(this.imageSize), o._debug && console.debug(\"GPU locator image RoE:\", this.roe);\n let g = SA(this.roe.size);\n if (!g) {\n A(B.internalErrorWithDetail(\"Failed to create canvas\"));\n return;\n }\n g.addEventListener(\"webglcontextlost\", C => {\n o._debug && console.debug(\"WebGL1Locator event: WebGL context was lost\"), this.gl !== void 0 ? C.preventDefault() : o._debug && console.debug(\"WebGL context loss (after destroy)\");\n }, !1), g.addEventListener(\"webglcontextrestored\", () => {\n o._debug && console.debug(\"WebGL1Locator reinitializing after WebGL context loss\"), this.gl = this.initWebGL(), this.linkFrameSource(this.gl);\n }), this.canvas = g, this.gl = this.initWebGL(), this.linkFrameSource(this.gl), I(this);\n } catch (g) {\n A(g instanceof B ? g : B.internalErrorWithCause(g));\n }\n });\n }\n destroy() {\n if (this.gl === void 0) return;\n let I = this.gl;\n try {\n for (let A of [this.combineMaps, this.boxFilter, this.edgeness, this.cornerness, this.windowSum, this.derivativeSecondPass, this.derivativeFirstPass, this.lumAndChroma]) I.deleteProgram(A);\n for (let A of [this.bufA, this.bufB, this.bufC, this.bufLum]) I.deleteFramebuffer(A);\n for (let A of [this.texCoordBuffer, this.videoTexCoordBuffer, this.posBuffer]) I.deleteBuffer(A);\n for (let A of [this.cameraTexture, this.textureA, this.textureB, this.textureC, this.textureLum]) I.deleteTexture(A);\n } catch (A) {\n console.warn(`Ignoring error while deleting WebGL resources: ${A}`);\n } finally {\n let A = this.gl;\n this.gl = void 0;\n let g = A.getExtension(\"WEBGL_lose_context\");\n g && g.loseContext();\n }\n this.canvas instanceof HTMLCanvasElement && this.canvas.remove(), o._debug && console.debug(\"Destroyed WebGL1Locator and associated WebGL resources\");\n }\n getRegionOfInterest() {\n return this.roe;\n }\n createPositionBuffer(I) {\n let A = new Float32Array([1, 1, -1, 1, 1, -1, -1, -1]),\n g = I.createBuffer();\n if (!g) throw B.internalErrorWithDetail(`Unable to create WebGL pos buffer: ${I.getError()}`);\n return I.bindBuffer(I.ARRAY_BUFFER, g), I.bufferData(I.ARRAY_BUFFER, A, I.STATIC_DRAW), g;\n }\n createTexCoordBuffer(I) {\n let A = new Float32Array([1, 1, 0, 1, 1, 0, 0, 0]),\n g = I.createBuffer();\n if (!g) throw B.internalErrorWithDetail(`Unable to create WebGL tex coord buffer: ${I.getError()}`);\n return I.bindBuffer(I.ARRAY_BUFFER, g), I.bufferData(I.ARRAY_BUFFER, A, I.STATIC_DRAW), g;\n }\n createVideoTexCoordBuffer(I) {\n let A = new Float32Array([this.videoTextureCoords.origin.x + this.videoTextureCoords.size.width, this.videoTextureCoords.origin.y + this.videoTextureCoords.size.height, this.videoTextureCoords.origin.x, this.videoTextureCoords.origin.y + this.videoTextureCoords.size.height, this.videoTextureCoords.origin.x + this.videoTextureCoords.size.width, this.videoTextureCoords.origin.y, this.videoTextureCoords.origin.x, this.videoTextureCoords.origin.y]),\n g = I.createBuffer();\n if (!g) throw B.internalErrorWithDetail(`Unable to create WebGL tex coord buffer: ${I.getError()}`);\n return I.bindBuffer(I.ARRAY_BUFFER, g), I.bufferData(I.ARRAY_BUFFER, A, I.STATIC_DRAW), g;\n }\n setBuffersForVideoTexture(I, A) {\n I.bindBuffer(I.ARRAY_BUFFER, this.posBuffer);\n let g = I.getAttribLocation(A, \"a_position\");\n if (g === -1) throw B.internalErrorWithDetail(\"Position attribute location not found\");\n I.vertexAttribPointer(g, 2, I.FLOAT, !1, 0, 0), I.enableVertexAttribArray(g), I.bindBuffer(I.ARRAY_BUFFER, this.videoTexCoordBuffer);\n let C = I.getAttribLocation(A, \"a_tex_coord\");\n if (C === -1) throw B.internalErrorWithDetail(\"Texture coordinate attribute location not found\");\n I.vertexAttribPointer(C, 2, I.FLOAT, !1, 0, 0), I.enableVertexAttribArray(C);\n }\n setBuffers(I, A) {\n I.bindBuffer(I.ARRAY_BUFFER, this.posBuffer);\n let g = I.getAttribLocation(A, \"a_position\");\n if (g === -1) throw B.internalErrorWithDetail(\"Position attribute location not found\");\n I.vertexAttribPointer(g, 2, I.FLOAT, !1, 0, 0), I.enableVertexAttribArray(g), I.bindBuffer(I.ARRAY_BUFFER, this.texCoordBuffer);\n let C = I.getAttribLocation(A, \"a_tex_coord\");\n if (C === -1) throw B.internalErrorWithDetail(\"Texture coordinate attribute location not found\");\n I.vertexAttribPointer(C, 2, I.FLOAT, !1, 0, 0), I.enableVertexAttribArray(C);\n }\n setTextures(I, A, g, C, Q) {\n let i = I.getUniformLocation(A, \"u_texture\");\n if (i === -1) throw B.internalErrorWithDetail(`Uniform location for input texture ${g} not found`);\n if (I.uniform1i(i, g), C !== void 0) {\n let t = I.getUniformLocation(A, \"u_texture1\");\n if (t === -1) throw B.internalErrorWithDetail(`Uniform location for input texture ${C} not found`);\n I.uniform1i(t, C);\n }\n if (Q !== void 0) {\n let t = I.getUniformLocation(A, \"u_texture2\");\n if (t === -1) throw B.internalErrorWithDetail(`Uniform location for input texture ${Q} not found`);\n I.uniform1i(t, Q);\n }\n }\n initWebGL() {\n let I = this.canvas,\n A = I.getContext(\"webgl\", {});\n if (!A) throw B.internalErrorWithDetail(\"Unable to obtain WebGL context\");\n this.posBuffer = this.createPositionBuffer(A), this.videoTexCoordBuffer = this.createVideoTexCoordBuffer(A), this.texCoordBuffer = this.createTexCoordBuffer(A), A.viewport(0, 0, A.drawingBufferWidth, A.drawingBufferHeight), this.textureA = this.createAndSetupTexture(A), A.texImage2D(A.TEXTURE_2D, 0, A.RGBA, I.width, I.height, 0, A.RGBA, A.UNSIGNED_BYTE, null);\n let g = A.createFramebuffer();\n if (!g) throw B.internalErrorWithDetail(\"Failed to create WebGL framebuffer\");\n this.bufA = g, A.bindFramebuffer(A.FRAMEBUFFER, this.bufA), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureA, 0), this.textureB = this.createAndSetupTexture(A), A.texImage2D(A.TEXTURE_2D, 0, A.RGBA, I.width, I.height, 0, A.RGBA, A.UNSIGNED_BYTE, null);\n let C = A.createFramebuffer();\n if (!C) throw B.internalErrorWithDetail(\"Failed to create WebGL framebuffer\");\n this.bufB = C, A.bindFramebuffer(A.FRAMEBUFFER, this.bufB), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureA, 0), this.textureC = this.createAndSetupTexture(A), A.texImage2D(A.TEXTURE_2D, 0, A.RGBA, I.width, I.height, 0, A.RGBA, A.UNSIGNED_BYTE, null);\n let Q = A.createFramebuffer();\n if (!Q) throw B.internalErrorWithDetail(\"Failed to create WebGL framebuffer\");\n this.bufC = Q, A.bindFramebuffer(A.FRAMEBUFFER, this.bufC), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureC, 0), this.textureLum = this.createAndSetupTexture(A), A.texImage2D(A.TEXTURE_2D, 0, A.RGBA, I.width, I.height, 0, A.RGBA, A.UNSIGNED_BYTE, null);\n let i = A.createFramebuffer();\n if (!i) throw B.internalErrorWithDetail(\"Failed to create WebGL framebuffer\");\n this.bufLum = i, A.bindFramebuffer(A.FRAMEBUFFER, this.bufLum), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureLum, 0), this.lumAndChroma = this.createProgram(A, l, oI), A.useProgram(this.lumAndChroma), this.setBuffers(A, this.lumAndChroma), this.setTextures(A, this.lumAndChroma, 0), this.derivativeFirstPass = this.createProgram(A, l, eI), A.useProgram(this.derivativeFirstPass), this.setBuffers(A, this.derivativeFirstPass), this.setTextures(A, this.derivativeFirstPass, 0);\n let t = A.getUniformLocation(this.derivativeFirstPass, \"u_step\");\n if (!t) throw B.internalErrorWithDetail(\"Failed to get uniform location u_step\");\n if (A.uniform2fv(t, [1 / this.canvas.width, 1 / this.canvas.height]), this.derivativeSecondPass = this.createProgram(A, l, tI), A.useProgram(this.derivativeSecondPass), this.setBuffers(A, this.derivativeSecondPass), this.setTextures(A, this.derivativeSecondPass, 0), t = A.getUniformLocation(this.derivativeSecondPass, \"u_step\"), !t) throw B.internalErrorWithDetail(\"Failed to get uniform location u_step\");\n if (A.uniform2fv(t, [1 / this.canvas.width, 1 / this.canvas.height]), this.windowSum = this.createProgram(A, l, DI), A.useProgram(this.windowSum), this.setBuffers(A, this.windowSum), this.setTextures(A, this.windowSum, 0), t = A.getUniformLocation(this.windowSum, \"u_step\"), !t) throw B.internalErrorWithDetail(\"Failed to get uniform location u_step\");\n if (this.windowSumStep = t, A.uniform1f(A.getUniformLocation(this.windowSum, \"u_chroma_threshold\"), this.chromaRejectThreshold), this.edgeness = this.createProgram(A, l, sI), A.useProgram(this.edgeness), this.setBuffers(A, this.edgeness), this.setTextures(A, this.edgeness, 0), this.cornerness = this.createProgram(A, l, aI), A.useProgram(this.cornerness), this.setBuffers(A, this.cornerness), this.setTextures(A, this.cornerness, 0), this.boxFilter = this.createProgram(A, l, rI), A.useProgram(this.boxFilter), this.setBuffers(A, this.boxFilter), this.setTextures(A, this.boxFilter, 0), t = A.getUniformLocation(this.boxFilter, \"u_step\"), !t) throw B.internalErrorWithDetail(\"Failed to get uniform location u_step\");\n return this.boxFilterStep = t, this.combineMaps = this.createProgram(A, l, cI), A.useProgram(this.combineMaps), this.setBuffers(A, this.combineMaps), this.setTextures(A, this.combineMaps, 0, 1, 2), A.uniform2fv(A.getUniformLocation(this.combineMaps, \"u_w1\"), X.S1_WEIGHTS), A.uniform2fv(A.getUniformLocation(this.combineMaps, \"u_w2\"), X.S2_WEIGHTS), hA(A), A;\n }\n locate(I) {\n let A = this.gl;\n if (A === void 0) return o._debug && console.debug(\"WebGL1 locator invoked, but associated GL context already destroyed\"), Promise.resolve();\n A.useProgram(this.lumAndChroma), this.setBuffersForVideoTexture(A, this.lumAndChroma), A.bindFramebuffer(A.FRAMEBUFFER, this.bufLum), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureLum, 0), A.activeTexture(A.TEXTURE0), A.bindTexture(A.TEXTURE_2D, this.cameraTexture), A.texImage2D(A.TEXTURE_2D, 0, A.RGBA, A.RGBA, A.UNSIGNED_BYTE, this.texImageSource), this.render(A);\n let g = this.canvas,\n C = [1 / g.width, 0],\n Q = [0, 1 / g.height];\n return A.bindFramebuffer(A.FRAMEBUFFER, this.bufB), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureB, 0), A.useProgram(this.derivativeFirstPass), this.setBuffers(A, this.derivativeFirstPass), A.bindTexture(A.TEXTURE_2D, this.textureLum), this.render(A), A.bindFramebuffer(A.FRAMEBUFFER, this.bufC), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureC, 0), A.useProgram(this.derivativeSecondPass), A.bindTexture(A.TEXTURE_2D, this.textureB), this.render(A), A.bindFramebuffer(A.FRAMEBUFFER, this.bufB), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureB, 0), A.useProgram(this.windowSum), A.bindTexture(A.TEXTURE_2D, this.textureC), A.uniform2fv(this.windowSumStep, C), this.render(A), A.bindFramebuffer(A.FRAMEBUFFER, this.bufC), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureC, 0), A.bindTexture(A.TEXTURE_2D, this.textureB), A.uniform2fv(this.windowSumStep, Q), this.render(A), A.bindFramebuffer(A.FRAMEBUFFER, this.bufA), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureA, 0), A.useProgram(this.edgeness), A.bindTexture(A.TEXTURE_2D, this.textureC), this.render(A), A.bindFramebuffer(A.FRAMEBUFFER, this.bufB), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureB, 0), A.useProgram(this.cornerness), A.bindTexture(A.TEXTURE_2D, this.textureC), this.render(A), A.bindFramebuffer(A.FRAMEBUFFER, this.bufC), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureC, 0), A.useProgram(this.boxFilter), A.bindTexture(A.TEXTURE_2D, this.textureA), A.uniform2fv(this.boxFilterStep, C), this.render(A), A.bindFramebuffer(A.FRAMEBUFFER, this.bufA), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureA, 0), A.bindTexture(A.TEXTURE_2D, this.textureC), A.uniform2fv(this.boxFilterStep, Q), this.render(A), A.bindFramebuffer(A.FRAMEBUFFER, this.bufC), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureC, 0), A.useProgram(this.boxFilter), A.bindTexture(A.TEXTURE_2D, this.textureB), A.uniform2fv(this.boxFilterStep, C), this.render(A), A.bindFramebuffer(A.FRAMEBUFFER, this.bufB), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureB, 0), A.bindTexture(A.TEXTURE_2D, this.textureC), A.uniform2fv(this.boxFilterStep, Q), this.render(A), A.bindFramebuffer(A.FRAMEBUFFER, this.bufC), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureC, 0), A.useProgram(this.combineMaps), A.activeTexture(A.TEXTURE0), A.bindTexture(A.TEXTURE_2D, this.textureA), A.activeTexture(A.TEXTURE1), A.bindTexture(A.TEXTURE_2D, this.textureB), A.activeTexture(A.TEXTURE2), A.bindTexture(A.TEXTURE_2D, this.textureLum), this.render(A), A.readPixels(0, 0, this.roe.size.width, this.roe.size.height, A.RGBA, A.UNSIGNED_BYTE, I.buffer), Promise.resolve();\n }\n createAndSetupTexture(I) {\n let A = I.createTexture();\n if (!A) throw B.internalErrorWithDetail(\"Failed to create camera input texture: \" + I.getError());\n return I.bindTexture(I.TEXTURE_2D, A), I.texParameteri(I.TEXTURE_2D, I.TEXTURE_WRAP_S, I.CLAMP_TO_EDGE), I.texParameteri(I.TEXTURE_2D, I.TEXTURE_WRAP_T, I.CLAMP_TO_EDGE), I.texParameteri(I.TEXTURE_2D, I.TEXTURE_MIN_FILTER, I.LINEAR), I.texParameteri(I.TEXTURE_2D, I.TEXTURE_MAG_FILTER, I.LINEAR), A;\n }\n createProgram(I, A, g) {\n let C = I.createProgram();\n if (!C) throw B.internalErrorWithDetail(\"Failed to create WebGL program\");\n let Q = I.createShader(WebGLRenderingContext.FRAGMENT_SHADER);\n if (!Q) throw B.internalErrorWithDetail(\"Failed to create WebGL fragment shader\");\n if (I.shaderSource(Q, g), I.compileShader(Q), !I.getShaderParameter(Q, I.COMPILE_STATUS)) throw B.internalErrorWithDetail(`Failed to compile WebGL shader:\n` + I.getShaderInfoLog(Q));\n let i = I.createShader(WebGLRenderingContext.VERTEX_SHADER);\n if (!i) throw B.internalErrorWithDetail(\"Failed to create WebGL vertex shader\");\n if (I.shaderSource(i, A), I.compileShader(i), !I.getShaderParameter(i, I.COMPILE_STATUS)) throw B.internalErrorWithDetail(`Failed to compile Shader:\n` + I.getShaderInfoLog(i));\n if (I.attachShader(C, Q), I.attachShader(C, i), I.linkProgram(C), I.validateProgram(C), !I.getProgramParameter(C, I.LINK_STATUS)) {\n let t = I.getProgramInfoLog(C);\n throw B.internalErrorWithDetail(`Failed to compile WebGL program:\n` + t);\n }\n return C;\n }\n render(I) {\n I.drawArrays(I.TRIANGLE_STRIP, 0, 4);\n }\n linkFrameSource(I) {\n this.texImageSource = this.frameSource.get(), this.cameraTexture = this.createAndSetupTexture(I), I.activeTexture(I.TEXTURE0), I.texImage2D(I.TEXTURE_2D, 0, I.RGBA, I.RGBA, I.UNSIGNED_BYTE, this.texImageSource);\n }\n getRegionOfInterestSpec() {\n return this.config.regionOfInterest;\n }\n calculateRegionOfInterest(I) {\n let A = this.config.regionOfInterest;\n if (!A) throw B.configurationErrorWithDetail(\"Region of interest is undefined\");\n let g = P(this.viewportSize, A),\n C = new T(I, this.viewportSize);\n this.roe = C.unprojectRect(g);\n let Q = k(this.roe.origin.x / I.width, this.roe.origin.y / I.height),\n i = Y(this.roe.size.width / this.imageSize.width, this.roe.size.height / this.imageSize.height);\n this.videoTextureCoords = m(Q, i);\n }\n};\nX.S1_WEIGHTS = [2, -1], X.S2_WEIGHTS = [.25, 4];\nvar CA = X;\nvar p = `#version 300 es\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nin vec2 a_position;in vec2 a_tex_coord;out vec2 v_tex_coord;void main(){v_tex_coord=a_tex_coord;gl_Position=vec4(a_position.xy,0,1.0);}`;\nvar wI = `#version 300 es\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nin vec2 v_tex_coord;uniform sampler2D u_texture;out vec4 outPixel;float luminance(vec4 color){return 0.3*color.x+0.59*color.y+0.11*color.z;}float chroma(vec4 color){float max_rgb=max(color.r,color.g);max_rgb=max(max_rgb,color.b);float min_rgb=min(color.r,color.g);min_rgb=min(min_rgb,color.b);return max_rgb-min_rgb;}void main(){vec4 color=texture(u_texture,v_tex_coord);float luminance=luminance(color);float c=chroma(color);outPixel=vec4(luminance,luminance,luminance,c);}`;\nvar hI = `#version 300 es\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nin vec2 v_tex_coord;uniform vec2 u_step;uniform sampler2D u_texture;out vec4 outPixel;void main(){vec2 step=u_step;vec2 uv=v_tex_coord;float x1=texture(u_texture,uv+vec2(-2.0*step.x,0.0)).x;float x2=texture(u_texture,uv+vec2(-step.x,0.0)).x;vec4 color=texture(u_texture,uv);float x3=color.r;float chroma=color.a;float x4=texture(u_texture,uv+vec2(step.x,0.0)).x;float x5=texture(u_texture,uv+vec2(2.0*step.x,0.0)).x;float I_k=x1*0.109604+x2*0.276691+x3*0.000000+x4*-0.276691+x5*-0.109604;float I_d=x1*0.037659+x2*0.249153+x3*0.426375+x4*0.249153+x5*0.037659;outPixel=vec4(I_k,I_d,0.0,chroma);}`;\nvar SI = `#version 300 es\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nin vec2 v_tex_coord;uniform vec2 u_step;uniform sampler2D u_texture;out vec4 outPixel;void main(){vec2 step=u_step;vec2 uv=v_tex_coord;vec2 y1=texture(u_texture,uv+vec2(0.0,-2.0*step.y)).rg;vec2 y2=texture(u_texture,uv+vec2(0.0,-step.y)).rg;vec4 color=texture(u_texture,uv);vec2 y3=color.rg;float chroma=color.a;vec2 y4=texture(u_texture,uv+vec2(0.0,step.y)).rg;vec2 y5=texture(u_texture,uv+vec2(0.0,2.0*step.y)).rg;float I_x=y1.r*0.037659+y2.r*0.249153+y3.r*0.426375+y4.r*0.249153+y5.r*0.037659;float I_y=y1.g*0.109604+y2.g*0.276691+y3.g*0.000000+y4.g*-0.276691+y5.g*-0.109604;outPixel=vec4(I_x*I_x,I_y*I_y,I_x*I_y,chroma);}`;\nvar RI = `#version 300 es\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nin vec2 v_tex_coord;uniform sampler2D u_texture;uniform vec2 u_step;uniform float u_chroma_threshold;out vec4 outPixel;void main(){vec2 uv=v_tex_coord;float hstep=u_step.x;float vstep=u_step.y;vec4 sum=vec4(0.0);sum+=texture(u_texture,vec2(uv.x-3.0*hstep,uv.y-3.0*vstep))*0.071303;sum+=texture(u_texture,vec2(uv.x-2.0*hstep,uv.y-2.0*vstep))*0.131514;sum+=texture(u_texture,vec2(uv.x-1.0*hstep,uv.y-1.0*vstep))*0.189879;vec4 color=texture(u_texture,uv);float chroma=color.a;sum+=color*0.214607;sum+=texture(u_texture,vec2(uv.x+1.0*hstep,uv.y+1.0*vstep))*0.189879;sum+=texture(u_texture,vec2(uv.x+2.0*hstep,uv.y-2.0*vstep))*0.131514;sum+=texture(u_texture,vec2(uv.x+3.0*hstep,uv.y-3.0*vstep))*0.071303;float A=1.0-step(u_chroma_threshold,chroma);outPixel=A*sum;}`;\nvar nI = `#version 300 es\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nin vec2 v_tex_coord;uniform sampler2D u_texture;out vec4 outPixel;void main(){vec4 struct_matrix=texture(u_texture,v_tex_coord);float Cxx=struct_matrix.r;float Cyy=struct_matrix.g;float Cxy=struct_matrix.b;float denom=(Cxx+Cyy)*(Cxx+Cyy)+0.001;float m2=4.0*(Cxx*Cyy-Cxy*Cxy)/denom;outPixel=vec4(0.0,m2,0.0,1.0);}`;\nvar FI = `#version 300 es\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nin vec2 v_tex_coord;uniform sampler2D u_texture;out vec4 outPixel;void main(){vec4 struct_matrix=texture(u_texture,v_tex_coord);float Cxx=struct_matrix.r;float Cyy=struct_matrix.g;float Cxy=struct_matrix.b;float a=Cxx+Cyy;float b=Cxx-Cyy;float denom=(Cxx+Cyy)*(Cxx+Cyy)+0.001;float m1=((Cxx-Cyy)*(Cxx-Cyy)+4.0*Cxy*Cxy)/denom;outPixel=vec4(m1,0.0,0.0,1.0);}`;\nvar GI = `#version 300 es\n#ifdef GL_FRAGMENT_PRECISION_HIGH\nprecision highp float;\n#else\nprecision mediump float;\n#endif\nin vec2 v_tex_coord;uniform sampler2D u_texture;uniform vec2 u_step;out vec4 outPixel;const int size=16;void main(){vec2 uv=v_tex_coord;float size_f=float(size);vec4 sum=vec4(0.0);vec2 coord=uv+vec2(-size_f-0.5,-size_f-0.5)*u_step;vec2 two_step=u_step*2.0;for(int i=0;i {\n try {\n this.imageSize = this.frameSource.getImageSize(), this.calculateRegionOfInterest(this.imageSize), o._debug && console.debug(\"GPU locator image RoE:\", this.roe);\n let g = SA(this.roe.size);\n if (!g) {\n A(B.internalErrorWithDetail(\"Failed to create canvas\"));\n return;\n }\n g.addEventListener(\"webglcontextlost\", C => {\n o._debug && console.debug(\"WebGL2Locator event: WebGL context was lost\"), this.gl !== void 0 ? C.preventDefault() : o._debug && console.debug(\"WebGL context loss (after destroy)\");\n }, !1), g.addEventListener(\"webglcontextrestored\", () => {\n o._debug && console.debug(\"WebGL2Locator reinitializing after WebGL context loss\"), this.gl = this.initWebGL(), this.linkFrameSource(this.gl);\n }), this.canvas = g, this.gl = this.initWebGL(), this.linkFrameSource(this.gl), I(this);\n } catch (g) {\n A(g instanceof B ? g : B.internalErrorWithCause(g));\n }\n });\n }\n destroy() {\n if (this.gl === void 0) return;\n let I = this.gl;\n try {\n for (let A of [this.combineMaps, this.boxFilter, this.edgeness, this.cornerness, this.windowSum, this.derivativeSecondPass, this.derivativeFirstPass, this.lumAndChroma]) I.deleteProgram(A);\n for (let A of [this.bufA, this.bufB, this.bufC, this.bufLum]) I.deleteFramebuffer(A);\n for (let A of [this.texCoordBuffer, this.videoTexCoordBuffer, this.posBuffer]) I.deleteBuffer(A);\n I.deleteBuffer(this.pixelPackBuf);\n for (let A of [this.cameraTexture, this.textureA, this.textureB, this.textureC, this.textureLum]) I.deleteTexture(A);\n } catch (A) {\n console.warn(`Ignoring error while deleting WebGL resources: ${A}`);\n } finally {\n let A = this.gl;\n this.gl = void 0;\n let g = A.getExtension(\"WEBGL_lose_context\");\n g && g.loseContext();\n }\n this.canvas instanceof HTMLCanvasElement && this.canvas.remove(), o._debug && console.debug(\"Destroyed WebGL2Locator and associated WebGL resources\");\n }\n getRegionOfInterest() {\n return this.roe;\n }\n createPixelPackBuffer(I, A) {\n let g = I.createBuffer();\n if (g === null) throw new B(\"Unable to allocated WebGL buffer\");\n return I.bindBuffer(I.PIXEL_PACK_BUFFER, g), I.bufferData(I.PIXEL_PACK_BUFFER, A, I.DYNAMIC_READ), I.bindBuffer(I.PIXEL_PACK_BUFFER, null), g;\n }\n createPositionBuffer(I) {\n let A = new Float32Array([1, 1, -1, 1, 1, -1, -1, -1]),\n g = I.createBuffer();\n if (!g) throw B.internalErrorWithDetail(`Unable to create WebGL pos buffer: ${I.getError()}`);\n return I.bindBuffer(I.ARRAY_BUFFER, g), I.bufferData(I.ARRAY_BUFFER, A, I.STATIC_DRAW), g;\n }\n createTexCoordBuffer(I) {\n let A = new Float32Array([1, 1, 0, 1, 1, 0, 0, 0]),\n g = I.createBuffer();\n if (!g) throw B.internalErrorWithDetail(`Unable to create WebGL tex coord buffer: ${I.getError()}`);\n return I.bindBuffer(I.ARRAY_BUFFER, g), I.bufferData(I.ARRAY_BUFFER, A, I.STATIC_DRAW), g;\n }\n createVideoTexCoordBuffer(I) {\n let A = new Float32Array([this.videoTextureCoords.origin.x + this.videoTextureCoords.size.width, this.videoTextureCoords.origin.y + this.videoTextureCoords.size.height, this.videoTextureCoords.origin.x, this.videoTextureCoords.origin.y + this.videoTextureCoords.size.height, this.videoTextureCoords.origin.x + this.videoTextureCoords.size.width, this.videoTextureCoords.origin.y, this.videoTextureCoords.origin.x, this.videoTextureCoords.origin.y]),\n g = I.createBuffer();\n if (!g) throw B.internalErrorWithDetail(`Unable to create WebGL tex coord buffer: ${I.getError()}`);\n return I.bindBuffer(I.ARRAY_BUFFER, g), I.bufferData(I.ARRAY_BUFFER, A, I.STATIC_DRAW), g;\n }\n setBuffersForVideoTexture(I, A) {\n I.bindBuffer(I.ARRAY_BUFFER, this.posBuffer);\n let g = I.getAttribLocation(A, \"a_position\");\n if (g === -1) throw B.internalErrorWithDetail(\"Position attribute location not found\");\n I.vertexAttribPointer(g, 2, I.FLOAT, !1, 0, 0), I.enableVertexAttribArray(g), I.bindBuffer(I.ARRAY_BUFFER, this.videoTexCoordBuffer);\n let C = I.getAttribLocation(A, \"a_tex_coord\");\n if (C === -1) throw B.internalErrorWithDetail(\"Texture coordinate attribute location not found\");\n I.vertexAttribPointer(C, 2, I.FLOAT, !1, 0, 0), I.enableVertexAttribArray(C);\n }\n setBuffers(I, A) {\n I.bindBuffer(I.ARRAY_BUFFER, this.posBuffer);\n let g = I.getAttribLocation(A, \"a_position\");\n if (g === -1) throw B.internalErrorWithDetail(\"Position attribute location not found\");\n I.vertexAttribPointer(g, 2, I.FLOAT, !1, 0, 0), I.enableVertexAttribArray(g), I.bindBuffer(I.ARRAY_BUFFER, this.texCoordBuffer);\n let C = I.getAttribLocation(A, \"a_tex_coord\");\n if (C === -1) throw B.internalErrorWithDetail(\"Texture coordinate attribute location not found\");\n I.vertexAttribPointer(C, 2, I.FLOAT, !1, 0, 0), I.enableVertexAttribArray(C);\n }\n setTextures(I, A, g, C, Q) {\n let i = I.getUniformLocation(A, \"u_texture\");\n if (i === -1) throw B.internalErrorWithDetail(`Uniform location for input texture ${g} not found`);\n if (I.uniform1i(i, g), C !== void 0) {\n let t = I.getUniformLocation(A, \"u_texture1\");\n if (t === -1) throw B.internalErrorWithDetail(`Uniform location for input texture ${C} not found`);\n I.uniform1i(t, C);\n }\n if (Q !== void 0) {\n let t = I.getUniformLocation(A, \"u_texture2\");\n if (t === -1) throw B.internalErrorWithDetail(`Uniform location for input texture ${Q} not found`);\n I.uniform1i(t, Q);\n }\n }\n initWebGL() {\n let I = this.canvas,\n A = I.getContext(\"webgl2\", {\n powerPreference: \"default\"\n });\n if (!A) throw B.internalErrorWithDetail(\"Unable to obtain WebGL2 context\");\n this.posBuffer = this.createPositionBuffer(A), this.videoTexCoordBuffer = this.createVideoTexCoordBuffer(A), this.texCoordBuffer = this.createTexCoordBuffer(A), this.pixelPackBuf = this.createPixelPackBuffer(A, this.roe.size.width * this.roe.size.height * 4), A.viewport(0, 0, A.drawingBufferWidth, A.drawingBufferHeight), this.textureA = this.createAndSetupTexture(A), A.texImage2D(A.TEXTURE_2D, 0, A.RGBA, I.width, I.height, 0, A.RGBA, A.UNSIGNED_BYTE, null);\n let g = A.createFramebuffer();\n if (!g) throw B.internalErrorWithDetail(\"Failed to create WebGL framebuffer\");\n this.bufA = g, A.bindFramebuffer(A.FRAMEBUFFER, this.bufA), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureA, 0), this.textureB = this.createAndSetupTexture(A), A.texImage2D(A.TEXTURE_2D, 0, A.RGBA, I.width, I.height, 0, A.RGBA, A.UNSIGNED_BYTE, null);\n let C = A.createFramebuffer();\n if (!C) throw B.internalErrorWithDetail(\"Failed to create WebGL framebuffer\");\n this.bufB = C, A.bindFramebuffer(A.FRAMEBUFFER, this.bufB), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureA, 0), this.textureC = this.createAndSetupTexture(A), A.texImage2D(A.TEXTURE_2D, 0, A.RGBA, I.width, I.height, 0, A.RGBA, A.UNSIGNED_BYTE, null);\n let Q = A.createFramebuffer();\n if (!Q) throw B.internalErrorWithDetail(\"Failed to create WebGL framebuffer\");\n this.bufC = Q, A.bindFramebuffer(A.FRAMEBUFFER, this.bufC), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureC, 0), this.textureLum = this.createAndSetupTexture(A), A.texImage2D(A.TEXTURE_2D, 0, A.RGBA, I.width, I.height, 0, A.RGBA, A.UNSIGNED_BYTE, null);\n let i = A.createFramebuffer();\n if (!i) throw B.internalErrorWithDetail(\"Failed to create WebGL framebuffer\");\n this.bufLum = i, A.bindFramebuffer(A.FRAMEBUFFER, this.bufLum), A.framebufferTexture2D(A.FRAMEBUFFER, A.COLOR_ATTACHMENT0, A.TEXTURE_2D, this.textureLum, 0), this.lumAndChroma = this.createProgram(A, p, wI), A.useProgram(this.lumAndChroma), this.setBuffersForVideoTexture(A, this.lumAndChroma), this.setTextures(A, this.lumAndChroma, 0), this.derivativeFirstPass = this.createProgram(A, p, hI), A.useProgram(this.derivativeFirstPass), this.setBuffers(A, this.derivativeFirstPass), this.setTextures(A, this.derivativeFirstPass, 0);\n let t = A.getUniformLocation(this.derivativeFirstPass, \"u_step\");\n if (!t) throw B.internalErrorWithDetail(\"Failed to get uniform location u_step\");\n if (A.uniform2fv(t, [1 / this.canvas.width, 1 / this.canvas.height]), this.derivativeSecondPass = this.createProgram(A, p, SI), A.useProgram(this.derivativeSecondPass), this.setBuffers(A, this.derivativeSecondPass), this.setTextures(A, this.derivativeSecondPass, 0), t = A.getUniformLocation(this.derivativeSecondPass, \"u_step\"), !t) throw B.internalErrorWithDetail(\"Failed to get uniform location u_step\");\n if (A.uniform2fv(t, [1 / this.canvas.width, 1 / this.canvas.height]), this.windowSum = this.createProgram(A, p, RI), A.useProgram(this.windowSum), this.setBuffers(A, this.windowSum), this.setTextures(A, this.windowSum, 0), t = A.getUniformLocation(this.windowSum, \"u_step\"), !t) throw B.internalErrorWithDetail(\"Failed to get uniform location u_step\");\n if (this.windowSumStep = t, A.uniform1f(A.getUniformLocation(this.windowSum, \"u_chroma_threshold\"), this.chromaRejectThreshold), this.edgeness = this.createProgram(A, p, FI), A.useProgram(this.edgeness), this.setBuffers(A, this.edgeness), this.setTextures(A, this.edgeness, 0), this.cornerness = this.createProgram(A, p, nI), A.useProgram(this.cornerness), this.setBuffers(A, this.cornerness), this.setTextures(A, this.cornerness, 0), this.boxFilter = this.createProgram(A, p, GI), A.useProgram(this.boxFilter), this.setBuffers(A, this.boxFilter), this.setTextures(A, this.boxFilter, 0), t = A.getUniformLocation(this.boxFilter, \"u_step\"), !t) throw B.internalErrorWithDetail(\"Failed to get uniform location u_step\");\n return this.boxFilterStep = t, this.combineMaps = this.createProgram(A, p, NI), A.useProgram(this.combineMaps), this.setBuffers(A, this.combineMaps), this.setTextures(A, this.combineMaps, 0, 1, 2), A.uniform2fv(A.getUniformLocation(this.combineMaps, \"u_w1\"), z.S1_WEIGHTS), A.uniform2fv(A.getUniformLocation(this.combineMaps, \"u_w2\"), z.S2_WEIGHTS), hA(A), A;\n }\n locate(I) {\n let A = this.hasPerformance ? performance.now() : 0,\n g = this.gl;\n if (g === void 0 || g.isContextLost()) return o._debug && console.debug(\"WebGL2 locator invoked, but associated GL context already destroyed\"), Promise.resolve();\n g.useProgram(this.lumAndChroma), this.setBuffersForVideoTexture(g, this.lumAndChroma), g.bindFramebuffer(g.FRAMEBUFFER, this.bufLum), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureLum, 0), g.activeTexture(g.TEXTURE0), g.bindTexture(g.TEXTURE_2D, this.cameraTexture), g.texImage2D(g.TEXTURE_2D, 0, g.RGBA, g.RGBA, g.UNSIGNED_BYTE, this.texImageSource), this.render(g);\n let C = [1 / this.canvas.width, 0],\n Q = [0, 1 / this.canvas.height];\n return g.bindFramebuffer(g.FRAMEBUFFER, this.bufB), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureB, 0), g.useProgram(this.derivativeFirstPass), this.setBuffers(g, this.derivativeFirstPass), g.bindTexture(g.TEXTURE_2D, this.textureLum), this.render(g), g.bindFramebuffer(g.FRAMEBUFFER, this.bufC), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureC, 0), g.useProgram(this.derivativeSecondPass), g.bindTexture(g.TEXTURE_2D, this.textureB), this.render(g), g.bindFramebuffer(g.FRAMEBUFFER, this.bufB), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureB, 0), g.useProgram(this.windowSum), g.bindTexture(g.TEXTURE_2D, this.textureC), g.uniform2fv(this.windowSumStep, C), this.render(g), g.bindFramebuffer(g.FRAMEBUFFER, this.bufC), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureC, 0), g.bindTexture(g.TEXTURE_2D, this.textureB), g.uniform2fv(this.windowSumStep, Q), this.render(g), g.bindFramebuffer(g.FRAMEBUFFER, this.bufA), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureA, 0), g.useProgram(this.edgeness), g.bindTexture(g.TEXTURE_2D, this.textureC), this.render(g), g.bindFramebuffer(g.FRAMEBUFFER, this.bufB), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureB, 0), g.useProgram(this.cornerness), g.bindTexture(g.TEXTURE_2D, this.textureC), this.render(g), g.bindFramebuffer(g.FRAMEBUFFER, this.bufC), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureC, 0), g.useProgram(this.boxFilter), g.bindTexture(g.TEXTURE_2D, this.textureA), g.uniform2fv(this.boxFilterStep, C), this.render(g), g.bindFramebuffer(g.FRAMEBUFFER, this.bufA), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureA, 0), g.bindTexture(g.TEXTURE_2D, this.textureC), g.uniform2fv(this.boxFilterStep, Q), this.render(g), g.bindFramebuffer(g.FRAMEBUFFER, this.bufC), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureC, 0), g.useProgram(this.boxFilter), g.bindTexture(g.TEXTURE_2D, this.textureB), g.uniform2fv(this.boxFilterStep, C), this.render(g), g.bindFramebuffer(g.FRAMEBUFFER, this.bufB), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureB, 0), g.bindTexture(g.TEXTURE_2D, this.textureC), g.uniform2fv(this.boxFilterStep, Q), this.render(g), g.bindFramebuffer(g.FRAMEBUFFER, this.bufC), g.framebufferTexture2D(g.FRAMEBUFFER, g.COLOR_ATTACHMENT0, g.TEXTURE_2D, this.textureC, 0), g.useProgram(this.combineMaps), g.activeTexture(g.TEXTURE0), g.bindTexture(g.TEXTURE_2D, this.textureA), g.activeTexture(g.TEXTURE1), g.bindTexture(g.TEXTURE_2D, this.textureB), g.activeTexture(g.TEXTURE2), g.bindTexture(g.TEXTURE_2D, this.textureLum), this.render(g), this.forceSyncReadback ? (g.readPixels(0, 0, this.roe.size.width, this.roe.size.height, g.RGBA, g.UNSIGNED_BYTE, I.buffer), this.recordFrameGrabTime(I, A), Promise.resolve()) : (g.bindBuffer(g.PIXEL_PACK_BUFFER, this.pixelPackBuf), g.readPixels(0, 0, this.roe.size.width, this.roe.size.height, g.RGBA, g.UNSIGNED_BYTE, 0), this.readPixelPackBufferAsync(g, I.buffer).then(() => {\n this.recordFrameGrabTime(I, A);\n }));\n }\n recordFrameGrabTime(I, A) {\n if (this.hasPerformance) {\n let g = this.hasPerformance ? performance.now() : 1;\n this.fgtAvg -= this.fgtAvg / this.fgtAvgWindowSize, this.fgtAvg += (g - A) / this.fgtAvgWindowSize, I.fgt = this.fgtAvg;\n }\n }\n createAndSetupTexture(I) {\n let A = I.createTexture();\n if (!A) throw B.internalErrorWithDetail(\"Failed to create camera input texture: \" + I.getError());\n return I.bindTexture(I.TEXTURE_2D, A), I.texParameteri(I.TEXTURE_2D, I.TEXTURE_WRAP_S, I.CLAMP_TO_EDGE), I.texParameteri(I.TEXTURE_2D, I.TEXTURE_WRAP_T, I.CLAMP_TO_EDGE), I.texParameteri(I.TEXTURE_2D, I.TEXTURE_MIN_FILTER, I.LINEAR), I.texParameteri(I.TEXTURE_2D, I.TEXTURE_MAG_FILTER, I.LINEAR), A;\n }\n createProgram(I, A, g) {\n let C = I.createProgram();\n if (!C) throw B.internalErrorWithDetail(\"Failed to create WebGL program\");\n let Q = I.createShader(WebGL2RenderingContext.FRAGMENT_SHADER);\n if (!Q) throw B.internalErrorWithDetail(\"Failed to create WebGL fragment shader\");\n if (I.shaderSource(Q, g), I.compileShader(Q), !I.getShaderParameter(Q, I.COMPILE_STATUS)) throw B.internalErrorWithDetail(`Failed to compile WebGL shader:\n` + I.getShaderInfoLog(Q));\n let i = I.createShader(WebGL2RenderingContext.VERTEX_SHADER);\n if (!i) throw B.internalErrorWithDetail(\"Failed to create WebGL vertex shader\");\n if (I.shaderSource(i, A), I.compileShader(i), !I.getShaderParameter(i, I.COMPILE_STATUS)) throw B.internalErrorWithDetail(`Failed to compile Shader:\n` + I.getShaderInfoLog(i));\n if (I.attachShader(C, Q), I.attachShader(C, i), I.linkProgram(C), I.validateProgram(C), !I.getProgramParameter(C, I.LINK_STATUS)) {\n let t = I.getProgramInfoLog(C);\n throw B.internalErrorWithDetail(`Failed to compile WebGL program:\n` + t);\n }\n return C;\n }\n render(I) {\n I.drawArrays(I.TRIANGLE_STRIP, 0, 4);\n }\n linkFrameSource(I) {\n this.texImageSource = this.frameSource.get(), this.cameraTexture = this.createAndSetupTexture(I), I.activeTexture(I.TEXTURE0), I.texImage2D(I.TEXTURE_2D, 0, I.RGBA, I.RGBA, I.UNSIGNED_BYTE, this.texImageSource);\n }\n getRegionOfInterestSpec() {\n return this.config.regionOfInterest;\n }\n calculateRegionOfInterest(I) {\n let A = this.config.regionOfInterest;\n if (!A) throw B.configurationErrorWithDetail(\"Region of interest is undefined\");\n let g = P(this.viewportSize, A),\n C = new T(I, this.viewportSize);\n this.roe = C.unprojectRect(g);\n let Q = k(this.roe.origin.x / I.width, this.roe.origin.y / I.height),\n i = Y(this.roe.size.width / this.imageSize.width, this.roe.size.height / this.imageSize.height);\n this.videoTextureCoords = m(Q, i);\n }\n readPixelPackBufferAsync(I, A) {\n let g = I.fenceSync(I.SYNC_GPU_COMMANDS_COMPLETE, 0);\n return g === null ? Promise.reject(B.internalErrorWithDetail(\"Could not create WebGL sync\")) : (I.flush(), this.waitUntilSyncSignaled(I, g).then(() => {\n this.gl !== void 0 && (I.getBufferSubData(I.PIXEL_PACK_BUFFER, 0, A), I.bindBuffer(I.PIXEL_PACK_BUFFER, null));\n }).finally(() => {\n I.deleteSync(g);\n }));\n }\n waitUntilSyncSignaled(I, A) {\n return new Promise((g, C) => {\n function Q() {\n if (I.isContextLost()) {\n g();\n return;\n }\n let i = I.clientWaitSync(A, 0, 0);\n if (i === I.WAIT_FAILED) {\n C();\n return;\n }\n if (i === I.TIMEOUT_EXPIRED) {\n setTimeout(Q, 10);\n return;\n }\n g();\n }\n Q();\n });\n }\n};\nz.S1_WEIGHTS = [2, -1], z.S2_WEIGHTS = [.25, 4];\nvar BA = z;\nvar nA = /*#__PURE__*/(() => {\n let nA = class nA {\n constructor(I) {\n this.mediaDeviceInfo = I;\n if (I.kind !== \"videoinput\") throw B.internalErrorWithDetail(\"Bad device (not a videoinput device)\");\n this.isBackFacing = this.isKnownBackCameraLabel(I.label);\n }\n get hasPermission() {\n return !!this.mediaDeviceInfo.label;\n }\n get deviceId() {\n return this.mediaDeviceInfo.deviceId;\n }\n get label() {\n return this.mediaDeviceInfo.label;\n }\n toString() {\n return `CameraDevice [id=${this.mediaDeviceInfo.deviceId}, kind=${this.mediaDeviceInfo.kind}, label=${this.mediaDeviceInfo.label}]`;\n }\n isKnownBackCameraLabel(I) {\n if (!I) return;\n let A = I.toLowerCase();\n return nA.knownBackFacingCameraLabels.some(g => A.includes(g));\n }\n };\n nA.knownBackFacingCameraLabels = [\"rear\", \"back\", \"r\\xFCck\", \"arri\\xE8re\", \"trasera\", \"tr\\xE1s\", \"traseira\", \"posteriore\", \"\\u540E\\u9762\", \"\\u5F8C\\u9762\", \"\\u80CC\\u9762\", \"\\u540E\\u7F6E\", \"\\u5F8C\\u7F6E\", \"\\u80CC\\u7F6E\", \"\\u0437\\u0430\\u0434\\u043D\\u0435\\u0439\", \"\\u0627\\u0644\\u062E\\u0644\\u0641\\u064A\\u0629\", \"\\uD6C4\", \"arka\", \"achterzijde\", \"\\u0E2B\\u0E25\\u0E31\\u0E07\", \"baksidan\", \"bagside\", \"sau\", \"bak\", \"tylny\", \"takakamera\", \"belakang\", \"\\u05D0\\u05D7\\u05D5\\u05E8\\u05D9\\u05EA\", \"\\u03C0\\u03AF\\u03C3\\u03C9\", \"spate\", \"h\\xE1ts\\xF3\", \"zadn\\xED\", \"darrere\", \"zadn\\xE1\", \"\\u0437\\u0430\\u0434\\u043D\\u044F\", \"stra\\u017Enja\", \"belakang\", \"\\u092C\\u0948\\u0915\"];\n return nA;\n})();\nvar RA = nA;\nvar _ = class E {\n static isOverconstrainedError(I) {\n return I && I.name === \"OverconstrainedError\";\n }\n static isOverconstrainedDeviceId(I) {\n return E.isOverconstrainedError(I) && I.constraint === \"deviceId\";\n }\n relax(I, A, g) {\n let C = !1;\n if (navigator.userAgent.toLowerCase().indexOf(\"firefox\") > -1 && !A?.constraint || [\"width\", \"height\"].includes(A?.constraint)) {\n let i = I.video;\n return !i || (\"width\" in i && (\"min\" in i.width && (C = !0, delete i.width.min), \"max\" in i.width && (C = !0, delete i.width.max)), \"height\" in i && (\"min\" in i.height && (C = !0, delete i.height.min), \"max\" in i.height && (C = !0, delete i.height.max)), !C) ? null : {\n video: i\n };\n } else if (E.isOverconstrainedDeviceId(A) || g === \"remembered\" || g === \"explicit\") {\n let i = I.video;\n return i ? (\"deviceId\" in i && (C = !0, delete i.deviceId, i.facingMode = {\n ideal: \"environment\"\n }), C ? {\n video: i\n } : null) : null;\n }\n return null;\n }\n};\nvar QA = /*#__PURE__*/(() => {\n let QA = class QA {\n constructor(I, A) {\n this.langCode = I;\n this.userAgent = A;\n }\n chooseCamera(I) {\n if (!I || I.length === 0) {\n let A = B.internalErrorWithDetail(\"Empty device list returned by browser\");\n throw A.duringCameraAccess = !0, A;\n }\n if (this.userAgent.indexOf(\"iPhone\") !== -1 && this.langCode in QA.iPhoneBackDualWideCameraLabels) {\n let A = QA.iPhoneBackDualWideCameraLabels[this.langCode],\n g = I.findIndex(C => A.findIndex(Q => Q === C.label) !== -1);\n if (g !== -1) return I[g];\n }\n return I[0];\n }\n };\n QA.iPhoneBackDualWideCameraLabels = {\n en: [\"Back Dual Wide Camera\"],\n de: [\"R\\xFCckseitige Dual-Weitwinkelkamera\"],\n fr: [\"Double appareil photo grand angle arri\\xE8re\"],\n it: [\"Fotocamera doppia con grandangolo (posteriore)\"],\n es: [\"C\\xE1mara trasera dual con gran angular\"],\n tr: [\"\\xC7ift Geni\\u015F Kamera Arka Y\\xFCz\\xFC\"],\n nl: [\"Back Dual Wide Camera\"],\n sv: [\"Dubbel vidvinkelkamera p\\xE5 baksidan\"],\n da: [\"Back Dual Wide Camera\"],\n pl: [\"Tylny dwuobiektywowy aparat szerokok\\u0105tny\"],\n fi: [\"Laajakulmainen kaksoistakakamera\"],\n nb: [\"Dobbelt vidvinkelkamera bak\"],\n ja: [\"\\u80CC\\u9762\\u30C7\\u30E5\\u30A2\\u30EB\\u5E83\\u89D2\\u30AB\\u30E1\\u30E9\"],\n zh: [\"\\u540E\\u7F6E\\u53CC\\u5E7F\\u89D2\\u955C\\u5934\", \"\\u5F8C\\u7F6E\\u96D9\\u5EE3\\u89D2\\u76F8\\u6A5F\", \"\\u5F8C\\u7F6E\\u96D9\\u5EE3\\u89D2\\u93E1\\u982D\\u76F8\\u6A5F\"],\n ru: [\"\\u0417\\u0430\\u0434\\u043D\\u044F\\u044F \\u0434\\u0432\\u043E\\u0439\\u043D\\u0430\\u044F \\u0448\\u0438\\u0440\\u043E\\u043A\\u043E\\u0443\\u0433\\u043E\\u043B\\u044C\\u043D\\u0430\\u044F \\u043A\\u0430\\u043C\\u0435\\u0440\\u0430\"],\n pt: [\"C\\xE2mera Dupla Grande-Angular Traseira\", \"C\\xE2mara grande angular dupla traseira\"],\n th: [\"\\u0E01\\u0E25\\u0E49\\u0E2D\\u0E07\\u0E04\\u0E39\\u0E48\\u0E14\\u0E49\\u0E32\\u0E19\\u0E2B\\u0E25\\u0E31\\u0E07\\u0E21\\u0E38\\u0E21\\u0E01\\u0E27\\u0E49\\u0E32\\u0E07\"],\n ko: [\"\\uD6C4\\uBA74 \\uB4C0\\uC5BC \\uC640\\uC774\\uB4DC \\uCE74\\uBA54\\uB77C\"],\n vi: [\"Camera k\\xE9p r\\u1ED9ng m\\u1EB7t sau\"],\n ar: [\"\\u0643\\u0627\\u0645\\u064A\\u0631\\u0627 \\u062E\\u0644\\u0641\\u064A\\u0629 \\u0645\\u0632\\u062F\\u0648\\u062C\\u0629 \\u0639\\u0631\\u064A\\u0636\\u0629\"],\n id: [\"Kamera Lebar Belakang Ganda\"],\n he: [\"\\u05DE\\u05E6\\u05DC\\u05DE\\u05D4 \\u05DB\\u05E4\\u05D5\\u05DC\\u05D4 \\u05E8\\u05D7\\u05D1\\u05D4 \\u05D0\\u05D7\\u05D5\\u05E8\\u05D9\\u05EA\"],\n el: [\"\\u03A0\\u03AF\\u03C3\\u03C9 \\u03B4\\u03B9\\u03C0\\u03BB\\u03AE \\u03B5\\u03C5\\u03C1\\u03B5\\u03AF\\u03B1 \\u03BA\\u03AC\\u03BC\\u03B5\\u03C1\\u03B1\"],\n ro: [\"Camer\\u0103 dubl\\u0103 cu obiectiv superangular spate\"],\n cs: [\"Zadn\\xED du\\xE1ln\\xED \\u0161iroko\\xFAhl\\xFD fotoapar\\xE1t\"],\n hu: [\"H\\xE1ts\\xF3, kett\\u0151s, sz\\xE9les l\\xE1t\\xF3sz\\xF6g\\u0171 kamera\"],\n sk: [\"Zadn\\xE1 du\\xE1lna \\u0161irokouhl\\xE1 kamera\"],\n uk: [\"\\u0417\\u0430\\u0434\\u043D\\u044F \\u0437\\u0434\\u0432\\u043E\\u0454\\u043D\\u0430 \\u0448\\u0438\\u0440\\u043E\\u043A\\u043E\\u043A\\u0443\\u0442\\u043D\\u0430 \\u043A\\u0430\\u043C\\u0435\\u0440\\u0430\"],\n hr: [\"Stra\\u017Enja dvostruka \\u0161iroka kamera\"],\n ms: [\"Dwikamera Lebar Belakang\"],\n hi: [\"\\u092C\\u0948\\u0915 \\u0921\\u094D\\u092F\\u0941\\u0905\\u0932 \\u0935\\u093E\\u0907\\u0921 \\u0915\\u0948\\u092E\\u0930\\u093E\"],\n kk: [\"\\u0410\\u0440\\u0442\\u049B\\u044B \\u049B\\u043E\\u0441 \\u043A\\u0435\\u04A3 \\u0431\\u04B1\\u0440\\u044B\\u0448\\u0442\\u044B \\u043A\\u0430\\u043C\\u0435\\u0440\\u0430\"],\n bg: [\"\\u0417\\u0430\\u0434\\u043D\\u0430 \\u0434\\u0432\\u043E\\u0439\\u043D\\u0430 \\u0448\\u0438\\u0440\\u043E\\u043A\\u043E\\u044A\\u0433\\u044A\\u043B\\u043D\\u0430 \\u043A\\u0430\\u043C\\u0435\\u0440\\u0430\"]\n };\n return QA;\n})();\nvar FA = QA;\nvar $ = /*#__PURE__*/(() => {\n let $ = class $ {\n constructor(I, A) {\n this.config = I;\n this.pendingMuteNotificationId = void 0;\n this.DEFAULT_RESOLUTION = \"hd\";\n this.initialized = !1;\n this.destroyed = !1;\n this.availableDevices = void 0;\n let g = document.createElement(\"video\");\n g.style.width = \"100%\", g.style.objectFit = \"cover\", g.playsInline = !0, g.preload = \"metadata\", g.style.height = `${A.clientHeight}px`, A.appendChild(g), this.videoElement = g, this.cameraSelector = new FA(navigator.language.split(\"-\")[0], navigator.userAgent);\n }\n getNumberOfChannels() {\n return 4;\n }\n getImageSize() {\n if (!this.initialized) throw B.internalErrorWithDetail(\"Frame source needs to be initialized first\");\n return this.size;\n }\n initialize() {\n return this.destroyed ? Promise.reject(B.internalErrorWithDetail(\"Frame source is already destroyed\")) : this.acquireVideoStream(void 0).then(() => (this.initialized = !0, this));\n }\n isReady() {\n return !this.destroyed && this.videoTrack !== void 0 && this.videoTrack.readyState === \"live\" && !this.videoTrack.muted;\n }\n restartIfLost() {\n return this.destroyed ? Promise.reject(B.internalErrorWithDetail(\"Frame source is already destroyed\")) : !this.videoTrack || this.videoTrack.readyState === \"ended\" || this.videoTrack.muted ? (o._debug && console.debug(\"Video track has ended or was muted, reacquiring...\"), this.videoTrack && (this.videoTrack.onmute = null, this.videoTrack.onunmute = null, this.mediaStream && (this.mediaStream.getTracks().forEach(I => I.stop()), this.mediaStream = void 0), this.videoTrack = void 0, this.setMediaStreamOnVideoElement(null)), this.acquireVideoStream(this.currentDevice).catch(I => {\n if (I instanceof B && I.duringCameraAccess && I.name === \"NotReadableError\") return new Promise((A, g) => {\n setTimeout(() => {\n this.acquireVideoStream(this.currentDevice).then(() => A(this)).catch(C => g(C));\n }, 250);\n });\n throw I;\n })) : Promise.resolve(this);\n }\n stop() {\n this.destroyed || (this.releaseVideoStream(), o._debug && console.debug(\"Stopped frame source\"));\n }\n destroy() {\n this.destroyed || (this.stop(), this.videoElement.remove(), this.destroyed = !0);\n }\n acquireVideoStream(I) {\n let A = this.getConstraintsFromConfig(this.config),\n g;\n I && I.mediaDeviceInfo.label && I.deviceId ? (g = \"explicit\", A.video.deviceId = {\n exact: I.deviceId\n }, this.clearRememberedCameraDeviceId()) : this.config.constraints ? (g = \"overrideConstraints\", A = this.config.constraints, o._debug && console.debug(`Overriding constraints: ${JSON.stringify(A)}`)) : this.config.rememberCameraDeviceId && this.getRememberedCameraDeviceId() ? (g = \"remembered\", A.video.deviceId = {\n exact: this.getRememberedCameraDeviceId()\n }) : (g = \"default\", A.video.facingMode = {\n ideal: \"environment\"\n }), o._debug && console.debug(`Acquiring camera (mode: ${g}) with constraints: ${JSON.stringify(A)}`);\n let C = new _();\n return navigator.mediaDevices.getUserMedia(A).catch(Q => {\n if (o._debug && console.debug(`getUserMedia failed with error: ${Q.name}, attempting to recover`), g === \"overrideConstraints\") throw B.fromGetUserMediaError(Q);\n if (_.isOverconstrainedError(Q)) {\n (_.isOverconstrainedDeviceId(Q) || g === \"remembered\") && (g = \"default\", this.clearRememberedCameraDeviceId());\n let i = C.relax(A, Q, g);\n if (i !== null) return o._debug && console.debug(`Re-acquiring camera (mode: ${g}) with relaxed constraints: ${JSON.stringify(i)}`), navigator.mediaDevices.getUserMedia(i).catch(t => {\n throw B.fromGetUserMediaError(t);\n });\n }\n throw B.fromGetUserMediaError(Q);\n }).then(Q => {\n let i = Q.getVideoTracks().length > 0 ? Q.getVideoTracks()[0] : void 0;\n if (!i) throw B.internalErrorWithDetail(\"MediaStream does not contain a video track\");\n let t = i.getSettings().width,\n D = i.getSettings().height;\n if (!t || !D) throw B.internalErrorWithDetail(\"Video track does not specify its resolution in settings\");\n if (i.addEventListener(\"ended\", () => {\n o._debug && console.debug(`Video track ${i.id} is now in state: ${i.readyState}`), this.endedHandler && this.endedHandler();\n }, {\n passive: !0\n }), this.mediaStream = Q, this.videoTrack = i, o._debug && console.debug(`Video track ${i.id} of stream ${Q.id} has resolution: ${t} x ${D}`), this.videoElement.addEventListener(\"ended\", () => {\n o._debug && console.debug(\"Video element event: ended\");\n }), i.getSettings().deviceId) return this.getAvailableDevices().then(S => {\n let h = i.getSettings().deviceId;\n return S.find(K => K.deviceId === h);\n });\n }).then(Q => {\n if (Q === void 0 && o._debug && console.debug(\"Device ID from track could not be mapped to device from enumeratedDevices()\"), this.currentDevice = Q, g === \"default\" && this.availableDevices && this.availableDevices.length > 0) {\n let i = this.cameraSelector.chooseCamera(this.availableDevices);\n if (Q && Q.deviceId !== i.deviceId) return o._debug && console.debug(`Default camera acquisition selected device: ${Q.toString()}, our preferred device is: ${i}`), this.mediaStream.getTracks().forEach(t => t.stop()), this.acquireVideoStream(i);\n }\n }).then(() => {\n if (o._debug) {\n let Q = this.currentDevice?.deviceId ?? \"\",\n i = this.mediaStream?.id ?? \"\",\n t = this.videoTrack?.id ?? \"\";\n console.debug(`Starting frame source for device: ${Q}, stream ${i}, track: ${t}`);\n }\n return new Promise((Q, i) => {\n this.videoElement.onerror = t => {\n o._debug && console.debug(\"VideoElement error event, loading stream failed\", t), i(t);\n }, this.videoElement.onloadedmetadata = () => {\n o._debug && console.debug(\"VideoElement.onloadedmetadata event, attempting to play()\"), this.videoElement.play().then(() => {\n this.size = Y(this.videoElement.videoWidth, this.videoElement.videoHeight), this.videoTrack !== void 0 && this.setMuteUnmuteHandlers(this.videoTrack), Q(this);\n }).catch(t => i(t));\n }, this.setMediaStreamOnVideoElement(this.mediaStream), this.videoElement.load();\n });\n }).catch(Q => {\n if (Q instanceof B) throw Q.duringCameraAccess = !0, Q;\n {\n let i = B.internalErrorWithCause(Q);\n throw i.duringCameraAccess = !0, i;\n }\n });\n }\n setMediaStreamOnVideoElement(I) {\n \"srcObject\" in this.videoElement ? this.videoElement.srcObject = I : this.videoElement.src = I === null ? null : URL.createObjectURL(I);\n }\n setMuteUnmuteHandlers(I) {\n I.onunmute = () => {\n if (o._debug) {\n let A = this.videoTrack?.id ?? \"\";\n console.debug(`Video track ${A} was unmuted`);\n }\n this.pendingMuteNotificationId && (clearTimeout(this.pendingMuteNotificationId), this.pendingMuteNotificationId = void 0), this.mutedHandler && this.mutedHandler(!1);\n }, I.onmute = () => {\n if (o._debug) {\n let A = this.videoTrack?.id ?? \"\";\n console.debug(`Video track ${A} was muted`);\n }\n this.pendingMuteNotificationId || (this.pendingMuteNotificationId = setTimeout(() => this.checkVideoTrackAfterMutedEvent(), 500));\n };\n }\n checkVideoTrackAfterMutedEvent() {\n this.pendingMuteNotificationId = void 0, this.mutedHandler !== void 0 && this.videoTrack && this.videoTrack.readyState === \"live\" && this.videoTrack.muted && this.mutedHandler(!0);\n }\n releaseVideoStream() {\n this.pendingMuteNotificationId && (clearTimeout(this.pendingMuteNotificationId), this.pendingMuteNotificationId = void 0), this.videoTrack && (this.videoTrack.onmute = null, this.videoTrack.onunmute = null), this.mediaStream?.getTracks().forEach(I => {\n I.stop();\n }), this.videoTrack = void 0, this.mediaStream = void 0, this.videoElement.srcObject = null, o._debug && console.debug(\"Released video track and media stream\");\n }\n get() {\n return this.videoElement;\n }\n focusOnTap() {\n if (!this.videoTrack) return Promise.reject(B.internalErrorWithDetail(\"Video track is not initialized\"));\n if (typeof this.videoTrack.getCapabilities != \"function\") return Promise.reject(new B(\"error.featureNotAvailable\"));\n if (this.videoTrack.readyState !== \"live\") return Promise.reject(B.internalErrorWithDetail(\"Video is not ready\"));\n let I = this.videoTrack;\n return Object.prototype.hasOwnProperty.call(I.getCapabilities(), \"focusDistance\") ? new Promise((A, g) => {\n I.applyConstraints({\n advanced: [{\n focusMode: \"manual\",\n focusDistance: .3\n }]\n }).then(() => {\n setTimeout(() => {\n I.applyConstraints({\n advanced: [{\n focusMode: \"continuous\"\n }]\n }).then(() => {\n A();\n }).catch(C => {\n g(B.internalErrorWithCause(C));\n });\n }, 250);\n }).catch(C => {\n g(B.internalErrorWithCause(C));\n });\n }) : Promise.resolve();\n }\n onCodeScanned() {\n this.currentDevice && this.config.rememberCameraDeviceId && this.rememberCameraDeviceId(this.currentDevice.deviceId);\n }\n isTorchSupported() {\n return \"torch\" in navigator.mediaDevices.getSupportedConstraints();\n }\n setTorchEnabled(I) {\n return this.videoTrack ? this.videoTrack.readyState !== \"live\" ? Promise.reject(B.internalErrorWithDetail(\"Video track is not ready\")) : this.videoTrack.applyConstraints({\n advanced: [{\n torch: I\n }]\n }).then(() => {\n if (this.getTorchEnabled() != I) throw new B(\"error.featureNotAvailable\");\n }).catch(A => {\n throw A instanceof B ? A : B.internalErrorWithCause(A);\n }) : Promise.reject(B.internalErrorWithDetail(\"Video track is not initialized\"));\n }\n getTorchEnabled() {\n if (!(!this.videoTrack || this.videoTrack.readyState !== \"live\") && typeof this.videoTrack.getSettings().torch == \"boolean\") return this.videoTrack.getSettings().torch;\n }\n getAvailableDevices() {\n return navigator.mediaDevices.enumerateDevices().then(I => {\n if (I) {\n if (o._debug) for (let g of I) console.debug(` enumerateDevices() returned device: ${g.deviceId}, label: ${g.label}`);\n let A = I.filter(g => g.kind === \"videoinput\").map(g => new RA(g));\n return A.some(g => !g.hasPermission) ? (this.availableDevices = A, o._debug && console.debug(\"enumerateDevices() returned videoinput devices without label (HINT: permission?)\")) : this.availableDevices = this.sortAndFilterDevices(A), this.availableDevices;\n } else throw new B(\"error.cameraNotFound\");\n });\n }\n getCurrentCameraDevice() {\n return this.currentDevice;\n }\n selectCameraDevice(I) {\n if (!this.availableDevices) return Promise.reject(new B(\"error.cameraNotFound\"));\n let A = this.availableDevices.find(g => g.deviceId === I);\n return A ? (this.mediaStream && (this.mediaStream.getTracks().forEach(g => g.stop()), this.videoTrack = void 0, this.mediaStream = void 0, this.currentDevice = void 0), this.acquireVideoStream(A)) : Promise.reject(new B(\"error.cameraNotReadable\"));\n }\n getConstraintsFromConfig(I) {\n let A = {\n audio: !1\n },\n g = I.resolution || this.DEFAULT_RESOLUTION,\n C = {\n width: {\n min: 800,\n ideal: 1280,\n max: 1600\n },\n height: {\n min: 600,\n ideal: 720,\n max: 900\n }\n },\n Q = {\n width: {\n min: 1400,\n ideal: 1920,\n max: 2160\n },\n height: {\n min: 900,\n ideal: 1080,\n max: 1440\n }\n };\n return g === \"hd\" ? A.video = C : g === \"full-hd\" ? A.video = Q : (console.warn(`Unknown resolution '${g}' in config, falling back to 'hd'`), A.video = C), A;\n }\n getRememberedCameraDeviceId() {\n return localStorage.getItem($.rememberedCameraIdKey);\n }\n rememberCameraDeviceId(I) {\n localStorage.setItem($.rememberedCameraIdKey, I);\n }\n clearRememberedCameraDeviceId() {\n localStorage.removeItem($.rememberedCameraIdKey);\n }\n sortAndFilterDevices(I) {\n return I.filter(A => A.mediaDeviceInfo.kind === \"videoinput\").sort((A, g) => A.isBackFacing === !0 && g.isBackFacing === !1 ? -1 : A.isBackFacing === !1 && g.isBackFacing === !0 ? 1 : A.mediaDeviceInfo.label.localeCompare(g.mediaDeviceInfo.label));\n }\n };\n $.rememberedCameraIdKey = \"strich_remembered_camera_id\";\n return $;\n})();\nvar GA = $;\nvar NA = class {\n constructor(I) {\n this.codeDetections = I;\n }\n};\nvar EA = class {\n constructor(I) {\n this.interval = I;\n if (I <= 0) throw B.configurationErrorWithDetail(\"duplicateInterval must be a positive number\");\n this.lastDetection = {};\n }\n filter(I) {\n this.removeStaleDetections(I.time);\n let A = this.lastDetection[I.data];\n return A === void 0 ? (this.lastDetection[I.data] = I.time, !1) : A < I.time - this.interval ? (this.lastDetection[I.data] = I.time, !1) : !0;\n }\n removeStaleDetections(I) {\n let A = Object.keys(this.lastDetection);\n for (let g in A) this.lastDetection[g] < I - this.interval && delete this.lastDetection[g];\n }\n};\nvar kA = /*#__PURE__*/(() => {\n let kA = class kA {\n constructor(I) {\n this.duplicateFilter = void 0;\n this.engineDebug = !1;\n this.engineInitialized = !1;\n this.framesProcessed = 0;\n this.lastFramesProcessed = 0;\n this.dumpFPSIntervalMS = 1e3;\n this.lastFPSSampleTime = 0;\n this.lastFps = -1;\n this.eptAvg = 0;\n this.eptAvgWindowSize = 10;\n if (this.hasPerformance = \"performance\" in window, I ? this.config = I : this.config = {}, this.config.duplicateInterval === void 0 || this.config.duplicateInterval === null) this.duplicateFilter = new EA(kA.DEFAULT_DUPLICATE_INTERVAL);else if (this.config.duplicateInterval > 0) this.duplicateFilter = new EA(this.config.duplicateInterval);else if (this.config.duplicateInterval < 0) throw B.configurationErrorWithDetail(\"duplicateInterval must be a positive number\");\n }\n async init() {\n if (!o.api) throw new B(\"error.sdkNotInitialized\");\n o.api.strich_engine_destroy();\n let I = JSON.stringify(this.config),\n A = o.api.strich_engine_init(I);\n if (A === 0) return this.engineInitialized = !0, this;\n throw B.internalErrorWithDetail(`Failed to initialize engine, error code: ${A}`);\n }\n destroy() {\n this.assertInitialized(), this.destroyBuffer(), o.api?.strich_engine_destroy();\n }\n prepareBuffer(I, A) {\n this.assertInitialized(), this.destroyBuffer();\n let g = I.width * I.height * A,\n C = o.api.strich_engine_create_buffer(I.width, I.height, A);\n this.bufferSpec = {\n buffer: C,\n bufferSize: g,\n imageSize: I,\n channels: A\n };\n }\n getBuffer() {\n this.assertInitialized();\n let I = this.assertBufferAllocated();\n return [new Uint8ClampedArray(o.api.Module.HEAPU8.buffer, I.buffer, I.bufferSize), I.imageSize, I.channels];\n }\n destroyBuffer() {\n this.assertInitialized(), this.bufferSpec && (o.api.strich_engine_destroy_buffer(this.bufferSpec.buffer), this.bufferSpec = void 0);\n }\n processFrame(I) {\n this.assertInitialized();\n let A = this.assertBufferAllocated();\n o._debug !== this.engineDebug && (this.engineDebug = o._debug, o.api.strich_set_debug(this.engineDebug ? 1 : 0));\n let g = I.touchHint ? I.touchHint.x : -1,\n C = I.touchHint ? I.touchHint.y : -1,\n Q = 1;\n try {\n let D = this.hasPerformance ? performance.now() : 0,\n c = o.api.strich_engine_process_frame(Q, I.frameTimestamp, A.buffer, A.imageSize.width, A.imageSize.height, g, C);\n if (this.hasPerformance) {\n let S = this.hasPerformance ? performance.now() : 1;\n this.eptAvg -= this.eptAvg / this.eptAvgWindowSize, this.eptAvg += (S - D) / this.eptAvgWindowSize, I.ept = this.eptAvg, this.framesProcessed++;\n let h = S - this.lastFPSSampleTime;\n S - this.lastFPSSampleTime > this.dumpFPSIntervalMS && (this.lastFps = (this.framesProcessed - this.lastFramesProcessed) * 1e3 / h, this.lastFramesProcessed = this.framesProcessed, this.lastFPSSampleTime = S), I.fps = this.lastFps;\n }\n if (c !== 0) throw B.internalErrorWithDetail(`Engine error occurred, error code: ${c}`);\n } catch (D) {\n if (typeof D == \"number\") {\n let c = o.api.strich_engine_get_exception_message(D);\n throw B.internalErrorWithDetail(c);\n } else throw D;\n }\n let i = [],\n t = o.api.strich_engine_get_number_of_results();\n for (let D = 0; D < t; D++) {\n let c = this.getCodeDetection(I, D);\n this.duplicateFilter && this.duplicateFilter.filter(c) || i.push(this.getCodeDetection(I, D));\n }\n if (o._debug) {\n try {\n let D = o.api.strich_engine_get_debug_output();\n D && (I.debugOutput = JSON.parse(D));\n } catch (D) {\n console.debug(`Failed to parse engine debug output: ${D}`);\n }\n I.statusMessage = o.api.strich_engine_get_status_message();\n }\n return new NA(i);\n }\n assertInitialized() {\n if (!this.engineInitialized || !o.api) throw B.internalErrorWithDetail(\"Engine was not previously initialized\");\n }\n assertBufferAllocated() {\n if (this.bufferSpec === void 0) throw B.internalErrorWithDetail(\"Buffer was not previously allocated\");\n return this.bufferSpec;\n }\n getCodeDetection(I, A) {\n let g = o.api.strich_engine_get_result_type(A),\n C = o.api.strich_engine_get_result_data(A),\n Q = o.api.strich_engine_get_result_raw_data(A),\n i = o.api.strich_engine_get_result_data_len(A),\n t = new Uint8Array(o.api.Module.HEAPU8.subarray(Q, Q + i)),\n D = o.api.strich_engine_get_result_supplemental_data(A),\n c = II(k(o.api.strich_engine_get_quad_p1_x(A), o.api.strich_engine_get_quad_p1_y(A)), k(o.api.strich_engine_get_quad_p2_x(A), o.api.strich_engine_get_quad_p2_y(A)), k(o.api.strich_engine_get_quad_p3_x(A), o.api.strich_engine_get_quad_p3_y(A)), k(o.api.strich_engine_get_quad_p4_x(A), o.api.strich_engine_get_quad_p4_y(A))),\n S = o.api.strich_engine_get_symbology_identifier(A);\n return {\n time: I.startTime,\n data: C,\n supplementalData: D,\n typeName: g,\n boundingRect: gI(c),\n quadrilateral: c,\n rawData: t,\n symbologyIdentifier: S\n };\n }\n };\n kA.DEFAULT_DUPLICATE_INTERVAL = 750;\n return kA;\n})();\nvar yA = kA;\nfunction yI(E) {\n switch (E) {\n case \"ean13\":\n case \"ean8\":\n case \"upca\":\n case \"upce\":\n case \"databar\":\n case \"databar-exp\":\n case \"code39\":\n case \"code93\":\n case \"code128\":\n case \"i25\":\n case \"codabar\":\n return !0;\n default:\n return !1;\n }\n}\nfunction iA(E) {\n let I = E.match(/^rgb\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3})\\)$/);\n if (!I) throw B.configurationErrorWithDetail(`Bad color value: ${E}, needs to be 'rgb(R,G,B)'`);\n let A = parseInt(I[1], 10),\n g = parseInt(I[2], 10),\n C = parseInt(I[3], 10);\n return [A, g, C];\n}\nfunction f(E, I) {\n return `rgba(${E[0]},${E[1]},${E[2]},${I})`;\n}\nfunction JA(E, I) {\n return new Promise((A, g) => {\n let C = new Image();\n C.onload = () => {\n let Q = document.createElement(\"canvas\");\n Q.width = C.width, Q.height = C.height;\n let i = Q.getContext(\"2d\");\n if (!i) {\n g(B.internalErrorWithDetail(\"2D drawing context not available\"));\n return;\n }\n i.fillStyle = f(I, 1), i.fillRect(0, 0, Q.width, Q.height), i.globalCompositeOperation = \"destination-in\", i.drawImage(C, 0, 0);\n let t = Q.toDataURL();\n Q.remove(), A(t);\n }, C.onerror = () => {\n g(B.internalErrorWithDetail(\"Mask image failed to load\"));\n }, (E.indexOf(\"://\") > 0 || E.indexOf(\"//\") === 0) && C.setAttribute(\"crossorigin\", \"anonymous\"), C.src = E;\n });\n}\nvar F = class F {\n constructor(I, A, g, C, Q, i) {\n this.config = I;\n this.frameSource = g;\n this.viewportSize = C;\n this.roeSpec = Q;\n this.DETECTION_LIFETIME = 500;\n this.visibleDetections = [];\n this.pendingClearDetection = 0;\n this.canvasSupportsRoundRect = void 0;\n this.lastStatusMessageUpdate = 0;\n this.showDebugOutput = !1;\n this.showPerformance = !1;\n this.focusOnTap = I.focusOnTap ?? !0, this.filterCameras = I.filterCameras ?? !0, this.primaryColor = I.primaryColor ? iA(I.primaryColor) : F.defaultPrimaryColor, this.detectionFillColor = I.detectionFillColor ? iA(I.detectionFillColor) : F.defaultDetectionFillColor, this.detectionBorderColor = I.detectionBorderColor ? iA(I.detectionBorderColor) : void 0, this.detectionBorderWidth = lA(I.detectionBorderWidth ?? 0, 0, 4), this.targetingLineActiveColor = I.targetingLineActiveColor ? iA(I.targetingLineActiveColor) : F.defaultTargetingLineActiveColor, this.cornerRadius = lA(I.cornerRadius ?? 0, 0, 8), this.showDetections = I.showDetections === !0, this.detectionCanvas = document.createElement(\"canvas\"), this.targetingCanvas = document.createElement(\"canvas\"), this.showDebugOutput = I.showDebugOutput ?? !1, this.showPerformance = I.showPerformance ?? !1, this.debugCanvas = this.showDebugOutput || this.showPerformance ? document.createElement(\"canvas\") : void 0, this.canvasScale = window.devicePixelRatio, I.showTargetingLine === void 0 || I.showTargetingLine ? this.showHorizontalTargetingLine = i : this.showHorizontalTargetingLine = !1;\n let t = this.frameSource.getImageSize();\n this.vpt = new T(t, C), this.viewportRoE = P(this.viewportSize, this.roeSpec), this.imageRoE = this.vpt.unprojectRect(this.viewportRoE);\n for (let D of [this.detectionCanvas, this.debugCanvas, this.targetingCanvas]) D && (D.width = Math.floor(C.width * this.canvasScale), D.height = Math.floor(C.height * this.canvasScale), D.style.width = \"100%\", D.style.height = \"100%\", D.style.position = \"absolute\", D.style.top = \"0\", D.style.left = \"0\", A.appendChild(D));\n this.config.showCameraSelector = I?.showCameraSelector ?? !0, this.config.showFlashlight = I?.showFlashlight ?? !0, this.createButtonBar(A);\n }\n initialize() {\n let I;\n return this.config.customLogoSrc && o.license.hasCustomOverlayLogoCapability ? I = this.config.customLogoSrc : I = F.logo, Promise.all([JA(I, this.primaryColor), JA(F.flashlightOnIcon, this.primaryColor), JA(F.flashlightOffIcon, this.primaryColor)]).then(A => {\n let g = A[0];\n return this.flashlightOnIconTinted = A[1], this.flashlightOffIconTinted = A[2], new Promise((C, Q) => {\n let i = new Image();\n i.onload = () => {\n this.logoImage = i, this.drawTargetingOverlay(), this.showHorizontalTargetingLine && this.drawHorizontalTargetingLine(!1);\n let t = this.frameSource.getTorchEnabled();\n this.setTorchState(t === void 0 ? !1 : t), this.targetingCanvas?.addEventListener(\"click\", D => {\n if (this.focusOnTap && this.frameSource.focusOnTap().then(() => {}).catch(c => {\n console.warn(`Tap-to-focus failed with error: ${c}`);\n }), this.targetingCanvas && this.touchHandler) {\n let c = this.targetingCanvas.getBoundingClientRect(),\n S = {\n x: D.clientX - c.left,\n y: D.clientY - c.top\n },\n h = this.vpt.unprojectPoint(S),\n K = {\n x: h.x - this.imageRoE.origin.x,\n y: h.y - this.imageRoE.origin.y\n };\n this.touchHandler(K.x, K.y);\n }\n }), this.populateCameraSelector().then(() => C(this)).catch(D => Q(D));\n }, i.onerror = () => {\n Q(B.internalErrorWithDetail(\"Failed to load logo asset\"));\n }, i.src = g;\n });\n });\n }\n destroy() {\n this.buttonBar?.remove(), this.buttonBar = void 0, this.detectionCanvas?.remove(), this.detectionCanvas = void 0, this.debugCanvas?.remove(), this.debugCanvas = void 0, this.targetingCanvas?.remove(), this.targetingCanvas = void 0;\n }\n updateDebug(I) {\n if (!o._debug || !this.debugCanvas) return;\n let A = this.debugCanvas.getContext(\"2d\");\n if (A) {\n A.save();\n try {\n A.scale(this.canvasScale, this.canvasScale), A.clearRect(0, 0, this.viewportSize.width, this.viewportSize.height), this.showPerformance && this.drawPerformanceInfo(A, I), I.statusMessage ? (this.drawStatusMessage(A, I.statusMessage), this.lastStatusMessage = I.statusMessage, this.lastStatusMessageUpdate = I.startTime) : this.lastStatusMessage && I.startTime - this.lastStatusMessageUpdate < F.statusMessageMinLifetime ? this.drawStatusMessage(A, this.lastStatusMessage) : this.lastStatusMessage = void 0;\n } finally {\n A.restore();\n }\n }\n }\n update(I) {\n let A = I ? I.codeDetections : [];\n if (A.forEach(g => this.visibleDetections.push(g)), this.showDetections && requestAnimationFrame(() => {\n let g = Date.now(),\n C = this.detectionCanvas?.getContext(\"2d\");\n if (C) {\n C.save();\n try {\n C.scale(this.canvasScale, this.canvasScale), C.clearRect(0, 0, this.detectionCanvas.width, this.detectionCanvas.height);\n for (let Q = 0; Q < this.visibleDetections.length; Q++) {\n let i = this.visibleDetections[Q],\n t = g - i.time;\n if (t < this.DETECTION_LIFETIME) {\n let D = .5 * t / this.DETECTION_LIFETIME;\n C.fillStyle = f(this.detectionFillColor, D), this.detectionBorderColor && this.detectionBorderWidth && (C.lineWidth = this.detectionBorderWidth, C.strokeStyle = f(this.detectionBorderColor, D)), C.beginPath();\n for (let c = 0; c < 4; c++) {\n let S = i.quadrilateral.points[c],\n h = k(S.x + this.imageRoE.origin.x, S.y + this.imageRoE.origin.y),\n K = this.vpt.projectPoint(h);\n c === 0 ? C.moveTo(K.x, K.y) : C.lineTo(K.x, K.y);\n }\n C.closePath(), C.stroke(), C.fill();\n }\n }\n } finally {\n C.restore();\n }\n }\n }), A.length > 0) {\n let g = !1;\n this.showHorizontalTargetingLine && A.find(Q => yI(Q.typeName)) !== void 0 && (g = !0, requestAnimationFrame(() => {\n this.drawHorizontalTargetingLine(!0);\n })), this.pendingClearDetection > 0 && (window.clearTimeout(this.pendingClearDetection), this.pendingClearDetection = 0), this.pendingClearDetection = window.setTimeout(() => {\n requestAnimationFrame(() => {\n this.clearDetectionsFromOverlay(), g && this.drawHorizontalTargetingLine(!1);\n });\n }, 250);\n }\n }\n setTorchState(I) {\n this.flashlightButton && (I ? this.flashlightButton.src = this.flashlightOnIconTinted ?? F.flashlightOnIcon : this.flashlightButton.src = this.flashlightOffIconTinted ?? F.flashlightOffIcon);\n }\n populateCameraSelector() {\n if (!this.config.showCameraSelector) return Promise.resolve();\n let I = this.cameraSelectElem;\n if (!I) return Promise.resolve();\n let A = this.frameSource.getCurrentCameraDevice();\n return this.frameSource.getAvailableDevices().then(g => {\n for (; I.firstChild;) I.removeChild(I.firstChild);\n let C = this.filterCameras ? g.filter(Q => Q.isBackFacing) : g;\n for (let Q of C) {\n let i = document.createElement(\"option\");\n i.value = Q.deviceId, i.innerHTML = Q.label, I.appendChild(i);\n }\n return A && (I.value = A.deviceId), C;\n }).then(g => {\n I.style.display = g.length <= 1 ? \"none\" : \"visible\";\n });\n }\n drawTargetingOverlay() {\n let I = this.targetingCanvas?.getContext(\"2d\");\n if (!I) throw B.internalErrorWithDetail(\"Failed to draw overlay, no 2D context returned for canvas\");\n this.canvasSupportsRoundRect === void 0 && (this.canvasSupportsRoundRect = typeof I.roundRect == \"function\"), I.save();\n try {\n if (I.scale(this.canvasScale, this.canvasScale), I.strokeStyle = f(this.primaryColor, 1), I.lineWidth = 1, this.cornerRadius > 0 && this.canvasSupportsRoundRect ? I.roundRect(this.viewportRoE.origin.x, this.viewportRoE.origin.y, this.viewportRoE.size.width, this.viewportRoE.size.height, [this.cornerRadius]) : I.rect(this.viewportRoE.origin.x, this.viewportRoE.origin.y, this.viewportRoE.size.width, this.viewportRoE.size.height), I.stroke(), this.logoImage) {\n let A = this.logoImage.width / 4,\n g = this.logoImage.height / 4;\n I.drawImage(this.logoImage, this.viewportRoE.origin.x + this.viewportRoE.size.width - A - 4, this.viewportRoE.origin.y + this.viewportRoE.size.height - g - 4, A, g);\n }\n } finally {\n I.restore();\n }\n }\n drawHorizontalTargetingLine(I) {\n if (!this.showHorizontalTargetingLine) return;\n let A = this.targetingCanvas?.getContext(\"2d\");\n if (A) {\n A.save();\n try {\n A.scale(this.canvasScale, this.canvasScale);\n let g = 20,\n C = this.viewportRoE.origin.y + this.viewportRoE.size.height / 2;\n A.clearRect(this.viewportRoE.origin.x + g, C - 1, this.viewportRoE.size.width - g * 2, 3), I ? A.strokeStyle = f(this.targetingLineActiveColor, 1) : A.strokeStyle = f(this.primaryColor, .15), A.beginPath(), A.moveTo(this.viewportRoE.origin.x + g, C), A.lineTo(this.viewportRoE.origin.x + this.viewportRoE.size.width - g, C), A.stroke();\n } finally {\n A.restore();\n }\n }\n }\n drawPerformanceInfo(I, A) {\n I.fillStyle = \"white\", I.textAlign = \"left\";\n let Q = `FPS: ${A.fps.toFixed(1)} / FGT: ${A.fgt.toFixed(1)} ms / EPT: ${A.ept.toFixed(1)} ms`;\n I.fillText(Q, 10, this.viewportSize.height - 10), I.textAlign = \"right\";\n let i = `${A.size.width}x${A.size.height} (${this.vpt.imageSize.width}x${this.vpt.imageSize.height})`;\n I.fillText(i, this.viewportSize.width - 10, this.viewportSize.height - 10);\n }\n drawStatusMessage(I, A) {\n I.fillStyle = \"white\", I.font = \"10px sans-serif\", I.textAlign = \"right\", I.fillText(A, this.viewportSize.width - 20, 20);\n }\n clearDetectionsFromOverlay() {\n if (this.detectionCanvas == null) return;\n this.visibleDetections = [];\n let I = this.detectionCanvas.getContext(\"2d\");\n I && I.clearRect(0, 0, this.detectionCanvas.width, this.detectionCanvas.height);\n }\n createButtonBar(I) {\n let A = document.createElement(\"div\");\n if (A.style.height = \"48px\", A.style.position = \"absolute\", A.style.top = \"0\", A.style.left = \"0\", A.style.right = \"0\", A.style.backgroundColor = \"transparent\", A.style.display = \"flex\", A.style.flexDirection = \"row\", A.style.alignItems = \"center\", A.style.paddingLeft = \"10px\", A.style.paddingRight = \"10px\", this.config.showCameraSelector) {\n let C = this.createCameraSelector();\n A.appendChild(C), this.cameraSelectElem = C, C.onchange = () => {\n this.onCameraSelected(C.value);\n };\n }\n if (this.config.showReportCode) {\n let C = document.createElement(\"img\");\n C.src = F.reportIcon, C.width = 32, C.height = 32, A.appendChild(C), this.reportButton = C, this.reportButton.onclick = () => {\n this.snapshotHandler && this.snapshotHandler();\n };\n }\n let g = document.createElement(\"div\");\n if (g.style.flexGrow = \"1\", A.appendChild(g), this.config.showFlashlight && this.frameSource.isTorchSupported()) {\n let C = document.createElement(\"img\");\n C.src = F.flashlightOffIcon, C.width = 32, C.height = 32, A.appendChild(C), this.flashlightButton = C, this.flashlightButton.onclick = () => {\n let Q = this.frameSource.getTorchEnabled(),\n i = Q === !1 || Q === void 0;\n return this.frameSource.setTorchEnabled(i).then(() => {\n this.setTorchState(i);\n }).catch(t => {\n console.warn(`Failed to toggle torch: ${t} (HINT: may not be supported by this browser)`);\n });\n };\n }\n I.appendChild(A), this.buttonBar = A;\n }\n createCameraSelector() {\n let I = document.createElement(\"select\");\n return I.style.backgroundColor = \"transparent\", I.style.color = f(this.primaryColor, 1), I.style.borderColor = f(this.primaryColor, 1), I.style.borderRadius = `${this.cornerRadius}px`, I.style.borderWidth = \"1px\", I.style.fontSize = \"16px\", I.style.outlineStyle = \"none\", I.style.maxWidth = \"140px\", I;\n }\n onCameraSelected(I) {\n this.selectCameraHandler !== void 0 && this.selectCameraHandler(I);\n }\n};\nF.flashlightOffIcon = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiNGRkZGRkYiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMi44MSwyLjgxTDEuMzksNC4yMkw4LDEwLjgzVjIyaDh2LTMuMTdsMy43OCwzLjc4bDEuNDEtMS40MUwyLjgxLDIuODF6IE0xNCwyMGgtNHYtNy4xN2w0LDRWMjB6Ii8+PHBvbHlnb24gcG9pbnRzPSIxNiw0IDE2LDUgNy44Myw1IDkuODMsNyAxNiw3IDE2LDcuMzkgMTQsMTAuNCAxNCwxMS4xNyAxNiwxMy4xNyAxNiwxMSAxOCw4IDE4LDIgNiwyIDYsMy4xNyA2LjgzLDQiLz48L2c+PC9nPjwvc3ZnPg==\", F.flashlightOnIcon = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiBoZWlnaHQ9IjI0cHgiIHZpZXdCb3g9IjAgMCAyNCAyNCIgd2lkdGg9IjI0cHgiIGZpbGw9IiNGRkZGRkYiPjxnPjxwYXRoIGQ9Ik0wLDBoMjR2MjRIMFYweiIgZmlsbD0ibm9uZSIvPjwvZz48Zz48Zz48cGF0aCBkPSJNMTgsMkg2djZsMiwzdjExaDhWMTFsMi0zVjJ6IE0xNiw0djFIOFY0SDE2eiBNMTQsMTAuNFYyMGgtNHYtOS42MWwtMi0zVjdoOHYwLjM5TDE0LDEwLjR6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxNCIgcj0iMS41Ii8+PC9nPjwvZz48L3N2Zz4=\", F.reportIcon = \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iI0ZGRkZGRiI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE1LjczIDNIOC4yN0wzIDguMjd2Ny40Nkw4LjI3IDIxaDcuNDZMMjEgMTUuNzNWOC4yN0wxNS43MyAzek0xOSAxNC45TDE0LjkgMTlIOS4xTDUgMTQuOVY5LjFMOS4xIDVoNS44TDE5IDkuMXY1Ljh6Ii8+PGNpcmNsZSBjeD0iMTIiIGN5PSIxNiIgcj0iMSIvPjxwYXRoIGQ9Ik0xMSA3aDJ2N2gtMnoiLz48L3N2Zz4=\", F.logo = \"data:image/png;base64,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\", F.defaultPrimaryColor = [255, 255, 255], F.defaultDetectionFillColor = [0, 0, 255], F.defaultTargetingLineActiveColor = [255, 0, 0], F.statusMessageMinLifetime = 1e3;\nvar KA = F;\nvar MA = class {\n constructor(I, A, g, C, Q) {\n this.startTime = I, this.frameTimestamp = A, this.buffer = g, this.size = C, this.channels = Q, this.debugOutput = void 0, this.statusMessage = void 0, this.ept = -1, this.fps = -1, this.fgt = -1;\n }\n setTouchHint(I, A) {\n this.touchHint = {\n x: I,\n y: A\n };\n }\n};\nvar dA = /*#__PURE__*/(() => {\n let dA = class dA {\n constructor() {\n this.scanEvents = [];\n }\n addScanEvent(I) {\n navigator.sendBeacon && (o.license.isOffline && o.license.isAnalyticsOptOut || (this.scanEvents.push({\n timestamp: Date.now(),\n symbology: I\n }), this.scanEvents.length > dA.maxScanEventsToBuffer && this.emitBeacon()));\n }\n emitBeacon() {\n if (!navigator.sendBeacon || this.scanEvents.length === 0) return;\n let I = o.license.licenseId,\n A = o.deviceId;\n if (!I || !A) return;\n let g = window.location.href.split(\"?\")[0],\n C = `${o.license.isDevLicense ? sA : aA}/web/events/scans`,\n Q = {\n sdkVersion: o.version(),\n licenseId: I,\n deviceId: A,\n userAgent: navigator.userAgent,\n customId: o.customId === null ? \"\" : o.customId,\n locationHref: g,\n scans: this.scanEvents\n };\n navigator.sendBeacon(C, JSON.stringify(Q)) && (this.scanEvents = []);\n }\n };\n dA.maxScanEventsToBuffer = 32;\n return dA;\n})();\nvar UA = dA;\nvar LA = class {\n constructor(I) {\n let A = document.createElement(\"div\");\n A.style.background = \"rgba(0,0,0,0.5)\", A.style.flexDirection = \"column\", A.style.alignItems = \"center\", A.style.position = \"absolute\", A.style.top = \"0\", A.style.left = \"0\", A.style.right = \"0\", A.style.bottom = \"0\", A.style.display = \"none\", A.style.justifyContent = \"center\", A.style.padding = \"20px\", A.style.zIndex = \"999\";\n let g = document.createElement(\"p\");\n g.style.color = \"rgba(255,255,255,1)\", g.style.textAlign = \"center\", this.messageParagraph = g, A.appendChild(g);\n let C = document.createElement(\"p\");\n C.style.color = \"rgba(175,175,175,1)\", C.style.textAlign = \"center\", C.style.fontSize = \"9px\", C.style.display = \"none\", C.style.marginTop = \"8px\", this.detailParagraph = C, A.appendChild(C);\n let Q = document.createElement(\"button\");\n Q.style.width = \"100%\", Q.style.padding = \"10px\", Q.style.border = \"1px solid white\", Q.style.marginTop = \"20px\", Q.style.color = \"white\", Q.style.fontWeight = \"bold\", Q.style.backgroundColor = \"transparent\", this.actionButton = Q, A.appendChild(Q), I.appendChild(A), this.panel = A;\n }\n setError(I, A, g) {\n this.panel && (I instanceof B ? (this.messageParagraph.innerHTML = I.localizedMessage, this.setDetailMessage(I.detailMessage)) : (this.messageParagraph.innerHTML = I.message, this.setDetailMessage(void 0)), this.panel.style.display = \"flex\", A ? (this.actionButton.style.display = \"block\", this.actionButton.innerText = A, g && (this.actionButton.onclick = () => {\n this.clearError(), g();\n })) : (this.actionButton.style.display = \"none\", this.actionButton.innerText = \"\", this.actionButton.onclick = null));\n }\n setDetailMessage(I) {\n I ? (this.detailParagraph.innerHTML = I, this.detailParagraph.style.display = \"block\") : (this.detailParagraph.innerHTML = \"\", this.detailParagraph.style.display = \"none\");\n }\n clearError() {\n this.panel && (this.panel.style.display = \"none\", this.messageParagraph.innerText = \"\", this.actionButton.style.display = \"none\", this.actionButton.innerText = \"\", this.actionButton.onclick = null);\n }\n destroy() {\n this.panel && (this.panel.remove(), this.panel = void 0);\n }\n};\nvar xA = class E {\n constructor(I) {\n this.configuration = I;\n this.touchHint = void 0;\n this.snapshotRequested = !1;\n this.supportsRVF = !1;\n this.rxfRequestId = 0;\n if (!o.isInitialized()) throw new B(\"error.sdkNotInitialized\");\n if (!I.selector) throw B.configurationErrorWithDetail(\"No selector present in configuration\", !0);\n if (!o.browserCapabilities.supportsWASM) throw B.unfulfilledRequirementErrorWithDetail(\"WebAssembly not supported\", !0);\n if (!o.browserCapabilities.supportsGetUserMedia) throw B.unfulfilledRequirementErrorWithDetail(\"WebRTC/getUserMedia not supported\", !0);\n if (!o.browserCapabilities.supportsWebGL) throw B.unfulfilledRequirementErrorWithDetail(\"WebGL not supported\", !0);\n this.supportsRVF = o.browserCapabilities.supportsRVF === !0, this.hostElement = this.getAndCheckHostElement(I), this.state = 0, this.modeIsTouch = I.mode === \"touch\", this.any1DSymbologyEnabled = this.isAny1DSymbologyEnabled(I), this.any2DSymbologyEnabled = this.isAny2DSymbologyEnabled(I), o._debug && console.warn(\"Debug mode enabled. Do not use in production.\"), this.scanEventTracker = new UA();\n }\n initialize() {\n o._debug && console.debug(`Initializing BarcodeReader (device capabilities: ${JSON.stringify(o.browserCapabilities)})...`), E.currentReader !== void 0 && console.warn(\"A current BarcodeReader already exists (HINT: missing destroy() call)\");\n let I = new LA(this.hostElement);\n this.errorOverlay = I;\n let A = this.hostElement.getBoundingClientRect(),\n g = Y(A.width, A.height);\n o._debug && console.debug(\"Viewport size (CSS pixels)\", g);\n let C = {\n resolution: \"hd\"\n },\n Q = this.configuration.frameSource || C,\n i = new GA(Q, this.hostElement),\n t = i.initialize().then(D => {\n let c = D.getImageSize();\n return o._debug && console.debug(`SDK initialization: FrameSource initialized with size ${c.width}x${c.height} px`), D.endedHandler = () => this.handleFrameSourceEnded(), D.mutedHandler = h => this.handleFrameSourceMuted(h), this.videoFrameSource = D, new yA(this.configuration.engine).init();\n }).then(D => {\n o._debug && console.debug(\"SDK initialization: Engine initialized\"), this.engine = D;\n let c = this.getDefaultRegionOfInterest(),\n S,\n h = this.configuration.locator?.impl;\n if (h === \"auto\" || !h) S = o.browserCapabilities.supportsWebGL2 ? new BA(this.configuration.locator, c, i, g) : new CA(this.configuration.locator, c, i, g);else if (h === \"webgl1\") console.warn(\"DEPRECATION WARNING: Forced WebGL1 locator implementation. WebGL1 locator may be removed in future releases.\"), S = new CA(this.configuration.locator, c, i, g);else if (h === \"webgl2\") S = new BA(this.configuration.locator, c, i, g);else throw B.configurationErrorWithDetail(\"Invalid locator impl: \" + h);\n return S.initialize();\n }).then(D => {\n o._debug && console.debug(\"SDK initialization: Locator initialized\"), this.locator = D;\n let c = D.getRegionOfInterest();\n this.engine.prepareBuffer(c.size, this.videoFrameSource.getNumberOfChannels());\n let S = this.configuration.overlay || {};\n return this.overlay = new KA(S, this.hostElement, this.videoFrameSource, g, D.getRegionOfInterestSpec(), this.any1DSymbologyEnabled), this.modeIsTouch && (this.overlay.touchHandler = (h, K) => {\n this.onScanRequested(h, K);\n }), o._debug && (this.overlay.snapshotHandler = () => {\n this.snapshotRequested = !0;\n }), this.overlay.selectCameraHandler = h => {\n this.switchCamera(h);\n }, this.overlay.initialize();\n }).then(() => {\n o._debug && console.debug(\"SDK initialization: Overlay initialized\");\n let D = this.configuration.feedback || {};\n return this.feedback = new V(D), this.feedback;\n }).then(() => (o._debug && console.debug(\"SDK initialization: Feedback initialized\"), this.visibilityChangeListener = () => {\n o._debug && console.debug(`BarcodeReader visibility change: ${document.visibilityState}`), document.visibilityState === \"hidden\" ? this.onHidden() : document.visibilityState === \"visible\" && this.onVisible();\n }, document.addEventListener(\"visibilitychange\", this.visibilityChangeListener), this.state = 1, E.currentReader = this, o._debug && (console.debug(\"BarcodeReader initialization complete\"), o.dumpMemoryUsage(\"after-barcode-reader-initialization\")), this)).catch(D => {\n throw I.setError(D, y.t(\"action.reload\"), () => {\n document.location.reload();\n }), D instanceof B ? D : B.internalErrorWithCause(D);\n }).finally(() => {\n this.initializingPromise = void 0;\n });\n return this.initializingPromise = t, t;\n }\n start() {\n return this.state === 2 ? Promise.resolve() : this.state === 0 || this.state == 4 ? Promise.reject(B.internalErrorWithDetail(\"BarcodeReader is not initialized or already destroyed\")) : (this.state = 2, this.scheduleNextTick(), Promise.resolve());\n }\n tick(I) {\n if (this.state === 3 || this.state == 4) {\n o._debug && console.debug(`Stopped processing frames (state: ${this.state})`);\n return;\n }\n let [A, g, C] = this.engine.getBuffer(),\n Q = Math.round(I),\n i = new MA(Date.now(), Q, A, g, C),\n t = !0;\n this.modeIsTouch && (this.touchHint ? i.setTouchHint(this.touchHint.x, this.touchHint.y) : t = !1), this.videoFrameSource.isReady() || (t = !1);\n let D;\n t ? this.locator.locate(i).then(() => {\n if (this.state === 3 || this.state == 4) {\n o._debug && console.debug(`Stopped processing frames (state: ${this.state})`);\n return;\n }\n try {\n D = this.engine.processFrame(i);\n } catch (c) {\n c instanceof B ? this.errorOverlay.setError(c, y.t(\"action.reload\"), () => {\n window.location.reload();\n }) : this.errorOverlay.setError(B.internalErrorWithDetail(JSON.stringify(c)), y.t(\"action.reload\"), () => {\n window.location.reload();\n }), this.onError && this.onError(c);\n return;\n }\n this.processEngineResultAndScheduleNextTick(i, D);\n }).catch(c => {\n this.errorOverlay.setError(c, y.t(\"action.reload\"), () => {\n window.location.reload();\n });\n }) : this.processEngineResultAndScheduleNextTick(i, void 0);\n }\n processEngineResultAndScheduleNextTick(I, A) {\n if (A && A.codeDetections.length > 0) {\n this.feedback.feedback();\n for (let g of A.codeDetections) this.scanEventTracker.addScanEvent(g.typeName);\n this.detected && this.detected(A.codeDetections), this.videoFrameSource.onCodeScanned();\n }\n this.overlay.update(A), o._debug && this.overlay.updateDebug(I), this.scheduleNextTick();\n }\n stop() {\n if (this.state === 3) return Promise.resolve();\n if (this.state === 0 || this.state == 4) return Promise.reject(B.internalErrorWithDetail(\"BarcodeReader is not initialized or already destroyed\"));\n if (this.rxfRequestId !== 0) {\n if (this.supportsRVF) {\n let I = this.videoFrameSource.get();\n I && I.cancelVideoFrameCallback(this.rxfRequestId);\n } else cancelAnimationFrame(this.rxfRequestId);\n this.rxfRequestId = 0;\n }\n return this.state = 3, Promise.resolve();\n }\n destroy() {\n if (this.state === 4) return Promise.resolve();\n let I = () => {\n this.scanEventTracker.emitBeacon(), this.visibilityChangeListener !== void 0 && document.removeEventListener(\"visibilitychange\", this.visibilityChangeListener), this.state = 4, this.errorOverlay?.destroy(), this.overlay?.destroy(), this.locator?.destroy(), this.videoFrameSource?.destroy(), this.engine?.destroy(), E.currentReader === this && (E.currentReader = void 0), o._debug && console.debug(\"BarcodeReader destroyed\");\n };\n return this.state === 0 && this.initializingPromise !== void 0 ? this.initializingPromise.then(() => {\n I();\n }) : (I(), Promise.resolve());\n }\n setVisible(I) {\n return this.state === 0 || this.state == 4 ? Promise.reject(B.internalErrorWithDetail(\"BarcodeReader is not initialized or already destroyed\")) : (I ? this.hostElement.style.display = \"block\" : this.hostElement.style.display = \"none\", Promise.resolve());\n }\n getVisible() {\n return this.state === 0 || this.state == 4 ? !1 : this.hostElement.style.display !== \"none\";\n }\n scheduleNextTick() {\n this.supportsRVF && this.videoFrameSource.isReady() ? this.rxfRequestId = this.videoFrameSource.get().requestVideoFrameCallback(I => this.tick(I)) : this.rxfRequestId = requestAnimationFrame(I => this.tick(I));\n }\n onScanRequested(I, A) {\n this.touchHint = {\n x: I,\n y: A\n }, this.clearTouchHintTimer && (clearTimeout(this.clearTouchHintTimer), this.clearTouchHintTimer = void 0), this.clearTouchHintTimer = setTimeout(() => {\n this.touchHint = void 0, this.clearTouchHintTimer = void 0;\n }, 500);\n }\n onVisible() {\n setTimeout(() => {\n this.restartCameraAfterBecomingVisible();\n }, 250);\n }\n restartCameraAfterBecomingVisible() {\n return this.state === 2 || this.state === 1 ? this.videoFrameSource.restartIfLost().then(() => {\n o._debug && console.debug(\"Restarted video frame source after visibility change\"), this.errorOverlay.clearError();\n }).catch(I => {\n this.onError && this.onError(I), this.errorOverlay.setError(I, y.t(\"action.retry\"), () => this.restartCameraAfterBecomingVisible());\n }) : Promise.resolve();\n }\n onHidden() {\n this.scanEventTracker.emitBeacon(), (this.state === 2 || this.state === 1) && (this.videoFrameSource.stop(), o._debug && console.debug(\"Stopped video frame source after visibility change\"));\n }\n switchCamera(I) {\n this.videoFrameSource.selectCameraDevice(I).catch(A => {\n this.errorOverlay.setError(A, y.t(\"action.retry\"), () => {\n this.switchCamera(I);\n });\n });\n }\n isAny1DSymbologyEnabled(I) {\n let A = I.engine?.symbologies;\n return A == null || A.length === 0 ? !0 : A.indexOf(\"ean13\") !== -1 || A.indexOf(\"ean8\") !== -1 || A.indexOf(\"upca\") !== -1 || A.indexOf(\"upce\") !== -1 || A.indexOf(\"databar\") !== -1 || A.indexOf(\"databar-exp\") !== -1 || A.indexOf(\"code39\") !== -1 || A.indexOf(\"code93\") !== -1 || A.indexOf(\"code128\") !== -1 || A.indexOf(\"i25\") !== -1 || A.indexOf(\"codabar\") !== -1;\n }\n isAny2DSymbologyEnabled(I) {\n let A = I.engine?.symbologies;\n return A == null || A.length === 0 ? !0 : A.indexOf(\"qr\") !== -1 || A.indexOf(\"datamatrix\") !== -1 || A.indexOf(\"aztec\") !== -1;\n }\n getAndCheckHostElement(I) {\n let A;\n if (typeof I.selector == \"string\" ? A = document.querySelector(I.selector) : A = I.selector, A === null) throw B.configurationErrorWithDetail(\"Invalid host element, use selector matching single element or the element itself\", !0);\n if (getComputedStyle(A).position !== \"relative\") throw B.configurationErrorWithDetail(\"Host element must use position: relative\", !0);\n let g = A.getBoundingClientRect();\n if (g.width <= 0 || g.height <= 0) throw B.configurationErrorWithDetail(\"Host element has zero width or height\", !0);\n return A;\n }\n handleFrameSourceEnded() {\n let I = new B(\"error.cameraLost\");\n this.setErrorOnOverlayAfterCameraLoss(I);\n }\n handleFrameSourceMuted(I) {\n I ? this.handleFrameSourceEnded() : this.errorOverlay.clearError();\n }\n setErrorOnOverlayAfterCameraLoss(I) {\n this.state === 2 && this.errorOverlay.setError(I, y.t(\"action.resumeScanning\"), () => {\n this.errorOverlay.clearError(), this.restartCameraAfterBecomingVisible().catch(A => {\n this.setErrorOnOverlayAfterCameraLoss(A);\n });\n });\n }\n getDefaultRegionOfInterest() {\n return this.any1DSymbologyEnabled && !this.any2DSymbologyEnabled ? {\n left: .05,\n right: .05,\n top: .35,\n bottom: .35\n } : !this.any1DSymbologyEnabled && this.any2DSymbologyEnabled ? {\n left: .2,\n right: .2,\n top: .3,\n bottom: .3\n } : {\n left: .05,\n right: .05,\n top: .3,\n bottom: .3\n };\n }\n};\nexport { xA as BarcodeReader, B as SdkError, o as StrichSDK };","export const environment = {\r\n\tproduction: true,\r\n\tsiteKey: '6LctGkcjAAAAAJxVg-kJmeHKHMmWXRJTc_Z1-tVC',\r\n\tstrichLicenseKey: 'eyJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJmMmM1MWNiMC00YmQ2LTRjNzYtOTM4Ni1hNGM1ZTEzYTJhMzYiLCJpc3MiOiJzdHJpY2guaW8iLCJhdWQiOlsiaHR0cHM6Ly9hcHAuc2NoZWR1bGUyLml0IiwiaHR0cHM6Ly9kZW1vYXBwLnNjaGVkdWxlMi5pdCJdLCJpYXQiOjE3MTgyMTg1NjEsIm5iZiI6MTcxODIxODU2MSwiY2FwYWJpbGl0aWVzIjp7Im9mZmxpbmUiOnRydWUsImFuYWx5dGljc09wdE91dCI6dHJ1ZSwiY3VzdG9tT3ZlcmxheUxvZ28iOnRydWV9LCJ2ZXJzaW9uIjoxLCJleHAiOjE3NTA2MzY3OTl9.VRz6ZqTwPiUxJ4fwXQJ_zLqUO2Te6F090EergI7AbQbkwS2Wy6nDNV3h-Z0R2f8g_iUwJ6bdnmrD6vv4JYh8DA'\r\n};\r\n","import {\r\n AfterViewInit,\r\n Component,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n NgZone,\r\n OnInit,\r\n Output\r\n} from '@angular/core';\r\nimport { UntilDestroy } from '@ngneat/until-destroy';\r\nimport {\r\n BarcodeReader,\r\n CodeDetection,\r\n Configuration,\r\n SdkError,\r\n StrichSDK,\r\n SymbologyName\r\n} from \"@pixelverse/strichjs-sdk\";\r\n\r\nimport { environment } from '../../../environments/environment';\r\nimport { InventoryService } from '../../inventory/services/inventory.service';\r\nimport { ProductBarcode } from '../../inventory/services/product-barcode';\r\nimport { GlobalService } from '../services/global.service';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'pcg-barcode-scanner-strich',\r\n templateUrl: './barcode-scanner-strich.component.html',\r\n styleUrls: ['./barcode-scanner-strich.component.scss'],\r\n standalone: false\r\n})\r\nexport class BarcodeScannerStrichComponent implements OnInit, AfterViewInit {\r\n\r\n @Input() symbology: SymbologyName[];\r\n @Input() scanningBtnText = \"Start Scanning\";\r\n @Input() showResults = true;\r\n @Input() overrideSound = false;\r\n @Input() closeScanAfterScan = true;\r\n @Input() showHeader = true;\r\n @Input() height = \"18rem\"\r\n @Input() showCloseButton = true;\r\n @Input() isClosed = false;\r\n\r\n @Output() scanResult = new EventEmitter();\r\n @Output() barcodeReaderOutput = new EventEmitter();\r\n\t@Output() closeReader = new EventEmitter(this.isClosed);\r\n\r\n errorMessage?: string;\r\n\r\n busy = false;\r\n initialized = false;\r\n isScan = false;\r\n isMobile = false;\r\n isLoaded = false;\r\n\r\n codeDetection?: CodeDetection;\r\n barcodeReader?: BarcodeReader;\r\n configuration: Configuration;\r\n\r\n constructor(private ngZone: NgZone, private inventoryService: InventoryService) { }\r\n\r\n @HostListener('window:resize')\r\n onResize() { this.isMobile = GlobalService.setIsMobile(window.innerWidth); }\r\n\r\n ngOnInit() {\r\n this.isMobile = GlobalService.setIsMobile(window.innerWidth);\r\n this.setConfig();\r\n this.busy = true;\r\n if (!this.isLoaded) {\r\n StrichSDK.initialize(environment.strichLicenseKey)\r\n .then(() => { console.log('STRICH SDK initialized'); this.isLoaded = true; })\r\n .catch(err => { this.errorMessage = `Failed to initialize Strich SDK (Have you provided a license key?) ${err}`; })\r\n .finally(() => { this.busy = false; });\r\n }\r\n }\r\n\r\n ngAfterViewInit() { setTimeout(() => { this.startScanning(); }, 1000); }\r\n\r\n setConfig() {\r\n const basePath = document.getElementsByTagName('base')[0].href;\r\n this.configuration = {\r\n selector: '#scanner' // the CSS selector identifying the host element\r\n //@ts-ignore\r\n , debug: true\r\n , engine: {\r\n symbologies: this.symbology // restrict to the required symbologies\r\n , numScanlines: 10\r\n , minScanlinesNeeded: 3\r\n , invertedCodes: true\r\n , duplicateInterval: 1000\r\n }\r\n , frameSource: { resolution: 'full-hd' } // full-hd is recommended for more challenging codes \r\n , overlay: {\r\n customLogoSrc: basePath + \"assets/images/logos/logo_small.png\"\r\n , showCameraSelector: true\r\n , showDetections: true\r\n , showFlashlight: true\r\n , showTargetingLine: true\r\n }\r\n , locator: {\r\n regionOfInterest: { // restrict active area to a horizontal bar in the center\r\n left: 0.05\r\n , right: 0.05\r\n , top: 0.35\r\n , bottom: 0.35\r\n }\r\n }\r\n , feedback: { // get audio and vibration feedback for scans \r\n audio: this.overrideSound === true ? false : true\r\n , vibration: true\r\n }\r\n };\r\n }\r\n\r\n removeCodeDetection(): void { this.codeDetection = undefined; }\r\n\r\n startScanning(): void {\r\n this.isScan = true;\r\n setTimeout(() => {\r\n this.initializeBarcodeReader();\r\n }, 50);\r\n }\r\n\r\n private initializeBarcodeReader() {\r\n if (!this.barcodeReader) {\r\n // BarcodeReader initialization\r\n try {\r\n const barcodeReader = new BarcodeReader(this.configuration);\r\n barcodeReader.initialize().then(result => {\r\n this.initialized = true;\r\n this.barcodeReader = result;\r\n this.barcodeReaderOutput.emit(this.barcodeReader);\r\n\r\n // register detection hook, run it in the Angular zone so change detection works\r\n this.barcodeReader.detected = (detections) => {\r\n this.ngZone.run(() => {\r\n this.codeDetection = detections[0];\r\n this.processScanResult(this.codeDetection.data);\r\n });\r\n };\r\n\r\n // start reading codes\r\n this.barcodeReader.start()\r\n .then(() => { })\r\n .catch(err => { this.errorMessage = `BarcodeReader failed to start: ${err}`; });\r\n })\r\n .catch(err => { this.errorMessage = `BarcodeReader failed to initialize: ${err}`; })\r\n .finally(() => { this.busy = false; });\r\n } catch (err) {\r\n if (err instanceof SdkError) { this.errorMessage = err.message; }\r\n else { this.errorMessage = 'An unknown error occurred'; }\r\n }\r\n }\r\n }\r\n\r\n closeScanning() {\r\n this.barcodeReader?.stop();\r\n this.barcodeReader?.destroy();\r\n this.barcodeReader = null;\r\n this.removeCodeDetection();\r\n this.isScan = false;\r\n this.isLoaded = false;\r\n this.isClosed = true;\r\n this.closeReader.emit(this.isClosed);\r\n }\r\n\r\n processScanResult(barcodeStr: string) {\r\n if (barcodeStr?.includes(\"\\u001d17\")) { \r\n let barcode: ProductBarcode = \r\n this.inventoryService.scanGs1Barcode(barcodeStr);\r\n this.scanResult.emit(barcode);\r\n }\r\n if (this.closeScanAfterScan) {\r\n this.closeScanning();\r\n this.initialized = false;\r\n } else {\r\n this.barcodeReaderOutput.emit(this.barcodeReader);\r\n } \r\n }\r\n}\r\n","
\r\n\r\n
\r\n {{ errorMessage }}\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
{{ codeDetection.typeName }}
\r\n
{{ codeDetection.data }}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { Observable } from \"rxjs\";\r\n\r\nimport { SendgridUserBounceResponse } from \"app/shared/models/SendgridUserBounceResponse\";\r\n\r\n@Injectable({ providedIn: \"root\" })\r\nexport class SendgridApiService {\r\n\r\n\tconstructor(private httpClient: HttpClient) {}\r\n\r\n\tgetIsBouncedResponse(\r\n\t\tusername: string\r\n\t): Observable {\r\n\t\tconst httpParams = new HttpParams().set(\"username\", username);\r\n\t\treturn this.httpClient.get(\r\n\t\t\t\"api/BouncedEmail/IsUserBounced\"\r\n\t\t\t, { params: httpParams }\r\n\t\t);\r\n\t}\r\n\r\n\tremoveBouncedUser(username: string) {\r\n\t\tconst httpParams = new HttpParams().set(\"username\", username);\r\n\t\treturn this.httpClient.get(\r\n\t\t\t\"api/BouncedEmail/RemoveFromBounceList\"\r\n\t\t\t, { params: httpParams }\r\n\t\t);\r\n\t}\r\n}\r\n","import { Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { SecurityService } from \"app/core/security/security.service\";\r\nimport { SendgridApiService } from \"app/core/sendgrid-api/sendgrid-api.service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { UserJsVm } from \"app/shared/generated/Administration/Models/Users/UserJsVm\";\r\nimport { SendgridBounceVm, SendgridUserBounceResponse } from 'app/shared/models/SendgridUserBounceResponse';\r\n\r\n@Component({\r\n selector: \"pcg-bounce-alert\",\r\n templateUrl: \"./bounce-alert.component.html\",\r\n styleUrls: [\"./bounce-alert.component.scss\"],\r\n standalone: false\r\n})\r\nexport class BounceAlertComponent implements OnInit, OnDestroy {\r\n\tuser: UserJsVm;\r\n\tbouncedEmailData: SendgridBounceVm;\r\n\tuserIsBounced: boolean = false;\r\n\terrorMsg: string;\r\n\tsubscriptions: Subscription = new Subscription();\r\n\r\n\tconstructor(\r\n\t\tprivate sendgridApiService: SendgridApiService,\r\n\t\tprivate securityService: SecurityService\r\n\t) {}\r\n\r\n\tngOnInit(): void {\r\n\t\tthis.getActiveUser();\r\n\t\tif (this.user != null) {\r\n\t\t\tthis.getBouncedEmailMessages(this.user.email);\r\n\t\t}\r\n\t}\r\n\r\n\tgetBouncedEmailMessages(username: string) {\r\n\t\tthis.sendgridApiService\r\n\t\t\t.getIsBouncedResponse(username)\r\n\t\t\t.subscribe((response: SendgridUserBounceResponse) => {\r\n\t\t\t\tif (response.isBounced) {\r\n\t\t\t\t\tthis.userIsBounced = true;\r\n\t\t\t\t\tthis.bouncedEmailData = response.sendgridBounceInfo;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tgetActiveUser() {\r\n\t\tthis.subscriptions.add(\r\n\t\t\tthis.securityService.user$.subscribe((user) => {\r\n\t\t\t\tif (user) {\r\n\t\t\t\t\tthis.user = user;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\tremoveFromBounceList() {\r\n\t\tthis.subscriptions.add(\r\n\t\t\tthis.sendgridApiService\r\n\t\t\t\t.removeBouncedUser(this.user.email)\r\n\t\t\t\t.subscribe((resp) => {\r\n\t\t\t\t\tif (resp === 204) {\r\n\t\t\t\t\t\tthis.userIsBounced = false;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.errorMsg =\r\n\t\t\t\t\t\t\t\"Unable to remove user from the bounce list at this time. Please try again later.\";\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\tngOnDestroy(): void {\r\n\t\tthis.subscriptions.unsubscribe();\r\n\t}\r\n}\r\n","
\r\n\t
\r\n\t\t
\r\n\t\t\tOur records indicate that your email address is currently on our bounce list and is not receiving emails\r\n\t\t\tfrom Homer.
\r\n\t\t\tReason: {{ bouncedEmailData.reason }}
\r\n\t\t\tPlease contact your company's network security team to whitelist HOMER@fdepcs.com to receive email from the\r\n\t\t\tsystem in the future.
\r\n\t\t\t{{ this.errorMsg }}\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, inject, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { PcgSelectComponent } from 'app/shared/form-elements/components/pcg-select-component/select.component';\r\nimport { SelectItem } from 'app/shared/models/select-item';\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { UserStateService } from 'app/state/user/user-state.service';\r\n\r\n@Component({\r\n selector: 'pcg-ci-workstation',\r\n templateUrl: './ci-workstation.component.html',\r\n styleUrls: ['./ci-workstation.component.scss'],\r\n standalone: false\r\n})\r\nexport class CiWorkstationComponent implements OnInit {\r\n\r\n @ViewChild('ciWorkstation', { static: false }) ciWorkstation: PcgSelectComponent;\r\n\r\n private userState = inject(UserStateService);\r\n readonly user = this.userState.user;\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal\r\n , private httpClient: HttpClient\r\n , public ms: SystemMessageService\r\n ) { }\r\n\r\n ngOnInit() { this.updateSelect(); }\r\n\r\n updateSelect() {\r\n this.httpClient.get(`api/Select/CiActiveWorkstations`)\r\n .subscribe((items: SelectItem[]) => {\r\n this.ciWorkstation.items = items;\r\n this.ciWorkstation.value = this.user()?.ciWorkstationId;\r\n }\r\n );\r\n }\r\n\r\n workstationChange(workstation: number) {\r\n this.ms.getHttpObservable(this, `api/CIRepack/CiWorkstation/SetUserWorkstation/${workstation}`)\r\n .subscribe(msg => {\r\n if (msg.isSuccessful) {\r\n this.userState.updateUser(msg.value);\r\n this.updateSelect();\r\n this.activeModal.dismiss();\r\n }\r\n }\r\n );\r\n }\r\n}\r\n","
\r\n\t
Assigned CI Workstation
\r\n\t\r\n
\r\n\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../table/interfaces/pcg-table-column.interface';\r\nimport { GenericOrderCommentListVm, GenericOrderCommentListVmFromFg } from '../../Models/GenericOrder/GenericOrderCommentListVm';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class GenericOrderCommentVm {\r\n\tcommentId: number;\r\n\torderId: number;\r\n\tcomment?: string;\r\n\tcommentorInfo?: string;\r\n\tcommentDateTime: Date;\r\n\tstrCommentDateTime?: string;\r\n\tstrTimeAgo?: string;\r\n\tcommentList?: GenericOrderCommentListVm[];\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'commentId': new UntypedFormControl(0, [...(validators['commentId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'orderId': new UntypedFormControl(0, [...(validators['orderId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'comment': new UntypedFormControl(null, [...(validators['comment'] ?? []), ...[Validators.required]]),\r\n\t\t\t'commentorInfo': new UntypedFormControl(null, [...(validators['commentorInfo'] ?? []), ...[]]),\r\n\t\t\t'commentDateTime': new UntypedFormControl('', [...(validators['commentDateTime'] ?? []), ...[Validators.required]]),\r\n\t\t\t'strCommentDateTime': new UntypedFormControl(null, [...(validators['strCommentDateTime'] ?? []), ...[]]),\r\n\t\t\t'strTimeAgo': new UntypedFormControl(null, [...(validators['strTimeAgo'] ?? []), ...[]]),\r\n\t\t\t'commentList': new UntypedFormArray([])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['commentId', {\"orderId\":0,\"sortColumn\":\"commentId\",\"searchColumn\":\"commentId\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Comment Id\",\"isVisible\":true,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['orderId', {\"orderId\":1,\"sortColumn\":\"orderId\",\"searchColumn\":\"orderId\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Order Id\",\"isVisible\":true,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['comment', {\"orderId\":2,\"sortColumn\":\"comment\",\"searchColumn\":\"comment\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Comment\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['commentorInfo', {\"orderId\":3,\"sortColumn\":\"commentorInfo\",\"searchColumn\":\"commentorInfo\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Commenter Info\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['commentDateTime', {\"orderId\":4,\"sortColumn\":\"commentDateTime\",\"searchColumn\":\"commentDateTime\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Comment Date\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): GenericOrderCommentVmFromFg {\r\n\t\treturn new GenericOrderCommentVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class GenericOrderCommentVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget commentId(): number {\r\n\t\treturn this.fg.get('commentId').value;\r\n\t}\r\n\tset commentId(val) {\r\n\t\tthis.fg.get('commentId').setValue(val);\r\n\t}\r\n\r\n\tget orderId(): number {\r\n\t\treturn this.fg.get('orderId').value;\r\n\t}\r\n\tset orderId(val) {\r\n\t\tthis.fg.get('orderId').setValue(val);\r\n\t}\r\n\r\n\tget comment(): string {\r\n\t\treturn this.fg.get('comment').value;\r\n\t}\r\n\tset comment(val) {\r\n\t\tthis.fg.get('comment').setValue(val);\r\n\t}\r\n\r\n\tget commentorInfo(): string {\r\n\t\treturn this.fg.get('commentorInfo').value;\r\n\t}\r\n\tset commentorInfo(val) {\r\n\t\tthis.fg.get('commentorInfo').setValue(val);\r\n\t}\r\n\r\n\tget commentDateTime(): Date {\r\n\t\treturn this.fg.get('commentDateTime').value;\r\n\t}\r\n\tset commentDateTime(val) {\r\n\t\tthis.fg.get('commentDateTime').setValue(val);\r\n\t}\r\n\r\n\tget strCommentDateTime(): string {\r\n\t\treturn this.fg.get('strCommentDateTime').value;\r\n\t}\r\n\tset strCommentDateTime(val) {\r\n\t\tthis.fg.get('strCommentDateTime').setValue(val);\r\n\t}\r\n\r\n\tget strTimeAgo(): string {\r\n\t\treturn this.fg.get('strTimeAgo').value;\r\n\t}\r\n\tset strTimeAgo(val) {\r\n\t\tthis.fg.get('strTimeAgo').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class MetabolicFormulaPatientInfoVm {\r\n\tpatientInfoId: number;\r\n\tpatientFirstName?: string;\r\n\tpatientLastName?: string;\r\n\tgender?: any;\r\n\tgenderStr?: string;\r\n\tdob?: string;\r\n\tparentGuardianFirstName?: string;\r\n\tparentGuardianLastName?: string;\r\n\tpatientAddress?: string;\r\n\tpatientAddress2?: string;\r\n\tpatientCity?: string;\r\n\tpatientState?: string;\r\n\tpatientStateId: number;\r\n\tpatientZip?: string;\r\n\tsmartyAddress?: any;\r\n\tsmartyAddressString?: string;\r\n\thasSmarty: boolean;\r\n\tpatientPhone?: string;\r\n\tpatientExt?: string;\r\n\tfriendlyId?: string;\r\n\tcanEdit?: boolean;\r\n\torderId: number;\r\n\tstepTitle?: string;\r\n\tstepDescription?: string;\r\n\tisActive: boolean;\r\n\tisComplete: boolean;\r\n\torderIndex: number;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'patientInfoId': new UntypedFormControl(0, [...(validators['patientInfoId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'patientFirstName': new UntypedFormControl(null, [...(validators['patientFirstName'] ?? []), ...[Validators.required, Validators.maxLength(50)]]),\r\n\t\t\t'patientLastName': new UntypedFormControl(null, [...(validators['patientLastName'] ?? []), ...[Validators.required, Validators.maxLength(50)]]),\r\n\t\t\t'gender': new UntypedFormControl(null, [...(validators['gender'] ?? []), ...[Validators.required]]),\r\n\t\t\t'genderStr': new UntypedFormControl(null, [...(validators['genderStr'] ?? []), ...[]]),\r\n\t\t\t'dob': new UntypedFormControl(null, [...(validators['dob'] ?? []), ...[Validators.required]]),\r\n\t\t\t'parentGuardianFirstName': new UntypedFormControl(null, [...(validators['parentGuardianFirstName'] ?? []), ...[Validators.required, Validators.maxLength(50)]]),\r\n\t\t\t'parentGuardianLastName': new UntypedFormControl(null, [...(validators['parentGuardianLastName'] ?? []), ...[Validators.required, Validators.maxLength(50)]]),\r\n\t\t\t'patientAddress': new UntypedFormControl(null, [...(validators['patientAddress'] ?? []), ...[]]),\r\n\t\t\t'patientAddress2': new UntypedFormControl(null, [...(validators['patientAddress2'] ?? []), ...[]]),\r\n\t\t\t'patientCity': new UntypedFormControl(null, [...(validators['patientCity'] ?? []), ...[]]),\r\n\t\t\t'patientState': new UntypedFormControl(null, [...(validators['patientState'] ?? []), ...[]]),\r\n\t\t\t'patientStateId': new UntypedFormControl(0, [...(validators['patientStateId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'patientZip': new UntypedFormControl(null, [...(validators['patientZip'] ?? []), ...[]]),\r\n\t\t\t'smartyAddress': new UntypedFormControl(null, [...(validators['smartyAddress'] ?? []), ...[Validators.required]]),\r\n\t\t\t'smartyAddressString': new UntypedFormControl(null, [...(validators['smartyAddressString'] ?? []), ...[]]),\r\n\t\t\t'hasSmarty': new UntypedFormControl(false, [...(validators['hasSmarty'] ?? []), ...[]]),\r\n\t\t\t'patientPhone': new UntypedFormControl(null, [...(validators['patientPhone'] ?? []), ...[Validators.required, Validators.maxLength(14)]]),\r\n\t\t\t'patientExt': new UntypedFormControl(null, [...(validators['patientExt'] ?? []), ...[Validators.maxLength(5)]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'canEdit': new UntypedFormControl(null, [...(validators['canEdit'] ?? []), ...[]]),\r\n\t\t\t'orderId': new UntypedFormControl(0, [...(validators['orderId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'stepTitle': new UntypedFormControl(null, [...(validators['stepTitle'] ?? []), ...[]]),\r\n\t\t\t'stepDescription': new UntypedFormControl(null, [...(validators['stepDescription'] ?? []), ...[]]),\r\n\t\t\t'isActive': new UntypedFormControl(false, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'isComplete': new UntypedFormControl(false, [...(validators['isComplete'] ?? []), ...[]]),\r\n\t\t\t'orderIndex': new UntypedFormControl(0, [...(validators['orderIndex'] ?? []), ...[Validators.required]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): MetabolicFormulaPatientInfoVmFromFg {\r\n\t\treturn new MetabolicFormulaPatientInfoVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class MetabolicFormulaPatientInfoVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget patientInfoId(): number {\r\n\t\treturn this.fg.get('patientInfoId').value;\r\n\t}\r\n\tset patientInfoId(val) {\r\n\t\tthis.fg.get('patientInfoId').setValue(val);\r\n\t}\r\n\r\n\tget patientFirstName(): string {\r\n\t\treturn this.fg.get('patientFirstName').value;\r\n\t}\r\n\tset patientFirstName(val) {\r\n\t\tthis.fg.get('patientFirstName').setValue(val);\r\n\t}\r\n\r\n\tget patientLastName(): string {\r\n\t\treturn this.fg.get('patientLastName').value;\r\n\t}\r\n\tset patientLastName(val) {\r\n\t\tthis.fg.get('patientLastName').setValue(val);\r\n\t}\r\n\r\n\tget gender(): any {\r\n\t\treturn this.fg.get('gender').value;\r\n\t}\r\n\tset gender(val) {\r\n\t\tthis.fg.get('gender').setValue(val);\r\n\t}\r\n\r\n\tget genderStr(): string {\r\n\t\treturn this.fg.get('genderStr').value;\r\n\t}\r\n\tset genderStr(val) {\r\n\t\tthis.fg.get('genderStr').setValue(val);\r\n\t}\r\n\r\n\tget dob(): string {\r\n\t\treturn this.fg.get('dob').value;\r\n\t}\r\n\tset dob(val) {\r\n\t\tthis.fg.get('dob').setValue(val);\r\n\t}\r\n\r\n\tget parentGuardianFirstName(): string {\r\n\t\treturn this.fg.get('parentGuardianFirstName').value;\r\n\t}\r\n\tset parentGuardianFirstName(val) {\r\n\t\tthis.fg.get('parentGuardianFirstName').setValue(val);\r\n\t}\r\n\r\n\tget parentGuardianLastName(): string {\r\n\t\treturn this.fg.get('parentGuardianLastName').value;\r\n\t}\r\n\tset parentGuardianLastName(val) {\r\n\t\tthis.fg.get('parentGuardianLastName').setValue(val);\r\n\t}\r\n\r\n\tget patientAddress(): string {\r\n\t\treturn this.fg.get('patientAddress').value;\r\n\t}\r\n\tset patientAddress(val) {\r\n\t\tthis.fg.get('patientAddress').setValue(val);\r\n\t}\r\n\r\n\tget patientAddress2(): string {\r\n\t\treturn this.fg.get('patientAddress2').value;\r\n\t}\r\n\tset patientAddress2(val) {\r\n\t\tthis.fg.get('patientAddress2').setValue(val);\r\n\t}\r\n\r\n\tget patientCity(): string {\r\n\t\treturn this.fg.get('patientCity').value;\r\n\t}\r\n\tset patientCity(val) {\r\n\t\tthis.fg.get('patientCity').setValue(val);\r\n\t}\r\n\r\n\tget patientState(): string {\r\n\t\treturn this.fg.get('patientState').value;\r\n\t}\r\n\tset patientState(val) {\r\n\t\tthis.fg.get('patientState').setValue(val);\r\n\t}\r\n\r\n\tget patientStateId(): number {\r\n\t\treturn this.fg.get('patientStateId').value;\r\n\t}\r\n\tset patientStateId(val) {\r\n\t\tthis.fg.get('patientStateId').setValue(val);\r\n\t}\r\n\r\n\tget patientZip(): string {\r\n\t\treturn this.fg.get('patientZip').value;\r\n\t}\r\n\tset patientZip(val) {\r\n\t\tthis.fg.get('patientZip').setValue(val);\r\n\t}\r\n\r\n\tget smartyAddress(): any {\r\n\t\treturn this.fg.get('smartyAddress').value;\r\n\t}\r\n\tset smartyAddress(val) {\r\n\t\tthis.fg.get('smartyAddress').setValue(val);\r\n\t}\r\n\r\n\tget smartyAddressString(): string {\r\n\t\treturn this.fg.get('smartyAddressString').value;\r\n\t}\r\n\tset smartyAddressString(val) {\r\n\t\tthis.fg.get('smartyAddressString').setValue(val);\r\n\t}\r\n\r\n\tget hasSmarty(): boolean {\r\n\t\treturn this.fg.get('hasSmarty').value;\r\n\t}\r\n\tset hasSmarty(val) {\r\n\t\tthis.fg.get('hasSmarty').setValue(val);\r\n\t}\r\n\r\n\tget patientPhone(): string {\r\n\t\treturn this.fg.get('patientPhone').value;\r\n\t}\r\n\tset patientPhone(val) {\r\n\t\tthis.fg.get('patientPhone').setValue(val);\r\n\t}\r\n\r\n\tget patientExt(): string {\r\n\t\treturn this.fg.get('patientExt').value;\r\n\t}\r\n\tset patientExt(val) {\r\n\t\tthis.fg.get('patientExt').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget canEdit(): boolean {\r\n\t\treturn this.fg.get('canEdit').value;\r\n\t}\r\n\tset canEdit(val) {\r\n\t\tthis.fg.get('canEdit').setValue(val);\r\n\t}\r\n\r\n\tget orderId(): number {\r\n\t\treturn this.fg.get('orderId').value;\r\n\t}\r\n\tset orderId(val) {\r\n\t\tthis.fg.get('orderId').setValue(val);\r\n\t}\r\n\r\n\tget stepTitle(): string {\r\n\t\treturn this.fg.get('stepTitle').value;\r\n\t}\r\n\tset stepTitle(val) {\r\n\t\tthis.fg.get('stepTitle').setValue(val);\r\n\t}\r\n\r\n\tget stepDescription(): string {\r\n\t\treturn this.fg.get('stepDescription').value;\r\n\t}\r\n\tset stepDescription(val) {\r\n\t\tthis.fg.get('stepDescription').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): boolean {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget isComplete(): boolean {\r\n\t\treturn this.fg.get('isComplete').value;\r\n\t}\r\n\tset isComplete(val) {\r\n\t\tthis.fg.get('isComplete').setValue(val);\r\n\t}\r\n\r\n\tget orderIndex(): number {\r\n\t\treturn this.fg.get('orderIndex').value;\r\n\t}\r\n\tset orderIndex(val) {\r\n\t\tthis.fg.get('orderIndex').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class MetabolicFormulaPatientCareVm {\r\n\tpatientCareId: number;\r\n\tdiagnosis?: string;\r\n\tdiagnosisId?: number;\r\n\tcomments?: string;\r\n\tphysicianFirstName?: string;\r\n\tphysicianLastName?: string;\r\n\tlicenseNumber?: string;\r\n\tfriendlyId?: string;\r\n\tstepName?: string;\r\n\tcanEdit?: boolean;\r\n\torderId: number;\r\n\tstepTitle?: string;\r\n\tstepDescription?: string;\r\n\tisActive: boolean;\r\n\tisComplete: boolean;\r\n\torderIndex: number;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'patientCareId': new UntypedFormControl(0, [...(validators['patientCareId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'diagnosis': new UntypedFormControl(null, [...(validators['diagnosis'] ?? []), ...[Validators.maxLength(500), Validators.required]]),\r\n\t\t\t'diagnosisId': new UntypedFormControl(null, [...(validators['diagnosisId'] ?? []), ...[]]),\r\n\t\t\t'comments': new UntypedFormControl(null, [...(validators['comments'] ?? []), ...[Validators.maxLength(500)]]),\r\n\t\t\t'physicianFirstName': new UntypedFormControl(null, [...(validators['physicianFirstName'] ?? []), ...[Validators.required, Validators.maxLength(50)]]),\r\n\t\t\t'physicianLastName': new UntypedFormControl(null, [...(validators['physicianLastName'] ?? []), ...[Validators.required, Validators.maxLength(50)]]),\r\n\t\t\t'licenseNumber': new UntypedFormControl(null, [...(validators['licenseNumber'] ?? []), ...[Validators.required, Validators.maxLength(25)]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'stepName': new UntypedFormControl(null, [...(validators['stepName'] ?? []), ...[]]),\r\n\t\t\t'canEdit': new UntypedFormControl(null, [...(validators['canEdit'] ?? []), ...[]]),\r\n\t\t\t'orderId': new UntypedFormControl(0, [...(validators['orderId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'stepTitle': new UntypedFormControl(null, [...(validators['stepTitle'] ?? []), ...[]]),\r\n\t\t\t'stepDescription': new UntypedFormControl(null, [...(validators['stepDescription'] ?? []), ...[]]),\r\n\t\t\t'isActive': new UntypedFormControl(false, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'isComplete': new UntypedFormControl(false, [...(validators['isComplete'] ?? []), ...[]]),\r\n\t\t\t'orderIndex': new UntypedFormControl(0, [...(validators['orderIndex'] ?? []), ...[Validators.required]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): MetabolicFormulaPatientCareVmFromFg {\r\n\t\treturn new MetabolicFormulaPatientCareVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class MetabolicFormulaPatientCareVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget patientCareId(): number {\r\n\t\treturn this.fg.get('patientCareId').value;\r\n\t}\r\n\tset patientCareId(val) {\r\n\t\tthis.fg.get('patientCareId').setValue(val);\r\n\t}\r\n\r\n\tget diagnosis(): string {\r\n\t\treturn this.fg.get('diagnosis').value;\r\n\t}\r\n\tset diagnosis(val) {\r\n\t\tthis.fg.get('diagnosis').setValue(val);\r\n\t}\r\n\r\n\tget diagnosisId(): number {\r\n\t\treturn this.fg.get('diagnosisId').value;\r\n\t}\r\n\tset diagnosisId(val) {\r\n\t\tthis.fg.get('diagnosisId').setValue(val);\r\n\t}\r\n\r\n\tget comments(): string {\r\n\t\treturn this.fg.get('comments').value;\r\n\t}\r\n\tset comments(val) {\r\n\t\tthis.fg.get('comments').setValue(val);\r\n\t}\r\n\r\n\tget physicianFirstName(): string {\r\n\t\treturn this.fg.get('physicianFirstName').value;\r\n\t}\r\n\tset physicianFirstName(val) {\r\n\t\tthis.fg.get('physicianFirstName').setValue(val);\r\n\t}\r\n\r\n\tget physicianLastName(): string {\r\n\t\treturn this.fg.get('physicianLastName').value;\r\n\t}\r\n\tset physicianLastName(val) {\r\n\t\tthis.fg.get('physicianLastName').setValue(val);\r\n\t}\r\n\r\n\tget licenseNumber(): string {\r\n\t\treturn this.fg.get('licenseNumber').value;\r\n\t}\r\n\tset licenseNumber(val) {\r\n\t\tthis.fg.get('licenseNumber').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget stepName(): string {\r\n\t\treturn this.fg.get('stepName').value;\r\n\t}\r\n\tset stepName(val) {\r\n\t\tthis.fg.get('stepName').setValue(val);\r\n\t}\r\n\r\n\tget canEdit(): boolean {\r\n\t\treturn this.fg.get('canEdit').value;\r\n\t}\r\n\tset canEdit(val) {\r\n\t\tthis.fg.get('canEdit').setValue(val);\r\n\t}\r\n\r\n\tget orderId(): number {\r\n\t\treturn this.fg.get('orderId').value;\r\n\t}\r\n\tset orderId(val) {\r\n\t\tthis.fg.get('orderId').setValue(val);\r\n\t}\r\n\r\n\tget stepTitle(): string {\r\n\t\treturn this.fg.get('stepTitle').value;\r\n\t}\r\n\tset stepTitle(val) {\r\n\t\tthis.fg.get('stepTitle').setValue(val);\r\n\t}\r\n\r\n\tget stepDescription(): string {\r\n\t\treturn this.fg.get('stepDescription').value;\r\n\t}\r\n\tset stepDescription(val) {\r\n\t\tthis.fg.get('stepDescription').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): boolean {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget isComplete(): boolean {\r\n\t\treturn this.fg.get('isComplete').value;\r\n\t}\r\n\tset isComplete(val) {\r\n\t\tthis.fg.get('isComplete').setValue(val);\r\n\t}\r\n\r\n\tget orderIndex(): number {\r\n\t\treturn this.fg.get('orderIndex').value;\r\n\t}\r\n\tset orderIndex(val) {\r\n\t\tthis.fg.get('orderIndex').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class MetabolicFormulaInsuranceInfoVm {\r\n\tinsuranceInfoId: number;\r\n\tinsuranceType?: any;\r\n\tinsuranceTypeStr?: string;\r\n\tinsuranceName?: string;\r\n\tgroupNumber?: string;\r\n\tinsuranceNumber?: string;\r\n\tdateInsuranceClaim?: string;\r\n\tsingleClaimOutcome?: any;\r\n\tsingleClaimOutcomeStr?: string;\r\n\tsingleClaimOutcomeComment?: string;\r\n\tfriendlyId?: string;\r\n\tstepName?: string;\r\n\tcanEdit?: boolean;\r\n\torderId: number;\r\n\tstepTitle?: string;\r\n\tstepDescription?: string;\r\n\tisActive: boolean;\r\n\tisComplete: boolean;\r\n\torderIndex: number;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'insuranceInfoId': new UntypedFormControl(0, [...(validators['insuranceInfoId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'insuranceType': new UntypedFormControl(null, [...(validators['insuranceType'] ?? []), ...[Validators.required]]),\r\n\t\t\t'insuranceTypeStr': new UntypedFormControl(null, [...(validators['insuranceTypeStr'] ?? []), ...[]]),\r\n\t\t\t'insuranceName': new UntypedFormControl(null, [...(validators['insuranceName'] ?? []), ...[Validators.required, Validators.maxLength(50)]]),\r\n\t\t\t'groupNumber': new UntypedFormControl(null, [...(validators['groupNumber'] ?? []), ...[Validators.required, Validators.maxLength(50)]]),\r\n\t\t\t'insuranceNumber': new UntypedFormControl(null, [...(validators['insuranceNumber'] ?? []), ...[Validators.required, Validators.maxLength(50)]]),\r\n\t\t\t'dateInsuranceClaim': new UntypedFormControl(null, [...(validators['dateInsuranceClaim'] ?? []), ...[Validators.required]]),\r\n\t\t\t'singleClaimOutcome': new UntypedFormControl(null, [...(validators['singleClaimOutcome'] ?? []), ...[Validators.required]]),\r\n\t\t\t'singleClaimOutcomeStr': new UntypedFormControl(null, [...(validators['singleClaimOutcomeStr'] ?? []), ...[]]),\r\n\t\t\t'singleClaimOutcomeComment': new UntypedFormControl(null, [...(validators['singleClaimOutcomeComment'] ?? []), ...[Validators.required, Validators.maxLength(500)]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'stepName': new UntypedFormControl(null, [...(validators['stepName'] ?? []), ...[]]),\r\n\t\t\t'canEdit': new UntypedFormControl(null, [...(validators['canEdit'] ?? []), ...[]]),\r\n\t\t\t'orderId': new UntypedFormControl(0, [...(validators['orderId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'stepTitle': new UntypedFormControl(null, [...(validators['stepTitle'] ?? []), ...[]]),\r\n\t\t\t'stepDescription': new UntypedFormControl(null, [...(validators['stepDescription'] ?? []), ...[]]),\r\n\t\t\t'isActive': new UntypedFormControl(false, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'isComplete': new UntypedFormControl(false, [...(validators['isComplete'] ?? []), ...[]]),\r\n\t\t\t'orderIndex': new UntypedFormControl(0, [...(validators['orderIndex'] ?? []), ...[Validators.required]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): MetabolicFormulaInsuranceInfoVmFromFg {\r\n\t\treturn new MetabolicFormulaInsuranceInfoVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class MetabolicFormulaInsuranceInfoVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget insuranceInfoId(): number {\r\n\t\treturn this.fg.get('insuranceInfoId').value;\r\n\t}\r\n\tset insuranceInfoId(val) {\r\n\t\tthis.fg.get('insuranceInfoId').setValue(val);\r\n\t}\r\n\r\n\tget insuranceType(): any {\r\n\t\treturn this.fg.get('insuranceType').value;\r\n\t}\r\n\tset insuranceType(val) {\r\n\t\tthis.fg.get('insuranceType').setValue(val);\r\n\t}\r\n\r\n\tget insuranceTypeStr(): string {\r\n\t\treturn this.fg.get('insuranceTypeStr').value;\r\n\t}\r\n\tset insuranceTypeStr(val) {\r\n\t\tthis.fg.get('insuranceTypeStr').setValue(val);\r\n\t}\r\n\r\n\tget insuranceName(): string {\r\n\t\treturn this.fg.get('insuranceName').value;\r\n\t}\r\n\tset insuranceName(val) {\r\n\t\tthis.fg.get('insuranceName').setValue(val);\r\n\t}\r\n\r\n\tget groupNumber(): string {\r\n\t\treturn this.fg.get('groupNumber').value;\r\n\t}\r\n\tset groupNumber(val) {\r\n\t\tthis.fg.get('groupNumber').setValue(val);\r\n\t}\r\n\r\n\tget insuranceNumber(): string {\r\n\t\treturn this.fg.get('insuranceNumber').value;\r\n\t}\r\n\tset insuranceNumber(val) {\r\n\t\tthis.fg.get('insuranceNumber').setValue(val);\r\n\t}\r\n\r\n\tget dateInsuranceClaim(): string {\r\n\t\treturn this.fg.get('dateInsuranceClaim').value;\r\n\t}\r\n\tset dateInsuranceClaim(val) {\r\n\t\tthis.fg.get('dateInsuranceClaim').setValue(val);\r\n\t}\r\n\r\n\tget singleClaimOutcome(): any {\r\n\t\treturn this.fg.get('singleClaimOutcome').value;\r\n\t}\r\n\tset singleClaimOutcome(val) {\r\n\t\tthis.fg.get('singleClaimOutcome').setValue(val);\r\n\t}\r\n\r\n\tget singleClaimOutcomeStr(): string {\r\n\t\treturn this.fg.get('singleClaimOutcomeStr').value;\r\n\t}\r\n\tset singleClaimOutcomeStr(val) {\r\n\t\tthis.fg.get('singleClaimOutcomeStr').setValue(val);\r\n\t}\r\n\r\n\tget singleClaimOutcomeComment(): string {\r\n\t\treturn this.fg.get('singleClaimOutcomeComment').value;\r\n\t}\r\n\tset singleClaimOutcomeComment(val) {\r\n\t\tthis.fg.get('singleClaimOutcomeComment').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget stepName(): string {\r\n\t\treturn this.fg.get('stepName').value;\r\n\t}\r\n\tset stepName(val) {\r\n\t\tthis.fg.get('stepName').setValue(val);\r\n\t}\r\n\r\n\tget canEdit(): boolean {\r\n\t\treturn this.fg.get('canEdit').value;\r\n\t}\r\n\tset canEdit(val) {\r\n\t\tthis.fg.get('canEdit').setValue(val);\r\n\t}\r\n\r\n\tget orderId(): number {\r\n\t\treturn this.fg.get('orderId').value;\r\n\t}\r\n\tset orderId(val) {\r\n\t\tthis.fg.get('orderId').setValue(val);\r\n\t}\r\n\r\n\tget stepTitle(): string {\r\n\t\treturn this.fg.get('stepTitle').value;\r\n\t}\r\n\tset stepTitle(val) {\r\n\t\tthis.fg.get('stepTitle').setValue(val);\r\n\t}\r\n\r\n\tget stepDescription(): string {\r\n\t\treturn this.fg.get('stepDescription').value;\r\n\t}\r\n\tset stepDescription(val) {\r\n\t\tthis.fg.get('stepDescription').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): boolean {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget isComplete(): boolean {\r\n\t\treturn this.fg.get('isComplete').value;\r\n\t}\r\n\tset isComplete(val) {\r\n\t\tthis.fg.get('isComplete').setValue(val);\r\n\t}\r\n\r\n\tget orderIndex(): number {\r\n\t\treturn this.fg.get('orderIndex').value;\r\n\t}\r\n\tset orderIndex(val) {\r\n\t\tthis.fg.get('orderIndex').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../table/interfaces/pcg-table-column.interface';\r\nimport { GenericOrderProductVm, GenericOrderProductVmFromFg } from '../../Models/GenericOrder/GenericOrderProductVm';\r\nimport { MetabolicFormulaPatientInfoVm, MetabolicFormulaPatientInfoVmFromFg } from '../../MetabolicFormula/Models/MetabolicFormulaPatientInfoVm';\r\nimport { MetabolicFormulaPatientCareVm, MetabolicFormulaPatientCareVmFromFg } from '../../MetabolicFormula/Models/MetabolicFormulaPatientCareVm';\r\nimport { MetabolicFormulaInsuranceInfoVm, MetabolicFormulaInsuranceInfoVmFromFg } from '../../MetabolicFormula/Models/MetabolicFormulaInsuranceInfoVm';\r\nimport { GenericOrderStepVm, GenericOrderStepVmFromFg } from '../../Models/GenericOrder/GenericOrderStepVm';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class GenericOrderDetailsVm {\r\n\tdateCreated?: Date;\r\n\tdateCreatedStr?: string;\r\n\tcreatedUserId?: number;\r\n\tcreatedUserName?: string;\r\n\tcreatedUserEmail?: string;\r\n\tfacilityId?: number;\r\n\tsenderFacilityName?: string;\r\n\tsenderFacilityAddress?: string;\r\n\tsenderFacilityCity?: string;\r\n\tsenderFacilityCounty?: string;\r\n\tsenderFacilityState?: string;\r\n\tsenderFacilityZip?: string;\r\n\tsenderPhone?: string;\r\n\tsenderPermitNumber?: string;\r\n\tfacilityName?: string;\r\n\tfacilityIdentifier?: string;\r\n\tfacilityAddress?: string;\r\n\tfacilityCity?: string;\r\n\tfacilityCounty?: string;\r\n\tfacilityState?: string;\r\n\tfacilityZip?: string;\r\n\tfacilityPhone?: string;\r\n\tphoneNumber?: string;\r\n\tdateOrdered?: Date;\r\n\tdateOrderedStr?: string;\r\n\torderedUserId?: number;\r\n\torderedUserName?: string;\r\n\torderedUserEmail?: string;\r\n\tdateReviewed?: Date;\r\n\tdateReviewedStr?: string;\r\n\treviewedUserId?: number;\r\n\treviewedUserName?: string;\r\n\treviewedUserEmail?: string;\r\n\tfriendlyId?: string;\r\n\tstepName?: string;\r\n\torderProductsVm?: GenericOrderProductVm[];\r\n\tmissing2FA: boolean;\r\n\tcanEdit?: boolean;\r\n\ttrackingLink?: string;\r\n\ttrackingNumber?: string;\r\n\tconfirmationNumber?: string;\r\n\tshipmentServiceType?: any;\r\n\tshipmentServiceTypeStr?: string;\r\n\tpatientInfoVm?: MetabolicFormulaPatientInfoVm;\r\n\tpatientCareVm?: MetabolicFormulaPatientCareVm;\r\n\tinsuranceInfoVm?: MetabolicFormulaInsuranceInfoVm;\r\n\tuniqueOrderIndex: number;\r\n\torderId: number;\r\n\torder?: any;\r\n\torderTitle?: string;\r\n\torderStatus?: any;\r\n\torderTabs?: any;\r\n\tavailableStatuses?: any;\r\n\torderSteps?: GenericOrderStepVm[];\r\n\tcommentCount: number;\r\n\tuploadCount: number;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'dateCreated': new UntypedFormControl(null, [...(validators['dateCreated'] ?? []), ...[]]),\r\n\t\t\t'dateCreatedStr': new UntypedFormControl(null, [...(validators['dateCreatedStr'] ?? []), ...[]]),\r\n\t\t\t'createdUserId': new UntypedFormControl(null, [...(validators['createdUserId'] ?? []), ...[]]),\r\n\t\t\t'createdUserName': new UntypedFormControl(null, [...(validators['createdUserName'] ?? []), ...[]]),\r\n\t\t\t'createdUserEmail': new UntypedFormControl(null, [...(validators['createdUserEmail'] ?? []), ...[]]),\r\n\t\t\t'facilityId': new UntypedFormControl(null, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'senderFacilityName': new UntypedFormControl(null, [...(validators['senderFacilityName'] ?? []), ...[]]),\r\n\t\t\t'senderFacilityAddress': new UntypedFormControl(null, [...(validators['senderFacilityAddress'] ?? []), ...[]]),\r\n\t\t\t'senderFacilityCity': new UntypedFormControl(null, [...(validators['senderFacilityCity'] ?? []), ...[]]),\r\n\t\t\t'senderFacilityCounty': new UntypedFormControl(null, [...(validators['senderFacilityCounty'] ?? []), ...[]]),\r\n\t\t\t'senderFacilityState': new UntypedFormControl(null, [...(validators['senderFacilityState'] ?? []), ...[]]),\r\n\t\t\t'senderFacilityZip': new UntypedFormControl(null, [...(validators['senderFacilityZip'] ?? []), ...[]]),\r\n\t\t\t'senderPhone': new UntypedFormControl(null, [...(validators['senderPhone'] ?? []), ...[]]),\r\n\t\t\t'senderPermitNumber': new UntypedFormControl(null, [...(validators['senderPermitNumber'] ?? []), ...[]]),\r\n\t\t\t'facilityName': new UntypedFormControl(null, [...(validators['facilityName'] ?? []), ...[]]),\r\n\t\t\t'facilityIdentifier': new UntypedFormControl(null, [...(validators['facilityIdentifier'] ?? []), ...[]]),\r\n\t\t\t'facilityAddress': new UntypedFormControl(null, [...(validators['facilityAddress'] ?? []), ...[]]),\r\n\t\t\t'facilityCity': new UntypedFormControl(null, [...(validators['facilityCity'] ?? []), ...[]]),\r\n\t\t\t'facilityCounty': new UntypedFormControl(null, [...(validators['facilityCounty'] ?? []), ...[]]),\r\n\t\t\t'facilityState': new UntypedFormControl(null, [...(validators['facilityState'] ?? []), ...[]]),\r\n\t\t\t'facilityZip': new UntypedFormControl(null, [...(validators['facilityZip'] ?? []), ...[]]),\r\n\t\t\t'facilityPhone': new UntypedFormControl(null, [...(validators['facilityPhone'] ?? []), ...[]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[Validators.maxLength(10)]]),\r\n\t\t\t'dateOrdered': new UntypedFormControl(null, [...(validators['dateOrdered'] ?? []), ...[]]),\r\n\t\t\t'dateOrderedStr': new UntypedFormControl(null, [...(validators['dateOrderedStr'] ?? []), ...[]]),\r\n\t\t\t'orderedUserId': new UntypedFormControl(null, [...(validators['orderedUserId'] ?? []), ...[]]),\r\n\t\t\t'orderedUserName': new UntypedFormControl(null, [...(validators['orderedUserName'] ?? []), ...[]]),\r\n\t\t\t'orderedUserEmail': new UntypedFormControl(null, [...(validators['orderedUserEmail'] ?? []), ...[]]),\r\n\t\t\t'dateReviewed': new UntypedFormControl(null, [...(validators['dateReviewed'] ?? []), ...[]]),\r\n\t\t\t'dateReviewedStr': new UntypedFormControl(null, [...(validators['dateReviewedStr'] ?? []), ...[]]),\r\n\t\t\t'reviewedUserId': new UntypedFormControl(null, [...(validators['reviewedUserId'] ?? []), ...[]]),\r\n\t\t\t'reviewedUserName': new UntypedFormControl(null, [...(validators['reviewedUserName'] ?? []), ...[]]),\r\n\t\t\t'reviewedUserEmail': new UntypedFormControl(null, [...(validators['reviewedUserEmail'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'stepName': new UntypedFormControl(null, [...(validators['stepName'] ?? []), ...[]]),\r\n\t\t\t'orderProductsVm': new UntypedFormArray([]),\r\n\t\t\t'missing2FA': new UntypedFormControl(false, [...(validators['missing2FA'] ?? []), ...[]]),\r\n\t\t\t'canEdit': new UntypedFormControl(null, [...(validators['canEdit'] ?? []), ...[]]),\r\n\t\t\t'trackingLink': new UntypedFormControl(null, [...(validators['trackingLink'] ?? []), ...[]]),\r\n\t\t\t'trackingNumber': new UntypedFormControl(null, [...(validators['trackingNumber'] ?? []), ...[]]),\r\n\t\t\t'confirmationNumber': new UntypedFormControl(null, [...(validators['confirmationNumber'] ?? []), ...[]]),\r\n\t\t\t'shipmentServiceType': new UntypedFormControl(null, [...(validators['shipmentServiceType'] ?? []), ...[]]),\r\n\t\t\t'shipmentServiceTypeStr': new UntypedFormControl(null, [...(validators['shipmentServiceTypeStr'] ?? []), ...[]]),\r\n\t\t\t'patientInfoVm': MetabolicFormulaPatientInfoVm.Form,\r\n\t\t\t'patientCareVm': MetabolicFormulaPatientCareVm.Form,\r\n\t\t\t'insuranceInfoVm': MetabolicFormulaInsuranceInfoVm.Form,\r\n\t\t\t'uniqueOrderIndex': new UntypedFormControl(0, [...(validators['uniqueOrderIndex'] ?? []), ...[Validators.required]]),\r\n\t\t\t'orderId': new UntypedFormControl(0, [...(validators['orderId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'order': new UntypedFormControl('', [...(validators['order'] ?? []), ...[Validators.required]]),\r\n\t\t\t'orderTitle': new UntypedFormControl(null, [...(validators['orderTitle'] ?? []), ...[]]),\r\n\t\t\t'orderStatus': new UntypedFormControl('', [...(validators['orderStatus'] ?? []), ...[Validators.required]]),\r\n\t\t\t'orderTabs': new UntypedFormControl([], [...(validators['orderTabs'] ?? []), ...[]]),\r\n\t\t\t'availableStatuses': new UntypedFormControl([], [...(validators['availableStatuses'] ?? []), ...[]]),\r\n\t\t\t'orderSteps': new UntypedFormArray([]),\r\n\t\t\t'commentCount': new UntypedFormControl(0, [...(validators['commentCount'] ?? []), ...[Validators.required]]),\r\n\t\t\t'uploadCount': new UntypedFormControl(0, [...(validators['uploadCount'] ?? []), ...[Validators.required]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): GenericOrderDetailsVmFromFg {\r\n\t\treturn new GenericOrderDetailsVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class GenericOrderDetailsVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget dateCreated(): Date {\r\n\t\treturn this.fg.get('dateCreated').value;\r\n\t}\r\n\tset dateCreated(val) {\r\n\t\tthis.fg.get('dateCreated').setValue(val);\r\n\t}\r\n\r\n\tget dateCreatedStr(): string {\r\n\t\treturn this.fg.get('dateCreatedStr').value;\r\n\t}\r\n\tset dateCreatedStr(val) {\r\n\t\tthis.fg.get('dateCreatedStr').setValue(val);\r\n\t}\r\n\r\n\tget createdUserId(): number {\r\n\t\treturn this.fg.get('createdUserId').value;\r\n\t}\r\n\tset createdUserId(val) {\r\n\t\tthis.fg.get('createdUserId').setValue(val);\r\n\t}\r\n\r\n\tget createdUserName(): string {\r\n\t\treturn this.fg.get('createdUserName').value;\r\n\t}\r\n\tset createdUserName(val) {\r\n\t\tthis.fg.get('createdUserName').setValue(val);\r\n\t}\r\n\r\n\tget createdUserEmail(): string {\r\n\t\treturn this.fg.get('createdUserEmail').value;\r\n\t}\r\n\tset createdUserEmail(val) {\r\n\t\tthis.fg.get('createdUserEmail').setValue(val);\r\n\t}\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget senderFacilityName(): string {\r\n\t\treturn this.fg.get('senderFacilityName').value;\r\n\t}\r\n\tset senderFacilityName(val) {\r\n\t\tthis.fg.get('senderFacilityName').setValue(val);\r\n\t}\r\n\r\n\tget senderFacilityAddress(): string {\r\n\t\treturn this.fg.get('senderFacilityAddress').value;\r\n\t}\r\n\tset senderFacilityAddress(val) {\r\n\t\tthis.fg.get('senderFacilityAddress').setValue(val);\r\n\t}\r\n\r\n\tget senderFacilityCity(): string {\r\n\t\treturn this.fg.get('senderFacilityCity').value;\r\n\t}\r\n\tset senderFacilityCity(val) {\r\n\t\tthis.fg.get('senderFacilityCity').setValue(val);\r\n\t}\r\n\r\n\tget senderFacilityCounty(): string {\r\n\t\treturn this.fg.get('senderFacilityCounty').value;\r\n\t}\r\n\tset senderFacilityCounty(val) {\r\n\t\tthis.fg.get('senderFacilityCounty').setValue(val);\r\n\t}\r\n\r\n\tget senderFacilityState(): string {\r\n\t\treturn this.fg.get('senderFacilityState').value;\r\n\t}\r\n\tset senderFacilityState(val) {\r\n\t\tthis.fg.get('senderFacilityState').setValue(val);\r\n\t}\r\n\r\n\tget senderFacilityZip(): string {\r\n\t\treturn this.fg.get('senderFacilityZip').value;\r\n\t}\r\n\tset senderFacilityZip(val) {\r\n\t\tthis.fg.get('senderFacilityZip').setValue(val);\r\n\t}\r\n\r\n\tget senderPhone(): string {\r\n\t\treturn this.fg.get('senderPhone').value;\r\n\t}\r\n\tset senderPhone(val) {\r\n\t\tthis.fg.get('senderPhone').setValue(val);\r\n\t}\r\n\r\n\tget senderPermitNumber(): string {\r\n\t\treturn this.fg.get('senderPermitNumber').value;\r\n\t}\r\n\tset senderPermitNumber(val) {\r\n\t\tthis.fg.get('senderPermitNumber').setValue(val);\r\n\t}\r\n\r\n\tget facilityName(): string {\r\n\t\treturn this.fg.get('facilityName').value;\r\n\t}\r\n\tset facilityName(val) {\r\n\t\tthis.fg.get('facilityName').setValue(val);\r\n\t}\r\n\r\n\tget facilityIdentifier(): string {\r\n\t\treturn this.fg.get('facilityIdentifier').value;\r\n\t}\r\n\tset facilityIdentifier(val) {\r\n\t\tthis.fg.get('facilityIdentifier').setValue(val);\r\n\t}\r\n\r\n\tget facilityAddress(): string {\r\n\t\treturn this.fg.get('facilityAddress').value;\r\n\t}\r\n\tset facilityAddress(val) {\r\n\t\tthis.fg.get('facilityAddress').setValue(val);\r\n\t}\r\n\r\n\tget facilityCity(): string {\r\n\t\treturn this.fg.get('facilityCity').value;\r\n\t}\r\n\tset facilityCity(val) {\r\n\t\tthis.fg.get('facilityCity').setValue(val);\r\n\t}\r\n\r\n\tget facilityCounty(): string {\r\n\t\treturn this.fg.get('facilityCounty').value;\r\n\t}\r\n\tset facilityCounty(val) {\r\n\t\tthis.fg.get('facilityCounty').setValue(val);\r\n\t}\r\n\r\n\tget facilityState(): string {\r\n\t\treturn this.fg.get('facilityState').value;\r\n\t}\r\n\tset facilityState(val) {\r\n\t\tthis.fg.get('facilityState').setValue(val);\r\n\t}\r\n\r\n\tget facilityZip(): string {\r\n\t\treturn this.fg.get('facilityZip').value;\r\n\t}\r\n\tset facilityZip(val) {\r\n\t\tthis.fg.get('facilityZip').setValue(val);\r\n\t}\r\n\r\n\tget facilityPhone(): string {\r\n\t\treturn this.fg.get('facilityPhone').value;\r\n\t}\r\n\tset facilityPhone(val) {\r\n\t\tthis.fg.get('facilityPhone').setValue(val);\r\n\t}\r\n\r\n\tget phoneNumber(): string {\r\n\t\treturn this.fg.get('phoneNumber').value;\r\n\t}\r\n\tset phoneNumber(val) {\r\n\t\tthis.fg.get('phoneNumber').setValue(val);\r\n\t}\r\n\r\n\tget dateOrdered(): Date {\r\n\t\treturn this.fg.get('dateOrdered').value;\r\n\t}\r\n\tset dateOrdered(val) {\r\n\t\tthis.fg.get('dateOrdered').setValue(val);\r\n\t}\r\n\r\n\tget dateOrderedStr(): string {\r\n\t\treturn this.fg.get('dateOrderedStr').value;\r\n\t}\r\n\tset dateOrderedStr(val) {\r\n\t\tthis.fg.get('dateOrderedStr').setValue(val);\r\n\t}\r\n\r\n\tget orderedUserId(): number {\r\n\t\treturn this.fg.get('orderedUserId').value;\r\n\t}\r\n\tset orderedUserId(val) {\r\n\t\tthis.fg.get('orderedUserId').setValue(val);\r\n\t}\r\n\r\n\tget orderedUserName(): string {\r\n\t\treturn this.fg.get('orderedUserName').value;\r\n\t}\r\n\tset orderedUserName(val) {\r\n\t\tthis.fg.get('orderedUserName').setValue(val);\r\n\t}\r\n\r\n\tget orderedUserEmail(): string {\r\n\t\treturn this.fg.get('orderedUserEmail').value;\r\n\t}\r\n\tset orderedUserEmail(val) {\r\n\t\tthis.fg.get('orderedUserEmail').setValue(val);\r\n\t}\r\n\r\n\tget dateReviewed(): Date {\r\n\t\treturn this.fg.get('dateReviewed').value;\r\n\t}\r\n\tset dateReviewed(val) {\r\n\t\tthis.fg.get('dateReviewed').setValue(val);\r\n\t}\r\n\r\n\tget dateReviewedStr(): string {\r\n\t\treturn this.fg.get('dateReviewedStr').value;\r\n\t}\r\n\tset dateReviewedStr(val) {\r\n\t\tthis.fg.get('dateReviewedStr').setValue(val);\r\n\t}\r\n\r\n\tget reviewedUserId(): number {\r\n\t\treturn this.fg.get('reviewedUserId').value;\r\n\t}\r\n\tset reviewedUserId(val) {\r\n\t\tthis.fg.get('reviewedUserId').setValue(val);\r\n\t}\r\n\r\n\tget reviewedUserName(): string {\r\n\t\treturn this.fg.get('reviewedUserName').value;\r\n\t}\r\n\tset reviewedUserName(val) {\r\n\t\tthis.fg.get('reviewedUserName').setValue(val);\r\n\t}\r\n\r\n\tget reviewedUserEmail(): string {\r\n\t\treturn this.fg.get('reviewedUserEmail').value;\r\n\t}\r\n\tset reviewedUserEmail(val) {\r\n\t\tthis.fg.get('reviewedUserEmail').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget stepName(): string {\r\n\t\treturn this.fg.get('stepName').value;\r\n\t}\r\n\tset stepName(val) {\r\n\t\tthis.fg.get('stepName').setValue(val);\r\n\t}\r\n\r\n\tget missing2FA(): boolean {\r\n\t\treturn this.fg.get('missing2FA').value;\r\n\t}\r\n\tset missing2FA(val) {\r\n\t\tthis.fg.get('missing2FA').setValue(val);\r\n\t}\r\n\r\n\tget canEdit(): boolean {\r\n\t\treturn this.fg.get('canEdit').value;\r\n\t}\r\n\tset canEdit(val) {\r\n\t\tthis.fg.get('canEdit').setValue(val);\r\n\t}\r\n\r\n\tget trackingLink(): string {\r\n\t\treturn this.fg.get('trackingLink').value;\r\n\t}\r\n\tset trackingLink(val) {\r\n\t\tthis.fg.get('trackingLink').setValue(val);\r\n\t}\r\n\r\n\tget trackingNumber(): string {\r\n\t\treturn this.fg.get('trackingNumber').value;\r\n\t}\r\n\tset trackingNumber(val) {\r\n\t\tthis.fg.get('trackingNumber').setValue(val);\r\n\t}\r\n\r\n\tget confirmationNumber(): string {\r\n\t\treturn this.fg.get('confirmationNumber').value;\r\n\t}\r\n\tset confirmationNumber(val) {\r\n\t\tthis.fg.get('confirmationNumber').setValue(val);\r\n\t}\r\n\r\n\tget shipmentServiceType(): any {\r\n\t\treturn this.fg.get('shipmentServiceType').value;\r\n\t}\r\n\tset shipmentServiceType(val) {\r\n\t\tthis.fg.get('shipmentServiceType').setValue(val);\r\n\t}\r\n\r\n\tget shipmentServiceTypeStr(): string {\r\n\t\treturn this.fg.get('shipmentServiceTypeStr').value;\r\n\t}\r\n\tset shipmentServiceTypeStr(val) {\r\n\t\tthis.fg.get('shipmentServiceTypeStr').setValue(val);\r\n\t}\r\n\r\n\tget patientInfoVm(): MetabolicFormulaPatientInfoVmFromFg {\r\n\t\treturn new MetabolicFormulaPatientInfoVmFromFg(this.fg.get('patientInfoVm') as UntypedFormGroup);\r\n\t}\r\n\tset patientInfoVm(val) {\r\n\t\t(this.fg.get('patientInfoVm') as UntypedFormGroup).setValue(val);\r\n\t}\r\n\r\n\tget patientCareVm(): MetabolicFormulaPatientCareVmFromFg {\r\n\t\treturn new MetabolicFormulaPatientCareVmFromFg(this.fg.get('patientCareVm') as UntypedFormGroup);\r\n\t}\r\n\tset patientCareVm(val) {\r\n\t\t(this.fg.get('patientCareVm') as UntypedFormGroup).setValue(val);\r\n\t}\r\n\r\n\tget insuranceInfoVm(): MetabolicFormulaInsuranceInfoVmFromFg {\r\n\t\treturn new MetabolicFormulaInsuranceInfoVmFromFg(this.fg.get('insuranceInfoVm') as UntypedFormGroup);\r\n\t}\r\n\tset insuranceInfoVm(val) {\r\n\t\t(this.fg.get('insuranceInfoVm') as UntypedFormGroup).setValue(val);\r\n\t}\r\n\r\n\tget uniqueOrderIndex(): number {\r\n\t\treturn this.fg.get('uniqueOrderIndex').value;\r\n\t}\r\n\tset uniqueOrderIndex(val) {\r\n\t\tthis.fg.get('uniqueOrderIndex').setValue(val);\r\n\t}\r\n\r\n\tget orderId(): number {\r\n\t\treturn this.fg.get('orderId').value;\r\n\t}\r\n\tset orderId(val) {\r\n\t\tthis.fg.get('orderId').setValue(val);\r\n\t}\r\n\r\n\tget order(): any {\r\n\t\treturn this.fg.get('order').value;\r\n\t}\r\n\tset order(val) {\r\n\t\tthis.fg.get('order').setValue(val);\r\n\t}\r\n\r\n\tget orderTitle(): string {\r\n\t\treturn this.fg.get('orderTitle').value;\r\n\t}\r\n\tset orderTitle(val) {\r\n\t\tthis.fg.get('orderTitle').setValue(val);\r\n\t}\r\n\r\n\tget orderStatus(): any {\r\n\t\treturn this.fg.get('orderStatus').value;\r\n\t}\r\n\tset orderStatus(val) {\r\n\t\tthis.fg.get('orderStatus').setValue(val);\r\n\t}\r\n\r\n\tget commentCount(): number {\r\n\t\treturn this.fg.get('commentCount').value;\r\n\t}\r\n\tset commentCount(val) {\r\n\t\tthis.fg.get('commentCount').setValue(val);\r\n\t}\r\n\r\n\tget uploadCount(): number {\r\n\t\treturn this.fg.get('uploadCount').value;\r\n\t}\r\n\tset uploadCount(val) {\r\n\t\tthis.fg.get('uploadCount').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\nimport { CiOrderJobVm, CiOrderJobVmFromFg } from '../../../CIRepack/Models/CiRepackOrderJobs/CiOrderJobVm';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class CiOrderInfoVm {\r\n\tciOrderId: number;\r\n\tciFacility?: any;\r\n\tfacilityId: number;\r\n\tpfsFacilityId?: number;\r\n\tciOrderStatus?: any;\r\n\tciOrderStatusString?: string;\r\n\tcreateOrderStep?: any;\r\n\tcreateOrderStepString?: string;\r\n\torderNumber?: string;\r\n\torderDateStr?: string;\r\n\torderDate: Date;\r\n\tcreatedByUser?: string;\r\n\tcreatedByUserEmail?: string;\r\n\tcreatedUserId: number;\r\n\tfacility?: string;\r\n\tfacilityAddress?: string;\r\n\tfacilityCity?: string;\r\n\tfacilityState?: string;\r\n\tfacilityZip?: string;\r\n\tfacilityIdentifier?: string;\r\n\tpermit50?: string;\r\n\tlicenseNumber?: string;\r\n\tfriendlyId?: string;\r\n\tcommentCount: number;\r\n\tshipSmartyAddress?: string;\r\n\tallJobsCompleted: boolean;\r\n\tavailableStatuses?: any;\r\n\treceivedStatuses?: any;\r\n\tpermitNumber?: string;\r\n\tpfsCiOrderId?: number;\r\n\tproductsCount: number;\r\n\tbottlesCount: number;\r\n\tproductsReceivedCount: number;\r\n\tbottlesReceivedCount: number;\r\n\tproducts?: any;\r\n\tciOrderJobs?: CiOrderJobVm[];\r\n\tinvoiceSecurityStamp?: string;\r\n\tcanGenerateCiInvoices: boolean;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'ciOrderId': new UntypedFormControl(0, [...(validators['ciOrderId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'ciFacility': new UntypedFormControl(null, [...(validators['ciFacility'] ?? []), ...[]]),\r\n\t\t\t'facilityId': new UntypedFormControl(0, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'pfsFacilityId': new UntypedFormControl(null, [...(validators['pfsFacilityId'] ?? []), ...[]]),\r\n\t\t\t'ciOrderStatus': new UntypedFormControl('', [...(validators['ciOrderStatus'] ?? []), ...[Validators.required]]),\r\n\t\t\t'ciOrderStatusString': new UntypedFormControl(null, [...(validators['ciOrderStatusString'] ?? []), ...[]]),\r\n\t\t\t'createOrderStep': new UntypedFormControl('', [...(validators['createOrderStep'] ?? []), ...[Validators.required]]),\r\n\t\t\t'createOrderStepString': new UntypedFormControl(null, [...(validators['createOrderStepString'] ?? []), ...[]]),\r\n\t\t\t'orderNumber': new UntypedFormControl(null, [...(validators['orderNumber'] ?? []), ...[]]),\r\n\t\t\t'orderDateStr': new UntypedFormControl(null, [...(validators['orderDateStr'] ?? []), ...[]]),\r\n\t\t\t'orderDate': new UntypedFormControl('', [...(validators['orderDate'] ?? []), ...[Validators.required]]),\r\n\t\t\t'createdByUser': new UntypedFormControl(null, [...(validators['createdByUser'] ?? []), ...[]]),\r\n\t\t\t'createdByUserEmail': new UntypedFormControl(null, [...(validators['createdByUserEmail'] ?? []), ...[]]),\r\n\t\t\t'createdUserId': new UntypedFormControl(0, [...(validators['createdUserId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facility': new UntypedFormControl(null, [...(validators['facility'] ?? []), ...[]]),\r\n\t\t\t'facilityAddress': new UntypedFormControl(null, [...(validators['facilityAddress'] ?? []), ...[]]),\r\n\t\t\t'facilityCity': new UntypedFormControl(null, [...(validators['facilityCity'] ?? []), ...[]]),\r\n\t\t\t'facilityState': new UntypedFormControl(null, [...(validators['facilityState'] ?? []), ...[]]),\r\n\t\t\t'facilityZip': new UntypedFormControl(null, [...(validators['facilityZip'] ?? []), ...[]]),\r\n\t\t\t'facilityIdentifier': new UntypedFormControl(null, [...(validators['facilityIdentifier'] ?? []), ...[]]),\r\n\t\t\t'permit50': new UntypedFormControl(null, [...(validators['permit50'] ?? []), ...[]]),\r\n\t\t\t'licenseNumber': new UntypedFormControl(null, [...(validators['licenseNumber'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'commentCount': new UntypedFormControl(0, [...(validators['commentCount'] ?? []), ...[Validators.required]]),\r\n\t\t\t'shipSmartyAddress': new UntypedFormControl(null, [...(validators['shipSmartyAddress'] ?? []), ...[]]),\r\n\t\t\t'allJobsCompleted': new UntypedFormControl(false, [...(validators['allJobsCompleted'] ?? []), ...[]]),\r\n\t\t\t'availableStatuses': new UntypedFormControl([], [...(validators['availableStatuses'] ?? []), ...[]]),\r\n\t\t\t'receivedStatuses': new UntypedFormControl([], [...(validators['receivedStatuses'] ?? []), ...[]]),\r\n\t\t\t'permitNumber': new UntypedFormControl(null, [...(validators['permitNumber'] ?? []), ...[]]),\r\n\t\t\t'pfsCiOrderId': new UntypedFormControl(null, [...(validators['pfsCiOrderId'] ?? []), ...[]]),\r\n\t\t\t'productsCount': new UntypedFormControl(0, [...(validators['productsCount'] ?? []), ...[Validators.required]]),\r\n\t\t\t'bottlesCount': new UntypedFormControl(0, [...(validators['bottlesCount'] ?? []), ...[Validators.required]]),\r\n\t\t\t'productsReceivedCount': new UntypedFormControl(0, [...(validators['productsReceivedCount'] ?? []), ...[Validators.required]]),\r\n\t\t\t'bottlesReceivedCount': new UntypedFormControl(0, [...(validators['bottlesReceivedCount'] ?? []), ...[Validators.required]]),\r\n\t\t\t'products': new UntypedFormControl([], [...(validators['products'] ?? []), ...[]]),\r\n\t\t\t'ciOrderJobs': new UntypedFormArray([]),\r\n\t\t\t'invoiceSecurityStamp': new UntypedFormControl(null, [...(validators['invoiceSecurityStamp'] ?? []), ...[]]),\r\n\t\t\t'canGenerateCiInvoices': new UntypedFormControl(false, [...(validators['canGenerateCiInvoices'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): CiOrderInfoVmFromFg {\r\n\t\treturn new CiOrderInfoVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class CiOrderInfoVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget ciOrderId(): number {\r\n\t\treturn this.fg.get('ciOrderId').value;\r\n\t}\r\n\tset ciOrderId(val) {\r\n\t\tthis.fg.get('ciOrderId').setValue(val);\r\n\t}\r\n\r\n\tget ciFacility(): any {\r\n\t\treturn this.fg.get('ciFacility').value;\r\n\t}\r\n\tset ciFacility(val) {\r\n\t\tthis.fg.get('ciFacility').setValue(val);\r\n\t}\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget pfsFacilityId(): number {\r\n\t\treturn this.fg.get('pfsFacilityId').value;\r\n\t}\r\n\tset pfsFacilityId(val) {\r\n\t\tthis.fg.get('pfsFacilityId').setValue(val);\r\n\t}\r\n\r\n\tget ciOrderStatus(): any {\r\n\t\treturn this.fg.get('ciOrderStatus').value;\r\n\t}\r\n\tset ciOrderStatus(val) {\r\n\t\tthis.fg.get('ciOrderStatus').setValue(val);\r\n\t}\r\n\r\n\tget ciOrderStatusString(): string {\r\n\t\treturn this.fg.get('ciOrderStatusString').value;\r\n\t}\r\n\tset ciOrderStatusString(val) {\r\n\t\tthis.fg.get('ciOrderStatusString').setValue(val);\r\n\t}\r\n\r\n\tget createOrderStep(): any {\r\n\t\treturn this.fg.get('createOrderStep').value;\r\n\t}\r\n\tset createOrderStep(val) {\r\n\t\tthis.fg.get('createOrderStep').setValue(val);\r\n\t}\r\n\r\n\tget createOrderStepString(): string {\r\n\t\treturn this.fg.get('createOrderStepString').value;\r\n\t}\r\n\tset createOrderStepString(val) {\r\n\t\tthis.fg.get('createOrderStepString').setValue(val);\r\n\t}\r\n\r\n\tget orderNumber(): string {\r\n\t\treturn this.fg.get('orderNumber').value;\r\n\t}\r\n\tset orderNumber(val) {\r\n\t\tthis.fg.get('orderNumber').setValue(val);\r\n\t}\r\n\r\n\tget orderDateStr(): string {\r\n\t\treturn this.fg.get('orderDateStr').value;\r\n\t}\r\n\tset orderDateStr(val) {\r\n\t\tthis.fg.get('orderDateStr').setValue(val);\r\n\t}\r\n\r\n\tget orderDate(): Date {\r\n\t\treturn this.fg.get('orderDate').value;\r\n\t}\r\n\tset orderDate(val) {\r\n\t\tthis.fg.get('orderDate').setValue(val);\r\n\t}\r\n\r\n\tget createdByUser(): string {\r\n\t\treturn this.fg.get('createdByUser').value;\r\n\t}\r\n\tset createdByUser(val) {\r\n\t\tthis.fg.get('createdByUser').setValue(val);\r\n\t}\r\n\r\n\tget createdByUserEmail(): string {\r\n\t\treturn this.fg.get('createdByUserEmail').value;\r\n\t}\r\n\tset createdByUserEmail(val) {\r\n\t\tthis.fg.get('createdByUserEmail').setValue(val);\r\n\t}\r\n\r\n\tget createdUserId(): number {\r\n\t\treturn this.fg.get('createdUserId').value;\r\n\t}\r\n\tset createdUserId(val) {\r\n\t\tthis.fg.get('createdUserId').setValue(val);\r\n\t}\r\n\r\n\tget facility(): string {\r\n\t\treturn this.fg.get('facility').value;\r\n\t}\r\n\tset facility(val) {\r\n\t\tthis.fg.get('facility').setValue(val);\r\n\t}\r\n\r\n\tget facilityAddress(): string {\r\n\t\treturn this.fg.get('facilityAddress').value;\r\n\t}\r\n\tset facilityAddress(val) {\r\n\t\tthis.fg.get('facilityAddress').setValue(val);\r\n\t}\r\n\r\n\tget facilityCity(): string {\r\n\t\treturn this.fg.get('facilityCity').value;\r\n\t}\r\n\tset facilityCity(val) {\r\n\t\tthis.fg.get('facilityCity').setValue(val);\r\n\t}\r\n\r\n\tget facilityState(): string {\r\n\t\treturn this.fg.get('facilityState').value;\r\n\t}\r\n\tset facilityState(val) {\r\n\t\tthis.fg.get('facilityState').setValue(val);\r\n\t}\r\n\r\n\tget facilityZip(): string {\r\n\t\treturn this.fg.get('facilityZip').value;\r\n\t}\r\n\tset facilityZip(val) {\r\n\t\tthis.fg.get('facilityZip').setValue(val);\r\n\t}\r\n\r\n\tget facilityIdentifier(): string {\r\n\t\treturn this.fg.get('facilityIdentifier').value;\r\n\t}\r\n\tset facilityIdentifier(val) {\r\n\t\tthis.fg.get('facilityIdentifier').setValue(val);\r\n\t}\r\n\r\n\tget permit50(): string {\r\n\t\treturn this.fg.get('permit50').value;\r\n\t}\r\n\tset permit50(val) {\r\n\t\tthis.fg.get('permit50').setValue(val);\r\n\t}\r\n\r\n\tget licenseNumber(): string {\r\n\t\treturn this.fg.get('licenseNumber').value;\r\n\t}\r\n\tset licenseNumber(val) {\r\n\t\tthis.fg.get('licenseNumber').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget commentCount(): number {\r\n\t\treturn this.fg.get('commentCount').value;\r\n\t}\r\n\tset commentCount(val) {\r\n\t\tthis.fg.get('commentCount').setValue(val);\r\n\t}\r\n\r\n\tget shipSmartyAddress(): string {\r\n\t\treturn this.fg.get('shipSmartyAddress').value;\r\n\t}\r\n\tset shipSmartyAddress(val) {\r\n\t\tthis.fg.get('shipSmartyAddress').setValue(val);\r\n\t}\r\n\r\n\tget allJobsCompleted(): boolean {\r\n\t\treturn this.fg.get('allJobsCompleted').value;\r\n\t}\r\n\tset allJobsCompleted(val) {\r\n\t\tthis.fg.get('allJobsCompleted').setValue(val);\r\n\t}\r\n\r\n\tget permitNumber(): string {\r\n\t\treturn this.fg.get('permitNumber').value;\r\n\t}\r\n\tset permitNumber(val) {\r\n\t\tthis.fg.get('permitNumber').setValue(val);\r\n\t}\r\n\r\n\tget pfsCiOrderId(): number {\r\n\t\treturn this.fg.get('pfsCiOrderId').value;\r\n\t}\r\n\tset pfsCiOrderId(val) {\r\n\t\tthis.fg.get('pfsCiOrderId').setValue(val);\r\n\t}\r\n\r\n\tget productsCount(): number {\r\n\t\treturn this.fg.get('productsCount').value;\r\n\t}\r\n\tset productsCount(val) {\r\n\t\tthis.fg.get('productsCount').setValue(val);\r\n\t}\r\n\r\n\tget bottlesCount(): number {\r\n\t\treturn this.fg.get('bottlesCount').value;\r\n\t}\r\n\tset bottlesCount(val) {\r\n\t\tthis.fg.get('bottlesCount').setValue(val);\r\n\t}\r\n\r\n\tget productsReceivedCount(): number {\r\n\t\treturn this.fg.get('productsReceivedCount').value;\r\n\t}\r\n\tset productsReceivedCount(val) {\r\n\t\tthis.fg.get('productsReceivedCount').setValue(val);\r\n\t}\r\n\r\n\tget bottlesReceivedCount(): number {\r\n\t\treturn this.fg.get('bottlesReceivedCount').value;\r\n\t}\r\n\tset bottlesReceivedCount(val) {\r\n\t\tthis.fg.get('bottlesReceivedCount').setValue(val);\r\n\t}\r\n\r\n\tget invoiceSecurityStamp(): string {\r\n\t\treturn this.fg.get('invoiceSecurityStamp').value;\r\n\t}\r\n\tset invoiceSecurityStamp(val) {\r\n\t\tthis.fg.get('invoiceSecurityStamp').setValue(val);\r\n\t}\r\n\r\n\tget canGenerateCiInvoices(): boolean {\r\n\t\treturn this.fg.get('canGenerateCiInvoices').value;\r\n\t}\r\n\tset canGenerateCiInvoices(val) {\r\n\t\tthis.fg.get('canGenerateCiInvoices').setValue(val);\r\n\t}\r\n}\r\n","import { Component, Input, OnInit, OnDestroy, Output, EventEmitter } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { GenericOrderCommentVm } from 'app/shared/generated/Models/GenericOrder/GenericOrderCommentVm';\r\nimport { GenericOrderDetailsVm } from 'app/shared/generated/Models/GenericOrder/GenericOrderDetailsVm';\r\nimport { CiOrderInfoVm } from 'app/shared/generated/CIRepack/Models/CiRepackOrder/CiOrderInfoVm';\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\n\r\n@Component({\r\n selector: 'pcg-shared-comments-modal',\r\n templateUrl: './comments-modal.component.html',\r\n styleUrls: ['./comments-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class SharedCommentsModalComponent implements OnInit, OnDestroy {\r\n\r\n @Input() orderId: number;\r\n @Input() businessArea: BusinessAreaEnum;\r\n @Input() modal: any;\r\n @Input() GenericOrder: GenericOrderDetailsVm = new GenericOrderDetailsVm();\r\n\t@Input() CiOrder: CiOrderInfoVm = new CiOrderInfoVm();\r\n @Output() updateCommentCount = new EventEmitter();\r\n\r\n\tuser: UserJsVm;\r\n\tformGroup = GenericOrderCommentVm.Form;\r\n \tcanEdit: boolean;\r\n\tsubscriptions = new Subscription();\r\n\tarea: string; \r\n controller: string; \r\n securityString: string; \r\n\tisMetabolic: boolean=false;\r\n \r\n constructor(private sec: SecurityService) { }\r\n\r\n ngOnInit() {\r\n this.subscriptions.add(this.sec.user$.subscribe(user => { this.user = user; }));\r\n if (this.businessArea === BusinessAreaEnum.CI) {\r\n\t\t\tthis.canEdit = true;\r\n\t\t\tthis.area = 'CIRepack';\r\n\t\t\tthis.controller = 'CiOrder';\r\n\t\t} else if (this.businessArea === BusinessAreaEnum.MetabolicFormula) {\r\n\t\t\tthis.area = \"MetabolicFormula\";\r\n this.controller = 'MetabolicFormula';\r\n this.securityString = \"Pku\";\r\n\t\t\tthis.isMetabolic=true;\r\n\t\t\tthis.canEdit = this.sec.hasModuleAccess(\r\n\t\t\t\t[ BusinessAreaEnum.MetabolicFormula ]\r\n\t\t\t\t, SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t);\r\n\t\t}\t\r\n\t}\r\n\r\n\tngOnDestroy() { this.subscriptions.unsubscribe(); }\r\n}\r\n","
\r\n
Comments
\r\n \r\n
\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class EditFacilityVm {\r\n\tfacilityId: number;\r\n\tfacilityName?: string;\r\n\tfacilityIdentifier?: string;\r\n\torganizationId?: number;\r\n\torganizationName?: string;\r\n\tcountyId?: number;\r\n\tcountyName?: string;\r\n\tsmartyAddress?: any;\r\n\tsmartyAddressString?: string;\r\n\thasSmarty: boolean;\r\n\tstateAbr?: string;\r\n\tphoneNumber?: string;\r\n\tdauCode?: string;\r\n\tisActive: boolean;\r\n\tisSameAddress: boolean;\r\n\tisIcqParticipant: boolean;\r\n\tshipFacilityName?: string;\r\n\tshipSmartyAddress?: any;\r\n\tshipSmartyAddressString?: string;\r\n\thasShipSmarty: boolean;\r\n\tshipStateAbr?: string;\r\n\tisShipAddressValidated: boolean;\r\n\tfriendlyId?: string;\r\n\tgln?: string;\r\n\tmedicalDirectorId?: number;\r\n\tmedicalDirectorName?: string;\r\n\tmedicalDirectorLicense?: string;\r\n\tmedicalDirectorExpDate?: string;\r\n\tpfsFacilityId?: number;\r\n\tfacilityType?: string;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'facilityId': new UntypedFormControl(0, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityName': new UntypedFormControl(null, [...(validators['facilityName'] ?? []), ...[Validators.required, Validators.maxLength(100)]]),\r\n\t\t\t'facilityIdentifier': new UntypedFormControl(null, [...(validators['facilityIdentifier'] ?? []), ...[Validators.required, Validators.maxLength(20)]]),\r\n\t\t\t'organizationId': new UntypedFormControl(null, [...(validators['organizationId'] ?? []), ...[]]),\r\n\t\t\t'organizationName': new UntypedFormControl(null, [...(validators['organizationName'] ?? []), ...[]]),\r\n\t\t\t'countyId': new UntypedFormControl(null, [...(validators['countyId'] ?? []), ...[]]),\r\n\t\t\t'countyName': new UntypedFormControl(null, [...(validators['countyName'] ?? []), ...[]]),\r\n\t\t\t'smartyAddress': new UntypedFormControl(null, [...(validators['smartyAddress'] ?? []), ...[Validators.required]]),\r\n\t\t\t'smartyAddressString': new UntypedFormControl(null, [...(validators['smartyAddressString'] ?? []), ...[]]),\r\n\t\t\t'hasSmarty': new UntypedFormControl(false, [...(validators['hasSmarty'] ?? []), ...[]]),\r\n\t\t\t'stateAbr': new UntypedFormControl(null, [...(validators['stateAbr'] ?? []), ...[]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[Validators.required, Validators.minLength(10)]]),\r\n\t\t\t'dauCode': new UntypedFormControl(null, [...(validators['dauCode'] ?? []), ...[Validators.maxLength(6)]]),\r\n\t\t\t'isActive': new UntypedFormControl(false, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'isSameAddress': new UntypedFormControl(false, [...(validators['isSameAddress'] ?? []), ...[]]),\r\n\t\t\t'isIcqParticipant': new UntypedFormControl(false, [...(validators['isIcqParticipant'] ?? []), ...[]]),\r\n\t\t\t'shipFacilityName': new UntypedFormControl(null, [...(validators['shipFacilityName'] ?? []), ...[Validators.required, Validators.maxLength(100)]]),\r\n\t\t\t'shipSmartyAddress': new UntypedFormControl(null, [...(validators['shipSmartyAddress'] ?? []), ...[Validators.required]]),\r\n\t\t\t'shipSmartyAddressString': new UntypedFormControl(null, [...(validators['shipSmartyAddressString'] ?? []), ...[]]),\r\n\t\t\t'hasShipSmarty': new UntypedFormControl(false, [...(validators['hasShipSmarty'] ?? []), ...[]]),\r\n\t\t\t'shipStateAbr': new UntypedFormControl(null, [...(validators['shipStateAbr'] ?? []), ...[]]),\r\n\t\t\t'isShipAddressValidated': new UntypedFormControl(false, [...(validators['isShipAddressValidated'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'gln': new UntypedFormControl(null, [...(validators['gln'] ?? []), ...[Validators.pattern(\"^[A-Za-z0-9 ]*\"), Validators.maxLength(13)]]),\r\n\t\t\t'medicalDirectorId': new UntypedFormControl(null, [...(validators['medicalDirectorId'] ?? []), ...[]]),\r\n\t\t\t'medicalDirectorName': new UntypedFormControl(null, [...(validators['medicalDirectorName'] ?? []), ...[]]),\r\n\t\t\t'medicalDirectorLicense': new UntypedFormControl(null, [...(validators['medicalDirectorLicense'] ?? []), ...[]]),\r\n\t\t\t'medicalDirectorExpDate': new UntypedFormControl(null, [...(validators['medicalDirectorExpDate'] ?? []), ...[]]),\r\n\t\t\t'pfsFacilityId': new UntypedFormControl(null, [...(validators['pfsFacilityId'] ?? []), ...[]]),\r\n\t\t\t'facilityType': new UntypedFormControl(null, [...(validators['facilityType'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): EditFacilityVmFromFg {\r\n\t\treturn new EditFacilityVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class EditFacilityVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget facilityName(): string {\r\n\t\treturn this.fg.get('facilityName').value;\r\n\t}\r\n\tset facilityName(val) {\r\n\t\tthis.fg.get('facilityName').setValue(val);\r\n\t}\r\n\r\n\tget facilityIdentifier(): string {\r\n\t\treturn this.fg.get('facilityIdentifier').value;\r\n\t}\r\n\tset facilityIdentifier(val) {\r\n\t\tthis.fg.get('facilityIdentifier').setValue(val);\r\n\t}\r\n\r\n\tget organizationId(): number {\r\n\t\treturn this.fg.get('organizationId').value;\r\n\t}\r\n\tset organizationId(val) {\r\n\t\tthis.fg.get('organizationId').setValue(val);\r\n\t}\r\n\r\n\tget organizationName(): string {\r\n\t\treturn this.fg.get('organizationName').value;\r\n\t}\r\n\tset organizationName(val) {\r\n\t\tthis.fg.get('organizationName').setValue(val);\r\n\t}\r\n\r\n\tget countyId(): number {\r\n\t\treturn this.fg.get('countyId').value;\r\n\t}\r\n\tset countyId(val) {\r\n\t\tthis.fg.get('countyId').setValue(val);\r\n\t}\r\n\r\n\tget countyName(): string {\r\n\t\treturn this.fg.get('countyName').value;\r\n\t}\r\n\tset countyName(val) {\r\n\t\tthis.fg.get('countyName').setValue(val);\r\n\t}\r\n\r\n\tget smartyAddress(): any {\r\n\t\treturn this.fg.get('smartyAddress').value;\r\n\t}\r\n\tset smartyAddress(val) {\r\n\t\tthis.fg.get('smartyAddress').setValue(val);\r\n\t}\r\n\r\n\tget smartyAddressString(): string {\r\n\t\treturn this.fg.get('smartyAddressString').value;\r\n\t}\r\n\tset smartyAddressString(val) {\r\n\t\tthis.fg.get('smartyAddressString').setValue(val);\r\n\t}\r\n\r\n\tget hasSmarty(): boolean {\r\n\t\treturn this.fg.get('hasSmarty').value;\r\n\t}\r\n\tset hasSmarty(val) {\r\n\t\tthis.fg.get('hasSmarty').setValue(val);\r\n\t}\r\n\r\n\tget stateAbr(): string {\r\n\t\treturn this.fg.get('stateAbr').value;\r\n\t}\r\n\tset stateAbr(val) {\r\n\t\tthis.fg.get('stateAbr').setValue(val);\r\n\t}\r\n\r\n\tget phoneNumber(): string {\r\n\t\treturn this.fg.get('phoneNumber').value;\r\n\t}\r\n\tset phoneNumber(val) {\r\n\t\tthis.fg.get('phoneNumber').setValue(val);\r\n\t}\r\n\r\n\tget dauCode(): string {\r\n\t\treturn this.fg.get('dauCode').value;\r\n\t}\r\n\tset dauCode(val) {\r\n\t\tthis.fg.get('dauCode').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): boolean {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget isSameAddress(): boolean {\r\n\t\treturn this.fg.get('isSameAddress').value;\r\n\t}\r\n\tset isSameAddress(val) {\r\n\t\tthis.fg.get('isSameAddress').setValue(val);\r\n\t}\r\n\r\n\tget isIcqParticipant(): boolean {\r\n\t\treturn this.fg.get('isIcqParticipant').value;\r\n\t}\r\n\tset isIcqParticipant(val) {\r\n\t\tthis.fg.get('isIcqParticipant').setValue(val);\r\n\t}\r\n\r\n\tget shipFacilityName(): string {\r\n\t\treturn this.fg.get('shipFacilityName').value;\r\n\t}\r\n\tset shipFacilityName(val) {\r\n\t\tthis.fg.get('shipFacilityName').setValue(val);\r\n\t}\r\n\r\n\tget shipSmartyAddress(): any {\r\n\t\treturn this.fg.get('shipSmartyAddress').value;\r\n\t}\r\n\tset shipSmartyAddress(val) {\r\n\t\tthis.fg.get('shipSmartyAddress').setValue(val);\r\n\t}\r\n\r\n\tget shipSmartyAddressString(): string {\r\n\t\treturn this.fg.get('shipSmartyAddressString').value;\r\n\t}\r\n\tset shipSmartyAddressString(val) {\r\n\t\tthis.fg.get('shipSmartyAddressString').setValue(val);\r\n\t}\r\n\r\n\tget hasShipSmarty(): boolean {\r\n\t\treturn this.fg.get('hasShipSmarty').value;\r\n\t}\r\n\tset hasShipSmarty(val) {\r\n\t\tthis.fg.get('hasShipSmarty').setValue(val);\r\n\t}\r\n\r\n\tget shipStateAbr(): string {\r\n\t\treturn this.fg.get('shipStateAbr').value;\r\n\t}\r\n\tset shipStateAbr(val) {\r\n\t\tthis.fg.get('shipStateAbr').setValue(val);\r\n\t}\r\n\r\n\tget isShipAddressValidated(): boolean {\r\n\t\treturn this.fg.get('isShipAddressValidated').value;\r\n\t}\r\n\tset isShipAddressValidated(val) {\r\n\t\tthis.fg.get('isShipAddressValidated').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget gln(): string {\r\n\t\treturn this.fg.get('gln').value;\r\n\t}\r\n\tset gln(val) {\r\n\t\tthis.fg.get('gln').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorId(): number {\r\n\t\treturn this.fg.get('medicalDirectorId').value;\r\n\t}\r\n\tset medicalDirectorId(val) {\r\n\t\tthis.fg.get('medicalDirectorId').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorName(): string {\r\n\t\treturn this.fg.get('medicalDirectorName').value;\r\n\t}\r\n\tset medicalDirectorName(val) {\r\n\t\tthis.fg.get('medicalDirectorName').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorLicense(): string {\r\n\t\treturn this.fg.get('medicalDirectorLicense').value;\r\n\t}\r\n\tset medicalDirectorLicense(val) {\r\n\t\tthis.fg.get('medicalDirectorLicense').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorExpDate(): string {\r\n\t\treturn this.fg.get('medicalDirectorExpDate').value;\r\n\t}\r\n\tset medicalDirectorExpDate(val) {\r\n\t\tthis.fg.get('medicalDirectorExpDate').setValue(val);\r\n\t}\r\n\r\n\tget pfsFacilityId(): number {\r\n\t\treturn this.fg.get('pfsFacilityId').value;\r\n\t}\r\n\tset pfsFacilityId(val) {\r\n\t\tthis.fg.get('pfsFacilityId').setValue(val);\r\n\t}\r\n\r\n\tget facilityType(): string {\r\n\t\treturn this.fg.get('facilityType').value;\r\n\t}\r\n\tset facilityType(val) {\r\n\t\tthis.fg.get('facilityType').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class FacilityCardinalAccountVm {\r\n\tcardinalAccountId: number;\r\n\tfacilityId: number;\r\n\taccountName?: string;\r\n\taccountNumber?: string;\r\n\tisIssuance810: boolean;\r\n\tisIssuance810String?: string;\r\n\tisBulk810: boolean;\r\n\tisBulk810String?: string;\r\n\tisCiModule810: boolean;\r\n\tisCiModule810String?: string;\r\n\tfriendlyId?: string;\r\n\tcanDelete: boolean;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'cardinalAccountId': new UntypedFormControl(0, [...(validators['cardinalAccountId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityId': new UntypedFormControl(0, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'accountName': new UntypedFormControl(null, [...(validators['accountName'] ?? []), ...[Validators.required, Validators.maxLength(50), Validators.minLength(0)]]),\r\n\t\t\t'accountNumber': new UntypedFormControl(null, [...(validators['accountNumber'] ?? []), ...[Validators.required, Validators.maxLength(50), Validators.minLength(0)]]),\r\n\t\t\t'isIssuance810': new UntypedFormControl(false, [...(validators['isIssuance810'] ?? []), ...[]]),\r\n\t\t\t'isIssuance810String': new UntypedFormControl(null, [...(validators['isIssuance810String'] ?? []), ...[]]),\r\n\t\t\t'isBulk810': new UntypedFormControl(false, [...(validators['isBulk810'] ?? []), ...[]]),\r\n\t\t\t'isBulk810String': new UntypedFormControl(null, [...(validators['isBulk810String'] ?? []), ...[]]),\r\n\t\t\t'isCiModule810': new UntypedFormControl(false, [...(validators['isCiModule810'] ?? []), ...[]]),\r\n\t\t\t'isCiModule810String': new UntypedFormControl(null, [...(validators['isCiModule810String'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'canDelete': new UntypedFormControl(false, [...(validators['canDelete'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['accountName', {\"orderId\":0,\"sortColumn\":\"accountName\",\"searchColumn\":\"accountName\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Account Name\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['accountNumber', {\"orderId\":1,\"sortColumn\":\"accountNumber\",\"searchColumn\":\"accountNumber\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Account Number\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['isCiModule810String', {\"orderId\":2,\"sortColumn\":\"isCiModule810\",\"searchColumn\":\"isCiModule810String\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Show in CI\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['isIssuance810String', {\"orderId\":3,\"sortColumn\":\"isIssuance810\",\"searchColumn\":\"isIssuance810String\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Show in Issuance\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['isBulk810String', {\"orderId\":4,\"sortColumn\":\"isBulk810\",\"searchColumn\":\"isBulk810String\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Show in Bulk\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['canDelete', {\"orderId\":5,\"sortColumn\":\"canDelete\",\"searchColumn\":\"canDelete\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Delete\",\"isVisible\":false,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): FacilityCardinalAccountVmFromFg {\r\n\t\treturn new FacilityCardinalAccountVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class FacilityCardinalAccountVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget cardinalAccountId(): number {\r\n\t\treturn this.fg.get('cardinalAccountId').value;\r\n\t}\r\n\tset cardinalAccountId(val) {\r\n\t\tthis.fg.get('cardinalAccountId').setValue(val);\r\n\t}\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget accountName(): string {\r\n\t\treturn this.fg.get('accountName').value;\r\n\t}\r\n\tset accountName(val) {\r\n\t\tthis.fg.get('accountName').setValue(val);\r\n\t}\r\n\r\n\tget accountNumber(): string {\r\n\t\treturn this.fg.get('accountNumber').value;\r\n\t}\r\n\tset accountNumber(val) {\r\n\t\tthis.fg.get('accountNumber').setValue(val);\r\n\t}\r\n\r\n\tget isIssuance810(): boolean {\r\n\t\treturn this.fg.get('isIssuance810').value;\r\n\t}\r\n\tset isIssuance810(val) {\r\n\t\tthis.fg.get('isIssuance810').setValue(val);\r\n\t}\r\n\r\n\tget isIssuance810String(): string {\r\n\t\treturn this.fg.get('isIssuance810String').value;\r\n\t}\r\n\tset isIssuance810String(val) {\r\n\t\tthis.fg.get('isIssuance810String').setValue(val);\r\n\t}\r\n\r\n\tget isBulk810(): boolean {\r\n\t\treturn this.fg.get('isBulk810').value;\r\n\t}\r\n\tset isBulk810(val) {\r\n\t\tthis.fg.get('isBulk810').setValue(val);\r\n\t}\r\n\r\n\tget isBulk810String(): string {\r\n\t\treturn this.fg.get('isBulk810String').value;\r\n\t}\r\n\tset isBulk810String(val) {\r\n\t\tthis.fg.get('isBulk810String').setValue(val);\r\n\t}\r\n\r\n\tget isCiModule810(): boolean {\r\n\t\treturn this.fg.get('isCiModule810').value;\r\n\t}\r\n\tset isCiModule810(val) {\r\n\t\tthis.fg.get('isCiModule810').setValue(val);\r\n\t}\r\n\r\n\tget isCiModule810String(): string {\r\n\t\treturn this.fg.get('isCiModule810String').value;\r\n\t}\r\n\tset isCiModule810String(val) {\r\n\t\tthis.fg.get('isCiModule810String').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget canDelete(): boolean {\r\n\t\treturn this.fg.get('canDelete').value;\r\n\t}\r\n\tset canDelete(val) {\r\n\t\tthis.fg.get('canDelete').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { UiSwitchComponent } from 'ngx-ui-switch';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { SystemMessage } from 'app/core/system-message/system-message-service';\r\nimport { FacilityCardinalAccountVm } from 'app/shared/generated/Administration/Models/Facilities/FacilityCardinalAccountVm';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\n\r\n@Component({\r\n selector: 'pcg-shared-facility-cardinal-accounts',\r\n templateUrl: './facility-cardinal-accounts.component.html',\r\n styleUrls: ['./facility-cardinal-accounts.component.scss'],\r\n standalone: false\r\n})\r\nexport class FacilityCardinalAccountsComponent implements OnInit {\r\n\r\n @ViewChild(TableComponent, { static: true }) table: TableComponent;\r\n @ViewChild('isCiModule810', { static: false }) isCiModule810: UiSwitchComponent; \r\n @ViewChild('isBulk810', { static: false }) isBulk810: UiSwitchComponent; \r\n @ViewChild('isIssuance810', { static: false }) isIssuance810: UiSwitchComponent; \r\n\r\n @Input() businessArea: BusinessAreaEnum;\r\n\r\n columns = FacilityCardinalAccountVm.ColumnDefs;\r\n formGroup = FacilityCardinalAccountVm.Form;\r\n model = FacilityCardinalAccountVm.GetModel(this.formGroup);\r\n model$: Observable;\r\n\r\n isAdd = false;\r\n canEdit = false;\r\n tab = 'Cardinal Accounts';\r\n facilityId: number;\r\n filters = { siteId: null };\r\n\r\n constructor(\r\n public title: Title\r\n , private sec: SecurityService\r\n , private route: ActivatedRoute\r\n , private httpClient: HttpClient\r\n ) {\r\n title.setTitle('Edit Facility');\r\n this.canEdit = this.sec.hasModuleAccess(\r\n [BusinessAreaEnum.CI, BusinessAreaEnum.MetabolicFormula]\r\n , [PermissionRole.UserAdmin, ...SecurityService.setMinRole(PermissionRole.Manager)]\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.facilityId = this.route.snapshot.params['id'];\r\n this.filters.siteId = this.facilityId;\r\n if (this.route.snapshot.queryParamMap.get('tab')) { this.tab = this.route.snapshot.queryParamMap.get('tab'); }\r\n }\r\n\r\n editAccount(cardinalAccountId: number) {\r\n this.isAdd = true;\r\n \r\n if (cardinalAccountId !== 0) {\r\n this.httpClient.get(`api/Administration/Facility/GetCardinalAccount?id=${cardinalAccountId}&facilityId=${this.facilityId}`)\r\n .subscribe((model: FacilityCardinalAccountVm) => {\r\n this.formGroup.setValue(model);\r\n }\r\n );\r\n } \r\n this.formGroup.get('facilityId').patchValue(this.facilityId); \r\n }\r\n\r\n cancel() {\r\n this.resetFormGroup();\r\n this.isAdd = false;\r\n }\r\n\r\n saveSuccess(msg: SystemMessage) {\r\n this.isAdd = false;\r\n this.resetFormGroup();\r\n this.table?.ajaxReload();\r\n }\r\n\r\n resetFormGroup() {\r\n this.formGroup.get('cardinalAccountId').patchValue(0);\r\n this.formGroup.get('accountName').patchValue(\"\");\r\n this.formGroup.get('accountNumber').patchValue(\"\");\r\n this.formGroup.get('isCiModule810').patchValue(false);\r\n this.formGroup.get('isBulk810').patchValue(false);\r\n this.formGroup.get('isIssuance810').patchValue(false);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n {{ columns.get('accountName').displayName }}\r\n \r\n {{ row.accountName }}\r\n \r\n \r\n \r\n \r\n {{ columns.get('accountNumber').displayName }}\r\n {{ row.accountNumber }}\r\n \r\n\r\n \r\n {{ columns.get('isCiModule810String').displayName }}\r\n {{ row.isCiModule810String }}\r\n \r\n\r\n \r\n {{ columns.get('isIssuance810String').displayName }}\r\n {{ row.isIssuance810String }}\r\n \r\n\r\n \r\n {{ columns.get('isBulk810String').displayName }}\r\n {{ row.isBulk810String }}\r\n \r\n \r\n \r\n \r\n Delete\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n \r\n Cancel\r\n \r\n \r\n
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\nimport { AuditHistoryVm } from 'app/shared/generated/Models/AuditHistoryVm';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\n\r\n@Component({\r\n selector: 'pcg-shared-facility-audit-history',\r\n templateUrl: './facility-audit-history.component.html',\r\n styleUrls: ['./facility-audit-history.component.scss'],\r\n standalone: false\r\n})\r\nexport class FacilityAuditHistoryComponent implements OnInit {\r\n\r\n @ViewChild(TableComponent, { static: true }) table: TableComponent;\r\n\tcolumns = AuditHistoryVm.ColumnDefs;\r\n\tfacilityName: string = null;\r\n\tfilters = {\r\n\t\tfacilityId: null\r\n\t};\r\n\r\n\tconstructor(title: Title, private activatedRoute: ActivatedRoute) { \r\n\t\ttitle.setTitle('Edit Facility');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.filters.facilityId = this.activatedRoute.snapshot.params['id'];\r\n\t}\r\n}\r\n","\r\n\t\r\n\t\t{{ columns.get('dateChanged').displayName }}\r\n\t\t{{ row.dateChangedFormatted }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('module').displayName }}\r\n\t\t{{ row.module }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('recordAffected').displayName }}\r\n\t\t{{ row.recordAffected }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('field').displayName }}\r\n\t\t{{ row.field }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('changedFrom').displayName }}\r\n\t\t{{ row.changedFrom }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('changedTo').displayName }}\r\n\t\t{{ row.changedTo }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('changedBy').displayName }}\r\n\t\t{{ row.changedBy }}\r\n\t\r\n\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class FacilityUserListVm {\r\n\tisLockedOut: boolean;\r\n\temailConfirmed: boolean;\r\n\tisEmailBounced: boolean;\r\n\tisEmailSpamReported: boolean;\r\n\tid: number;\r\n\tname?: string;\r\n\temail?: string;\r\n\tphoneNumber?: string;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'isLockedOut': new UntypedFormControl(false, [...(validators['isLockedOut'] ?? []), ...[]]),\r\n\t\t\t'emailConfirmed': new UntypedFormControl(false, [...(validators['emailConfirmed'] ?? []), ...[]]),\r\n\t\t\t'isEmailBounced': new UntypedFormControl(false, [...(validators['isEmailBounced'] ?? []), ...[]]),\r\n\t\t\t'isEmailSpamReported': new UntypedFormControl(false, [...(validators['isEmailSpamReported'] ?? []), ...[]]),\r\n\t\t\t'id': new UntypedFormControl(0, [...(validators['id'] ?? []), ...[Validators.required]]),\r\n\t\t\t'name': new UntypedFormControl(null, [...(validators['name'] ?? []), ...[]]),\r\n\t\t\t'email': new UntypedFormControl(null, [...(validators['email'] ?? []), ...[]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['name', {\"orderId\":0,\"sortColumn\":\"name\",\"searchColumn\":\"name\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Name\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['email', {\"orderId\":1,\"sortColumn\":\"email\",\"searchColumn\":\"email\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Email\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['phoneNumber', {\"orderId\":2,\"sortColumn\":\"phoneNumber\",\"searchColumn\":\"phoneNumber\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Phone\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): FacilityUserListVmFromFg {\r\n\t\treturn new FacilityUserListVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class FacilityUserListVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget isLockedOut(): boolean {\r\n\t\treturn this.fg.get('isLockedOut').value;\r\n\t}\r\n\tset isLockedOut(val) {\r\n\t\tthis.fg.get('isLockedOut').setValue(val);\r\n\t}\r\n\r\n\tget emailConfirmed(): boolean {\r\n\t\treturn this.fg.get('emailConfirmed').value;\r\n\t}\r\n\tset emailConfirmed(val) {\r\n\t\tthis.fg.get('emailConfirmed').setValue(val);\r\n\t}\r\n\r\n\tget isEmailBounced(): boolean {\r\n\t\treturn this.fg.get('isEmailBounced').value;\r\n\t}\r\n\tset isEmailBounced(val) {\r\n\t\tthis.fg.get('isEmailBounced').setValue(val);\r\n\t}\r\n\r\n\tget isEmailSpamReported(): boolean {\r\n\t\treturn this.fg.get('isEmailSpamReported').value;\r\n\t}\r\n\tset isEmailSpamReported(val) {\r\n\t\tthis.fg.get('isEmailSpamReported').setValue(val);\r\n\t}\r\n\r\n\tget id(): number {\r\n\t\treturn this.fg.get('id').value;\r\n\t}\r\n\tset id(val) {\r\n\t\tthis.fg.get('id').setValue(val);\r\n\t}\r\n\r\n\tget name(): string {\r\n\t\treturn this.fg.get('name').value;\r\n\t}\r\n\tset name(val) {\r\n\t\tthis.fg.get('name').setValue(val);\r\n\t}\r\n\r\n\tget email(): string {\r\n\t\treturn this.fg.get('email').value;\r\n\t}\r\n\tset email(val) {\r\n\t\tthis.fg.get('email').setValue(val);\r\n\t}\r\n\r\n\tget phoneNumber(): string {\r\n\t\treturn this.fg.get('phoneNumber').value;\r\n\t}\r\n\tset phoneNumber(val) {\r\n\t\tthis.fg.get('phoneNumber').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\nimport { DynamicFormFieldVm, DynamicFormFieldVmFromFg } from '../../../Models/DynamicFormFieldVm';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class EditUserVm {\r\n\tuserId: number;\r\n\tfirstName?: string;\r\n\tlastName?: string;\r\n\tuserName?: string;\r\n\tphoneNumber?: string;\r\n\temail?: string;\r\n\temailConfirmed: boolean;\r\n\tisEmailBounced: boolean;\r\n\tisEmailSpamReported: boolean;\r\n\tisActive: boolean;\r\n\tisLockedOut: boolean;\r\n\tinactivityTimeout: boolean;\r\n\tisInternalBphpUser: boolean;\r\n\tfields?: DynamicFormFieldVm[];\r\n\tcustomFields?: any;\r\n\tmode?: string;\r\n\tuserPin?: string;\r\n\tneedToResetPin: boolean;\r\n\tfriendlyId?: string;\r\n\tinventoryIds?: number[];\r\n\tinventories?: string[];\r\n\tfacilityIds?: number[];\r\n\tfacilities?: string[];\r\n\torganizationIds?: number[];\r\n\torganizations?: string[];\r\n\tsystemInventoryIds?: number[];\r\n\tupdateFacilities: boolean;\r\n\tupdateOrgs: boolean;\r\n\tbusinessArea?: any;\r\n\tbiometricFingerprintVersion: number;\r\n\torganizationId?: number;\r\n\torganizationName?: string;\r\n\torgLoginType?: any;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'userId': new UntypedFormControl(0, [...(validators['userId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'firstName': new UntypedFormControl(null, [...(validators['firstName'] ?? []), ...[Validators.required]]),\r\n\t\t\t'lastName': new UntypedFormControl(null, [...(validators['lastName'] ?? []), ...[Validators.required]]),\r\n\t\t\t'userName': new UntypedFormControl(null, [...(validators['userName'] ?? []), ...[Validators.required]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[Validators.required, Validators.pattern(\"(\\\\+\\\\d{1,3}\\\\s?)?((\\\\(\\\\d{3}\\\\)\\\\s?)|(\\\\d{3})(\\\\s|-?))(\\\\d{3}(\\\\s|-?))(\\\\d{4})(\\\\s?(([E|e]xt[:|.|]?)|x|X)(\\\\s?\\\\d+))?\")]]),\r\n\t\t\t'email': new UntypedFormControl(null, [...(validators['email'] ?? []), ...[Validators.required, Validators.email]]),\r\n\t\t\t'emailConfirmed': new UntypedFormControl(false, [...(validators['emailConfirmed'] ?? []), ...[]]),\r\n\t\t\t'isEmailBounced': new UntypedFormControl(false, [...(validators['isEmailBounced'] ?? []), ...[]]),\r\n\t\t\t'isEmailSpamReported': new UntypedFormControl(false, [...(validators['isEmailSpamReported'] ?? []), ...[]]),\r\n\t\t\t'isActive': new UntypedFormControl(false, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'isLockedOut': new UntypedFormControl(false, [...(validators['isLockedOut'] ?? []), ...[]]),\r\n\t\t\t'inactivityTimeout': new UntypedFormControl(false, [...(validators['inactivityTimeout'] ?? []), ...[]]),\r\n\t\t\t'isInternalBphpUser': new UntypedFormControl(false, [...(validators['isInternalBphpUser'] ?? []), ...[]]),\r\n\t\t\t'fields': new UntypedFormArray([]),\r\n\t\t\t'customFields': new UntypedFormControl(null, [...(validators['customFields'] ?? []), ...[]]),\r\n\t\t\t'mode': new UntypedFormControl(null, [...(validators['mode'] ?? []), ...[]]),\r\n\t\t\t'userPin': new UntypedFormControl(null, [...(validators['userPin'] ?? []), ...[Validators.maxLength(10)]]),\r\n\t\t\t'needToResetPin': new UntypedFormControl(false, [...(validators['needToResetPin'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'inventoryIds': new UntypedFormControl([], [...(validators['inventoryIds'] ?? []), ...[]]),\r\n\t\t\t'inventories': new UntypedFormControl([], [...(validators['inventories'] ?? []), ...[]]),\r\n\t\t\t'facilityIds': new UntypedFormControl([], [...(validators['facilityIds'] ?? []), ...[]]),\r\n\t\t\t'facilities': new UntypedFormControl([], [...(validators['facilities'] ?? []), ...[]]),\r\n\t\t\t'organizationIds': new UntypedFormControl([], [...(validators['organizationIds'] ?? []), ...[]]),\r\n\t\t\t'organizations': new UntypedFormControl([], [...(validators['organizations'] ?? []), ...[]]),\r\n\t\t\t'systemInventoryIds': new UntypedFormControl([], [...(validators['systemInventoryIds'] ?? []), ...[]]),\r\n\t\t\t'updateFacilities': new UntypedFormControl(false, [...(validators['updateFacilities'] ?? []), ...[]]),\r\n\t\t\t'updateOrgs': new UntypedFormControl(false, [...(validators['updateOrgs'] ?? []), ...[]]),\r\n\t\t\t'businessArea': new UntypedFormControl(null, [...(validators['businessArea'] ?? []), ...[]]),\r\n\t\t\t'biometricFingerprintVersion': new UntypedFormControl(0, [...(validators['biometricFingerprintVersion'] ?? []), ...[Validators.required]]),\r\n\t\t\t'organizationId': new UntypedFormControl(null, [...(validators['organizationId'] ?? []), ...[]]),\r\n\t\t\t'organizationName': new UntypedFormControl(null, [...(validators['organizationName'] ?? []), ...[]]),\r\n\t\t\t'orgLoginType': new UntypedFormControl(null, [...(validators['orgLoginType'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): EditUserVmFromFg {\r\n\t\treturn new EditUserVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class EditUserVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget userId(): number {\r\n\t\treturn this.fg.get('userId').value;\r\n\t}\r\n\tset userId(val) {\r\n\t\tthis.fg.get('userId').setValue(val);\r\n\t}\r\n\r\n\tget firstName(): string {\r\n\t\treturn this.fg.get('firstName').value;\r\n\t}\r\n\tset firstName(val) {\r\n\t\tthis.fg.get('firstName').setValue(val);\r\n\t}\r\n\r\n\tget lastName(): string {\r\n\t\treturn this.fg.get('lastName').value;\r\n\t}\r\n\tset lastName(val) {\r\n\t\tthis.fg.get('lastName').setValue(val);\r\n\t}\r\n\r\n\tget userName(): string {\r\n\t\treturn this.fg.get('userName').value;\r\n\t}\r\n\tset userName(val) {\r\n\t\tthis.fg.get('userName').setValue(val);\r\n\t}\r\n\r\n\tget phoneNumber(): string {\r\n\t\treturn this.fg.get('phoneNumber').value;\r\n\t}\r\n\tset phoneNumber(val) {\r\n\t\tthis.fg.get('phoneNumber').setValue(val);\r\n\t}\r\n\r\n\tget email(): string {\r\n\t\treturn this.fg.get('email').value;\r\n\t}\r\n\tset email(val) {\r\n\t\tthis.fg.get('email').setValue(val);\r\n\t}\r\n\r\n\tget emailConfirmed(): boolean {\r\n\t\treturn this.fg.get('emailConfirmed').value;\r\n\t}\r\n\tset emailConfirmed(val) {\r\n\t\tthis.fg.get('emailConfirmed').setValue(val);\r\n\t}\r\n\r\n\tget isEmailBounced(): boolean {\r\n\t\treturn this.fg.get('isEmailBounced').value;\r\n\t}\r\n\tset isEmailBounced(val) {\r\n\t\tthis.fg.get('isEmailBounced').setValue(val);\r\n\t}\r\n\r\n\tget isEmailSpamReported(): boolean {\r\n\t\treturn this.fg.get('isEmailSpamReported').value;\r\n\t}\r\n\tset isEmailSpamReported(val) {\r\n\t\tthis.fg.get('isEmailSpamReported').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): boolean {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget isLockedOut(): boolean {\r\n\t\treturn this.fg.get('isLockedOut').value;\r\n\t}\r\n\tset isLockedOut(val) {\r\n\t\tthis.fg.get('isLockedOut').setValue(val);\r\n\t}\r\n\r\n\tget inactivityTimeout(): boolean {\r\n\t\treturn this.fg.get('inactivityTimeout').value;\r\n\t}\r\n\tset inactivityTimeout(val) {\r\n\t\tthis.fg.get('inactivityTimeout').setValue(val);\r\n\t}\r\n\r\n\tget isInternalBphpUser(): boolean {\r\n\t\treturn this.fg.get('isInternalBphpUser').value;\r\n\t}\r\n\tset isInternalBphpUser(val) {\r\n\t\tthis.fg.get('isInternalBphpUser').setValue(val);\r\n\t}\r\n\r\n\tget customFields(): any {\r\n\t\treturn this.fg.get('customFields').value;\r\n\t}\r\n\tset customFields(val) {\r\n\t\tthis.fg.get('customFields').setValue(val);\r\n\t}\r\n\r\n\tget mode(): string {\r\n\t\treturn this.fg.get('mode').value;\r\n\t}\r\n\tset mode(val) {\r\n\t\tthis.fg.get('mode').setValue(val);\r\n\t}\r\n\r\n\tget userPin(): string {\r\n\t\treturn this.fg.get('userPin').value;\r\n\t}\r\n\tset userPin(val) {\r\n\t\tthis.fg.get('userPin').setValue(val);\r\n\t}\r\n\r\n\tget needToResetPin(): boolean {\r\n\t\treturn this.fg.get('needToResetPin').value;\r\n\t}\r\n\tset needToResetPin(val) {\r\n\t\tthis.fg.get('needToResetPin').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget updateFacilities(): boolean {\r\n\t\treturn this.fg.get('updateFacilities').value;\r\n\t}\r\n\tset updateFacilities(val) {\r\n\t\tthis.fg.get('updateFacilities').setValue(val);\r\n\t}\r\n\r\n\tget updateOrgs(): boolean {\r\n\t\treturn this.fg.get('updateOrgs').value;\r\n\t}\r\n\tset updateOrgs(val) {\r\n\t\tthis.fg.get('updateOrgs').setValue(val);\r\n\t}\r\n\r\n\tget businessArea(): any {\r\n\t\treturn this.fg.get('businessArea').value;\r\n\t}\r\n\tset businessArea(val) {\r\n\t\tthis.fg.get('businessArea').setValue(val);\r\n\t}\r\n\r\n\tget biometricFingerprintVersion(): number {\r\n\t\treturn this.fg.get('biometricFingerprintVersion').value;\r\n\t}\r\n\tset biometricFingerprintVersion(val) {\r\n\t\tthis.fg.get('biometricFingerprintVersion').setValue(val);\r\n\t}\r\n\r\n\tget organizationId(): number {\r\n\t\treturn this.fg.get('organizationId').value;\r\n\t}\r\n\tset organizationId(val) {\r\n\t\tthis.fg.get('organizationId').setValue(val);\r\n\t}\r\n\r\n\tget organizationName(): string {\r\n\t\treturn this.fg.get('organizationName').value;\r\n\t}\r\n\tset organizationName(val) {\r\n\t\tthis.fg.get('organizationName').setValue(val);\r\n\t}\r\n\r\n\tget orgLoginType(): any {\r\n\t\treturn this.fg.get('orgLoginType').value;\r\n\t}\r\n\tset orgLoginType(val) {\r\n\t\tthis.fg.get('orgLoginType').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Subscription } from 'rxjs';\r\nimport { faUserLock, faEnvelope, faTennisBall, faHourglassClock, faEnvelopesBulk } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { DynamicFormService } from 'app/shared/form-elements/components/dynamic-form/dynamic-form.service';\r\nimport { FacilityUserListVm } from 'app/shared/generated/Administration/Models/Facilities/FacilityUserListVm';\r\nimport { EditUserVm } from 'app/shared/generated/Administration/Models/Users/EditUserVm';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\nimport { FacilityBusinessAreaVm } from 'app/shared/generated/Administration/Models/Facilities/BusinessAreas/FacilityBusinessAreaVm';\r\nimport { ButtonFilterService } from 'app/shared/table/table-top/button-filter/button-filter.service';\r\n\r\n@Component({\r\n selector: 'pcg-shared-facility-user-list',\r\n templateUrl: './facility-user-list.component.html',\r\n styleUrls: ['./facility-user-list.component.scss'],\r\n standalone: false\r\n})\r\nexport class FacilityUserListComponent implements OnInit {\r\n\r\n @ViewChild(TableComponent, { static: false }) table: TableComponent;\r\n\r\n @Input() businessArea: BusinessAreaEnum;\r\n @Input() facilityName: string;\r\n @ViewChild('modalExistingUsersModal', { static: true }) modalContent: TemplateRef;\r\n\r\n subscriptions = new Subscription();\r\n formGroup = EditUserVm.Form;\r\n\tmodel = EditUserVm.GetModel(this.formGroup);\r\n\r\n canCreateUser = false;\r\n\tcanDeleteUser = false;\r\n\tcanEditUser = false;\r\n canAddUser = false;\r\n canEditFacilities = false; \r\n isCreate = false;\r\n userId = 0;\r\n facilityId: number;\r\n newUser = \"\";\r\n \r\n\tcolumns = FacilityUserListVm.ColumnDefs;\r\n\tfilters = {\r\n\t\tfacilityId: 0,\r\n businessArea: null,\r\n showSysAdmin: false\r\n\t};\r\n initFilters = Object.assign({}, this.filters);\r\n\tfilterMap = { \"showSysAdmin\" : \"Show System Admins?\"}\r\n\r\n faIconName = { \r\n\t\tfaUserLock\r\n\t\t, faEnvelope\r\n\t\t, faTennisBall\r\n\t\t, faHourglassClock \r\n\t\t, faEnvelopesBulk\r\n\t};\r\n\r\n tooltipModalString: string = `\r\n\t\t

\r\n\t\t\t\r\n\t\t\t  Locked Users: These users have entered an incorrect password 5 consecutive times. \r\n\t\t\tClick the Unlock button on their profile to unlock their account and send them a reset password email.
\r\n\t\t\t\r\n\t\t\t  Email needs manual validation: Our automated validation tool flagged this email. \r\n\t\t\tClick the Validate Email button on their profile.
\r\n\t\t\t\r\n\t\t\t  Undeliverable Email: Usually indicates a permanent error, \r\n\t\t\tbut can also be caused by a strict email security filter.You may need to reach out to your IT to whitelist our domain. \r\n\t\t\tClick the Unbounce Email button on their profile.
\r\n\t\t\t\r\n\t\t\t  Undeliverable Email due to Spam Report: \r\n\t\t\tThe user has reported one of our emails as spam. Click the Undo Spam button on their profile.\r\n\t\t

\r\n\t`;\r\n //TODO: Implement this property after adding user deactivation quartz jobs\r\n\t// \r\n\t//   This user has been deactivated due to 180 days of not logging in\r\n\t// or verifying a medication use, not completing their setup within 90 days, or no welcome email has been sent in 180 days since this user was created. \r\n\t// Click the Reactivate button on their profile.
\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute\r\n , public modalService: NgbModal\r\n , private security: SecurityService\r\n , private httpClient: HttpClient\r\n , private dynForm: DynamicFormService\r\n , private ms: SystemMessageService\r\n , public title: Title\r\n , public btnFilterService: ButtonFilterService\r\n ) {\r\n title.setTitle('Edit Facility');\r\n\t\tthis.canCreateUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ PermissionRole.Pharmacist ]\r\n ) \r\n || this.security.hasModuleAccess(\r\n [ \r\n BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n\t\tthis.canDeleteUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ PermissionRole.Pharmacist ]\r\n ) \r\n || this.security.hasModuleAccess(\r\n [\r\n BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n\t\tthis.canEditUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ PermissionRole.Pharmacist ]\r\n ) \r\n || this.security.hasModuleAccess(\r\n [ \r\n BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canAddUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ PermissionRole.SystemAdmin ]\r\n );\r\n }\r\n\r\n ngOnInit() {\r\n this.filters.facilityId = this.activatedRoute.snapshot.params['id'];\r\n this.newUser = \"/admin/users/user/edit/0?facilityId=\" + this.filters.facilityId;\r\n if (\r\n this.businessArea !== null \r\n && this.businessArea !== undefined\r\n ) {\r\n this.filters.businessArea = this.businessArea; \r\n this.newUser += \"&businessArea=\" + this.businessArea;\r\n } \r\n\r\n this.getBusinessArea();\r\n this.btnFilterService.resetFilterData.subscribe(() => { this.resetFilters(); });\r\n }\r\n\r\n reloadTable() { this.table.ajaxReload(); }\r\n\r\n resetFilters() {\r\n this.filters.showSysAdmin = false;\r\n\t\tthis.reloadTable();\r\n\t}\r\n\r\n getBusinessArea(){\r\n this.httpClient.get(`api/Administration/Facility/GetFacilityBusinessSettings/${this.filters.facilityId}`)\r\n .subscribe((ba: FacilityBusinessAreaVm) => {\r\n if(ba.hasCiAccess && this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.CI ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]))\r\n this.businessArea = BusinessAreaEnum.CI;\r\n else if (ba.hasInventoryAccess && this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Inventory ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]))\r\n this.businessArea = BusinessAreaEnum.Inventory;\r\n else if(ba.hasMetabolicAccess && this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.MetabolicFormula ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]))\r\n this.businessArea = BusinessAreaEnum.MetabolicFormula;\r\n this.setSecurity();\r\n });\r\n }\r\n\r\n setSecurity() {\r\n if (this.businessArea !== null && this.businessArea !== undefined) {\r\n switch (this.businessArea) {\r\n\t\t\t\tcase BusinessAreaEnum.MetabolicFormula:\r\n this.canEditFacilities = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.MetabolicFormula ]\r\n , [ \r\n PermissionRole.Manager\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canEditUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.MetabolicFormula ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n\t\t\t\t\tthis.canCreateUser = this.canEditUser;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase BusinessAreaEnum.CI:\r\n\t\t\t\t\tthis.canEditFacilities = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.CI ]\r\n , [\r\n PermissionRole.Manager\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canEditUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.CI ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n\t\t\t\t\tthis.canCreateUser = this.canEditUser;\r\n\t\t\t\t\tbreak;\r\n case BusinessAreaEnum.Inventory:\r\n this.canEditFacilities = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Inventory ]\r\n , [ \r\n PermissionRole.Manager\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canEditUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Inventory ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n ]\r\n );\r\n\t\t\t\t\tthis.canCreateUser = this.canEditUser;\r\n break;\r\n\t\t\t\tcase BusinessAreaEnum.Admin:\r\n\t\t\t\t\tthis.canEditFacilities = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ \r\n PermissionRole.Manager\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canEditUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [\r\n\t\t\t\t\t\t\t ...SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n ]\r\n );\r\n\t\t\t\t\tthis.canCreateUser = this.canEditUser;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault: \r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.canEditFacilities = this.security.hasModuleAccess(\r\n [\r\n BusinessAreaEnum.Admin\r\n , BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n , BusinessAreaEnum.Inventory\r\n ]\r\n , [\r\n PermissionRole.Manager\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canEditUser = this.security.hasModuleAccess(\r\n [\r\n BusinessAreaEnum.Admin\r\n , BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n\t\t\tthis.canCreateUser = this.canEditUser;\r\n\t\t}\r\n }\r\n\r\n getEditUserLink(id: number) {\r\n if (\r\n this.businessArea !== null \r\n && this.businessArea !== undefined\r\n ) {\r\n return decodeURI(\r\n '/admin/users/user/edit/' \r\n + id \r\n + \"?facilityId=\" \r\n + this.filters.facilityId \r\n + \"&businessArea=\" \r\n + this.businessArea\r\n );\r\n }\r\n return '/admin/users/user/edit/' + id;\r\n }\r\n\r\n addUserBtn() {\r\n this.modalService.open(this.modalContent, {\r\n\t\t\tanimation: false, beforeDismiss: () => {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}); \r\n }\r\n\r\n addExistingUser(userId: number, table: TableComponent) {\r\n this.httpClient.post(\r\n `api/administration/Facility/AddExistingUser?userId=${userId}&facilityId=${this.filters.facilityId}`\r\n , null\r\n ).subscribe((msg: SystemMessage) => { \r\n if (msg.isSuccessful) { \r\n table.ajaxReload(); \r\n this.reloadTable();\r\n } \r\n }); \r\n }\r\n\r\n createUser() {\r\n this.facilityId = parseInt(this.activatedRoute.snapshot.paramMap.get('id'), 10);\r\n this.setSecurity();\r\n\r\n this.subscriptions.add(this.httpClient.get(`api/Administration/Users/GetUser/0`)\r\n .subscribe((vm: EditUserVm) => {\r\n this.formGroup = this.dynForm.updateFormGroupFields(this.formGroup, vm.fields);\r\n this.formGroup.patchValue(vm);\r\n \r\n this.formGroup.controls[\"isActive\"].setValue(vm.isActive);\r\n this.formGroup.controls[\"inactivityTimeout\"].setValue(false);\r\n this.formGroup.controls[\"isInternalBphpUser\"].setValue(false);\r\n this.formGroup.controls[\"updateFacilities\"].setValue(true);\r\n if (this.businessArea !== null && this.businessArea !== undefined) {\r\n this.formGroup.controls[\"businessArea\"].setValue(this.businessArea);\r\n }\r\n \r\n this.formGroup.controls[\"facilityIds\"].setValue([this.facilityId]);\r\n }));\r\n\r\n this.isCreate = true; \r\n }\r\n\r\n saveUser(msg: SystemMessage) {\r\n msg.message= msg.message + ` \\nPlease set the user's module access to finish associating them to the facility.`;\r\n msg.link = `Click Here`\r\n this.ms.setSystemMessage(msg.message, 'warning', 60000, msg.link); \r\n \r\n if (msg.value) {\r\n\t\t\tthis.isCreate = false;\r\n this.reloadTable();\r\n\t\t}\r\n }\r\n\r\n cancelAdd() { this.isCreate = false; }\r\n}\r\n","\r\n\t
\r\n\t\t
\r\n\t\t\tCreate New User\r\n\t\t
\r\n\t\t
\r\n\t\t\tAdd Existing User\r\n\t\t
\r\n\t
\r\n\r\n\t\r\n\t
\r\n\t\t  \r\n\t\t\r\n\t\t\tLocked Users: These users have entered an incorrect password 5 consecutive times. \r\n\t\t\tClick the Unlock button on their profile to unlock their account and send them a reset password email.\r\n\t\t \r\n\t\t
\r\n\t\t  \r\n\t\tEmail needs manual validation: Our automated validation tool flagged this email. Click the Validate Email button on their profile. \r\n\t\t
\r\n\t\t  \r\n\t\t\r\n\t\t\tUndeliverable Email: Usually indicates a permanent error, but can also be caused by a strict email security filter.\r\n\t\t\tYou may need to reach out to your IT to whitelist our domain. Click the Unbounce Email button on their profile.\r\n\t\t \r\n\t\t
\r\n\t\t\r\n\t\t\r\n\t\t  \r\n\t\t\r\n\t\t\tUndeliverable Email due to Spam Report: The user has reported one of our emails as spam.\r\n\t\t\tClick the Undo Spam button on their profile.\r\n\t\t \r\n\t
\r\n
\r\n\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tYes\r\n\t\t\t\t\t\tNo\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\t\r\n\r\n\t\t\r\n\t\t\t\r\n\t\t\t{{ columns.get('name').displayName }}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{{ row.name }}\r\n\t\t\t\t{{ row.name }}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('email').displayName }}\r\n\t\t\t{{ row.email }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('phoneNumber').displayName }}\r\n\t\t\t{{ row.phoneNumber }}\r\n\t\t\r\n\r\n\t\r\n
\r\n\r\n\r\n\t
\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\t\t
\r\n\t\t\t

Create User

\r\n\t\t
\r\n\t\t\t\tNew users will not show up in the facility associated user list until they possess module access to at least one of the business areas assigned to this facilities. Upon creation, please set this in the user's profile.\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t
\r\n\t\t\tCancel\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n
\r\n\r\n\r\n\t
\r\n\t\t\r\n\r\n\t\t\r\n\t
\r\n
","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class EditFacilityCiDetailVm {\r\n\tfacilityAccountInfoId: number;\r\n\tfacilityId: number;\r\n\tfacilityName?: string;\r\n\tciPrimaryContactIds?: number[];\r\n\tciPrimaryContactNames?: string;\r\n\tfacilityColor?: string;\r\n\taccountCode?: string;\r\n\torg?: string;\r\n\teo?: string;\r\n\toca?: string;\r\n\tbfObjCode?: string;\r\n\tbfCategory?: string;\r\n\tinterAgencyAgreementNumber?: string;\r\n\tcanGenerateCiInvoices: boolean;\r\n\tfriendlyId?: string;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'facilityAccountInfoId': new UntypedFormControl(0, [...(validators['facilityAccountInfoId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityId': new UntypedFormControl(0, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityName': new UntypedFormControl(null, [...(validators['facilityName'] ?? []), ...[]]),\r\n\t\t\t'ciPrimaryContactIds': new UntypedFormControl([], [...(validators['ciPrimaryContactIds'] ?? []), ...[]]),\r\n\t\t\t'ciPrimaryContactNames': new UntypedFormControl(null, [...(validators['ciPrimaryContactNames'] ?? []), ...[]]),\r\n\t\t\t'facilityColor': new UntypedFormControl(null, [...(validators['facilityColor'] ?? []), ...[Validators.maxLength(50)]]),\r\n\t\t\t'accountCode': new UntypedFormControl(null, [...(validators['accountCode'] ?? []), ...[Validators.maxLength(50)]]),\r\n\t\t\t'org': new UntypedFormControl(null, [...(validators['org'] ?? []), ...[Validators.maxLength(50)]]),\r\n\t\t\t'eo': new UntypedFormControl(null, [...(validators['eo'] ?? []), ...[Validators.maxLength(50)]]),\r\n\t\t\t'oca': new UntypedFormControl(null, [...(validators['oca'] ?? []), ...[Validators.maxLength(50)]]),\r\n\t\t\t'bfObjCode': new UntypedFormControl(null, [...(validators['bfObjCode'] ?? []), ...[Validators.maxLength(50)]]),\r\n\t\t\t'bfCategory': new UntypedFormControl(null, [...(validators['bfCategory'] ?? []), ...[Validators.maxLength(50)]]),\r\n\t\t\t'interAgencyAgreementNumber': new UntypedFormControl(null, [...(validators['interAgencyAgreementNumber'] ?? []), ...[Validators.maxLength(50)]]),\r\n\t\t\t'canGenerateCiInvoices': new UntypedFormControl(false, [...(validators['canGenerateCiInvoices'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): EditFacilityCiDetailVmFromFg {\r\n\t\treturn new EditFacilityCiDetailVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class EditFacilityCiDetailVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget facilityAccountInfoId(): number {\r\n\t\treturn this.fg.get('facilityAccountInfoId').value;\r\n\t}\r\n\tset facilityAccountInfoId(val) {\r\n\t\tthis.fg.get('facilityAccountInfoId').setValue(val);\r\n\t}\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget facilityName(): string {\r\n\t\treturn this.fg.get('facilityName').value;\r\n\t}\r\n\tset facilityName(val) {\r\n\t\tthis.fg.get('facilityName').setValue(val);\r\n\t}\r\n\r\n\tget ciPrimaryContactNames(): string {\r\n\t\treturn this.fg.get('ciPrimaryContactNames').value;\r\n\t}\r\n\tset ciPrimaryContactNames(val) {\r\n\t\tthis.fg.get('ciPrimaryContactNames').setValue(val);\r\n\t}\r\n\r\n\tget facilityColor(): string {\r\n\t\treturn this.fg.get('facilityColor').value;\r\n\t}\r\n\tset facilityColor(val) {\r\n\t\tthis.fg.get('facilityColor').setValue(val);\r\n\t}\r\n\r\n\tget accountCode(): string {\r\n\t\treturn this.fg.get('accountCode').value;\r\n\t}\r\n\tset accountCode(val) {\r\n\t\tthis.fg.get('accountCode').setValue(val);\r\n\t}\r\n\r\n\tget org(): string {\r\n\t\treturn this.fg.get('org').value;\r\n\t}\r\n\tset org(val) {\r\n\t\tthis.fg.get('org').setValue(val);\r\n\t}\r\n\r\n\tget eo(): string {\r\n\t\treturn this.fg.get('eo').value;\r\n\t}\r\n\tset eo(val) {\r\n\t\tthis.fg.get('eo').setValue(val);\r\n\t}\r\n\r\n\tget oca(): string {\r\n\t\treturn this.fg.get('oca').value;\r\n\t}\r\n\tset oca(val) {\r\n\t\tthis.fg.get('oca').setValue(val);\r\n\t}\r\n\r\n\tget bfObjCode(): string {\r\n\t\treturn this.fg.get('bfObjCode').value;\r\n\t}\r\n\tset bfObjCode(val) {\r\n\t\tthis.fg.get('bfObjCode').setValue(val);\r\n\t}\r\n\r\n\tget bfCategory(): string {\r\n\t\treturn this.fg.get('bfCategory').value;\r\n\t}\r\n\tset bfCategory(val) {\r\n\t\tthis.fg.get('bfCategory').setValue(val);\r\n\t}\r\n\r\n\tget interAgencyAgreementNumber(): string {\r\n\t\treturn this.fg.get('interAgencyAgreementNumber').value;\r\n\t}\r\n\tset interAgencyAgreementNumber(val) {\r\n\t\tthis.fg.get('interAgencyAgreementNumber').setValue(val);\r\n\t}\r\n\r\n\tget canGenerateCiInvoices(): boolean {\r\n\t\treturn this.fg.get('canGenerateCiInvoices').value;\r\n\t}\r\n\tset canGenerateCiInvoices(val) {\r\n\t\tthis.fg.get('canGenerateCiInvoices').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class EditFacilityInventoryDetailVm {\r\n\tfacilityId: number;\r\n\tformTypeIds?: number[];\r\n\tformTypes?: string[];\r\n\tfriendlyId?: string;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'facilityId': new UntypedFormControl(0, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'formTypeIds': new UntypedFormControl([], [...(validators['formTypeIds'] ?? []), ...[]]),\r\n\t\t\t'formTypes': new UntypedFormControl([], [...(validators['formTypes'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): EditFacilityInventoryDetailVmFromFg {\r\n\t\treturn new EditFacilityInventoryDetailVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class EditFacilityInventoryDetailVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../../table/interfaces/pcg-table-column.interface';\r\nimport { EditFacilityCiDetailVm, EditFacilityCiDetailVmFromFg } from '../../../../Administration/Models/Facilities/BusinessAreas/EditFacilityCiDetailVm';\r\nimport { EditFacilityInventoryDetailVm, EditFacilityInventoryDetailVmFromFg } from '../../../../Administration/Models/Facilities/BusinessAreas/EditFacilityInventoryDetailVm';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class FacilityBusinessAreaVm {\r\n\tfacilityId: number;\r\n\tfacilityAccountInfoId: number;\r\n\thasCiAccess: boolean;\r\n\thasInventoryAccess: boolean;\r\n\thasMetabolicAccess: boolean;\r\n\tfacilityBusinessAreaEnums?: any;\r\n\tbusinessAreas?: string[];\r\n\tciDetailsVm?: EditFacilityCiDetailVm;\r\n\tinventoryDetailsVm?: EditFacilityInventoryDetailVm;\r\n\tfriendlyId?: string;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'facilityId': new UntypedFormControl(0, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityAccountInfoId': new UntypedFormControl(0, [...(validators['facilityAccountInfoId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'hasCiAccess': new UntypedFormControl(false, [...(validators['hasCiAccess'] ?? []), ...[]]),\r\n\t\t\t'hasInventoryAccess': new UntypedFormControl(false, [...(validators['hasInventoryAccess'] ?? []), ...[]]),\r\n\t\t\t'hasMetabolicAccess': new UntypedFormControl(false, [...(validators['hasMetabolicAccess'] ?? []), ...[]]),\r\n\t\t\t'facilityBusinessAreaEnums': new UntypedFormControl([], [...(validators['facilityBusinessAreaEnums'] ?? []), ...[]]),\r\n\t\t\t'businessAreas': new UntypedFormControl([], [...(validators['businessAreas'] ?? []), ...[]]),\r\n\t\t\t'ciDetailsVm': new UntypedFormControl(null, [...(validators['ciDetailsVm'] ?? []), ...[]]),\r\n\t\t\t'inventoryDetailsVm': new UntypedFormControl(null, [...(validators['inventoryDetailsVm'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): FacilityBusinessAreaVmFromFg {\r\n\t\treturn new FacilityBusinessAreaVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class FacilityBusinessAreaVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget facilityAccountInfoId(): number {\r\n\t\treturn this.fg.get('facilityAccountInfoId').value;\r\n\t}\r\n\tset facilityAccountInfoId(val) {\r\n\t\tthis.fg.get('facilityAccountInfoId').setValue(val);\r\n\t}\r\n\r\n\tget hasCiAccess(): boolean {\r\n\t\treturn this.fg.get('hasCiAccess').value;\r\n\t}\r\n\tset hasCiAccess(val) {\r\n\t\tthis.fg.get('hasCiAccess').setValue(val);\r\n\t}\r\n\r\n\tget hasInventoryAccess(): boolean {\r\n\t\treturn this.fg.get('hasInventoryAccess').value;\r\n\t}\r\n\tset hasInventoryAccess(val) {\r\n\t\tthis.fg.get('hasInventoryAccess').setValue(val);\r\n\t}\r\n\r\n\tget hasMetabolicAccess(): boolean {\r\n\t\treturn this.fg.get('hasMetabolicAccess').value;\r\n\t}\r\n\tset hasMetabolicAccess(val) {\r\n\t\tthis.fg.get('hasMetabolicAccess').setValue(val);\r\n\t}\r\n\r\n\tget facilityBusinessAreaEnums(): any {\r\n\t\treturn this.fg.get('facilityBusinessAreaEnums').value;\r\n\t}\r\n\tset facilityBusinessAreaEnums(val) {\r\n\t\tthis.fg.get('facilityBusinessAreaEnums').setValue(val);\r\n\t}\r\n\r\n\tget ciDetailsVm(): EditFacilityCiDetailVmFromFg {\r\n\t\treturn new EditFacilityCiDetailVmFromFg(this.fg.get('ciDetailsVm') as UntypedFormGroup);\r\n\t}\r\n\tset ciDetailsVm(val) {\r\n\t\t(this.fg.get('ciDetailsVm') as UntypedFormGroup).setValue(val);\r\n\t}\r\n\r\n\tget inventoryDetailsVm(): EditFacilityInventoryDetailVmFromFg {\r\n\t\treturn new EditFacilityInventoryDetailVmFromFg(this.fg.get('inventoryDetailsVm') as UntypedFormGroup);\r\n\t}\r\n\tset inventoryDetailsVm(val) {\r\n\t\t(this.fg.get('inventoryDetailsVm') as UntypedFormGroup).setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { EditFacilityCiDetailVm } from 'app/shared/generated/Administration/Models/Facilities/BusinessAreas/EditFacilityCiDetailVm';\r\nimport { UiSwitchComponent } from 'ngx-ui-switch';\r\n\r\n@Component({\r\n selector: 'pcg-ci-business-area',\r\n templateUrl: './ci-business-area.component.html',\r\n styleUrls: ['./ci-business-area.component.scss'],\r\n standalone: false\r\n})\r\nexport class CiBusinessAreaComponent implements OnInit {\r\n @Input() model: EditFacilityCiDetailVm = new EditFacilityCiDetailVm();\r\n @Output() modelChange = new EventEmitter();\r\n\r\n @ViewChild('canGenerateCiInvoices', { static: false }) canGenerateCiInvoices: UiSwitchComponent;\r\n\r\n formGroup = EditFacilityCiDetailVm.Form;\r\n id: number;\r\n\r\n canEditPrimaryContacts: boolean;\r\n canEdit = false;\r\n\r\n constructor(private sec: SecurityService, private route: ActivatedRoute, private httpClient: HttpClient) { }\r\n\r\n ngOnInit() {\r\n this.formGroup.setValue(this.model);\r\n this.id = this.model.facilityId;\r\n this.canEditPrimaryContacts = this.sec.hasModuleAccess([BusinessAreaEnum.Admin, BusinessAreaEnum.CI],\r\n [...SecurityService.setMinRole(PermissionRole.UserAdmin)]);\r\n this.canEdit = this.sec.hasModuleAccess(\r\n [BusinessAreaEnum.CI, BusinessAreaEnum.MetabolicFormula, BusinessAreaEnum.Admin]\r\n , [PermissionRole.UserAdmin, ...SecurityService.setMinRole(PermissionRole.Manager)]\r\n );\r\n }\r\n\r\n canGenerateCiInvoiceChange() {\r\n this.formGroup.controls['canGenerateCiInvoices'].patchValue(this.canGenerateCiInvoices.checked);\r\n this.modelChange.emit(this.formGroup.value);\r\n }\r\n}\r\n","
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { EditFacilityInventoryDetailVm } from 'app/shared/generated/Administration/Models/Facilities/BusinessAreas/EditFacilityInventoryDetailVm';\r\n\r\n@Component({\r\n selector: 'pcg-inventory-business-area',\r\n templateUrl: './inventory-business-area.component.html',\r\n styleUrls: ['./inventory-business-area.component.scss'],\r\n standalone: false\r\n})\r\nexport class InventoryBusinessAreaComponent implements OnInit {\r\n @Input() model: EditFacilityInventoryDetailVm;\r\n @Output() modelChange = new EventEmitter();\r\n\r\n formGroup = EditFacilityInventoryDetailVm.Form;\r\n canEdit: boolean;\r\n\r\n constructor(private sec: SecurityService) { }\r\n\r\n ngOnInit() {\r\n this.formGroup.patchValue(this.model);\r\n this.canEdit = this.sec.hasModuleAccess([BusinessAreaEnum.Admin, BusinessAreaEnum.CI],\r\n [...SecurityService.setMinRole(PermissionRole.UserAdmin)]);\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n
\r\n
","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'pcg-metabolic-business-area',\r\n templateUrl: './metabolic-business-area.component.html',\r\n styleUrls: ['./metabolic-business-area.component.scss'],\r\n standalone: false\r\n})\r\nexport class MetabolicBusinessAreaComponent {\r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, computed, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { faCaretDown, faCaretUp } from '@fortawesome/pro-solid-svg-icons';\r\nimport { Observable, tap } from 'rxjs';\r\n\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { FacilityBusinessAreaVm } from 'app/shared/generated/Administration/Models/Facilities/BusinessAreas/FacilityBusinessAreaVm';\r\nimport { SelectItem } from 'app/shared/models/select-item';\r\nimport { CiBusinessAreaComponent } from './ci-business-area/ci-business-area.component';\r\nimport { InventoryBusinessAreaComponent } from './inventory-business-area/inventory-business-area.component';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\n\r\n@Component({\r\n selector: 'pcg-facilty-business-areas',\r\n templateUrl: './facilty-business-areas.component.html',\r\n styleUrls: ['./facilty-business-areas.component.scss'],\r\n standalone: false\r\n})\r\nexport class FaciltyBusinessAreasComponent implements OnInit {\r\n\r\n @Input() businessArea: BusinessAreaEnum;\r\n @Input() id: number;\r\n @Input() canEdit: boolean;\r\n\r\n @ViewChild('ciBusinessArea') ciBusinessArea: CiBusinessAreaComponent;\r\n @ViewChild('inventoryBusinessArea') inventoryBusinessArea: InventoryBusinessAreaComponent;\r\n\r\n formGroup = FacilityBusinessAreaVm.Form;\r\n model: FacilityBusinessAreaVm = FacilityBusinessAreaVm.GetModel(this.formGroup);\r\n model$: Observable;\r\n userId = computed(() => this.sec.getUser().id);\r\n\r\n facilityBusinessAreas = [\r\n BusinessAreaEnum.CI,\r\n BusinessAreaEnum.Inventory,\r\n BusinessAreaEnum.MetabolicFormula,\r\n ];\r\n\r\n items: SelectItem[] = [\r\n { text: \"Has Access\", value: true },\r\n { text: \"No Access\", value: false, additionalData: { color: 'red' } }\r\n ];\r\n\r\n businessAreaEnum = BusinessAreaEnum;\r\n\r\n faCaretDown = faCaretDown;\r\n faCaretUp = faCaretUp;\r\n\r\n constructor(\r\n private route: ActivatedRoute\r\n , private httpClient: HttpClient\r\n , public router: Router\r\n , public ms: SystemMessageService\r\n , private sec: SecurityService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.GetFacilityBusinessSettings();\r\n if (!this.businessArea) { this.route.queryParams.subscribe((params) => { this.businessArea = Number(params.module); }); }\r\n }\r\n\r\n GetFacilityBusinessSettings() {\r\n this.route.paramMap.subscribe(map => {\r\n this.model$ = this.httpClient.get(`api/Administration/Facility/GetFacilityBusinessSettings/${this.id}`)\r\n .pipe(tap((vm: FacilityBusinessAreaVm) => {\r\n this.model = vm;\r\n this.formGroup.patchValue(this.model);\r\n })\r\n );\r\n });\r\n }\r\n\r\n getDisplayName = (ba: BusinessAreaEnum) => this.businessAreaEnum.toDescription(ba);\r\n hasBusinessArea = (ba: BusinessAreaEnum) => !this.model?.businessAreas.filter((o: string) => o === this.getDisplayName(ba)).length;\r\n hasValidCiForms = () => this.ciBusinessArea?.formGroup?.valid;\r\n hideBusinessArea = (ba: BusinessAreaEnum): boolean => !(ba == this.businessArea || this.businessArea == BusinessAreaEnum.Admin);\r\n\r\n submitForms() {\r\n this.formGroup.patchValue(this.model);\r\n if (\r\n !this.model.hasCiAccess \r\n && !this.model.hasInventoryAccess \r\n && !this.model.hasMetabolicAccess\r\n ) { return this.ms.setSystemMessage('At least one Business Area must be selected.', 'error'); }\r\n // Business areas will be undefined if user \r\n // is creating a new facility.\r\n if (this.model.hasCiAccess && !this.hasValidCiForms()) {\r\n return this.ms.setSystemMessage('You must fill out the facility account information before submitting.', 'error');\r\n }\r\n\r\n this.httpClient.post(`api/Administration/Facility/SaveFacilityBusinessSettings`, this.formGroup.value)\r\n .subscribe((sm: SystemMessage) => {\r\n if (sm.isSuccessful) { this.onMessageSuccess(sm); }\r\n else { this.onMessageError(sm); }\r\n }\r\n );\r\n }\r\n\r\n onMessageSuccess(sm: SystemMessage) {\r\n this.setSysMessage(sm);\r\n this.formGroup.setValue(sm.model);\r\n }\r\n\r\n onMessageError(sm: SystemMessage) { this.setSysMessage(sm); this.formGroup.patchValue(sm.model); }\r\n\r\n reroute(sm: SystemMessage) {\r\n if (\r\n this.businessArea === BusinessAreaEnum.Admin \r\n || this.businessArea === null \r\n || this.businessArea == undefined \r\n || Number.isNaN(this.businessArea)\r\n ) {\r\n this.router.navigate([`/admin/organizations/facilities/edit/${sm.value}`]);\r\n } else if (this.businessArea === BusinessAreaEnum.CI) {\r\n this.router.navigate([`/ci-repack/facilities/edit/${sm.value}`]);\r\n } else if (this.businessArea === BusinessAreaEnum.MetabolicFormula) {\r\n this.router.navigate([`/metabolic-formula/facilities/edit/${sm.value}`]);\r\n }\r\n }\r\n\r\n setSysMessage = (sm: SystemMessage) => this.ms.setSystemMessage(sm.message, sm.messageClass);\r\n}\r\n","
\r\n\t

\r\n\t\tThis tab contains business area specific information. Assigning access to certain business areas may require\r\n\t\tadditional details.\r\n\t\t
\r\n\t\tUpdates may only be performed by User Admin level users and above for either the related business area or the\r\n\t\t\"Admin\" business area.\r\n\t\t
\r\n\t\tTo view your roles, visit the module access section of your profile.\r\n\t

\r\n
\r\n\r\n
\r\n
\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t{{ getDisplayName(businessAreaEnum.CI) }}\r\n\t\t\t
\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{{ getDisplayName(businessAreaEnum.Inventory) }}\r\n\t\t\t
\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\t\r\n\t\r\n\t\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t{{ getDisplayName(businessAreaEnum.MetabolicFormula) }}\r\n\t\t\t
\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\t
\r\n\t\t\r\n\t
\r\n
","import { HttpClient } from \"@angular/common/http\";\r\nimport { Component, Input, OnInit, ViewChild, ViewChildren } from \"@angular/core\";\r\nimport { Title } from \"@angular/platform-browser\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { UiSwitchComponent } from \"ngx-ui-switch\";\r\nimport { Observable } from \"rxjs\";\r\nimport { tap } from \"rxjs/operators\";\r\nimport { faExternalLink } from \"@fortawesome/pro-solid-svg-icons\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\nimport { PcgSelectComponent } from \"app/shared/form-elements/components/pcg-select-component/select.component\";\r\nimport { ActivationEnum } from \"app/core/enums/generated/ActivationEnum\";\r\nimport { BusinessAreaEnum } from \"app/core/enums/generated/BusinessAreaEnum\";\r\nimport { PermissionRole } from \"app/core/enums/generated/PermissionRole\";\r\nimport { SecurityService } from \"app/core/security/security.service\";\r\nimport { SystemMessage, SystemMessageService } from \"app/core/system-message/system-message-service\";\r\nimport { EditFacilityVm } from \"app/shared/generated/Administration/Models/Facilities/EditFacilityVm\";\r\nimport { ActivationService } from \"app/shared/services/activation.service\";\r\nimport { FormatHelperService } from \"app/shared/helpers/format-helper.service\";\r\nimport { validateForm } from 'app/shared/form-elements/form-validateForm.function';\r\nimport { ConfirmationModalComponent } from 'app/shared/form-elements/components/confirmation-modal/confirmation-modal.component';\r\n\r\n@Component({\r\n selector: \"pcg-shared-edit-facility\",\r\n templateUrl: \"./edit-facility.component.html\",\r\n styleUrls: [\"./edit-facility.component.scss\"],\r\n standalone: false\r\n})\r\nexport class EditFacilityComponent implements OnInit {\r\n\r\n\t@Input() businessArea: BusinessAreaEnum;\r\n\t@Input() backBtnPlacement = \"auto\";\r\n\r\n\t@ViewChild(\"isActive\", { static: false }) isActive: UiSwitchComponent;\r\n\t@ViewChild(\"isSameAddress\", { static: false }) isSameAddress: UiSwitchComponent;\r\n\t@ViewChild(\"isShipAddressValidated\", { static: false }) isShipAddressValidated: UiSwitchComponent;\r\n\t\r\n\tformGroup = EditFacilityVm.Form;\r\n\tmodel = EditFacilityVm.GetModel(this.formGroup);\r\n\tmodel$: Observable;\r\n\tapi = \"api/Select/SmartyCounties\";\r\n\r\n\tcanEdit = false;\r\n\tcanDeactivate = false;\r\n\tcanViewReports = false;\r\n\tcanManualEntry = true;\r\n\tshipAddressDisabled = false;\r\n oldIcqParticipant = false;\r\n\r\n\tid: number;\r\n\r\n\tfacilityName: string;\r\n\tactiveTab = \"Details\";\r\n\toldShipSmartyAddress: string;\r\n\toldShipFacilityName: string;\r\n\tfaIcon = { faExternalLink };\r\n\r\n\t// Back Button Variables\r\n\tbackBtnLink: string;\r\n\tbackBtnTooltip: string;\r\n\r\n\tconstructor(\r\n\t\tprivate route: ActivatedRoute\r\n\t\t, private httpClient: HttpClient\r\n\t\t, public router: Router\r\n\t\t, title: Title\r\n\t\t, private sec: SecurityService\r\n\t\t, private activationService: ActivationService\r\n\t\t, public ms: SystemMessageService\r\n , public modalService: NgbModal\r\n\t) { title.setTitle(\"Edit Facility\"); }\r\n\r\n\tngOnInit() {\r\n\t\tthis.canEdit = this.sec.hasModuleAccess(\r\n\t\t\t[\r\n\t\t\t\tBusinessAreaEnum.CI\r\n\t\t\t\t, BusinessAreaEnum.MetabolicFormula\r\n\t\t\t\t, BusinessAreaEnum.Admin\r\n\t\t\t]\r\n\t\t\t, [\r\n\t\t\t\tPermissionRole.UserAdmin\r\n\t\t\t\t, ...SecurityService.setMinRole(PermissionRole.Manager)\r\n\t\t\t]\r\n\t\t);\r\n\t\tthis.canViewReports = this.sec.hasModuleAccess(\r\n\t\t\t[ \r\n\t\t\t\tBusinessAreaEnum.CI\r\n\t\t\t\t, BusinessAreaEnum.Admin\r\n\t\t\t]\r\n\t\t\t, [\r\n\t\t\t\tPermissionRole.UserAdmin\r\n\t\t\t\t, ...SecurityService.setMinRole(PermissionRole.Manager)\r\n\t\t\t]\r\n\t\t);\r\n\t\tthis.editFacility();\r\n\t\tif (this.route.snapshot.queryParamMap.get(\"tab\")) {\r\n\t\t\tthis.activeTab = this.route.snapshot.queryParamMap.get(\"tab\");\r\n\t\t}\r\n\t\tthis.backBtnTooltip = BusinessAreaEnum.toDescription(this.businessArea);\r\n\t\tif (\r\n\t\t\tthis.businessArea === null \r\n\t\t\t|| this.businessArea === undefined \r\n\t\t\t|| this.businessArea === BusinessAreaEnum.Admin\r\n\t\t) {\r\n\t\t\tif (\r\n\t\t\t\tthis.sec.hasModuleAccess(\r\n\t\t\t\t\t[ BusinessAreaEnum.Admin ]\r\n\t\t\t\t\t, [ ...SecurityService.setMinRole(PermissionRole.SystemAdmin) ]\r\n\t\t\t\t)\r\n\t\t\t) {\r\n\t\t\t\tthis.canEdit = true;\r\n\t\t\t\tthis.canDeactivate = true;\r\n\t\t\t}\r\n\t\t\tthis.backBtnTooltip = \"Global\";\r\n\t\t\tthis.backBtnLink = \"/admin/organizations/facilities/list\";\r\n\t\t} else if (this.businessArea === BusinessAreaEnum.CI) {\r\n\t\t\tthis.backBtnLink = \"/ci-repack/facilities/list\";\r\n\t\t} else if (this.businessArea === BusinessAreaEnum.MetabolicFormula) {\r\n\t\t\tthis.backBtnLink = \"/metabolic-formula/facilities/list\";\r\n\t\t}\r\n\r\n\t\tthis.formGroup.get('facilityType')?.disable();\r\n\t}\r\n\r\n\tgetMedicalDirector = () => this.hasMedicalDirector() \r\n\t\t? this.model?.medicalDirectorName \r\n\t\t: \"Set on the Organization\";\r\n\r\n\thasMedicalDirector = () => !FormatHelperService.GetIsNullyOrWhitespace(this.model.medicalDirectorName);\r\n\r\n\teditFacility() {\r\n\t\tthis.route.paramMap.subscribe((map) => {\r\n\t\t\tthis.id = parseInt(map.get(\"id\"), 10);\r\n\t\t\tthis.model$ = this.httpClient.get(`api/Administration/Facility/GetFacility/${this.id}`)\r\n\t\t\t\t.pipe(\r\n tap((vm: EditFacilityVm) => {\r\n if (vm.countyId === 0) { vm.countyId = null; } // preventing a blank selection on load\r\n this.formGroup.setValue(vm);\r\n this.facilityName = vm.facilityName;\r\n this.oldShipFacilityName = this.model.shipFacilityName;\r\n this.oldShipSmartyAddress = this.model.shipSmartyAddress;\r\n this.oldIcqParticipant = this.model.isIcqParticipant;\r\n this.toggleShippingFormActivation(!this.model.isSameAddress);\r\n })\r\n );\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tactivateDeactivate() {\r\n\t\tthis.activationService.activateDeactivate(\r\n\t\t\tthis.id\r\n\t\t\t, ActivationEnum.Facility\r\n\t\t\t, this.formGroup.value.isActive ? false : true\r\n\t\t);\r\n\t}\r\n\r\n\tupdateShippingInfo() {\r\n\t\tthis.formGroup.controls.countyName.patchValue(this.formGroup.controls.smartyAddress.value.countyName);\r\n\t\tif (this.isSameAddress.checked) {\r\n\t\t\tthis.formGroup.get(\"shipFacilityName\").patchValue(this.formGroup.value.facilityName);\r\n\t\t\tthis.formGroup.get(\"shipSmartyAddress\").patchValue(this.formGroup.value.smartyAddress);\r\n\t\t\tthis.toggleShippingFormActivation(false);\r\n\t\t} else {\r\n\t\t\tthis.formGroup.get(\"shipFacilityName\").patchValue(this.oldShipFacilityName);\r\n\t\t\tthis.formGroup.get(\"shipSmartyAddress\").patchValue(this.oldShipSmartyAddress);\r\n\t\t\tthis.toggleShippingFormActivation(true);\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleShippingFormActivation(isActive: Boolean) {\r\n\t\tif (isActive) {\r\n\t\t\tthis.enableShipFacilityName();\r\n\t\t\tthis.shipAddressDisabled = false;\r\n\t\t} else {\r\n\t\t\tthis.disableShipFacilityName();\r\n\t\t\tthis.shipAddressDisabled = true;\r\n\t\t}\r\n\t}\r\n\r\n\tvalidateCountyId() {\r\n\t\tif (this.formGroup?.value?.countyId === 0) {\r\n\t\t\tthis.formGroup?.controls?.countyId?.patchValue(null);\r\n\t\t\tthis.model = EditFacilityVm.GetModel(this.formGroup);\r\n\t\t}\r\n\t\tthis.formGroup.updateValueAndValidity();\r\n\t}\r\n\r\n\tsubmitForms() {\t\r\n if (!this.formGroup.valid) {\r\n\t\t\tvalidateForm(this.formGroup);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n if (\r\n this.oldIcqParticipant == true \r\n && this.formGroup.controls.isIcqParticipant.value == false\r\n ) {\r\n const modal = this.modalService.open(ConfirmationModalComponent);\r\n modal.componentInstance.modalRef = modal;\r\n modal.componentInstance.confirmationMessage = \"

\" \r\n + \"Setting ICQ Participant to off will remove any published ICQ Surveys for this Fiscal Year assiciated to this facility.\" \r\n + \"

\";\r\n modal.componentInstance.confirmationMessage += '

Are you sure you wish to continue?

'\r\n modal.result.then((emittedValue) => {\r\n if (emittedValue) { return this.runSave(); }\r\n }).catch(err => { // When user clicks out of confirmation box.\r\n\r\n });\r\n }\r\n\t\telse { this.runSave(); }\r\n\t}\r\n\r\n runSave() { \r\n\t\tlet disabled = this.hasDisabledShipFacilityName();\r\n\t\t// As a result of moving this to a .ts POST method, disabled values\r\n\t\t// won't go through within the request body.\r\n\t\tif (this.hasDisabledShipFacilityName) { this.enableShipFacilityName(); }\r\n\r\n this.httpClient.post(\r\n\t\t\t`api/Administration/Facility/SaveFacility`\r\n\t\t\t, this.formGroup.value\r\n\t\t).subscribe((sm: SystemMessage) => {\r\n\t\t\t// Re-disable property after POST request.\r\n\t\t\tif (disabled) { this.disableShipFacilityName(); }\r\n\t\t\tif (sm.isSuccessful) { this.onMessageSuccess(sm); } \r\n\t\t\telse { this.onMessageError(sm); }\r\n\t\t});\r\n }\r\n\r\n\treroute(sm: SystemMessage) {\r\n\t\tif (\r\n\t\t\tthis.businessArea === BusinessAreaEnum.Admin \r\n\t\t\t|| this.businessArea === null \r\n\t\t\t|| this.businessArea == undefined \r\n\t\t\t|| Number.isNaN(this.businessArea)\r\n\t\t) {\r\n\t\t\tthis.router.navigate([`/admin/organizations/facilities/edit/${sm.value}`]);\r\n\t\t} else if (this.businessArea === BusinessAreaEnum.CI) {\r\n\t\t\tthis.router.navigate([`/ci-repack/facilities/edit/${sm.value}`]);\r\n\t\t} else if (this.businessArea === BusinessAreaEnum.MetabolicFormula) {\r\n\t\t\tthis.router.navigate([`/metabolic-formula/facilities/edit/${sm.value}`]);\r\n\t\t}\r\n\t}\r\n\r\n\tonMessageSuccess(sm: SystemMessage) {\r\n\t\tthis.setSysMessage(sm);\r\n\t\tthis.formGroup.setValue(sm.model);\r\n\t\tthis.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() => { this.reroute(sm); });\r\n\t}\r\n\r\n\tonMessageError(sm: SystemMessage) {\r\n\t\tthis.setSysMessage(sm);\r\n\t\tthis.formGroup.patchValue(sm.model);\r\n\t}\r\n\r\n\tenableShipFacilityName() {\r\n\t\tthis.formGroup.get(\"shipFacilityName\").enable();\r\n\t\tthis.formGroup.get(\"shipSmartyAddress\").enable();\r\n\t}\r\n\r\n\tdisableShipFacilityName() {\r\n\t\tthis.formGroup.get(\"shipFacilityName\").disable();\r\n\t\tthis.formGroup.get(\"shipSmartyAddress\").disable();\r\n\t}\r\n\r\n\tmedDirectorChange(select: PcgSelectComponent) {\r\n\t\tif (select.value) {\r\n\t\t\tthis.model.medicalDirectorLicense = select.additionalData?.licenseNumber;\r\n\t\t\tthis.model.medicalDirectorExpDate = select.additionalData?.expirationDate;\r\n\t\t} else {\r\n\t\t\tthis.model.medicalDirectorLicense = \"\";\r\n\t\t\tthis.model.medicalDirectorExpDate = \"\";\r\n\t\t}\r\n\t}\r\n\r\n\tsetSysMessage = (sm: SystemMessage) => this.ms.setSystemMessage(sm.message, sm.messageClass);\r\n\thasDisabledShipFacilityName = () => this.formGroup.get(\"shipFacilityName\").disabled;\r\n}\r\n","\r\n\r\n\r\n\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tIn order to create a Facility you will need to enter the following information.\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t@if (formGroup.get('facilityType')?.value) {\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t@if (!model.isActive) {\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tThis Facility is deactivated.\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t\t{{ model.isActive ? 'Deactivate' : 'Reactivate' }}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{{ model?.organizationName }}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{ getMedicalDirector() }}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{ model?.medicalDirectorLicense }}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{ model?.medicalDirectorExpDate }}\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t

Address

\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{{ this.formGroup?.controls?.countyName?.value }}\r\n\t\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t

Shipping Address

\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{{ this.formGroup?.controls?.shipFacilityName?.value }}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{{ this.formGroup?.controls?.shipSmartyAddress?.value?.formattedAddress }}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class FacilityListVm {\r\n\tfacilityId: number;\r\n\tfacilityName?: string;\r\n\tfacilityIdentifier?: string;\r\n\taddress?: string;\r\n\tcity?: string;\r\n\tstate?: string;\r\n\tzip?: string;\r\n\tcounty?: string;\r\n\tisActive?: string;\r\n\tcanDelete?: boolean;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'facilityId': new UntypedFormControl(0, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityName': new UntypedFormControl(null, [...(validators['facilityName'] ?? []), ...[]]),\r\n\t\t\t'facilityIdentifier': new UntypedFormControl(null, [...(validators['facilityIdentifier'] ?? []), ...[]]),\r\n\t\t\t'address': new UntypedFormControl(null, [...(validators['address'] ?? []), ...[]]),\r\n\t\t\t'city': new UntypedFormControl(null, [...(validators['city'] ?? []), ...[]]),\r\n\t\t\t'state': new UntypedFormControl(null, [...(validators['state'] ?? []), ...[]]),\r\n\t\t\t'zip': new UntypedFormControl(null, [...(validators['zip'] ?? []), ...[]]),\r\n\t\t\t'county': new UntypedFormControl(null, [...(validators['county'] ?? []), ...[]]),\r\n\t\t\t'isActive': new UntypedFormControl(null, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'canDelete': new UntypedFormControl(null, [...(validators['canDelete'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['facilityName', {\"orderId\":0,\"sortColumn\":\"facilityName\",\"searchColumn\":\"facilityName\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Facility\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['address', {\"orderId\":1,\"sortColumn\":\"address\",\"searchColumn\":\"address\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Address\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['facilityIdentifier', {\"orderId\":2,\"sortColumn\":\"facilityIdentifier\",\"searchColumn\":\"facilityIdentifier\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Identifier\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['city', {\"orderId\":3,\"sortColumn\":\"city\",\"searchColumn\":\"city\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"City\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['county', {\"orderId\":4,\"sortColumn\":\"county\",\"searchColumn\":\"county\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"County\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['isActive', {\"orderId\":5,\"sortColumn\":\"isActive\",\"searchColumn\":\"isActive\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Is Active?\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['canDelete', {\"orderId\":6,\"sortColumn\":\"canDelete\",\"searchColumn\":\"canDelete\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Delete\",\"isVisible\":false,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): FacilityListVmFromFg {\r\n\t\treturn new FacilityListVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class FacilityListVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget facilityName(): string {\r\n\t\treturn this.fg.get('facilityName').value;\r\n\t}\r\n\tset facilityName(val) {\r\n\t\tthis.fg.get('facilityName').setValue(val);\r\n\t}\r\n\r\n\tget facilityIdentifier(): string {\r\n\t\treturn this.fg.get('facilityIdentifier').value;\r\n\t}\r\n\tset facilityIdentifier(val) {\r\n\t\tthis.fg.get('facilityIdentifier').setValue(val);\r\n\t}\r\n\r\n\tget address(): string {\r\n\t\treturn this.fg.get('address').value;\r\n\t}\r\n\tset address(val) {\r\n\t\tthis.fg.get('address').setValue(val);\r\n\t}\r\n\r\n\tget city(): string {\r\n\t\treturn this.fg.get('city').value;\r\n\t}\r\n\tset city(val) {\r\n\t\tthis.fg.get('city').setValue(val);\r\n\t}\r\n\r\n\tget state(): string {\r\n\t\treturn this.fg.get('state').value;\r\n\t}\r\n\tset state(val) {\r\n\t\tthis.fg.get('state').setValue(val);\r\n\t}\r\n\r\n\tget zip(): string {\r\n\t\treturn this.fg.get('zip').value;\r\n\t}\r\n\tset zip(val) {\r\n\t\tthis.fg.get('zip').setValue(val);\r\n\t}\r\n\r\n\tget county(): string {\r\n\t\treturn this.fg.get('county').value;\r\n\t}\r\n\tset county(val) {\r\n\t\tthis.fg.get('county').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): string {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget canDelete(): boolean {\r\n\t\treturn this.fg.get('canDelete').value;\r\n\t}\r\n\tset canDelete(val) {\r\n\t\tthis.fg.get('canDelete').setValue(val);\r\n\t}\r\n}\r\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { FacilityListVm } from 'app/shared/generated/Administration/Models/Facilities/FacilityListVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { ButtonFilterService } from 'app/shared/table/table-top/button-filter/button-filter.service';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\n\r\n@Component({\r\n selector: 'pcg-shared-facilities-list',\r\n templateUrl: './facilities-list.component.html',\r\n styleUrls: ['./facilities-list.component.scss'],\r\n standalone: false\r\n})\r\nexport class FacilitiesListComponent implements OnInit {\r\n\r\n @ViewChild(TableComponent, { static: true }) table: TableComponent;\r\n\r\n @Input() businessArea: BusinessAreaEnum;\r\n @Input() header: string;\r\n @Input() filterMap = {\r\n\t\t\"isActive\": \"Is Active\"\r\n , \"businessArea\": \"Business Area\"\r\n , \"medicalDirectorId\": \"Medical Director\"\r\n , \"organizationId\": \"Organization\"\r\n\t};\r\n\r\n filters = {\r\n isActive: true\r\n , businessArea: null\r\n , medicalDirectorId: null\r\n , organizationId: null\r\n };\r\n\r\n initFilters = {\r\n isActive: true\r\n , businessArea: null\r\n , medicalDirectorId: null\r\n , organizationId: null\r\n };\r\n baseEditRoles = [ \r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ];\r\n\r\n canAdd = false;\r\n canDelete = false;\r\n showBusinessArea = true;\r\n columns = FacilityListVm.ColumnDefs;\r\n\r\n hasFacilities = true;\r\n\r\n constructor(\r\n private formatHelper: FormatHelperService\r\n , public btnFilterService: ButtonFilterService\r\n , public security: SecurityService\r\n , public router: Router\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.filters.businessArea = this.businessArea;\r\n this.initFilters.businessArea = this.businessArea; \r\n if (this.businessArea && this.businessArea != BusinessAreaEnum.Admin) { this.showBusinessArea = false; }\r\n this.canAdd = this.security.hasModuleAccess(\r\n [\r\n BusinessAreaEnum.Admin\r\n , BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n ]\r\n , [ PermissionRole.SystemAdmin ]\r\n );\r\n this.canDelete = this.security.hasModuleAccess(\r\n [ this.businessArea ]\r\n , [ PermissionRole.SystemAdmin ]\r\n );\r\n this.btnFilterService.resetFilterData.subscribe(() => { this.resetFilters(); });\r\n }\r\n\r\n onTableReturn(tableData: boolean) { this.hasFacilities = tableData; }\r\n\r\n resetFilters() {\r\n\t\tthis.filters = Object.assign(this.filters, this.initFilters);\r\n\t\tthis.reloadTable();\r\n\t}\r\n\r\n canEditFacility = (): boolean => this.security.hasModuleAccess(\r\n [ this.businessArea ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]) \r\n || this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ ...SecurityService.setMinRole(PermissionRole.User) ]\r\n );\r\n\r\n editFacilityLink(): string {\r\n switch(this.businessArea) {\r\n case BusinessAreaEnum.CI: return '/ci-repack/facilities/edit/';\r\n case BusinessAreaEnum.MetabolicFormula: return '/metabolic-formula/facilities/edit/';\r\n default: return '/admin/organizations/facilities/edit/';\r\n }\r\n }\r\n\r\n reloadTable() {\r\n\t this.table.hideShowColumn('isActive', this.formatHelper.GetIsNully(this.filters.isActive));\r\n this.table.ajaxReload();\r\n }\r\n}\r\n","
\r\n\tIn order to see this list you must be associated to at least one HEROS Agency or HOMER Facility. \r\n\tPlease contact an administrator for assistance.\r\n
\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n\t\t\t\t\r\n\t\t\t\t\tYes\r\n\t\t\t\t\tNo\r\n\t\t\t\t\tAll\r\n\t\t\t\t\r\n
\r\n\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n
\r\n
\r\n
\r\n\r\n\r\n\r\n\t\r\n\t\t{{ columns.get('facilityName').displayName }}\r\n\t\t\r\n\t\t\t{{ row.facilityName }}\r\n\t\t\r\n\t\r\n\r\n\t\r\n\t\r\n\t\t{{ columns.get('address').displayName }}\r\n\t\t{{ row.address }}, {{ row.city }}, {{row.state}} {{row.zip}}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('facilityIdentifier').displayName }}\r\n\t\t{{ row.facilityIdentifier }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('city').displayName }}\r\n\t\t{{ row.city }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('county').displayName }}\r\n\t\t{{ row.county }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('isActive').displayName }}\r\n\t\t{{ row.isActive }}\r\n\t\r\n\r\n\t\r\n\t\tDelete\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'pcg-photo-modal',\r\n templateUrl: './photo-modal.component.html',\r\n styleUrls: ['./photo-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class PhotoModalComponent implements OnInit {\r\n\r\n url: string; // The URL of the image we want to display\r\n\tname: string; // The name of the photo\r\n\r\n\tconstructor(public activeModal: NgbActiveModal) { }\r\n\r\n\tngOnInit() { }\r\n}\r\n","\r\n\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { PhotoModalComponent } from 'app/heros/applicants/edit-applicant/edit-applicant-helpers/photo-modal/photo-modal.component';\r\n\r\nimport { SlideImageVm } from 'app/shared/generated/Models/SlideImageVm';\r\n\r\n@Component({\r\n selector: 'pcg-image-slider',\r\n templateUrl: './image-slider.component.html',\r\n styleUrls: ['./image-slider.component.scss'],\r\n standalone: false\r\n})\r\nexport class ImageSliderComponent implements OnInit, OnDestroy {\r\n\r\n @Input() slides: SlideImageVm[] = [];\r\n @Input() autoSlide: boolean = false;\r\n @Input() useThumbnails: boolean = true;\r\n\r\n currentIndex: number = 0;\r\n timeoutId?: number;\r\n hasImages = true;\r\n\r\n constructor(private modalService: NgbModal) { }\r\n\r\n ngOnInit() { \r\n if (this.slides.length === 0) { this.hasImages = false; }\r\n this.resetTimer(); \r\n }\r\n\r\n resetTimer() {\r\n if (this.autoSlide === true) {\r\n if (this.timeoutId) { window.clearTimeout(this.timeoutId); }\r\n this.timeoutId = window.setTimeout(() => this.goToNext(), 5000);\r\n }\r\n }\r\n \r\n goToPrevious(): void {\r\n const isFirstSlide = this.currentIndex === 0;\r\n const newIndex = isFirstSlide ? this.slides.length - 1 : this.currentIndex - 1; \r\n this.resetTimer();\r\n this.currentIndex = newIndex;\r\n }\r\n \r\n goToNext(): void {\r\n const isLastSlide = this.currentIndex === this.slides.length - 1;\r\n const newIndex = isLastSlide ? 0 : this.currentIndex + 1; \r\n this.resetTimer();\r\n this.currentIndex = newIndex;\r\n }\r\n \r\n goToSlide(slideIndex: number): void {\r\n this.resetTimer();\r\n this.currentIndex = slideIndex; \r\n }\r\n \r\n getCurrentSlideUrl() { return `url(\"${this.slides[this.currentIndex]?.url}\")`; }\r\n getCurrentSlideSrc() { return this.slides[this.currentIndex]?.url; }\r\n getCurrentSlideName() { return this.slides[this.currentIndex]?.title; }\r\n getSlidesScr(i: string | number) { return this.slides[i]?.url; }\r\n\r\n onScroll = (e: WheelEvent) => e.deltaY > 0 ? this.goToNext() : this.goToPrevious(); \r\n\r\n openImageModal(imageUrl: string, imageName: string): void {\r\n const modalRef = this.modalService.open(PhotoModalComponent, { size: 'lg' });\r\n modalRef.componentInstance.url = imageUrl;\r\n modalRef.componentInstance.name = imageName;\r\n }\r\n\r\n ngOnDestroy() { window.clearTimeout(this.timeoutId); }\r\n\r\n}\r\n","
\r\n
\r\n
1\">\r\n
\r\n
\r\n
\r\n \r\n
\r\n
1\">\r\n
\r\n
\r\n
\r\n \r\n @if(useThumbnails && slides?.length > 1) {\r\n
\r\n @for(slide of slides; let slideIndex = $index; track slide.url) {\r\n \r\n } \r\n
\r\n }\r\n\r\n \r\n @if(!useThumbnails && slides?.length > 1) {\r\n
\r\n @for(slide of slides; let slideIndex = $index; track slide.url) {\r\n
\r\n }\r\n
\r\n }\r\n
\r\n\r\n \r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ImageSliderComponent } from './image-slider/image-slider.component';\r\n\r\n@NgModule({\r\n imports: [ CommonModule ],\r\n exports: [ ImageSliderComponent ],\r\n declarations: [ ImageSliderComponent ]\r\n})\r\nexport class ImageSliderModule { }\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class OrganizationAccountRequestVm {\r\n\torganizationAccountRequestId: number;\r\n\torganizationId?: number;\r\n\torganizationAccountId: number;\r\n\toldFacilityAccountName?: any;\r\n\tnewFacilityAccountName?: any;\r\n\tfacilityAccountNameId: number;\r\n\tfacilityAccountNamePfsId?: number;\r\n\toldAccountNumber?: string;\r\n\tnewAccountNumber?: string;\r\n\toldExpirationDate?: Date;\r\n\tnewExpirationDate?: Date;\r\n\toldNotes?: string;\r\n\tnewNotes?: string;\r\n\toldIsActive?: boolean;\r\n\tnewIsActive: boolean;\r\n\toldIsGracePeriod?: boolean;\r\n\tnewIsGracePeriod: boolean;\r\n\toldUploadFilePath?: string;\r\n\tnewUploadFilePath?: string;\r\n\toldFileName?: string;\r\n\tnewFileName?: string;\r\n\tisNewRequest: boolean;\r\n\tisRemoveDoc: boolean;\r\n\tisNotification: boolean;\r\n\trequestDate?: Date;\r\n\trequestBy?: any;\r\n\trequestStatus?: any;\r\n\treviewDate?: Date;\r\n\treviewedBy?: any;\r\n\tdenialExplanation?: string;\r\n\tsubmitButton: boolean;\r\n\tfile?: any;\r\n\tuploadFiles?: any;\r\n\tfriendlyId?: string;\r\n\tfacilityId: number;\r\n\taccountAdded?: string;\r\n\taccountName?: string;\r\n\taccountNumber?: string;\r\n\texpirationDate?: Date;\r\n\tisGracePeriod?: boolean;\r\n\tisActive?: boolean;\r\n\tuploadFilePath?: string;\r\n\tnotes?: string;\r\n\tpfsIds?: string;\r\n\torganizationName?: string;\r\n\torganizationAddress?: string;\r\n\tpfsFacilityAccountRequestIds?: number[];\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'organizationAccountRequestId': new UntypedFormControl(0, [...(validators['organizationAccountRequestId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'organizationId': new UntypedFormControl(null, [...(validators['organizationId'] ?? []), ...[]]),\r\n\t\t\t'organizationAccountId': new UntypedFormControl(0, [...(validators['organizationAccountId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'oldFacilityAccountName': new UntypedFormControl(null, [...(validators['oldFacilityAccountName'] ?? []), ...[]]),\r\n\t\t\t'newFacilityAccountName': new UntypedFormControl(null, [...(validators['newFacilityAccountName'] ?? []), ...[]]),\r\n\t\t\t'facilityAccountNameId': new UntypedFormControl(0, [...(validators['facilityAccountNameId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityAccountNamePfsId': new UntypedFormControl(null, [...(validators['facilityAccountNamePfsId'] ?? []), ...[]]),\r\n\t\t\t'oldAccountNumber': new UntypedFormControl(null, [...(validators['oldAccountNumber'] ?? []), ...[Validators.maxLength(50)]]),\r\n\t\t\t'newAccountNumber': new UntypedFormControl(null, [...(validators['newAccountNumber'] ?? []), ...[Validators.required, Validators.maxLength(50), Validators.pattern(\"^[A-Za-z0-9 ]*\")]]),\r\n\t\t\t'oldExpirationDate': new UntypedFormControl(null, [...(validators['oldExpirationDate'] ?? []), ...[]]),\r\n\t\t\t'newExpirationDate': new UntypedFormControl(null, [...(validators['newExpirationDate'] ?? []), ...[]]),\r\n\t\t\t'oldNotes': new UntypedFormControl(null, [...(validators['oldNotes'] ?? []), ...[Validators.maxLength(1000)]]),\r\n\t\t\t'newNotes': new UntypedFormControl(null, [...(validators['newNotes'] ?? []), ...[Validators.maxLength(1000)]]),\r\n\t\t\t'oldIsActive': new UntypedFormControl(null, [...(validators['oldIsActive'] ?? []), ...[]]),\r\n\t\t\t'newIsActive': new UntypedFormControl(false, [...(validators['newIsActive'] ?? []), ...[]]),\r\n\t\t\t'oldIsGracePeriod': new UntypedFormControl(null, [...(validators['oldIsGracePeriod'] ?? []), ...[]]),\r\n\t\t\t'newIsGracePeriod': new UntypedFormControl(false, [...(validators['newIsGracePeriod'] ?? []), ...[]]),\r\n\t\t\t'oldUploadFilePath': new UntypedFormControl(null, [...(validators['oldUploadFilePath'] ?? []), ...[Validators.maxLength(250)]]),\r\n\t\t\t'newUploadFilePath': new UntypedFormControl(null, [...(validators['newUploadFilePath'] ?? []), ...[Validators.maxLength(250)]]),\r\n\t\t\t'oldFileName': new UntypedFormControl(null, [...(validators['oldFileName'] ?? []), ...[]]),\r\n\t\t\t'newFileName': new UntypedFormControl(null, [...(validators['newFileName'] ?? []), ...[]]),\r\n\t\t\t'isNewRequest': new UntypedFormControl(false, [...(validators['isNewRequest'] ?? []), ...[]]),\r\n\t\t\t'isRemoveDoc': new UntypedFormControl(false, [...(validators['isRemoveDoc'] ?? []), ...[]]),\r\n\t\t\t'isNotification': new UntypedFormControl(false, [...(validators['isNotification'] ?? []), ...[]]),\r\n\t\t\t'requestDate': new UntypedFormControl(null, [...(validators['requestDate'] ?? []), ...[]]),\r\n\t\t\t'requestBy': new UntypedFormControl(null, [...(validators['requestBy'] ?? []), ...[]]),\r\n\t\t\t'requestStatus': new UntypedFormControl(null, [...(validators['requestStatus'] ?? []), ...[]]),\r\n\t\t\t'reviewDate': new UntypedFormControl(null, [...(validators['reviewDate'] ?? []), ...[]]),\r\n\t\t\t'reviewedBy': new UntypedFormControl(null, [...(validators['reviewedBy'] ?? []), ...[]]),\r\n\t\t\t'denialExplanation': new UntypedFormControl(null, [...(validators['denialExplanation'] ?? []), ...[Validators.maxLength(500)]]),\r\n\t\t\t'submitButton': new UntypedFormControl(false, [...(validators['submitButton'] ?? []), ...[]]),\r\n\t\t\t'file': new UntypedFormControl(null, [...(validators['file'] ?? []), ...[]]),\r\n\t\t\t'uploadFiles': new UntypedFormControl([], [...(validators['uploadFiles'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'facilityId': new UntypedFormControl(0, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'accountAdded': new UntypedFormControl(null, [...(validators['accountAdded'] ?? []), ...[]]),\r\n\t\t\t'accountName': new UntypedFormControl(null, [...(validators['accountName'] ?? []), ...[]]),\r\n\t\t\t'accountNumber': new UntypedFormControl(null, [...(validators['accountNumber'] ?? []), ...[]]),\r\n\t\t\t'expirationDate': new UntypedFormControl(null, [...(validators['expirationDate'] ?? []), ...[]]),\r\n\t\t\t'isGracePeriod': new UntypedFormControl(null, [...(validators['isGracePeriod'] ?? []), ...[]]),\r\n\t\t\t'isActive': new UntypedFormControl(null, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'uploadFilePath': new UntypedFormControl(null, [...(validators['uploadFilePath'] ?? []), ...[]]),\r\n\t\t\t'notes': new UntypedFormControl(null, [...(validators['notes'] ?? []), ...[]]),\r\n\t\t\t'pfsIds': new UntypedFormControl(null, [...(validators['pfsIds'] ?? []), ...[]]),\r\n\t\t\t'organizationName': new UntypedFormControl(null, [...(validators['organizationName'] ?? []), ...[]]),\r\n\t\t\t'organizationAddress': new UntypedFormControl(null, [...(validators['organizationAddress'] ?? []), ...[]]),\r\n\t\t\t'pfsFacilityAccountRequestIds': new UntypedFormControl([], [...(validators['pfsFacilityAccountRequestIds'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): OrganizationAccountRequestVmFromFg {\r\n\t\treturn new OrganizationAccountRequestVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class OrganizationAccountRequestVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget organizationAccountRequestId(): number {\r\n\t\treturn this.fg.get('organizationAccountRequestId').value;\r\n\t}\r\n\tset organizationAccountRequestId(val) {\r\n\t\tthis.fg.get('organizationAccountRequestId').setValue(val);\r\n\t}\r\n\r\n\tget organizationId(): number {\r\n\t\treturn this.fg.get('organizationId').value;\r\n\t}\r\n\tset organizationId(val) {\r\n\t\tthis.fg.get('organizationId').setValue(val);\r\n\t}\r\n\r\n\tget organizationAccountId(): number {\r\n\t\treturn this.fg.get('organizationAccountId').value;\r\n\t}\r\n\tset organizationAccountId(val) {\r\n\t\tthis.fg.get('organizationAccountId').setValue(val);\r\n\t}\r\n\r\n\tget oldFacilityAccountName(): any {\r\n\t\treturn this.fg.get('oldFacilityAccountName').value;\r\n\t}\r\n\tset oldFacilityAccountName(val) {\r\n\t\tthis.fg.get('oldFacilityAccountName').setValue(val);\r\n\t}\r\n\r\n\tget newFacilityAccountName(): any {\r\n\t\treturn this.fg.get('newFacilityAccountName').value;\r\n\t}\r\n\tset newFacilityAccountName(val) {\r\n\t\tthis.fg.get('newFacilityAccountName').setValue(val);\r\n\t}\r\n\r\n\tget facilityAccountNameId(): number {\r\n\t\treturn this.fg.get('facilityAccountNameId').value;\r\n\t}\r\n\tset facilityAccountNameId(val) {\r\n\t\tthis.fg.get('facilityAccountNameId').setValue(val);\r\n\t}\r\n\r\n\tget facilityAccountNamePfsId(): number {\r\n\t\treturn this.fg.get('facilityAccountNamePfsId').value;\r\n\t}\r\n\tset facilityAccountNamePfsId(val) {\r\n\t\tthis.fg.get('facilityAccountNamePfsId').setValue(val);\r\n\t}\r\n\r\n\tget oldAccountNumber(): string {\r\n\t\treturn this.fg.get('oldAccountNumber').value;\r\n\t}\r\n\tset oldAccountNumber(val) {\r\n\t\tthis.fg.get('oldAccountNumber').setValue(val);\r\n\t}\r\n\r\n\tget newAccountNumber(): string {\r\n\t\treturn this.fg.get('newAccountNumber').value;\r\n\t}\r\n\tset newAccountNumber(val) {\r\n\t\tthis.fg.get('newAccountNumber').setValue(val);\r\n\t}\r\n\r\n\tget oldExpirationDate(): Date {\r\n\t\treturn this.fg.get('oldExpirationDate').value;\r\n\t}\r\n\tset oldExpirationDate(val) {\r\n\t\tthis.fg.get('oldExpirationDate').setValue(val);\r\n\t}\r\n\r\n\tget newExpirationDate(): Date {\r\n\t\treturn this.fg.get('newExpirationDate').value;\r\n\t}\r\n\tset newExpirationDate(val) {\r\n\t\tthis.fg.get('newExpirationDate').setValue(val);\r\n\t}\r\n\r\n\tget oldNotes(): string {\r\n\t\treturn this.fg.get('oldNotes').value;\r\n\t}\r\n\tset oldNotes(val) {\r\n\t\tthis.fg.get('oldNotes').setValue(val);\r\n\t}\r\n\r\n\tget newNotes(): string {\r\n\t\treturn this.fg.get('newNotes').value;\r\n\t}\r\n\tset newNotes(val) {\r\n\t\tthis.fg.get('newNotes').setValue(val);\r\n\t}\r\n\r\n\tget oldIsActive(): boolean {\r\n\t\treturn this.fg.get('oldIsActive').value;\r\n\t}\r\n\tset oldIsActive(val) {\r\n\t\tthis.fg.get('oldIsActive').setValue(val);\r\n\t}\r\n\r\n\tget newIsActive(): boolean {\r\n\t\treturn this.fg.get('newIsActive').value;\r\n\t}\r\n\tset newIsActive(val) {\r\n\t\tthis.fg.get('newIsActive').setValue(val);\r\n\t}\r\n\r\n\tget oldIsGracePeriod(): boolean {\r\n\t\treturn this.fg.get('oldIsGracePeriod').value;\r\n\t}\r\n\tset oldIsGracePeriod(val) {\r\n\t\tthis.fg.get('oldIsGracePeriod').setValue(val);\r\n\t}\r\n\r\n\tget newIsGracePeriod(): boolean {\r\n\t\treturn this.fg.get('newIsGracePeriod').value;\r\n\t}\r\n\tset newIsGracePeriod(val) {\r\n\t\tthis.fg.get('newIsGracePeriod').setValue(val);\r\n\t}\r\n\r\n\tget oldUploadFilePath(): string {\r\n\t\treturn this.fg.get('oldUploadFilePath').value;\r\n\t}\r\n\tset oldUploadFilePath(val) {\r\n\t\tthis.fg.get('oldUploadFilePath').setValue(val);\r\n\t}\r\n\r\n\tget newUploadFilePath(): string {\r\n\t\treturn this.fg.get('newUploadFilePath').value;\r\n\t}\r\n\tset newUploadFilePath(val) {\r\n\t\tthis.fg.get('newUploadFilePath').setValue(val);\r\n\t}\r\n\r\n\tget oldFileName(): string {\r\n\t\treturn this.fg.get('oldFileName').value;\r\n\t}\r\n\tset oldFileName(val) {\r\n\t\tthis.fg.get('oldFileName').setValue(val);\r\n\t}\r\n\r\n\tget newFileName(): string {\r\n\t\treturn this.fg.get('newFileName').value;\r\n\t}\r\n\tset newFileName(val) {\r\n\t\tthis.fg.get('newFileName').setValue(val);\r\n\t}\r\n\r\n\tget isNewRequest(): boolean {\r\n\t\treturn this.fg.get('isNewRequest').value;\r\n\t}\r\n\tset isNewRequest(val) {\r\n\t\tthis.fg.get('isNewRequest').setValue(val);\r\n\t}\r\n\r\n\tget isRemoveDoc(): boolean {\r\n\t\treturn this.fg.get('isRemoveDoc').value;\r\n\t}\r\n\tset isRemoveDoc(val) {\r\n\t\tthis.fg.get('isRemoveDoc').setValue(val);\r\n\t}\r\n\r\n\tget isNotification(): boolean {\r\n\t\treturn this.fg.get('isNotification').value;\r\n\t}\r\n\tset isNotification(val) {\r\n\t\tthis.fg.get('isNotification').setValue(val);\r\n\t}\r\n\r\n\tget requestDate(): Date {\r\n\t\treturn this.fg.get('requestDate').value;\r\n\t}\r\n\tset requestDate(val) {\r\n\t\tthis.fg.get('requestDate').setValue(val);\r\n\t}\r\n\r\n\tget requestBy(): any {\r\n\t\treturn this.fg.get('requestBy').value;\r\n\t}\r\n\tset requestBy(val) {\r\n\t\tthis.fg.get('requestBy').setValue(val);\r\n\t}\r\n\r\n\tget requestStatus(): any {\r\n\t\treturn this.fg.get('requestStatus').value;\r\n\t}\r\n\tset requestStatus(val) {\r\n\t\tthis.fg.get('requestStatus').setValue(val);\r\n\t}\r\n\r\n\tget reviewDate(): Date {\r\n\t\treturn this.fg.get('reviewDate').value;\r\n\t}\r\n\tset reviewDate(val) {\r\n\t\tthis.fg.get('reviewDate').setValue(val);\r\n\t}\r\n\r\n\tget reviewedBy(): any {\r\n\t\treturn this.fg.get('reviewedBy').value;\r\n\t}\r\n\tset reviewedBy(val) {\r\n\t\tthis.fg.get('reviewedBy').setValue(val);\r\n\t}\r\n\r\n\tget denialExplanation(): string {\r\n\t\treturn this.fg.get('denialExplanation').value;\r\n\t}\r\n\tset denialExplanation(val) {\r\n\t\tthis.fg.get('denialExplanation').setValue(val);\r\n\t}\r\n\r\n\tget submitButton(): boolean {\r\n\t\treturn this.fg.get('submitButton').value;\r\n\t}\r\n\tset submitButton(val) {\r\n\t\tthis.fg.get('submitButton').setValue(val);\r\n\t}\r\n\r\n\tget file(): any {\r\n\t\treturn this.fg.get('file').value;\r\n\t}\r\n\tset file(val) {\r\n\t\tthis.fg.get('file').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget accountAdded(): string {\r\n\t\treturn this.fg.get('accountAdded').value;\r\n\t}\r\n\tset accountAdded(val) {\r\n\t\tthis.fg.get('accountAdded').setValue(val);\r\n\t}\r\n\r\n\tget accountName(): string {\r\n\t\treturn this.fg.get('accountName').value;\r\n\t}\r\n\tset accountName(val) {\r\n\t\tthis.fg.get('accountName').setValue(val);\r\n\t}\r\n\r\n\tget accountNumber(): string {\r\n\t\treturn this.fg.get('accountNumber').value;\r\n\t}\r\n\tset accountNumber(val) {\r\n\t\tthis.fg.get('accountNumber').setValue(val);\r\n\t}\r\n\r\n\tget expirationDate(): Date {\r\n\t\treturn this.fg.get('expirationDate').value;\r\n\t}\r\n\tset expirationDate(val) {\r\n\t\tthis.fg.get('expirationDate').setValue(val);\r\n\t}\r\n\r\n\tget isGracePeriod(): boolean {\r\n\t\treturn this.fg.get('isGracePeriod').value;\r\n\t}\r\n\tset isGracePeriod(val) {\r\n\t\tthis.fg.get('isGracePeriod').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): boolean {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget uploadFilePath(): string {\r\n\t\treturn this.fg.get('uploadFilePath').value;\r\n\t}\r\n\tset uploadFilePath(val) {\r\n\t\tthis.fg.get('uploadFilePath').setValue(val);\r\n\t}\r\n\r\n\tget notes(): string {\r\n\t\treturn this.fg.get('notes').value;\r\n\t}\r\n\tset notes(val) {\r\n\t\tthis.fg.get('notes').setValue(val);\r\n\t}\r\n\r\n\tget pfsIds(): string {\r\n\t\treturn this.fg.get('pfsIds').value;\r\n\t}\r\n\tset pfsIds(val) {\r\n\t\tthis.fg.get('pfsIds').setValue(val);\r\n\t}\r\n\r\n\tget organizationName(): string {\r\n\t\treturn this.fg.get('organizationName').value;\r\n\t}\r\n\tset organizationName(val) {\r\n\t\tthis.fg.get('organizationName').setValue(val);\r\n\t}\r\n\r\n\tget organizationAddress(): string {\r\n\t\treturn this.fg.get('organizationAddress').value;\r\n\t}\r\n\tset organizationAddress(val) {\r\n\t\tthis.fg.get('organizationAddress').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, inject, Input, OnInit } from '@angular/core';\r\nimport { faBell, faCircle, faExternalLinkAlt } from '@fortawesome/pro-solid-svg-icons';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { InvoiceNotificationVm } from 'app/shared/generated/Inventory/Models/Invoices/InvoiceNotificationVm';\r\nimport { ReconciliationNotificationVm } from 'app/shared/generated/Inventory/Models/Reconciliation/ReconciliationNotificationVm';\r\nimport { NavNotificationService } from '../nav-notification.service';\r\n\r\n@Component({\r\n selector: 'pcg-notification-nav',\r\n templateUrl: './notification-nav.component.html',\r\n styleUrls: ['./notification-nav.component.scss'],\r\n standalone: false\r\n})\r\nexport class NotificationNavComponent implements OnInit {\r\n\r\n\tns = inject(NavNotificationService);\r\n \r\n\t@Input() ciInvoiceCount: number = 0;\r\n\r\n\tfaBell = faBell;\r\n\tfaCircle = faCircle;\r\n\tfaLink = faExternalLinkAlt;\r\n\r\n\treconNotifications: ReconciliationNotificationVm[] = [];\r\n\tciInvoiceNotifications: InvoiceNotificationVm[] = [];\r\n\r\n \tconstructor(\r\n\t\tpublic modal: NgbActiveModal\r\n\t\t, private httpClient: HttpClient\r\n\t) { }\r\n\r\n \tngOnInit() {\r\n\t \tif(this.ns.reconNavAccess()) {\r\n this.getReconciliationNotifications();\r\n }\r\n \t}\r\n\r\n\tgetReconciliationNotifications() {\r\n\t\tthis.httpClient.get(`api/Inventory/Reconciliation/GetReconciliationNotifications`)\r\n\t\t\t.subscribe((list: ReconciliationNotificationVm[]) => {\r\n\t\t\t\tthis.reconNotifications = list;\r\n\t\t\t}\r\n\t\t);\r\n \t}\t\r\n\r\n\tgetHref(inventoryId, reconEventId) {\r\n\t\tif (reconEventId > 0) { return '/pharmacy/inventories/reconciliation/product-list/' + reconEventId + '/' + inventoryId; } \r\n\t\telse { return '/pharmacy/inventories/reconciliation/list/' + inventoryId; }\r\n\t}\r\n\r\n\tgetInvoiceHref() { return 'ba/cardinal-invoices?isCi=true'; }\r\n\tgetIcqHref() { return '/icq/review-queue/list'; }\r\n}\r\n","
\r\n\t
Notifications
\r\n\t\r\n
\r\n\r\n
\t\r\n\r\n\t\r\n\t\t\r\n\t\t
\r\n\t
\r\n\r\n\t 0\">\r\n\t\t\r\n\t\t
\r\n\t
\r\n\r\n\t 0\">\r\n\t\t\r\n\t\t\r\n\t\t
\r\n\t
\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t

There are no notifications.

\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\t\r\n
\r\n","import { computed, inject, Injectable, signal } from \"@angular/core\";\r\nimport { UntilDestroy } from '@ngneat/until-destroy';\r\n\r\nimport { SecurityService } from \"app/core/security/security.service\";\r\nimport { BusinessAreaEnum } from \"app/core/enums/generated/BusinessAreaEnum\";\r\nimport { PermissionRole } from \"app/core/enums/generated/PermissionRole\";\r\nimport { HeaderVm } from \"../generated/Models/HeaderVm\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport { NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { NotificationNavComponent } from \"./notification-nav/notification-nav.component\";\r\n\r\n/**\r\n* The `NavNotificationService` class is responsible for:\r\n\r\n* - Maintaining current state of the notification counts\r\n* - Fetching notification counts from the server\r\n*/\r\n@UntilDestroy()\r\n@Injectable({ providedIn: \"root\" })\r\nexport class NavNotificationService {\r\n sec = inject(SecurityService);\r\n httpClient = inject(HttpClient);\r\n modalService = inject(NgbModal);\r\n \r\n \r\n notificationCount = computed(() => {\r\n return this.reconCount()\r\n\t\t\t+ [\r\n\t\t\t\tthis.ciInvoicesCount(),\r\n\t\t\t\tthis.icqCount()\r\n\t\t\t].filter(count => count > 0).length;\r\n });\r\n\r\n\treconCount = signal(0);\r\n\tciInvoicesCount = signal(0);\r\n\ticqCount = signal(0);\r\n\tstep1Count = signal(0);\r\n\tstep2Count = signal(0);\r\n\tstep3Count = signal(0);\r\n accountRequestCount = signal(0);\r\n\r\n\tfulfillmentNavAccess = signal(false);\r\n\tinvoiceNavAccess = signal(false);\r\n\taccountRequestAccess = signal(false);\r\n\treconNavAccess = signal(false);\r\n\ticqAccess = signal(false);\r\n\tisCiUser = signal(false);\r\n\thasCiWorkstation = signal(false);\r\n\r\n notificationModal: NgbModalRef;\r\n\r\n\r\n getHeaderCounts() {\r\n\t\tthis.setAccessFlags();\r\n\t\tconst step1: number = +sessionStorage.getItem(\"step1Count\");\r\n\t\tconst step2: number = +sessionStorage.getItem(\"step2Count\");\r\n\t\tconst step3: number = +sessionStorage.getItem(\"step3Count\");\r\n\r\n\t\tif (\r\n\t\t\tthis.fulfillmentNavAccess() \r\n\t\t\t|| this.reconNavAccess() \r\n\t\t\t|| this.invoiceNavAccess() \r\n\t\t\t|| this.icqAccess()\r\n\t\t) { this.fetchHeaderCountsFromServer(step1, step2, step3); } \r\n\t\telse { this.setStepCounts(step1, step2, step3); }\r\n\t}\r\n\r\n\tsetAccessFlags() {\r\n\t\tthis.fulfillmentNavAccess.set(this.sec?.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.Inventory ]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t));\r\n\r\n this.reconNavAccess.set(this.sec?.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.Inventory ]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t));\r\n\t\tthis.invoiceNavAccess.set(this.sec.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.CI, BusinessAreaEnum.BA, BusinessAreaEnum.Inventory ]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t));\r\n\t\tthis.accountRequestAccess.set(this.sec.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.Admin ]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.Manager)\r\n\t\t));\r\n\t\tthis.icqAccess.set(this.sec.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.ICQ ]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.User)\r\n\t\t));\r\n\t}\r\n\r\n\tfetchHeaderCountsFromServer(\r\n\t step1: number\r\n\t\t, step2: number\r\n\t\t, step3: number\r\n\t) {\r\n\t\tthis.httpClient.get(`api/Header/GetHeaderCounts\r\n\t\t\t?reconAccess=${this.reconNavAccess()}\r\n\t\t\t&rxAccess=${this.fulfillmentNavAccess()}\r\n\t\t\t&invoiceAccess=${this.invoiceNavAccess()}\r\n\t\t\t&icqAccess=${this.icqAccess()}\r\n &accountRequestAccess=${this.accountRequestAccess()}`\r\n\t\t).subscribe((vm: HeaderVm) => {\r\n\t\t\tthis.updateSessionStorage(vm);\r\n\t\t\tthis.updateCounts(vm);\r\n\t\t});\r\n\r\n\t\tif (!this.fulfillmentNavAccess) { this.setStepCounts(step1, step2, step3); }\r\n\t}\r\n\r\n\tupdateSessionStorage(vm: HeaderVm) {\r\n\t\tsessionStorage.setItem(\"step1Count\", vm.fulfillmentStep1ProductPrepCount.toString());\r\n\t\tsessionStorage.setItem(\"step2Count\", vm.fulfillmentStep2ShippingCount.toString());\r\n\t\tsessionStorage.setItem(\"step3Count\", vm.fulfillmentStep3QCCount.toString());\r\n sessionStorage.setItem(\"accountRequestCount\", vm.accountRequestCount.toString());\r\n\t}\r\n\r\n\tupdateCounts(vm: HeaderVm) {\r\n\t\tthis.step1Count.set(vm.fulfillmentStep1ProductPrepCount);\r\n\t\tthis.step2Count.set(vm.fulfillmentStep2ShippingCount);\r\n\t\tthis.step3Count.set(vm.fulfillmentStep3QCCount);\r\n this.accountRequestCount.set(vm.accountRequestCount);\r\n \r\n this.reconCount.set(vm.reconciliationCount);\r\n this.ciInvoicesCount.set(vm.ciInvoicesCount);\r\n this.icqCount.set(vm.icqNewSurveyCount);\r\n\t}\r\n\r\n\tsetStepCounts(\r\n\t\tstep1: number\r\n\t\t, step2: number\r\n\t\t, step3: number\r\n\t) {\r\n\t\tthis.step1Count.set(step1);\r\n\t\tthis.step2Count.set(step2);\r\n\t\tthis.step3Count.set(step3);\r\n\t}\r\n\r\n openNotificationModal() {\r\n\t\tthis.notificationModal = this.modalService.open(NotificationNavComponent, { animation: false });\r\n\t\tthis.notificationModal.componentInstance.modalRef = this.notificationModal;\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, inject, Input, OnInit, Output } from '@angular/core';\r\nimport { Validators } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { faArrowLeft } from '@fortawesome/pro-regular-svg-icons';\r\nimport { faArrowRightArrowLeft, faCheck, faCircle, faExternalLinkAlt, faSortUp, faTimes } from '@fortawesome/pro-solid-svg-icons';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Observable, tap } from 'rxjs';\r\n\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { validateForm } from 'app/shared/form-elements/form-validateForm.function';\r\nimport { OrganizationAccountRequestVm } from 'app/shared/generated/Administration/Models/Organizations/OrganizationAccountRequestVm';\r\nimport { GenericFilesVm } from 'app/shared/generated/Models/GenericFilesVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { NotificationService } from 'app/notification.service';\r\nimport { NavNotificationService } from 'app/shared/navigation/nav-notification.service';\r\n\r\n@Component({\r\n selector: 'pcg-organization-account-update',\r\n templateUrl: './organization-account-update.component.html',\r\n styleUrls: ['./organization-account-update.component.scss'],\r\n standalone: false\r\n})\r\nexport class OrganizationAccountUpdateComponent implements OnInit {\r\n notificationService = inject(NotificationService);\r\n ns = inject(NavNotificationService);\r\n\r\n @Output() tm = new EventEmitter();\r\n @Input() id: number;\r\n // Will be true if this component is rendered via the top nav icon. Used to conditionally hide 'X' close icon\r\n @Input() calledFromNav: boolean = false;\r\n\r\n faCircle = faCircle;\r\n faArrowRightArrowLeft = faArrowRightArrowLeft;\r\n faLink = faExternalLinkAlt;\r\n faArrow = faSortUp\r\n faIconName = { faCheck, faTimes, faArrowLeft };\r\n\r\n model$: Observable;\r\n form = OrganizationAccountRequestVm.Form;\r\n\r\n isAccountList = false;\r\n isAccountApproval = false;\r\n clearFileClick = false;\r\n hasFile = false;\r\n expDateRequired: boolean = false;\r\n organizationFile: GenericFilesVm[] = [];\r\n maxFiles = 1;\r\n\r\n readOnly : boolean = false;\r\n \r\n constructor(\r\n private http: HttpClient\r\n , public modal: NgbActiveModal\r\n , public router: Router\r\n , public ms: SystemMessageService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.model$ = this.http.get(`api/Administration/OrganizationAccountRequest/GetOrganizationAccountRequest?id=${this.id}`)\r\n .pipe(tap((model: OrganizationAccountRequestVm) => {\r\n this.form.patchValue(model);\r\n // Assign boolean to differentiate between account approval and update\r\n this.isAccountApproval = model.oldFacilityAccountName.facilityAccountNameId === 0;\r\n \r\n this.resizeModal();\r\n this.disableOldFormGroup();\r\n this.hasFile = FormatHelperService.GetIsNullyOrWhitespace(this.form.controls.newUploadFilePath.value) \r\n ? false \r\n : true;\r\n this.expDateRequired = model.isNotification;\r\n this.setExpDateRequired();\r\n if (this.readOnly) { this.form.disable(); }\r\n })\r\n );\r\n this.isAccountList = this.router.url.includes('account-request-queue');\r\n }\r\n \r\n onSubmit() {\r\n if (this.form.valid) {\r\n const form = this.form.value;\r\n this.http.post(\"api/Administration/OrganizationAccountRequest/ApproveDenyRequest\", form)\r\n .subscribe((resp: SystemMessage) => {\r\n if (!resp.isSuccessful) { this.notificationService.showMessage(resp.message, resp.messageClass)}\r\n if (resp.isSuccessful) {\r\n this.form.patchValue(resp.model);\r\n this.modal.close();\r\n this.ns.getHeaderCounts();\r\n }\r\n }, (err) => { console.log(err) }\r\n );\r\n } else { validateForm(this.form); }\r\n }\r\n\r\n disableOldFormGroup() {\r\n this.form.get('oldFacilityAccountName').disable();\r\n this.form.get('oldAccountNumber').disable();\r\n this.form.get('oldExpirationDate').disable();\r\n this.form.get('oldNotes').disable();\r\n this.form.get('oldIsActive').disable();\r\n this.form.get('oldIsGracePeriod').disable();\r\n this.form.get('oldUploadFilePath').disable();\r\n }\r\n\r\n clearFile() {\r\n this.clearFileClick = true;\r\n this.form.get('newUploadFilePath').patchValue(null);\r\n this.hasFile = false;\r\n }\r\n\r\n submitButton(status: boolean) { this.form.get('submitButton').patchValue(status); }\r\n\r\n /** Emits event to toggle between list and update request. */\r\n toggleModal() {\r\n this.tm.emit();\r\n this.modal.update({ size: 'l' });\r\n }\r\n\r\n // Resizes modal depending on what type of organization account request - approval/update\r\n resizeModal() { this.isAccountApproval ? this.modal.update({ size: 'l' }) : this.modal.update({ size: 'xl' }); }\r\n isEmpty = (str: string) => FormatHelperService.GetIsNullyOrWhitespace(str)\r\n\r\n setExpDateRequired() {\r\n if (this.expDateRequired ) { \r\n this.form.controls.newExpirationDate.enable();\r\n this.form.controls.newExpirationDate.addValidators([Validators.required]); \r\n } else { this.form.controls.newExpirationDate.removeValidators([Validators.required]); }\r\n\r\n this.form.controls.newExpirationDate.updateValueAndValidity();\r\n }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n @if (!isAccountList) {\r\n
\r\n \r\n \r\n
\r\n Back\r\n
\r\n
\r\n }\r\n
\r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n Organization: {{ fg.organizationName }}\r\n
\r\n\r\n
\r\n Address: {{ fg.organizationAddress }}\r\n
\r\n\r\n
\r\n Requested By: {{ fg.requestBy.firstName + ' ' + fg.requestBy.lastName }}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n @if (!isAccountApproval) {\r\n
\r\n
\r\n Current\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ fg.oldFacilityAccountName.name }}\r\n \r\n
\r\n\r\n
\r\n \r\n {{ fg.oldAccountNumber }}\r\n \r\n
\r\n\r\n
\r\n \r\n {{ fg.oldExpirationDate | date: 'shortDate' }}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ fg.oldIsActive ? 'Activated' : 'Inactivated' }}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n @if (form.controls.oldUploadFilePath.value !== '') {\r\n \r\n } @else {
No related files were found.
}\r\n
\r\n
\r\n\r\n
\r\n \r\n @if (!isEmpty(fg.OldNotes)) { {{ fg.oldNotes }} }\r\n \r\n
\r\n
\r\n
\r\n }\r\n \r\n
\r\n
\r\n Proposed\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ fg.newFacilityAccountName.name }}\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n @if (hasFile) {\r\n
\r\n {{ form.controls.newFileName.value }}\r\n    \r\n
X
\r\n \r\n
\r\n }\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n @if (!readOnly) {\r\n
\r\n \r\n \r\n\r\n \r\n
\r\n }\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n @if (\r\n isAccountList \r\n && !calledFromNav\r\n ) {\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { NavigateToOrderOrJobVm } from 'app/shared/generated/CIRepack/Models/Dashboard/NavigateToOrderOrJobVm';\r\n\r\n@Injectable({\r\n \tprovidedIn: 'root'\r\n})\r\nexport class CiDashboardService {\r\n\r\n\tconstructor(private httpClient: HttpClient) { }\r\n\r\n\tcanNavigateToRepackOrderByString(repackOrderId : string) : Observable {\r\n\t\treturn this.httpClient.get(`api/CIRepack/CIDashboard/NavigateToRepackOrderByString?repackOrderId=${repackOrderId}`);\r\n\t}\t\r\n\r\n\tcanNavigateToRepackOrderById(repackOrderId : number) : Observable {\r\n\t\treturn this.httpClient.get(`api/CIRepack/CIDashboard/NavigateToRepackOrderById?repackOrderId=${repackOrderId}`);\r\n\t}\r\n\r\n\tcanNavigateToJobByString(jobId : string, isHomer : boolean = false) : Observable {\r\n\t\tlet httpParams = new HttpParams().set('jobId', jobId).set('isHomer', isHomer);\r\n\t\treturn this.httpClient.get('api/CIRepack/CIDashboard/NavigateToJobByString', { params: httpParams });\r\n\t}\r\n\r\n\tcanNavigateToJobById(jobId : number) : Observable {\r\n\t\treturn this.httpClient.get(`api/CIRepack/CIDashboard/NavigateToJobById?jobId=${jobId}`);\r\n\t}\r\n\r\n\tcanNavigateToJobByDohLotNum(lotnum: string) : Observable {\r\n\t\treturn this.httpClient.get(`api/CIRepack/CIDashboard/NavigateToJobByDohLotNum?lotnum=${lotnum}`);\r\n\t}\r\n}\r\n","import { AfterViewInit, Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, ViewChild } from '@angular/core';\r\n\r\nimport { CiDashboardService } from 'app/ci-repack/ci-dashboard/ci-dashboard-service.service';\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { NavigateToOrderOrJobVm } from 'app/shared/generated/CIRepack/Models/Dashboard/NavigateToOrderOrJobVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { tap } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'pcg-ci-dashboard-actions',\r\n templateUrl: './ci-dashboard-actions.component.html',\r\n styleUrls: ['./ci-dashboard-actions.component.scss'],\r\n standalone: false\r\n})\r\nexport class CiDashboardActionsComponent implements OnInit, AfterViewInit {\r\n\r\n @ViewChild('ciDashboardContent', { static: false }) ciDashboardContent: ElementRef;\r\n\r\n @Input() dashboardActionsClicked: boolean;\r\n @Output() reload = new EventEmitter();\r\n\r\n isOpen = false;\r\n repackIdhasErrors: boolean = false;\r\n jobIdHasErrors: boolean = false;\r\n lotnumHasErrors: boolean = false;\r\n\r\n repackErrorMsg: string = '';\r\n jobIdErrorMsg: string = '';\r\n lotnumErrorMsg: string = '';\r\n\r\n timeout: any = null;\r\n\r\n constructor(\r\n\t\tprivate dashboardService: CiDashboardService,\r\n\t\tpublic ms: SystemMessageService\r\n\t) { }\r\n\r\n @HostListener('window:keyup', ['$event'])\r\n @HostListener('window:change', ['$event']) onChange() { this.positionFilter(); }\r\n @HostListener('window:resize', ['$event']) onResize() { this.dashboardActionsClicked = false; }\r\n\r\n ngOnInit() { }\r\n\r\n positionFilter() {\r\n const rect: DOMRect = document.getElementById('pcg-ci-dashboard-actions')?.getBoundingClientRect();\r\n if (rect) {\r\n this.ciDashboardContent.nativeElement.style.top = `${parseInt((rect.bottom + 1).toString())}px`;\r\n this.ciDashboardContent.nativeElement.style.left = `${parseInt((rect.left).toString())}px`;\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n window.addEventListener('click', (el: Event) => {\r\n var classes = el.target['className']?.toString();\r\n if (this.dashboardActionsClicked === true) {\r\n if (classes === 'dashboard-actions-overlay') { this.dashboardActionsClicked = false; }\r\n }\r\n });\r\n setTimeout(() => { this.isOpen = true; }, 300);\r\n }\r\n\r\n clickedOutside(): void { \r\n\t\tif (this.isOpen) {\r\n\t\t\tthis.dashboardActionsClicked = false; \r\n\t\t\tthis.isOpen = false;\r\n\t\t\tthis.reload.emit();\r\n\t\t}\r\n }\r\n\r\n navToRepackOrder(repackId: any) {\r\n\t\tif (!this.isInputValid(repackId)) {\r\n\t\t\tthis.repackIdhasErrors = true;\r\n\t\t\tthis.repackErrorMsg = \"Please enter a valid Order Id\"\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (isNaN(repackId)) {\r\n\t\t\tthis.dashboardService\r\n\t\t\t.canNavigateToRepackOrderByString(repackId)\r\n\t\t\t.pipe(\r\n\t\t\t\ttap((vm: NavigateToOrderOrJobVm) => {\r\n\t\t\t\t\tif (!FormatHelperService.GetIsNully(vm.orderId) && !vm.isPfs) {\r\n\t\t\t\t\t\twindow.location.href = \"/ci-repack/orders/edit/\" + vm.orderId;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.repackIdhasErrors = true;\r\n\t\t\t\t\t\tthis.repackErrorMsg = \"Repack Order Not Found\"\r\n\t\t\t\t\t}\r\n\t\t\t\t}))\r\n\t\t\t.subscribe();\r\n\t\t} else {\r\n\t\t\tthis.dashboardService.canNavigateToRepackOrderById(repackId)\r\n\t\t\t.pipe(\r\n\t\t\t\ttap((vm: NavigateToOrderOrJobVm) => {\r\n\t\t\t\t\tif (!FormatHelperService.GetIsNully(vm.orderId) && !vm.isPfs) { \r\n\t\t\t\t\t\twindow.location.href = \"/ci-repack/orders/edit/\" + vm.orderId;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.repackIdhasErrors = true;\r\n\t\t\t\t\t\tthis.repackErrorMsg = \"Repack Order Not Found\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}))\r\n\t\t\t.subscribe();\r\n\t\t}\t\t\r\n\t}\r\n\r\n\tnavToJob(jobId: any) {\r\n\t\tif (!this.isInputValid(jobId)) {\r\n\t\t\tthis.jobIdHasErrors = true;\r\n\t\t\tthis.jobIdErrorMsg = \"Please enter a valid Job Id\";\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif (isNaN(jobId)) {\r\n\t\t\tconst isHomer = true;\r\n\t\t\tthis.dashboardService\r\n\t\t\t.canNavigateToJobByString(jobId, isHomer)\r\n\t\t\t.pipe(\r\n\t\t\t\ttap((vm: NavigateToOrderOrJobVm) => {\r\n\t\t\t\t\tif (!FormatHelperService.GetIsNully(vm.jobId) && !vm.isPfs) {\r\n\t\t\t\t\t\t\twindow.location.href = \"/ci-repack/jobs/edit/\" + vm.jobId;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tthis.jobIdHasErrors = true;\r\n\t\t\t\t\t\tthis.jobIdErrorMsg = \"Job Not Found\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}))\r\n\t\t\t.subscribe();\r\n\t\t}\r\n\t}\r\n\r\n\tnavToLotnum(lotnum: any) {\r\n\t\tif (!this.isInputValid(lotnum)) {\r\n\t\t\tthis.lotnumHasErrors = true;\r\n\t\t\tthis.lotnumErrorMsg = \"Please enter a valid DOH Lot #\"\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.dashboardService\r\n\t\t.canNavigateToJobByDohLotNum(lotnum)\r\n\t\t.pipe(\r\n\t\t\ttap((vm: NavigateToOrderOrJobVm) => {\r\n\t\t\t\tif (vm.jobId !== null && vm.dohLotNum !== null) { window.location.href = \"/ci-repack/jobs/edit/\" + vm.jobId; } \r\n\t\t\t\telse if (vm.jobId === null && vm.dohLotNum !== null) { window.location.href = \"/ci-repack/jobs/list/?lotNumber=\" + vm.dohLotNum; }\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.lotnumHasErrors = true;\r\n\t\t\t\t\tthis.lotnumErrorMsg = \"Job Not Found\";\r\n\t\t\t\t}\r\n\t\t\t}))\r\n\t\t.subscribe();\r\n\t}\r\n\r\n\tclearErrors(inputType : string) {\r\n\t\tswitch(inputType) {\r\n\t\t\tcase 'order':\r\n\t\t\t\tthis.repackIdhasErrors = false;\r\n\t\t\t\tthis.repackErrorMsg = '';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'job':\r\n\t\t\t\tthis.jobIdHasErrors = false;\r\n\t\t\t\tthis.jobIdErrorMsg = '';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'lotnum':\r\n\t\t\t\tthis.lotnumHasErrors = false;\r\n\t\t\t\tthis.lotnumErrorMsg = '';\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tisInputValid(input: string) {\r\n\t\tif (input === null || input === '') { return false; }\r\n\t\treturn true;\r\n\t}\r\n\r\n\torderKeyDown(event: { key: string; preventDefault: () => void; target: { value: any; }; }) {\r\n\t\tif (event.key === 'Enter') {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.navToRepackOrder(event.target.value);\r\n\t\t}\r\n\t}\r\n\r\n\tjobKeyDown(event: { key: string; preventDefault: () => void; target: { value: any; }; }) {\r\n\t\tif (event.key === 'Enter') {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.navToJob(event.target.value);\r\n\t\t}\r\n\t}\r\n\r\n\tlotnumKeyDown(event: { key: string; preventDefault: () => void; target: { value: any; }; }) {\r\n\t\tif (event.key === 'Enter') {\r\n\t\t\tevent.preventDefault();\r\n\t\t\tthis.navToLotnum(event.target.value);\r\n\t\t}\r\n\t}\r\n}\r\n","
\r\n
\r\n
Quick Scan Navigation
\r\n
\r\n\r\n

Scan a Job Id, Order Id, or DOH Lot # into the appropriate scan box to quickly navigate to either record.

\r\n\r\n
\r\n
\r\n Order Id\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{ repackErrorMsg }}

\r\n
\r\n\r\n
\r\n
\r\n Job Id\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{ jobIdErrorMsg }}

\r\n
\r\n\r\n
\r\n
\r\n DOH Lot #\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n

{{ lotnumErrorMsg }}

\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n
","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { faArrowRightArrowLeft, faCircle, faExternalLinkAlt, faSortDown } from '@fortawesome/pro-solid-svg-icons';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { OrganizationAccountRequestVm } from 'app/shared/generated/Administration/Models/Organizations/OrganizationAccountRequestVm';\r\nimport { Observable, Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'pcg-organization-account-update-nav',\r\n templateUrl: './organization-account-update-nav.component.html',\r\n styleUrls: ['./organization-account-update-nav.component.scss'],\r\n standalone: false\r\n})\r\nexport class OrganizationAccountUpdateNavComponent implements OnInit {\r\n /** FontAwesome Icons used to style component */ \r\n faCircle = faCircle;\r\n\tfaArrowRightArrowLeft = faArrowRightArrowLeft;\r\n faLink = faExternalLinkAlt;\r\n faArrow = faSortDown;\r\n\r\n requests$: Observable;\r\n organizationAccountRequestId: number; \r\n\r\n subscription = new Subscription();\r\n\r\n selectedRequestUpdate: boolean = false;\r\n\r\n constructor(public modal: NgbActiveModal, private http: HttpClient) {}\r\n\r\n ngOnInit(): void {\r\n this.getFacilityUpdateRequests();\r\n }\r\n\r\n getFacilityUpdateRequests() {\r\n this.requests$ = this.http.get('api/Administration/OrganizationAccountRequest/GetNotificationList');\r\n }\r\n\r\n openRequest(id: number) {\r\n // Sets id to then be passed into facility-account-update component\r\n this.organizationAccountRequestId = id;\r\n this.toggleModal()\r\n this.modal.update({size: 'xl'});\r\n }\r\n\r\n toggleModal = () => this.selectedRequestUpdate = !this.selectedRequestUpdate \r\n}\r\n","\r\n
\r\n\t
\r\n\t\tAccount Update Request\r\n\t
\r\n\t\r\n
\r\n\r\n\r\n
\r\n\r\n\t\r\n\t\r\n\t\t
\r\n\t\t\t\r\n\t\t\t
0\" (click)=\"openRequest(r.organizationAccountRequestId)\">\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\tPending Update\r\n\t\t\t\t\t\t\t\t\tNew\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\tAccount: {{ r.accountName }}\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t{{ r.organizationName }}\r\n\t\t\t\t\t\t\t\t\t\t\t has requested changes.\r\n\t\t\t\t\t\t\t\t\t\t\t has requested to add a new account.\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\tClick to view account request.\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t\t
\r\n\t\t\tThere are currently no organization account requests to process. \r\n\t\t
\r\n\t
\r\n\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { \r\n faGear, \r\n faDollarSign,\r\n faBoxesPacking, \r\n faBomb, \r\n faCircleInfo, \r\n faCaduceus, \r\n faBlockQuestion, \r\n faShelves, \r\n faBottleBaby, \r\n faTablets, \r\n faPrescriptionBottlePill, \r\n faFileLines, \r\n faPrescription,\r\n faQuestion } from '@fortawesome/pro-solid-svg-icons';\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\n\r\n/*\r\n Centralized area for Business Area to icon\r\n Used for navigation and notification icons\r\n*/\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class FaBusinessAreaIconsService {\r\n\r\n getIconByBusinessArea(ba: BusinessAreaEnum) {\r\n switch(BusinessAreaEnum.toDescription(ba)){\r\n case \"HEROS\":\r\n return faCaduceus;\r\n case \"Pharmacy\":\r\n return faPrescriptionBottlePill;\r\n case \"CI Repack\":\r\n return faBoxesPacking;\r\n case \"NDCs\":\r\n return faTablets;\r\n case \"Metabolic Formula\":\r\n return faBottleBaby;\r\n case \"ICQ\":\r\n return faBlockQuestion;\r\n case \"Support\":\r\n return faCircleInfo;\r\n case \"Reports\":\r\n return faFileLines;\r\n case \"Error Reporting\":\r\n return faBomb;\r\n case \"System Inventory\":\r\n return faShelves;\r\n case \"Budget & Allocations\":\r\n return faDollarSign;\r\n case \"Rx Connects\":\r\n return faPrescription;\r\n case \"Admin\":\r\n return faGear;\r\n default:\r\n return faQuestion;\r\n }\r\n } \r\n\r\n getIconStyleByBusinessArea(ba: BusinessAreaEnum) {\r\n switch(BusinessAreaEnum.toDescription(ba)){\r\n case \"HEROS\":\r\n return {color: \"#FFFFFF\", background: \"#FF0000\"};\r\n case \"Pharmacy\":\r\n return {color: \"#FFFFFF\", background: \"#FA6400\"};\r\n case \"CI Repack\":\r\n return {color: \"#FFFFFF\", background: \"#FFFF00\"};\r\n case \"NDCs\":\r\n return {color: \"#FFFFFF\", background: \"#00FF00\"};\r\n case \"Metabolic Formula\":\r\n return {color: \"#FFFFFF\", background: \"#0000FF\"};\r\n case \"ICQ\":\r\n return {color: \"#FFFFFF\", background: \"#000066\"};\r\n case \"Support\":\r\n return {color: \"#FFFFFF\", background: \"#AA00DD\"};\r\n case \"Reports\":\r\n return {color: \"#FFFFFF\", background: \"#FF0000\"};\r\n case \"Error Reporting\":\r\n return {color: \"#FFFFFF\", background: \"#FA6400\"};\r\n case \"System Inventory\":\r\n return {color: \"#FFFFFF\", background: \"#FFFF00\"};\r\n case \"Budget & Allocations\":\r\n return {color: \"#FFFFFF\", background: \"#00FF00\"};\r\n case \"Rx Connects\":\r\n return {color: \"#FFFFFF\", background: \"#0000FF\"};\r\n case \"Admin\":\r\n return {color: \"#FFFFFF\", background: \"#000066\"};\r\n default:\r\n return {color: \"#FFFFFF\", background: \"#AA00DD\"};\r\n }\r\n } \r\n}\r\n","import { NavRoute } from 'app/shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { availableModules, SecurityService } from '../security/security.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getAdminNav: () => NavRoute = () => {\r\n\tconst sec = SecurityService;\r\n\tconst p = PermissionRole; // Setting this to reduce text.\r\n const icons = new FaBusinessAreaIconsService();\r\n\r\n\t//#region Children\r\n\tconst dashboard: NavRoute = {\r\n\t\tname: 'Dashboard'\r\n\t\t, exact: true\r\n\t\t, path: 'admin/dashboard'\r\n\t\t, activeNavLink: 'admin/dashboard'\r\n\t\t, secondaryNav: ['Admin', 'Dashboard']\r\n\t}\r\n\r\n\tconst organizations: NavRoute = {\r\n\t\tname: 'Organizations'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t, permissionRoles: [ ...sec.setMinRole(p.User) ]\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: [\r\n\t\t\t{\r\n\t\t\t\tname: 'Organizations'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/organizations/orgs/list'\r\n\t\t\t\t, activeNavLink: 'admin/organizations/orgs'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Organizations', 'Organizations']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Account Update Requests'\r\n\t\t\t\t, shortName: 'Account Updates'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/organizations/account-request-queue'\r\n\t\t\t\t, activeNavLink: 'admin/organizations/account-request-queue'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Organizations', 'Account Update Requests']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Facilities'\r\n\t\t\t\t, path: 'admin/organizations/facilities/list'\r\n\t\t\t\t, activeNavLink: 'admin/organizations/facilities'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Organizations', 'Facilities']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Medical Directors'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/organizations/medical-directors'\r\n\t\t\t\t, activeNavLink: 'admin/organizations/medical-directors'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Organizations', 'Medical Directors']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Master Accounts'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/organizations/master-accounts/list'\r\n\t\t\t\t, activeNavLink: 'admin/organizations/master-accounts'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Organizations', 'Master Accounts']\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tconst inventoryConfig: NavRoute = {\r\n\t\tname : 'Inventory Configuration'\r\n\t\t, shortName: 'Inv Configuration'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [BusinessAreaEnum.Admin]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children : [\r\n\t\t\t{\r\n\t\t\t\tname : 'Programs'\r\n\t\t\t\t, path: 'admin/inventory-configuration/programs/list'\r\n\t\t\t\t, activeNavLink: 'admin/inventory-configuration/programs'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Inventory Configuration', 'Programs']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Wholesale Account Groups'\r\n\t\t\t\t, shortName: 'WAG'\r\n\t\t\t\t, path: 'admin/inventory-configuration/wag'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [BusinessAreaEnum.Admin]\r\n\t\t\t\t\t\t, permissionRoles: [PermissionRole.SystemAdmin]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'admin/inventory-configuration/wag'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Inventory Configuration', 'Wholesale Account Groups']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Global Formulary'\r\n\t\t\t\t, path: 'admin/inventory-configuration/formulary/list'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [BusinessAreaEnum.Admin]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'admin/inventory-configuration/formulary'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Inventory Configuration', 'Global Formulary']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Global Formulary Settings'\r\n\t\t\t\t, shortName: 'Formulary Settings'\r\n\t\t\t\t, path: 'admin/inventory-configuration/settings'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [BusinessAreaEnum.Admin]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'admin/inventory-configuration/settings'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Inventory Configuration', 'Global Formulary Settings']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Suppliers'\r\n\t\t\t\t, path: 'admin/inventory-configuration/suppliers/list'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [BusinessAreaEnum.Admin]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'admin/inventory-configuration/suppliers'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Inventory Configuration', 'Suppliers']\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tconst shipping: NavRoute = {\r\n\t\tname: 'Shipping'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t, permissionRoles: [ \r\n\t\t\t\t\tPermissionRole.SystemAdmin\r\n\t\t\t\t\t, PermissionRole.Pharmacist \r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: [\r\n\t\t\t{\r\n\t\t\t\tname: 'Accounts'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/shipping/accounts/list'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t\t\t, permissionRoles: [ PermissionRole.SystemAdmin\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'admin/shipping/accounts'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Shipping', 'Accounts']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Boxes'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/shipping/boxes/list'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t\t\t, permissionRoles: [ PermissionRole.SystemAdmin\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'admin/shipping/boxes'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Shipping', 'Boxes']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Shipments'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/shipping/shipments/list'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t\t\t, permissionRoles: [ \r\n\t\t\t\t\t\t\tPermissionRole.SystemAdmin\r\n\t\t\t\t\t\t\t, PermissionRole.Pharmacist \r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'admin/shipping/shipments'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Shipping', 'Shipments']\r\n\t\t\t}\r\n\t\t]\r\n\t}\r\n\r\n\tconst users: NavRoute = {\r\n\t\tname: 'Users'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t, permissionRoles: [ ...sec.setMinRole(p.Manager) ]\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: [\r\n\t\t\t{\r\n\t\t\t\tname: 'User List'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t\t\t, permissionRoles: [ ...sec.setMinRole(p.Pharmacist) ]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/users/user/list'\r\n\t\t\t\t, activeNavLink: 'admin/users/user'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Users', 'User List']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Global Audit History'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t\t\t, permissionRoles: [ ...sec.setMinRole(p.Manager) ]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/users/global-audit-history'\r\n\t\t\t\t, activeNavLink: 'admin/users/global-audit-history'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Users', 'Global Audit History']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Login History'\r\n\t\t\t\t, path: 'admin/users/login-history'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, activeNavLink: 'admin/users/login-history'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Users', 'Login History']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Custom Fields'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t\t\t, permissionRoles: [ PermissionRole.SystemAdmin ]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, path: 'admin/users/custom-fields/list'\r\n\t\t\t\t, activeNavLink: 'admin/users/custom-fields'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Users', 'Custom Fields']\r\n\t\t\t}\r\n\t\t]\r\n\t} \r\n\r\n\tconst permissionsInfo: NavRoute = {\r\n\t\tname: 'Permissions Info'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t, permissionRoles: [ PermissionRole.SystemAdmin ]\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: availableModules.map((key) => (\r\n\t\t\t{\r\n\t\t\t\tname: BusinessAreaEnum.toDescription(Number(key))\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/permissions-info/' \r\n\t\t\t\t\t+ BusinessAreaEnum.toDescription(Number(key)).split(\" \").join(\"-\").toLowerCase() \r\n\t\t\t\t\t+ '/list/' \r\n\t\t\t\t\t+ key\r\n\t\t\t\t, activeNavLink: 'admin/permissions-info/' + BusinessAreaEnum.toDescription(Number(key)).split(\" \").join(\"-\").toLowerCase()\r\n\t\t\t\t, secondaryNav: ['Admin', 'Permissions Info', BusinessAreaEnum.toDescription(Number(key))]\r\n\t\t\t}\r\n\t\t))\r\n\t};\r\n\r\n\tconst system: NavRoute = {\r\n\t\tname: \"System\"\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t, permissionRoles: [ PermissionRole.SystemAdmin ]\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: [\r\n\t\t\t{\r\n\t\t\t\tname: 'Printer Management'\r\n\t\t\t\t, path: 'admin/system/printers/list'\r\n\t\t\t\t, activeNavLink: 'admin/system/printers'\r\n\t\t\t\t, secondaryNav: ['Admin', 'System', 'Printer Management']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'System Status'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/system/statuses/list'\r\n\t\t\t\t, activeNavLink: 'admin/system/statuses'\r\n\t\t\t\t, secondaryNav: ['Admin', 'System', 'System Status']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Verification Settings'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/system/verification-settings'\r\n\t\t\t\t, activeNavLink: 'admin/system/verification-settings'\r\n\t\t\t\t, secondaryNav: ['Admin', 'System', 'Verification Settings']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Quartz History'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/system/quartz/pcg-history'\r\n\t\t\t\t, activeNavLink: 'admin/system/quartz/pcg-history'\r\n\t\t\t\t, secondaryNav: ['Admin', 'System', 'Quartz History']\r\n\t\t\t}\r\n\t\t]\r\n\t};\t\r\n\t//#endregion\r\n\r\n\tconst children : NavRoute[] = [\r\n\t\tdashboard\r\n\t\t, organizations\r\n\t\t, inventoryConfig\r\n\t\t, shipping\r\n\t\t, users\r\n\t\t, permissionsInfo\r\n\t\t, system\r\n\t]\r\n\r\n\tconst adminNavItems : NavRoute = {\r\n\t\tname: 'Admin'\r\n\t\t, path: 'admin/dashboard'\r\n\t\t, children: children\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t, permissionRoles: [ ...sec.setMinRole(p.User) ]\r\n\t\t\t}\r\n\t\t]\r\n\t\t, activeNavLink: 'admin/dashboard'\r\n\t\t, secondaryNav: ['Admin', 'Dashboard']\r\n\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.Admin)\r\n\t\t, area: 'admin'\r\n\t\t, module: BusinessAreaEnum.Admin\r\n\t}\r\n\r\n\treturn adminNavItems;\r\n};\r\n","import { NavRoute } from '../../shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getBANav: () => NavRoute = () => {\r\n const icons = new FaBusinessAreaIconsService();\r\n\tvar navItems: NavRoute[] = [\r\n\t\t{\r\n\t\t\tname: 'Budget Tracking'\r\n\t\t\t, exact: true\r\n\t\t\t, path: 'ba/budgets/list'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.BA ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, featureFlag: true\r\n\t\t\t, activeNavLink: 'ba/budgets'\r\n\t\t\t, secondaryNav: ['ba', 'Budget Tracking']\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: 'Cardinal Invoices'\r\n\t\t\t, exact: true\r\n\t\t\t, path: 'ba/cardinal-invoices'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.BA ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, activeNavLink: 'ba/cardinal-invoices'\r\n\t\t\t, secondaryNav: ['ba', 'Cardinal Invoices']\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: 'Admin'\r\n\t\t\t, href: 'ba/admin/fiscal-years'\r\n\t\t\t, activeNavLink: 'ba/admin/fiscal-years'\r\n\t\t\t, secondaryNav: ['ba', 'Admin', 'Fiscal Years']\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.BA ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, children: [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'Fiscal Years'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'ba/admin/fiscal-years'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.BA ]\r\n\t\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'ba/admin/fiscal-years'\r\n\t\t\t\t\t, secondaryNav: ['ba', 'Admin', 'Fiscal Years']\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t];\r\n\r\n\treturn {\r\n\t\tname: 'Budget & Allocation'\r\n\t\t, href: 'ba/budgets/list'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.BA ], \r\n\t\t\t\tpermissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: navItems\r\n\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.BA)\r\n\t\t, area: 'ba'\r\n\t\t, module: BusinessAreaEnum.BA\r\n\t};\r\n};\r\n","import { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { NavRoute } from 'app/shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { AuthGuard } from '../security/auth.guard';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getCiRepackNav: () => NavRoute = () => {\r\n\tconst user = getUser();\r\n\tconst sec = SecurityService;\r\n\tconst p = PermissionRole; // Setting this to reduce text.\r\n const icons = new FaBusinessAreaIconsService();\r\n\r\n\tif (user !== null) {\r\n\t\tvar navItems: NavRoute[] = [\r\n\t\t\t{\r\n\t\t\t\tname: 'Dashboard'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'ci-repack/dashboard'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'ci-repack/dashboard'\r\n\t\t\t\t, secondaryNav: ['CI Repack', 'Dashboard']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: \"KPI's\"\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'ci-repack/kpis'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.Technician)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'ci-repack/kpis'\r\n\t\t\t\t, secondaryNav: ['CI Repack', 'KPI\\'s']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Global Orders'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'ci-repack/orders/list'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'ci-repack/orders'\r\n\t\t\t\t, secondaryNav: ['CI Repack', 'Global Orders']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Global Jobs'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'ci-repack/jobs/list'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'ci-repack/jobs'\r\n\t\t\t\t, secondaryNav: ['CI Repack', 'Global Jobs']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Repack Invoices'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'ci-repack/invoices'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.Manager)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'ci-repack/invoices'\r\n\t\t\t\t, secondaryNav: ['CI Repack', 'Repack Invoices']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Bottle Log'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'ci-repack/bottle-log'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.Technician)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'ci-repack/bottle-log'\r\n\t\t\t\t, secondaryNav: ['CI Repack', 'Bottle Log']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Facility List'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'ci-repack/facilities/list'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t, permissionRoles: [\r\n\t\t\t\t\t\t\tp.UserAdmin\r\n\t\t\t\t\t\t\t, ...sec.setMinRole(p.Manager)\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'ci-repack/facilities'\r\n\t\t\t\t, secondaryNav: ['CI Repack', 'Facility List']\r\n\t\t\t}\r\n\t\t];\r\n\t\t\r\n\t\tif (user?.errorReportBusinessAreas?.includes(BusinessAreaEnum.CI)) {\r\n\t\t\tnavItems.push({\r\n\t\t\t\tname: 'Error Reporting'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t\t, permissionRoles: [ p.User ]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: `error-report/error-reports/ci-repack/list/${BusinessAreaEnum.CI}`\r\n\t\t\t\t, activeNavLink: 'error-report/error-reports/ci-repack'\r\n\t\t\t\t, secondaryNav: ['CI Repack', 'Error Reporting']\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (user?.reportBusinessAreas?.includes(BusinessAreaEnum.CI)) {\r\n\t\t\tnavItems.push({\r\n\t\t\t\tname: 'Reporting'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Reports ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: `reporting/list/${BusinessAreaEnum.CI}`\r\n\t\t\t\t, activeNavLink: 'reporting/list'\r\n\t\t\t\t, secondaryNav: ['CI Repack', 'Reporting']\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tnavItems.push({\r\n\t\t\tname: 'Admin'\r\n\t\t\t, href: 'ci-repack/admin/settings'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, children: [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'CI Settings'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'ci-repack/admin/settings'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'ci-repack/admin/settings'\r\n\t\t\t\t\t, secondaryNav: ['CI Repack', 'Admin', 'CI Settings']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Invoicing Costs'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'ci-repack/admin/invoice-costs'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.Pharmacist)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'ci-repack/admin/invoice-costs'\r\n\t\t\t\t\t, secondaryNav: ['CI Repack', 'Admin', 'Invoicing Costs']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Plates'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'ci-repack/admin/plates/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.Technician)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'ci-repack/admin/plates'\r\n\t\t\t\t\t, secondaryNav: ['CI Repack', 'Admin', 'Plates']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Workstations'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'ci-repack/admin/workstations/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'ci-repack/admin/workstations'\r\n\t\t\t\t\t, secondaryNav: ['CI Repack', 'Admin', 'Workstations']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Label Printers'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'ci-repack/admin/label-printers/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'ci-repack/admin/label-printers'\r\n\t\t\t\t\t, secondaryNav: ['CI Repack', 'Admin', 'Label Printers']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Office Printers'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'ci-repack/admin/office-printers/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'ci-repack/admin/office-printers'\r\n\t\t\t\t\t, secondaryNav: ['CI Repack', 'Admin', 'Office Printers']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Zebra Printers'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'ci-repack/admin/zebra-printers/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'ci-repack/admin/zebra-printers'\r\n\t\t\t\t\t, secondaryNav: ['CI Repack', 'Admin', 'Zebra Printers']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Boxes'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'ci-repack/admin/boxes/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.Manager ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'ci-repack/admin/boxes'\r\n\t\t\t\t\t, secondaryNav: ['CI Repack', 'Admin', 'Boxes']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Corrected Card/Strip Reasons'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'ci-repack/admin/rework-reasons/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.Manager ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'ci-repack/admin/rework-reasons'\r\n\t\t\t\t\t, secondaryNav: ['CI Repack', 'Admin', 'Corrected Card/Strip Reasons']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Verification Settings'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'ci-repack/admin/verification-settings'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'ci-repack/admin/verification-settings'\r\n\t\t\t\t\t, secondaryNav: ['CI Repack', 'Admin', 'Verification Settings']\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tname: 'CI Repack'\r\n\t\t\t, canActivate: [ AuthGuard ]\r\n\t\t\t, href: 'ci-repack/dashboard'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, children: navItems\r\n\t\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.CI)\r\n\t\t\t, area: 'ci-repack'\r\n\t\t\t, module: BusinessAreaEnum.CI\r\n\t\t};\r\n\t}\r\n\r\n\treturn { name: \"\" };\r\n};\r\n\r\nfunction getUser(): UserJsVm {\r\n\tconst userJson: string = localStorage.getItem('user');\r\n\tif (userJson !== null) { return JSON.parse(userJson); }\r\n\treturn null;\r\n}\r\n","import { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { NavRoute } from 'app/shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { AuthGuard } from '../security/auth.guard';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getErrorReportNav: () => NavRoute = () => {\r\n\r\n const user = getUser();\r\n\tconst sec = SecurityService;\r\n\tconst p = PermissionRole; // Setting this to reduce text.\r\n const icons = new FaBusinessAreaIconsService();\r\n\r\n if (user !== null) {\r\n return {\r\n name: 'Error Reporting'\r\n , canActivate: [ AuthGuard ]\r\n , moduleAccess: [\r\n {\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t}\r\n ]\r\n , href: 'error-report/error-reports/list'\r\n , children: [\r\n {\r\n\t\t\t\t\tname: 'Error Reports'\r\n\t\t\t\t\t, path: 'error-report/error-reports/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n , activeNavLink: 'error-report/error-reports'\r\n , secondaryNav: ['Error Reporting', 'Error Reports']\r\n }\r\n , {\r\n\t\t\t\t\tname: 'Admin'\r\n\t\t\t\t\t, href: 'error-report/admin/error-types/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, children: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tname: 'Error Types'\r\n\t\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t\t, path: 'error-report/admin/error-types/list'\r\n\t\t\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t]\r\n , activeNavLink: 'error-report/admin/error-types'\r\n\t\t\t\t , secondaryNav: ['Error Reporting', 'Admin', 'Error Types']\r\n\t\t\t\t\t\t},\r\n {\r\n name: 'Report Builder'\r\n , exact: true\r\n , path: 'error-report/admin/report-builder/list'\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n }\r\n ]\r\n , activeNavLink: 'error-report/admin/report-builder'\r\n , secondaryNav: ['Error Reporting', 'Admin', 'Report Builder']\r\n },\r\n {\r\n name: 'Permission Levels'\r\n , exact: true\r\n , path: 'error-report/admin/permission-levels/list'\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n }\r\n ]\r\n , activeNavLink: 'error-report/admin/permission-levels'\r\n , secondaryNav: ['Error Reporting', 'Admin', 'Permission Levels']\r\n },\r\n {\r\n name: 'Metrics'\r\n , exact: true\r\n , path: 'error-report/admin/metrics'\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n }\r\n ]\r\n , activeNavLink: 'error-report/admin/metrics'\r\n , secondaryNav: ['Error Reporting', 'Admin', 'Metrics']\r\n }\r\n\t\t\t\t\t]\r\n }\r\n ]\r\n , icon: icons.getIconByBusinessArea(BusinessAreaEnum.ErrorReport)\r\n , area: 'error-report'\r\n , module: BusinessAreaEnum.ErrorReport\r\n };\r\n }\r\n\r\n return { name: \"\" };\r\n}\r\n\r\nfunction getUser(): UserJsVm {\r\n\tconst userJson: string = localStorage.getItem('user');\r\n\tif (userJson !== null) { return JSON.parse(userJson); }\r\n\treturn null;\r\n}\r\n","import { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { NavRoute } from '../../shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { AuthGuard } from '../security/auth.guard';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getHelpDeskNav: () => NavRoute = () => {\r\n\tconst user = getUser();\r\n\tconst sec = SecurityService;\r\n\tconst p = PermissionRole;\r\n const icons = new FaBusinessAreaIconsService();\r\n\r\n\tif (user !== null) {\r\n\t\tvar navItems: NavRoute[] = [\r\n\t\t\t{\r\n\t\t\t\tname: 'Dashboard'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'support/dashboard'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HelpDesk ]\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'support/dashboard'\r\n\t\t\t\t, secondaryNav: ['Support', 'Dashboard']\r\n\t\t\t}\t\t\t\t\r\n\t\t\t, {\r\n\t\t\t\tname: 'Support Desk'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'support/tickets/list'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HelpDesk ]\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'support/tickets'\r\n\t\t\t\t, secondaryNav: ['Support', 'Support Desk']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Knowledge Base'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'support/knowledge-base'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: sec.anyArea()\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'support/knowledge-base'\r\n\t\t\t\t, secondaryNav: ['Support', 'Knowledge Base']\r\n\t\t\t}\t\t\t\t\r\n\t\t\t, {\r\n\t\t\t\tname: 'Release Notes'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'support/web-release-notes'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HelpDesk ]\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'support/web-release-notes'\r\n\t\t\t\t, secondaryNav: ['Support', 'Release Notes']\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\tif (user?.errorReportBusinessAreas?.includes(BusinessAreaEnum.HelpDesk)) {\r\n\t\t\tnavItems.push({\r\n\t\t\t\tname: 'Error Reporting'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: `error-report/error-reports/support/list/${BusinessAreaEnum.HelpDesk}`\r\n\t\t\t\t, activeNavLink: 'error-report/error-reports/support'\r\n\t\t\t\t, secondaryNav: ['Support', 'Error Reporting']\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (user?.reportBusinessAreas?.includes(BusinessAreaEnum.HelpDesk)) {\r\n\t\t\tnavItems.push({\r\n\t\t\t\tname: 'Reporting'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Reports ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: `reporting/list/${BusinessAreaEnum.HelpDesk}`\r\n\t\t\t\t, activeNavLink: 'reporting/list'\r\n\t\t\t\t, secondaryNav: ['Support', 'Reporting']\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tnavItems.push({\r\n\t\t\tname: 'Admin'\r\n\t\t\t, href: 'support/admin/categories/list'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.HelpDesk ]\r\n\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, activeNavLink: 'support/admin/categories'\r\n\t\t\t, secondaryNav: ['Support', 'Admin', 'Categories']\r\n\t\t\t, children: [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'Categories'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'support/admin/categories/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HelpDesk ]\r\n\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'support/admin/categories'\r\n\t\t\t\t\t, secondaryNav: ['Support', 'Admin', 'Categories']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Priorities'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'support/admin/priorities/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HelpDesk ]\r\n\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'support/admin/priorities'\r\n\t\t\t\t\t, secondaryNav: ['Support', 'Admin', 'Priorities']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Statuses'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'support/admin/statuses/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HelpDesk ]\r\n\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'support/admin/statuses'\r\n\t\t\t\t\t, secondaryNav: ['Support', 'Admin', 'Statuses']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Template Responses'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'support/admin/template-responses/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HelpDesk ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'support/admin/template-responses'\r\n\t\t\t\t\t, secondaryNav: ['Support', 'Admin', 'Template Responses']\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t});\r\n\r\n\t\tnavItems.push({\r\n\t\t\tname: 'Dashboard Settings'\r\n\t\t\t, href: 'support/dashboard-settings/support-settings'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.HelpDesk ]\r\n\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n\t\t\t\t}\r\n\t\t\t] \r\n\t\t\t, activeNavLink: 'support/dashboard-settings/support-settings'\r\n\t\t\t, secondaryNav: ['Support', 'Dashboard Settings', 'Support Settings']\r\n\t\t\t, children: [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'Support Settings'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'support/dashboard-settings/support-settings'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HelpDesk ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'support/dashboard-settings/support-settings'\r\n\t\t\t\t\t, secondaryNav: ['Support', 'Dashboard Settings', 'Support Settings']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Upcoming Features'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'support/dashboard-settings/upcoming-features/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HelpDesk ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'support/dashboard-settings/upcoming-features'\r\n\t\t\t\t\t, secondaryNav: ['Support', 'Dashboard Settings', 'Upcoming Features']\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t});\r\n\r\n\t\treturn {\r\n\t\t\tname: 'Support'\r\n\t\t\t, href: 'support/dashboard'\r\n\t\t\t, canActivate: [ AuthGuard ]\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: sec.anyArea()\r\n\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, children: navItems\r\n\t\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.HelpDesk)\r\n\t\t\t, area: 'support'\r\n\t\t\t, module: BusinessAreaEnum.HelpDesk\r\n\t\t};\r\n\t}\r\n\r\n\treturn { name: \"\" };\r\n};\r\n\r\nfunction getUser(): UserJsVm {\r\n\tconst userJson: string = localStorage.getItem('user');\r\n\tif (userJson !== null) { return JSON.parse(userJson); }\r\n\treturn null;\r\n}","import { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { NavRoute } from '../../shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getHEROSNav: () => NavRoute = () => {\r\n\tconst user = getUser();\r\n const icons = new FaBusinessAreaIconsService();\r\n\tconst isAdmin = user?.moduleAccess?.filter(o => o.module === BusinessAreaEnum.HEROS\r\n\t\t&& o.permissionRole === PermissionRole.SystemAdmin\r\n\t)?.length > 0;\r\n\r\n\treturn {\r\n\t\tname: 'HEROS'\r\n\t\t, href: 'heros/dashboard'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: getHerosNavItems(isAdmin, user)\r\n\t\t, activeNavLink: 'heros/dashboard'\r\n\t\t, secondaryNav: ['HEROS', 'Dashboard']\r\n\t\t// , icon: faMask\r\n\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.HEROS)\r\n\t\t, area: 'heros'\r\n\t\t, module: BusinessAreaEnum.HEROS\r\n\t};\r\n};\r\n\r\nfunction getUser(): UserJsVm {\r\n\tconst userJson: string = localStorage.getItem('user');\r\n\tif (userJson !== null) { return JSON.parse(userJson); }\r\n\treturn null;\r\n}\r\n\r\nfunction getHerosNavItems(isAdmin: boolean, user: UserJsVm) {\r\n\tconst navItems: NavRoute[] = [];\r\n\r\n\tnavItems.push({\r\n\t\tname: 'Dashboard'\r\n\t\t, exact: true\r\n\t\t, path: 'heros/dashboard'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, activeNavLink: 'heros/dashboard'\r\n\t\t, secondaryNav: ['HEROS', 'Dashboard']\r\n\t});\t\t\r\n\r\n\tnavItems.push({\r\n\t\tname: 'Agencies'\r\n\t\t, exact: true\r\n\t\t, path: 'heros/agencies/list'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, activeNavLink: 'heros/agencies'\r\n\t\t, secondaryNav: ['HEROS', 'Agencies']\r\n\t});\r\n\r\n\tnavItems.push({\r\n\t\tname: 'Applications'\r\n\t\t, exact: true\r\n\t\t, path: 'heros/applications/list'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, activeNavLink: 'heros/applications'\r\n\t\t, secondaryNav: ['HEROS', 'Applications']\r\n\t});\r\n\r\n\tnavItems.push({\r\n\t\tname: 'Contacts'\r\n\t\t, exact: true\r\n\t\t, path: 'heros/contacts/list'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, requireAll: true\r\n\t\t, activeNavLink: 'heros/contacts'\r\n\t\t, secondaryNav: ['HEROS', 'Contacts']\r\n\t});\r\n\r\n\tif (user?.errorReportBusinessAreas?.includes(BusinessAreaEnum.HEROS)) {\r\n\t\tnavItems.push({\r\n\t\t\tname: 'Error Reporting'\r\n\t\t\t, exact: true\r\n\t\t\t, path: `error-report/error-reports/heros/list/${BusinessAreaEnum.HEROS}`\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, requireAll: true\r\n\t\t\t, activeNavLink: 'error-report/error-reports/heros'\r\n\t\t\t, secondaryNav: ['HEROS', 'Error Reporting']\r\n\t\t});\r\n\t}\r\n\r\n\tif (user?.reportBusinessAreas?.includes(BusinessAreaEnum.HEROS)) {\r\n\t\tnavItems.push({\r\n\t\t\tname: 'Reporting'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Reports ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t\t, path: `reporting/list/${BusinessAreaEnum.HEROS}`\r\n\t\t\t, activeNavLink: 'reporting/list'\r\n\t\t\t, secondaryNav: ['HEROS', 'Reporting']\r\n\t\t});\r\n\t}\r\n\r\n\tnavItems.push({\r\n\t\tname: 'Admin'\r\n\t\t, moduleAccess: [\r\n\t\t\t{ \r\n\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User) \r\n\t\t\t}\r\n\t\t]\r\n\t\t, href: 'admin/fiscal-years'\r\n\t\t, activeNavLink: 'heros/admin/fiscal-years'\r\n\t\t, secondaryNav: ['Admin', 'Fiscal Years']\r\n\t\t, children: [\r\n\t\t\t{\r\n\t\t\t\tname: 'Fiscal Years'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'admin/fiscal-years'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, requireAll: true\r\n\t\t\t\t, activeNavLink: 'admin/fiscal-years'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Fiscal Years']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'FY Budget'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'heros/admin/fy-budget'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, requireAll: true\r\n\t\t\t\t, activeNavLink: 'heros/admin/fy-budget'\r\n\t\t\t\t, secondaryNav: ['Admin', 'FY Budget']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Rounds'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'heros/admin/rounds/list'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, requireAll: true\r\n\t\t\t\t, activeNavLink: 'heros/admin/rounds'\r\n\t\t\t\t, secondaryNav: ['HEROS', 'Admin', 'Rounds']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Attachment Types'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'heros/admin/attachment-types'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, requireAll: true\r\n\t\t\t\t, activeNavLink: 'heros/admin/attachment-types'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Attachment Types']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Misc Accounts'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'heros/admin/misc-accounts'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, requireAll: true\r\n\t\t\t\t, activeNavLink: 'heros/admin/misc-accounts'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Misc Accounts']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Ordering Options'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'heros/admin/ordering-options'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, requireAll: true\r\n\t\t\t\t, activeNavLink: 'heros/admin/ordering-options'\r\n\t\t\t\t, secondaryNav: ['Admin', 'Ordering Options']\r\n\t\t\t}\r\n\t\t]\r\n\t});\r\n\r\n\treturn navItems;\r\n}\r\n","import { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { NavRoute } from 'app/shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { AuthGuard } from '../security/auth.guard';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getIcqNav: () => NavRoute = () => {\r\n\r\n const user = getUser();\r\n\tconst sec = SecurityService;\r\n\tconst p = PermissionRole; // Setting this to reduce text.\r\n const icons = new FaBusinessAreaIconsService();\r\n\r\n if (user !== null) {\r\n\t\tvar navItems: NavRoute[] = [\r\n\t\t\t{\r\n\t\t\t\tname: 'Review Queue'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'icq/review-queue/list'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ICQ ]\r\n\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'icq/review-queue'\r\n\t\t\t\t, secondaryNav: ['ICQ', 'Review Queue']\r\n\t\t\t}\r\n\t\t];\r\n\r\n\t\tif (user?.errorReportBusinessAreas?.includes(BusinessAreaEnum.ICQ)) {\r\n\t\t\tnavItems.push({\r\n\t\t\t\tname: 'Error Reporting'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: `error-report/error-reports/icq/list/${BusinessAreaEnum.ICQ}`\r\n\t\t\t\t, activeNavLink: 'error-report/error-reports/icq'\r\n\t\t\t\t, secondaryNav: ['ICQ', 'Error Reporting']\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (user?.reportBusinessAreas?.includes(BusinessAreaEnum.ICQ)) {\r\n\t\t\tnavItems.push({\r\n\t\t\t\tname: 'Reporting'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Reports ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: `reporting/list/${BusinessAreaEnum.ICQ}`\r\n\t\t\t\t, activeNavLink: 'reporting/list'\r\n\t\t\t\t, secondaryNav: ['ICQ', 'Reporting']\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tnavItems.push({\r\n\t\t\tname: 'Admin'\r\n\t\t\t, href: 'icq/admin/questions'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.ICQ ]\r\n\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, activeNavLink: 'icq/admin/questions'\r\n\t\t\t, secondaryNav: ['ICQ', 'Admin', 'Questions']\r\n\t\t\t, children: [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'Sections'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'icq/admin/sections/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ICQ ]\r\n\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'icq/admin/sections'\r\n\t\t\t\t\t, secondaryNav: ['ICQ', 'Admin', 'Sections']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Issues'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'icq/admin/issues/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ICQ ]\r\n\t\t\t\t\t\t\t, permissionRoles: sec.setMinRole(p.SystemAdmin)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'icq/admin/issues'\r\n\t\t\t\t\t, secondaryNav: ['ICQ', 'Admin', 'Issues']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Questions'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'icq/admin/questions/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ICQ ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'icq/admin/questions'\r\n\t\t\t\t\t, secondaryNav: ['ICQ', 'Admin', 'Questions']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Surveys'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'icq/admin/surveys/list'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ICQ ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'icq/admin/surveys'\r\n\t\t\t\t\t, secondaryNav: ['ICQ', 'Admin', 'Surveys']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Settings'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'icq/admin/settings'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ICQ ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ p.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'icq/admin/settings'\r\n\t\t\t\t\t, secondaryNav: ['ICQ', 'Admin', 'Settings']\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t});\r\n\r\n return {\r\n name: 'ICQ'\r\n , canActivate: [ AuthGuard ]\r\n , moduleAccess: [\r\n {\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.ICQ ]\r\n\t\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t\t}\r\n ]\r\n\t\t\t, href: 'icq/review-queue/list'\r\n , children: navItems\r\n\t\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.ICQ)\r\n\t\t\t, area: 'icq'\r\n\t\t\t, module: BusinessAreaEnum.ICQ\r\n };\r\n }\r\n\r\n return { name: \"\" };\r\n}\r\n\r\nfunction getUser(): UserJsVm {\r\n\tconst userJson: string = localStorage.getItem('user');\r\n\tif (userJson !== null) { return JSON.parse(userJson); }\r\n\treturn null;\r\n}\r\n","import { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { NavRoute } from 'app/shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { SecurityService } from '../security/security.service';\r\n\r\nexport const getInvNav: () => NavRoute = () => {\r\n\treturn {\r\n\t\tname: 'System Inventory'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.SysInv ]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: getNavAreas()\r\n\t};\r\n};\r\n\r\nfunction getNavAreas(): NavRoute[] {\r\n\tvar id: string = \"\";\r\n\tvar url = window.location.href;\r\n\r\n\tif (url.indexOf(\"inv/invs/products\") > -1) { id = url.substring(url.lastIndexOf(\"/\") + 1); }\r\n\tif (url.indexOf(\"inv/invs/replenishments\") > -1) { id = url.substring(url.lastIndexOf(\"/\") + 1); }\r\n\tif (url.indexOf(\"inv/invs/reconciliations\") > -1) { id = url.substring(url.lastIndexOf(\"/\") + 1); }\r\n\tif (url.indexOf(\"inv/invs/forms\") > -1) { id = url.substring(url.lastIndexOf(\"/\") + 1); }\r\n\tif (id.includes(\"?\")) { id = FormatHelperService.replaceAfterChar(id, '?', \"\"); }\r\n\r\n\treturn [\r\n\t\t{\r\n\t\t\tname: 'Products'\r\n\t\t\t, path: `inv/invs/products/${id}`\r\n\t\t\t, activeNavLink: 'inv/invs/products'\r\n\t\t\t, secondaryNav: ['System Inventory', 'Products']\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: 'Replenishments'\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.SysInv ]\r\n , permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n }\r\n ]\r\n\t\t\t, path: `inv/invs/replenishments/${id}`\r\n\t\t\t, activeNavLink: 'inv/invs/replenishments'\r\n\t\t\t, secondaryNav: ['System Inventory', 'Replenishments']\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: 'Reconciliations'\r\n\t\t\t, path: `inv/invs/reconciliations/${id}`\r\n\t\t\t, activeNavLink: 'inv/invs/reconciliations'\r\n\t\t\t, secondaryNav: ['System Inventory', 'Reconciliations']\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: 'Forms'\r\n\t\t\t, path: `inv/invs/forms/${id}`\r\n\t\t\t, activeNavLink: 'inv/invs/forms'\r\n\t\t\t, secondaryNav: ['System Inventory', 'Forms']\r\n\t\t}\r\n\t];\r\n}\r\n","import { NavRoute } from '../../shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { getInvNav } from './inv-nav';\r\nimport { UserStateService } from 'app/state/user/user-state.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getInventoryNav: () => NavRoute = () => {\r\n\tconst user = UserStateService.getCurrentUser();\r\n const icons = new FaBusinessAreaIconsService(); \r\n\tif (!user?.systemInventory?.length) { return; }\r\n\r\n\tconst navRoute: NavRoute = {\r\n\t\tname: 'Inventory'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.SysInv ]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, href: 'inv/invs/list'\r\n\t\t, children: [\r\n\t\t\t{\r\n\t\t\t\tname: 'System Inventory'\r\n\t\t\t\t, path: 'inv/invs/list'\r\n\t\t\t\t, childNav: getInvNav()\r\n\t\t\t\t, featureFlag: true\r\n\t\t\t\t, activeNavLink: 'inv/invs/list'\r\n\t\t\t\t, secondaryNav: ['Inventory', 'System Inventory' ]\r\n\t\t\t}\r\n , {\r\n\t\t\t\tname: 'Orders'\r\n\t\t\t\t, path: 'inv/form-orders/list'\r\n\t\t\t\t, featureFlag: true\r\n\t\t\t\t, activeNavLink: 'inv/form-orders'\r\n\t\t\t\t, secondaryNav: ['Inventory', 'Orders' ]\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.SysInv ]\r\n , permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n }\r\n ]\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: \"EPCIS\"\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: \"inv/epcis/list\"\r\n\t\t\t\t, activeNavLink: 'inv/epcis/list'\r\n\t\t\t\t, secondaryNav: ['Inventory', 'EPCIS' ]\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Admin'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.SysInv ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, children: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tname: 'Verification Settings'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'inv/admin/verification-settings'\r\n\t\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.SysInv ]\r\n\t\t\t\t\t\t\t\t, permissionRoles: [ PermissionRole.SystemAdmin ]\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t\t, activeNavLink: 'inv/admin/verification-settings'\r\n\t\t\t\t\t\t, secondaryNav: ['Admin', 'Verification Settings' ]\r\n\t\t\t\t\t} \r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'Form Settings'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'inv/admin/form-settings'\r\n\t\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.SysInv ]\r\n\t\t\t\t\t\t\t\t, permissionRoles: [ PermissionRole.SystemAdmin ]\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t\t, activeNavLink: 'inv/admin/form-settings'\r\n\t\t\t\t\t\t, secondaryNav: ['Admin', 'Form Settings' ]\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'Fulfillment Groups'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'inv/admin/fulfillment-groups'\r\n\t\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.SysInv ]\r\n\t\t\t\t\t\t\t\t, permissionRoles: [ PermissionRole.SystemAdmin ]\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t\t, activeNavLink: 'inv/admin/fulfillment-groups'\r\n\t\t\t\t\t\t, secondaryNav: ['Admin', 'Fulfillment Groups' ]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t]\r\n\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.SysInv)\r\n\t\t, area: 'inv'\r\n\t\t, module: BusinessAreaEnum.SysInv\r\n\t}\r\n\r\n\treturn navRoute;\r\n\r\n};","import { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { NavRoute } from '../../shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { AuthGuard } from '../security/auth.guard';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getMetabolicFormulaNav: () => NavRoute = () => {\r\n\r\n const user = getUser();\r\n const icons = new FaBusinessAreaIconsService();\r\n\tvar navItems: NavRoute[] = [\r\n {\r\n name: 'Orders'\r\n , exact: true\r\n , path: 'metabolic-formula/orders/list'\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.MetabolicFormula ]\r\n , permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n }\r\n ]\r\n , activeNavLink: 'metabolic-formula/orders'\r\n\t\t\t, secondaryNav: ['Metabolic Formula', 'Orders']\r\n }\r\n , {\r\n name: 'Facilities'\r\n , exact: true\r\n , path: 'metabolic-formula/facilities/list'\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.MetabolicFormula ]\r\n , permissionRoles: [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n }\r\n ]\r\n , activeNavLink: 'metabolic-formula/facilities'\r\n\t\t\t, secondaryNav: ['Metabolic Formula', 'Facilities']\r\n }\r\n ];\r\n\r\n\tif (user?.errorReportBusinessAreas?.includes(BusinessAreaEnum.MetabolicFormula)) {\r\n\t\tnavItems.push({\r\n\t\t\tname: 'Error Reporting'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n , permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, path: `error-report/error-reports/metabolic-formula/list/${BusinessAreaEnum.MetabolicFormula}`\r\n , activeNavLink: 'error-report/error-reports/metabolic-formula'\r\n , secondaryNav: ['Metabolic Formula', 'Error Reporting']\r\n\t\t});\r\n\t}\r\n\r\n if (user?.reportBusinessAreas?.includes(BusinessAreaEnum.MetabolicFormula)) {\r\n navItems.push({\r\n name: 'Reporting'\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.Reports ]\r\n , permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n }\r\n ]\r\n , exact: true\r\n , path: `reporting/list/${BusinessAreaEnum.MetabolicFormula}`\r\n , activeNavLink: 'reporting/list'\r\n , secondaryNav: ['Metabolic Formula', 'Reporting']\r\n });\r\n }\r\n\r\n navItems.push({\r\n name: 'Admin'\r\n , exact: true\r\n , path: 'metabolic-formula/admin'\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.MetabolicFormula ]\r\n , permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n }\r\n ]\r\n , activeNavLink: 'metabolic-formula/admin'\r\n , secondaryNav: ['Metabolic Formula', 'Admin']\r\n });\r\n\r\n return {\r\n name: 'Metabolic Formula'\r\n , canActivate: [ AuthGuard ]\r\n , href: 'metabolic-formula/orders/list'\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.MetabolicFormula ]\r\n , permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n }\r\n ]\r\n , children: navItems\r\n\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.MetabolicFormula)\r\n\t\t, area: 'metabolic-formula'\r\n\t\t, module: BusinessAreaEnum.MetabolicFormula\r\n }\r\n}\r\n\r\nfunction getUser(): UserJsVm {\r\n\tconst userJson: string = localStorage.getItem('user');\r\n\tif (userJson !== null) { return JSON.parse(userJson); }\r\n\treturn null;\r\n}","import { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { NavRoute } from '../../shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getNdcDirectoryNav: () => NavRoute = () => {\r\n\r\n\tconst user = getUser();\r\n const icons = new FaBusinessAreaIconsService();\r\n\tvar navItems: NavRoute[] = [\r\n\t\t{\r\n\t\t\tname: 'FDA'\r\n\t\t\t, exact: true\r\n\t\t\t, path: 'ndcs/fda/list'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.NDC ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, activeNavLink: 'ndcs/fda'\r\n\t\t\t, secondaryNav: ['NDCs', 'FDA']\r\n\t\t}\r\n , {\r\n\t\t\tname: 'NDC Lookup'\r\n\t\t\t, exact: true\r\n\t\t\t, path: 'ndcs/lookup'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.NDC ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, activeNavLink: 'ndcs/lookup'\r\n\t\t\t, secondaryNav: ['NDCs', 'NDC Lookup']\r\n\t\t}\r\n , {\r\n\t\t\tname: 'Recalls'\r\n\t\t\t, exact: true\r\n\t\t\t, path: 'ndcs/recalls/list'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.NDC ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, activeNavLink: 'ndcs/recalls'\r\n\t\t\t, secondaryNav: ['NDCs', 'Recalls']\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: 'Redbook'\r\n\t\t\t, exact: true\r\n\t\t\t, path: 'ndcs/redbook/list'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.NDC ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, activeNavLink: 'ndcs/redbook'\r\n\t\t\t, secondaryNav: ['NDCs', 'Redbook']\r\n\t\t}\r\n\t];\r\n\r\n\tif (user?.errorReportBusinessAreas?.includes(BusinessAreaEnum.NDC)) {\r\n\t\tnavItems.push({\r\n\t\t\tname: 'Error Reporting'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t\t, path: `error-report/error-reports/ndcs/list/${BusinessAreaEnum.NDC}`\r\n\t\t\t, activeNavLink: 'error-report/error-reports/ndcs'\r\n\t\t\t, secondaryNav: ['NDCs', 'Error Reporting']\r\n\t\t});\r\n\t}\r\n\r\n\tif (user?.reportBusinessAreas?.includes(BusinessAreaEnum.NDC)) {\r\n\t\tnavItems.push({\r\n\t\t\tname: 'Reporting'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Reports ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t\t, path: `reporting/list/${BusinessAreaEnum.NDC}`\r\n\t\t\t, activeNavLink: 'reporting/list'\r\n\t\t\t, secondaryNav: ['NDCs', 'Reporting']\r\n\t\t});\r\n\t}\r\n\r\n\treturn {\r\n\t\tname: 'NDCs'\r\n\t\t, href: 'ndcs/redbook/list'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.NDC ]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: navItems\r\n\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.NDC)\r\n\t\t, area: 'ndcs'\r\n\t\t, module: BusinessAreaEnum.NDC\r\n\t};\r\n};\r\n\r\nfunction getUser(): UserJsVm {\r\n\tconst userJson: string = localStorage.getItem('user');\r\n\tif (userJson !== null) { return JSON.parse(userJson); }\r\n\treturn null;\r\n}","import { faGears } from '@fortawesome/pro-solid-svg-icons';\r\nimport { NavRoute } from \"app/shared/navigation/nav.route.interface\";\r\nimport { BusinessAreaEnum } from \"../enums/generated/BusinessAreaEnum\";\r\nimport { PermissionRole } from \"../enums/generated/PermissionRole\";\r\n\r\n/** Returns `NavRoute` that is only accesible to \r\n * Paul Consulting users. \r\n * \r\n * The client doesn't necessarily have purposes for these\r\n * features so we're hiding them behind the feature flag.\r\n * \r\n * This is also a space for developers to hide features that\r\n * you are waiting to release.\r\n */\r\nexport const getPcgNav: () => NavRoute = () => {\r\n const pr = PermissionRole;\r\n\r\n const facilityTypes : NavRoute = {\r\n name: 'Facility Types'\r\n , exact: true\r\n , path: 'pcg/facility-types'\r\n , activeNavLink: 'pcg/facility-types'\r\n , secondaryNav: ['PCG', 'Facility Types']\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.Admin ]\r\n , permissionRoles: [ pr.SystemAdmin ]\r\n }\r\n ] \r\n };\r\n\r\n const datadog : NavRoute = {\r\n name: 'Datadog Sandbox'\r\n , exact: true\r\n , path: 'pcg/datadog/sandbox'\r\n , activeNavLink: 'pcg/datadog/sandbox'\r\n\t\t, secondaryNav: ['PCG', 'Datadog Sandbox']\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.Admin ]\r\n , permissionRoles: [ pr.SystemAdmin ]\r\n }\r\n ]\r\n };\r\n \r\n const epcis : NavRoute = {\r\n name: 'EPCIS Sandbox'\r\n , exact: true\r\n , path: 'pcg/epcis/sandbox'\r\n , activeNavLink: 'pcg/epcis/sandbox'\r\n\t\t, secondaryNav: ['PCG', 'EPCIS Sandbox']\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.Admin ]\r\n , permissionRoles: [ pr.SystemAdmin ]\r\n }\r\n ]\r\n };\r\n\r\n const sysInv : NavRoute = {\r\n name: 'SysInv Sandbox'\r\n , exact: true\r\n , path: 'pcg/sysInv/sandbox'\r\n , activeNavLink: 'pcg/sysInv/sandbox'\r\n\t\t, secondaryNav: ['PCG', 'SysInv Sandbox']\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.Admin ]\r\n , permissionRoles: [ pr.SystemAdmin ]\r\n }\r\n ]\r\n };\r\n\r\n const sse : NavRoute = {\r\n name: 'SSE Sandbox'\r\n , exact: true\r\n , path: 'pcg/sse/sandbox'\r\n , activeNavLink: 'pcg/sse/sandbox'\r\n\t\t, secondaryNav: ['PCG', 'SSE Sandbox']\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.Admin ]\r\n , permissionRoles: [ pr.SystemAdmin ]\r\n }\r\n ]\r\n };\r\n\r\n const releaseNotes : NavRoute = {\r\n name: 'Release Notes'\r\n , exact: true\r\n , path: 'pcg/web-release-notes/list'\r\n , activeNavLink: 'pcg/web-release-notes'\r\n\t\t, secondaryNav: ['PCG', 'Release Notes']\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.Admin ]\r\n , permissionRoles: [ PermissionRole.SystemAdmin ]\r\n }\r\n ]\r\n };\r\n\r\n const quartz : NavRoute = {\r\n name: 'Quartz'\r\n , exact: true\r\n , path: 'quartz'\r\n , openNewTab: true\r\n , moduleAccess: [\r\n {\r\n modules: [ BusinessAreaEnum.Admin ]\r\n , permissionRoles: [ pr.SystemAdmin ]\r\n }\r\n ]\r\n };\r\n\r\n const children : NavRoute[] = [ \r\n facilityTypes\r\n , datadog\r\n , epcis\r\n , sysInv\r\n , sse\r\n , releaseNotes\r\n , quartz\r\n ]\r\n\r\n // If you see this code, you're the target audience for this nav item!\r\n const navItems: NavRoute = {\r\n name: 'PCG'\r\n , featureFlag: true\r\n , path: 'pcg/facility-types'\r\n , children : children \r\n , moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t, permissionRoles: [ pr.SystemAdmin ]\r\n\t\t\t}\r\n\t\t]\r\n\t\t, icon: faGears\r\n , area: 'pcg'\r\n\t\t, module: BusinessAreaEnum.Unassigned \r\n }\r\n\r\n return navItems;\r\n}","import { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { NavRoute } from 'app/shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\n\r\nexport const getPharmacyInventoryNav: () => NavRoute = () => {\r\n\treturn {\r\n\t\tname: 'Pharmacy Inventory'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: getInventoryAreas()\r\n\t};\r\n};\r\n\r\nfunction getInventoryAreas(): NavRoute[] {\r\n const user = getUser();\r\n var id: string = \"\";\r\n\tvar url = window.location.href?.split('?')[0];\r\n var rxTitle = \"Rx Fulfillment\";\r\n if (user?.isRxUser) { rxTitle = \"Refill Request\"; }\r\n\r\n\tif (url.indexOf(\"pharmacy/inventories/products/\") > -1) { id = url.substring(url.lastIndexOf(\"/\") + 1); }\r\n if (url.indexOf(\"pharmacy/inventories/transaction-history\") > -1) { id = url.substring(url.lastIndexOf(\"/\") + 1); }\r\n if (url.indexOf(\"pharmacy/inventories/reconciliation/\") > -1) { id = url.substring(url.lastIndexOf(\"/\") + 1); }\r\n if (url.indexOf(\"pharmacy/inventories/replenishment/\") > -1) { id = url.substring(url.lastIndexOf(\"/\") + 1); }\r\n if (url.indexOf(\"pharmacy/inventories/fulfillment/\") > -1) { id = url.substring(url.lastIndexOf(\"/\") + 1); }\r\n if (url.indexOf(\"pharmacy/inventories/transfers/\") > -1) { id = url.substring(url.lastIndexOf(\"/\") + 1); }\r\n if (url.indexOf(\"pharmacy/inventories/invoices/\") > -1) { id = url.substring(url.lastIndexOf(\"/\") + 1); }\r\n\tif (id.includes(\"?\")) { id = FormatHelperService.replaceAfterChar(id, '?', \"\"); }\r\n\t\r\n\treturn [\r\n\t\t{\r\n\t\t\tname: 'Products'\r\n\t\t\t, path: `pharmacy/inventories/products/list/${id}`\r\n\t\t\t, activeNavLink: 'pharmacy/inventories/products'\r\n\t\t\t, secondaryNav: ['Pharmacy Inventory', 'Products']\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: 'Transaction History'\r\n\t\t\t, path: `pharmacy/inventories/transaction-history/${id}`\r\n\t\t\t, activeNavLink: 'pharmacy/inventories/transaction-history'\r\n\t\t\t, secondaryNav: ['Pharmacy Inventory', 'Transaction History']\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: 'Reconciliation'\r\n\t\t\t, path: `pharmacy/inventories/reconciliation/list/${id}`\r\n\t\t\t, activeNavLink: 'pharmacy/inventories/reconciliation'\r\n\t\t\t, secondaryNav: ['Pharmacy Inventory', 'Reconciliation']\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: 'Replenishment'\r\n\t\t\t, path: `pharmacy/inventories/replenishment/list/${id}`\r\n\t\t\t, activeNavLink: 'pharmacy/inventories/replenishment'\r\n\t\t\t, secondaryNav: ['Pharmacy Inventory', 'Replenishment']\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: rxTitle\r\n\t\t\t, path: `pharmacy/inventories/fulfillment/list/${id}`\r\n\t\t\t, activeNavLink: 'pharmacy/inventories/fulfillment'\r\n\t\t\t, secondaryNav: ['Pharmacy Inventory', rxTitle]\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: 'Transfers'\r\n\t\t\t, path: `pharmacy/inventories/transfers/list/${id}`\r\n\t\t\t, activeNavLink: 'pharmacy/inventories/transfers'\r\n\t\t\t, secondaryNav: ['Pharmacy Inventory', 'Transfers']\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t}\r\n\t\t, {\r\n\t\t\tname: 'Invoices'\r\n\t\t\t, path: `pharmacy/inventories/invoices/list/${id}`\r\n\t\t\t, activeNavLink: 'pharmacy/inventories/invoices'\r\n\t\t\t, secondaryNav: ['Pharmacy Inventory', 'Invoices']\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t}\r\n\t];\r\n}\r\n\r\nfunction getUser(): UserJsVm {\r\n const userJson: string = localStorage.getItem('user');\r\n if (userJson !== null) { return JSON.parse(userJson); }\r\n return null;\r\n}\r\n","import { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { NavRoute } from 'app/shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { getPharmacyInventoryNav } from './pharmacy-inventory-nav';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getPharmacyNav: () => NavRoute = () => {\r\n\r\n\tconst user = getUser();\r\n const icons = new FaBusinessAreaIconsService();\r\n var rxTitle = \"Rx Fulfillment\";\r\n if (user?.isRxUser) { rxTitle = \"Refill Request\"; }\r\n\r\n\tif ((user?.inventorySites?.length ?? 0) !== 0) {\r\n\t\t// Always show the View All Sites link, regardless of site paging\r\n\t\tconst pharmacyNavItems: NavRoute[] = [];\r\n\r\n\t\tpharmacyNavItems.push(\r\n\t\t\t{\r\n\t\t\t\tname: rxTitle\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'pharmacy/fulfillment/list'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, activeNavLink: 'pharmacy/fulfillment'\r\n\t\t\t\t, secondaryNav: ['Pharmacy', rxTitle]\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tpharmacyNavItems.push(\r\n\t\t\t{\r\n\t\t\t\tname: 'Inventories'\r\n\t\t\t\t, path: 'pharmacy/inventories/list'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, childNav: getPharmacyInventoryNav()\r\n\t\t\t\t, activeNavLink: 'pharmacy/inventories/list'\r\n\t\t\t\t, secondaryNav: ['Pharmacy', 'Inventories']\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tpharmacyNavItems.push(\r\n\t\t\t{\r\n\t\t\t\tname: 'Pharm Log'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'pharmacy/pharm-log/list'\r\n\t\t\t\t, activeNavLink: 'pharmacy/pharm-log'\r\n\t\t\t\t, secondaryNav: ['Pharmacy', 'Pharm Log']\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tpharmacyNavItems.push(\r\n\t\t\t{\r\n\t\t\t\tname: 'Inventory Changes'\r\n\t\t\t\t, href: 'pharmacy/inventory-changes'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'pharmacy/inventory-changes'\r\n\t\t\t\t, activeNavLink: 'pharmacy/inventory-changes'\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tpharmacyNavItems.push(\r\n\t\t\t{\r\n\t\t\t\tname: 'Reports'\r\n\t\t\t\t, href: 'pharmacy/reports/fulfillment-turn-around'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, children: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tname: 'Rx Turnaround'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/reports/fulfillment-turn-around'\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/reports/fulfillment-turn-around'\r\n\t\t\t\t\t\t, secondaryNav: ['Reports', 'Rx Turnaround']\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'Overage Shortage'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/reports/overage-shortage'\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/reports/overage-shortage'\r\n\t\t\t\t\t\t, secondaryNav: ['Reports', 'Over / Short']\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'QC Check'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/reports/qccheck'\r\n\t\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t, {\r\n\t\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t\t\t\t\t, permissionRoles: [ PermissionRole.SystemAdmin ]\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t\t, requireAll: true\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/reports/qccheck'\r\n\t\t\t\t\t\t, secondaryNav: ['Reports', 'QC Check']\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'Reorder'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/reports/reorder'\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/reports/reorder'\r\n\t\t\t\t\t\t, secondaryNav: ['Reports', 'Reorder']\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'Inventory Change'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/reports/inventory-change'\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/reports/inventory-change'\r\n\t\t\t\t\t\t, secondaryNav: ['Pharmacy', 'Reports', 'Inventory Change']\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'Rx Tracking'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/reports/rx-tracking-number'\r\n\t\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/reports/rx-tracking-number'\r\n\t\t\t\t\t\t, secondaryNav: ['Reports', 'Rx Tracking']\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'Rx Deletion'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/reports/fulfillment-deletion'\r\n\t\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/reports/fulfillment-deletion'\r\n\t\t\t\t\t\t, secondaryNav: ['Reports', 'Rx Deletion']\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\tif (user?.errorReportBusinessAreas?.includes(BusinessAreaEnum.Inventory)) {\r\n\t\t\tpharmacyNavItems.push(\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'Error Reporting'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: `error-report/error-reports/pharmacy/list/${BusinessAreaEnum.Inventory}`\r\n\t\t\t\t\t, activeNavLink: 'error-report/error-reports/pharmacy'\r\n\t\t\t\t\t, secondaryNav: ['Pharmacy', 'Error Reporting']\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tpharmacyNavItems.push(\r\n\t\t\t{\r\n\t\t\t\tname: 'Admin'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{ \r\n\t\t\t\t\t\tmodules: [ \r\n\t\t\t\t\t\t\tBusinessAreaEnum.Admin\r\n\t\t\t\t\t\t\t, BusinessAreaEnum.Inventory\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist) \r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, href: 'pharmacy/admin/inventory-actions/list'\r\n\t\t\t\t, activeNavLink: 'pharmacy/admin/inventory-actions'\r\n\t\t\t\t, secondaryNav: ['Pharmacy', 'Admin', 'Inventory Actions']\r\n\t\t\t\t, children: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tname: 'Inventory Actions'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/admin/inventory-actions/list'\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/admin/inventory-actions'\r\n\t\t\t\t\t\t, secondaryNav: ['Pharmacy', 'Admin', 'Inventory Actions']\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, { \r\n\t\t\t\t\t\tname: 'Programs'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/admin/programs'\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/admin/programs'\r\n\t\t\t\t\t\t, secondaryNav: ['Admin', 'Programs']\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'Departments'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/admin/departments'\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/admin/departments'\r\n\t\t\t\t\t\t, secondaryNav: ['Admin', 'Departments']\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'Script Status'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/admin/script-status'\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/admin/script-status'\r\n\t\t\t\t\t\t, secondaryNav: ['Admin', 'Script Status']\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'Non Rx Types'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/admin/non-rx-types'\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/admin/non-rx-types'\r\n\t\t\t\t\t\t, secondaryNav: ['Admin', 'Non Rx Types']\r\n\t\t\t\t\t}\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tname: 'Verification Settings'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'pharmacy/admin/verification-settings'\r\n\t\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\tmodules: [ \r\n\t\t\t\t\t\t\t\t\tBusinessAreaEnum.Admin\r\n\t\t\t\t\t\t\t\t\t, BusinessAreaEnum.Inventory \r\n\t\t\t\t\t\t\t\t]\r\n\t\t\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist) \r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t]\r\n\t\t\t\t\t\t, activeNavLink: 'pharmacy/admin/verification-settings'\r\n\t\t\t\t\t\t, secondaryNav: ['Admin', 'Verification Settings']\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n\t\t);\r\n\r\n\t\treturn {\r\n\t\t\tname: 'Pharmacy'\r\n\t\t\t, href: 'pharmacy/fulfillment/list'\r\n\t\t\t, activeNavLink: 'pharmacy/fulfillment'\r\n\t\t\t, secondaryNav: ['Pharmacy', 'Rx Fulfillment']\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, children: pharmacyNavItems\r\n\t\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.Inventory)\r\n\t\t\t, area: 'pharmacy'\r\n\t\t\t, module: BusinessAreaEnum.Inventory\r\n\t\t};\r\n\t}\r\n\r\n\tconst pharmacyNavItems: NavRoute[] = [];\r\n\r\n\tpharmacyNavItems.push(\r\n\t\t{\r\n\t\t\tname: 'Rx Fulfillment'\r\n\t\t\t, exact: true\r\n\t\t\t, path: 'pharmacy/fulfillment/list'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, activeNavLink: 'pharmacy/fulfillment'\r\n\t\t\t, secondaryNav: ['Pharmacy', 'Rx Fulfillment']\r\n\t\t}\r\n\t);\r\n\r\n\tpharmacyNavItems.push(\r\n\t\t{\r\n\t\t\tname: 'Inventories'\r\n\t\t\t, exact: true\r\n\t\t\t, path: 'pharmacy/inventories/list'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, activeNavLink: 'pharmacy/inventories/list'\r\n\t\t\t, secondaryNav: ['Pharmacy', 'Inventories']\r\n\t\t}\r\n\t);\r\n\r\n\tpharmacyNavItems.push(\r\n\t\t{\r\n\t\t\tname: 'Pharm Log'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t\t, path: 'pharmacy/pharm-log/list'\r\n\t\t\t, activeNavLink: 'pharmacy/pharm-log'\r\n\t\t\t, secondaryNav: ['Pharmacy', 'Pharm Log']\r\n\t\t}\r\n\t);\r\n\t\r\n\tpharmacyNavItems.push(\r\n\t\t{\r\n\t\t\tname: 'Inventory Changes'\r\n\t\t\t, href: 'pharmacy/inventory-changes'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, exact: true\r\n\t\t\t, path: 'pharmacy/inventory-changes'\r\n\t\t\t, activeNavLink: 'pharmacy/inventory-changes'\r\n\t\t\t, secondaryNav: ['Pharmacy', 'Inventory Changes']\r\n\t\t}\r\n\t);\r\n\t\r\n\tpharmacyNavItems.push(\r\n\t\t{\r\n\t\t\tname: 'Reports'\r\n\t\t\t, href: 'pharmacy/reports/fulfillment-turn-around'\r\n\t\t\t, moduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t\t, children: [\r\n\t\t\t\t{\r\n\t\t\t\t\tname: 'Rx Turnaround'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'pharmacy/reports/fulfillment-turn-around'\r\n\t\t\t\t\t, activeNavLink: 'pharmacy/reports/fulfillment-turn-around'\r\n\t\t\t\t\t, secondaryNav: ['Reports', 'Rx Turnaround']\r\n\t\t\t\t} \r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Over / Short'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'pharmacy/reports/overage-shortage'\r\n\t\t\t\t\t, activeNavLink: 'pharmacy/reports/overage-shortage'\r\n\t\t\t\t\t, secondaryNav: ['Reports', 'Over / Short']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'QC Check Report'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'pharmacy/reports/qccheck'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t, {\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\r\n\t\t\t\t\t\t\t, permissionRoles: [ PermissionRole.SystemAdmin ]\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, requireAll: true\r\n\t\t\t\t\t, activeNavLink: 'pharmacy/reports/qccheck'\r\n\t\t\t\t\t, secondaryNav: ['Reports', 'QC Check']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Reorder'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'pharmacy/reports/reorder'\r\n\t\t\t\t\t, activeNavLink: 'pharmacy/reports/reorder'\r\n\t\t\t\t\t, secondaryNav: ['Reports', 'Reorder']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Inventory Change'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'pharmacy/reports/inventory-change'\r\n\t\t\t\t\t, activeNavLink: 'pharmacy/reports/inventory-change'\r\n\t\t\t\t\t, secondaryNav: ['Pharmacy', 'Reports', 'Inventory Change']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Rx Tracking'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'pharmacy/reports/rx-tracking-number'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'pharmacy/reports/rx-tracking-number'\r\n\t\t\t\t\t, secondaryNav: ['Reports', 'Rx Tracking']\r\n\t\t\t\t}\r\n\t\t\t\t, {\r\n\t\t\t\t\tname: 'Rx Deletion'\r\n\t\t\t\t\t, exact: true\r\n\t\t\t\t\t, path: 'pharmacy/reports/fulfillment-deletion'\r\n\t\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t]\r\n\t\t\t\t\t, activeNavLink: 'pharmacy/reports/fulfillment-deletion'\r\n\t\t\t\t\t, secondaryNav: ['Reports', 'Rx Deletion']\r\n\t\t\t\t}\r\n\t\t\t]\r\n\t\t}\r\n\t);\r\n\r\n\tif (user?.errorReportBusinessAreas?.includes(BusinessAreaEnum.Inventory)) {\r\n\t\tpharmacyNavItems.push(\r\n\t\t\t{\r\n\t\t\t\tname: 'Error Reporting'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.ErrorReport ]\r\n\t\t\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: `error-report/error-reports/list/${BusinessAreaEnum.Inventory}`\r\n\t\t\t\t, activeNavLink: 'error-report/error-reports/list'\r\n\t\t\t\t, secondaryNav: ['Pharmacy', 'Error Reporting']\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\treturn {\r\n\t\tname: 'Pharmacy'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.Inventory ]\r\n\t\t\t\t, permissionRoles: SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: pharmacyNavItems\r\n\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.Inventory)\r\n\t\t, area: 'pharmacy'\r\n\t\t, module: BusinessAreaEnum.Inventory\r\n\t};\r\n};\r\n\r\nfunction getUser(): UserJsVm {\r\n\tconst userJson: string = localStorage.getItem('user');\r\n\tif (userJson !== null) { return JSON.parse(userJson); }\r\n\treturn null;\r\n}\r\n","import { NavRoute } from \"app/shared/navigation/nav.route.interface\";\r\nimport { BusinessAreaEnum } from \"../enums/generated/BusinessAreaEnum\";\r\nimport { PermissionRole } from \"../enums/generated/PermissionRole\";\r\nimport { SecurityService } from \"../security/security.service\";\r\nimport { FaBusinessAreaIconsService } from \"app/shared/fa-business-area-icons/fa-business-area-icons.service\";\r\n\r\nexport const getReportingNav: () => NavRoute = () => {\r\n\tconst sec = SecurityService;\r\n\tconst p = PermissionRole; // Setting this to reduce text.\r\n const icons = new FaBusinessAreaIconsService();\r\n\treturn {\r\n\t\tname: 'Reporting'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.Reports ]\r\n\t\t\t\t, permissionRoles: [ ...sec.setMinRole(p.User) ]\r\n\t\t\t}\r\n\t\t]\r\n\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.Reports)\r\n\t\t, area: 'reporting'\r\n , href: 'reporting/list'\r\n\t\t, children: [\r\n\t\t\t{\r\n\t\t\t\tname: 'Reports'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'reporting/list'\r\n\t\t\t\t, activeNavLink: 'reporting'\r\n\t\t\t\t, secondaryNav: ['Reporting', 'Reports']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Admin'\r\n\t\t\t\t, moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.Reports ]\r\n\t\t\t\t\t\t, permissionRoles: [ ...sec.setMinRole(p.SystemAdmin) ]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t\t, children: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tname: 'Facility Users'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'reporting/admin/facility-users/list'\r\n\t\t\t\t\t\t, activeNavLink: 'reporting/admin/facility-users'\r\n\t\t\t\t\t\t, secondaryNav: ['Reporting', 'Admin', 'Facility Users']\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n\t\t\t}\r\n , {\r\n name: \"CI Repack\"\r\n , moduleAccess: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t, permissionRoles: [ ...sec.setMinRole(p.Technician) ]\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n , children: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tname: 'Card Production Status'\r\n , shortName: 'Card Prod Status'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'reporting/ci/card-production-status/list'\r\n\t\t\t\t\t\t, activeNavLink: 'reporting/ci/card-production-status'\r\n\t\t\t\t\t\t, secondaryNav: ['Reporting', 'CI Repack', 'Card Prod Status']\r\n\t\t\t\t\t}\r\n , {\r\n\t\t\t\t\t\tname: 'Card Shipment Status'\r\n , shortName: 'Card Ship Status'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'reporting/ci/card-shipment-status/list'\r\n\t\t\t\t\t\t, activeNavLink: 'reporting/ci/card-shipment-status'\r\n\t\t\t\t\t\t, secondaryNav: ['Reporting', 'CI Repack', 'Card Ship Status']\r\n\t\t\t\t\t}\r\n , {\r\n\t\t\t\t\t\tname: 'Lot #s'\r\n , shortName: 'Lot #s'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'reporting/ci/lot-number/list'\r\n\t\t\t\t\t\t, activeNavLink: 'reporting/ci/lot-number'\r\n\t\t\t\t\t\t, secondaryNav: ['Reporting', 'CI Repack', 'Lot #s']\r\n\t\t\t\t\t}\r\n , {\r\n\t\t\t\t\t\tname: 'Orders Data Set'\r\n , shortName: 'Orders'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'reporting/ci/order-data-set/list'\r\n\t\t\t\t\t\t, activeNavLink: 'reporting/ci/order-data-set'\r\n\t\t\t\t\t\t, secondaryNav: ['Reporting', 'CI Repack', 'Orders Data Set']\r\n\t\t\t\t\t}\r\n , {\r\n\t\t\t\t\t\tname: 'Jobs Data Set'\r\n , shortName: 'Jobs'\r\n\t\t\t\t\t\t, exact: true\r\n\t\t\t\t\t\t, path: 'reporting/ci/job-data-set/list'\r\n\t\t\t\t\t\t, activeNavLink: 'reporting/ci/job-data-set'\r\n\t\t\t\t\t\t, secondaryNav: ['Reporting', 'CI Repack', 'Jobs Data Set']\r\n\t\t\t\t\t}\r\n\t\t\t\t]\r\n }\r\n\t\t]\r\n\t};\r\n};\r\n","import { NavRoute } from 'app/shared/navigation/nav.route.interface';\r\nimport { BusinessAreaEnum } from '../enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from '../enums/generated/PermissionRole';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\n\r\nexport const getRxConnectsNav: () => NavRoute = () => {\r\n\tconst sec = SecurityService;\r\n\tconst p = PermissionRole; // Setting this to reduce text.\r\n const icons = new FaBusinessAreaIconsService();\r\n\r\n\tconst dashboard: NavRoute = {\r\n\t\tname: 'Dashboard'\r\n\t\t, exact: true\r\n\t\t, path: 'rxconnects/dashboard'\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.RxConnects ]\r\n\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, activeNavLink: 'rxconnects/dashboard'\r\n\t\t, secondaryNav: ['RxConnects', 'Dashboard']\r\n\t};\r\n\r\n\tconst patients: NavRoute = {\r\n\t\tname: 'Patients'\r\n\t\t, exact: true\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.RxConnects ]\r\n\t\t\t\t, permissionRoles: sec.setMinRole(p.User)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: [\r\n\t\t\t{\r\n\t\t\t\tname: 'Applications'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'rxconnects/patients/applications/list'\r\n\t\t\t\t, activeNavLink: 'rxconnects/patients/applications'\r\n\t\t\t\t, secondaryNav: ['RxConnects', 'Patients', 'Applications']\r\n\t\t\t}\r\n\t\t]\r\n\t};\r\n\r\n\tconst repository: NavRoute = {\r\n\t\tname: 'Repository'\r\n\t\t, exact: true\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.RxConnects ]\r\n\t\t\t\t, permissionRoles: sec.setMinRole(p.RxConnectsPharmacist)\r\n\t\t\t}\r\n\t\t]\t\r\n\t\t, children: [\r\n\t\t\t{\r\n\t\t\t\tname: 'Repositories'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'rxconnects/repository/repositories/list'\r\n\t\t\t\t, activeNavLink: 'rxconnects/repository/repositories'\r\n\t\t\t\t, secondaryNav: ['RxConnects', 'Repository', 'Repositories']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Available Donations'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'rxconnects/repository/available-donations'\r\n\t\t\t\t, activeNavLink: 'rxconnects/repository/available-donations'\r\n\t\t\t\t, secondaryNav: ['RxConnects', 'Repository', 'Available Donations']\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t, {\r\n\t\t\t\tname: 'Inventory'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'rxconnects/repository/inventory/list'\r\n\t\t\t\t, activeNavLink: 'rxconnects/repository/inventory'\r\n\t\t\t\t, secondaryNav: ['RxConnects', 'Repository', 'Inventory']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Transfers'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'rxconnects/repository/transfers/list'\r\n\t\t\t\t, activeNavLink: 'rxconnects/repository/transfers'\r\n\t\t\t\t, secondaryNav: ['RxConnects', 'Repository', 'Transfers']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Drug Destructions'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'rxconnects/repository/destructions'\r\n\t\t\t\t, activeNavLink: 'rxconnects/repository/destructions'\r\n\t\t\t\t, secondaryNav: ['RxConnects', 'Repository', 'Drug Destructions']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Withdrawal'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'rxconnects/repository/withdrawal'\r\n\t\t\t\t, activeNavLink: 'rxconnects/repository/withdrawal'\r\n\t\t\t\t, secondaryNav: ['RxConnects', 'Repository', 'Withdrawal']\r\n\t\t\t}\r\n\t\t]\t\r\n\t};\r\n\r\n\tconst donors: NavRoute = {\r\n\t\tname: 'Donors'\r\n\t\t, exact: true\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.RxConnects ]\r\n\t\t\t\t, permissionRoles: sec.setMinRole(p.RxConnectsPharmacist)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: [\r\n\t\t\t{\r\n\t\t\t\tname: 'Donors'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'rxconnects/donors/donors/list'\r\n\t\t\t\t, activeNavLink: 'rxconnects/donors/donors'\r\n\t\t\t\t, secondaryNav: ['RxConnects', 'Donors', 'Donors']\r\n\t\t\t}\r\n\t\t\t, {\r\n\t\t\t\tname: 'Donations'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'rxconnects/donors/donations/list'\r\n\t\t\t\t, activeNavLink: 'rxconnects/donors/donations'\r\n\t\t\t\t, secondaryNav: ['RxConnects', 'Donors', 'Donations']\r\n\t\t\t}\r\n\t\t]\r\n\t};\r\n\r\n\tconst reports: NavRoute = {\r\n\t\tname: 'Reports'\r\n\t\t, exact: true\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.RxConnects ]\r\n\t\t\t\t, permissionRoles: sec.setMinRole(p.RxConnectsPharmacist)\r\n\t\t\t}\r\n\t\t]\r\n\t\t, children: [\r\n\t\t\t{\r\n\t\t\t\tname: 'Drug Destruction'\r\n\t\t\t\t, exact: true\r\n\t\t\t\t, path: 'rxconnects/reports/destruction'\r\n\t\t\t\t, activeNavLink: 'rxconnects/reports/destruction'\r\n\t\t\t\t, secondaryNav: ['RxConnects', 'Reports', 'Drug Destruction']\r\n\t\t\t}\r\n\t\t]\r\n\t};\r\n\r\n\tconst children: NavRoute[] = [\r\n\t\tdashboard\r\n\t\t, patients\r\n\t\t, repository\r\n\t\t, donors\r\n\t\t, reports\r\n\t];\r\n\r\n\tconst rxConnectsNavItems: NavRoute = {\r\n\t\tname: 'RxConnects'\r\n\t\t, children: children\r\n\t\t, moduleAccess: [\r\n\t\t\t{\r\n\t\t\t\tmodules: [ BusinessAreaEnum.RxConnects ]\r\n\t\t\t\t, permissionRoles: [ ...sec.setMinRole(p.User) ]\r\n\t\t\t}\r\n\t\t]\r\n\t\t, href: 'rxconnects/dashboard'\r\n\t\t, icon: icons.getIconByBusinessArea(BusinessAreaEnum.RxConnects)\r\n\t\t, area: 'rxconnects'\r\n\t\t, module: BusinessAreaEnum.RxConnects\r\n\t};\r\n\r\n\treturn rxConnectsNavItems;\r\n};","import { NavRoute } from '../shared/navigation/nav.route.interface';\r\nimport { getAdminNav } from './nav-areas/admin-nav';\r\nimport { getBANav } from './nav-areas/ba-nav';\r\nimport { getCiRepackNav } from './nav-areas/ci-repack-nav';\r\nimport { getErrorReportNav } from './nav-areas/error-report-nav';\r\nimport { getHelpDeskNav } from './nav-areas/help-desk-nav';\r\nimport { getHEROSNav } from './nav-areas/heros-nav';\r\nimport { getIcqNav } from './nav-areas/icq-nav';\r\nimport { getInventoryNav } from './nav-areas/inventory-nav';\r\nimport { getMetabolicFormulaNav } from './nav-areas/metabolic-formula-nav';\r\nimport { getNdcDirectoryNav } from './nav-areas/ndc-directory-nav';\r\nimport { getPcgNav } from './nav-areas/pcg-nav';\r\nimport { getPharmacyNav } from './nav-areas/pharmacy-nav';\r\nimport { getReportingNav } from './nav-areas/reporting-nav';\r\nimport { getRxConnectsNav } from './nav-areas/rxconnects-nav';\r\n\r\n/**\r\n * Retrieves the main navigation routes for the application.\r\n * These routes are used to build the main navigation menu in the application.\r\n * Addition configuration may be needed for edge cases or special routes such as in inventory, pharmacy, or other custom areas.\r\n * These instances may require additional logic to be added in the parseUrl function in the navigation service, ctrl+shift+f 'getPharmacyInventoryNav' for an example. \r\n * @returns An array of `NavRoute` objects representing the main navigation routes.\r\n */\r\nexport const getMainNavRoutes = (): NavRoute[] => [\r\n\tgetHEROSNav()\r\n\t, getPharmacyNav()\r\n\t, getCiRepackNav()\r\n\t, getNdcDirectoryNav()\r\n\t, getMetabolicFormulaNav()\r\n\t, getIcqNav()\r\n\t, getHelpDeskNav()\r\n\t, getReportingNav()\r\n\t, getErrorReportNav()\r\n\t, getInventoryNav()\r\n\t, getBANav()\r\n\t, getRxConnectsNav()\r\n\t, getAdminNav()\r\n\t, getPcgNav()\r\n];\r\n","import { computed, Injectable, signal } from \"@angular/core\";\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { NavigationEnd, Router } from \"@angular/router\";\r\nimport { UntilDestroy } from '@ngneat/until-destroy';\r\nimport { Subject } from 'rxjs';\r\nimport { debounceTime, filter, switchMap } from \"rxjs/operators\";\r\n\r\nimport { getMainNavRoutes } from \"app/core/main-nav-routes\";\r\nimport { SecurityService } from \"app/core/security/security.service\";\r\nimport { GlobalVariablesService } from 'app/services/global-variables.service';\r\nimport { FormatHelperService } from \"../helpers/format-helper.service\";\r\nimport { GlobalService } from \"../services/global.service\";\r\nimport { NavRoute } from \"./nav.route.interface\";\r\n\r\nexport const NavDividerCharacter = \">>\";\r\n\r\nconst rootNav = { name: \"Root\", id: \"root\" }\r\nconst pcgNav = { name: \"PCG\", id: \"pcg\" }\r\n/**\r\n* The `NavigationService` class is responsible for managing the navigation state and behavior in the application. It handles the following:\r\n\r\n* - Maintaining the current state of the primary, secondary, and side navigation menus.\r\n* - Subscribing to route changes and updating the navigation state accordingly.\r\n* - Providing methods to set the active navigation menu, open secondary and side menus, and toggle the navigation state.\r\n* - Flattening the navigation routes for easier filtering and searching.\r\n* - Determining whether the current user has access to view the navigation and its sub-navigation.\r\n* - Parsing the current URL and updating the selected navigation item.\r\n*/\r\n@UntilDestroy()\r\n@Injectable({ providedIn: \"root\" })\r\nexport class NavigationService {\r\n\r\n\tselectedMainNav = signal(null);\r\n\tisNavOpen = signal(false);\r\n isNotificationsNavOpen = signal(false);\r\n\tisNavFixed = signal(false);\r\n\tisMobile = signal(false);\r\n\tuserProfileExpanded = signal(false);\r\n\r\n\t// The currently OPEN primary navigation menu\r\n\tcurrOpenPrimaryNavMenu = signal(\"\");\r\n\tcurrOpenPrimaryNavMenu$ = toObservable(this.currOpenPrimaryNavMenu);\r\n\r\n\t// The currently OPEN secondary navigation menu\r\n\tcurrOpenSecondaryNavMenu = signal(rootNav);\r\n\tcurrOpenSecondaryNavMenu$ = toObservable(this.currOpenSecondaryNavMenu);\r\n\r\n\t// The currently OPEN side navigation menu\r\n\tcurrOpenSideNavMenu = signal(rootNav);\r\n\tcurrOpenSideNavMenu$ = toObservable(this.currOpenSideNavMenu);\r\n\r\n\t// The currently SELECTED navigation menu\r\n\tcurrSelectedMainNavMenu = signal(rootNav);\r\n\tcurrSelectedMainNavMenu$ = toObservable(this.currSelectedMainNavMenu);\r\n\r\n\t// Force select an item in nav\r\n\tcurrForceSelect = signal(null);\r\n\tcurrForceSelect$ = toObservable(this.currForceSelect);\r\n\r\n\tnavRoutes = signal(getMainNavRoutes());\r\n\tnavRoutes$ = toObservable(this.navRoutes);\r\n\r\n\tcurrNav = signal(null);\r\n\t\r\n\t/**\r\n\t * Computes the dynamic navigation title based on the current navigation route.\r\n\t * If the current navigation route is 'Pharmacy Inventory', it returns the value from `this.gvs.pharmInvName()`.\r\n\t * If the current navigation route is 'System Inventory', it returns the value from `this.gvs.invName()`.\r\n\t * Otherwise, it returns the name of the current navigation name.\r\n\t*/\r\n\tdynamicNavTitle = computed(() => {\r\n\t\tswitch (this.currNav()?.name) {\r\n\t\t\tcase 'Pharmacy Inventory': return this.gvs.pharmInvName();\r\n\t\t\tcase 'System Inventory': return this.gvs.invName();\r\n\t\t\tdefault: return FormatHelperService.GetIsNullyOrWhitespace(this.currNav()?.name) ? 'HOMER' : this.currNav().name;\r\n\t\t}\r\n\t});\r\n\r\n\tlastPageInitiatedMenu = signal(null);\r\n\r\n\t/** Used to address wonky behavior with rapid mouse movements. */\r\n\tprivate _isNavOpen$ = new Subject();\r\n\t\r\n\tconstructor(\r\n\t\trouter: Router\r\n\t\t, private sec: SecurityService\r\n\t\t, public gs: GlobalService\r\n\t\t, private gvs: GlobalVariablesService\r\n\t\t, title: Title\r\n\t) {\r\n\t\t// Subscribe to route changes and update the navs when they happen\r\n\t\trouter.events\r\n\t\t\t.pipe(filter((event) => event instanceof NavigationEnd))\r\n\t\t\t.subscribe((event: NavigationEnd) => {\r\n\t\t\t\tif (sec.isLoggedOn()) {\r\n\t\t\t\t\tsetNavRoutes();\r\n\t\t\t\t\tthis.parseUrl(event.url);\r\n\t\t\t\t\tsetTitle();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t// Set a descriptive title for the page instead of the default \"HOMER\" title when one is not set.\r\n\t\tconst setTitle = () => {\r\n\t\t\tif (title.getTitle() === \"HOMER\" || FormatHelperService.GetIsNullyOrWhitespace(title.getTitle())) {\r\n\t\t\t\ttitle.setTitle(this.dynamicNavTitle() ?? \"HOMER\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// Update nav routes on security and user updates\r\n\t\tconst setNavRoutes = () => {\r\n\t\t\t// Set nav routes\r\n\t\t\tconst routes = sec.getSecureNavItems(getMainNavRoutes());\r\n\t\t\tthis.navRoutes.set(routes);\r\n\t\t\t// Try to reload current nav to fix children\r\n\t\t\tconst currNav = this.currSelectedMainNavMenu();\r\n\t\t\tconst newSelectedMainNavMenu = this.getFlatMenu(routes).find((o) => o.id === currNav?.id);\r\n\t\t\tif (newSelectedMainNavMenu) { this.currSelectedMainNavMenu.set(newSelectedMainNavMenu); }\r\n\t\t};\r\n\t\tsec.user$.subscribe(setNavRoutes);\r\n\r\n\t\t// Used to address wonky behavior with rapid mouse movements.\r\n\t\tthis._isNavOpen$.pipe(\r\n\t\t\tdebounceTime(this.isNavOpen() ? 0 : 100), // Close instantly, open with delay\r\n\t\t\tswitchMap(async (event?: boolean) => this.toggleNavOpenDebounce(event))\r\n\t\t).subscribe();\r\n\r\n\t\tthis.isNavFixed.set(localStorage.getItem(\"isNavFixed\") == \"true\");\r\n\t}\r\n\r\n\t/**\r\n\t * Set the currently open navigation menu.\r\n\t * On pages, use setOpenSecondaryMenu instead.\r\n\t * @param newMenu The current main nav menu as a dot separated string. Always starts with\r\n\t * root. For example, 'root>>Style Guide>>Templates'\r\n\t * @param isSecondary Whether or not to open secondary menu instead of primary menu\r\n\t * @param isSideNav Whether or not to open side menu instead of primary menu\r\n\t*/\r\n\tsetCurrOpenNavMenu(\r\n\t\tnewMenu: string\r\n\t\t, isSecondary: boolean = false\r\n\t\t, isSideNav: boolean = false\r\n\t) {\r\n\t\tif (\r\n\t\t\t!FormatHelperService.GetIsNullyOrWhitespace(newMenu) \r\n\t\t\t&& (\r\n\t\t\t\tisSecondary \r\n\t\t\t\t|| isSideNav\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\tconst nextNav = this.getFlatMenu(this.sec.getSecureNavItems(getMainNavRoutes())).find((nav) => nav.id === newMenu);\r\n\t\t\tif (isSecondary) { this.currOpenSecondaryNavMenu.set(nextNav); } \r\n\t\t\telse if (isSideNav) { this.currOpenSideNavMenu.set(nextNav); }\r\n\t\t} else { this.currOpenPrimaryNavMenu.set(newMenu); }\r\n\t}\r\n\r\n\t/** Used to set active menu for pages */\r\n\tsetActiveNav(newMenu: string[]) { this.setOpenSecondaryMenu(newMenu); }\r\n\r\n\t/** Used to set secondary menu for pages */\r\n\tsetOpenSecondaryMenu(newMenu: string[]) {\r\n\t\t// suggests the tab directive emitted with a newMenu object\r\n\t\t// without restarting the component's lifecycle\r\n\t\tif (newMenu?.length === 0) { newMenu = this.lastPageInitiatedMenu(); }\r\n\t\t// suggests a *.component.ts file is pushing a newMenu into state (when it's not null!)\r\n\t\tif (\r\n\t\t\t!FormatHelperService.GetIsNully(newMenu) \r\n\t\t\t&& newMenu?.length > 1\r\n\t\t) { this.lastPageInitiatedMenu.set(newMenu); }\r\n\t\tconst menuList = this.getMenuNameWithRoot(newMenu);\r\n\t\tconst flatMenu = this.getFlatMenu(this.sec.getSecureNavItems(getMainNavRoutes()));\r\n\t\t// fix: hidden TypeError\r\n\t\tlet menuId = !menuList ? \"\" : menuList.join(NavDividerCharacter);\r\n\r\n\t\tif (!FormatHelperService.GetIsNullyOrWhitespace(menuId)) {\r\n\t\t\tconst menuItem = flatMenu.find((o) => o.id === menuId);\r\n\t\t\tif (\r\n\t\t\t\tmenuItem?.path \r\n\t\t\t\t&& newMenu?.length > 0\r\n\t\t\t) {\r\n\t\t\t\tthis.currForceSelect.set(menuId);\r\n\t\t\t\tmenuId = menuList.splice(0, newMenu.length).join(NavDividerCharacter);\r\n\t\t\t} else { this.currForceSelect.set(null); }\r\n\t\t\tthis.setCurrOpenNavMenu(menuId, true);\r\n\t\t}\r\n\t}\r\n\r\n\t/** Used to set side menu for pages */\r\n\tsetOpenSideMenu(newMenu: string[]) {\r\n\t\tconst menuList = this.getMenuNameWithRoot(newMenu);\r\n\t\tthis.setCurrOpenNavMenu(menuList.join(NavDividerCharacter), false, true);\r\n\t}\r\n\r\n\t/** Return a flattened menu that can more easily be filtered and searched */\r\n\tgetFlatMenu(\r\n\t\troutes: NavRoute[]\r\n\t\t, id = \"root\"\r\n\t\t, parentNav: NavRoute = null\r\n\t): NavRoute[] {\r\n\t\tlet flatRoutes = [];\r\n\t\t// For each passed in route...\r\n\t\tfor (let i = 0; i < routes?.length; ++i) {\r\n\t\t\t// Set an id, which will be dot separated and begin with root\r\n\t\t\t// for example, root.Style Guide.Icons\r\n\t\t\troutes[i].id = id + NavDividerCharacter + routes[i].name;\r\n\t\t\t// Save the parent navigation menu\r\n\t\t\troutes[i].parentNav = parentNav;\r\n\t\t\t// If we have children...\r\n\t\t\tif (routes[i].children) {\r\n\t\t\t\t// Recursively call this function and add child routes to list\r\n\t\t\t\tflatRoutes.push(...this.getFlatMenu(\r\n\t\t\t\t\troutes[i].children,\r\n\t\t\t\t\troutes[i].id,\r\n\t\t\t\t\troutes[i]\r\n\t\t\t\t));\r\n\t\t\t}\r\n\t\t\t// If we have a child nav item...\r\n\t\t\tif (routes[i].childNav) {\r\n\t\t\t\t// Recursively call this function and add child routes to list\r\n\t\t\t\tflatRoutes.push(...this.getFlatMenu(\r\n\t\t\t\t\t[routes[i].childNav],\r\n\t\t\t\t\troutes[i].id,\r\n\t\t\t\t\troutes[i]\r\n\t\t\t\t));\r\n\t\t\t}\r\n\t\t\tflatRoutes.push(routes[i]); // Add the current route to the nav\r\n\t\t}\r\n\t\treturn flatRoutes;\r\n\t}\r\n\r\n\t/**\r\n\t * Find a menu by URL.\r\n\t * @param url The URL to search by\r\n\t*/\r\n\tgetMenuByUrl(url: string) {\r\n\t\t// An empty url indicates we are in the root nav\r\n\t\tif (url === \"\") { return null; }\r\n\r\n\t\tconst flatMenu = this.getFlatMenu(this.sec.getSecureNavItems(getMainNavRoutes()));\r\n\r\n\t\tlet myRoute = flatMenu.find((o) =>\r\n\t\t\t(\r\n\t\t\t\t('/' + (o.href ?? o.path)) === url \r\n\t\t\t\t&& o.exact\r\n\t\t\t) \r\n\t\t\t|| (\r\n\t\t\t\t(o.href ?? o.path) \r\n\t\t\t\t&& url.startsWith('/' + (o.href ?? o.path)) \r\n\t\t\t\t&& !o.exact\r\n\t\t\t)\r\n\t\t);\r\n\r\n\t\tif (!myRoute) {\r\n\t\t\tlet urlSegments = '';\r\n\t\t\turl.split(\"/\").filter((o) => o.length > 0).forEach((o) => {\r\n\t\t\t\turlSegments += o + \"/\";\r\n\t\t\t\tlet temp = flatMenu.filter((m) => (m.href ?? m.path)?.startsWith(urlSegments));\r\n\t\t\t\tif (temp.length > 0) { myRoute = temp[temp.length - 1]; }\r\n\t\t\t});\r\n\t\t\treturn myRoute;\r\n\t\t}\r\n\r\n\t\tif (myRoute?.parentNav) { myRoute = myRoute.parentNav; }\r\n\r\n\t\treturn myRoute; // If nothing was found, return undefined\r\n\t}\r\n\r\n\tgetCurrRouteIndex(navRoutes: NavRoute[]) {\r\n\t\treturn navRoutes?.map((o, i) => ({\r\n\t\t\tname: o.name\r\n\t\t\t, id: o.id\r\n\t\t\t, i: o.index ?? i\r\n\t\t\t, parent: o.parentNav\r\n\t\t\t, activeNavLink: o.activeNavLink\r\n\t\t}))\r\n\t\t?.find((o) =>\r\n\t\t\to?.id === this.currNav()?.parentNav?.id \r\n\t\t\t|| o?.id === this.currForceSelect()\r\n\t\t)?.i;\r\n\t}\r\n\r\n\t/**\r\n\t * Used to determine whether or not route link\r\n\t * should show in top and secondary navigations\r\n\t*/\r\n\tshouldShowRouteLink(\r\n\t\troute: NavRoute\r\n\t\t, navRoutes: NavRoute[]\r\n\t\t, index: number = null\r\n\t) {\r\n\t\treturn (\r\n\t\t\troute \r\n\t\t\t&& (\r\n\t\t\t\troute.path \r\n\t\t\t\t|| route.path === \"\"\r\n\t\t\t) \r\n\t\t\t&& this.shouldDisplay(route, navRoutes, index)\r\n\t\t);\r\n\t}\r\n\r\n\tshouldDisplay(\r\n\t\troute: NavRoute\r\n\t\t, navRoutes: NavRoute[]\r\n\t\t, index: number = null\r\n\t) {\r\n\t\treturn (\r\n\t\t\t(\r\n\t\t\t\troute?.children == null \r\n\t\t\t\t|| route?.children?.length > 0\r\n\t\t\t) \r\n\t\t\t&& (\r\n\t\t\t\t!route?.shouldDisplay \r\n\t\t\t\t|| route?.shouldDisplay(index ?? this.getCurrRouteIndex(navRoutes))\r\n\t\t\t)\r\n\t\t);\r\n\t}\r\n\r\n\t/** Used in the function above to fix array for functions above */\r\n\tprivate getMenuNameWithRoot(newMenu: string[]) {\r\n\t\tlet menuList = [\"root\"];\r\n\t\t// fix: hidden TypeError\r\n\t\tif (\r\n\t\t\t!FormatHelperService.GetIsNully(newMenu) \r\n\t\t\t&& newMenu[0] !== \"root\"\r\n\t\t) { menuList = menuList.concat(newMenu); } \r\n\t\telse { menuList = newMenu; }\r\n\t\treturn menuList;\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles the fixed state of the navigation menu.\r\n\t * If the navigation is fixed, it will be set to not fixed and the fixed state will be stored in localStorage.\r\n\t * If the navigation is not fixed, it will be set to fixed and the fixed state will be stored in localStorage.\r\n\t * If the navigation is not fixed and the menu is not currently open, it will also collapse all sub-navigation items.\r\n\t * @param event - (Optional) A boolean value to explicitly set the fixed state of the navigation menu.\r\n\t*/\r\n\ttoggleNavFixed(event?: boolean) {\r\n\t\tthis.isNavFixed.set(event ?? !this.isNavFixed());\r\n\t\tlocalStorage.setItem(\"isNavFixed\", this.isNavFixed().toString());\r\n\t\tthis.gs.isNavFixed.next(this.isNavFixed());\r\n\t\tthis.toggleNavOpen(this.isNavFixed());\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles the navigation open or closed with a delay.\r\n\t * If the navigation is not fixed and the menu is not currently open, it will also collapse all sub-navigation items.\r\n\t * The `navService.toggleNavOpen()` method is called after the timeout, with the `open` parameter passed to this method.\r\n\t * @param event - (Optional) A boolean value to explicitly set the open state of the navigation menu.\r\n\t*/\r\n\ttoggleNavOpen(\r\n\t\tevent?: boolean\r\n\t\t, ignoreDelay: boolean = false\r\n\t) {\r\n\t\tif (ignoreDelay) { this.toggleNavOpenDebounce(event); }\r\n\t\telse { this._isNavOpen$.next(event); }\r\n\t}\r\n\r\n\tprivate toggleNavOpenDebounce(event?: boolean) {\t\t\r\n\t\tevent = (event ?? !this.isNavOpen()) || this.isNavFixed();\r\n\r\n\t\tif (event != this.isNavOpen()) {\r\n\t\t\tthis.isNavOpen.set(event);\r\n\t\t\tthis.gs.isNavOpen.set(event);\r\n\t\t\tif (!event) { this.collapseAllSubNavs(); }\r\n\t\t}\t\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles the expansion state of the provided navigation route.\r\n\t * If the route is currently expanded, it will be collapsed recursively.\r\n\t * If the route is not expanded, it will be expanded and all other sub-navigation items will be collapsed.\r\n\t * @param navRoute - The navigation route to toggle the expansion state for.\r\n\t*/\r\n\ttoggleSubNav(navRoute: NavRoute) {\r\n\t\tif (navRoute.expanded) { this.collapseSubNavRecursively(navRoute); } \r\n\t\telse {\r\n\t\t\tnavRoute.expanded = true;\r\n\t\t\tthis.collapseAllSubNavs(navRoute);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Collapses all sub-navigation items except the one specified by the `keepOpen` parameter.\r\n\t * @param keepOpen - (Optional) The navigation route to keep open while collapsing the others.\r\n\t * @param navRoutes - (Optional) The list of navigation routes to collapse. If not provided, it defaults to `this.navRoutes()`.\r\n\t*/\r\n\tcollapseAllSubNavs(\r\n\t\tkeepOpen?: NavRoute\r\n\t\t, navRoutes?: NavRoute[]\r\n\t) {\r\n\t\t// Default to navRoutes signal if nothing is passed in\r\n\t\tnavRoutes ??= this.navRoutes();\r\n\r\n\t\t// Collapse all sub navs except keepOpen if passed in\r\n\t\tnavRoutes?.filter((o) => o.expanded)\r\n\t\t\t?.forEach((navItem) => {\r\n\t\t\t\t// Getting the entire navigation tree for the current navItem.\r\n\t\t\t\tlet tree = this.getNavTreeRecursively(navItem);\r\n\t\t\t\t// If keepOpen is not in the tree, collapse the navItem and all sub navs.\r\n\t\t\t\tif (!tree.includes(keepOpen)) { this.collapseSubNavRecursively(navItem); }\r\n\t\t\t\t// If keepOpen is in the tree, keep the navItem open and run this function again to close any sub nav siblings.\r\n\t\t\t\telse if (navItem.children?.length > 0) { this.collapseAllSubNavs(keepOpen, navItem.children); }\r\n\t\t\t}\r\n\t\t);\r\n\t\tthis.userProfileExpanded.set(false);\r\n\t}\r\n\r\n\t/**\r\n\t * Recursively collapses the sub navigation for the given navigation route.\r\n\t * @param route - The navigation route to collapse the sub navigation for.\r\n\t*/\r\n\tcollapseSubNavRecursively(route: NavRoute) {\r\n\t\troute.expanded = false;\r\n\t\troute.children?.forEach((o) => { this.collapseSubNavRecursively(o); });\r\n\t}\r\n\r\n\t/**\r\n\t * Recursively retrieves the navigation tree for the given navigation route.\r\n\t * @param navRoute - The navigation route to retrieve the tree for.\r\n\t * @returns An array of navigation routes representing the entire navigation tree.\r\n\t*/\r\n\tgetNavTreeRecursively(navRoute: NavRoute) {\r\n\t\tconst navTree = [];\r\n\t\tnavTree.push(navRoute);\r\n\t\tnavRoute.children?.forEach((o) => { navTree.push(...this.getNavTreeRecursively(o)); });\r\n\t\treturn navTree;\r\n\t}\r\n\r\n\t/**\r\n\t * Determines whether the current user has access to view the navigation and all sub-navigation for the given route.\r\n\t * @param route - The navigation route to check access for.\r\n\t * @returns `true` if the user has access to view the nav and all sub-navigation, `false` otherwise.\r\n\t*/\r\n\tcanViewNav(route: NavRoute): boolean {\r\n\t\tlet hasAccess = (route.children?.length ?? 0) === 0; // If no children, return true\r\n\t\troute.children?.forEach((o) => { if (this.canViewNav(o)) { hasAccess = true; } });\r\n\t\treturn hasAccess && this.hasNavAccess(route);\r\n\t}\r\n\r\n\t/**\r\n\t * Determines whether the current user has access to view the navigation for the given route based on the given module and permission roles.\r\n\t * @param route - The navigation route to check access for.\r\n\t * @returns `true` if the user has access to view the navigation, `false` otherwise.\r\n\t*/\r\n\thasNavAccess(route: NavRoute): boolean {\r\n\t\tlet hasAccess = !route.moduleAccess;\r\n\t\troute.moduleAccess?.forEach((o) => { if (this.sec?.hasModuleAccess(o.modules, o.permissionRoles)) { hasAccess = true; } });\r\n\r\n\t\treturn hasAccess;\r\n\t}\r\n\r\n\tparseUrl(url: string) {\r\n\t\tlet currentNav: NavRoute = null;\r\n\r\n\t\tif (url.startsWith(\"/\")) { url = url.slice(1); }\r\n\t\t\t\r\n\t\tthis.navRoutes().forEach((navItem) => {\r\n\t\t\tif (\r\n\t\t\t\turl.startsWith(navItem.area) \r\n\t\t\t\t|| url.includes(\"error-report/error-reports/list/\" + navItem.module) \r\n\t\t\t\t|| url.includes(\"error-report/error-reports/edit/\" + navItem.module)\r\n\t\t\t) {\r\n\t\t\t\tthis.selectedMainNav.set(navItem.name);\r\n\t\t\t\tthis.currSelectedMainNavMenu.set(navItem);\r\n\t\t\t\t\r\n\t\t\t\tif (\r\n\t\t\t\t\turl == navItem.path \r\n\t\t\t\t\t|| url == navItem.href\r\n\t\t\t\t) { currentNav = navItem; }\r\n\t\t\t} \r\n\t\t\t\r\n\t\t\tif (\r\n\t\t\t\tnavItem?.children \r\n\t\t\t\t&& url !== navItem.path \r\n\t\t\t\t&& url != navItem.href\r\n\t\t\t) {\r\n\t\t\t\tlet routes = this.getFlatMenu([navItem])?.filter(o => url.startsWith(o.activeNavLink))\r\n\t\t\t\t\t.sort((a, b) => b.activeNavLink.length - a.activeNavLink.length);\r\n\r\n\t\t\t\tif (routes.length > 0) {\r\n\t\t\t\t\tlet route = routes[0];\r\n\t\t\t\t\tthis.currForceSelect.set(routes[0].id);\r\n\t\t\t\t\tthis.currOpenSecondaryNavMenu.set(routes[0]);\r\n\t\t\t\t\tthis.currSelectedMainNavMenu.set(navItem);\r\n\t\t\t\t\tcurrentNav = route.parentNav ? route.parentNav : route;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (url.startsWith(`admin/users/user/edit/${this.sec.getUser()?.id}`)) { this.selectedMainNav.set(\"profile\"); }\r\n\r\n\t\tif (\r\n\t\t\turl === \"dashboard\" \r\n\t\t\t|| url === \"\"\r\n\t\t) {\r\n\t\t\tthis.selectedMainNav.set(\"dashboard\");\t\r\n\t\t\tthis.currSelectedMainNavMenu.set(rootNav);\r\n\t\t}\r\n\t\t\r\n\t\tthis.currNav.set(currentNav);\r\n\t}\r\n\r\n toggleNotificationsNav() {\r\n this.isNotificationsNavOpen.update((isOpen) => !isOpen);\r\n }\r\n}\r\n","import { EventEmitter, inject, Injectable } from '@angular/core';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { SseNotificationDataVm } from 'app/shared/generated/Models/SseNotificationDataVm';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SseNotificationService {\r\n sec = inject(SecurityService);\r\n http = inject(HttpClient);\r\n notificationSource: EventSource;\r\n notificationReceived = new EventEmitter();\r\n\r\n initializeSSE() {\r\n let userId = this.sec.getUser()?.id;\r\n if (userId && (!this.notificationSource || this.notificationSource.readyState === EventSource.CLOSED)) {\r\n this.notificationSource = new EventSource(`/api/sse-notif/${userId}`);\r\n this.setupEventListeners();\r\n } \r\n }\r\n\r\n destroySSE() {\r\n let userId = this.sec.getUser()?.id;\r\n if (userId && this.notificationSource){ \r\n this.notificationSource.close(); \r\n if(this.sec.getUser()) this.http.post(`/api/sse-notif/remove/${userId}`, null).subscribe();\r\n } \r\n }\r\n\r\n private setupEventListeners() {\r\n this.notificationSource.removeAllListeners();\r\n this.notificationSource.onopen = () => {\r\n console.log('SSE notification connection opened');\r\n };\r\n\r\n this.notificationSource.addEventListener('notification', (event: MessageEvent) => {\r\n const data: SseNotificationDataVm = JSON.parse(event.data);\r\n this.notificationReceived.emit(data);\r\n });\r\n\r\n this.notificationSource.onerror = (error) => {\r\n console.error('EventSource failed:', error);\r\n this.destroySSE();\r\n };\r\n }\r\n}\r\n","import { Component, ElementRef, inject, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { NavRoute } from '../nav.route.interface';\r\nimport { NavDividerCharacter, NavigationService } from '../navigation.service';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { SseNotificationService } from 'app/core/sse-notification/sse-notification.service';\r\n\r\n/**\r\n * This component is intended to be used in the top header bar\r\n * to create a nested navigation. Dropdowns are opened by\r\n * click.\r\n */\r\n@Component({\r\n selector: 'pcg-top-click-nav',\r\n templateUrl: './top-click-nav.component.html',\r\n styleUrls: ['./top-click-nav.component.scss'],\r\n standalone: false\r\n})\r\nexport class TopClickNavComponent implements OnInit, OnChanges {\r\n\r\n\t@Input() navRoutes: NavRoute[] = [];\r\n\t@Input() menuItemId = 'root';\r\n\t@Input() isRoot = true;\r\n\r\n sseService = inject(SseNotificationService);\r\n\r\n\t// Current user information\r\n\tuser: UserJsVm;\r\n\t// Whether or not the curren nav menu is open\r\n\tisOpen: boolean;\r\n\t// Currently OPEN nav menu\r\n\tcurrNavMenuItem: string;\r\n\t// Currently SELECTED nav menu\r\n\tcurrSelectedNavMenuItem: string;\r\n\t// The currently OPEN secondary navigation menu\r\n\tcurrOpenSecondaryNavMenu: string;\r\n\t// Force select item in the nav\r\n\tcurrForceSelect: string;\r\n\t// Classes in the current ul of the nav menu\r\n\tulClasses: string[];\r\n\t// Nav routes used in loop\r\n\tloopNavRoutes: NavRoute[] = [];\r\n\t// For user nav\r\n\tuserNavOpen = false;\r\n\tisMobile = false;\r\n\r\n\tconstructor(\r\n\t\tpublic navService: NavigationService\r\n\t\t, public elRef: ElementRef\r\n\t\t, public sec: SecurityService\r\n\t\t, private router: Router\r\n\t\t, private httpClient: HttpClient\r\n\t\t, private ms: SystemMessageService\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tif(/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|ipad|iris|kindle|Android|Silk|lge |maemo|midp|mmp|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(navigator.userAgent) \r\n\t\t\t|| /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(navigator.userAgent.substr(0,4))) { \r\n\t\t\tthis.isMobile = true;\r\n\t\t}\r\n\t\t// Get the current user information\r\n\t\tthis.sec.user$.subscribe(user => { this.user = user; });\r\n\t\t// Triggred on update of currently OPEN menu item\r\n\t\tthis.navService.currOpenPrimaryNavMenu$.subscribe(c => {\r\n\t\t\tthis.currNavMenuItem = c;\r\n\t\t\tthis.isOpen = this.isSubNav(c, this.menuItemId) || c === this.menuItemId;\r\n\t\t\tthis.userNavOpen = c === ['root', 'user'].join(NavDividerCharacter);\r\n\t\t\t// The first ul should have classes indicating it is the root.\r\n\t\t\t// Nested ul elements, those at higher depths, are dropdown menus\r\n\t\t\t// and need classes indicating that.\r\n\t\t\tthis.ulClasses = this.isRoot \r\n\t\t\t\t? ['nav', 'navbar-nav', 'top-nav-bg', this.isOpen ? 'nav-open' : ''] \r\n\t\t\t\t: ['dropdown-menu', 'top-nav-bg', this.isOpen ? 'nav-open' : ''];\r\n\t\t});\r\n\t\t// Triggered on update of currently SELECTED menu item\r\n\t\tthis.navService.currSelectedMainNavMenu$.subscribe(c => { this.currSelectedNavMenuItem = c ? c?.id : 'root'; });\r\n\t\tthis.navService.currOpenSecondaryNavMenu$.subscribe(c => { this.currOpenSecondaryNavMenu = c ? c?.id : 'root'; });\r\n\t\tthis.navService.currForceSelect$.subscribe(c => {\r\n\t\t\tthis.currForceSelect = c;\r\n\t\t\tthis.loopNavRoutes = this.getNavRoutes();\r\n\t\t});\r\n\t}\r\n\r\n\tisSubNav(currNavMenuItem, menuItemId) {\r\n\t\t// Get divider counts\r\n\t\tconst divCountCurrNav = currNavMenuItem.split(NavDividerCharacter).length;\r\n\t\tconst divCountMenuItem = menuItemId.split(NavDividerCharacter).length;\r\n\r\n\t\t// Sub navs and current nav should be open\r\n\t\treturn divCountMenuItem < divCountCurrNav && currNavMenuItem.startsWith(this.menuItemId);\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tconst chng = changes['navRoutes'];\r\n\t\tconst cur = chng.currentValue;\r\n\t\tconst prev = chng.previousValue;\r\n\t\tif (cur !== prev) { this.loopNavRoutes = this.getNavRoutes(); }\r\n\t}\r\n\r\n\tgetHtmlId(routeId: string) { return routeId.replace(/^[^a-z0-9]+|[^\\w:.-]+/gi, ''); }\r\n\r\n\t// Show or hide submenu based on dropdown click\r\n\tclickDropdown(childMenuId: string) {\r\n\t\tif (childMenuId === 'user') { childMenuId = ['root', 'user'].join(NavDividerCharacter); }\r\n\t\t// If the submenu is open, close it\r\n\t\tif (this.currNavMenuItem.startsWith(childMenuId)) { this.navService.setCurrOpenNavMenu(this.menuItemId); } \r\n\t\telse { this.navService.setCurrOpenNavMenu(childMenuId); } // Otherwise, open the submenu\t\t\r\n\t\treturn false;\r\n\t}\r\n\r\n\topenDropdown(childMenuId: string) {\r\n\t\tif (childMenuId === 'user') { childMenuId = ['root', 'user'].join(NavDividerCharacter); }\r\n\t\tthis.navService.setCurrOpenNavMenu(childMenuId); \r\n\t\treturn false;\r\n\t}\r\n\r\n\tcloseDropdown(childMenuId: string) {\r\n\t\tif (childMenuId === 'user') { childMenuId = ['root', 'user'].join(NavDividerCharacter); }\r\n\t\tthis.navService.setCurrOpenNavMenu(this.menuItemId); \t\t\r\n\t\treturn false;\r\n\t}\r\n\r\n\tclickLink(route: NavRoute) { \r\n\t\tthis.navService.setCurrOpenNavMenu('');\r\n\t\tif (route != null) {\r\n\t\t\tif (route.openNewTab) { window.open(route.path); }\r\n\t\t\telse { this.router.navigate([route.path], {queryParams: route.queryParams}); }\r\n\t\t}\r\n\t}\r\n\r\n\t// Logout removes all of our security variables\r\n\t// and redirects user to root\r\n\tlogout() {\r\n this.sseService.destroySSE();\r\n\t\tthis.sec.setSecurity(null, null);\r\n\t\tthis.deleteAllCookies();\r\n\t\tthis.router.navigate(['/']);\r\n\t\tsessionStorage.removeItem('notificationCount');\r\n\t\tsessionStorage.removeItem('notificationModalOpened');\r\n\t\tsessionStorage.removeItem('step1Count');\r\n\t\tsessionStorage.removeItem('step2Count');\r\n\t\tsessionStorage.removeItem('step3Count');\r\n\t\tlocalStorage.removeItem('ciWorkstationModalOpened');\r\n\t\tlocalStorage.removeItem('requestedProduct');\r\n\t\tvar loggedInUsingSso = localStorage.getItem(\"loggedInUsingSso\") == \"true\";\r\n\t\tlocalStorage.setItem(\"loggedInUsingSso\", \"false\");\r\n\t\tif (loggedInUsingSso) {\r\n this.httpClient.get(`api/Account/SingleSignOut?userId=${this.user.id}&entraIdentifierUrl=${localStorage.getItem(\"entraIdentifierUrl\")}&entraLoginUrl=${localStorage.getItem(\"entraLoginUrl\")}`).subscribe((sm: SystemMessage) => {\r\n localStorage.setItem(\"entraIdentifierUrl\", \"\");\r\n localStorage.setItem(\"entraLoginUrl\", \"\");\r\n if (sm.isSuccessful) { window.location.href = sm.value; }\r\n else { this.ms.setSystemMessage(sm.message, sm.messageClass); }\r\n });\r\n }\r\n\t}\r\n\r\n\t// This is used above to delete all cookies on logout\r\n\tdeleteAllCookies() {\r\n\t\tconst cookies = document.cookie.split(';');\r\n\r\n\t\tfor (let i = 0; i < cookies.length; i++) {\r\n\t\t\tconst cookie = cookies[i];\r\n\t\t\tconst eqPos = cookie.indexOf('=');\r\n\t\t\tconst name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie;\r\n\t\t\tdocument.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';\r\n\t\t}\r\n\t}\r\n\r\n\tgetNavRoutes() {\r\n\t\tconst routeIndex = this.navService.getCurrRouteIndex(this.navRoutes);\r\n\t\treturn (\r\n\t\t\tthis.navRoutes\r\n\t\t\t\t?.map((o, i) => ({ ...o, index: i }))\r\n\t\t\t\t.filter(route => \r\n\t\t\t\t\t(route?.children == null || route?.children?.length > 0) \r\n\t\t\t\t\t&& \r\n\t\t\t\t\t(!route?.shouldDisplay || route?.shouldDisplay(routeIndex))\r\n\t\t\t\t) ?? []\r\n\t\t);\r\n\t}\r\n}\r\n","
    \r\n\t@for (route of loopNavRoutes; track route) {\r\n\t\t@if (navService.shouldShowRouteLink(route, navRoutes)) {\r\n\t\t\t
  • \r\n\t\t\t\t

    {{route.name}}

    \r\n\t\t\t
  • \r\n\t\t}\r\n\t\t@if (\r\n\t\t\troute \r\n\t\t\t&& route.children \r\n\t\t\t&& !route.hasSideNav\r\n\t\t) {\r\n\t\t\t
  • \r\n\t\t\t\t

    \r\n\t\t\t\t\t{{route.name}}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t

    \r\n\r\n\t\t\t\t\r\n\t\t\t
  • \r\n\t\t}\r\n\t}\r\n\r\n\t@if (\r\n\t\tisRoot \r\n\t\t&& sec.isLoggedOn()\r\n\t) {\r\n\t\t
  • \r\n\t\t\t@if (user) {\r\n\t\t\t\t

    {{ user.firstName }} {{ user.lastName }}

    \r\n\t\t\t}\r\n\t\t\t
      \r\n\t\t\t\t
    • \r\n\t\t\t\t\t

      My Profile

      \r\n\t\t\t\t
    • \r\n\t\t\t\t
    • \r\n\t\t\t\t\t

      Logout

      \r\n\t\t\t\t
    • \r\n\t\t\t
    \r\n\t\t
  • \r\n\t}\r\n
\r\n","import {\r\n\tComponent,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tHostListener,\r\n\tinject,\r\n\tInput,\r\n\tOnChanges,\r\n\tOnInit,\r\n\tOutput,\r\n\tQueryList,\r\n\tSimpleChanges,\r\n\tViewChildren,\r\n} from \"@angular/core\";\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Router } from \"@angular/router\";\r\nimport { faArrowLeft } from \"@fortawesome/pro-solid-svg-icons\";\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { GlobalService } from \"app/shared/services/global.service\";\r\nimport { NavRoute } from \"../nav.route.interface\";\r\nimport { NavigationService } from \"../navigation.service\";\r\nimport { SecurityService } from \"app/core/security/security.service\";\r\n\r\n@Component({\r\n selector: \"pcg-top-secondary-nav\",\r\n templateUrl: \"./top-secondary-nav.component.html\",\r\n styleUrls: [\"./top-secondary-nav.component.scss\"],\r\n standalone: false\r\n})\r\nexport class TopSecondaryNavComponent implements OnInit, OnChanges {\r\n sec = inject(SecurityService);\r\n \r\n\t@Input() navRoutes: NavRoute[] = [];\r\n\t@Input() rootNavId: string;\r\n\t@Input() routeNavId: string;\r\n\t@Input() forceSelect: string;\r\n\t@Input() tabPanel: any;\r\n\r\n\t@Output() clickedNav = new EventEmitter();\r\n\r\n\t@ViewChildren(\"navLink\", { read: ElementRef }) navLinks: QueryList;\r\n\r\n\tloopNavRoutes: NavRoute[] = [];\r\n\threfLocation: string = \"\";\r\n\r\n\tfaIconName = { faArrowLeft };\r\n\r\n\tisMobile: boolean;\r\n\t@HostListener(\"window:resize\")\r\n\tonResize() { this.isMobile = GlobalService.setIsMobile(window.innerWidth); }\r\n\r\n\tconstructor(\r\n\t\tpublic navService: NavigationService,\r\n\t\tpublic router: Router,\r\n\t\tprivate title: Title\r\n\t) {\r\n\t\tthis.setTitle();\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.isMobile = GlobalService.setIsMobile(window.innerWidth);\r\n\t\tthis.loopNavRoutes = this.getNavRoutes();\r\n\t}\r\n\r\n\tngOnChanges(changes: SimpleChanges) {\r\n\t\tthis.getActiveLink();\r\n\t\tconst chng = changes[\"navRoutes\"];\r\n\t\tconst cur = chng?.currentValue;\r\n\t\tconst prev = chng?.previousValue;\r\n\t\tif (cur !== prev) {\r\n\t\t\tthis.loopNavRoutes = this.getNavRoutes();\t\t\t\t\r\n\t\t\tthis.focusNewlySelectedNav();\r\n\t\t\tthis.setTitle();\r\n\t\t}\r\n\t}\r\n\r\n\t// Set a descriptive title for the page instead of the default \"HOMER\" title when one is not set.\r\n\tprivate setTitle() {\r\n\t\t// If the string is null or whitespace, use 'HOMER'\r\n\t\tconst checkTitle = (s) => FormatHelperService.GetIsNullyOrWhitespace(s) ? 'HOMER' : s;\r\n\t\t\r\n\t\t// Check the title of the page\r\n\t\tif (checkTitle(this.title.getTitle()) === \"HOMER\") {\r\n\t\t\t// Check the title of the nav menu\r\n\t\t\tlet title = checkTitle(this.navService.dynamicNavTitle());\r\n\t\t\tif (title == 'HOMER') {\r\n\t\t\t\t// Check the title of the currently open secondary nav menu\r\n\t\t\t\ttitle = checkTitle(this.navService.currOpenSecondaryNavMenu()?.name);\r\n\t\t\t}\r\n\t\t\tthis.title.setTitle(title);\r\n\t\t}\r\n\t}\r\n\r\n\tprivate focusNewlySelectedNav() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (this.navLinks && this.navLinks.length > 0) {\r\n\t\t\t\tconst selectedNav = this.navLinks.find((link) =>\r\n\t\t\t\t\tlink.nativeElement.classList.contains(\"link-active\")\r\n\t\t\t\t);\r\n\r\n\t\t\t\tif (selectedNav) {\r\n\t\t\t\t\tselectedNav.nativeElement.scrollIntoView({\r\n\t\t\t\t\t\tbehavior: \"smooth\",\r\n\t\t\t\t\t\tblock: \"center\",\r\n\t\t\t\t\t});\r\n\t\t\t\t\tselectedNav.nativeElement.focus();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}, 0);\r\n\t}\r\n\r\n\t// Show or hide submenu based on dropdown click\r\n\tclickDropdown(childMenu: NavRoute) {\r\n\t\tif (childMenu?.childNav) {\r\n\t\t\tchildMenu = childMenu.parentNav;\r\n\t\t}\r\n\t\tthis.navService.currNav.set(childMenu);\r\n\t\treturn false;\r\n\t}\r\n\r\n\tredirect(route) {\r\n\t\tif (route.openNewTab) { this.openInNewTab(route.path); } \r\n\t\treturn true;\r\n\t}\r\n\r\n\topenInNewTab(namedRoute: string) {\r\n\t\tlet newRelativeUrl = this.router.createUrlTree([namedRoute]);\r\n\t\tlet baseUrl = window.location.href.replace(this.router.url, \"\");\r\n\t\twindow.open(baseUrl + newRelativeUrl, \"_blank\");\r\n\t}\r\n\r\n\tgetActiveLink() {\r\n\t\t// parse URL for active link in subnav\r\n\t\tlet urlSegments = window.location.href.split(document.getElementsByTagName(\"base\")[0].href)[1].split(\"/\");\r\n\t\tif (\r\n\t\t\t!isNaN(Number(urlSegments[urlSegments?.length - 1])) \r\n\t\t\t&& !isNaN(Number(urlSegments[urlSegments?.length - 2]))\r\n\t\t) { this.hrefLocation = urlSegments.slice(0, urlSegments?.length - 2).join(\"/\"); } \r\n\t\telse if (\r\n\t\t\t!isNaN(Number(urlSegments[urlSegments?.length - 1])) \r\n\t\t\t&& isNaN(Number(urlSegments[urlSegments?.length - 2]))\r\n\t\t) { this.hrefLocation = urlSegments.slice(0, urlSegments?.length - 1).join(\"/\");\r\n\t\t} else { this.hrefLocation = urlSegments.join(\"/\"); }\r\n\t}\r\n\r\n\tgetNavRoutes() {\r\n\t\tconst routeIndex = this.navService.getCurrRouteIndex(this.navRoutes);\r\n\t\treturn (\r\n\t\t\tthis.sec.getSecureNavItems(this.navRoutes)\r\n\t\t\t\t?.map((o, i) => { return { ...o, index: i }; })\r\n\t\t\t\t.filter((route) =>\r\n\t\t\t\t\t!route?.shouldDisplay \r\n\t\t\t\t\t|| route.ellipseAfter \r\n\t\t\t\t\t|| route.ellipseBefore \r\n\t\t\t\t\t|| route?.shouldDisplay(routeIndex)\r\n\t\t\t\t) ?? []\r\n\t\t);\r\n\t}\r\n}\r\n","","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { EventEmitter, Injectable, Output } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { CiWorkstationComponent } from 'app/shared/ci-workstation/ci-workstation.component';\r\nimport { CiWorkstationVm } from 'app/shared/generated/CIRepack/Models/Admin/WorkStation/CiWorkstationVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class WorkstationService {\r\n // May clean up this user stuff tomorrow!\r\n // user: UserJsVm\r\n @Output() update = new EventEmitter();\r\n workStationName: string\r\n noWorkstation = false;\r\n\r\n constructor(\r\n private httpClient: HttpClient\r\n , private sec: SecurityService\r\n , private modalService: NgbModal\r\n ) {\r\n let user = this.sec.getUser();\r\n this.getModel(user?.ciWorkstationId)\r\n .subscribe(data => {\r\n this.workStationName = data.workstationName;\r\n if (FormatHelperService.GetIsNullyOrWhitespace(data.workstationName)) {\r\n this.workStationName = \"None selected\";\r\n this.noWorkstation = true;\r\n }\r\n }\r\n );\r\n }\r\n\r\n getModel(id: number): Observable {\r\n let httpParams = new HttpParams().set('id', id);\r\n return this.httpClient.get('api/CIRepack/CiWorkstation/GetCiWorkstation', {\r\n params: httpParams\r\n });\r\n }\r\n\r\n openCiWorkstationModal() {\r\n let user = this.sec.getUser();\r\n const modalRef = this.modalService.open(CiWorkstationComponent, { animation: false });\r\n modalRef.hidden.subscribe(() => {\r\n user = JSON.parse(localStorage.getItem('user'));\r\n this.workStationName = user?.ciWorkstationName;\r\n if (FormatHelperService.GetIsNullyOrWhitespace(user?.ciWorkstationName)) {\r\n this.workStationName = \"None selected\";\r\n this.noWorkstation = true;\r\n }\r\n else { this.noWorkstation = false; }\r\n this.update.emit();\r\n });\r\n }\r\n}\r\n","import { Component, OnInit, TemplateRef, ViewChild, Input, inject } from '@angular/core';\r\nimport { faScannerGun } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { WorkstationService } from 'app/ci-repack/admin/workstations/workstation.service';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { CiDashboardActionsComponent } from '../ci-dashboard-actions/ci-dashboard-actions.component';\r\nimport { GlobalService } from 'app/shared/services/global.service';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'pcg-workstation-banner',\r\n templateUrl: './workstation-banner.component.html',\r\n styleUrls: ['./workstation-banner.component.scss'],\r\n standalone: false\r\n})\r\nexport class WorkstationBannerComponent implements OnInit {\r\n\r\n // Keeps track if nav is docked or not\r\n gs = inject(GlobalService);\r\n isFixed = false;\r\n navFixedSubscription: Subscription;\r\n\r\n @ViewChild('ciDashboardComponent') ciDashboardComponent : TemplateRef;\r\n \r\n user: UserJsVm\r\n workStationName: string\r\n getModelRetries: number = 0;\r\n noWorkstation = false;\r\n dashboardActionsClicked = false; \r\n isOpen = false;\r\n\r\n faIcons = { faScannerGun };\r\n\r\n constructor(\r\n private workStationService: WorkstationService\r\n , private sec: SecurityService\r\n ) { this.user = this.sec.getUser(); }\r\n\r\n ngOnInit(): void { this.getModel(); \r\n // Adjust margin-right for scan button depending if nav is fixed or not\r\n this.navFixedSubscription = this.gs.isNavFixed.subscribe(\r\n r => { this.isFixed = r; }\r\n );\r\n this.isFixed = localStorage.getItem('isNavFixed') === \"true\"; \r\n }\r\n \r\n ngOnDestory = () => { this.navFixedSubscription?.unsubscribe() }\r\n\r\n getModel() {\r\n this.workStationService.getModel(this.user?.ciWorkstationId).subscribe(() => {\r\n setTimeout(() => {\r\n this.workStationName = this.workStationService.workStationName;\r\n this.noWorkstation = this.workStationService.noWorkstation;\r\n // Call this method again if getting name fails, maximum of 5 retries.\r\n if (!this.workStationName && this.getModelRetries <= 5) { \r\n this.getModelRetries++;\r\n this.getModel();\r\n } else { this.getModelRetries = 0; }\r\n }, 100)\r\n });\r\n }\r\n\r\n openCiWorkstationModal() {\r\n this.workStationService.openCiWorkstationModal();\r\n // When a user closes the modal to select their workstation,\r\n // an event will be emitted to update the data on the UI.\r\n this.workStationService.update.subscribe(() => { this.getModel(); });\r\n }\r\n}\r\n","\r\n \r\n Current Workstation: {{ workStationName }}\r\n \r\n\r\n
\r\n @if (dashboardActionsClicked) {\r\n \r\n } @else {\r\n \r\n \r\n \r\n }\r\n
\r\n\r\n","import { Injectable, signal } from '@angular/core';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class QuickNavService {\r\n // Controls whether projected content is shown or hidden\r\n showContent = signal(false);\r\n // Prevents content from being closed, useful for ngbTypeahead clicks\r\n preventCloseContent = signal(false);\r\n\r\n toggleContent() {\r\n this.showContent.update((showContent) => !showContent);\r\n }\r\n\r\n closeContent() {\r\n this.preventCloseContent.set(false);\r\n this.showContent.set(false);\r\n }\r\n}","import { Component, inject, Input } from '@angular/core';\r\nimport { IconDefinition } from '@fortawesome/fontawesome-svg-core';\r\nimport { faEllipsisV } from '@fortawesome/pro-solid-svg-icons';\r\nimport { NavigationService } from '../navigation.service';\r\nimport { QuickNavService } from './quick-nav.service';\r\n\r\n// This component places a small button in the top right corner of the screen (within the secondary nav)\r\n// that opens any projected content below the secondary nav.\r\n//\r\n// Example:\r\n//\r\n// \r\n// {{ insert projected content / components here }}\r\n// \r\n\r\n@Component({\r\n selector: 'pcg-quick-nav',\r\n templateUrl: './quick-nav.component.html',\r\n styleUrls: ['./quick-nav.component.scss'],\r\n standalone: false\r\n})\r\nexport class QuickNavComponent {\r\n quickNavService = inject(QuickNavService);\r\n navService = inject(NavigationService);\r\n\r\n // Optional icon input, defaults to ellipsis\r\n @Input() icon: IconDefinition = faEllipsisV;\r\n @Input() tooltip: string;\r\n}\r\n","
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n @if(quickNavService.showContent()) {\r\n
\r\n \r\n
\r\n }\r\n
","export const pcgSettingsDevelopment = {\"mode\":\"Development\",\"datadogApiKey\":\"add6d20276e6770a600d77344f5f9ad5\",\"datadogClientToken\":\"pub77451973018f724e8a9f58aa8d77985d\"};\r\n","export const pcgSettingsDemo = {\"mode\":\"Demo\",\"datadogApiKey\":\"add6d20276e6770a600d77344f5f9ad5\",\"datadogClientToken\":\"pub77451973018f724e8a9f58aa8d77985d\"};\r\n","export const pcgSettingsProduction = {\"mode\":\"Production\",\"datadogApiKey\":\"add6d20276e6770a600d77344f5f9ad5\",\"datadogClientToken\":\"pub77451973018f724e8a9f58aa8d77985d\"};\r\n","import { pcgSettingsDevelopment } from './pcg-settings-Development';\r\nimport { pcgSettingsDemo } from './pcg-settings-Demo';\r\nimport { pcgSettingsProduction } from './pcg-settings-Production';\r\n\r\nexport const pcgSettings = (document.getElementById('systemMode')?.textContent === 'Development') ? pcgSettingsDevelopment :\r\n\t(document.getElementById('systemMode')?.textContent === 'Demo' || document.getElementById('systemMode')?.textContent === 'Beta') ? pcgSettingsDemo :\r\n\t(document.getElementById('systemMode')?.textContent === 'Production') ? pcgSettingsProduction :\r\n\tpcgSettingsDevelopment;\r\n","import { Injectable } from '@angular/core';\r\nimport { NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AccountRequestModalStateService {\r\n private modalRefSubject = new BehaviorSubject(null);\r\n\r\n setModalRef(modalRef: NgbModalRef): void {\r\n this.modalRefSubject.next(modalRef);\r\n }\r\n\r\n getModalRefObservable() {\r\n return this.modalRefSubject.asObservable();\r\n }\r\n}","import { computed, inject, Injectable, signal } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\nimport { UserNotificationVm } from 'app/shared/generated/Models/Notifications/UserNotificationVm';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { of } from 'rxjs';\r\nimport { SystemMessage } from 'app/core/system-message/system-message-service';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class NotificationsService {\r\n public notifications = signal([]);\r\n readonly notifications$ = toObservable(this.notifications);\r\n http = inject(HttpClient);\r\n toastr = inject(ToastrService);\r\n\r\n unreadCount = computed(() => {\r\n return this.notifications().filter(n => !n.markedAsRead).length;\r\n });\r\n\r\n getNotificationsByUserId(userId: number): void {\r\n this.http.get(`api/dashboard/notifications/${userId}`)\r\n .subscribe({\r\n next: (notifications) => {\r\n this.notifications.set(\r\n notifications.sort((a, b) => new Date(b.notifiedDate).getTime() - new Date(a.notifiedDate).getTime())\r\n );\r\n },\r\n error: (error) => {\r\n this.toastr.error('Error fetching notifications', null, {\r\n positionClass: \"toast-top-right\",\r\n timeOut: 2000,\r\n });\r\n console.error('Error fetching notifications:', error);\r\n }\r\n });\r\n }\r\n\r\n markAsRead(notificationId: number): void {\r\n this.http.post(`api/dashboard/notifications/${notificationId}/mark-read`, {})\r\n .pipe(\r\n tap(() => {\r\n this.notifications.update(notifications =>\r\n notifications.map(n =>\r\n n.userNotificationId === notificationId\r\n ? { ...n, markedAsRead: true, markedAsReadDate: new Date() }\r\n : n\r\n )\r\n );\r\n }),\r\n catchError(error => {\r\n this.toastr.error('Error marking notification as read', null, {\r\n positionClass: \"toast-top-right\",\r\n timeOut: 2000,\r\n });\r\n console.error('Error marking notification as read:', error);\r\n return of(false);\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n markAllAsRead(userId: number): void {\r\n this.http.post(`api/dashboard/notifications/mark-all-read/${userId}`, {})\r\n .pipe(\r\n tap(() => {\r\n this.notifications.update(notifications =>\r\n notifications.map(n => ({\r\n ...n,\r\n markedAsRead: true,\r\n markedAsReadDate: new Date()\r\n }))\r\n );\r\n }),\r\n catchError(error => {\r\n this.toastr.error('Error marking all notifications as read', null, {\r\n positionClass: \"toast-top-right\",\r\n timeOut: 2000,\r\n });\r\n console.error('Error marking all notifications as read:', error);\r\n return of(false);\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n deleteNotification(notificationId: number): void {\r\n this.http.delete(`api/dashboard/notifications/${notificationId}`)\r\n .pipe(\r\n tap(() => {\r\n this.notifications.update(notifications =>\r\n notifications.filter(n => n.userNotificationId !== notificationId)\r\n );\r\n }),\r\n catchError(error => {\r\n this.toastr.error('Error deleting notification', null, {\r\n positionClass: \"toast-top-right\",\r\n timeOut: 2000,\r\n })\r\n console.error('Error deleting notification:', error);\r\n return of(false);\r\n })\r\n )\r\n .subscribe();\r\n }\r\n\r\n deleteAllNotifications(userId: number): void {\r\n this.http.delete(`api/dashboard/notifications/delete-all/${userId}`)\r\n .pipe(\r\n tap(() => {\r\n this.notifications.set([]);\r\n }),\r\n catchError(error => {\r\n this.toastr.error('Error deleting all notifications', null, {\r\n positionClass: \"toast-top-right\",\r\n timeOut: 2000,\r\n });\r\n console.error('Error deleting all notifications:', error);\r\n return of(false);\r\n })\r\n )\r\n .subscribe();\r\n }\r\n}","import { HttpClient } from \"@angular/common/http\";\r\nimport { AfterContentChecked, AfterViewInit, ChangeDetectorRef, Component, HostListener, inject, Input, OnInit, signal } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { faAngleDown, faArrowLeft, faArrowRight, faArrowRightArrowLeft, faBell, faBoxesPacking, faBoxOpen, faPrescription, faUser, faUserMd } from \"@fortawesome/pro-solid-svg-icons\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { UntilDestroy, untilDestroyed } from \"@ngneat/until-destroy\";\r\n\r\nimport { BusinessAreaEnum } from \"app/core/enums/generated/BusinessAreaEnum\";\r\nimport { PermissionRole } from \"app/core/enums/generated/PermissionRole\";\r\nimport { getMainNavRoutes } from \"app/core/main-nav-routes\";\r\nimport { SecurityService } from \"app/core/security/security.service\";\r\nimport { SystemMessage, SystemMessageService } from \"app/core/system-message/system-message-service\";\r\nimport { GlobalVariablesService } from \"app/services/global-variables.service\";\r\nimport { FaIconName } from \"app/shared/fa-num-icon/fa-icon-name/fa-icon-name\";\r\nimport { FaIconPosition, FaPositionUnits } from \"app/shared/fa-num-icon/fa-icon-position/fa-icon-position\";\r\nimport { FaNumColor } from \"app/shared/fa-num-icon/fa-num-color/fa-num-color.enum\";\r\nimport { UserJsVm } from \"app/shared/generated/Administration/Models/Users/UserJsVm\";\r\nimport { pcgSettings } from \"app/shared/generated/pcg-settings\";\r\nimport { FormatHelperService } from \"app/shared/helpers/format-helper.service\";\r\nimport { GlobalService } from \"app/shared/services/global.service\";\r\nimport { AccountRequestModalStateService } from \"app/shared/state/account-request-modal-state.service\";\r\nimport { NavRoute } from \"../nav.route.interface\";\r\nimport { NavigationService } from \"../navigation.service\";\r\nimport { OrganizationAccountUpdateNavComponent } from \"../organization-account-update-nav/organization-account-update-nav.component\";\r\nimport { NavNotificationService } from \"../nav-notification.service\";\r\nimport { SseNotificationService } from \"app/core/sse-notification/sse-notification.service\";\r\nimport { NotificationsService } from 'app/core/pages/dashboard/widgets/notifications-widget/notifications.service';\r\n\r\n// Navigation sidebar component template that provides:\r\n// - Toggle button for docking/undocking nav (desktop only)\r\n// - Logo/brand header with environment indicator\r\n// - Main navigation menu with:\r\n// - Dynamic route-based navigation items\r\n// - Nested navigation support with expandable sections\r\n// - User profile section with edit profile and logout\r\n// - Status indicators and quick access buttons for:\r\n// - Fulfillment queue counts (Product Prep, Shipping Prep, QC Check)\r\n// - Account request notifications\r\n// - Reconciliation/Invoice notifications\r\n\r\n// Key features:\r\n// - Responsive mobile/desktop layouts\r\n// - Role-based navigation visibility\r\n// - Active route highlighting\r\n// - Expandable/collapsible nested navigation\r\n// - Notification badges and tooltips\r\n@UntilDestroy()\r\n@Component({\r\n selector: \"pcg-mat-side-nav\",\r\n templateUrl: \"./mat-side-nav.component.html\",\r\n styleUrl: \"./mat-side-nav.component.scss\",\r\n standalone: false\r\n})\r\nexport class MatSideNavComponent implements OnInit, AfterViewInit, AfterContentChecked {\r\n\r\n\t@Input() user: UserJsVm;\r\n\r\n\tnavService = inject(NavigationService);\r\n sseService = inject(SseNotificationService);\r\n ns = inject(NavNotificationService);\r\n\r\n\tnavContentOffscreen: boolean = false;\r\n\t// Setting the scroll height used to keep the nested table scrollable with headers shown.\r\n\tobserver = new IntersectionObserver((entries) => { this.navContentOffscreen = !entries[0]?.isIntersecting; });\r\n\t// Used to display a loading spinner on the navigation link when clicked, notifying the user that the page is loading.\r\n\tnavLinkLoading = signal<[string, number]>([null, null]);\r\n\r\n\tfaIcons = {\r\n\t\tfaArrowLeft\r\n\t\t, faArrowRight\r\n\t\t, faAngleDown\r\n\t\t, faUser\r\n\t\t, faBoxOpen\r\n\t\t, faUserMd\r\n\t\t, faArrowRightArrowLeft\r\n\t\t, faBell\r\n\t\t, faBoxesPacking\r\n\t\t, faPrescription\r\n\t};\r\n\r\n\tstep1Position: FaIconPosition = new FaIconPosition(\r\n\t\tnull\r\n\t\t, 13\r\n\t\t, null\r\n\t\t, null\r\n\t\t, FaPositionUnits.percent\r\n\t);\r\n\tfaNumColor: typeof FaNumColor = FaNumColor;\r\n\tfaIconName: FaIconName = new FaIconName();\r\n\ticonColorName = \"inherit\";\r\n\r\n\tfileLogoUrl = \"../assets/images/logos/logo_small.png\";\r\n\tmode = pcgSettings.mode;\r\n\tnavigationOffset = 0;\r\n\r\n\t// Enums\r\n\tbusArea = BusinessAreaEnum;\r\n\trole = PermissionRole;\r\n\r\n\tprivate resizeTimeout;\r\n\r\n\t@HostListener(\"window:resize\")\r\n\tonResize() {\r\n\t\tclearTimeout(this.resizeTimeout);\r\n\t\tthis.resizeTimeout = setTimeout(() => { this.fixNavOffset(); }, 200);\r\n\t}\r\n\tconstructor(\r\n\t\tpublic router: Router\r\n\t\t, private sec: SecurityService\r\n\t\t, private httpClient: HttpClient\r\n\t\t, private modalService: NgbModal\r\n\t\t, public arms: AccountRequestModalStateService\r\n\t\t, public gs: GlobalService\r\n\t\t, public ms: SystemMessageService\r\n\t\t, public gvs: GlobalVariablesService\r\n\t\t, private cdRef: ChangeDetectorRef\r\n , private notificationsService: NotificationsService\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.navService.navRoutes.set(this.sec.getSecureNavItems(getMainNavRoutes()));\r\n\t\tthis.navService.isMobile.set(GlobalService.setIsMobile(window.innerWidth));\r\n\t\tthis.navService.navRoutes$\r\n\t\t\t.pipe(untilDestroyed(this))\r\n\t\t\t.subscribe(() => {\r\n\t\t\t\tthis.fixNavOffset();\r\n\t\t\t\tthis.navLinkLoading.set([null, null]);\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tngAfterViewInit() { this.ns.getHeaderCounts(); }\r\n\tngAfterContentChecked() { this.cdRef.detectChanges(); }\r\n\r\n\tfixNavOffset() {\r\n\t\tconst mainNav = document.getElementById(\"pcgMainNavigation\");\r\n\t\tsetTimeout(() => {\r\n\t\t\tif (getComputedStyle(mainNav, null).position === \"fixed\") { this.navigationOffset = mainNav.getBoundingClientRect().bottom; } \r\n\t\t\telse { this.navigationOffset = 0; }\r\n\r\n\t\t\tconst styles = `pcg-side-nav { top: ${this.navigationOffset - 1}px }` \r\n\t\t\t\t+ `.nav-padding-placeholder { padding-top: ${this.navigationOffset}px; }` \r\n\t\t\t\t+ `.conversations-sidenav { top: ${this.navigationOffset}px }` \r\n\t\t\t\t+ `.knowledge-base-doc-popout { top: ${this.navigationOffset}px }` \r\n\t\t\t\t+ `.popout { top: ${this.navigationOffset}px }`;\r\n\r\n\t\t\tconst tableStyles = `.pcg-table-fixed-header thead tr th, .pcg-table-fixed-header thead tr { top: ${this.navigationOffset - 1}px }`;\r\n\r\n\t\t\tthis.setDynamicStyle(\"navPaddingOffset\", styles);\r\n\t\t\tthis.setDynamicStyle(\"navTableOffset\", tableStyles);\r\n\t\t\tthis.checkForContentOffscreen();\r\n\t\t}, 100);\r\n\t}\r\n\r\n\tsetDynamicStyle(name: string, styles: string) {\r\n\t\tlet dynamicStyle = document.getElementById(name);\r\n\t\tif (dynamicStyle) { document.head.removeChild(dynamicStyle); }\r\n\t\tdynamicStyle = document.createElement(\"style\");\r\n\t\tdynamicStyle.id = name;\r\n\t\tdynamicStyle.innerHTML = styles;\r\n\t\tdocument.head.appendChild(dynamicStyle);\r\n\t}\r\n\r\n\tcheckForContentOffscreen(): void {\r\n\t\t// Checking if there is any nave content off-screen.\r\n\t\tconst navAnchor = document.getElementById(\"navAnchor\");\r\n\t\tif (navAnchor) {\r\n\t\t\tthis.observer.observe(navAnchor);\t\r\n\t\t}\t\r\n\t}\r\n\r\n\r\n\t// Stores modal reference in state of the service.\r\n\topenOrgAccountUpdateModal = () => this.arms.setModalRef(this.modalService.open(OrganizationAccountUpdateNavComponent, { animation: false }));\r\n\r\n\topenFulfillmentList(step: number) { window.location.href = \"/pharmacy/fulfillment/list?status=\" + step; }\r\n\r\n\tlogout() {\r\n this.sseService.destroySSE();\r\n\t\tthis.gvs.isNavFixed.set(false);\r\n\t\tthis.navService.collapseAllSubNavs();\r\n\t\tthis.sec.setSecurity(null, null);\r\n\t\tlocalStorage.removeItem(\"subNavPosition\");\r\n\t\tthis.deleteAllCookies();\r\n\t\tthis.router.navigate([\"/\"]);\r\n\t\tsessionStorage.removeItem(\"notificationModalOpened\");\r\n\t\tsessionStorage.removeItem(\"step1Count\");\r\n\t\tsessionStorage.removeItem(\"step2Count\");\r\n\t\tsessionStorage.removeItem(\"step3Count\");\r\n\t\tsessionStorage.removeItem(\"accountRequestCount\");\r\n\t\tsessionStorage.removeItem(\"ciWorkstationModalOpened\");\r\n\t\tlocalStorage.removeItem(\"herosAgencyFilters\");\r\n\t\tlocalStorage.removeItem(\"herosApplicantFilters\");\r\n\r\n var loggedInUsingSso = localStorage.getItem(\"loggedInUsingSso\") == \"true\";\r\n localStorage.setItem(\"loggedInUsingSso\", \"false\");\r\n if (loggedInUsingSso) {\r\n this.httpClient.get(`api/Account/SingleSignOut?userId=${this.user.id}&entraIdentifierUrl=${localStorage.getItem(\"entraIdentifierUrl\")}&entraLoginUrl=${localStorage.getItem(\"entraLoginUrl\")}`)\r\n .subscribe((msg: SystemMessage) => {\r\n localStorage.setItem(\"entraIdentifierUrl\", \"\");\r\n localStorage.setItem(\"entraLoginUrl\", \"\");\r\n if (msg.isSuccessful) { window.location.href = msg.value; }\r\n else { this.ms.setSystemMessage(msg.message, msg.messageClass); }\r\n }\r\n )\r\n }\r\n\r\n\t}\r\n\r\n\tdeleteAllCookies() {\r\n\t\tdocument.cookie.split(\";\").forEach((cookie) => {\r\n\t\t\tconst name = cookie.split(\"=\")[0].trim();\r\n\t\t\tdocument.cookie = `${name}=;expires=Thu, 01 Jan 1970 00:00:00 GMT;path=/`;\r\n\t\t});\r\n\t}\r\n\r\n\ttoggleUserProfileSubNav() {\r\n\t\tconst isOpen = this.navService.userProfileExpanded();\r\n\t\tthis.navService.collapseAllSubNavs();\r\n\t\tif (!isOpen) { this.navService.userProfileExpanded.set(true); }\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the click event on a navigation link.\r\n\t * Sets the `navLinkLoading` state to the provided `name` and `level` values,\r\n\t * and then resets the state to `[null, null]` after 1 second.\r\n\t * This is likely used to indicate that a navigation link is currently loading.\r\n\t *\r\n\t * @param nav - The navigation link that was clicked.\r\n\t * @param level - The level of the navigation link that was clicked.\r\n\t*/\r\n\tnavLinkClicked(\r\n\t\tnav: NavRoute\r\n\t\t, level: number\r\n\t) {\r\n\t\tif (this.navService.isMobile()) { this.navService.isNavOpen.set(false); }\r\n\t\tthis.navLinkLoading.set([nav.name, level]);\r\n\t\tlet path = nav.href?.length \r\n\t\t\t? nav.href \r\n\t\t\t: nav.path;\t\t\t\t\r\n\t\tif (nav.openNewTab) { this.openInNewTab(path); } \r\n\t\tif (this.navService.isMobile()) { this.navService.toggleNavOpen(false, true); }\t\r\n\t\tsetTimeout(() => { this.navLinkLoading.set([null, null]); }, 1000);\r\n\t}\r\n\r\n\topenInNewTab(namedRoute: string) {\r\n\t\tlet newRelativeUrl = this.router.createUrlTree([namedRoute]);\r\n\t\tlet baseUrl = window.location.href.replace(this.router.url, \"\");\r\n\t\twindow.open(baseUrl + newRelativeUrl, \"_blank\");\r\n\t}\r\n\r\n\tredirect(path: string) {\r\n\t\tif (!FormatHelperService.GetIsNullyOrWhitespace(path)) {\r\n\t\t\tthis.router.navigateByUrl(path)\r\n\t\t\t\t.catch(err => {\r\n\t\t\t\t\tconsole.log('Error: ' + err);\r\n\t\t\t\t\twindow.location.href = path; \r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t} else { window.location.reload(); }\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if a navigation link is currently loading.\r\n\t *\r\n\t * @param name - The name of the navigation link.\r\n\t * @param level - The level of the navigation link.\r\n\t * @returns `true` if the specified navigation link is currently loading, `false` otherwise.\r\n\t*/\r\n\tnavLinkIsLoading(\r\n\t\tname\r\n\t\t, level\r\n\t) {\r\n\t\tconst [currentName, currentLevel] = this.navLinkLoading();\r\n\t\treturn currentName === name && currentLevel === level;\r\n\t}\r\n\r\n\tscrollToBottom() {\r\n\t\tconst navAnchor = document.getElementById(\"navAnchor\");\r\n\t\tif (navAnchor) { navAnchor.scrollIntoView({ behavior: \"smooth\", block: \"end\", inline: \"nearest\" }); }\r\n\t}\r\n}\r\n","\r\n@if (!navService.isMobile()) {\r\n \r\n}\r\n\r\n\r\n\r\n
\r\n \"HOMER\"\r\n @if (mode !== 'Production') {
}\r\n
\r\n\r\n\r\n\r\n \r\n @for (nav of navService.navRoutes(); track nav.name) {\r\n \r\n }\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n {{ user?.firstName + \" \" + user?.lastName }}\r\n \r\n
\r\n
\r\n\r\n @if (navService.userProfileExpanded()) {\r\n
\r\n My Profile\r\n \r\n Logout\r\n \r\n
\r\n }\r\n \r\n\r\n \r\n \r\n
\r\n\r\n\r\n\r\n @if (navService.canViewNav(nav)) {\r\n \r\n }\r\n\r\n\r\n\r\n\r\n \r\n \r\n @if (nav.icon) {\r\n
\r\n \r\n
\r\n }\r\n {{nav.shortName ?? nav.name}}\r\n \r\n
\r\n
\r\n @if (nav.expanded) {\r\n
\r\n @for (subNav of nav.children; track subNav) {\r\n \r\n }\r\n
\r\n }\r\n
\r\n\r\n\r\n\r\n \r\n \r\n @if (nav.icon) {\r\n
\r\n \r\n
\r\n }\r\n {{nav.shortName ?? nav.name}}\r\n @if (navLinkIsLoading(nav.name, level)) {\r\n \r\n }\r\n
\r\n
\r\n
\r\n\r\n@if (navContentOffscreen) {\r\n
\r\n \r\n
\r\n}\r\n\r\n
\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\nimport { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UiSwitchModule } from 'ngx-ui-switch';\r\nimport { FormElementsModule } from '../form-elements/form-elements.module';\r\nimport { OrganizationAccountUpdateComponent } from '../organizations/organization-account-update/organization-account-update.component';\r\nimport { CiDashboardActionsComponent } from './ci-dashboard-actions/ci-dashboard-actions.component';\r\nimport { NotificationNavComponent } from './notification-nav/notification-nav.component';\r\nimport { OrganizationAccountUpdateNavComponent } from './organization-account-update-nav/organization-account-update-nav.component';\r\nimport { SideNavComponent } from './side-nav/side-nav.component';\r\nimport { TopClickNavComponent } from './top-click-nav/top-click-nav.component';\r\nimport { TopSecondaryNavComponent } from './top-secondary-nav/top-secondary-nav.component';\r\nimport { WorkstationBannerComponent } from './workstation-banner/workstation-banner.component';\r\nimport { QuickNavComponent } from './quick-nav/quick-nav.component';\r\nimport { MatSideNavComponent } from './mat-side-nav/mat-side-nav.component';\r\nimport { MaterialsModule } from '../material.module';\r\n\r\n@NgModule({\r\n\tdeclarations: [ \r\n\t\tTopClickNavComponent\r\n\t\t, TopSecondaryNavComponent\r\n\t\t, SideNavComponent\r\n\t\t, NotificationNavComponent\r\n\t\t, WorkstationBannerComponent\r\n\t\t, CiDashboardActionsComponent\r\n\t\t, QuickNavComponent\r\n\t\t, OrganizationAccountUpdateNavComponent\r\n\t\t, OrganizationAccountUpdateComponent\r\n\t\t, MatSideNavComponent\r\n\t],\r\n\timports: [ \r\n\t\tRouterModule\r\n\t\t, CommonModule\r\n\t\t, FormsModule\r\n\t\t, ReactiveFormsModule\r\n\t\t, FontAwesomeModule\r\n\t\t, NgbTooltipModule\r\n\t\t, FormElementsModule\r\n\t\t, UiSwitchModule\r\n\t\t, MaterialsModule\r\n\t],\r\n\texports: [\r\n\t\tTopClickNavComponent\r\n\t\t, TopSecondaryNavComponent\r\n\t\t, SideNavComponent\r\n\t\t, NotificationNavComponent\r\n\t\t, FontAwesomeModule\r\n\t\t, WorkstationBannerComponent\r\n\t\t, CiDashboardActionsComponent\r\n\t\t, QuickNavComponent\r\n\t\t, OrganizationAccountUpdateComponent\r\n\t\t, MatSideNavComponent\r\n\t]\r\n})\r\nexport class NavigationModule { }\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class EditOrganizationFacilityVm {\r\n\tfacilityId: number;\r\n\tfacilityName?: string;\r\n\tfacilityIdentifier?: string;\r\n\tcountyId?: number;\r\n\tcountyName?: string;\r\n\tsmartyAddress?: any;\r\n\tsmartyAddressString?: string;\r\n\thasSmarty: boolean;\r\n\tstateAbr?: string;\r\n\tphoneNumber?: string;\r\n\tdauCode?: string;\r\n\tisActive: boolean;\r\n\tisSameAddress: boolean;\r\n\tshipFacilityName?: string;\r\n\tshipSmartyAddress?: any;\r\n\tshipSmartyAddressString?: string;\r\n\thasShipSmarty: boolean;\r\n\tshipStateAbr?: string;\r\n\tisShipAddressValidated: boolean;\r\n\tfriendlyId?: string;\r\n\tgln?: string;\r\n\tmedicalDirectorId?: number;\r\n\tmedicalDirectorName?: string;\r\n\tmedicalDirectorLicense?: string;\r\n\tmedicalDirectorExpDate?: string;\r\n\torganizationId?: number;\r\n\tpfsFacilityId?: number;\r\n\treconCountsRequired?: any;\r\n\tfacilityTypeId?: number;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'facilityId': new UntypedFormControl(0, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityName': new UntypedFormControl(null, [...(validators['facilityName'] ?? []), ...[Validators.required, Validators.maxLength(100)]]),\r\n\t\t\t'facilityIdentifier': new UntypedFormControl(null, [...(validators['facilityIdentifier'] ?? []), ...[Validators.required, Validators.maxLength(20)]]),\r\n\t\t\t'countyId': new UntypedFormControl(null, [...(validators['countyId'] ?? []), ...[]]),\r\n\t\t\t'countyName': new UntypedFormControl(null, [...(validators['countyName'] ?? []), ...[]]),\r\n\t\t\t'smartyAddress': new UntypedFormControl(null, [...(validators['smartyAddress'] ?? []), ...[Validators.required]]),\r\n\t\t\t'smartyAddressString': new UntypedFormControl(null, [...(validators['smartyAddressString'] ?? []), ...[]]),\r\n\t\t\t'hasSmarty': new UntypedFormControl(false, [...(validators['hasSmarty'] ?? []), ...[]]),\r\n\t\t\t'stateAbr': new UntypedFormControl(null, [...(validators['stateAbr'] ?? []), ...[]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[Validators.required, Validators.minLength(10)]]),\r\n\t\t\t'dauCode': new UntypedFormControl(null, [...(validators['dauCode'] ?? []), ...[Validators.maxLength(6)]]),\r\n\t\t\t'isActive': new UntypedFormControl(false, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'isSameAddress': new UntypedFormControl(false, [...(validators['isSameAddress'] ?? []), ...[]]),\r\n\t\t\t'shipFacilityName': new UntypedFormControl(null, [...(validators['shipFacilityName'] ?? []), ...[Validators.required, Validators.maxLength(100)]]),\r\n\t\t\t'shipSmartyAddress': new UntypedFormControl(null, [...(validators['shipSmartyAddress'] ?? []), ...[Validators.required]]),\r\n\t\t\t'shipSmartyAddressString': new UntypedFormControl(null, [...(validators['shipSmartyAddressString'] ?? []), ...[]]),\r\n\t\t\t'hasShipSmarty': new UntypedFormControl(false, [...(validators['hasShipSmarty'] ?? []), ...[]]),\r\n\t\t\t'shipStateAbr': new UntypedFormControl(null, [...(validators['shipStateAbr'] ?? []), ...[]]),\r\n\t\t\t'isShipAddressValidated': new UntypedFormControl(false, [...(validators['isShipAddressValidated'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'gln': new UntypedFormControl(null, [...(validators['gln'] ?? []), ...[Validators.pattern(\"^[A-Za-z0-9 ]*\"), Validators.maxLength(13)]]),\r\n\t\t\t'medicalDirectorId': new UntypedFormControl(null, [...(validators['medicalDirectorId'] ?? []), ...[]]),\r\n\t\t\t'medicalDirectorName': new UntypedFormControl(null, [...(validators['medicalDirectorName'] ?? []), ...[]]),\r\n\t\t\t'medicalDirectorLicense': new UntypedFormControl(null, [...(validators['medicalDirectorLicense'] ?? []), ...[]]),\r\n\t\t\t'medicalDirectorExpDate': new UntypedFormControl(null, [...(validators['medicalDirectorExpDate'] ?? []), ...[]]),\r\n\t\t\t'organizationId': new UntypedFormControl(null, [...(validators['organizationId'] ?? []), ...[]]),\r\n\t\t\t'pfsFacilityId': new UntypedFormControl(null, [...(validators['pfsFacilityId'] ?? []), ...[]]),\r\n\t\t\t'reconCountsRequired': new UntypedFormControl(null, [...(validators['reconCountsRequired'] ?? []), ...[]]),\r\n\t\t\t'facilityTypeId': new UntypedFormControl(null, [...(validators['facilityTypeId'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): EditOrganizationFacilityVmFromFg {\r\n\t\treturn new EditOrganizationFacilityVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class EditOrganizationFacilityVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget facilityName(): string {\r\n\t\treturn this.fg.get('facilityName').value;\r\n\t}\r\n\tset facilityName(val) {\r\n\t\tthis.fg.get('facilityName').setValue(val);\r\n\t}\r\n\r\n\tget facilityIdentifier(): string {\r\n\t\treturn this.fg.get('facilityIdentifier').value;\r\n\t}\r\n\tset facilityIdentifier(val) {\r\n\t\tthis.fg.get('facilityIdentifier').setValue(val);\r\n\t}\r\n\r\n\tget countyId(): number {\r\n\t\treturn this.fg.get('countyId').value;\r\n\t}\r\n\tset countyId(val) {\r\n\t\tthis.fg.get('countyId').setValue(val);\r\n\t}\r\n\r\n\tget countyName(): string {\r\n\t\treturn this.fg.get('countyName').value;\r\n\t}\r\n\tset countyName(val) {\r\n\t\tthis.fg.get('countyName').setValue(val);\r\n\t}\r\n\r\n\tget smartyAddress(): any {\r\n\t\treturn this.fg.get('smartyAddress').value;\r\n\t}\r\n\tset smartyAddress(val) {\r\n\t\tthis.fg.get('smartyAddress').setValue(val);\r\n\t}\r\n\r\n\tget smartyAddressString(): string {\r\n\t\treturn this.fg.get('smartyAddressString').value;\r\n\t}\r\n\tset smartyAddressString(val) {\r\n\t\tthis.fg.get('smartyAddressString').setValue(val);\r\n\t}\r\n\r\n\tget hasSmarty(): boolean {\r\n\t\treturn this.fg.get('hasSmarty').value;\r\n\t}\r\n\tset hasSmarty(val) {\r\n\t\tthis.fg.get('hasSmarty').setValue(val);\r\n\t}\r\n\r\n\tget stateAbr(): string {\r\n\t\treturn this.fg.get('stateAbr').value;\r\n\t}\r\n\tset stateAbr(val) {\r\n\t\tthis.fg.get('stateAbr').setValue(val);\r\n\t}\r\n\r\n\tget phoneNumber(): string {\r\n\t\treturn this.fg.get('phoneNumber').value;\r\n\t}\r\n\tset phoneNumber(val) {\r\n\t\tthis.fg.get('phoneNumber').setValue(val);\r\n\t}\r\n\r\n\tget dauCode(): string {\r\n\t\treturn this.fg.get('dauCode').value;\r\n\t}\r\n\tset dauCode(val) {\r\n\t\tthis.fg.get('dauCode').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): boolean {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget isSameAddress(): boolean {\r\n\t\treturn this.fg.get('isSameAddress').value;\r\n\t}\r\n\tset isSameAddress(val) {\r\n\t\tthis.fg.get('isSameAddress').setValue(val);\r\n\t}\r\n\r\n\tget shipFacilityName(): string {\r\n\t\treturn this.fg.get('shipFacilityName').value;\r\n\t}\r\n\tset shipFacilityName(val) {\r\n\t\tthis.fg.get('shipFacilityName').setValue(val);\r\n\t}\r\n\r\n\tget shipSmartyAddress(): any {\r\n\t\treturn this.fg.get('shipSmartyAddress').value;\r\n\t}\r\n\tset shipSmartyAddress(val) {\r\n\t\tthis.fg.get('shipSmartyAddress').setValue(val);\r\n\t}\r\n\r\n\tget shipSmartyAddressString(): string {\r\n\t\treturn this.fg.get('shipSmartyAddressString').value;\r\n\t}\r\n\tset shipSmartyAddressString(val) {\r\n\t\tthis.fg.get('shipSmartyAddressString').setValue(val);\r\n\t}\r\n\r\n\tget hasShipSmarty(): boolean {\r\n\t\treturn this.fg.get('hasShipSmarty').value;\r\n\t}\r\n\tset hasShipSmarty(val) {\r\n\t\tthis.fg.get('hasShipSmarty').setValue(val);\r\n\t}\r\n\r\n\tget shipStateAbr(): string {\r\n\t\treturn this.fg.get('shipStateAbr').value;\r\n\t}\r\n\tset shipStateAbr(val) {\r\n\t\tthis.fg.get('shipStateAbr').setValue(val);\r\n\t}\r\n\r\n\tget isShipAddressValidated(): boolean {\r\n\t\treturn this.fg.get('isShipAddressValidated').value;\r\n\t}\r\n\tset isShipAddressValidated(val) {\r\n\t\tthis.fg.get('isShipAddressValidated').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget gln(): string {\r\n\t\treturn this.fg.get('gln').value;\r\n\t}\r\n\tset gln(val) {\r\n\t\tthis.fg.get('gln').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorId(): number {\r\n\t\treturn this.fg.get('medicalDirectorId').value;\r\n\t}\r\n\tset medicalDirectorId(val) {\r\n\t\tthis.fg.get('medicalDirectorId').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorName(): string {\r\n\t\treturn this.fg.get('medicalDirectorName').value;\r\n\t}\r\n\tset medicalDirectorName(val) {\r\n\t\tthis.fg.get('medicalDirectorName').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorLicense(): string {\r\n\t\treturn this.fg.get('medicalDirectorLicense').value;\r\n\t}\r\n\tset medicalDirectorLicense(val) {\r\n\t\tthis.fg.get('medicalDirectorLicense').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorExpDate(): string {\r\n\t\treturn this.fg.get('medicalDirectorExpDate').value;\r\n\t}\r\n\tset medicalDirectorExpDate(val) {\r\n\t\tthis.fg.get('medicalDirectorExpDate').setValue(val);\r\n\t}\r\n\r\n\tget organizationId(): number {\r\n\t\treturn this.fg.get('organizationId').value;\r\n\t}\r\n\tset organizationId(val) {\r\n\t\tthis.fg.get('organizationId').setValue(val);\r\n\t}\r\n\r\n\tget pfsFacilityId(): number {\r\n\t\treturn this.fg.get('pfsFacilityId').value;\r\n\t}\r\n\tset pfsFacilityId(val) {\r\n\t\tthis.fg.get('pfsFacilityId').setValue(val);\r\n\t}\r\n\r\n\tget reconCountsRequired(): any {\r\n\t\treturn this.fg.get('reconCountsRequired').value;\r\n\t}\r\n\tset reconCountsRequired(val) {\r\n\t\tthis.fg.get('reconCountsRequired').setValue(val);\r\n\t}\r\n\r\n\tget facilityTypeId(): number {\r\n\t\treturn this.fg.get('facilityTypeId').value;\r\n\t}\r\n\tset facilityTypeId(val) {\r\n\t\tthis.fg.get('facilityTypeId').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnInit} from '@angular/core';\r\nimport { TreeNode } from 'primeng/api';\r\n\r\n@Component({\r\n selector: 'pcg-programs-accounts-infographic',\r\n templateUrl: './programs-accounts-infographic.component.html',\r\n styleUrls: ['./programs-accounts-infographic.component.scss'],\r\n standalone: false\r\n})\r\nexport class ProgramsAccountsInfographicComponent implements OnInit {\r\n @Input() facilityTypeId = null;\r\n data: TreeNode[][];\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n ngOnInit() {\r\n this.httpClient.get(`api/Administration/Organization/GetInfographicData/${this.facilityTypeId}`)\r\n .subscribe((vm: any) => {\r\n this.data = this.buildObject(vm);\r\n });\r\n }\r\n\r\n buildObject(vm: any): TreeNode[][] {\r\n return vm.map((p: any) => {\r\n return [{\r\n label: p.program,\r\n expanded: true,\r\n styleClass: 'program-node',\r\n children: p.children.map((c: any, i: number) => {\r\n // Extracts the pattern ({programAbreviation} 340B ID) from orgAccount\r\n const orgAccount = c.orgAccount.replace(/.*(\\(\\w+\\) 340B ID)/, '$1');\r\n return {\r\n label: orgAccount,\r\n expanded: true,\r\n styleClass: i % 2 === 0 ? 'org-account-node' : 'org-account-node-alt',\r\n children: [\r\n {\r\n label: c.wholesalerAccount,\r\n styleClass: i % 2 === 0 ? 'wholesaler-account-node' : 'wholesaler-account-node-alt',\r\n children: []\r\n }\r\n ]\r\n };\r\n })\r\n }];\r\n });\r\n }\r\n\r\n}\r\n","
\r\n

Program

\r\n

Organization
Account

\r\n

Wholesaler
Account

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild, ViewChildren, inject, signal } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Router } from '@angular/router';\r\nimport { UiSwitchComponent } from 'ngx-ui-switch';\r\nimport { Observable } from 'rxjs';\r\nimport { faExternalLink, faDiagramNested } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { ActivationEnum } from 'app/core/enums/generated/ActivationEnum';\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { PcgSelectComponent } from 'app/shared/form-elements/components/pcg-select-component/select.component';\r\nimport { EditOrganizationFacilityVm } from 'app/shared/generated/Administration/Models/Organizations/EditOrganizationFacilityVm';\r\nimport { ActivationService } from 'app/shared/services/activation.service';\r\nimport { ReconciliationVm } from 'app/shared/generated/SysInv/Models/Reconciliation/ReconciliationVm';\r\nimport { validateForm } from 'app/shared/form-elements/form-validateForm.function';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { FacilityTypeVm } from 'app/shared/generated/Administration/Models/Facilities/FacilityTypeVm';\r\n\r\n@Component({\r\n selector: 'pcg-shared-edit-organization-facility',\r\n templateUrl: './edit-organization-facility.component.html',\r\n styleUrls: ['./edit-organization-facility.component.scss'],\r\n standalone: false\r\n})\r\nexport class EditOrganizationFacilityComponent implements OnInit {\r\n\r\n\t@Input() businessArea: BusinessAreaEnum;\r\n\t@Input() facilityId = 0;\r\n\t@Input() organizationId = 0;\r\n @Output() onSaveSuccess = new EventEmitter();\r\n\r\n\t// @ViewChild('businessAreaSettings', { static: false }) businessAreaSettings: CiBusinessAreaComponent;\r\n\t@ViewChild('isActive', { static: false }) isActive: UiSwitchComponent;\r\n\t@ViewChild('isSameAddress', { static: false }) isSameAddress: UiSwitchComponent;\r\n\t@ViewChild('isShipAddressValidated', { static: false }) isShipAddressValidated: UiSwitchComponent;\r\n\t@ViewChild('infographicModal', { static: true }) infographicModal: TemplateRef;\r\n\t@ViewChild('facilityTypeSelect', { static: true }) facilityTypeSelect: PcgSelectComponent;\r\n\r\n\tmodalService = inject(NgbModal);\r\n\r\n\tformGroup = EditOrganizationFacilityVm.Form;\r\n\tmodel = EditOrganizationFacilityVm.GetModel(this.formGroup);\r\n\tmodel$: Observable;\r\n\tapi = \"api/Select/SmartyCounties\";\r\n\r\n\tcanEdit = false;\r\n\tcanDeactivate = false;\r\n\tcanViewReports = false;\r\n\tcanManualEntry = true;\r\n\tcanEditFacilityType = false;\r\n\tshipAddressDisabled = false;\r\n showHiddenFields = false;\r\n\r\n\tfacilityName: string;\r\n\toldShipSmartyAddress: string;\r\n\toldShipFacilityName: string;\r\n\r\n faIconName = { faExternalLink, faDiagramNested };\r\n\r\n\t// Used for \"Pending Reconciliations\" Error Message\r\n\tpendingRecons: ReconciliationVm[];\r\n\tshowReconErrorMessage = false;\r\n\tfirstLoad = false;\r\n\r\n\tfacilityTypeName = \"\";\r\n\tfacilityTypeTooltip = signal(\"Determines which programs can be associated to the inventories under this facility.\");\r\n\r\n\tconstructor(\r\n\t\tprivate httpClient: HttpClient\r\n\t\t, public router: Router\r\n\t\t, title: Title\r\n\t\t, private sec: SecurityService\r\n\t\t, private activationService: ActivationService\r\n\t\t, public ms: SystemMessageService\r\n\t) { title.setTitle('Edit Facility'); }\r\n\r\n\tngOnInit() {\r\n\t\tthis.canEdit = this.sec.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.CI, BusinessAreaEnum.MetabolicFormula, BusinessAreaEnum.Admin]\r\n\t\t\t, [PermissionRole.UserAdmin, ...SecurityService.setMinRole(PermissionRole.User)]\r\n\t\t);\r\n\t\tthis.canViewReports = this.sec.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.CI, BusinessAreaEnum.Admin]\r\n\t\t\t, [PermissionRole.UserAdmin, ...SecurityService.setMinRole(PermissionRole.Manager)]\r\n\t\t);\r\n\t\tthis.canEditFacilityType = this.sec.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.Admin]\r\n\t\t\t, [...SecurityService.setMinRole(PermissionRole.Pharmacist)]\r\n\t\t);\r\n\t\tthis.editFacility();\r\n\r\n\t\tif (\r\n\t\t\tthis.businessArea === null \r\n\t\t\t|| this.businessArea === undefined \r\n\t\t\t|| this.businessArea === BusinessAreaEnum.Admin\r\n\t\t) {\r\n\t\t\tif (this.sec.hasModuleAccess([BusinessAreaEnum.Admin], [...SecurityService.setMinRole(PermissionRole.SystemAdmin)])) {\r\n\t\t\t\tthis.canEdit = true;\r\n\t\t\t\tthis.canDeactivate = true;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\teditFacility() {\r\n\t\tthis.httpClient.get(`api/Administration/Organization/GetOrganizationFacility/?id=${this.facilityId}&organizationId=${this.organizationId}`)\r\n\t\t\t.subscribe((vm: EditOrganizationFacilityVm) => {\r\n\t\t\t\tif (vm.countyId === 0) { vm.countyId = null; }// preventing a blank selection on load\r\n\t\t\t\tthis.formGroup.setValue(vm);\r\n\t\t\t\tthis.facilityName = vm.facilityName;\r\n\t\t\t\tthis.oldShipFacilityName = this.model.shipFacilityName;\r\n\t\t\t\tthis.oldShipSmartyAddress = this.model.shipSmartyAddress;\r\n\t\t\t\tthis.toggleShippingFormActivation(!this.model.isSameAddress);\r\n\t\t\t\tif(!this.canEditFacilityType) { \r\n\t\t\t\t\tthis.formGroup.get('facilityTypeId')?.disable();\r\n\t\t\t\t\tthis.facilityTypeTooltip.update(tooltip => tooltip += \" Can only be changed by a Pharmacist or System Admin.\" ); \r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n\r\n\tactivateDeactivate() {\r\n\t\tthis.activationService.activateDeactivate(\r\n\t\t\tthis.facilityId\r\n\t\t\t, ActivationEnum.Facility\r\n\t\t\t, this.formGroup.value.isActive ? false : true\r\n\t\t);\r\n\t}\r\n\r\n\tupdateShippingInfo() {\r\n\t\tthis.formGroup.controls.countyName.patchValue(this.formGroup.controls.smartyAddress.value.countyName);\r\n\t\tif (this.isSameAddress.checked) {\r\n\t\t\tthis.formGroup.get('shipFacilityName').patchValue(this.formGroup.value.facilityName);\r\n\t\t\tthis.formGroup.get('shipSmartyAddress').patchValue(this.formGroup.value.smartyAddress);\r\n\t\t\tthis.toggleShippingFormActivation(false);\r\n\t\t} else {\r\n\t\t\tthis.formGroup.get('shipFacilityName').patchValue(this.oldShipFacilityName);\r\n\t\t\tthis.formGroup.get('shipSmartyAddress').patchValue(this.oldShipSmartyAddress);\r\n\t\t\tthis.toggleShippingFormActivation(true);\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleShippingFormActivation(isActive: Boolean) {\r\n\t\tif (isActive) {\r\n\t\t\tthis.enableShipFacilityName();\r\n\t\t\tthis.shipAddressDisabled = false;\r\n\t\t} else {\r\n\t\t\tthis.disableShipFacilityName();\r\n\t\t\tthis.shipAddressDisabled = true;\r\n\t\t}\r\n\t}\r\n\r\n\tvalidateCountyId() {\r\n\t\tif (this.formGroup?.value?.countyId === 0) {\r\n\t\t\tthis.formGroup?.controls?.countyId?.patchValue(null);\r\n\t\t\tthis.model = EditOrganizationFacilityVm.GetModel(this.formGroup);\r\n\t\t}\r\n\t\tthis.formGroup.updateValueAndValidity();\r\n\t}\r\n\r\n\tsubmitForms() {\r\n\t\tif (!this.formGroup.valid) {\r\n\t\t\tvalidateForm(this.formGroup);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tlet disabled = this.hasDisabledShipFacilityName();\r\n\t\t// As a result of moving this to a .ts POST method, disabled values\r\n\t\t// won't go through within the request body.\r\n\t\tif (this.hasDisabledShipFacilityName) { this.enableShipFacilityName(); }\r\n\t\tthis.httpClient.post(`api/Administration/Organization/SaveOrganizationFacility`, this.formGroup.value)\r\n\t\t\t.subscribe((sm: SystemMessage) => {\r\n\t\t\t\t// Re-disable property after POST request.\r\n\t\t\t\tif (disabled) { this.disableShipFacilityName(); }\r\n\t\t\t\tif (sm.isSuccessful) { this.onMessageSuccess(sm); }\r\n\t\t\t\telse { this.onMessageError(sm); }\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\treroute(sm: SystemMessage) {\r\n\t\tif (\r\n\t\t\tthis.businessArea === BusinessAreaEnum.Admin \r\n\t\t\t|| this.businessArea === null \r\n\t\t\t|| this.businessArea == undefined \r\n\t\t\t|| Number.isNaN(this.businessArea)\r\n\t\t) {\r\n\t\t\tthis.router.navigate([`/admin/organizations/facilities/edit/${sm.value}`]);\r\n\t\t} else if (this.businessArea === BusinessAreaEnum.CI) {\r\n\t\t\tthis.router.navigate([`/ci-repack/facilities/edit/${sm.value}`]);\r\n\t\t} else if (this.businessArea === BusinessAreaEnum.MetabolicFormula) {\r\n\t\t\tthis.router.navigate([`/metabolic-formula/facilities/edit/${sm.value}`]);\r\n\t\t}\r\n\t}\r\n\r\n\tonMessageSuccess(sm: SystemMessage) {\r\n\t\tthis.setSysMessage(sm);\r\n\t\tthis.formGroup.setValue(sm.model);\r\n\t\tthis.onSaveSuccess.emit();\r\n\t}\r\n\r\n\tonMessageError(sm: SystemMessage) { \r\n\t\tthis.formGroup.patchValue(sm.model); \r\n\t\tif(!sm.showSystemMessage) { this.showCustomReconMessage(sm); } \r\n\t\telse { this.setSysMessage(sm); }\r\n\t}\r\n\r\n\tshowCustomReconMessage(sm: SystemMessage) {\r\n\t\tthis.pendingRecons = sm.model;\r\n\t\t// Hide default system message and show custom message instead\r\n\t\tthis.ms.settings.messageOpen = false; \r\n\t\tthis.firstLoad = true;\r\n\t\tthis.showReconErrorMessage = true;\r\n\t\tsetTimeout(() => { this.showReconErrorMessage = false; }, 8000);\r\n\t}\t\r\n\r\n\tgetCenteredStyles() {\r\n\t\tconst mm = document?.body?.clientWidth;\r\n\t\tconst mw = 650;\r\n\t\treturn {\r\n\t\t\tminWidth: (mm < mw ? mm : mw) + 'px',\r\n\t\t\tleft: (mm < mw ? 0 : (mm - mw) / 2) + 'px',\r\n\t\t};\r\n\t}\r\n\r\n\tenableShipFacilityName() {\r\n\t\tthis.formGroup.get('shipFacilityName').enable();\r\n\t\tthis.formGroup.get('shipSmartyAddress').enable();\r\n\t}\r\n\r\n\tdisableShipFacilityName() {\r\n\t\tthis.formGroup.get('shipFacilityName').disable();\r\n\t\tthis.formGroup.get('shipSmartyAddress').disable();\r\n\t}\r\n\r\n\tmedDirectorChange(select: PcgSelectComponent) {\r\n\t\tif (select.value) {\r\n\t\t\tthis.model.medicalDirectorLicense = select.additionalData?.licenseNumber;\r\n\t\t\tthis.model.medicalDirectorExpDate = select.additionalData?.expirationDate;\r\n\t\t} else {\r\n\t\t\tthis.model.medicalDirectorLicense = \"\";\r\n\t\t\tthis.model.medicalDirectorExpDate = \"\";\r\n\t\t}\r\n\t}\r\n\r\n\tcloseSystemMessage() { this.showReconErrorMessage = false; }\r\n\tsetSysMessage = (sm: SystemMessage) => this.ms.setSystemMessage(sm.message, sm.messageClass);\r\n\thasDisabledShipFacilityName = () => this.formGroup.get('shipFacilityName').disabled;\r\n navToFacilityDetail() { this.router.navigateByUrl(`${this.editFacilityLink()}${this.facilityId}`); }\r\n\r\n editFacilityLink(): string {\r\n switch(this.businessArea) {\r\n case BusinessAreaEnum.CI: return '/ci-repack/facilities/edit/';\r\n case BusinessAreaEnum.MetabolicFormula: return '/metabolic-formula/facilities/edit/';\r\n default: return '/admin/organizations/facilities/edit/';\r\n }\r\n }\r\n\r\n\topenChartModal(){\r\n\t\t// Set modal header using select drop down\r\n\t\tthis.facilityTypeName = this.facilityTypeSelect?.text;\r\n\t\tthis.modalService.open(this.infographicModal, { size: 'sm', animation: false });\r\n\t}\r\n}\r\n","
\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n
\r\n

\r\n This Facility is deactivated.

\r\n \r\n {{ model.isActive ? 'Deactivate' : 'Reactivate' }}\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n {{ model?.medicalDirectorLicense }}\r\n
\r\n\r\n
\r\n \r\n {{ model?.medicalDirectorExpDate }}\r\n
\r\n
\r\n\r\n
\r\n

Address

\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n {{ this.formGroup?.controls?.countyName?.value }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n

Shipping Address

\r\n
\r\n\r\n
\r\n \r\n \r\n {{ this.formGroup?.controls?.shipFacilityName?.value }}\r\n \r\n\r\n \r\n \r\n {{ this.formGroup?.controls?.shipSmartyAddress?.value?.formattedAddress }}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n\t
\r\n\t\t X \r\n\t\t
\r\n\t\t\tError!\r\n\t\t\tThe Reconciliation Counts Required setting cannot be changed while an inventory has pending reconciliations.\r\n\t\t\t
\r\n\t\t\tClick to go to\r\n\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n
\r\n\r\n\r\n
\r\n
{{facilityTypeName}}
\r\n \r\n
\r\n
\r\n \r\n
\r\n
","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class OrganizationUsersVm {\r\n\tid: number;\r\n\tname?: string;\r\n\temail?: string;\r\n\tphoneNumber?: string;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'id': new UntypedFormControl(0, [...(validators['id'] ?? []), ...[Validators.required]]),\r\n\t\t\t'name': new UntypedFormControl(null, [...(validators['name'] ?? []), ...[]]),\r\n\t\t\t'email': new UntypedFormControl(null, [...(validators['email'] ?? []), ...[]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['name', {\"orderId\":0,\"sortColumn\":\"name\",\"searchColumn\":\"name\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Name\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['email', {\"orderId\":1,\"sortColumn\":\"email\",\"searchColumn\":\"email\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Email\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['phoneNumber', {\"orderId\":2,\"sortColumn\":\"phoneNumber\",\"searchColumn\":\"phoneNumber\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Phone\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): OrganizationUsersVmFromFg {\r\n\t\treturn new OrganizationUsersVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class OrganizationUsersVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget id(): number {\r\n\t\treturn this.fg.get('id').value;\r\n\t}\r\n\tset id(val) {\r\n\t\tthis.fg.get('id').setValue(val);\r\n\t}\r\n\r\n\tget name(): string {\r\n\t\treturn this.fg.get('name').value;\r\n\t}\r\n\tset name(val) {\r\n\t\tthis.fg.get('name').setValue(val);\r\n\t}\r\n\r\n\tget email(): string {\r\n\t\treturn this.fg.get('email').value;\r\n\t}\r\n\tset email(val) {\r\n\t\tthis.fg.get('email').setValue(val);\r\n\t}\r\n\r\n\tget phoneNumber(): string {\r\n\t\treturn this.fg.get('phoneNumber').value;\r\n\t}\r\n\tset phoneNumber(val) {\r\n\t\tthis.fg.get('phoneNumber').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnInit, TemplateRef, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SelectItem } from '@pcg/pcg-shared/models/select-item';\r\n\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { DynamicFormService } from 'app/shared/form-elements/components/dynamic-form/dynamic-form.service';\r\nimport { OrganizationUsersVm } from 'app/shared/generated/Administration/Models/Organizations/OrganizationUsersVm';\r\nimport { EditUserVm } from 'app/shared/generated/Administration/Models/Users/EditUserVm';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\n\r\n@Component({\r\n selector: 'pcg-associated-users',\r\n templateUrl: './associated-users.component.html',\r\n styleUrls: ['./associated-users.component.scss'],\r\n standalone: false\r\n})\r\nexport class AssociatedUsersComponent implements OnInit {\r\n\r\n @ViewChild(TableComponent, { static: false }) table: TableComponent;\r\n @ViewChild('modalExistingUsersModal', { static: true }) modalContent: TemplateRef;\r\n\r\n @Input() businessArea: BusinessAreaEnum;\r\n @Input() orgId : number;\r\n @Input() facilityIds: number[] = [];\r\n\r\n formGroup = EditUserVm.Form;\r\n\tmodel = EditUserVm.GetModel(this.formGroup);\r\n allOrganizations: string[] = [];\r\n\tassociatedOrganizations: string[] = [];\r\n\torganizations: any[];\r\n\r\n canCreateUser = false;\r\n\tcanDeleteUser = false;\r\n\tcanEditUser = false;\r\n canAddUser = false;\r\n canEditOrganizations = false; \r\n isCreate = false;\r\n userId = 0;\r\n organizationId: number;\r\n newUser = \"\";\r\n\r\n columns = OrganizationUsersVm.ColumnDefs;\r\n params = {\r\n organizationId : 0\r\n , businessArea: null\r\n };\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute\r\n , public modalService: NgbModal\r\n , private security: SecurityService\r\n , private httpClient: HttpClient\r\n , private ms: SystemMessageService\r\n , private dynForm: DynamicFormService\r\n ) {\r\n this.canCreateUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ PermissionRole.Pharmacist ]\r\n ) \r\n || this.security.hasModuleAccess(\r\n [ \r\n BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canDeleteUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ PermissionRole.Pharmacist ]\r\n ) \r\n || this.security.hasModuleAccess(\r\n [\r\n BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canEditUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ PermissionRole.Pharmacist ]\r\n ) \r\n || this.security.hasModuleAccess(\r\n [ \r\n BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canAddUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ PermissionRole.SystemAdmin ]\r\n );\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setSecurity();\r\n this.params.organizationId = this.activatedRoute.snapshot.params['id'];\r\n this.newUser = \"/admin/users/user/edit/0?organizationId=\" + this.params.organizationId;\r\n if (\r\n this.businessArea !== null \r\n && this.businessArea !== undefined\r\n ) {\r\n this.params.businessArea = this.businessArea; \r\n this.newUser += \"&businessArea=\" + this.businessArea;\r\n }\r\n }\r\n \r\n reloadTable() { this.table.ajaxReload(); }\r\n\r\n setSecurity() {\r\n if (\r\n this.businessArea !== null \r\n && this.businessArea !== undefined\r\n ) {\r\n switch (this.businessArea) {\r\n case BusinessAreaEnum.MetabolicFormula:\r\n this.canEditOrganizations = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.MetabolicFormula ]\r\n , [ \r\n PermissionRole.Manager\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canEditUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.MetabolicFormula ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canCreateUser = this.canEditUser;\r\n break;\r\n case BusinessAreaEnum.CI:\r\n this.canEditOrganizations = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.CI ]\r\n , [\r\n PermissionRole.Manager\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canEditUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.CI ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canCreateUser = this.canEditUser;\r\n break;\r\n case BusinessAreaEnum.Admin:\r\n this.canEditOrganizations = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ \r\n PermissionRole.Manager\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canEditUser = this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [\r\n ...SecurityService.setMinRole(PermissionRole.Pharmacist)\r\n ]\r\n );\r\n this.canCreateUser = this.canEditUser;\r\n break;\r\n default: \r\n break;\r\n }\r\n } else {\r\n this.canEditOrganizations = this.security.hasModuleAccess(\r\n [\r\n BusinessAreaEnum.Admin\r\n , BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n ]\r\n , [\r\n PermissionRole.Manager\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n this.canEditUser = this.security.hasModuleAccess(\r\n [\r\n BusinessAreaEnum.Admin\r\n , BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n );\r\n\t\t this.canCreateUser = this.canEditUser;\r\n }\r\n }\r\n\r\n getEditUserLink(id: number) { return '/admin/users/user/edit/' + id; }\r\n addUserBtn() { this.modalService.open(this.modalContent, { animation: false, beforeDismiss: () => { return true; } }); }\r\n\r\n addExistingUser(userId: number, table: TableComponent) {\r\n this.httpClient.post(\r\n `api/administration/UserOrganization/AddExistingUser?userId=${userId}&organizationId=${this.params.organizationId}`\r\n , null\r\n ).subscribe((msg: SystemMessage) => { \r\n if (msg.isSuccessful) { \r\n table.ajaxReload(); \r\n this.reloadTable();\r\n } \r\n }); \r\n }\r\n\r\n createUser() {\r\n this.organizationId = parseInt(this.activatedRoute.snapshot.paramMap.get('id'), 10);\r\n this.setSecurity();\r\n\r\n this.httpClient.get(`api/Administration/Users/GetUser/0`)\r\n .subscribe((vm: EditUserVm) => {\r\n this.formGroup = this.dynForm.updateFormGroupFields(this.formGroup, vm.fields);\r\n this.formGroup.patchValue(vm);\r\n this.populateOrganizations();\r\n \r\n this.formGroup.controls[\"isActive\"].setValue(vm.isActive);\r\n this.formGroup.controls[\"inactivityTimeout\"].setValue(false);\r\n this.formGroup.controls[\"isInternalBphpUser\"].setValue(false);\r\n this.formGroup.controls[\"updateOrgs\"].setValue(true);\r\n this.formGroup.controls[\"updateFacilities\"].setValue(true);\r\n if (this.businessArea !== null && this.businessArea !== undefined) {\r\n this.formGroup.controls[\"businessArea\"].setValue(this.businessArea);\r\n }\r\n this.formGroup.controls[\"organizationIds\"].setValue([this.organizationId]);\r\n this.formGroup.controls[\"facilityIds\"].setValue(this.facilityIds); \r\n });\r\n\r\n this.isCreate = true; \r\n }\r\n\r\n populateOrganizations() {\r\n var userId = null;\r\n this.httpClient.get(`api/Select/Organizations?userId=${userId}`).subscribe((items: SelectItem[]) => {\r\n this.organizations = items;\r\n this.allOrganizations = items.reduce((accum, current) => {\r\n accum.push(current.text);\r\n return accum;\r\n }, []);\r\n if (this.formGroup.value.organizations.length > 0) {\r\n this.associatedOrganizations = this.formGroup.value.organizations.filter((i: string) => items.find(o => o.text === i));\r\n } else {\r\n this.associatedOrganizations = this.allOrganizations;\r\n }\r\n });\r\n }\r\n\r\n handleOrganizations() {\r\n this.formGroup.controls.organization.setValue(this.associatedOrganizations);\r\n this.formGroup.controls.organizationIds.setValue(\r\n this.organizations.reduce((accum, current) => {\r\n if (this.associatedOrganizations?.includes(current.text)) { accum.push(current.value); }\r\n return accum;\r\n }, [])\r\n );\r\n }\r\n\r\n saveUser(msg: SystemMessage) {\r\n msg.message= msg.message + ` \\nPlease set the user's module access to associate the user to the organization's facilities.`;\r\n msg.link = `Click Here`\r\n this.ms.setSystemMessage(msg.message, 'warning', 60000, msg.link);\r\n \r\n if (msg.value) {\r\n this.isCreate = false;\r\n this.reloadTable();\r\n }\r\n }\r\n\r\n cancelAdd() { this.isCreate = false; }\r\n}\r\n","\r\n\t\r\n\t\tUsers in this list are granted access to all facilities within the organization, provided that they possess module access to at least \r\n\t\tone of the business areas assigned to those facilities.\r\n\t\r\n\t\r\n\t
\r\n\t\t@if (canCreateUser) {\r\n\t\t\t
\r\n\t\t\t\tCreate New User\r\n\t\t\t
\r\n\t\t}\r\n\t\t@if (canAddUser) {\r\n\t\t\t
\r\n\t\t\t\tAdd Existing User\r\n\t\t\t
\r\n\t\t}\r\n\t
\r\n\r\n \r\n\r\n \r\n {{ columns.get('name').displayName }}\r\n \r\n\t\t\t\t@if (canEditUser) { {{ row.name }} }\r\n\t\t\t\t@else { {{ row.name }} }\r\n \r\n \r\n\r\n \r\n {{ columns.get('email').displayName }}\r\n {{ row.email }}\r\n \r\n\r\n \r\n {{ columns.get('phoneNumber').displayName }}\r\n {{ row.phoneNumber }}\r\n \r\n\r\n \r\n
\r\n\r\n\r\n\t
\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\t\t
\r\n\t\t\t

Create User

\r\n\t\t
\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t@if (\r\n\t\t\tcanEditOrganizations \r\n\t\t\t&& userId > 0\r\n\t\t) {\r\n\t\t\t
\r\n\t\t\t\t

\r\n\t\t\t\t

Organizations

\r\n\t\t\t\t
\r\n\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t}\r\n\t\t@if (\r\n\t\t\t!canEditOrganizations\r\n\t\t\t|| userId === 0\r\n\t\t) {\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t}\r\n\r\n\t\t
\r\n\t\t\t
\r\n\t\t\tCancel\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n
\r\n\r\n\r\n\t
\r\n\t\t\r\n\r\n\t\t\r\n\t
\r\n
","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\nimport { GenericFilesVm, GenericFilesVmFromFg } from '../../../Models/GenericFilesVm';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class MedicalDirectorVm {\r\n\tmedicalDirectorId: number;\r\n\tfullName?: string;\r\n\tlicenseNumber?: string;\r\n\texpirationDate?: Date;\r\n\texpirationDateStr?: string;\r\n\tlastUpdatedDate?: Date;\r\n\tlastUpdatedDateStr?: string;\r\n\tlastUpdatedUserId?: number;\r\n\tlastUpdatedBy?: string;\r\n\tpfsId?: number;\r\n\tfriendlyId?: string;\r\n\tuploadFiles?: any;\r\n\tmedicalDirectorFiles?: GenericFilesVm[];\r\n\tlicenseFileName?: string;\r\n\tactions?: string;\r\n\tactionsSelected?: boolean;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'medicalDirectorId': new UntypedFormControl(0, [...(validators['medicalDirectorId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'fullName': new UntypedFormControl(null, [...(validators['fullName'] ?? []), ...[Validators.required, Validators.maxLength(256)]]),\r\n\t\t\t'licenseNumber': new UntypedFormControl(null, [...(validators['licenseNumber'] ?? []), ...[Validators.required, Validators.maxLength(256)]]),\r\n\t\t\t'expirationDate': new UntypedFormControl(null, [...(validators['expirationDate'] ?? []), ...[Validators.required]]),\r\n\t\t\t'expirationDateStr': new UntypedFormControl(null, [...(validators['expirationDateStr'] ?? []), ...[]]),\r\n\t\t\t'lastUpdatedDate': new UntypedFormControl(null, [...(validators['lastUpdatedDate'] ?? []), ...[]]),\r\n\t\t\t'lastUpdatedDateStr': new UntypedFormControl(null, [...(validators['lastUpdatedDateStr'] ?? []), ...[]]),\r\n\t\t\t'lastUpdatedUserId': new UntypedFormControl(null, [...(validators['lastUpdatedUserId'] ?? []), ...[]]),\r\n\t\t\t'lastUpdatedBy': new UntypedFormControl(null, [...(validators['lastUpdatedBy'] ?? []), ...[]]),\r\n\t\t\t'pfsId': new UntypedFormControl(null, [...(validators['pfsId'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'uploadFiles': new UntypedFormControl([], [...(validators['uploadFiles'] ?? []), ...[]]),\r\n\t\t\t'medicalDirectorFiles': new UntypedFormArray([]),\r\n\t\t\t'licenseFileName': new UntypedFormControl(null, [...(validators['licenseFileName'] ?? []), ...[]]),\r\n\t\t\t'actions': new UntypedFormControl(null, [...(validators['actions'] ?? []), ...[]]),\r\n\t\t\t'actionsSelected': new UntypedFormControl(null, [...(validators['actionsSelected'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['actions', {\"orderId\":0,\"sortColumn\":\"actions\",\"searchColumn\":\"actions\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Actions\",\"isVisible\":true,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['fullName', {\"orderId\":1,\"sortColumn\":\"fullName\",\"searchColumn\":\"fullName\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Name\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['licenseNumber', {\"orderId\":2,\"sortColumn\":\"licenseNumber\",\"searchColumn\":\"licenseNumber\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"License #\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['expirationDateStr', {\"orderId\":3,\"sortColumn\":\"expirationDate\",\"searchColumn\":\"expirationDateStr\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Expiration Date\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['licenseFileName', {\"orderId\":4,\"sortColumn\":\"licenseFileName\",\"searchColumn\":\"licenseFileName\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"License Upload\",\"isVisible\":true,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['lastUpdatedDateStr', {\"orderId\":5,\"sortColumn\":\"lastUpdatedDate\",\"searchColumn\":\"lastUpdatedDateStr\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Updated Date\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['lastUpdatedBy', {\"orderId\":6,\"sortColumn\":\"lastUpdatedBy\",\"searchColumn\":\"lastUpdatedBy\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Updated By\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): MedicalDirectorVmFromFg {\r\n\t\treturn new MedicalDirectorVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class MedicalDirectorVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget medicalDirectorId(): number {\r\n\t\treturn this.fg.get('medicalDirectorId').value;\r\n\t}\r\n\tset medicalDirectorId(val) {\r\n\t\tthis.fg.get('medicalDirectorId').setValue(val);\r\n\t}\r\n\r\n\tget fullName(): string {\r\n\t\treturn this.fg.get('fullName').value;\r\n\t}\r\n\tset fullName(val) {\r\n\t\tthis.fg.get('fullName').setValue(val);\r\n\t}\r\n\r\n\tget licenseNumber(): string {\r\n\t\treturn this.fg.get('licenseNumber').value;\r\n\t}\r\n\tset licenseNumber(val) {\r\n\t\tthis.fg.get('licenseNumber').setValue(val);\r\n\t}\r\n\r\n\tget expirationDate(): Date {\r\n\t\treturn this.fg.get('expirationDate').value;\r\n\t}\r\n\tset expirationDate(val) {\r\n\t\tthis.fg.get('expirationDate').setValue(val);\r\n\t}\r\n\r\n\tget expirationDateStr(): string {\r\n\t\treturn this.fg.get('expirationDateStr').value;\r\n\t}\r\n\tset expirationDateStr(val) {\r\n\t\tthis.fg.get('expirationDateStr').setValue(val);\r\n\t}\r\n\r\n\tget lastUpdatedDate(): Date {\r\n\t\treturn this.fg.get('lastUpdatedDate').value;\r\n\t}\r\n\tset lastUpdatedDate(val) {\r\n\t\tthis.fg.get('lastUpdatedDate').setValue(val);\r\n\t}\r\n\r\n\tget lastUpdatedDateStr(): string {\r\n\t\treturn this.fg.get('lastUpdatedDateStr').value;\r\n\t}\r\n\tset lastUpdatedDateStr(val) {\r\n\t\tthis.fg.get('lastUpdatedDateStr').setValue(val);\r\n\t}\r\n\r\n\tget lastUpdatedUserId(): number {\r\n\t\treturn this.fg.get('lastUpdatedUserId').value;\r\n\t}\r\n\tset lastUpdatedUserId(val) {\r\n\t\tthis.fg.get('lastUpdatedUserId').setValue(val);\r\n\t}\r\n\r\n\tget lastUpdatedBy(): string {\r\n\t\treturn this.fg.get('lastUpdatedBy').value;\r\n\t}\r\n\tset lastUpdatedBy(val) {\r\n\t\tthis.fg.get('lastUpdatedBy').setValue(val);\r\n\t}\r\n\r\n\tget pfsId(): number {\r\n\t\treturn this.fg.get('pfsId').value;\r\n\t}\r\n\tset pfsId(val) {\r\n\t\tthis.fg.get('pfsId').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget licenseFileName(): string {\r\n\t\treturn this.fg.get('licenseFileName').value;\r\n\t}\r\n\tset licenseFileName(val) {\r\n\t\tthis.fg.get('licenseFileName').setValue(val);\r\n\t}\r\n\r\n\tget actions(): string {\r\n\t\treturn this.fg.get('actions').value;\r\n\t}\r\n\tset actions(val) {\r\n\t\tthis.fg.get('actions').setValue(val);\r\n\t}\r\n\r\n\tget actionsSelected(): boolean {\r\n\t\treturn this.fg.get('actionsSelected').value;\r\n\t}\r\n\tset actionsSelected(val) {\r\n\t\tthis.fg.get('actionsSelected').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class EditOrganizationVm {\r\n\torganizationId: number;\r\n\torganizationName?: string;\r\n\tcountyId?: number;\r\n\tcountyName?: string;\r\n\tsmartyAddress?: any;\r\n\tsmartyAddressString?: string;\r\n\thasSmarty: boolean;\r\n\tstateAbr?: string;\r\n\tphoneNumber?: string;\r\n\tisActive: boolean;\r\n\tisSameAddress: boolean;\r\n\tshipOrganizationName?: string;\r\n\tshipSmartyAddress?: any;\r\n\tshipSmartyAddressString?: string;\r\n\thasShipSmarty: boolean;\r\n\tshipStateAbr?: string;\r\n\tisShipAddressValidated: boolean;\r\n\tfriendlyId?: string;\r\n\tgln?: string;\r\n\tmedicalDirectorId?: number;\r\n\tmedicalDirectorName?: string;\r\n\tmedicalDirectorLicense?: string;\r\n\tmedicalDirectorExpDate?: string;\r\n\tisSingleFacility: boolean;\r\n\tfacilityIdentifier?: string;\r\n\tdauCode?: string;\r\n\tfacilityIds?: number[];\r\n\tloginType?: string;\r\n\tloginTypeEnum?: any;\r\n\tssoType?: string;\r\n\tssoTypeEnum?: any;\r\n\tentraIdentifierUrl?: string;\r\n\tentraLoginUrl?: string;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'organizationId': new UntypedFormControl(0, [...(validators['organizationId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'organizationName': new UntypedFormControl(null, [...(validators['organizationName'] ?? []), ...[Validators.required, Validators.maxLength(100)]]),\r\n\t\t\t'countyId': new UntypedFormControl(null, [...(validators['countyId'] ?? []), ...[]]),\r\n\t\t\t'countyName': new UntypedFormControl(null, [...(validators['countyName'] ?? []), ...[]]),\r\n\t\t\t'smartyAddress': new UntypedFormControl(null, [...(validators['smartyAddress'] ?? []), ...[Validators.required]]),\r\n\t\t\t'smartyAddressString': new UntypedFormControl(null, [...(validators['smartyAddressString'] ?? []), ...[]]),\r\n\t\t\t'hasSmarty': new UntypedFormControl(false, [...(validators['hasSmarty'] ?? []), ...[]]),\r\n\t\t\t'stateAbr': new UntypedFormControl(null, [...(validators['stateAbr'] ?? []), ...[]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[Validators.required, Validators.minLength(10)]]),\r\n\t\t\t'isActive': new UntypedFormControl(false, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'isSameAddress': new UntypedFormControl(false, [...(validators['isSameAddress'] ?? []), ...[]]),\r\n\t\t\t'shipOrganizationName': new UntypedFormControl(null, [...(validators['shipOrganizationName'] ?? []), ...[Validators.required, Validators.maxLength(100)]]),\r\n\t\t\t'shipSmartyAddress': new UntypedFormControl(null, [...(validators['shipSmartyAddress'] ?? []), ...[Validators.required]]),\r\n\t\t\t'shipSmartyAddressString': new UntypedFormControl(null, [...(validators['shipSmartyAddressString'] ?? []), ...[]]),\r\n\t\t\t'hasShipSmarty': new UntypedFormControl(false, [...(validators['hasShipSmarty'] ?? []), ...[]]),\r\n\t\t\t'shipStateAbr': new UntypedFormControl(null, [...(validators['shipStateAbr'] ?? []), ...[]]),\r\n\t\t\t'isShipAddressValidated': new UntypedFormControl(false, [...(validators['isShipAddressValidated'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'gln': new UntypedFormControl(null, [...(validators['gln'] ?? []), ...[Validators.pattern(\"^[A-Za-z0-9 ]*\"), Validators.maxLength(13)]]),\r\n\t\t\t'medicalDirectorId': new UntypedFormControl(null, [...(validators['medicalDirectorId'] ?? []), ...[]]),\r\n\t\t\t'medicalDirectorName': new UntypedFormControl(null, [...(validators['medicalDirectorName'] ?? []), ...[]]),\r\n\t\t\t'medicalDirectorLicense': new UntypedFormControl(null, [...(validators['medicalDirectorLicense'] ?? []), ...[]]),\r\n\t\t\t'medicalDirectorExpDate': new UntypedFormControl(null, [...(validators['medicalDirectorExpDate'] ?? []), ...[]]),\r\n\t\t\t'isSingleFacility': new UntypedFormControl(false, [...(validators['isSingleFacility'] ?? []), ...[]]),\r\n\t\t\t'facilityIdentifier': new UntypedFormControl(null, [...(validators['facilityIdentifier'] ?? []), ...[Validators.maxLength(20)]]),\r\n\t\t\t'dauCode': new UntypedFormControl(null, [...(validators['dauCode'] ?? []), ...[Validators.maxLength(6)]]),\r\n\t\t\t'facilityIds': new UntypedFormControl([], [...(validators['facilityIds'] ?? []), ...[]]),\r\n\t\t\t'loginType': new UntypedFormControl(null, [...(validators['loginType'] ?? []), ...[]]),\r\n\t\t\t'loginTypeEnum': new UntypedFormControl('', [...(validators['loginTypeEnum'] ?? []), ...[Validators.required]]),\r\n\t\t\t'ssoType': new UntypedFormControl(null, [...(validators['ssoType'] ?? []), ...[]]),\r\n\t\t\t'ssoTypeEnum': new UntypedFormControl(null, [...(validators['ssoTypeEnum'] ?? []), ...[]]),\r\n\t\t\t'entraIdentifierUrl': new UntypedFormControl(null, [...(validators['entraIdentifierUrl'] ?? []), ...[Validators.maxLength(500)]]),\r\n\t\t\t'entraLoginUrl': new UntypedFormControl(null, [...(validators['entraLoginUrl'] ?? []), ...[Validators.maxLength(500)]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): EditOrganizationVmFromFg {\r\n\t\treturn new EditOrganizationVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class EditOrganizationVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget organizationId(): number {\r\n\t\treturn this.fg.get('organizationId').value;\r\n\t}\r\n\tset organizationId(val) {\r\n\t\tthis.fg.get('organizationId').setValue(val);\r\n\t}\r\n\r\n\tget organizationName(): string {\r\n\t\treturn this.fg.get('organizationName').value;\r\n\t}\r\n\tset organizationName(val) {\r\n\t\tthis.fg.get('organizationName').setValue(val);\r\n\t}\r\n\r\n\tget countyId(): number {\r\n\t\treturn this.fg.get('countyId').value;\r\n\t}\r\n\tset countyId(val) {\r\n\t\tthis.fg.get('countyId').setValue(val);\r\n\t}\r\n\r\n\tget countyName(): string {\r\n\t\treturn this.fg.get('countyName').value;\r\n\t}\r\n\tset countyName(val) {\r\n\t\tthis.fg.get('countyName').setValue(val);\r\n\t}\r\n\r\n\tget smartyAddress(): any {\r\n\t\treturn this.fg.get('smartyAddress').value;\r\n\t}\r\n\tset smartyAddress(val) {\r\n\t\tthis.fg.get('smartyAddress').setValue(val);\r\n\t}\r\n\r\n\tget smartyAddressString(): string {\r\n\t\treturn this.fg.get('smartyAddressString').value;\r\n\t}\r\n\tset smartyAddressString(val) {\r\n\t\tthis.fg.get('smartyAddressString').setValue(val);\r\n\t}\r\n\r\n\tget hasSmarty(): boolean {\r\n\t\treturn this.fg.get('hasSmarty').value;\r\n\t}\r\n\tset hasSmarty(val) {\r\n\t\tthis.fg.get('hasSmarty').setValue(val);\r\n\t}\r\n\r\n\tget stateAbr(): string {\r\n\t\treturn this.fg.get('stateAbr').value;\r\n\t}\r\n\tset stateAbr(val) {\r\n\t\tthis.fg.get('stateAbr').setValue(val);\r\n\t}\r\n\r\n\tget phoneNumber(): string {\r\n\t\treturn this.fg.get('phoneNumber').value;\r\n\t}\r\n\tset phoneNumber(val) {\r\n\t\tthis.fg.get('phoneNumber').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): boolean {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget isSameAddress(): boolean {\r\n\t\treturn this.fg.get('isSameAddress').value;\r\n\t}\r\n\tset isSameAddress(val) {\r\n\t\tthis.fg.get('isSameAddress').setValue(val);\r\n\t}\r\n\r\n\tget shipOrganizationName(): string {\r\n\t\treturn this.fg.get('shipOrganizationName').value;\r\n\t}\r\n\tset shipOrganizationName(val) {\r\n\t\tthis.fg.get('shipOrganizationName').setValue(val);\r\n\t}\r\n\r\n\tget shipSmartyAddress(): any {\r\n\t\treturn this.fg.get('shipSmartyAddress').value;\r\n\t}\r\n\tset shipSmartyAddress(val) {\r\n\t\tthis.fg.get('shipSmartyAddress').setValue(val);\r\n\t}\r\n\r\n\tget shipSmartyAddressString(): string {\r\n\t\treturn this.fg.get('shipSmartyAddressString').value;\r\n\t}\r\n\tset shipSmartyAddressString(val) {\r\n\t\tthis.fg.get('shipSmartyAddressString').setValue(val);\r\n\t}\r\n\r\n\tget hasShipSmarty(): boolean {\r\n\t\treturn this.fg.get('hasShipSmarty').value;\r\n\t}\r\n\tset hasShipSmarty(val) {\r\n\t\tthis.fg.get('hasShipSmarty').setValue(val);\r\n\t}\r\n\r\n\tget shipStateAbr(): string {\r\n\t\treturn this.fg.get('shipStateAbr').value;\r\n\t}\r\n\tset shipStateAbr(val) {\r\n\t\tthis.fg.get('shipStateAbr').setValue(val);\r\n\t}\r\n\r\n\tget isShipAddressValidated(): boolean {\r\n\t\treturn this.fg.get('isShipAddressValidated').value;\r\n\t}\r\n\tset isShipAddressValidated(val) {\r\n\t\tthis.fg.get('isShipAddressValidated').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget gln(): string {\r\n\t\treturn this.fg.get('gln').value;\r\n\t}\r\n\tset gln(val) {\r\n\t\tthis.fg.get('gln').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorId(): number {\r\n\t\treturn this.fg.get('medicalDirectorId').value;\r\n\t}\r\n\tset medicalDirectorId(val) {\r\n\t\tthis.fg.get('medicalDirectorId').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorName(): string {\r\n\t\treturn this.fg.get('medicalDirectorName').value;\r\n\t}\r\n\tset medicalDirectorName(val) {\r\n\t\tthis.fg.get('medicalDirectorName').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorLicense(): string {\r\n\t\treturn this.fg.get('medicalDirectorLicense').value;\r\n\t}\r\n\tset medicalDirectorLicense(val) {\r\n\t\tthis.fg.get('medicalDirectorLicense').setValue(val);\r\n\t}\r\n\r\n\tget medicalDirectorExpDate(): string {\r\n\t\treturn this.fg.get('medicalDirectorExpDate').value;\r\n\t}\r\n\tset medicalDirectorExpDate(val) {\r\n\t\tthis.fg.get('medicalDirectorExpDate').setValue(val);\r\n\t}\r\n\r\n\tget isSingleFacility(): boolean {\r\n\t\treturn this.fg.get('isSingleFacility').value;\r\n\t}\r\n\tset isSingleFacility(val) {\r\n\t\tthis.fg.get('isSingleFacility').setValue(val);\r\n\t}\r\n\r\n\tget facilityIdentifier(): string {\r\n\t\treturn this.fg.get('facilityIdentifier').value;\r\n\t}\r\n\tset facilityIdentifier(val) {\r\n\t\tthis.fg.get('facilityIdentifier').setValue(val);\r\n\t}\r\n\r\n\tget dauCode(): string {\r\n\t\treturn this.fg.get('dauCode').value;\r\n\t}\r\n\tset dauCode(val) {\r\n\t\tthis.fg.get('dauCode').setValue(val);\r\n\t}\r\n\r\n\tget loginType(): string {\r\n\t\treturn this.fg.get('loginType').value;\r\n\t}\r\n\tset loginType(val) {\r\n\t\tthis.fg.get('loginType').setValue(val);\r\n\t}\r\n\r\n\tget loginTypeEnum(): any {\r\n\t\treturn this.fg.get('loginTypeEnum').value;\r\n\t}\r\n\tset loginTypeEnum(val) {\r\n\t\tthis.fg.get('loginTypeEnum').setValue(val);\r\n\t}\r\n\r\n\tget ssoType(): string {\r\n\t\treturn this.fg.get('ssoType').value;\r\n\t}\r\n\tset ssoType(val) {\r\n\t\tthis.fg.get('ssoType').setValue(val);\r\n\t}\r\n\r\n\tget ssoTypeEnum(): any {\r\n\t\treturn this.fg.get('ssoTypeEnum').value;\r\n\t}\r\n\tset ssoTypeEnum(val) {\r\n\t\tthis.fg.get('ssoTypeEnum').setValue(val);\r\n\t}\r\n\r\n\tget entraIdentifierUrl(): string {\r\n\t\treturn this.fg.get('entraIdentifierUrl').value;\r\n\t}\r\n\tset entraIdentifierUrl(val) {\r\n\t\tthis.fg.get('entraIdentifierUrl').setValue(val);\r\n\t}\r\n\r\n\tget entraLoginUrl(): string {\r\n\t\treturn this.fg.get('entraLoginUrl').value;\r\n\t}\r\n\tset entraLoginUrl(val) {\r\n\t\tthis.fg.get('entraLoginUrl').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class OrganizationFacilityListVm {\r\n\tfacilityId: number;\r\n\tfacilityName?: string;\r\n\tfacilityIdentifier?: string;\r\n\tcity?: string;\r\n\tcounty?: string;\r\n\tisActive?: string;\r\n\tcanDelete?: boolean;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'facilityId': new UntypedFormControl(0, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityName': new UntypedFormControl(null, [...(validators['facilityName'] ?? []), ...[]]),\r\n\t\t\t'facilityIdentifier': new UntypedFormControl(null, [...(validators['facilityIdentifier'] ?? []), ...[]]),\r\n\t\t\t'city': new UntypedFormControl(null, [...(validators['city'] ?? []), ...[]]),\r\n\t\t\t'county': new UntypedFormControl(null, [...(validators['county'] ?? []), ...[]]),\r\n\t\t\t'isActive': new UntypedFormControl(null, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'canDelete': new UntypedFormControl(null, [...(validators['canDelete'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['facilityId', {\"orderId\":0,\"sortColumn\":\"facilityId\",\"searchColumn\":\"facilityId\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Navigate to Edit Facility\",\"isVisible\":true,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['facilityName', {\"orderId\":1,\"sortColumn\":\"facilityName\",\"searchColumn\":\"facilityName\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Facility\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['facilityIdentifier', {\"orderId\":2,\"sortColumn\":\"facilityIdentifier\",\"searchColumn\":\"facilityIdentifier\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Identifier\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['city', {\"orderId\":3,\"sortColumn\":\"city\",\"searchColumn\":\"city\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"City\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['county', {\"orderId\":4,\"sortColumn\":\"county\",\"searchColumn\":\"county\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"County\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['isActive', {\"orderId\":5,\"sortColumn\":\"isActive\",\"searchColumn\":\"isActive\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Is Active?\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['canDelete', {\"orderId\":6,\"sortColumn\":\"canDelete\",\"searchColumn\":\"canDelete\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Delete\",\"isVisible\":false,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): OrganizationFacilityListVmFromFg {\r\n\t\treturn new OrganizationFacilityListVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class OrganizationFacilityListVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget facilityName(): string {\r\n\t\treturn this.fg.get('facilityName').value;\r\n\t}\r\n\tset facilityName(val) {\r\n\t\tthis.fg.get('facilityName').setValue(val);\r\n\t}\r\n\r\n\tget facilityIdentifier(): string {\r\n\t\treturn this.fg.get('facilityIdentifier').value;\r\n\t}\r\n\tset facilityIdentifier(val) {\r\n\t\tthis.fg.get('facilityIdentifier').setValue(val);\r\n\t}\r\n\r\n\tget city(): string {\r\n\t\treturn this.fg.get('city').value;\r\n\t}\r\n\tset city(val) {\r\n\t\tthis.fg.get('city').setValue(val);\r\n\t}\r\n\r\n\tget county(): string {\r\n\t\treturn this.fg.get('county').value;\r\n\t}\r\n\tset county(val) {\r\n\t\tthis.fg.get('county').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): string {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget canDelete(): boolean {\r\n\t\treturn this.fg.get('canDelete').value;\r\n\t}\r\n\tset canDelete(val) {\r\n\t\tthis.fg.get('canDelete').setValue(val);\r\n\t}\r\n}\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class SysInvInventoryVm {\r\n\tsysInvInventoryId: number;\r\n\tfacilityId: number;\r\n\torganizationId: number;\r\n\tname?: string;\r\n\ttype?: any;\r\n\tprogramIds?: number[];\r\n\tprograms?: string[];\r\n\tactive: boolean;\r\n\tcanDelete?: boolean;\r\n\tfriendlyId?: string;\r\n\tcreatedByUserStr?: string;\r\n\tcreatedByUserId?: number;\r\n\tcreatedDate?: Date;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'sysInvInventoryId': new UntypedFormControl(0, [...(validators['sysInvInventoryId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityId': new UntypedFormControl(0, [...(validators['facilityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'organizationId': new UntypedFormControl(0, [...(validators['organizationId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'name': new UntypedFormControl(null, [...(validators['name'] ?? []), ...[Validators.required]]),\r\n\t\t\t'type': new UntypedFormControl('', [...(validators['type'] ?? []), ...[Validators.required]]),\r\n\t\t\t'programIds': new UntypedFormControl([], [...(validators['programIds'] ?? []), ...[Validators.required]]),\r\n\t\t\t'programs': new UntypedFormControl([], [...(validators['programs'] ?? []), ...[]]),\r\n\t\t\t'active': new UntypedFormControl(false, [...(validators['active'] ?? []), ...[]]),\r\n\t\t\t'canDelete': new UntypedFormControl(null, [...(validators['canDelete'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'createdByUserStr': new UntypedFormControl(null, [...(validators['createdByUserStr'] ?? []), ...[]]),\r\n\t\t\t'createdByUserId': new UntypedFormControl(null, [...(validators['createdByUserId'] ?? []), ...[]]),\r\n\t\t\t'createdDate': new UntypedFormControl(null, [...(validators['createdDate'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['name', {\"orderId\":0,\"sortColumn\":\"name\",\"searchColumn\":\"name\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Inventory\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['type', {\"orderId\":1,\"sortColumn\":\"type\",\"searchColumn\":\"type\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Type\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['active', {\"orderId\":2,\"sortColumn\":\"active\",\"searchColumn\":\"active\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Is Active?\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['canDelete', {\"orderId\":3,\"sortColumn\":\"canDelete\",\"searchColumn\":\"canDelete\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Delete\",\"isVisible\":false,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): SysInvInventoryVmFromFg {\r\n\t\treturn new SysInvInventoryVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class SysInvInventoryVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget sysInvInventoryId(): number {\r\n\t\treturn this.fg.get('sysInvInventoryId').value;\r\n\t}\r\n\tset sysInvInventoryId(val) {\r\n\t\tthis.fg.get('sysInvInventoryId').setValue(val);\r\n\t}\r\n\r\n\tget facilityId(): number {\r\n\t\treturn this.fg.get('facilityId').value;\r\n\t}\r\n\tset facilityId(val) {\r\n\t\tthis.fg.get('facilityId').setValue(val);\r\n\t}\r\n\r\n\tget organizationId(): number {\r\n\t\treturn this.fg.get('organizationId').value;\r\n\t}\r\n\tset organizationId(val) {\r\n\t\tthis.fg.get('organizationId').setValue(val);\r\n\t}\r\n\r\n\tget name(): string {\r\n\t\treturn this.fg.get('name').value;\r\n\t}\r\n\tset name(val) {\r\n\t\tthis.fg.get('name').setValue(val);\r\n\t}\r\n\r\n\tget type(): any {\r\n\t\treturn this.fg.get('type').value;\r\n\t}\r\n\tset type(val) {\r\n\t\tthis.fg.get('type').setValue(val);\r\n\t}\r\n\r\n\tget active(): boolean {\r\n\t\treturn this.fg.get('active').value;\r\n\t}\r\n\tset active(val) {\r\n\t\tthis.fg.get('active').setValue(val);\r\n\t}\r\n\r\n\tget canDelete(): boolean {\r\n\t\treturn this.fg.get('canDelete').value;\r\n\t}\r\n\tset canDelete(val) {\r\n\t\tthis.fg.get('canDelete').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget createdByUserStr(): string {\r\n\t\treturn this.fg.get('createdByUserStr').value;\r\n\t}\r\n\tset createdByUserStr(val) {\r\n\t\tthis.fg.get('createdByUserStr').setValue(val);\r\n\t}\r\n\r\n\tget createdByUserId(): number {\r\n\t\treturn this.fg.get('createdByUserId').value;\r\n\t}\r\n\tset createdByUserId(val) {\r\n\t\tthis.fg.get('createdByUserId').setValue(val);\r\n\t}\r\n\r\n\tget createdDate(): Date {\r\n\t\treturn this.fg.get('createdDate').value;\r\n\t}\r\n\tset createdDate(val) {\r\n\t\tthis.fg.get('createdDate').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { SystemMessage } from \"app/core/system-message/system-message-service\";\r\nimport { FacilityInventoryVm } from \"app/shared/generated/Administration/Models/Facilities/Inventories/FacilityInventoryVm\";\r\nimport { IFacilityInventoryService } from \"./facility-inventory.interface.service\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n })\r\n export class FacilityInventoryService implements IFacilityInventoryService {\r\n \r\n constructor(private http: HttpClient) {\r\n \r\n }\r\n \r\n getInventory = (id: number) => \r\n this.http.get(`api/Facility/Inventory/GetInventory?inventoryId=${id}`);\r\n \r\n activateDeactivate = (id: number) => \r\n this.http.get(`api/Facility/Inventory/ActivateDeactivate?inventoryId=${id}`);\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnInit, TemplateRef, ViewChild, signal} from '@angular/core';\r\nimport { faPlus, faXmark } from '@fortawesome/pro-regular-svg-icons';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { InventoryTypeEnum } from 'app/core/enums/generated/InventoryTypeEnum';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { FacilityInventoryService } from 'app/shared/facilities/facility-inventories/services/facility-inventory.service';\r\nimport { EditOrganizationFacilityVm } from 'app/shared/generated/Administration/Models/Organizations/EditOrganizationFacilityVm';\r\nimport { SysInvInventoryVm } from 'app/shared/generated/SysInv/Models/SysInvInventoryVm';\r\nimport { SelectItem } from 'app/shared/models/select-item';\r\nimport { UserStateService } from 'app/state/user/user-state.service';\r\n\r\n@Component({\r\n selector: 'pcg-org-facility-inventories',\r\n templateUrl: './org-facility-inventories.component.html',\r\n styleUrls: ['./org-facility-inventories.component.scss'],\r\n standalone: false\r\n})\r\nexport class OrgFacilityInventoriesComponent implements OnInit {\r\n \r\n @Input() facilityId = 0;\r\n @Input() organizationId = 0;\r\n\r\n @ViewChild(\"modalProgram\") modalProgram: TemplateRef;\r\n\r\n faIcon = { faPlus, faXmark };\r\n\r\n showEditInventory = false;\r\n showInactiveInventories = false;\r\n inventoryList: SysInvInventoryVm[] = [];\r\n activeInventoryList: SysInvInventoryVm[] = [];\r\n inactiveInventoryList: SysInvInventoryVm[] = [];\r\n inv : SysInvInventoryVm;\r\n fg = SysInvInventoryVm.Form;\r\n model$: Observable;\r\n types: SelectItem[];\r\n allPrograms: boolean = false;\r\n orgFacility: EditOrganizationFacilityVm;\r\n\r\n constructor(\r\n private http: HttpClient, \r\n private sm: SystemMessageService, \r\n public fi: FacilityInventoryService, \r\n private userState: UserStateService,\r\n public modalService: NgbModal\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.getOrgFacility();\r\n this.setSelectItemTypes();\r\n this.getInventoryList();\r\n }\r\n\r\n getOrgFacility() {\r\n this.http.get(`api/Administration/Organization/GetOrganizationFacility/?id=${this.facilityId}&organizationId=${this.organizationId}`)\r\n\t\t\t.subscribe((vm: EditOrganizationFacilityVm) => {\r\n this.orgFacility = vm;\r\n });\r\n }\r\n\r\n getInventoryList() {\r\n this.http.get(`api/Facility/Inventory/GetInventoryList?facilityId=${this.facilityId}`)\r\n .subscribe((list: SysInvInventoryVm[]) => {\r\n this.updateInventoryLists(list);\r\n });\r\n }\r\n\r\n editInventory(id: number) {\r\n this.showEditInventory = !this.showEditInventory;\r\n if (id == 0) {\r\n let newModel = new SysInvInventoryVm();\r\n newModel.sysInvInventoryId = 0;\r\n newModel.facilityId = this.facilityId;\r\n newModel.organizationId = this.organizationId;\r\n this.fg.patchValue(newModel)\r\n } else {\r\n let model = this.inventoryList.find(o => o.sysInvInventoryId == id);\r\n this.fg.patchValue(model)\r\n }\r\n if(this.orgFacility.facilityTypeId != null) this.fg.get('programIds')?.disable();\r\n }\r\n\r\n parseEnum = (val: number) => InventoryTypeEnum.toDisplay(val);\r\n\r\n updateInventoryLists(invList: SysInvInventoryVm[]){\r\n this.inventoryList = invList;\r\n this.activeInventoryList = this.inventoryList.filter(o => o.active === true);\r\n this.inactiveInventoryList = this.inventoryList.filter(o => o.active === false);\r\n if (this.inactiveInventoryList.length == 0) this.showInactiveInventories = false; \r\n }\r\n\r\n\r\n // Form methods\r\n handleSave(sm: SystemMessage) {\r\n this.fg.patchValue(sm.model);\r\n this.updateInventoryLists(sm.value); \r\n this.showEditInventory = !this.showEditInventory;\r\n this.userState.updateUser(UserStateService.getCurrentUser());\r\n }\r\n\r\n setSelectItemTypes() {\r\n this.types = Object.values(InventoryTypeEnum)\r\n .filter(value => !isNaN(Number(value)))\r\n .filter(value => value != InventoryTypeEnum.Both)\r\n .map((value: number) => ({\r\n text: InventoryTypeEnum.toDisplay(value),\r\n value: value\r\n })\r\n );\r\n }\r\n\r\n AddAllPrograms = () => this.http.get('api/Select/InvConfigPrograms')\r\n .subscribe((items: SelectItem[]) => { this.fg.controls.programIds.setValue(items.map(item => item.value)) });\r\n\r\n activateDeactivate() {\r\n const action$ = this.fi.activateDeactivate(parseInt(this.fg.get('sysInvInventoryId').value));\r\n\r\n action$.subscribe((sm: SystemMessage) => {\r\n if (sm.isSuccessful) {\r\n this.fg.patchValue(sm.model);\r\n this.updateInventoryLists(sm.value);\r\n this.sm.setSystemMessage(sm.message, sm.messageClass);\r\n }\r\n });\r\n }\r\n\r\n showPrograms(inv : SysInvInventoryVm) {\r\n this.fg.patchValue(inv);\r\n this.inv = this.fg.value;\r\n this.allPrograms = false;\r\n this.modalService.open(this.modalProgram, {animation: false});\r\n }\r\n\r\n toggleProgramView = () => this.allPrograms = !this.allPrograms;\r\n}\r\n","
\r\n

Inventories

\r\n @if (\r\n !showEditInventory \r\n && inactiveInventoryList.length != 0\r\n ) {\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n\r\n@if (!showEditInventory) {\r\n
\r\n \r\n
\r\n \r\n

Add Inventory

\r\n
\r\n\r\n \r\n @for (inv of inventoryList; track inv.sysInvInventoryId) {\r\n \r\n @if (\r\n inv.active == true \r\n || showInactiveInventories\r\n ) {\r\n
\r\n
\r\n
\r\n

Name:

\r\n

{{ inv.name }}

\r\n
\r\n\r\n
\r\n

Type:

\r\n

{{ parseEnum(inv.type) }}

\r\n
\r\n\r\n
\r\n

Programs:

\r\n @if (inv.programs.length <= 2) {

{{ inv.programs.slice(0, 2).join(', ') }}

}\r\n @else { \r\n

\r\n View {{ inv.programs.length }} Associations \r\n

\r\n }\r\n
\r\n @if (showInactiveInventories) {\r\n
\r\n

Active:

\r\n

{{ inv.active ? \"Yes\" : \"No\" }}

\r\n
\r\n }\r\n
\r\n\r\n \r\n @if (inv.canDelete) {\r\n \r\n }\r\n
\r\n } \r\n }\r\n
\r\n} @else {\r\n \r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n @if(orgFacility.facilityTypeId == null) {\r\n \r\n \r\n \r\n
\r\n \r\n All\r\n \r\n
\r\n } @else {\r\n \r\n Program associations have been set by the Facility Type. If you believe\r\n you require access to another program please submit a help ticket.\r\n \r\n }\r\n
\r\n\r\n
\r\n \r\n\r\n @if (fg.value.sysInvInventoryId !== 0) {\r\n {{ fg.value.active ? 'Deactivate' : 'Reactivate'}}\r\n }\r\n
\r\n
\r\n
\r\n}\r\n\r\n\r\n
\r\n
Programs
\r\n @if (inventoryList.length > 1) { \r\n
\r\n \r\n \r\n
\r\n }\r\n \r\n
\r\n\r\n
\r\n @if (!allPrograms) {\r\n
    \r\n
  • \r\n {{ inv.name}}:\r\n
      \r\n
    • {{ program }}
    • \r\n
    \r\n
  • \r\n
\r\n } @else {\r\n @if (showInactiveInventories) { Active: }\r\n
    \r\n
  • \r\n {{ inv.name }}:\r\n
      \r\n
    • {{ program }}
    • \r\n
    \r\n
  • \r\n
\r\n @if (showInactiveInventories) {\r\n Inactive:\r\n
    \r\n
  • \r\n {{ inv.name }}:\r\n
      \r\n
    • {{ program }}
    • \r\n
    \r\n
  • \r\n
\r\n }\r\n }\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n","import { Component, Input, OnInit, viewChild, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, ParamMap } from '@angular/router';\r\nimport { faExternalLink } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { OrganizationFacilityListVm } from 'app/shared/generated/Administration/Models/Organizations/OrganizationFacilityListVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { ButtonFilterService } from 'app/shared/table/table-top/button-filter/button-filter.service';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\nimport { OrgFacilityInventoriesComponent } from '../org-facility-inventories/org-facility-inventories.component';\r\n\r\n@Component({\r\n selector: 'pcg-shared-organization-facility-list',\r\n templateUrl: './organization-facility-list.component.html',\r\n styleUrls: ['./organization-facility-list.component.scss'],\r\n standalone: false\r\n})\r\nexport class OrganizationFacilityListComponent implements OnInit {\r\n\r\n @ViewChild(TableComponent, { static: false }) table: TableComponent;\r\n @ViewChild(OrgFacilityInventoriesComponent, { static: false }) orgFacilityInventories: OrgFacilityInventoriesComponent;\r\n\r\n @Input() id: number;\r\n @Input() businessArea: BusinessAreaEnum;\r\n\r\n filters = { \r\n id: null\r\n , isActive: true \r\n };\r\n initFilters = Object.assign({}, this.filters);\r\n filterMap = { \"isActive\": \"Is Active\" };\r\n\r\n canEdit = false;\r\n canDelete = false;\r\n showBusinessArea = true;\r\n columns = OrganizationFacilityListVm.ColumnDefs;\r\n showEditOrganizationFacility = false;\r\n selectedFacilityId = 0;\r\n faIcon = { faExternalLink }\r\n\r\n constructor(\r\n private route: ActivatedRoute\r\n , public btnFilterService: ButtonFilterService\r\n , public sec: SecurityService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.filters.id = this.id;\r\n this.canEdit = this.sec.hasModuleAccess([this.businessArea], [PermissionRole.UserAdmin]);\r\n this.canDelete = this.sec.hasModuleAccess([BusinessAreaEnum.Admin], [PermissionRole.SystemAdmin]);\r\n this.initFilters = Object.assign({}, this.filters);\r\n this.btnFilterService.resetFilterData.subscribe(() => { this.resetFilters(); });\r\n\r\n //Check if directed here from SysInv Inventory List Screen edit button\r\n this.route.queryParamMap.subscribe((params: ParamMap) => {\r\n if (params.has('facilityId')) {\r\n this.selectedFacilityId = parseInt(params.get('facilityId'), 10);\r\n this.showEditOrganizationFacility = true;\r\n }\r\n });\r\n }\r\n\r\n reloadTable() { this.table?.ajaxReload(); }\r\n\r\n resetFilters() {\r\n this.filters.id = this.id;\r\n this.filters.isActive = true;\r\n this.filters = Object.assign(this.filters, this.initFilters);\r\n this.table.hideShowColumn('isActive', FormatHelperService.GetIsNully(this.filters.isActive));\r\n this.table?.ajaxReload();\r\n }\r\n \r\n openFacility(row: OrganizationFacilityListVm) {\r\n this.selectedFacilityId = row.facilityId;\r\n this.showEditOrganizationFacility = !this.showEditOrganizationFacility;\r\n }\r\n\r\n hideEditOrganizationFacility() {\r\n this.selectedFacilityId = 0;\r\n this.showEditOrganizationFacility = !this.showEditOrganizationFacility;\r\n }\r\n \r\n canDeleteFacility = (): boolean => this.sec.hasModuleAccess(\r\n [ this.businessArea ]\r\n , [ PermissionRole.SystemAdmin ]\r\n );\r\n}\r\n","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tYes\r\n\t\t\t\t\t\tNo\r\n\t\t\t\t\t\tAll\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t@if (row.facilityId != 0) {\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('facilityName').displayName }}\r\n\t\t\t{{ row.facilityName }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('facilityIdentifier').displayName }}\r\n\t\t\t{{ row.facilityIdentifier }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('city').displayName }}\r\n\t\t\t{{ row.city }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('county').displayName }}\r\n\t\t\t{{ row.county }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('isActive').displayName }}\r\n\t\t\t{{ row.isActive }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\tDelete\r\n\t\t\t\r\n\t\t\t\t@if (canDeleteFacility()) {\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\t\r\n
\r\n\r\n\r\n \r\n\t\r\n\t
\r\n\r\n\t@if (selectedFacilityId != 0) {\r\n\t\t\r\n\t\t\r\n\t}\r\n\r\n\t
\r\n\t\tBack\r\n\t
\r\n
","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { faBuildingColumns } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { AuditHistoryVm } from 'app/shared/generated/Models/AuditHistoryVm';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\n\r\n@Component({\r\n selector: 'pcg-shared-organization-audit-history',\r\n templateUrl: './organization-audit-history.component.html',\r\n styleUrls: ['./organization-audit-history.component.scss'],\r\n standalone: false\r\n})\r\nexport class OrganizationAuditHistoryComponent implements OnInit {\r\n\r\n @ViewChild(TableComponent, { static: false }) table: TableComponent;\r\n\tcolumns = AuditHistoryVm.ColumnDefs;\r\n\t\r\n organizationId: number;\r\n organizationName: string = null;\r\n\r\n filters = { organizationId: null };\r\n faIconName = { faBuildingColumns };\r\n\r\n\tconstructor(\r\n title: Title\r\n , private activatedRoute: ActivatedRoute\r\n ) { title.setTitle('Edit Organization'); }\r\n\r\n\tngOnInit() { this.organizationId = this.filters.organizationId = this.activatedRoute.snapshot.params['id']; }\r\n}\r\n","\r\n

{{organizationName}}

\r\n\r\n\r\n\r\n \r\n\t\t{{ columns.get('dateChanged').displayName }}\r\n\t\t{{ row.dateChangedFormatted }}\r\n\t\r\n\r\n \r\n\t\t{{ columns.get('module').displayName }}\r\n\t\t{{ row.module }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('recordAffected').displayName }}\r\n\t\t{{ row.recordAffected }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('field').displayName }}\r\n\t\t{{ row.field }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('changedFrom').displayName }}\r\n\t\t{{ row.changedFrom }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('changedTo').displayName }}\r\n\t\t{{ row.changedTo }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('changedBy').displayName }}\r\n\t\t{{ row.changedBy }}\r\n\t\r\n\r\n\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class OrganizationAccountVm {\r\n\torganizationAccountId: number;\r\n\tfacilityAccountNameId: number;\r\n\tfacilityAccountNamePfsId?: number;\r\n\tfacilityAccountNameStr?: string;\r\n\torganizationId: number;\r\n\tpfsIds?: string;\r\n\tpfsFacilityAccountIds?: number[];\r\n\torganizationStr?: string;\r\n\taccountNumber?: string;\r\n\texpirationDate?: Date;\r\n\texpirationDateStr?: string;\r\n\tnotes?: string;\r\n\tfile?: any;\r\n\tuploadFiles?: any;\r\n\tuploadFilePath?: string;\r\n\tfileName?: string;\r\n\tisActive: boolean;\r\n\tisGracePeriod: boolean;\r\n\tisNewRequest: boolean;\r\n\tfriendlyId?: string;\r\n\tactions?: string;\r\n\tactionsSelected?: boolean;\r\n\tlastUpdatedDate?: Date;\r\n\tlastUpdatedDateStr?: string;\r\n\tlastUpdatedUserId?: number;\r\n\tlastUpdatedBy?: string;\r\n\thasPendingRequest: boolean;\r\n\tdaysRemaining?: string;\r\n\torganizationLink?: string;\r\n\tpfsRequestIds?: string[];\r\n\tisRemoveDoc: boolean;\r\n\thomerEmailSent: boolean;\r\n\tpfsRequestedByEmail?: string;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'organizationAccountId': new UntypedFormControl(0, [...(validators['organizationAccountId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityAccountNameId': new UntypedFormControl(0, [...(validators['facilityAccountNameId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityAccountNamePfsId': new UntypedFormControl(null, [...(validators['facilityAccountNamePfsId'] ?? []), ...[]]),\r\n\t\t\t'facilityAccountNameStr': new UntypedFormControl(null, [...(validators['facilityAccountNameStr'] ?? []), ...[]]),\r\n\t\t\t'organizationId': new UntypedFormControl(0, [...(validators['organizationId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'pfsIds': new UntypedFormControl(null, [...(validators['pfsIds'] ?? []), ...[]]),\r\n\t\t\t'pfsFacilityAccountIds': new UntypedFormControl([], [...(validators['pfsFacilityAccountIds'] ?? []), ...[]]),\r\n\t\t\t'organizationStr': new UntypedFormControl(null, [...(validators['organizationStr'] ?? []), ...[]]),\r\n\t\t\t'accountNumber': new UntypedFormControl(null, [...(validators['accountNumber'] ?? []), ...[Validators.required, Validators.maxLength(50), Validators.pattern(\"^[A-Za-z0-9 ]*\")]]),\r\n\t\t\t'expirationDate': new UntypedFormControl(null, [...(validators['expirationDate'] ?? []), ...[]]),\r\n\t\t\t'expirationDateStr': new UntypedFormControl(null, [...(validators['expirationDateStr'] ?? []), ...[]]),\r\n\t\t\t'notes': new UntypedFormControl(null, [...(validators['notes'] ?? []), ...[Validators.maxLength(1000)]]),\r\n\t\t\t'file': new UntypedFormControl(null, [...(validators['file'] ?? []), ...[]]),\r\n\t\t\t'uploadFiles': new UntypedFormControl([], [...(validators['uploadFiles'] ?? []), ...[]]),\r\n\t\t\t'uploadFilePath': new UntypedFormControl(null, [...(validators['uploadFilePath'] ?? []), ...[Validators.maxLength(250)]]),\r\n\t\t\t'fileName': new UntypedFormControl(null, [...(validators['fileName'] ?? []), ...[]]),\r\n\t\t\t'isActive': new UntypedFormControl(false, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'isGracePeriod': new UntypedFormControl(false, [...(validators['isGracePeriod'] ?? []), ...[]]),\r\n\t\t\t'isNewRequest': new UntypedFormControl(false, [...(validators['isNewRequest'] ?? []), ...[]]),\r\n\t\t\t'friendlyId': new UntypedFormControl(null, [...(validators['friendlyId'] ?? []), ...[]]),\r\n\t\t\t'actions': new UntypedFormControl(null, [...(validators['actions'] ?? []), ...[]]),\r\n\t\t\t'actionsSelected': new UntypedFormControl(null, [...(validators['actionsSelected'] ?? []), ...[]]),\r\n\t\t\t'lastUpdatedDate': new UntypedFormControl(null, [...(validators['lastUpdatedDate'] ?? []), ...[]]),\r\n\t\t\t'lastUpdatedDateStr': new UntypedFormControl(null, [...(validators['lastUpdatedDateStr'] ?? []), ...[]]),\r\n\t\t\t'lastUpdatedUserId': new UntypedFormControl(null, [...(validators['lastUpdatedUserId'] ?? []), ...[]]),\r\n\t\t\t'lastUpdatedBy': new UntypedFormControl(null, [...(validators['lastUpdatedBy'] ?? []), ...[]]),\r\n\t\t\t'hasPendingRequest': new UntypedFormControl(false, [...(validators['hasPendingRequest'] ?? []), ...[]]),\r\n\t\t\t'daysRemaining': new UntypedFormControl(null, [...(validators['daysRemaining'] ?? []), ...[]]),\r\n\t\t\t'organizationLink': new UntypedFormControl(null, [...(validators['organizationLink'] ?? []), ...[]]),\r\n\t\t\t'pfsRequestIds': new UntypedFormControl([], [...(validators['pfsRequestIds'] ?? []), ...[]]),\r\n\t\t\t'isRemoveDoc': new UntypedFormControl(false, [...(validators['isRemoveDoc'] ?? []), ...[]]),\r\n\t\t\t'homerEmailSent': new UntypedFormControl(false, [...(validators['homerEmailSent'] ?? []), ...[]]),\r\n\t\t\t'pfsRequestedByEmail': new UntypedFormControl(null, [...(validators['pfsRequestedByEmail'] ?? []), ...[]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['actions', {\"orderId\":0,\"sortColumn\":\"actions\",\"searchColumn\":\"actions\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Actions\",\"isVisible\":true,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['facilityAccountNameStr', {\"orderId\":1,\"sortColumn\":\"facilityAccountNameStr\",\"searchColumn\":\"facilityAccountNameStr\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Account Name\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['accountNumber', {\"orderId\":2,\"sortColumn\":\"accountNumber\",\"searchColumn\":\"accountNumber\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Account #\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['expirationDateStr', {\"orderId\":3,\"sortColumn\":\"expirationDate\",\"searchColumn\":\"expirationDateStr\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Exp Date\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['uploadFilePath', {\"orderId\":4,\"sortColumn\":\"uploadFilePath\",\"searchColumn\":\"uploadFilePath\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Related Document\",\"isVisible\":true,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['isActive', {\"orderId\":5,\"sortColumn\":\"isActive\",\"searchColumn\":\"isActive\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Is Active\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['lastUpdatedDateStr', {\"orderId\":6,\"sortColumn\":\"lastUpdatedDate\",\"searchColumn\":\"lastUpdatedDateStr\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Updated Date\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['lastUpdatedBy', {\"orderId\":7,\"sortColumn\":\"lastUpdatedBy\",\"searchColumn\":\"lastUpdatedBy\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Updated By\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): OrganizationAccountVmFromFg {\r\n\t\treturn new OrganizationAccountVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class OrganizationAccountVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget organizationAccountId(): number {\r\n\t\treturn this.fg.get('organizationAccountId').value;\r\n\t}\r\n\tset organizationAccountId(val) {\r\n\t\tthis.fg.get('organizationAccountId').setValue(val);\r\n\t}\r\n\r\n\tget facilityAccountNameId(): number {\r\n\t\treturn this.fg.get('facilityAccountNameId').value;\r\n\t}\r\n\tset facilityAccountNameId(val) {\r\n\t\tthis.fg.get('facilityAccountNameId').setValue(val);\r\n\t}\r\n\r\n\tget facilityAccountNamePfsId(): number {\r\n\t\treturn this.fg.get('facilityAccountNamePfsId').value;\r\n\t}\r\n\tset facilityAccountNamePfsId(val) {\r\n\t\tthis.fg.get('facilityAccountNamePfsId').setValue(val);\r\n\t}\r\n\r\n\tget facilityAccountNameStr(): string {\r\n\t\treturn this.fg.get('facilityAccountNameStr').value;\r\n\t}\r\n\tset facilityAccountNameStr(val) {\r\n\t\tthis.fg.get('facilityAccountNameStr').setValue(val);\r\n\t}\r\n\r\n\tget organizationId(): number {\r\n\t\treturn this.fg.get('organizationId').value;\r\n\t}\r\n\tset organizationId(val) {\r\n\t\tthis.fg.get('organizationId').setValue(val);\r\n\t}\r\n\r\n\tget pfsIds(): string {\r\n\t\treturn this.fg.get('pfsIds').value;\r\n\t}\r\n\tset pfsIds(val) {\r\n\t\tthis.fg.get('pfsIds').setValue(val);\r\n\t}\r\n\r\n\tget organizationStr(): string {\r\n\t\treturn this.fg.get('organizationStr').value;\r\n\t}\r\n\tset organizationStr(val) {\r\n\t\tthis.fg.get('organizationStr').setValue(val);\r\n\t}\r\n\r\n\tget accountNumber(): string {\r\n\t\treturn this.fg.get('accountNumber').value;\r\n\t}\r\n\tset accountNumber(val) {\r\n\t\tthis.fg.get('accountNumber').setValue(val);\r\n\t}\r\n\r\n\tget expirationDate(): Date {\r\n\t\treturn this.fg.get('expirationDate').value;\r\n\t}\r\n\tset expirationDate(val) {\r\n\t\tthis.fg.get('expirationDate').setValue(val);\r\n\t}\r\n\r\n\tget expirationDateStr(): string {\r\n\t\treturn this.fg.get('expirationDateStr').value;\r\n\t}\r\n\tset expirationDateStr(val) {\r\n\t\tthis.fg.get('expirationDateStr').setValue(val);\r\n\t}\r\n\r\n\tget notes(): string {\r\n\t\treturn this.fg.get('notes').value;\r\n\t}\r\n\tset notes(val) {\r\n\t\tthis.fg.get('notes').setValue(val);\r\n\t}\r\n\r\n\tget file(): any {\r\n\t\treturn this.fg.get('file').value;\r\n\t}\r\n\tset file(val) {\r\n\t\tthis.fg.get('file').setValue(val);\r\n\t}\r\n\r\n\tget uploadFilePath(): string {\r\n\t\treturn this.fg.get('uploadFilePath').value;\r\n\t}\r\n\tset uploadFilePath(val) {\r\n\t\tthis.fg.get('uploadFilePath').setValue(val);\r\n\t}\r\n\r\n\tget fileName(): string {\r\n\t\treturn this.fg.get('fileName').value;\r\n\t}\r\n\tset fileName(val) {\r\n\t\tthis.fg.get('fileName').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): boolean {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget isGracePeriod(): boolean {\r\n\t\treturn this.fg.get('isGracePeriod').value;\r\n\t}\r\n\tset isGracePeriod(val) {\r\n\t\tthis.fg.get('isGracePeriod').setValue(val);\r\n\t}\r\n\r\n\tget isNewRequest(): boolean {\r\n\t\treturn this.fg.get('isNewRequest').value;\r\n\t}\r\n\tset isNewRequest(val) {\r\n\t\tthis.fg.get('isNewRequest').setValue(val);\r\n\t}\r\n\r\n\tget friendlyId(): string {\r\n\t\treturn this.fg.get('friendlyId').value;\r\n\t}\r\n\tset friendlyId(val) {\r\n\t\tthis.fg.get('friendlyId').setValue(val);\r\n\t}\r\n\r\n\tget actions(): string {\r\n\t\treturn this.fg.get('actions').value;\r\n\t}\r\n\tset actions(val) {\r\n\t\tthis.fg.get('actions').setValue(val);\r\n\t}\r\n\r\n\tget actionsSelected(): boolean {\r\n\t\treturn this.fg.get('actionsSelected').value;\r\n\t}\r\n\tset actionsSelected(val) {\r\n\t\tthis.fg.get('actionsSelected').setValue(val);\r\n\t}\r\n\r\n\tget lastUpdatedDate(): Date {\r\n\t\treturn this.fg.get('lastUpdatedDate').value;\r\n\t}\r\n\tset lastUpdatedDate(val) {\r\n\t\tthis.fg.get('lastUpdatedDate').setValue(val);\r\n\t}\r\n\r\n\tget lastUpdatedDateStr(): string {\r\n\t\treturn this.fg.get('lastUpdatedDateStr').value;\r\n\t}\r\n\tset lastUpdatedDateStr(val) {\r\n\t\tthis.fg.get('lastUpdatedDateStr').setValue(val);\r\n\t}\r\n\r\n\tget lastUpdatedUserId(): number {\r\n\t\treturn this.fg.get('lastUpdatedUserId').value;\r\n\t}\r\n\tset lastUpdatedUserId(val) {\r\n\t\tthis.fg.get('lastUpdatedUserId').setValue(val);\r\n\t}\r\n\r\n\tget lastUpdatedBy(): string {\r\n\t\treturn this.fg.get('lastUpdatedBy').value;\r\n\t}\r\n\tset lastUpdatedBy(val) {\r\n\t\tthis.fg.get('lastUpdatedBy').setValue(val);\r\n\t}\r\n\r\n\tget hasPendingRequest(): boolean {\r\n\t\treturn this.fg.get('hasPendingRequest').value;\r\n\t}\r\n\tset hasPendingRequest(val) {\r\n\t\tthis.fg.get('hasPendingRequest').setValue(val);\r\n\t}\r\n\r\n\tget daysRemaining(): string {\r\n\t\treturn this.fg.get('daysRemaining').value;\r\n\t}\r\n\tset daysRemaining(val) {\r\n\t\tthis.fg.get('daysRemaining').setValue(val);\r\n\t}\r\n\r\n\tget organizationLink(): string {\r\n\t\treturn this.fg.get('organizationLink').value;\r\n\t}\r\n\tset organizationLink(val) {\r\n\t\tthis.fg.get('organizationLink').setValue(val);\r\n\t}\r\n\r\n\tget isRemoveDoc(): boolean {\r\n\t\treturn this.fg.get('isRemoveDoc').value;\r\n\t}\r\n\tset isRemoveDoc(val) {\r\n\t\tthis.fg.get('isRemoveDoc').setValue(val);\r\n\t}\r\n\r\n\tget homerEmailSent(): boolean {\r\n\t\treturn this.fg.get('homerEmailSent').value;\r\n\t}\r\n\tset homerEmailSent(val) {\r\n\t\tthis.fg.get('homerEmailSent').setValue(val);\r\n\t}\r\n\r\n\tget pfsRequestedByEmail(): string {\r\n\t\treturn this.fg.get('pfsRequestedByEmail').value;\r\n\t}\r\n\tset pfsRequestedByEmail(val) {\r\n\t\tthis.fg.get('pfsRequestedByEmail').setValue(val);\r\n\t}\r\n}\r\n","import { formatDate } from \"@angular/common\";\r\nimport { HttpClient } from \"@angular/common/http\";\r\nimport {\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tinject,\r\n\tInput,\r\n\tOnInit,\r\n\tTemplateRef,\r\n\tViewChild,\r\n} from \"@angular/core\";\r\nimport { Validators } from \"@angular/forms\";\r\nimport { Title } from \"@angular/platform-browser\";\r\nimport { ActivatedRoute } from \"@angular/router\";\r\nimport { NgbModal, NgbModalRef } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { BusinessAreaEnum } from \"app/core/enums/generated/BusinessAreaEnum\";\r\nimport { PermissionRole } from \"app/core/enums/generated/PermissionRole\";\r\nimport { SecurityService } from \"app/core/security/security.service\";\r\nimport { SystemMessageService } from \"app/core/system-message/system-message-service\";\r\nimport { NotificationService } from \"app/notification.service\";\r\nimport { validateForm } from \"app/shared/form-elements/form-validateForm.function\";\r\nimport { FacilityAccountNameVm } from \"app/shared/generated/Administration/Models/Facilities/FacilityAccountNameVm\";\r\nimport { OrganizationAccountVm } from \"app/shared/generated/Administration/Models/Organizations/OrganizationAccountVm\";\r\nimport { GenericFilesVm } from \"app/shared/generated/Models/GenericFilesVm\";\r\nimport { FormatHelperService } from \"app/shared/helpers/format-helper.service\";\r\nimport { NavNotificationService } from \"app/shared/navigation/nav-notification.service\";\r\nimport { AccountRequestModalStateService } from \"app/shared/state/account-request-modal-state.service\";\r\nimport { ButtonFilterService } from \"app/shared/table/table-top/button-filter/button-filter.service\";\r\nimport { TableComponent } from \"app/shared/table/table.component\";\r\n\r\n@Component({\r\n selector: \"pcg-shared-organization-accounts\",\r\n templateUrl: \"./organization-accounts.component.html\",\r\n styleUrls: [\"./organization-accounts.component.scss\"],\r\n standalone: false\r\n})\r\nexport class OrganizationAccountsComponent implements OnInit {\r\n\trouter = inject(ActivatedRoute);\r\n http = inject(HttpClient);\r\n notificationService = inject(NotificationService);\r\n ns = inject(NavNotificationService);\r\n\r\n\t@ViewChild(TableComponent, { static: false }) table: TableComponent;\r\n\t@ViewChild(\"accountUpdateOptions\", { static: true }) accountUpdateOptions: TemplateRef;\r\n\r\n\t@Input() id: number;\r\n\t@Input() businessArea: BusinessAreaEnum;\r\n\taccountId?: number;\r\n\r\n\tcolumns = OrganizationAccountVm.ColumnDefs;\r\n\tnewModel = new OrganizationAccountVm();\r\n\tformGroup = OrganizationAccountVm.Form;\r\n\tinitFormGroup = OrganizationAccountVm.Form;\r\n\r\n\tfilters = {\r\n\t\tid: null\r\n\t\t, isActive: true\r\n\t};\r\n\tinitFilters = Object.assign({}, this.filters);\r\n\tfilterMap = { isActive: \"Is Active\" };\r\n\r\n\tcanEdit = false;\r\n\tcanDelete = false;\r\n\r\n\taccountQueueModalRef: NgbModalRef | null;\r\n\r\n\t// Account Update properties\r\n\tisOpen = false;\r\n\teditClicked = false;\r\n\tdeleteClicked = false;\r\n\thasFile = false;\r\n\tclearFileClick = false;\r\n\taccountNameClick = false;\r\n expDateRequired = false;\r\n\tisLoading: boolean = false;\r\n\r\n\tfacilityFile: GenericFilesVm[] = [];\r\n\tmaxFiles = 1;\r\n\r\n\tstrAction = \"Edit\";\r\n\r\n\tsaveBtnTooltip: string = \"A change must be made to submit an update request.\";\r\n\tsaveBtnDisabled: boolean = true;\r\n\r\n\tconstructor(\r\n\t\tpublic btnFilterService: ButtonFilterService\r\n\t\t, title: Title\r\n\t\t, public sec: SecurityService\r\n\t\t, public arms: AccountRequestModalStateService\r\n\t\t, private modalService: NgbModal\r\n\t\t, private sm: SystemMessageService\r\n\t\t, private cdr: ChangeDetectorRef\r\n\t) { title.setTitle(\"Organization Accounts\"); }\r\n\r\n\tngOnInit() {\r\n\t\tthis.filters.id = this.id;\r\n\r\n\t\tthis.canEdit = this.sec.hasModuleAccess(\r\n\t\t\t[this.businessArea],\r\n\t\t\t[\r\n\t\t\t\tPermissionRole.Manager\r\n\t\t\t\t, ...SecurityService.setMinRole(PermissionRole.User)\r\n\t\t\t]\r\n\t\t);\r\n\t\tthis.canDelete = this.sec.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.Admin],\r\n\t\t\t[PermissionRole.SystemAdmin]\r\n\t\t);\r\n\t\tthis.initFilters = Object.assign({}, this.filters);\r\n\t\tthis.btnFilterService.resetFilterData.subscribe(() => { this.resetFilters(); });\r\n\r\n\t\t// Initializes the component's ability to react to behavior changes\r\n\t\tthis.reloadTablePromise();\r\n\r\n\t\tthis.formGroup.patchValue(this.newModel);\r\n\t\t// Listen for formGroup changes\r\n\t\tthis.formGroup.valueChanges.subscribe(() => { this.isSaveDisabled(); });\r\n\t\tthis.accountId = parseInt(this.router.snapshot.paramMap.get('accountId'));\r\n\t\tif(this.accountId) this.getAccount(this.accountId);\r\n\r\n\t}\r\n\r\n\tresetFilters() {\r\n\t\tthis.filters.id = this.id;\r\n\t\tthis.filters.isActive = true;\r\n\t\tthis.filters = Object.assign(this.filters, this.initFilters);\r\n\t\tthis.table.hideShowColumn(\"isActive\", FormatHelperService.GetIsNully(this.filters.isActive));\r\n\t\tthis.table?.ajaxReload();\r\n\t}\r\n\r\n\tgetAccount(id: number) {\r\n\t\tlet sub = this.table.tableReceive.subscribe(\r\n\t\t\tr => {\r\n\t\t\t\tlet row = this.table.data.filter(d => d.facilityAccountNameId == id)[0];\r\n\t\t\t\tthis.actionClick(row);\r\n\t\t\t\tthis.editClick();\r\n\t\t\t\tthis.formGroup.controls.facilityAccountNameId.setValue(id);\r\n\t\t\t\tsub.unsubscribe();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\t/** When called, this method sets up a subscription that will\r\n\t * update the table only if an active modal ref is stored in state.\r\n\t * NOTE: Leave formatting of code alone.\r\n\t */\r\n\treloadTablePromise() {\r\n\t\tthis.cdr.detectChanges();\r\n\t\t// Reloads table whenever user closes table.\r\n\t\tthis.arms.getModalRefObservable().subscribe((modalRef) => {\r\n\t\t\tthis.accountQueueModalRef = modalRef;\r\n\t\t\tif (this.accountQueueModalRef) {\r\n\t\t\t\tthis.accountQueueModalRef.result\r\n\t\t\t\t\t// Called when user approves or denies\r\n\t\t\t\t\t.then(() => { this.table.ajaxReload(); })\r\n\t\t\t\t\t// Called when user closes the modal\r\n\t\t\t\t\t.catch((e) => { this.table.ajaxReload(); });\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\topenFile(filePath : string) {\r\n\t\t// Change route if document was uploaded in PFS\r\n\t\tif (filePath.includes('uploads\\\\facilityAccounts')) { window.open(filePath, \"_blank\"); }\r\n\t\telse { window.open(window.location.origin + \"/\" + filePath, \"_blank\"); }\t\r\n\t}\r\n\r\n\tactionClick(row: OrganizationAccountVm = null) {\r\n\t\tlet isNew = row == null;\r\n\t\tthis.setModelValues(row);\r\n\t\tif (!isNew) { this.modalService.open(this.accountUpdateOptions, { animation: false }); }\r\n\t\telse {\r\n\t\t\tthis.newModel.actionsSelected = true;\r\n \t\tthis.newModel.isActive = true;\r\n\t\t\tthis.formGroup.patchValue(this.newModel);\r\n\t\t}\r\n\t\t// Set initFormGroup values for comparison\r\n\t\tthis.initFormGroup.reset();\r\n\t\tthis.initFormGroup.patchValue(this.newModel);\r\n\t}\r\n\r\n\tsetModelValues(row: OrganizationAccountVm = null) {\r\n\t\tthis.newModel = row ?? new OrganizationAccountVm();\r\n this.newModel.organizationId = this.id;\r\n\t\tthis.hasFile = FormatHelperService.GetIsNullyOrWhitespace(row?.uploadFilePath) \r\n\t\t\t? false \r\n\t\t\t: true;\r\n\t\tthis.formGroup.reset();\r\n\t\tthis.formGroup.patchValue(this.newModel);\r\n\t\t\r\n\t\tthis.isOpen = this.editClicked \r\n\t\t\t= this.deleteClicked \r\n\t\t\t= this.clearFileClick \r\n\t\t\t= this.accountNameClick \r\n = this.expDateRequired\r\n\t\t\t= false;\r\n\t}\r\n\r\n\tcancel() {\r\n\t\tthis.setModelValues();\r\n\t\tthis.modalService.dismissAll();\r\n\t}\r\n\r\n\teditClick() {\r\n\t\tthis.newModel.actionsSelected = true;\r\n\t\tthis.formGroup.patchValue(this.newModel);\r\n\t\tthis.initFormGroup.patchValue(this.newModel);\r\n\t\tthis.setExpDateRequired();\r\n\t\tthis.editClicked = true;\r\n\t\tthis.modalService.dismissAll();\r\n\t}\r\n\r\n setExpDateRequired() {\r\n this.isLoading = true;\r\n this.http.get(`api/Administration/FacilityAccountName/GetViewModel/${this.formGroup.controls.facilityAccountNameId.value}`)\r\n .subscribe({\r\n next: (r: FacilityAccountNameVm) => {\r\n if (r.isNotification) {\r\n this.formGroup.controls.expirationDate.addValidators([Validators.required]);\r\n this.expDateRequired = true;\r\n } else {\r\n this.formGroup.controls.expirationDate.clearValidators();\r\n this.expDateRequired = false;\r\n }\r\n this.formGroup.controls.expirationDate.updateValueAndValidity();\r\n this.isLoading = false;\r\n },\r\n error: (e) => {\r\n this.notificationService.showMessage(e.msg, e.messageClass);\r\n this.isLoading = false;\r\n }\r\n });\r\n }\r\n\r\n\tdeleteClick() { this.deleteClicked = true; }\r\n\r\n\tperformDelete() {\r\n\t\tthis.sm.getHttpObservable(this, `api/Administration/OrganizationAccount/Delete/${this.newModel.organizationAccountId}`)\r\n\t\t\t.subscribe(() => {\r\n\t\t\t\tthis.table.ajaxReload();\r\n\t\t\t\tthis.modalService.dismissAll();\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tclearFile() {\r\n\t\tthis.clearFileClick = true;\r\n\t\tthis.formGroup.controls.uploadFilePath.patchValue(null);\r\n\t\tthis.formGroup.controls.file.patchValue(null);\r\n\t\tthis.hasFile = false;\r\n\t}\r\n\r\n\teditSave() {\r\n // If new account, set PK to 0\r\n if(this.formGroup.controls.organizationAccountId.errors)\r\n this.formGroup.controls.organizationAccountId.setValue(0);\r\n validateForm(this.formGroup);\r\n\t\tif (this.canEdit === true && this.formGroup.valid) {\r\n\t\t\tthis.sm.getHttpObservable(this, `api/Administration/OrganizationAccount/Save`, this.formGroup)\r\n\t\t\t\t.subscribe((msg) => {\r\n\t\t\t\t\tif (msg.isSuccessful) {\r\n\t\t\t\t\t\tthis.newModel.actionsSelected = false;\r\n\t\t\t\t\t\tthis.cdr.detectChanges();\r\n this.ns.getHeaderCounts();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\t//Prevents actions dropdown from closing when facility account name select is changed by temporarily\r\n\t//flipping accountNameClick bool\r\n\taccountNameClicked() {\t\t\r\n\t\tthis.accountNameClick = !this.accountNameClick;\r\n\t\tsetTimeout(() => { this.accountNameClick = !this.accountNameClick; }, 50);\r\n\t}\r\n\r\n\tupdateExpStr() {\r\n\t\tlet expDateStr = formatDate(\r\n\t\t\tthis.formGroup.controls.expirationDate.value\r\n\t\t\t, \"M/dd/yyyy\"\r\n\t\t\t, \"en-US\"\r\n\t\t);\r\n\t\tthis.formGroup.controls.expirationDateStr.patchValue(expDateStr);\r\n\t}\r\n\r\n\tisSaveDisabled() {\r\n if(this.isLoading) {\r\n this.saveBtnDisabled = true;\r\n return;\r\n }\r\n\t\tif (!FormatHelperService.GetIsNullyOrWhitespace(this.formGroup.controls.expirationDate.value))\r\n\t\t\tthis.initFormGroup.controls.expirationDate.patchValue(\r\n\t\t\t\tformatDate(\r\n\t\t\t\t\tthis.formGroup.controls.expirationDate.value\r\n\t\t\t\t\t, \"yyyy-MM-dd\"\r\n\t\t\t\t\t, \"en-US\"\r\n\t\t\t));\r\n\t\tthis.saveBtnDisabled = JSON.stringify(this.formGroup.value) === JSON.stringify(this.initFormGroup.value); \r\n\t\tthis.saveBtnTooltip = this.saveBtnDisabled ? \"A change must be made to submit an update request.\" : null;\r\n\t}\r\n}\r\n","\r\n\t\r\n\t\t
\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tYes\r\n\t\t\t\t\t\tNo\r\n\t\t\t\t\t\tAll\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\r\n\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('actions').displayName }}\r\n\t\t\t\r\n\t\t\t\t@if (!row.actionsSelected) {\r\n\t\t\t\t\t
{{ row.actions }}
\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('facilityAccountNameStr').displayName }}\r\n\t\t\t\r\n\t\t\t\t{{ row.facilityAccountNameStr }}\r\n\t\t\t\t@if (\r\n\t\t\t\t\trow.hasPendingRequest \r\n\t\t\t\t\t&& !row.isNewRequest\r\n\t\t\t\t) {\r\n\t\t\t\t\tPending Update\r\n\t\t\t\t}\r\n\t\t\t\t@if (row.isNewRequest) {\r\n\t\t\t\t\tNew\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('accountNumber').displayName }}\r\n\t\t\t{{ row.accountNumber }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('expirationDateStr').displayName }}\r\n\t\t\t{{ row.expirationDateStr }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('isActive').displayName }}\r\n\t\t\t\r\n\t\t\t\t@if (row.isActive) { Yes }\r\n\t\t\t\t@else { No }\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('lastUpdatedDateStr').displayName }}\r\n\t\t\t{{ row.lastUpdatedDateStr }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('lastUpdatedBy').displayName }}\r\n\t\t\t{{ row.lastUpdatedBy }}\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t{{ columns.get('uploadFilePath').displayName }}\r\n\t\t\t\r\n\t\t\t\t{{ row.fileName }}\r\n\t\t\t\r\n\t\t\r\n\t
\r\n\r\n
\r\n\r\n\r\n\t
\r\n\t\t\r\n\t\t\r\n\t\t\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t@if (!hasFile) {\r\n\t\t\t\t\t\r\n\t\t\t\t} @else {\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{{formGroup.controls.fileName.value}}\r\n\t\t\t\t\t\t   \r\n\t\t\t\t\t\t
X
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t}\r\n\t\t\t
\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n
\r\n\r\n\r\n\t\r\n\r\n","// tslint:disable: quotemark\r\nexport enum LoginTypeEnum {\r\n\tTraditional = 1,\r\n\tSSO = 2,\r\n\tBoth = 3\r\n}\r\n\r\nexport namespace LoginTypeEnum {\r\n\texport function toDescription(val: LoginTypeEnum) {\r\n\t\tswitch (val) {\r\n\t\t\tcase 1:\r\n\t\t\t\treturn \"Traditional\";\r\n\t\t\tcase 2:\r\n\t\t\t\treturn \"SSO\";\r\n\t\t\tcase 3:\r\n\t\t\t\treturn \"Both\";\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\texport function toDisplay(val: LoginTypeEnum) {\r\n\t\tswitch (val) {\r\n\t\t\tcase 1:\r\n\t\t\t\treturn \"Traditional\";\r\n\t\t\tcase 2:\r\n\t\t\t\treturn \"SSO\";\r\n\t\t\tcase 3:\r\n\t\t\t\treturn \"Both\";\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n","// tslint:disable: quotemark\r\nexport enum SSOTypeEnum {\r\n\tMicrosoftEntraAD = 1\r\n}\r\n\r\nexport namespace SSOTypeEnum {\r\n\texport function toDescription(val: SSOTypeEnum) {\r\n\t\tswitch (val) {\r\n\t\t\tcase 1:\r\n\t\t\t\treturn \"Microsoft Entra AD\";\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\texport function toDisplay(val: SSOTypeEnum) {\r\n\t\tswitch (val) {\r\n\t\t\tcase 1:\r\n\t\t\t\treturn \"Microsoft Entra AD\";\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n}\r\n","import { Component, HostListener, Input, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { faXmark } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { EditOrganizationVm } from \"app/shared/generated/Administration/Models/Organizations/EditOrganizationVm\";\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { LoginTypeEnum } from 'app/core/enums/generated/LoginTypeEnum';\r\nimport { SSOTypeEnum } from 'app/core/enums/generated/SSOTypeEnum';\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { GlobalService } from 'app/shared/services/global.service';\r\n\r\n@Component({\r\n selector: 'pcg-shared-organization-logins',\r\n templateUrl: './organization-logins.component.html',\r\n styleUrls: ['./organization-logins.component.scss'],\r\n standalone: false\r\n})\r\nexport class OrganizationLoginsComponent implements OnInit {\r\n\r\n @Input() vm: EditOrganizationVm;\r\n\r\n formGroup = EditOrganizationVm.Form;\r\n model = EditOrganizationVm.GetModel(this.formGroup);\r\n\r\n showSsoType = false;\r\n\tcanEdit = false;\r\n isMobile = false;\r\n\tinfoOpened = false;\r\n\r\n faIconName = { faXmark };\r\n\r\n constructor(\r\n private sec: SecurityService\r\n\t\t, public router: Router\r\n\t\t, private httpClient: HttpClient\r\n\t\t, private ms: SystemMessageService\r\n ) { }\r\n\r\n @HostListener('window:resize')\r\n\tonResize() { this.isMobile = GlobalService.setIsMobile(window.innerWidth); }\r\n\r\n ngOnInit() { \r\n this.isMobile = GlobalService.setIsMobile(window.innerWidth);\r\n const bae = BusinessAreaEnum;\r\n const pr = PermissionRole;\r\n\r\n this.canEdit = this.sec.hasModuleAccess(\r\n\t\t\t[\r\n bae.CI\r\n , bae.MetabolicFormula\r\n , bae.Admin\r\n , bae.HEROS\r\n ],\r\n\t\t\t[\r\n pr.SystemAdmin\r\n , ...SecurityService.setMinRole(pr.SystemAdmin)\r\n ]\r\n\t\t);\r\n const newvm = this.vm;\r\n this.model = EditOrganizationVm.GetModel(this.formGroup);\r\n this.formGroup.patchValue(newvm);\r\n if (\r\n this.vm.loginTypeEnum === LoginTypeEnum.SSO \r\n || this.vm.loginTypeEnum === LoginTypeEnum.Both\r\n ) { this.showSsoType = true; }\r\n }\r\n\r\n changeLoginType() {\r\n\t\tif (\r\n\t\t\tthis.formGroup.controls.loginTypeEnum.value === LoginTypeEnum.SSO\r\n\t\t\t|| this.formGroup.controls.loginTypeEnum.value === LoginTypeEnum.Both\r\n\t\t) { \r\n\t\t\tthis.showSsoType = true; \r\n\t\t\tthis.formGroup.controls.ssoTypeEnum.patchValue(SSOTypeEnum.MicrosoftEntraAD);\r\n\t\t} else { \r\n\t\t\tthis.formGroup.controls.ssoTypeEnum.patchValue(null);\r\n\t\t\tthis.showSsoType = false; \r\n\t\t}\r\n\t}\r\n\r\n onSave() {\r\n this.httpClient.post(\"api/Administration/Organization/SaveOrganization?fromLogin=true\", this.formGroup.getRawValue())\r\n .subscribe(async (sm: SystemMessage) => {\r\n if (sm.isSuccessful) { \r\n this.ms.setSystemMessage(sm.message, sm.messageClass);\r\n \t\t this.formGroup.patchValue(sm.model);\r\n } else { \r\n this.ms.setSystemMessage(sm.message, sm.messageClass);\r\n\t\t this.formGroup.patchValue(sm.model); \r\n }\r\n }\r\n\t\t);\r\n\t}\r\n\r\n openInfo() { this.infoOpened = true; }\r\n\tcloseInfo() { this.infoOpened = false; }\r\n}\r\n","@if (!infoOpened) {\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n @if (canEdit) {\r\n \r\n } @else { {{ model?.loginType }} }\r\n \r\n \r\n @if (showSsoType === true) {\r\n
\r\n \r\n @if (canEdit) {\r\n \r\n } @else { {{ model?.ssoType }} }\r\n
\r\n }\r\n
\r\n \r\n @if (\r\n showSsoType === true\r\n && canEdit\r\n ) { \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n }\r\n \r\n \r\n @if (canEdit) {\r\n \r\n }\r\n \r\n
\r\n} @else {\r\n
\r\n
\r\n
\r\n

Single-Sign-On Microsoft Active Directory Entra Setup

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
    \r\n
  1. \r\n On the Entra Admin Center page, go to Applications > Enterprise applications and click ‘+ New application’ at the top of the screen.\r\n
    \r\n \r\n

    \r\n
  2. \r\n
  3. \r\n On the page that pops up, click ‘Create your own application’ and enter a name in the input box that shows up. \r\n Check the radio button ‘integrate any other application you don’t…’\r\n
    \r\n \r\n

    \r\n
  4. \r\n
  5. \r\n Click ‘Single sign-on’ in the side nav of the application created in the last step then click into the button called ‘Saml’\r\n
    \r\n \r\n

    \r\n
  6. \r\n
  7. \r\n Click the edit button in the first card on the page. \r\n Set the entity Id to the URL ‘https://auth.paulconsulting.com/akpQU7kCvy9XvOI10SqipBRyLx’ but change the last \r\n string of letters to a random, unique value. Set the Reply Url to ‘https://emit.fdepcs.com/api/account/SsoRedirect’\r\n
    \r\n \r\n

    \r\n \r\n

    \r\n \r\n

    \r\n
  8. \r\n
  9. \r\n Set the Logout URL at the bottom of the edit page to ‘https://emit.fdepcs.com/login’ and then click save\r\n
    \r\n \r\n

    \r\n
  10. \r\n
  11. \r\n Go to ‘Users and groups’ in the side. Click ‘Add user/group’ and add users that will be allowed to login\r\n
    \r\n \r\n

    \r\n
  12. \r\n
  13. \r\n Copy the Entity Id and the Login Url and add them to your organization details.\r\n
    \r\n \r\n

    \r\n \r\n

    \r\n \r\n

    \r\n
  14. \r\n
\r\n
\r\n
\r\n}","import { HttpClient } from \"@angular/common/http\";\r\nimport { Component, inject, Input, OnInit, TemplateRef, ViewChild } from \"@angular/core\";\r\nimport { Validators } from \"@angular/forms\";\r\nimport { Title } from \"@angular/platform-browser\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { faBuilding } from \"@fortawesome/pro-solid-svg-icons\";\r\nimport { PcgSelectComponent } from \"app/shared/form-elements/components/pcg-select-component/select.component\";\r\nimport { UiSwitchComponent } from \"ngx-ui-switch\";\r\nimport { Observable, Subscription } from \"rxjs\";\r\nimport { tap } from \"rxjs/operators\";\r\n\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ActivationEnum } from \"app/core/enums/generated/ActivationEnum\";\r\nimport { BusinessAreaEnum } from \"app/core/enums/generated/BusinessAreaEnum\";\r\nimport { PermissionRole } from \"app/core/enums/generated/PermissionRole\";\r\nimport { SecurityService } from \"app/core/security/security.service\";\r\nimport { SystemMessage } from \"app/core/system-message/system-message-service\";\r\nimport { NotificationService } from 'app/notification.service';\r\nimport { validateForm } from 'app/shared/form-elements/form-validateForm.function';\r\nimport { MedicalDirectorVm } from 'app/shared/generated/Administration/Models/Facilities/MedicalDirectorVm';\r\nimport { EditOrganizationVm } from \"app/shared/generated/Administration/Models/Organizations/EditOrganizationVm\";\r\nimport { GenericFilesVm } from 'app/shared/generated/Models/GenericFilesVm';\r\nimport { FormatHelperService } from \"app/shared/helpers/format-helper.service\";\r\nimport { ActivationService } from \"app/shared/services/activation.service\";\r\n\r\n@Component({\r\n selector: \"pcg-shared-edit-organization\",\r\n templateUrl: \"./edit-organization.component.html\",\r\n styleUrls: [\"./edit-organization.component.scss\"],\r\n standalone: false\r\n})\r\nexport class EditOrganizationComponent implements OnInit {\r\n\t\r\n\t@ViewChild(\"isActive\", { static: false }) isActive: UiSwitchComponent;\r\n\t@ViewChild(\"isSameAddress\", { static: false }) isSameAddress: UiSwitchComponent;\r\n\t@ViewChild(\"isShipAddressValidated\", { static: false }) isShipAddressValidated: UiSwitchComponent;\r\n\t@ViewChild(\"addNewMD\", { static: true }) addNewMD: TemplateRef;\r\n\t@ViewChild(\"select\", { static: false }) select: PcgSelectComponent;\r\n\r\n\t@Input() businessArea: BusinessAreaEnum;\r\n\t\r\n\tmodel$: Observable;\r\n\tformGroup = EditOrganizationVm.Form;\r\n\tmodel = EditOrganizationVm.GetModel(this.formGroup);\r\n\tviewModel = new EditOrganizationVm();\t\r\n\r\n\tcanEdit = false;\r\n\tcanDeactivate = false;\r\n\tcanViewReports = false;\r\n\tcanManualEntry = true;\r\n\tshipAddressDisabled = false;\r\n\tcanAccess = false;\r\n\r\n\tid: number;\r\n\tfacilityIds: number[] = [];\r\n\r\n\torganizationName: string;\r\n\toldShipSmartyAddress: string;\r\n\toldShipOrganizationName: string;\r\n\tapi = \"api/Select/SmartyCounties\";\r\n\r\n\tfaIconName = { faBuilding };\r\n\r\n\tnewMD = new MedicalDirectorVm();\t\r\n mdFormGroup = MedicalDirectorVm.Form;\r\n subscriptions = new Subscription();\r\n medicalDirectorFiles: GenericFilesVm[] = [];\r\n\r\n deleteClicked = false;\r\n hasFile = false;\r\n clearFileClick = false;\r\n\r\n\tmodalService = inject(NgbModal);\r\n\t\r\n\tconstructor(\r\n\t\tpublic router: Router\r\n\t\t, public notification: NotificationService\r\n\t\t, private route: ActivatedRoute\r\n\t\t, private httpClient: HttpClient\r\n\t\t, private sec: SecurityService\r\n\t\t, private activationService: ActivationService\r\n\t\t, title: Title\r\n\t) { title.setTitle(\"Edit Organization\"); }\r\n\r\n\tngOnInit() {\r\n\t\tconst bae = BusinessAreaEnum;\r\n\t\tconst pr = PermissionRole;\r\n\r\n\t\tthis.canEdit = this.sec.hasModuleAccess(\r\n\t\t\t[bae.CI, bae.MetabolicFormula, bae.Admin],\r\n\t\t\t[pr.UserAdmin, ...SecurityService.setMinRole(pr.Manager)]\r\n\t\t);\r\n\r\n\t\tthis.canViewReports = this.sec.hasModuleAccess(\r\n\t\t\t[bae.CI, bae.Admin], \r\n\t\t\t[pr.UserAdmin, ...SecurityService.setMinRole(pr.Manager)]\r\n\t\t);\r\n\r\n\t\tthis.editOrganization();\r\n\r\n\t\tif (\r\n\t\t\tFormatHelperService.GetIsNully(this.businessArea) \r\n\t\t\t|| this.businessArea === bae.Admin\r\n\t\t) {\r\n\t\t\tif (this.sec.hasModuleAccess([bae.Admin], [...SecurityService.setMinRole(pr.SystemAdmin)])) {\r\n\t\t\t\tthis.canEdit = true;\r\n\t\t\t\tthis.canDeactivate = true;\r\n\t\t\t}\r\n\t\t} \r\n\r\n\t\tthis.setCanAccess();\r\n\t}\r\n\r\n\tsetCanAccess() {\r\n\t\tthis.canAccess = this.sec.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.Admin],\r\n\t\t\t[...SecurityService.setMinRole(PermissionRole.User)]\r\n\t\t);\r\n\t}\r\n\r\n\teditOrganization() {\r\n\t\tthis.route.paramMap.subscribe((map) => {\r\n\t\t\tthis.id = parseInt(map.get(\"id\"), 10);\r\n\t\t\tthis.model$ = this.httpClient.get(`api/Administration/Organization/GetOrganization/${this.id}`)\r\n\t\t\t\t.pipe(tap((vm: EditOrganizationVm) => {\r\n\t\t\t\t\tif (vm.countyId === 0) { vm.countyId = null; } \r\n\t\t\t\t\t// preventing a blank selection on load\r\n\t\t\t\t\tthis.formGroup.setValue(vm);\r\n\t\t\t\t\tthis.model = EditOrganizationVm.GetModel(this.formGroup);\r\n\t\t\t\t\tthis.viewModel = vm;\r\n\t\t\t\t\tthis.organizationName = vm.organizationName;\r\n\t\t\t\t\tthis.oldShipOrganizationName = this.model.shipOrganizationName;\r\n\t\t\t\t\tthis.oldShipSmartyAddress = this.model.shipSmartyAddress;\r\n\t\t\t\t\tthis.toggleShippingFormActivation(!this.model.isSameAddress);\r\n\t\t\t\t\tthis.facilityIds = vm.facilityIds;\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t});\r\n\t}\r\n\r\n\tactivateDeactivate = () => this.activationService.activateDeactivate(\r\n\t\tthis.id\r\n\t\t, ActivationEnum.Organization\r\n\t\t, this.formGroup.value.isActive ? false : true\r\n\t);\r\n\r\n\tupdateShippingInfo() {\r\n\t\tthis.formGroup.controls.countyName.patchValue(this.formGroup.controls.smartyAddress.value.countyName);\r\n\t\tif (this.isSameAddress.checked) {\r\n\t\t\tthis.formGroup.get(\"shipOrganizationName\").patchValue(this.formGroup.value.organizationName);\r\n\t\t\tthis.formGroup.get(\"shipSmartyAddress\").patchValue(this.formGroup.value.smartyAddress);\r\n\t\t\tthis.toggleShippingFormActivation(false);\r\n\t\t} else {\r\n\t\t\tthis.formGroup.get(\"shipOrganizationName\").patchValue(this.oldShipOrganizationName);\r\n\t\t\tthis.formGroup.get(\"shipSmartyAddress\").patchValue(this.oldShipSmartyAddress);\r\n\t\t\tthis.toggleShippingFormActivation(true);\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleShippingFormActivation(isActive: Boolean) {\r\n\t\tif (isActive) {\r\n\t\t\tthis.enableShipOrganizationName();\r\n\t\t\tthis.shipAddressDisabled = false;\r\n\t\t} else {\r\n\t\t\tthis.disableShipOrganizationName();\r\n\t\t\tthis.shipAddressDisabled = true;\r\n\t\t}\r\n\t}\r\n\r\n\tvalidateCountyId() {\r\n\t\tif (this.formGroup?.value?.countyId === 0) {\r\n\t\t\tthis.formGroup?.controls?.countyId?.patchValue(null);\r\n\t\t\tthis.model = EditOrganizationVm.GetModel(this.formGroup);\r\n\t\t}\r\n\t\tthis.formGroup.updateValueAndValidity();\r\n\t}\r\n\r\n\tsubmitForms() {\r\n\t\tif (!this.formGroup.valid) {\r\n\t\t\tvalidateForm(this.formGroup);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tlet disabled = this.hasDisabledShipOrganizationName();\r\n\t\t// As a result of moving this to a .ts POST method, disabled values\r\n\t\t// won't go through within the request body.\r\n\t\tif (this.hasDisabledShipOrganizationName) { this.enableShipOrganizationName(); }\r\n\r\n\t\tthis.httpClient.post(\r\n\t\t\t`api/Administration/Organization/SaveOrganization`,\r\n\t\t\tthis.formGroup.value\r\n\t\t).subscribe((sm: SystemMessage) => {\r\n\t\t\t// Re-disable property after POST request.\r\n\t\t\tif (disabled) { this.disableShipOrganizationName(); }\r\n\t\t\tif (sm.isSuccessful) { this.onMessageSuccess(sm); } \r\n\t\t\telse { this.onMessageError(sm); }\r\n\t\t});\r\n\t}\r\n\r\n\treroute(sm: SystemMessage) {\r\n\t\tif (\r\n\t\t\tthis.businessArea === BusinessAreaEnum.Admin \r\n\t\t\t|| FormatHelperService.GetIsNully(this.businessArea) \r\n\t\t\t|| Number.isNaN(this.businessArea)\r\n\t\t) {\r\n\t\t\tthis.router.navigate([`/admin/organizations/orgs/edit/${sm.value}`]);\r\n\t\t} else if (this.businessArea === BusinessAreaEnum.CI) {\r\n\t\t\tthis.router.navigate([`/ci-repack/facilities/edit/${sm.value}`]);\r\n\t\t} else if (this.businessArea === BusinessAreaEnum.MetabolicFormula) {\r\n\t\t\tthis.router.navigate([`/metabolic-formula/facilities/edit/${sm.value}`]);\r\n\t\t}\r\n\t}\r\n\r\n\tenableShipOrganizationName() {\r\n\t\tthis.formGroup.get(\"shipOrganizationName\").enable();\r\n\t\tthis.formGroup.get(\"shipSmartyAddress\").enable();\r\n\t}\r\n\r\n\tdisableShipOrganizationName() {\r\n\t\tthis.formGroup.get(\"shipOrganizationName\").disable();\r\n\t\tthis.formGroup.get(\"shipSmartyAddress\").disable();\r\n\t}\r\n\r\n\tmedDirectorChange(select: PcgSelectComponent) {\r\n\t\tif (select.value) {\r\n\t\t\tthis.model.medicalDirectorLicense = select.additionalData?.licenseNumber;\r\n\t\t\tthis.model.medicalDirectorExpDate = select.additionalData?.expirationDate;\r\n\t\t} else {\r\n\t\t\tthis.model.medicalDirectorLicense = \"\";\r\n\t\t\tthis.model.medicalDirectorExpDate = \"\";\r\n\t\t}\r\n\t}\r\n\r\n\tonSingleFacilityChange() {\r\n\t\tif (this.model.isSingleFacility) {\r\n\t\t\tthis.formGroup.controls.facilityIdentifier.addValidators([Validators.required]);\r\n\t\t} else {\r\n\t\t\tthis.formGroup.controls.facilityIdentifier.removeValidators([Validators.required]);\r\n\t\t}\r\n\t\tthis.formGroup.controls.facilityIdentifier.updateValueAndValidity();\r\n\t}\r\n\r\n\tsetSysMessage = (sm: SystemMessage) => this.notification.showMessage(sm.message, sm.messageClass);\t\r\n\thasDisabledShipOrganizationName = () => this.formGroup.get(\"shipOrganizationName\").disabled;\t\r\n\tgoBack = () => window.history.back();\r\n\r\n\tonMessageSuccess(sm: SystemMessage) {\r\n\t\tthis.setSysMessage(sm);\r\n\t\tthis.formGroup.setValue(sm.model);\r\n\t\tthis.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() => { this.reroute(sm); });\r\n\t}\r\n\r\n\tonMessageError(sm: SystemMessage) {\r\n\t\tthis.setSysMessage(sm);\r\n\t\tthis.formGroup.patchValue(sm.model);\r\n\t}\r\n\r\n\taddMedicalDirector(name) {\r\n\t\tthis.newMD.fullName = FormatHelperService.ToTitleCase(name).trim();\r\n\t\tthis.newMD.medicalDirectorId = 0;\r\n this.mdFormGroup.patchValue(this.newMD); \r\n\t\tthis.mdFormGroup.updateValueAndValidity();\r\n this.medicalDirectorFiles = this.newMD?.medicalDirectorFiles;\r\n if (!FormatHelperService.GetIsNullyOrWhitespace(this.mdFormGroup.controls.licenseFileName.value)) { this.hasFile = true; }\r\n else { this.hasFile = false; }\r\n\t\tthis.modalService.open(this.addNewMD, { animation: false });\r\n\t\treturn false;\r\n\t}\r\n\r\n\tsaveNewMedicalDirector() {\r\n if (validateForm(this.mdFormGroup)) { \r\n if (this.canEdit === true) {\r\n this.subscriptions.add(this.notification.getHttpObservable(`api/Administration/MedicalDirector/Save${this.id == 0 ? \"\" : \"/\" + this.id }`, this.mdFormGroup)\r\n .subscribe(msg => {\r\n if (msg.isSuccessful) { \r\n\t\t\t\t\t\t this.formGroup.controls.medicalDirectorId.patchValue(msg.value);\r\n\t\t\t\t\t\t this.select.getData();\r\n\t\t\t\t\t\t if (this.id == 0) this.submitForms(); // need to look into saving this in the first backend hit.\r\n this.modalService.dismissAll();\r\n }\r\n }));\r\n }\r\n } \r\n return false; \r\n }\r\n}\r\n","@if (canAccess) {\r\n\r\n \r\n\r\n \r\n @if (model$ | async) {\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n @if (model.facilityId === 0) {\r\n In order to create a Organization you will need to enter the following\r\n information.\r\n }\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n @if (canDeactivate) {\r\n
\r\n
\r\n

\r\n This Organization is deactivated.\r\n

\r\n @if (\r\n canEdit\r\n && model.organizationId !== 0\r\n ) {\r\n {{ model.isActive ? 'Deactivate' : 'Reactivate'\r\n }}\r\n }\r\n \r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n \r\n {{ model?.medicalDirectorLicense }}\r\n
\r\n\r\n
\r\n \r\n {{ model?.medicalDirectorExpDate }}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n \r\n {{ this.formGroup?.controls?.countyName?.value }}\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n {{\r\n this.formGroup?.controls?.shipOrganizationName?.value }}\r\n \r\n\r\n \r\n \r\n {{\r\n this.formGroup?.controls?.shipSmartyAddress?.value?.formattedAddress\r\n }}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n \r\n Single Facility\r\n

\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n @if (canEdit) {\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n @if (\r\n id !== 0\r\n && (model$ | async)\r\n ) {\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n\r\n \r\n @if (\r\n id !== 0\r\n && canViewReports\r\n ) {\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n
\r\n }\r\n
\r\n
\r\n}\r\n\r\n\r\n\r\n
\r\n
Add Medical Director
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n
\r\n \r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
\r\n
","import { NgModule } from \"@angular/core\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport { TableModule } from \"app/shared/table/table.module\";\r\n\r\n@NgModule({\r\n declarations: []\r\n , imports: [\r\n CommonModule\r\n , TableModule\r\n ]\r\n , exports: []\r\n})\r\nexport class EditOrganizationsModule {}","import { trigger, state, style, animate, transition, query, stagger } from '@angular/animations';\r\n\r\n/**\r\n * Notes on animations:\r\n * \t\tA trigger is the parent container of any angular animation. Triggers are assigned to elements in the template like this: [@triggerName]\r\n *\r\n * \t\tDifferent states are defined with the state functions. First argument is the name of the state, and the second argument is a style function\r\n * \t\tStyle function just contains an object with properties similar to css property names, except in camelCase. e.g. line-height css property becomes lineHeight object property\r\n *\r\n * \t\tTransitions take two arguments, a descriptor of which state is being transferred to/from with an arrow in between, and an animate function.\r\n * \t\tThe animate function sets the time it takes for the animation to complete and what type of curve is used.\r\n *\r\n * \t\tThe state of the trigger can be set with an expression in the template, e.g.
\r\n */\r\n\r\nexport const detailExpand = trigger('detailExpand', [\r\n\tstate(\r\n\t\t'collapsed',\r\n\t\tstyle({ height: '0px', opacity: 0, lineHeight: '0em', padding: '0rem .75rem', border: '0px solid #dee2e6' })\r\n\t),\r\n\tstate('expanded', style({ height: '*', lineHeight: '2em', padding: '0.6rem .75rem', border: '1px solid #dee2e6' })),\r\n\ttransition('expanded <=> collapsed', animate('180ms cubic-bezier(0.4, 0.0, 0.2, 1)')),\r\n]);\r\n\r\nexport const tableEntry = trigger('tableEntry', [\r\n\ttransition(':enter', [\r\n\t\tstyle({ height: '0px', opacity: 0, lineHeight: '0em', padding: '0rem .75rem', border: '0px solid #dee2e6' }),\r\n\t\tanimate(\r\n\t\t\t'180ms cubic-bezier(0.4, 0.0, 0.2, 1)',\r\n\t\t\tstyle({ height: '*', lineHeight: '2em', padding: '0.6rem .75rem', border: '1px solid #dee2e6' })\r\n\t\t),\r\n\t]),\r\n\ttransition(':leave', [\r\n\t\tstyle({ height: '*', lineHeight: '2em', padding: '0.6rem .75rem', border: '1px solid #dee2e6' }),\r\n\t\tanimate(\r\n\t\t\t'180ms cubic-bezier(0.4, 0.0, 0.2, 1)',\r\n\t\t\tstyle({ height: '0px', opacity: 0, lineHeight: '0em', padding: '0rem .75rem', border: '0px solid #dee2e6' })\r\n\t\t),\r\n\t]),\r\n]);\r\n\r\nexport const notificationSlide = trigger('notificationSlide', [\r\n transition(':enter', [\r\n style({\r\n transform: 'translateX({{direction}})',\r\n opacity: 0,\r\n top: '*',\r\n bottom: '*'\r\n }),\r\n animate('300ms ease-in', style({ transform: 'translateX(0)', opacity: 1 }))\r\n ]),\r\n transition(':leave', [\r\n style({\r\n transform: 'translateX(0)',\r\n opacity: 0.5\r\n }),\r\n animate('300ms ease-in', style({ transform: 'translateX({{direction}})', opacity: 0 }))\r\n ]),\r\n transition('* => *', [\r\n animate('300ms ease-in', style({ top: '*', bottom: '*' }))\r\n ])\r\n])\r\n","import { UntypedFormGroup, UntypedFormControl, UntypedFormArray, Validators } from '@angular/forms';\r\n\r\nimport { PcgTableColumn } from '../../../../table/interfaces/pcg-table-column.interface';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class OrganizationListVm {\r\n\torganizationId: number;\r\n\torganizationName?: string;\r\n\taddress?: string;\r\n\tcity?: string;\r\n\tstate?: string;\r\n\tzip?: string;\r\n\tcounty?: string;\r\n\tcountyId?: number;\r\n\tisActive?: string;\r\n\tcanDelete?: boolean;\r\n\tisParent?: boolean;\r\n\torgCount: number;\r\n\tfacilityCount: number;\r\n\r\n\tstatic get FormData() {\r\n\t\treturn this.getFormData();\r\n\t}\r\n\r\n\tstatic getFormData(validators = {}) {\r\n\t\treturn {\r\n\t\t\t'organizationId': new UntypedFormControl(0, [...(validators['organizationId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'organizationName': new UntypedFormControl(null, [...(validators['organizationName'] ?? []), ...[]]),\r\n\t\t\t'address': new UntypedFormControl(null, [...(validators['address'] ?? []), ...[]]),\r\n\t\t\t'city': new UntypedFormControl(null, [...(validators['city'] ?? []), ...[]]),\r\n\t\t\t'state': new UntypedFormControl(null, [...(validators['state'] ?? []), ...[]]),\r\n\t\t\t'zip': new UntypedFormControl(null, [...(validators['zip'] ?? []), ...[]]),\r\n\t\t\t'county': new UntypedFormControl(null, [...(validators['county'] ?? []), ...[]]),\r\n\t\t\t'countyId': new UntypedFormControl(null, [...(validators['countyId'] ?? []), ...[]]),\r\n\t\t\t'isActive': new UntypedFormControl(null, [...(validators['isActive'] ?? []), ...[]]),\r\n\t\t\t'canDelete': new UntypedFormControl(null, [...(validators['canDelete'] ?? []), ...[]]),\r\n\t\t\t'isParent': new UntypedFormControl(null, [...(validators['isParent'] ?? []), ...[]]),\r\n\t\t\t'orgCount': new UntypedFormControl(0, [...(validators['orgCount'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityCount': new UntypedFormControl(0, [...(validators['facilityCount'] ?? []), ...[Validators.required]])\r\n\t\t};\r\n\t}\r\n\r\n\tstatic get Form() {\r\n\t\treturn new UntypedFormGroup(this.FormData);\r\n\t}\r\n\r\n\tstatic get ColumnDefs(): Map {\r\n\t\treturn new Map([\r\n\t\t\t['organizationName', {\"orderId\":0,\"sortColumn\":\"organizationName\",\"searchColumn\":\"organizationName\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Organization\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['address', {\"orderId\":1,\"sortColumn\":\"address\",\"searchColumn\":\"address\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Address\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['city', {\"orderId\":2,\"sortColumn\":\"city\",\"searchColumn\":\"city\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"City\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['county', {\"orderId\":3,\"sortColumn\":\"county\",\"searchColumn\":\"county\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"County\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['isActive', {\"orderId\":4,\"sortColumn\":\"isActive\",\"searchColumn\":\"isActive\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Is Active?\",\"isVisible\":false,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['facilityCount', {\"orderId\":5,\"sortColumn\":\"facilityCount\",\"searchColumn\":\"facilityCount\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Facilities\",\"isVisible\":true,\"canSearch\":true,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}],\r\n\t\t\t['canDelete', {\"orderId\":6,\"sortColumn\":\"canDelete\",\"searchColumn\":\"canDelete\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Delete\",\"isVisible\":false,\"canSearch\":false,\"isNdc\":false,\"isNdc10\":false,\"isSum\":false,\"multiSearchCellClasses\":null,\"requiresFullAccess\":false,\"cellClass\":null,\"cellTransform\":null,\"cellNavigationColumn\":null}]\r\n\t\t]);\r\n\t}\r\n\r\n\tstatic GetModel(fg: UntypedFormGroup): OrganizationListVmFromFg {\r\n\t\treturn new OrganizationListVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class OrganizationListVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget organizationId(): number {\r\n\t\treturn this.fg.get('organizationId').value;\r\n\t}\r\n\tset organizationId(val) {\r\n\t\tthis.fg.get('organizationId').setValue(val);\r\n\t}\r\n\r\n\tget organizationName(): string {\r\n\t\treturn this.fg.get('organizationName').value;\r\n\t}\r\n\tset organizationName(val) {\r\n\t\tthis.fg.get('organizationName').setValue(val);\r\n\t}\r\n\r\n\tget address(): string {\r\n\t\treturn this.fg.get('address').value;\r\n\t}\r\n\tset address(val) {\r\n\t\tthis.fg.get('address').setValue(val);\r\n\t}\r\n\r\n\tget city(): string {\r\n\t\treturn this.fg.get('city').value;\r\n\t}\r\n\tset city(val) {\r\n\t\tthis.fg.get('city').setValue(val);\r\n\t}\r\n\r\n\tget state(): string {\r\n\t\treturn this.fg.get('state').value;\r\n\t}\r\n\tset state(val) {\r\n\t\tthis.fg.get('state').setValue(val);\r\n\t}\r\n\r\n\tget zip(): string {\r\n\t\treturn this.fg.get('zip').value;\r\n\t}\r\n\tset zip(val) {\r\n\t\tthis.fg.get('zip').setValue(val);\r\n\t}\r\n\r\n\tget county(): string {\r\n\t\treturn this.fg.get('county').value;\r\n\t}\r\n\tset county(val) {\r\n\t\tthis.fg.get('county').setValue(val);\r\n\t}\r\n\r\n\tget countyId(): number {\r\n\t\treturn this.fg.get('countyId').value;\r\n\t}\r\n\tset countyId(val) {\r\n\t\tthis.fg.get('countyId').setValue(val);\r\n\t}\r\n\r\n\tget isActive(): string {\r\n\t\treturn this.fg.get('isActive').value;\r\n\t}\r\n\tset isActive(val) {\r\n\t\tthis.fg.get('isActive').setValue(val);\r\n\t}\r\n\r\n\tget canDelete(): boolean {\r\n\t\treturn this.fg.get('canDelete').value;\r\n\t}\r\n\tset canDelete(val) {\r\n\t\tthis.fg.get('canDelete').setValue(val);\r\n\t}\r\n\r\n\tget isParent(): boolean {\r\n\t\treturn this.fg.get('isParent').value;\r\n\t}\r\n\tset isParent(val) {\r\n\t\tthis.fg.get('isParent').setValue(val);\r\n\t}\r\n\r\n\tget orgCount(): number {\r\n\t\treturn this.fg.get('orgCount').value;\r\n\t}\r\n\tset orgCount(val) {\r\n\t\tthis.fg.get('orgCount').setValue(val);\r\n\t}\r\n\r\n\tget facilityCount(): number {\r\n\t\treturn this.fg.get('facilityCount').value;\r\n\t}\r\n\tset facilityCount(val) {\r\n\t\tthis.fg.get('facilityCount').setValue(val);\r\n\t}\r\n}\r\n","// tslint:disable: quotemark\r\n// eslint-disable-next-line no-shadow\r\nexport enum CollapsibleTableRowStateEnum {\r\n\tExpanded = 'expanded',\r\n\tCollapsed = 'collapsed'\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CollapsibleTableRowStateEnum } from 'app/core/enums/CollapsibleTableRowStateEnum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CollapsibleTableService {\r\n //Current set of expanded rows\r\n\texpandedRows = new Set();\r\n\r\n\tconstructor() {}\t\r\n\r\n\t/**\r\n\t * Toggle a row expanded or collapsed; the opposite of what it is currently;\r\n\t *\r\n\t * @param row the row to toggle\r\n\t */\r\n\ttoggleRow(row: number) {\r\n\t\tif (this.expandedOrCollapsed(row) === CollapsibleTableRowStateEnum.Expanded) {\r\n\t\t\tthis.setCollapsed(row);\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.setExpanded(row);\r\n\t}\r\n\r\n\t/**\r\n\t * Expand a row\r\n\t *\r\n\t * @param row the row that we would like to expand\r\n\t */\r\n\tsetExpanded(row: number) {\r\n\t\tthis.expandedRows.add(row);\r\n\t}\r\n\r\n\t/**\r\n\t * Collapse a row\r\n\t *\r\n\t * @param row the row to collapse\r\n\t */\r\n\tsetCollapsed(row: number) {\r\n\t\tthis.expandedRows.delete(row);\r\n\t}\r\n\r\n\t/**\r\n\t * Toggles expanding of all rows at once\r\n\t *\r\n\t * @param length The length of the current number of rows\r\n\t */\r\n\ttoggleAllRows(length: number) {\r\n\t\tif (this.expandedRows.size > 0) {\r\n\t\t\tthis.expandedRows.clear();\r\n\t\t} else {\r\n\t\t\tthis.expandedRows = new Set([...Array(length).keys()]);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Collapses all rows at once\r\n\t */\r\n\tcollapseAllRows() {\r\n\t\tif (this.expandedRows.size > 0) {\r\n\t\t\tthis.expandedRows.clear();\r\n\t\t} \r\n\t}\r\n\r\n\t/**\r\n\t * Function to use in the template to determine of if a row should be expanded or collapsed\r\n\t *\r\n\t * @param row the row that we would like to see if its expanded or collapsed\r\n\t */\r\n\texpandedOrCollapsed(row: number) {\r\n\t\tif (this.expandedRows.has(row)) {\r\n\t\t\treturn CollapsibleTableRowStateEnum.Expanded;\r\n\t\t}\r\n\t\treturn CollapsibleTableRowStateEnum.Collapsed;\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, OnInit, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { CollapsibleTableService } from 'app/core/collapsible-table/collapsible-table.service';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { detailExpand } from 'app/shared/animations/shared-animations';\r\nimport { OrganizationListVm } from 'app/shared/generated/Administration/Models/Organizations/OrganizationListVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { PcgTableResult } from \"app/shared/table/interfaces/pcg-table-result.interface\";\r\nimport { ButtonFilterService } from 'app/shared/table/table-top/button-filter/button-filter.service';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\n\r\n@Component({\r\n selector: 'pcg-shared-organization-list',\r\n templateUrl: './organizations-list.component.html',\r\n styleUrls: ['./organizations-list.component.scss'],\r\n animations: [detailExpand],\r\n standalone: false\r\n})\r\nexport class OrganizationsListComponent implements OnInit {\r\n\r\n @ViewChild(TableComponent, { static: false}) table: TableComponent;\r\n\r\n @Input() businessArea: BusinessAreaEnum = BusinessAreaEnum.Admin;\r\n @Input() header: string;\r\n @Input() filterMap = {\r\n\t\t\"isActive\": \"Is Active\"\r\n , \"medicalDirectorId\": \"Medical Director\"\r\n , \"facilityId\": \"Facility\"\r\n\t};\r\n @Input() groupByCounty = false;\r\n @Input() showByCounty = false;\r\n\r\n filters = {\r\n isActive: true\r\n , medicalDirectorId: null\r\n , facilityId: null\r\n };\r\n\r\n initFilters = {\r\n isActive: true\r\n , medicalDirectorId: null\r\n , facilityId: null\r\n };\r\n baseEditRoles = [ \r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ];\r\n\r\n hasOrgs = true;\r\n tableReceiveCount = 0;\r\n canAdd = false;\r\n canDelete = false;\r\n hasData = false;\r\n columns = OrganizationListVm.ColumnDefs;\r\n orgList: OrganizationListVm[] = [];\r\n\r\n constructor(\r\n private formatHelper: FormatHelperService\r\n , public btnFilterService: ButtonFilterService\r\n , public security: SecurityService\r\n , public router: Router\r\n , private httpClient: HttpClient\r\n , public collapsibleTableService: CollapsibleTableService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.canAdd = this.security.hasModuleAccess(\r\n [\r\n BusinessAreaEnum.Admin\r\n , BusinessAreaEnum.CI\r\n , BusinessAreaEnum.MetabolicFormula\r\n ]\r\n , [ PermissionRole.SystemAdmin ]\r\n );\r\n this.canDelete = this.security.hasModuleAccess(\r\n [ this.businessArea ]\r\n , [ PermissionRole.SystemAdmin ]\r\n );\r\n this.btnFilterService.resetFilterData.subscribe(() => { this.resetFilters(); });\r\n\r\n if (\r\n this.showByCounty \r\n && this.groupByCounty\r\n ) { this.getGroupedByCountyList(); }\r\n }\r\n\r\n getGroupedByCountyList() {\r\n this.groupByCounty = !this.groupByCounty;\r\n if (this.groupByCounty === true) {\r\n this.httpClient.get(`api/Administration/Organization/GetOrganizationList` \r\n + `?isActive=${this.filters.isActive}`\r\n + `&facilityId=${this.filters.facilityId}`\r\n + `&medicalDirectorId=${this.filters.medicalDirectorId}`\r\n ).subscribe((lst: OrganizationListVm[]) => { this.orgList = lst; });\r\n }\r\n }\r\n\r\n resetFilters() {\r\n\t\tthis.filters = Object.assign(this.filters, this.initFilters);\r\n\t\tthis.reloadTable();\r\n\t}\r\n\r\n tableCallback = (tableResult: PcgTableResult) => {\r\n // Only set hasOrgs on page load. Ignore repeat ajaxReloads\r\n if (\r\n tableResult.recordsTotal === 0 \r\n && this.tableReceiveCount < 1\r\n ) { this.hasOrgs = false; }\r\n this.tableReceiveCount++;\r\n }\r\n\r\n canEditOrganization = (): boolean => this.security.hasModuleAccess(\r\n [ this.businessArea ]\r\n , [\r\n PermissionRole.UserAdmin\r\n , ...SecurityService.setMinRole(PermissionRole.Manager)\r\n ]\r\n ) \r\n || this.security.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , [ ...SecurityService.setMinRole(PermissionRole.User) ]\r\n );\r\n\r\n editOrganizationLink(): string {\r\n switch(this.businessArea) {\r\n case BusinessAreaEnum.CI: return '/ci-repack/organizations/edit/';\r\n case BusinessAreaEnum.MetabolicFormula: return '/metabolic-formula/organizations/edit/';\r\n default: return '/admin/organizations/orgs/edit/';\r\n }\r\n }\r\n \r\n navigateToNewOrganization(): void { this.router.navigateByUrl(`admin/organizations/orgs/edit/0`); }\r\n\r\n reloadTable() {\r\n\t this.table.hideShowColumn('isActive', this.formatHelper.GetIsNully(this.filters.isActive));\r\n this.table.ajaxReload();\r\n }\r\n\r\n filterParents() { \r\n\t\tconst lst = this.orgList.filter(o => o.isParent === true); \r\n\t\tif (lst.length > 0) { this.hasData = true; }\r\n\t\treturn lst; \r\n\t}\r\n\r\n filterChildren(row: OrganizationListVm) {\r\n return this.orgList.filter(o => \r\n o.isParent === false \r\n && o.countyId === row.countyId \r\n ); \r\n }\r\n}\r\n","@if (!hasOrgs) {\r\n\t
\r\n\t\tIn order to see this list you must be associated to at least one Organization.\r\n\t\tPlease contact an administrator for assistance.\r\n\t
\r\n}\r\n\r\n\r\n\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\tOrganization View\r\n\t\t\t\tCounty View\r\n\t\t\t\r\n\t\t
\r\n\t
\r\n\t\r\n\t@if (groupByCounty) {\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\t\t\t\t
{{ collapsibleTableService.expandedRows.size > 0 ? '-' : '+' }}
\r\n\t\t\t\t\t\t
OrganizationsCountyAddressFacilities
\r\n\t\t\t\t\t\t\t\t
{{ collapsibleTableService.expandedOrCollapsed(i) === 'expanded' ? '-' : '+' }}
\r\n\t\t\t\t\t\t\t
{{ row.orgCount }}{{ row.county }}{{ row.facilityCount }}
\r\n\t\t\t\t\t\t\t\t\t{{ rowchild.organizationName }}\r\n\t\t\t\t\t\t\t\t{{ rowchild.address }}, {{ rowchild.city }}, {{ rowchild.state }} {{ rowchild.zip }}{{ rowchild.facilityCount }}
\r\n\t\t
\r\n\t} @else {\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tYes\r\n\t\t\t\t\t\t\t\tNo\r\n\t\t\t\t\t\t\t\tAll\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t
\r\n\r\n\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{{ columns.get('organizationName').displayName }}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{{ row.organizationName }}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{{ columns.get('address').displayName }}\r\n\t\t\t\t\t{{ row.address }}, {{ row.city }}, {{ row.state }} {{ row.zip }}\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{{ columns.get('city').displayName }}\r\n\t\t\t\t\t{{ row.city }}\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{{ columns.get('county').displayName }}\r\n\t\t\t\t\t{{ row.county }}\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{{ columns.get('isActive').displayName }}\r\n\t\t\t\t\t{{ row.isActive }}\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{{ columns.get('facilityCount').displayName }}\r\n\t\t\t\t\t{{ row.facilityCount }}\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\tDelete\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t@if (\r\n\t\t\t\t\t\t\tcanDelete \r\n\t\t\t\t\t\t\t&& row.canDelete\r\n\t\t\t\t\t\t) {\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\r\n\t\t
\r\n\t}\t\r\n
","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Pipe({\r\n name: 'safe',\r\n standalone: false\r\n})\r\nexport class SafePipe implements PipeTransform {\r\n constructor(private sanitizer: DomSanitizer) {}\r\n transform(url) {\r\n return this.sanitizer.bypassSecurityTrustResourceUrl(url);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'utcToLocal',\r\n standalone: false\r\n})\r\nexport class UtcToLocalPipe implements PipeTransform {\r\n transform(utcTimeString: string): Date {\r\n if (!utcTimeString) { return null }\r\n const utcDate = new Date(utcTimeString);\r\n const millisecondsPerMinute = 60000;\r\n const minutes = utcDate.getTimezoneOffset()\r\n // Local DT is determined by the UTC date minus the offset by timezone.\r\n const localDateTime = new Date(utcDate.getTime() - (minutes * millisecondsPerMinute)) \r\n return localDateTime;\r\n }\r\n}\r\n","/* eslint-disable @typescript-eslint/naming-convention */\r\n/* eslint-disable no-underscore-dangle */\r\nimport { AnimationEvent, animate, state, style, transition, trigger } from '@angular/animations';\r\nimport { CdkStepper, StepContentPositionState } from '@angular/cdk/stepper';\r\nimport { AfterContentInit, Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { distinctUntilChanged, takeUntil } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'pcg-stepper',\r\n templateUrl: './stepper.component.html',\r\n styleUrls: ['./stepper.component.scss'],\r\n providers: [{ provide: CdkStepper, useExisting: StepperComponent }],\r\n animations: [\r\n trigger('stepTransition', [\r\n state('previous', style({ opacity: 0 })),\r\n state('current', style({ opacity: 1 })),\r\n state('next', style({ opacity: 0 })),\r\n transition('* => *', animate('500ms ease-out')),\r\n ]),\r\n ],\r\n standalone: false\r\n})\r\nexport class StepperComponent extends CdkStepper implements AfterContentInit {\r\n\t/** If true, non-visible step content will be removed from DOM. Otherwise it will just be hidden. */\r\n\t@Input() destroyOnHide = false;\r\n\r\n\t@Input() canMoveForward: (index: number) => boolean;\r\n\r\n\t@Input() isChild: boolean;\r\n\r\n\t@Input() parentStep: number;\r\n\r\n\t/** Disable specific steps from being clicked by the user*/\r\n\t@Input() disableSpecificStepClicks: number[] = [];\r\n\r\n\t/** Event emitted when step swapping animation is complete. */\r\n\t@Output() readonly animationDone: EventEmitter = new EventEmitter();\r\n\r\n\t/** Emits the new step number on step change. */\r\n\t@Output() current: EventEmitter = new EventEmitter();\r\n\r\n\t/** Emits the new step number only on manual click of step. */\r\n\t@Output() stepperNumberManuallyClicked: EventEmitter = new EventEmitter();\r\n\r\n\t/** Maintain a getter list of what the display attribute should be for each step\r\n\t * Should be block for current step, hidden for everything else **/\r\n\tget stepDisplay() {\r\n\t\treturn Array.apply(null, new Array(this._steps.length)).map((o, i) =>\r\n\t\t\ti === this.selectedIndex ? 'block' : 'none'\r\n\t\t);\r\n\t}\r\n\r\n\t/** Keep track of the previous step */\r\n\tlastIndex: number;\r\n\tcurrentStep = 0;\r\n\tget selectedIndex() {\r\n\t\tif (this.currentStep < super.selectedIndex) {\r\n\t\t\tthis.currentStep = super.selectedIndex\r\n\t\t}\r\n\t\treturn super.selectedIndex;\r\n\t}\r\n\tset selectedIndex(index: number) {\r\n\t\tif (!this.canMoveForward || this.canMoveForward(index)) {\r\n\t\t\tthis.lastIndex = this.selectedIndex;\r\n\t\t\tsuper.selectedIndex = index;\r\n\t\t}\r\n\t}\r\n\r\n\t_animationDone = new Subject();\r\n\r\n\t/**\r\n\t * Main function to swap to a new step\r\n\t *\r\n\t * @param index The number of the step being selected\r\n\t */\r\n\tselectStepByIndex(index: number): void {\r\n\t\tthis.selectedIndex = index;\r\n\t\tthis.current.emit(index);\r\n\t}\r\n\r\n\t/**\r\n\t * Called on manual select of step to emit event.\r\n\t *\r\n\t * @param index The number of the step being selected\r\n\t */\r\n\tmanualClick(index: number) {\r\n\t\tif (!this.disableSpecificStepClicks.includes(index)) {\r\n\t\t\tthis.selectStepByIndex(index);\r\n\t\t\tthis.stepperNumberManuallyClicked.emit(index);\r\n\t\t}\r\n\t}\r\n\r\n\tngAfterContentInit() {\r\n\t\tsuper.ngAfterContentInit();\r\n\r\n\t\tthis._steps.changes.pipe(takeUntil(this._destroyed)).subscribe(() => {\r\n\t\t\tthis._stateChanged();\r\n\t\t});\r\n\r\n\t\tthis._animationDone\r\n\t\t\t.pipe(\r\n\t\t\t\t// This needs a `distinctUntilChanged` in order to avoid emitting the same event twice due\r\n\t\t\t\t// to a bug in animations where the `.done` callback gets invoked twice on some browsers.\r\n\t\t\t\t// See https://github.com/angular/angular/issues/24084\r\n\t\t\t\tdistinctUntilChanged((x, y) => x.fromState === y.fromState && x.toState === y.toState),\r\n\t\t\t\ttakeUntil(this._destroyed)\r\n\t\t\t)\r\n\t\t\t.subscribe(event => {\r\n\t\t\t\tif ((event.toState as StepContentPositionState) === 'current') {\r\n\t\t\t\t\tthis.animationDone.emit();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t}\r\n}\r\n","
\r\n\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t
i - 1) || (i < currentStep || i === currentStep)\" class=\"d-flex\">\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t
i - 1 }\">\r\n\t\t\t\t\t{{ parentStep }}.{{ i + 1 }}\r\n\t\t\t\t\t{{ i + 1 }}\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t
i - 1) && (i > currentStep)\" class=\"d-flex\">\r\n\t\t\t\t\r\n\t\t\t\t
i - 1 }\">\r\n\t\t\t\t\t{{ parentStep }}.{{ i + 1 }}\r\n\t\t\t\t\t{{ i + 1 }}\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t
\r\n\t
\r\n\t
\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t \r\n\t\t\t\r\n\t\t
\r\n\t\r\n
\r\n","import { CdkStepperModule } from '@angular/cdk/stepper';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n\r\nimport { StepperComponent } from './stepper.component';\r\n\r\n@NgModule({\r\n\tdeclarations: [ StepperComponent ],\r\n\timports: [\r\n\t\tCommonModule, FormsModule, RouterModule,\r\n\t\tCdkStepperModule, FontAwesomeModule\r\n\t],\r\n\texports: [ StepperComponent, CdkStepperModule ]\r\n})\r\nexport class StepperModule { }\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { faInfoCircle } from '@fortawesome/pro-solid-svg-icons';\r\n\r\n@Component({\r\n selector: 'pcg-tooltip-label',\r\n templateUrl: './tooltip-label.component.html',\r\n styleUrls: ['./tooltip-label.component.scss'],\r\n standalone: false\r\n})\r\nexport class TooltipLabelComponent implements OnInit {\r\n\r\n @Input() tooltip: string;\r\n @Input() labelText: string;\r\n @Input() tooltipPlacement: string;\r\n @Input() labelFontSize: string;\r\n\r\n faIconName = { faInfoCircle };\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n}\r\n","
\r\n \r\n
\r\n
\r\n \r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TooltipComponent } from './tooltip.component';\r\n\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule\r\n\t],\r\n\tdeclarations: [TooltipComponent],\r\n\texports: [TooltipComponent]\r\n})\r\nexport class TooltipModule { \r\n\t\r\n}\r\n","import { CodeEditor } from '@acrodata/code-editor';\r\nimport { DragDropModule } from \"@angular/cdk/drag-drop\";\r\nimport { CdkStepperModule } from \"@angular/cdk/stepper\";\r\nimport { CdkTableModule } from \"@angular/cdk/table\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { FontAwesomeModule } from \"@fortawesome/angular-fontawesome\";\r\nimport { NgbDatepickerModule, NgbModalModule, NgbNavModule, NgbTooltipModule, NgbTypeaheadModule } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { NgSelectModule } from \"@ng-select/ng-select\";\r\nimport { UiSwitchModule } from \"ngx-ui-switch\";\r\n\r\nimport { AuthGuard } from \"app/core/security/auth.guard\";\r\nimport { InvChoiceModalComponent } from \"app/fulfillment/inv-choice-modal/inv-choice-modal.component\";\r\nimport { ShipmentListRxModalComponent } from \"app/fulfillment/shipment-list-rx-modal/shipment-list-rx-modal.component\";\r\nimport { RxCommentsModalComponent } from \"app/inventory/rx-fulfillment/edit-rx-fulfillment/helpers/comments-modal/comments-modal.component\";\r\nimport { PatientPhiCardComponent } from \"app/inventory/rx-fulfillment/edit-rx-fulfillment/helpers/patient-phi-card/patient-phi-card.component\";\r\nimport { ShipmentListComponent } from \"app/inventory/rx-fulfillment/shipment-list/shipment-list.component\";\r\nimport { ScanRxComponent } from \"app/inventory/scan-rx/scan-rx.component\";\r\nimport { ScanProductComponent } from \"app/shared/scan-product/scan-product.component\";\r\nimport { AuditHistoryComponent } from \"./audit-history/audit-history.component\";\r\nimport { VerificationSettingsComponent } from './authentication/verification-settings/verification-settings.component';\r\nimport { BarcodeScannerStrichComponent } from \"./barcode-scanner-strich/barcode-scanner-strich.component\";\r\nimport { BounceAlertComponent } from \"./bounce-alert/bounce-alert.component\";\r\nimport { CiWorkstationComponent } from \"./ci-workstation/ci-workstation.component\";\r\nimport { SharedCommentsModalComponent } from \"./comments-modal/comments-modal.component\";\r\nimport { ConversationsComponent } from \"./conversations/conversations.component\";\r\nimport { FaCountComponent } from \"./fa-num-icon/fa-count/fa-count.component\";\r\nimport { FaNumIconComponent } from \"./fa-num-icon/fa-num-icon.component\";\r\nimport { EditFacilityComponent } from \"./facilities/edit-facility/edit-facility.component\";\r\nimport { FacilitiesListComponent } from \"./facilities/facilities-list/facilities-list.component\";\r\nimport { FacilityAuditHistoryComponent } from './facilities/facility-audit-history/facility-audit-history.component';\r\nimport { CiBusinessAreaComponent } from \"./facilities/facility-business-areas/ci-business-area/ci-business-area.component\";\r\nimport { FaciltyBusinessAreasComponent } from \"./facilities/facility-business-areas/facilty-business-areas.component\";\r\nimport { InventoryBusinessAreaComponent } from \"./facilities/facility-business-areas/inventory-business-area/inventory-business-area.component\";\r\nimport { MetabolicBusinessAreaComponent } from \"./facilities/facility-business-areas/metabolic-business-area/metabolic-business-area.component\";\r\nimport { FacilityCardinalAccountsComponent } from \"./facilities/facility-cardinal-accounts/facility-cardinal-accounts.component\";\r\nimport { InventoriesModule } from \"./facilities/facility-inventories/inventories.module\";\r\nimport { FacilityUserListComponent } from \"./facilities/facility-user-list/facility-user-list.component\";\r\nimport { FormElementsModule } from \"./form-elements/form-elements.module\";\r\nimport { ImageSliderModule } from \"./image-slider/image-slider.module\";\r\nimport { MaterialsModule } from \"./material.module\";\r\nimport { NavigationModule } from \"./navigation/navigation.module\";\r\nimport { EditOrganizationFacilityComponent } from \"./organizations/edit-organization-facility/edit-organization-facility.component\";\r\nimport { AssociatedUsersComponent } from \"./organizations/edit-organization/edit-organization-tabs/associated-users/associated-users.component\";\r\nimport { EditOrganizationComponent } from \"./organizations/edit-organization/edit-organization.component\";\r\nimport { EditOrganizationsModule } from './organizations/edit-organization/edit-organization.module';\r\nimport { OrgFacilityInventoriesComponent } from \"./organizations/org-facility-inventories/org-facility-inventories.component\";\r\nimport { OrganizationAccountsComponent } from \"./organizations/organization-accounts/organization-accounts.component\";\r\nimport { OrganizationAuditHistoryComponent } from \"./organizations/organization-audit-history/organization-audit-history.component\";\r\nimport { OrganizationFacilityListComponent } from \"./organizations/organization-facility-list/organization-facility-list.component\";\r\nimport { OrganizationLoginsComponent } from \"./organizations/organization-logins/organization-logins.component\";\r\nimport { OrganizationsListComponent } from \"./organizations/organizations-list/organizations-list.component\";\r\nimport { ProgramsAccountsInfographicComponent } from './organizations/programs-accounts-infographic/programs-accounts-infographic.component';\r\nimport { SafePipe } from './pipes/safe.pipe';\r\nimport { UtcToLocalPipe } from \"./pipes/utcToLocalDate.pipe\";\r\nimport { PrimeNgModule } from \"./primeNg.module\";\r\nimport { StepperModule } from \"./stepper/stepper.module\";\r\nimport { TableModule } from \"./table/table.module\";\r\nimport { TooltipLabelComponent } from './tooltip-label/tooltip-label.component';\r\nimport { TooltipModule } from \"./tooltip/tooltip.module\";\r\n\r\nconst routes = [\r\n\t{\r\n\t\tpath: \"audit-history/:id\"\r\n\t\t, component: AuditHistoryComponent\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t}\r\n\t, {\r\n\t\tpath: \"audit-history/:id/:vmType/:auditName\"\r\n\t\t, component: AuditHistoryComponent\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t}\r\n\t, {\r\n\t\tpath: \"ci-repack/admin/settings/audit-history/:id\"\r\n\t\t, component: AuditHistoryComponent\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t}\r\n\t, {\r\n path: \"ci-repack/admin/boxes/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"ci-repack/admin/label-printers/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"ci-repack/admin/office-printers/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"ci-repack/admin/zebra-printers/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"ci-repack/admin/plates/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"ci-repack/admin/rework-reasons/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"ci-repack/admin/workstations/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"error-report/admin/report-builder/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"error-report/admin/error-types/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"error-report/admin/permission-levels/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"support/admin/categories/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"support/admin/priorities/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"support/admin/statuses/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"support/admin/template-responses/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"support/dashboard-settings/upcoming-features/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"support/dashboard-settings/support-settings/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"support/tickets/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"heros/admin/ordering-options/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"icq/admin/sections/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"icq/admin/issues/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"icq/admin/questions/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n path: \"icq/admin/settings/audit-history/:id\"\r\n , component: AuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n , canLoad: [ AuthGuard ]\r\n }\r\n\t, {\r\n\t\tpath: \"ndcs/fda/audit-history/:id\"\r\n\t\t, component: AuditHistoryComponent\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t}\r\n\t, {\r\n\t\tpath: \"ba/admin/fiscal-years/audit-history/:id\"\r\n\t\t, component: AuditHistoryComponent\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t}\r\n];\r\n\r\n/**\r\n * SharedModule exists to make commonly used components, directives,\r\n * and pipes available for use in the templates of components throughout\r\n * the application.\r\n */\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tAuditHistoryComponent\r\n\t\t, BounceAlertComponent\r\n\t\t, RxCommentsModalComponent\r\n\t\t, SharedCommentsModalComponent\r\n\t\t, FaCountComponent\r\n\t\t, FaNumIconComponent\r\n\t\t, InvChoiceModalComponent\r\n\t\t, PatientPhiCardComponent\r\n\t\t, ScanProductComponent\r\n\t\t, ScanRxComponent\r\n\t\t, ShipmentListComponent\r\n\t\t, ShipmentListRxModalComponent\r\n\t\t, FacilitiesListComponent\r\n\t\t, EditFacilityComponent\r\n\t\t, FacilityCardinalAccountsComponent\r\n\t\t, FacilityAuditHistoryComponent\r\n\t\t, FacilityUserListComponent\r\n\t\t, OrganizationsListComponent\r\n\t\t, EditOrganizationComponent\r\n\t\t, OrganizationFacilityListComponent\r\n\t\t, AssociatedUsersComponent\r\n\t\t, EditOrganizationFacilityComponent\r\n\t\t, OrgFacilityInventoriesComponent\r\n\t\t, OrganizationAuditHistoryComponent\r\n\t\t, OrganizationAccountsComponent\r\n\t\t, OrganizationLoginsComponent\r\n\t\t, SafePipe\r\n\t\t, UtcToLocalPipe\r\n\t\t, CiWorkstationComponent\r\n\t\t, CiBusinessAreaComponent\r\n\t\t, InventoryBusinessAreaComponent\r\n\t\t, MetabolicBusinessAreaComponent\r\n\t\t, ConversationsComponent\r\n\t\t, FaciltyBusinessAreasComponent\t\r\n\t\t, VerificationSettingsComponent\r\n\t\t, BarcodeScannerStrichComponent\r\n\t\t, TooltipLabelComponent\r\n\t\t, ProgramsAccountsInfographicComponent\r\n\t]\r\n\t, imports: [\r\n\t\tCdkStepperModule\r\n\t\t, CdkTableModule\r\n\t\t, CommonModule\r\n\t\t, FontAwesomeModule\r\n\t\t, FormElementsModule\r\n\t\t, FormsModule\r\n\t\t, MaterialsModule\r\n\t\t, NavigationModule\r\n\t\t, NgbDatepickerModule\r\n\t\t, NgbModalModule\r\n\t\t, NgbNavModule\r\n\t\t, NgbTooltipModule\r\n\t\t, NgbTypeaheadModule\r\n\t\t, NgSelectModule\r\n\t\t, ReactiveFormsModule\r\n\t\t, RouterModule.forChild(routes)\r\n\t\t, StepperModule\r\n\t\t, TableModule\r\n\t\t, TooltipModule\r\n\t\t, UiSwitchModule\r\n\t\t, ImageSliderModule\r\n\t\t, DragDropModule\r\n\t\t// The architecture for these modules are bit\r\n\t\t// messy. We need to be better about breaking groups\r\n\t\t// of components out into their modules.\r\n\t\t, InventoriesModule\r\n\t\t, EditOrganizationsModule\r\n\t\t, CodeEditor\r\n\t\t, PrimeNgModule\r\n\t]\r\n\t, exports: [\r\n\t\tAuditHistoryComponent\r\n\t\t, BounceAlertComponent\r\n\t\t, CdkStepperModule\r\n\t\t, CdkTableModule\r\n\t\t, RxCommentsModalComponent\r\n\t\t, SharedCommentsModalComponent\r\n\t\t, CommonModule\r\n\t\t, FaCountComponent\r\n\t\t, FaNumIconComponent\r\n\t\t, FontAwesomeModule\r\n\t\t, FormElementsModule\r\n\t\t, FormsModule\r\n\t\t, InvChoiceModalComponent\r\n\t\t, MaterialsModule\r\n\t\t, NavigationModule\r\n\t\t, NgbDatepickerModule\r\n\t\t, NgbModalModule\r\n\t\t, NgbNavModule\r\n\t\t, NgbTooltipModule\r\n\t\t, NgbTypeaheadModule\r\n\t\t, NgSelectModule\r\n\t\t, PatientPhiCardComponent\r\n\t\t, ReactiveFormsModule\r\n\t\t, ScanProductComponent\r\n\t\t, ScanRxComponent\r\n\t\t, ShipmentListComponent\r\n\t\t, ShipmentListRxModalComponent\r\n\t\t, StepperModule\r\n\t\t, TableModule\r\n\t\t, TooltipModule\r\n\t\t, UiSwitchModule\r\n\t\t, FacilitiesListComponent\r\n\t\t, EditFacilityComponent\r\n\t\t, FacilityCardinalAccountsComponent\r\n\t\t, FacilityAuditHistoryComponent\r\n\t\t, FacilityUserListComponent\r\n\t\t, OrganizationsListComponent\r\n\t\t, EditOrganizationComponent\r\n\t\t, OrganizationFacilityListComponent\r\n\t\t, EditOrganizationFacilityComponent\r\n\t\t, OrgFacilityInventoriesComponent\r\n\t\t, OrganizationAuditHistoryComponent\r\n\t\t, OrganizationAccountsComponent\r\n\t\t, OrganizationLoginsComponent\r\n\t\t, SafePipe\r\n\t\t, UtcToLocalPipe\r\n\t\t, CiWorkstationComponent\r\n\t\t, CiBusinessAreaComponent\r\n\t\t, InventoryBusinessAreaComponent\r\n\t\t, MetabolicBusinessAreaComponent\r\n\t\t, ImageSliderModule\r\n\t\t, ConversationsComponent\r\n\t\t, FaciltyBusinessAreasComponent\r\n\t\t, DragDropModule\r\n\t\t, VerificationSettingsComponent\r\n\t\t, BarcodeScannerStrichComponent\r\n\t\t, CodeEditor\r\n\t\t, TooltipLabelComponent\r\n\t\t, PrimeNgModule\r\n\t]\r\n})\r\nexport class SharedModule {}\r\n"],"mappings":"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","names":["toggleComment","target","state","line","config","getConfig","toggleLineComment","toggleBlockCommentByLine","command","f","option","dispatch","tr","changeLineComment","toggleBlockComment","command","changeBlockComment","toggleBlockCommentByLine","command","o","s","changeBlockComment","selectedLineRanges","getConfig","state","pos","data","SearchMargin","findBlockComment","open","close","from","to","textBefore","textAfter","spaceBefore","spaceAfter","beforeOff","startText","endText","startSpace","endSpace","endOff","ranges","r","fromLine","toLine","last","option","tokens","c","comments","i","range","changes","comment","token","changeLineComment","lines","prevLine","startI","minIndent","line","indent","empty","l","single","changeSet","fromHistory","Annotation","isolateHistory","invertedEffects","Facet","historyConfig","configs","combineConfig","_t","isAdjacent","a","b","tr","adj","historyField_","StateField","HistoryState","config","fromHist","item","HistEvent","other","updateBranch","addSelection","isolate","Transaction","event","time","userEvent","value","e","json","history","EditorView","view","undo","redo","cmd","side","selection","state","dispatch","historyState","historyField_","tr","undo","redo","undoSelection","redoSelection","HistEvent","_HistEvent","changes","effects","mapped","startSelection","selectionsAfter","after","_a","_b","_c","s","json","ChangeSet","ChangeDesc","EditorSelection","tr","selection","none","invert","invertedEffects","result","selections","updateBranch","branch","to","maxLen","newEvent","start","newBranch","isAdjacent","a","b","ranges","f","t","_f","_t","i","from","eqSelectionShape","r","conc","MaxSelectionsPerEvent","addSelection","lastEvent","sels","popSelection","last","addMappingToBranch","mapping","length","event","mapEvent","extraSelections","mappedChanges","before","fullMapping","StateEffect","joinableUserEvent","HistoryState","done","undone","prevTime","prevUserEvent","time","userEvent","config","newGroupDelay","side","state","onlySelection","fromHistory","rest","historyKeymap","undo","redo","undoSelection","redoSelection","updateSel","sel","by","setSel","moveSel","dispatch","how","rangeEnd","range","forward","cursorByChar","view","ltrAtCursor","Direction","cursorCharLeft","cursorCharRight","cursorByGroup","view","forward","moveSel","range","rangeEnd","cursorGroupLeft","ltrAtCursor","cursorGroupRight","segmenter","interestingNode","state","node","bracketProp","len","moveBySyntax","start","forward","pos","syntaxTree","NodeProp","at","next","bracket","match","newPos","matchBrackets","EditorSelection","cursorSyntaxLeft","view","moveSel","range","ltrAtCursor","cursorSyntaxRight","cursorByLine","rangeEnd","moved","cursorLineUp","cursorLineDown","pageInfo","selfScroll","marginTop","marginBottom","height","source","EditorView","margins","cursorByPage","page","selection","updateSel","effect","startPos","scrollRect","scrollTop","scrollBottom","setSel","cursorPageUp","cursorPageDown","moveByLineBoundary","line","space","cursorLineBoundaryForward","cursorLineBoundaryBackward","cursorLineBoundaryLeft","cursorLineBoundaryRight","cursorLineStart","cursorLineEnd","toMatchingBracket","dispatch","extend","found","matching","head","cursorMatchingBracket","extendSel","view","how","selection","updateSel","range","head","EditorSelection","setSel","selectByChar","forward","selectCharLeft","ltrAtCursor","selectCharRight","selectByGroup","view","forward","extendSel","range","selectGroupLeft","ltrAtCursor","selectGroupRight","selectSyntaxLeft","view","extendSel","range","moveBySyntax","ltrAtCursor","selectSyntaxRight","selectByLine","forward","selectLineUp","selectLineDown","selectByPage","pageInfo","selectPageUp","selectPageDown","selectLineBoundaryForward","moveByLineBoundary","selectLineBoundaryBackward","selectLineBoundaryLeft","selectLineBoundaryRight","selectLineStart","EditorSelection","selectLineEnd","cursorDocStart","state","dispatch","setSel","cursorDocEnd","selectDocStart","selectDocEnd","selectAll","selectLine","ranges","selectedLineBlocks","from","to","selectParentSyntax","selection","updateSel","_a","stack","syntaxTree","cur","node","simplifySelection","deleteBy","target","by","event","changes","towards","skipAtomic","EditorView","pos","f","deleteByChar","byIndentUnit","line","before","targetPos","col","countColumn","drop","getIndentUnit","i","findClusterBreak","deleteCharBackward","deleteCharForward","view","deleteByChar","deleteByGroup","target","forward","deleteBy","range","pos","state","line","categorize","cat","next","findClusterBreak","nextChar","nextCat","deleteGroupBackward","deleteGroupForward","deleteToLineEnd","lineEnd","deleteLineBoundaryBackward","view","deleteBy","range","lineStart","deleteLineBoundaryForward","splitLine","state","dispatch","changes","range","Text","EditorSelection","transposeChars","pos","line","from","findClusterBreak","to","selectedLineBlocks","blocks","upto","startLine","endLine","prev","moveLine","forward","ranges","block","nextLine","size","r","moveLineUp","moveLineDown","copyLine","copyLineUp","copyLineDown","deleteLine","view","selection","updateSel","dist","isBetweenBrackets","state","pos","context","syntaxTree","before","after","closedBy","NodeProp","insertNewlineAndIndent","newlineAndIndent","insertBlankLine","atEof","dispatch","changes","range","from","to","line","explode","cx","IndentContext","indent","getIndentation","countColumn","insert","indentString","Text","EditorSelection","changeBySelectedLine","f","atLine","changeSet","indentSelection","updated","start","found","cur","norm","indentMore","indentUnit","indentLess","space","col","keep","getIndentUnit","toggleTabFocusMode","view","emacsStyleKeymap","cursorCharLeft","selectCharLeft","cursorCharRight","selectCharRight","cursorLineUp","selectLineUp","cursorLineDown","selectLineDown","cursorLineStart","selectLineStart","cursorLineEnd","selectLineEnd","deleteCharForward","deleteCharBackward","deleteToLineEnd","deleteGroupBackward","splitLine","transposeChars","cursorPageDown","standardKeymap","cursorGroupLeft","selectGroupLeft","cursorLineBoundaryLeft","selectLineBoundaryLeft","cursorGroupRight","selectGroupRight","cursorLineBoundaryRight","selectLineBoundaryRight","cursorDocStart","selectDocStart","cursorPageUp","selectPageUp","cursorDocEnd","selectDocEnd","selectPageDown","cursorLineBoundaryBackward","selectLineBoundaryBackward","cursorLineBoundaryForward","selectLineBoundaryForward","insertNewlineAndIndent","selectAll","deleteGroupForward","deleteLineBoundaryBackward","deleteLineBoundaryForward","b","defaultKeymap","cursorSyntaxLeft","selectSyntaxLeft","cursorSyntaxRight","selectSyntaxRight","moveLineUp","copyLineUp","moveLineDown","copyLineDown","simplifySelection","insertBlankLine","selectLine","selectParentSyntax","indentLess","indentMore","indentSelection","deleteLine","cursorMatchingBracket","toggleComment","toggleBlockComment","toggleTabFocusMode","indentWithTab","chalky","coral","cyan","invalid","ivory","stone","malibu","sage","whiskey","violet","darkBackground","highlightBackground","background","tooltipBackground","selection","cursor","oneDarkTheme","EditorView","ivory","background","cursor","selection","darkBackground","stone","highlightBackground","tooltipBackground","oneDarkHighlightStyle","HighlightStyle","tags","violet","coral","malibu","whiskey","chalky","cyan","sage","invalid","oneDark","syntaxHighlighting","crelt","elt","i","next","name","value","add","child","basicNormalize","x","SearchCursor","text","query","from","to","normalize","test","codePointAt","next","str","fromCodePoint","start","codePointSize","norm","i","pos","code","match","end","index","keep","empty","baseFlags","RegExpCursor","options","MultilineRegExpCursor","startLine","toCharEnd","skip","off","flattened","FlattenedDoc","_FlattenedDoc","doc","cached","flat","cachedFrom","validRegExp","source","line","createLineDialog","view","input","crelt","dom","event","dialogEffect","go","state","sign","ln","cl","percent","col","pc","docLine","selection","EditorSelection","EditorView","StateEffect","dialogField","StateField","value","tr","f","showPanel","val","gotoLine","panel","getPanel","effects","baseTheme$1","defaultHighlightOptions","highlightConfig","Facet","combineConfig","a","b","highlightSelectionMatches","ext","defaultTheme","matchHighlighter","matchDeco","Decoration","mainMatchDeco","insideWordBoundaries","check","CharCategory","insideWord","ViewPlugin","update","conf","sel","range","word","len","deco","part","cursor","v","selectWord","dispatch","newSel","findNextOccurrence","main","ranges","fullWord","cycled","r","selectNextOccurrence","searchedText","searchConfigFacet","configs","SearchPanel","SearchQuery","config","validRegExp","text","_","ch","other","RegExpQuery","StringQuery","state","from","to","st","EditorState","regexpCursor","stringCursor","QueryType","spec","SearchCursor","x","stringWordTest","doc","categorizer","buf","bufPos","charBefore","CharCategory","charAfter","curFrom","curTo","cursor","pos","start","range","_result","limit","ranges","add","RegExpCursor","regexpWordTest","str","index","findClusterBreak","_from","_to","match","size","result","m","setSearchQuery","StateEffect","togglePanel","searchState","StateField","SearchState","defaultQuery","value","tr","effect","createSearchPanel","f","showPanel","val","SearchState","query","panel","matchMark","Decoration","selectedMatchMark","searchHighlighter","ViewPlugin","view","searchState","update","state","builder","RangeSetBuilder","i","ranges","l","from","to","selected","r","v","searchCommand","f","openSearchPanel","findNext","next","selection","EditorSelection","config","searchConfigFacet","announceMatch","selectSearchInput","findPrevious","prev","selectMatches","selectSelectionMatches","dispatch","sel","main","cur","SearchCursor","replaceNext","changes","replacement","effects","EditorView","off","replaceAll","match","announceText","createSearchPanel","defaultQuery","fallback","_a","_b","_c","_d","_e","selText","SearchQuery","getSearchInput","getPanel","input","searchInput","setSearchQuery","togglePanel","StateEffect","searchExtensions","closeSearchPanel","searchKeymap","gotoLine","selectNextOccurrence","SearchPanel","crelt","phrase","button","name","onclick","content","e","runScopeHandlers","tr","effect","AnnounceMargin","Break","line","lineEnd","start","end","text","baseTheme","Prec","SelectedDiagnostic","from","to","diagnostic","LintState","_LintState","diagnostics","panel","selected","state","markedDiagnostics","diagnosticFilter","lintConfig","ranges","Decoration","d","DiagnosticWidget","findDiagnostic","after","found","spec","hideTooltip","tr","tooltip","result","line","e","setDiagnosticsEffect","maybeEnableLint","effects","lintState","StateEffect","lintExtensions","setDiagnosticsEffect","StateEffect","togglePanel","movePanelSelection","lintState","StateField","LintState","Decoration","value","tr","mapped","selected","panel","selPos","findDiagnostic","lintConfig","effect","LintPanel","f","showPanel","val","EditorView","s","activeMark","Decoration","lintTooltip","view","pos","side","diagnostics","lintState","found","stackStart","stackEnd","from","to","spec","diagnosticFilter","lintConfig","diagnosticsTooltip","crelt","d","renderDiagnostic","openLintPanel","field","maybeEnableLint","togglePanel","panel","getPanel","LintPanel","closeLintPanel","nextDiagnostic","sel","next","lintKeymap","openLintPanel","nextDiagnostic","lintConfig","Facet","input","i","x","combineConfig","a","b","u","assignKeys","actions","assigned","name","ch","c","renderDiagnostic","view","diagnostic","inPanel","_a","keys","crelt","action","i","fired","click","e","found","findDiagnostic","lintState","keyIndex","nameElt","DiagnosticWidget","WidgetType","other","PanelItem","LintPanel","_LintPanel","onkeydown","event","closeLintPanel","onclick","selected","diagnostics","needsSync","newSelectedItem","_start","_end","spec","item","j","sel","panel","scaleY","domPos","rm","prev","selectedIndex","field","selection","movePanelSelection","svg","content","attrs","underline","color","baseTheme","EditorView","lintExtensions","lintState","EditorView","state","selected","panel","Decoration","activeMark","hoverTooltip","lintTooltip","hideTooltip","baseTheme","basicSetup","lineNumbers","highlightActiveLineGutter","highlightSpecialChars","history","foldGutter","drawSelection","dropCursor","EditorState","indentOnInput","syntaxHighlighting","defaultHighlightStyle","bracketMatching","closeBrackets","autocompletion","rectangularSelection","crosshairCursor","highlightActiveLine","highlightSelectionMatches","keymap","closeBracketsKeymap","defaultKeymap","searchKeymap","historyKeymap","foldKeymap","completionKeymap","lintKeymap","minimalSetup","External","Annotation","CodeEditor","_CodeEditor","_elementRef","EventEmitter","EditorView","vu","tr","value","Compartment","basicSetup","minimalSetup","changes","EditorState","fn","isDisabled","effects","StateEffect","oneDark","placeholder","keymap","indentWithTab","indentUnit","highlightWhitespace","lang","name","alias","__ngFactoryType__","ɵɵdirectiveInject","ElementRef","ɵɵdefineComponent","booleanAttribute","ɵɵProvidersFeature","NG_VALUE_ACCESSOR","forwardRef","ɵɵInputTransformsFeature","ɵɵNgOnChangesFeature","rf","ctx","AuthGuard","sec","router","ms","constructor","canActivate","route","state","modules","data","undefined","roles","permissionRoles","user","getUser","checkSecurity","url","setSystemMessage","createUrlTree","canLoad","urlSegment","redirectUrl","window","location","href","replace","document","getElementsByTagName","isValid","isLoggedOn","navigateByUrl","encodeURIComponent","ɵɵinject","SecurityService","Router","SystemMessageService","factory","ɵfac","PatientDataVm","patientID","firstName","middleInitial","lastName","patientDOB","address","address2","city","state","zip","homePhone","facility","facilityCode","refillsRemaining","qs1Status","medicalRecordNumber","quantityPrescribed","ndc","expirationDate","lastFillDate","lastFillDateColor","within30DaysDate","within30DaysCreateddBy","nextFillDate","rxNumber","errorMessage","productName","pfsFormID","pfsProductId","pfsProgramId","pfsUnitOfMeasureId","pfsCountUom","pfsUrl","pfsRequestType","shipmentId","inventorySiteId","inventoryProductId","isFacility","isEos","isOverrideLastFillDate","isOverridePatientTransfer","isSoftStop","softStopDays","isHardStop","hardStopDays","inventories","drugClass","FormData","getFormData","validators","UntypedFormControl","Validators","required","UntypedFormArray","Form","UntypedFormGroup","GetModel","fg","PatientDataVmFromFg","constructor","get","value","val","setValue","RxDataStorageService","constructor","PatientData","IsFacility","resetInventoryChoiceModalData","factory","ɵfac","providedIn","NG_PIPE_DEF","isPipe","target","DESTROY","DECORATOR_APPLIED","getSymbol","destroyMethodName","markAsDecorated","type","createSubjectOnTheInstance","instance","symbol","Subject","completeSubjectOnTheInstance","unsubscribe","property","Subscription","unsubscribeIfPropertyIsArrayLike","decorateNgOnDestroy","ngOnDestroy","options","decorateProviderDirectiveOrComponent","decoratePipe","def","UntilDestroy","CLEANUP","CheckerHasBeenSet","setupSubjectUnsubscribedChecker","destroy$","isAngularInTestMode","runOutsideAngular","from","mergeMap","lContext","getLContext","lView","EMPTY","lCleanup","cleanupHasBeenExecuted$","createMessage","fn","Zone","_global","NG_DEV_MODE","overrideNonDirectiveInstanceMethod","originalDestroy","untilDestroyed","source","ensureClassIsDecorated","takeUntil","prototype","AI_LOT_NUMBER","AI_SERIAL_NUMBER","AI_GTIN","AI_EXPIRATION_DATE","AI_DICT","AI_OPTIONAL_MAX_DICT","InventoryService","httpClient","constructor","getNdcTypeahead","text$","pipe","debounceTime","distinctUntilChanged","switchMap","ndc","length","get","encodeURIComponent","getNdc10Typeahead","ndc10","map","response","slice","getNdcProductInfo","component","inventorySiteId","formatNdcProductInfoRequest","untilDestroyed","getIdProductInfo","id","formatIdProductInfoRequest","getInstockProductInfo","barcode","qtyPrescribed","isUser","console","log","formatInstockProductInfoRequest","productInfo","lotNumber","expirationDate","toLocaleDateString","serialNumber","getFastPackProductInfo","barcodeStr","formatFastPackProductInfo","getProductId","getSiteName","getCurrentStock","lotNum","expDate","serialNum","getCurrentInventoryByGfc","isActive","needsOrdering","validateRxReturn","inventoryProductId","getPatientInfo","shipmentId","scanned","getPatientInfoNoShipment","isFacility","scanGs1Barcode","delimiter","substr","getProductBarCodeFromPfsData","getProductBarCodeFromGs1Data","parseGs1Barcode","replace","gs1Data","guessedDelimiters","i","delimiterGuess","guessGs1Delimiter","push","array","split","parseNdc10FromGtin","Date","isPfs","expDateStr","AI_EXPIRATION_DATE","last2","convertZeroZeroToEndOfMonth","formatExpDateStr","timestamp","parse","isNaN","AI_GTIN","AI_LOT_NUMBER","toUpperCase","AI_SERIAL_NUMBER","gtin","lastDay","newDate","getDate","toString","excludedChars","bcChars","filter","o","includes","nonAsciiChars","nonAlphanumericChars","parsingAi","ai","val","parseObj","AI_DICT","AI_OPTIONAL_MAX_DICT","ɵɵinject","HttpClient","factory","ɵfac","providedIn","ScanRxComponent","httpClient","ms","inventoryService","router","rxDataStorageService","formatHelper","constructor","beepSuccess","Audio","beepError","isControlDown","autofocus","inputPlaceholder","id","inventoryId","navigateToShipment","hitApi","apiStr","isUser","scanSuccess","EventEmitter","scanSuccessFromList","scanSuccessInventoryList","scanError","scan","rxNumber","subscriptions","Subscription","formGroup","PatientDataVm","Form","model","patient","controlDown","event","key","controlUp","ngOnInit","basePath","document","getElementsByTagName","href","src","load","keyDown","nativeElement","value","preventDefault","scanBarcode","FormatHelperService","GetIsNullyOrWhitespace","barcodeStr","get","subscribe","ids","length","navigateByUrl","emit","play","validationMessage","GetIsNully","setSystemMessage","getPatientInfoNoShipment","IsFacility","processPatientInfo","getPatientInfo","emitScan","hasShipment","errorMessage","lastName","patchValue","PatientData","barcode","patientListDataModel","ɵɵdirectiveInject","HttpClient","SystemMessageService","InventoryService","Router","RxDataStorageService","selectors","viewQuery","rf","ctx","ɵɵlistener","$event","ɵɵresolveDocument","ɵɵelement","ɵɵelementStart","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵproperty","ɵɵtextInterpolate","__decorate","UntilDestroy","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","scanSuccessInventoryList","ɵɵadvance","ɵɵproperty","inv_r4","_r3","$implicit","chooseInventory","inventorySiteId","inventoryName","ɵɵtemplate","InvChoiceModalComponent_Conditional_8_div_3_Template","model","inventories","InvChoiceModalComponent","sec","router","ms","rxDataStorageService","httpClient","formatHelper","modal","selectPfsForm","patientDataFormGroup","PatientDataVm","Form","patientDataModel","GetModel","hasMultipleInvChoices","title","subTitle","canEdit","constructor","ngOnInit","hasModuleAccess","BusinessAreaEnum","Inventory","SecurityService","setMinRole","PermissionRole","Technician","IsFacility","GetIsNully","errorMessage","length","setSystemMessage","FormatNdc","ndc","rxNumber","invId","invName","isConfirmed","confirm","patientData","PatientData","isFacility","post","subscribe","returnData","undefined","address","address2","city","state","zip","navigateByUrl","encodeURIComponent","shipmentId","dismiss","error","ɵɵdirectiveInject","Router","SystemMessageService","RxDataStorageService","HttpClient","FormatHelperService","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","InvChoiceModalComponent_Conditional_7_Template","InvChoiceModalComponent_Conditional_8_Template","ɵɵtextInterpolate","ɵɵconditional","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","rxList","pfsNumber","ɵɵtextInterpolate","row_r2","patientFirstName","patientLastName","ɵɵelement","ɵɵproperty","faEOS","faEarlyRx","faTransfer","ɵɵtemplate","ShipmentListRxModalComponent_table_19_tbody_10_td_4_Template","ShipmentListRxModalComponent_table_19_tbody_10_td_5_Template","ShipmentListRxModalComponent_table_19_tbody_10_fa_icon_9_Template","ShipmentListRxModalComponent_table_19_tbody_10_fa_icon_10_Template","ShipmentListRxModalComponent_table_19_tbody_10_fa_icon_11_Template","rxNumber","isUser","productName","isEos","isEarlyRx","isTransfer","ShipmentListRxModalComponent_table_19_th_4_Template","ShipmentListRxModalComponent_table_19_th_5_Template","ShipmentListRxModalComponent_table_19_tbody_10_Template","ShipmentListRxModalComponent","http","ms","shipmentId","modal","reloadTable","EventEmitter","isEmpty","faRandom","faStepForward","faFilePrescription","constructor","ngOnInit","get","subscribe","rxListResult","setSystemMessage","emit","length","ɵɵdirectiveInject","HttpClient","SystemMessageService","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","ShipmentListRxModalComponent_h5_3_Template","ɵɵlistener","dismiss","ShipmentListRxModalComponent_table_19_Template","ShipmentListRxModalComponent_p_20_Template","FaIconName","faBell","faUser","faSearch","faPrescription","faPrescriptionBottle","faBoxOpen","faUserMd","faPrescriptionBottleAlt","faSun","faHourglassEnd","faClock","faHourglassHalf","faComments","faExclamationCircle","faExclamation","faExclamationTriangle","faAddressBook","faAddressCard","faCommentsRegular","faBellRegular","faPlus","faArrowRightArrowLeft","FaPositionUnits","FaIconPosition","constructor","topVal","rightVal","bottomVal","leftVal","units","top","right","bottom","left","positionUnits","getMyPositionUnits","getPositionUnits","percent","emphemeral","pixels","getPositionPropValue","value","unitString","FaNumColor","GlobalVariablesService","pharmInvName","signal","invName","isNavFixed","factory","ɵfac","providedIn","__decorate","UntilDestroy","ɵɵelement","ɵɵproperty","modal_r2","ctx_r2","shipmentId","isUser","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ɵɵtemplate","EditRxFulfillmentComponent_Conditional_9_Conditional_2_Template","ɵɵtextInterpolate2","isFacility","ɵɵconditional","EditRxFulfillmentComponent_Conditional_10_Conditional_2_Template","facilityName","ɵɵlistener","ɵɵrestoreView","_r4","ɵɵnextContext","ɵɵresetView","testZebraApi","_r5","changeDeliveryType","faTruck","_r6","getPackingSlip","_r8","setActivation","faCheck","_r9","isComplete","faTimes","EditRxFulfillmentComponent_Conditional_21_Conditional_0_Template","EditRxFulfillmentComponent_Conditional_21_Conditional_1_Template","isNotActive","_r10","completeStep1","uncompleteStep1","inventoryId","currentStep","canEdit","userSubmitted","qcCheck","qcCheckComplete","_r12","reloadStep4","completeStep2","stepper_r13","ɵɵreference","previous","qcCheck_r14","EditRxFulfillmentComponent_Conditional_27_Conditional_1_Template","_r11","reloadPage","completeStep3","undoQcCheck","submitShipment","selectedStep","ɵɵclassProp","shipmentPrinterId","EditRxFulfillmentComponent","route","httpClient","sec","modalService","ms","router","gvs","cdRef","notificationService","stepper","packages","prescriptions","submit","printerSelect","commentsCount","userId","canEditDeliveryType","canEditQc","auditHistoryAccess","isPcg","inventorySiteName","dataSource","backLink","printerSelectItem","user","faLevelDownAlt","faComments","commentPosition","FaIconPosition","FaPositionUnits","pixels","faNumColor","FaNumColor","faIconName","FaIconName","constructor","title","hasModuleAccess","BusinessAreaEnum","Inventory","SecurityService","setMinRole","PermissionRole","Technician","Pharmacist","getUser","id","isRxUser","setTitle","beforeunloadHandler","event","closeUserFromFulfillment","ngOnInit","parseInt","snapshot","paramMap","get","email","includes","ngAfterViewInit","getDetails","detectChanges","ngAfterContentChecked","reloadContent","selectedIndex","rxNumberSelect","clear","getData","triggerChanged","focusRx","getPrinter","openCommentsModal","modal","open","animation","beforeDismiss","subscribe","model","setCurrentStep","isSuccessful","hideShowSelection","inventoryName","pharmInvName","set","FormatHelperService","GetIsNullyOrWhitespace","openUsersWarningMessage","setSystemMessage","ConfirmationModalComponent","componentInstance","modalRef","confirmationMessage","result","then","emittedValue","msg","showMessage","message","messageClass","value","window","location","reload","catch","err","setTimeout","next","getQcCheck","navigateByUrl","post","table","ajaxReload","deliveryType","confirm","savePrinter","additionalData","sessionStorage","setItem","fedexPrinter","getItem","upsPrinter","items","sourceItems","find","o","undefined","setPrinter","localStorage","sm","ngOnDestroy","ɵɵdirectiveInject","Title","ActivatedRoute","HttpClient","NgbModal","SystemMessageService","Router","GlobalVariablesService","ChangeDetectorRef","NotificationService","selectors","viewQuery","rf","ctx","$event","ɵɵresolveWindow","EditRxFulfillmentComponent_ng_template_3_Template","ɵɵtemplateRefExtractor","EditRxFulfillmentComponent_Conditional_5_Template","EditRxFulfillmentComponent_Conditional_9_Template","EditRxFulfillmentComponent_Conditional_10_Template","EditRxFulfillmentComponent_Conditional_11_Template","ɵɵtwoWayListener","i0","_r1","ɵɵtwoWayBindingSet","EditRxFulfillmentComponent_Conditional_16_Template","EditRxFulfillmentComponent_Conditional_17_Template","commentsModal_r7","EditRxFulfillmentComponent_Conditional_20_Template","EditRxFulfillmentComponent_Conditional_21_Template","EditRxFulfillmentComponent_Conditional_26_Template","EditRxFulfillmentComponent_Conditional_27_Template","ɵɵtwoWayProperty","faCommentsRegular","success","ShipmentCommentVm","shipmentCommentId","shipmentId","pfsFormID","comment","commentorInfo","commentDateTime","strCommentDateTime","strTimeAgo","countPfsFormIds","pfsUrl","currentStep","commentList","FormData","getFormData","validators","UntypedFormControl","Validators","required","UntypedFormArray","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","ShipmentCommentVmFromFg","constructor","get","value","val","setValue","GenericCommentVm","id","parentId","commentorInfo","commentDate","commentDateStr","commentText","commentUserId","isEdit","isDelete","showEditDelete","showCommentDate","friendlyId","hasSeen","pfsFormID","pfsUrl","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","Form","UntypedFormGroup","GetModel","fg","GenericCommentVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","toggleConversationsMenu","ɵɵadvance","ɵɵproperty","faIconName","faComments","ɵɵtextInterpolate","header","faXmark","ɵɵtextInterpolate1","commentErrorString","row_r4","commentorInfo","pfsUrl","ɵɵsanitizeUrl","pfsFormID","ɵɵtemplate","ConversationsComponent_div_3_Conditional_1_Conditional_1_Conditional_1_Template","ConversationsComponent_div_3_Conditional_1_Conditional_1_Conditional_4_Template","ɵɵconditional","isSysAdmin","isAssignee","showCommenterInfo","commentDateStr","fromFulfillment","_r5","$implicit","showCommentDate","commentText","ɵɵsanitizeHtml","ConversationsComponent_div_3_Conditional_1_Conditional_1_Template","ConversationsComponent_div_3_Conditional_1_Conditional_2_Template","commentList","i_r7","commentUserId","isEdit","ConversationsComponent_div_3_Conditional_2_Conditional_1_Conditional_3_Template","_r8","showEditDelete","ConversationsComponent_div_3_Conditional_2_Conditional_1_Template","ConversationsComponent_div_3_Conditional_2_Conditional_2_Template","ɵɵtwoWayListener","$event","_r9","i0","ɵɵtwoWayBindingSet","saveEditComment","ɵɵtwoWayProperty","_r10","editComment","deleteComment","ɵɵclassMap","isMobile","faPen","faTrash","_r11","noDeleteClick","yesDeleteClick","_r12","cancelEditComment","faSave","faCancel","ConversationsComponent_div_3_Conditional_4_Conditional_1_Template","ConversationsComponent_div_3_Conditional_4_Conditional_2_Template","ConversationsComponent_div_3_Conditional_4_Conditional_3_Template","isDelete","statusClosed","_r3","ConversationsComponent_div_3_Conditional_1_Template","ConversationsComponent_div_3_Conditional_2_Template","ConversationsComponent_div_3_Conditional_3_Template","ConversationsComponent_div_3_Conditional_4_Template","user","id","item_r14","value","text","_r13","newTemplateId","templateChange","target","ConversationsComponent_Conditional_8_option_5_Template","ɵɵpureFunction0","_c1","templateItems","ConversationsComponent","sec","httpClient","sm","router","parentId","getUrl","saveUrl","deleteUrl","isShowingConvo","useTemplateResponses","templateResponseApi","usesSidenav","isHeros","herosId","herosPrimary","herosSecondary","herosTertiary","pfsFormId","autoRefresh","autoRefreshInterval","closeConvo","EventEmitter","successDataReturn","deleteReturn","subscriptions","Subscription","isCommentError","newCommentText","editCommentText","faMessages","faPaperPlaneTop","faMessagePlus","xDown","yDown","source","interval","subscribe","next","getComments","complete","constructor","onResize","GlobalService","setIsMobile","window","innerWidth","ngOnInit","getUser","hasModuleAccess","BusinessAreaEnum","HelpDesk","SecurityService","setMinRole","PermissionRole","SystemAdmin","getTemplateItems","document","addEventListener","evt","handleTouchStart","handleTouchMove","refreshConvo","pipe","ngAfterViewInit","autoScroll","setTimeout","elem","getElementById","scrollTop","scrollHeight","get","list","add","items","findItem","find","o","toString","additionalData","responseMessage","openTemplateDropdown","event","MouseEvent","dispatchEvent","saveNewComment","form","GenericCommentVm","insertLinkTags","post","isSuccessful","model","emit","message","url","encodeURIComponent","row","unsubscribe","getHttpObservable","firstTouch","touches","originalEvent","clientX","clientY","xUp","yUp","xDiff","yDiff","Math","abs","txt","stringWithLinkTag","includes","words","split","i","length","join","ngOnDestroy","ɵɵdirectiveInject","HttpClient","SystemMessageService","Router","selectors","hostBindings","rf","ctx","ɵɵresolveWindow","ConversationsComponent_Conditional_0_Template","ConversationsComponent_Conditional_2_Template","ConversationsComponent_div_3_Template","ConversationsComponent_Conditional_8_Template","ɵɵpureFunction3","_c0","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵpropertyInterpolate","ctx_r0","pfsFormIdLink","ɵɵsanitizeUrl","ɵɵtextInterpolate","formId","ɵɵproperty","ɵɵpureFunction2","_c1","inventoryId","shipmentId","ɵɵtemplate","RxCommentsModalComponent_Conditional_10_Conditional_3_Template","RxCommentsModalComponent_Conditional_10_Conditional_4_Template","ɵɵconditional","countPfs","RxCommentsModalComponent","sec","route","httpClient","pfsFormSelect","editRxFulfillment","modal","isUser","user","formGroup","ShipmentCommentVm","Form","constructor","ngOnInit","user$","subscribe","Number","snapshot","params","getPfsForm","get","msg","model","pfsFormId","controls","pfsFormID","setValue","pfsUrl","countPfsFormIds","ɵɵdirectiveInject","SecurityService","ActivatedRoute","HttpClient","selectors","viewQuery","rf","ctx","EditRxFulfillmentComponent","ɵɵlistener","dismiss","RxCommentsModalComponent_Conditional_10_Template","value","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r1","facilityCodeValidationError","ɵɵelement","addressValidationError","ɵɵclassProp","patientData","address","ɵɵproperty","googleAddress","ɵɵsanitizeUrl","faEOS","faEarlyRx","faTransfer","PatientPhiCardComponent","http","constructor","isFacility","shipmentId","refreshQs1","EventEmitter","faUser","faRandom","faStepForward","faFilePrescription","faRefresh","ngOnInit","encodedAddress","encodeURIComponent","address2","city","state","zip","getLastFillDateColor","lastFillDateColor","updateQs1Address","get","rxNumber","subscribe","vm","FormatHelperService","GetIsNullyOrWhitespace","emit","ɵɵdirectiveInject","HttpClient","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","PatientPhiCardComponent_Conditional_9_Template","PatientPhiCardComponent_Conditional_10_Template","PatientPhiCardComponent_Conditional_17_Template","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","PatientPhiCardComponent_ng_template_46_Template","ɵɵtemplateRefExtractor","ɵɵtextInterpolate1","firstName","middleInitial","lastName","dateOfBirth","facility","facilityCode","ɵɵconditional","lastFillDate","ɵɵstyleProp","nextFillDate","qs1Status","pfsFormID","ɵɵpropertyInterpolate","pfsUrl","pfsRequestType","pfsFlagsTooltip_r3","isEos","isOverrideLastFillDate","isOverridePatientTransfer","__decorate","UntilDestroy","addWeeks","date","amount","days","addDays","subWeeks","date","amount","addWeeks","ShipmentListVm","shipmentId","createdById","createdBy","shipmentServiceTypeID","shipmentTypeStr","masterTrackingNumber","weightPounds","packageStatus","dateCreated","dateCreatedStr","dateDelivered","dateDeliveredStr","rxNumberCount","fulfillmentStatus","shipmentStep","deliveryType","isRejected","prescriptionCount","canDelete","isNotActive","pfsLink","inventory","inventoryId","isOverdue1","isOverdue2","hasFulfillmentBeenOpened","isOpen","openUserTooltip","commentCount","lastCommentDate","userSubmitted","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","ShipmentListVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵclassMap","ctx_r0","iconNumClassNames","ɵɵproperty","numPositionStyles","ɵɵadvance","ɵɵtextInterpolate","num","FaCountComponent","formatHelper","numColor","isNumVisible","numPosition","constructor","ngOnInit","assignNumColor","GetIsNully","assignNumPosition","FaNumColor","success","warning","danger","info","secondary","other","position","isPositionAssigned","numStyles","top","FaIconPosition","getPositionPropValue","getMyPositionUnits","right","bottom","left","ɵɵdirectiveInject","FormatHelperService","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","FaCountComponent_Conditional_0_Template","ɵɵconditional","FaNumIconComponent","formatHelper","num","numColor","isNumVisible","iconName","iconColor","numPosition","iconColorName","constructor","ngOnInit","GetIsNully","ɵɵdirectiveInject","FormatHelperService","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵstyleProp","ɵɵproperty","ɵɵelement","ɵɵproperty","modal_r2","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","ɵɵnextContext","table_r4","ɵɵreference","ɵɵresetView","ajaxReload","ɵɵelementEnd","modal_r5","ctx_r5","rxListShipmentId","isUser","_r7","modal_r8","_r9","navigateToInventoryEdit","ɵɵtext","ɵɵadvance","faIconName","faHourglassHalf","warningColor","thresholdTooltip_r10","faHourglassEnd","dangerColor","faUser","getIsFulfillmentOpenedLink","ɵɵtextInterpolate1","inventorySiteName","_r11","inventoryChoiceModal_r12","isCentralized","openInventoryChoiceModal","newFulfillment","_r13","createNewFacilityRx","ɵɵtemplate","ShipmentListComponent_Conditional_15_Conditional_1_Template","ShipmentListComponent_Conditional_15_Conditional_2_Template","ɵɵconditional","currentSiteName","ShipmentListComponent_ng_template_21_Conditional_2_Template","$event","_r14","scanSuccessFromList","scanRxNumber","faExclamationCircle","inventorySiteId","inputPlaceholder","ɵɵtwoWayListener","_r15","i0","ɵɵtwoWayBindingSet","filters","ɵɵtwoWayProperty","fulfillmentStatusTooltip_r16","ɵɵtextInterpolate","columns","get","displayName","ShipmentListComponent_td_69_Conditional_2_Conditional_0_Template","ShipmentListComponent_td_69_Conditional_2_Conditional_1_Template","ShipmentListComponent_td_69_Conditional_2_Conditional_2_Template","ShipmentListComponent_td_69_Conditional_2_Conditional_3_Template","ShipmentListComponent_td_69_Conditional_2_Conditional_4_Template","ShipmentListComponent_td_69_Conditional_2_Conditional_5_Template","ShipmentListComponent_td_69_Conditional_2_Conditional_6_Template","row_r17","fulfillmentStatus","userSubmitted","dateDeliveredStr","openUserTooltip","ShipmentListComponent_td_69_Conditional_2_Template","ShipmentListComponent_td_69_Conditional_3_Template","ShipmentListComponent_td_69_Conditional_4_Template","ɵɵclassProp","isRejected","ɵɵpureFunction1","_c2","shipmentId","canEdit","editSource","inventoryId","hasFulfillmentBeenOpened","isOpen","_r18","row_r19","$implicit","navigateToFulfillment","inventory","ShipmentListComponent_td_72_Conditional_1_Template","ShipmentListComponent_td_72_Conditional_2_Template","row_r20","deliveryType","row_r22","_r21","commentsModal_r23","openCommentsModal","isReadOnly","faCommentsRegular","commentCount","lastCommentDate","faNumColor","success","commentPosition","dateCreatedTooltip_r24","row_r25","isOverdue1","pfsLink","ɵɵsanitizeUrl","createdBy","ShipmentListComponent_td_81_Conditional_2_Template","ShipmentListComponent_td_81_Conditional_3_Template","ShipmentListComponent_td_81_Conditional_4_Template","dateCreatedStr","isOverdue2","row_r27","_r26","shipmentListRxModal_r28","openRxListModal","rxNumberCount","faPrescriptionBottleAlt","_c3","row_r29","prescriptionCount","fedexLink","row_r30","masterTrackingNumber","upsLink","weightPounds","packageStatus","ShipmentListComponent_td_90_Conditional_2_Template","ShipmentListComponent_td_90_Conditional_3_Template","ShipmentListComponent_td_90_Conditional_4_Template","ShipmentListComponent_td_90_Conditional_5_Template","ShipmentListComponent_td_90_Conditional_6_Template","shipmentTypeStr","row_r31","currentStep","inventoryEditAccess","row_r32","ShipmentListComponent_td_96_Conditional_1_Template","canDelete","userId","createdById","_r33","scanSuccessInventoryList","inv_r35","_r34","chooseInventory","inventoryName","ShipmentListComponent_Conditional_109_Conditional_1_div_3_Template","model","inventories","ShipmentListComponent_Conditional_109_Conditional_0_Template","ShipmentListComponent_Conditional_109_Conditional_1_Template","hasMultipleInvChoices","ShipmentListComponent","route","title","sec","httpClient","router","modalService","rxDataStorageService","inventoryService","btnFilterService","formatHelper","table","selectPfsForm","facilitySelect","FaIconName","FaNumColor","ShipmentListVm","ColumnDefs","facilitySelectItems","user","firstName","lastName","dob","zip","date","DateRange","subWeeks","Date","status","strShipmentIds","facilityName","pfsFormId","isNotActive","confirm","facilityId","emptyFilters","selectedStatus","Array","initFilters","Object","assign","filterMap","maxDate","minDate","faUserMd","rxCountIcon","faComments","FaIconPosition","FaPositionUnits","pixels","sortDir","dataSource","createSource","errorStr","sortData","newFacilityId","canCreateFulfillments","firstLoad","isNewFacility","isError","lastViewedRxColor","legend","id","colorCode","description","constructor","setTitle","resetInventoryChoiceModalData","ngOnInit","getUser","hasModuleAccess","BusinessAreaEnum","Inventory","SecurityService","setMinRole","PermissionRole","User","Technician","Pharmacist","paramMap","subscribe","params","parseInt","serializeStatus","resetFilters","getSiteName","isRxUser","queryParamMap","qParams","statusParam","sessionStorage","removeItem","subYears","preFilter","isVisible","siteName","resetFilterData","setScanFocus","JSON","stringify","parse","snapshot","navigateByUrl","isFacility","encodeURIComponent","navigate","name","modal","IsFacility","open","animation","beforeDismiss","hasStoredFilters","preFilters","getStoredFilters","undefined","hasNullDate","dateBegin","dateEnd","filterChange","setStoredFilters","filtersTouched","setTimeout","document","getElementById","focus","rx","isFulfillmentOpen","getItem","setItem","items","length","value","cancelRx","GetIsNully","errorMessage","FormatNdc","ndc","rxNumber","invId","invName","isConfirmed","patientData","PatientData","post","returnData","address","address2","city","state","ɵɵdirectiveInject","ActivatedRoute","Title","HttpClient","Router","NgbModal","RxDataStorageService","InventoryService","ButtonFilterService","FormatHelperService","selectors","viewQuery","rf","ctx","TableComponent","ShipmentListComponent_ng_template_0_Template","ɵɵtemplateRefExtractor","ShipmentListComponent_ng_template_2_Template","ShipmentListComponent_ng_template_4_Template","ShipmentListComponent_ng_template_6_Template","ShipmentListComponent_ng_template_8_Template","ShipmentListComponent_Conditional_13_Template","ShipmentListComponent_Conditional_15_Template","ShipmentListComponent_Conditional_19_Template","ShipmentListComponent_Conditional_20_Template","ShipmentListComponent_ng_template_21_Template","ShipmentListComponent_Conditional_23_Template","_r1","ShipmentListComponent_Conditional_59_Template","ɵɵelementContainerStart","ShipmentListComponent_th_68_Template","ShipmentListComponent_td_69_Template","ShipmentListComponent_th_71_Template","ShipmentListComponent_td_72_Template","ShipmentListComponent_th_74_Template","ShipmentListComponent_td_75_Template","ShipmentListComponent_th_77_Template","ShipmentListComponent_td_78_Template","ShipmentListComponent_th_80_Template","ShipmentListComponent_td_81_Template","ShipmentListComponent_th_83_Template","ShipmentListComponent_td_84_Template","ShipmentListComponent_th_86_Template","ShipmentListComponent_td_87_Template","ShipmentListComponent_th_89_Template","ShipmentListComponent_td_90_Template","ShipmentListComponent_th_92_Template","ShipmentListComponent_td_93_Template","ShipmentListComponent_th_95_Template","ShipmentListComponent_td_96_Template","ShipmentListComponent_Conditional_109_Template","ShipmentListComponent_Conditional_110_Template","ɵɵpropertyInterpolate","ɵɵpipeBind2","__decorate","UntilDestroy","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","helpButtonClicked","ɵɵelementEnd","ɵɵproperty","faIcon","faSquareQuestion","ɵɵtext","modal_r5","_r4","$implicit","dismiss","ɵɵelement","ScanProductComponent","inventoryService","toastr","modalService","autofocus","includeProductInfo","inputPlaceholder","inventorySiteId","ndc","isDisabled","isFulfillment","isCiReceiving","isCiRepack","scanDetection","showHelp","scanSuccess","EventEmitter","scanError","scan","txtBarcode","helpModal","beepSuccess","Audio","beepError","isControlDown","isProcessing","timeoutId","_input","_oldValue","NUMPAD_EVENT_LOCATION","controlDown","event","key","scanDetectionProcessing","controlUp","constructor","ngOnInit","basePath","document","getElementsByTagName","href","src","load","nativeElement","focus","ngOnChanges","setTimeout","keyDown","value","preventDefault","scanBarcode","FormatHelperService","GetIsNullyOrWhitespace","barcodeStr","barcode","length","ndc10","parseNdc10FromGtin","lotNumber","serialNumber","expirationDate","lotExpId","split","includes","error","positionClass","timeOut","emitScan","getFastPackProductInfo","subscribe","productInfo","toUpperCase","Date","quantity","parseAtp2Qty","isBulkLot","currentStock","scanGs1Barcode","getNdcProductInfo","isInventoryProductActive","play","emit","console","log","wholeNumber","parseInt","fraction","dividend","divisor","scannedNdc","FormatNdc","confirmIncorrectNdc","target","id","clearTimeout","location","modal","open","ConfirmationModalComponent","componentInstance","modalRef","confirmationMessage","result","then","emittedValue","catch","err","ɵɵdirectiveInject","InventoryService","ToastrService","NgbModal","selectors","viewQuery","rf","ctx","$event","ɵɵresolveDocument","i0","_r1","ɵɵtemplate","ScanProductComponent_fa_icon_8_Template","ScanProductComponent_ng_template_9_Template","ɵɵtemplateRefExtractor","ɵɵadvance","__decorate","UntilDestroy","AuditHistoryVm","auditHistoryID","dateChanged","dateChangedFormatted","field","changedFrom","changedTo","changedBy","pfsLink","module","recordAffected","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","AuditHistoryVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r1","columns","get","displayName","row_r3","friendlyRecordId","row_r4","dateChangedFormatted","row_r5","module","row_r6","recordAffected","row_r7","field","row_r8","changedFrom","row_r9","changedTo","row_r10","changedBy","ɵɵlistener","ɵɵrestoreView","_r11","ɵɵnextContext","ɵɵresetView","goBack","AuditHistoryComponent","activatedRoute","table","id","viewModel","auditHistoryName","hideBackButton","pageSize","AuditHistoryVm","ColumnDefs","auditName","filters","constructor","ngOnInit","snapshot","params","localStorage","getItem","queryParamMap","includes","isVisible","isCi","isCiJob","window","history","back","ɵɵdirectiveInject","ActivatedRoute","selectors","viewQuery","rf","ctx","TableComponent","$event","i0","_r1","value","ɵɵelementContainerStart","ɵɵtemplate","AuditHistoryComponent_th_5_Template","AuditHistoryComponent_td_6_Template","AuditHistoryComponent_th_8_Template","AuditHistoryComponent_td_9_Template","AuditHistoryComponent_th_11_Template","AuditHistoryComponent_td_12_Template","AuditHistoryComponent_th_14_Template","AuditHistoryComponent_td_15_Template","AuditHistoryComponent_th_17_Template","AuditHistoryComponent_td_18_Template","AuditHistoryComponent_th_20_Template","AuditHistoryComponent_td_21_Template","AuditHistoryComponent_th_23_Template","AuditHistoryComponent_td_24_Template","AuditHistoryComponent_th_26_Template","AuditHistoryComponent_td_27_Template","AuditHistoryComponent_div_28_Template","ɵɵproperty","ɵɵpureFunction1","_c1","ɵɵpureFunction0","_c0","VerificationTypeEnum","toDescription","val","toDisplay","VerificationSettingVm","businessArea","amountOfChoices","verificationChoices","verificationSettings","FormData","getFormData","validators","UntypedFormControl","Validators","required","UntypedFormArray","Form","UntypedFormGroup","GetModel","fg","VerificationSettingVmFromFg","constructor","get","value","val","setValue","VerificationVm","verificationEnum","verificationStr","numberOfVerificationsRequired","verificationTypesAllowed","FormData","getFormData","validators","UntypedFormControl","Form","UntypedFormGroup","GetModel","fg","VerificationVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵlistener","itm_r2","ɵɵrestoreView","_r1","$implicit","item_r3","ɵɵnextContext","ctx_r3","ɵɵresetView","numVerificationsChange","value","get","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","s_r5","ɵɵpureFunction0","_c0","ɵɵtextInterpolate","text","i_r7","_r8","itm_r9","verificationTypeChange","indexOf","faIcon","faUsbDrive","_r10","_r11","_r12","ɵɵelementContainerStart","ɵɵtemplate","VerificationSettingsComponent_div_0_div_2_ng_container_17_button_1_Template","VerificationSettingsComponent_div_0_div_2_ng_container_17_button_2_Template","VerificationSettingsComponent_div_0_div_2_ng_container_17_button_3_Template","VerificationSettingsComponent_div_0_div_2_ng_container_17_button_4_Template","verificationType","Fido","Fingerprint","Pin","Credentials","VerificationSettingsComponent_div_0_div_2_div_10_Template","VerificationSettingsComponent_div_0_div_2_ng_container_17_Template","amountOfSigs","model","verificationChoices","VerificationSettingsComponent_div_0_div_2_Template","formGroup","controls","VerificationSettingsComponent","httpClient","sms","router","sec","businessArea","getUrlAction","saveUrlAction","VerificationSettingVm","Form","GetModel","model$","verificationVm","user","canEdit","VerificationTypeEnum","constructor","ngOnInit","getUser","checkSecurity","pipe","tap","vm","addVerificationSettings","verificationSettings","length","setValue","amountOfChoices","BusinessAreaEnum","CI","hasModuleAccess","SecurityService","setMinRole","PermissionRole","SystemAdmin","Inventory","Admin","SysInv","navigateByUrl","setSystemMessage","amount","i","push","UntypedFormGroup","VerificationVm","FormData","val","cntrl","item","saveForm","isSelected","index","splice","post","filterForm","subscribe","sm","message","messageClass","isSuccessful","settingsVm","getRawValue","filter","o","verificationEnum","ɵɵdirectiveInject","HttpClient","SystemMessageService","Router","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","VerificationSettingsComponent_div_0_Template","ɵɵpipeBind1","YI","AI","HI","mI","fI","uI","lI","E","I","pI","A","g","C","qI","QI","wA","qA","pA","e","a","Q","i","t","D","c","S","Z","h","K","bA","AA","s","r","w","R","M","TA","u","oA","OA","ZA","vA","WA","kI","O","YA","IA","HA","W","PA","jA","UI","JI","VA","KI","mA","MI","XA","G","H","q","fA","L","x","tA","U","LI","J","v","zA","_A","dI","eA","$A","gA","b","DA","N","y","B","k","Y","m","P","II","gI","j","uA","__async","lA","CI","aA","sA","rA","o","BI","d","V","cA","EI","iI","n","l","oI","eI","tI","DI","aI","sI","rI","cI","XI","hA","T","SA","X","CA","p","wI","hI","SI","RI","nI","FI","GI","NI","z","BA","nA","RA","_","QA","FA","$","GA","NA","EA","kA","yA","yI","iA","f","JA","F","KA","MA","dA","UA","LA","xA","environment","production","siteKey","strichLicenseKey","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","errorMessage","ɵɵtemplate","BarcodeScannerStrichComponent_div_0_div_1_span_1_Template","BarcodeScannerStrichComponent_div_0_div_1_ng_template_2_Template","ɵɵtemplateRefExtractor","ɵɵproperty","title_r2","ɵɵlistener","ɵɵrestoreView","_r3","ɵɵnextContext","ɵɵresetView","removeCodeDetection","codeDetection","typeName","data","BarcodeScannerStrichComponent_div_0_div_4_div_1_Template","BarcodeScannerStrichComponent_div_0_div_1_Template","ɵɵelement","BarcodeScannerStrichComponent_div_0_div_4_Template","showHeader","ɵɵstyleMap","height","showResults","_r4","startScanning","busy","scanningBtnText","_r5","closeScanning","BarcodeScannerStrichComponent","ngZone","inventoryService","symbology","overrideSound","closeScanAfterScan","showCloseButton","isClosed","scanResult","EventEmitter","barcodeReaderOutput","closeReader","initialized","isScan","isMobile","isLoaded","barcodeReader","configuration","constructor","onResize","GlobalService","setIsMobile","window","innerWidth","ngOnInit","setConfig","StrichSDK","initialize","environment","strichLicenseKey","then","console","log","catch","err","finally","ngAfterViewInit","setTimeout","basePath","document","getElementsByTagName","href","selector","debug","engine","symbologies","numScanlines","minScanlinesNeeded","invertedCodes","duplicateInterval","frameSource","resolution","overlay","customLogoSrc","showCameraSelector","showDetections","showFlashlight","showTargetingLine","locator","regionOfInterest","left","right","top","bottom","feedback","audio","vibration","undefined","initializeBarcodeReader","BarcodeReader","result","emit","detected","detections","run","processScanResult","start","SdkError","message","stop","destroy","barcodeStr","includes","barcode","scanGs1Barcode","ɵɵdirectiveInject","NgZone","InventoryService","selectors","hostBindings","rf","ctx","ɵɵresolveWindow","BarcodeScannerStrichComponent_div_0_Template","BarcodeScannerStrichComponent_div_2_Template","BarcodeScannerStrichComponent_div_3_Template","__decorate","UntilDestroy","SendgridApiService","httpClient","constructor","getIsBouncedResponse","username","httpParams","HttpParams","set","get","params","removeBouncedUser","ɵɵinject","HttpClient","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵtext","ɵɵelement","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","removeFromBounceList","ɵɵadvance","ɵɵtextInterpolate1","bouncedEmailData","reason","errorMsg","BounceAlertComponent","sendgridApiService","securityService","user","userIsBounced","subscriptions","Subscription","constructor","ngOnInit","getActiveUser","getBouncedEmailMessages","email","username","getIsBouncedResponse","subscribe","response","isBounced","sendgridBounceInfo","add","user$","removeBouncedUser","resp","ngOnDestroy","unsubscribe","ɵɵdirectiveInject","SendgridApiService","SecurityService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","BounceAlertComponent_div_0_Template","ɵɵproperty","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r3","ɵɵnextContext","ɵɵresetView","activeModal","dismiss","ɵɵtext","ɵɵelementEnd","CiWorkstationComponent","httpClient","ms","ciWorkstation","userState","inject","UserStateService","user","constructor","ngOnInit","updateSelect","get","subscribe","items","value","ciWorkstationId","workstationChange","workstation","getHttpObservable","msg","isSuccessful","updateUser","ɵɵdirectiveInject","NgbActiveModal","HttpClient","SystemMessageService","selectors","viewQuery","rf","ctx","i0","_r1","ciWorkstation_r2","ɵɵreference","ɵɵtemplate","CiWorkstationComponent_div_14_Template","ɵɵadvance","ɵɵproperty","tmp_2_0","GenericOrderCommentVm","commentId","orderId","comment","commentorInfo","commentDateTime","strCommentDateTime","strTimeAgo","commentList","FormData","getFormData","validators","UntypedFormControl","Validators","required","UntypedFormArray","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","GenericOrderCommentVmFromFg","constructor","get","value","val","setValue","MetabolicFormulaPatientInfoVm","patientInfoId","patientFirstName","patientLastName","gender","genderStr","dob","parentGuardianFirstName","parentGuardianLastName","patientAddress","patientAddress2","patientCity","patientState","patientStateId","patientZip","smartyAddress","smartyAddressString","hasSmarty","patientPhone","patientExt","friendlyId","canEdit","orderId","stepTitle","stepDescription","isActive","isComplete","orderIndex","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","Form","UntypedFormGroup","GetModel","fg","MetabolicFormulaPatientInfoVmFromFg","constructor","get","value","val","setValue","MetabolicFormulaPatientCareVm","patientCareId","diagnosis","diagnosisId","comments","physicianFirstName","physicianLastName","licenseNumber","friendlyId","stepName","canEdit","orderId","stepTitle","stepDescription","isActive","isComplete","orderIndex","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","Form","UntypedFormGroup","GetModel","fg","MetabolicFormulaPatientCareVmFromFg","constructor","get","value","val","setValue","MetabolicFormulaInsuranceInfoVm","insuranceInfoId","insuranceType","insuranceTypeStr","insuranceName","groupNumber","insuranceNumber","dateInsuranceClaim","singleClaimOutcome","singleClaimOutcomeStr","singleClaimOutcomeComment","friendlyId","stepName","canEdit","orderId","stepTitle","stepDescription","isActive","isComplete","orderIndex","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","Form","UntypedFormGroup","GetModel","fg","MetabolicFormulaInsuranceInfoVmFromFg","constructor","get","value","val","setValue","GenericOrderDetailsVm","dateCreated","dateCreatedStr","createdUserId","createdUserName","createdUserEmail","facilityId","senderFacilityName","senderFacilityAddress","senderFacilityCity","senderFacilityCounty","senderFacilityState","senderFacilityZip","senderPhone","senderPermitNumber","facilityName","facilityIdentifier","facilityAddress","facilityCity","facilityCounty","facilityState","facilityZip","facilityPhone","phoneNumber","dateOrdered","dateOrderedStr","orderedUserId","orderedUserName","orderedUserEmail","dateReviewed","dateReviewedStr","reviewedUserId","reviewedUserName","reviewedUserEmail","friendlyId","stepName","orderProductsVm","missing2FA","canEdit","trackingLink","trackingNumber","confirmationNumber","shipmentServiceType","shipmentServiceTypeStr","patientInfoVm","patientCareVm","insuranceInfoVm","uniqueOrderIndex","orderId","order","orderTitle","orderStatus","orderTabs","availableStatuses","orderSteps","commentCount","uploadCount","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","UntypedFormArray","MetabolicFormulaPatientInfoVm","Form","MetabolicFormulaPatientCareVm","MetabolicFormulaInsuranceInfoVm","UntypedFormGroup","GetModel","fg","GenericOrderDetailsVmFromFg","constructor","get","value","val","setValue","MetabolicFormulaPatientInfoVmFromFg","MetabolicFormulaPatientCareVmFromFg","MetabolicFormulaInsuranceInfoVmFromFg","CiOrderInfoVm","ciOrderId","ciFacility","facilityId","pfsFacilityId","ciOrderStatus","ciOrderStatusString","createOrderStep","createOrderStepString","orderNumber","orderDateStr","orderDate","createdByUser","createdByUserEmail","createdUserId","facility","facilityAddress","facilityCity","facilityState","facilityZip","facilityIdentifier","permit50","licenseNumber","friendlyId","commentCount","shipSmartyAddress","allJobsCompleted","availableStatuses","receivedStatuses","permitNumber","pfsCiOrderId","productsCount","bottlesCount","productsReceivedCount","bottlesReceivedCount","products","ciOrderJobs","invoiceSecurityStamp","canGenerateCiInvoices","FormData","getFormData","validators","UntypedFormControl","Validators","required","UntypedFormArray","Form","UntypedFormGroup","GetModel","fg","CiOrderInfoVmFromFg","constructor","get","value","val","setValue","SharedCommentsModalComponent","sec","orderId","businessArea","modal","GenericOrder","GenericOrderDetailsVm","CiOrder","CiOrderInfoVm","updateCommentCount","EventEmitter","user","formGroup","GenericOrderCommentVm","Form","canEdit","subscriptions","Subscription","area","controller","securityString","isMetabolic","constructor","ngOnInit","add","user$","subscribe","BusinessAreaEnum","CI","MetabolicFormula","hasModuleAccess","SecurityService","setMinRole","PermissionRole","User","ngOnDestroy","unsubscribe","ɵɵdirectiveInject","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","dismiss","ɵɵelement","ɵɵadvance","ɵɵproperty","EditFacilityVm","facilityId","facilityName","facilityIdentifier","organizationId","organizationName","countyId","countyName","smartyAddress","smartyAddressString","hasSmarty","stateAbr","phoneNumber","dauCode","isActive","isSameAddress","isIcqParticipant","shipFacilityName","shipSmartyAddress","shipSmartyAddressString","hasShipSmarty","shipStateAbr","isShipAddressValidated","friendlyId","gln","medicalDirectorId","medicalDirectorName","medicalDirectorLicense","medicalDirectorExpDate","pfsFacilityId","facilityType","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","minLength","pattern","Form","UntypedFormGroup","GetModel","fg","EditFacilityVmFromFg","constructor","get","value","val","setValue","FacilityCardinalAccountVm","cardinalAccountId","facilityId","accountName","accountNumber","isIssuance810","isIssuance810String","isBulk810","isBulk810String","isCiModule810","isCiModule810String","friendlyId","canDelete","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","minLength","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","FacilityCardinalAccountVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","editAccount","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","columns","get","displayName","row_r4","_r3","$implicit","cardinalAccountId","accountName","ɵɵtextInterpolate1","row_r5","accountNumber","row_r6","isCiModule810String","row_r7","isIssuance810String","row_r8","isBulk810String","ɵɵelement","ɵɵproperty","table_r10","row_r9","ɵɵtemplate","FacilityCardinalAccountsComponent_div_0_td_23_pcg_delete_button_1_Template","canEdit","FacilityCardinalAccountsComponent_div_0_button_3_Template","ɵɵelementContainerStart","FacilityCardinalAccountsComponent_div_0_th_7_Template","FacilityCardinalAccountsComponent_div_0_td_8_Template","FacilityCardinalAccountsComponent_div_0_th_10_Template","FacilityCardinalAccountsComponent_div_0_td_11_Template","FacilityCardinalAccountsComponent_div_0_th_13_Template","FacilityCardinalAccountsComponent_div_0_td_14_Template","FacilityCardinalAccountsComponent_div_0_th_16_Template","FacilityCardinalAccountsComponent_div_0_td_17_Template","FacilityCardinalAccountsComponent_div_0_th_19_Template","FacilityCardinalAccountsComponent_div_0_td_20_Template","FacilityCardinalAccountsComponent_div_0_th_22_Template","FacilityCardinalAccountsComponent_div_0_td_23_Template","filters","ɵɵpureFunction1","_c4","ɵɵpureFunction0","_c3","$event","_r11","saveSuccess","value","cancel","formGroup","model","FacilityCardinalAccountsComponent","title","sec","route","httpClient","table","isCiModule810","isBulk810","isIssuance810","businessArea","FacilityCardinalAccountVm","ColumnDefs","Form","GetModel","model$","isAdd","tab","facilityId","siteId","constructor","setTitle","hasModuleAccess","BusinessAreaEnum","CI","MetabolicFormula","PermissionRole","UserAdmin","SecurityService","setMinRole","Manager","ngOnInit","snapshot","params","queryParamMap","subscribe","setValue","patchValue","resetFormGroup","msg","ajaxReload","ɵɵdirectiveInject","Title","ActivatedRoute","HttpClient","selectors","viewQuery","rf","ctx","TableComponent","FacilityCardinalAccountsComponent_div_0_Template","FacilityCardinalAccountsComponent_div_1_Template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r1","columns","get","displayName","row_r3","dateChangedFormatted","row_r4","module","row_r5","recordAffected","row_r6","field","row_r7","changedFrom","row_r8","changedTo","row_r9","changedBy","FacilityAuditHistoryComponent","activatedRoute","table","AuditHistoryVm","ColumnDefs","facilityName","filters","facilityId","constructor","title","setTitle","ngOnInit","snapshot","params","ɵɵdirectiveInject","Title","ActivatedRoute","selectors","viewQuery","rf","ctx","TableComponent","ɵɵlistener","$event","i0","ɵɵrestoreView","_r1","ɵɵresetView","value","ɵɵelementContainerStart","ɵɵtemplate","FacilityAuditHistoryComponent_th_3_Template","FacilityAuditHistoryComponent_td_4_Template","FacilityAuditHistoryComponent_th_6_Template","FacilityAuditHistoryComponent_td_7_Template","FacilityAuditHistoryComponent_th_9_Template","FacilityAuditHistoryComponent_td_10_Template","FacilityAuditHistoryComponent_th_12_Template","FacilityAuditHistoryComponent_td_13_Template","FacilityAuditHistoryComponent_th_15_Template","FacilityAuditHistoryComponent_td_16_Template","FacilityAuditHistoryComponent_th_18_Template","FacilityAuditHistoryComponent_td_19_Template","FacilityAuditHistoryComponent_th_21_Template","FacilityAuditHistoryComponent_td_22_Template","ɵɵproperty","ɵɵpureFunction1","_c1","ɵɵpureFunction0","_c0","FacilityUserListVm","isLockedOut","emailConfirmed","isEmailBounced","isEmailSpamReported","id","name","email","phoneNumber","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","FacilityUserListVmFromFg","constructor","get","value","val","setValue","EditUserVm","userId","firstName","lastName","userName","phoneNumber","email","emailConfirmed","isEmailBounced","isEmailSpamReported","isActive","isLockedOut","inactivityTimeout","isInternalBphpUser","fields","customFields","mode","userPin","needToResetPin","friendlyId","inventoryIds","inventories","facilityIds","facilities","organizationIds","organizations","systemInventoryIds","updateFacilities","updateOrgs","businessArea","biometricFingerprintVersion","organizationId","organizationName","orgLoginType","FormData","getFormData","validators","UntypedFormControl","Validators","required","pattern","UntypedFormArray","maxLength","Form","UntypedFormGroup","GetModel","fg","EditUserVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","createUser","ɵɵtext","ɵɵelementEnd","_r4","addUserBtn","ɵɵelement","ɵɵadvance","ɵɵproperty","faIconName","faUserLock","faEnvelope","faTennisBall","faEnvelopesBulk","fullNameTooltip_r5","ɵɵtextInterpolate","columns","get","displayName","getEditUserLink","row_r6","id","ɵɵsanitizeUrl","name","ɵɵtemplate","FacilityUserListComponent_ng_container_0_td_20_a_1_Template","FacilityUserListComponent_ng_container_0_td_20_span_2_Template","FacilityUserListComponent_ng_container_0_td_20_fa_icon_3_Template","FacilityUserListComponent_ng_container_0_td_20_fa_icon_4_Template","FacilityUserListComponent_ng_container_0_td_20_fa_icon_5_Template","FacilityUserListComponent_ng_container_0_td_20_fa_icon_6_Template","canEditUser","isLockedOut","emailConfirmed","isEmailBounced","isEmailSpamReported","row_r7","email","row_r8","phoneNumber","ɵɵelementContainerStart","FacilityUserListComponent_ng_container_0_div_2_Template","FacilityUserListComponent_ng_container_0_div_3_Template","FacilityUserListComponent_ng_container_0_ng_template_4_Template","ɵɵtemplateRefExtractor","_r1","reloadTable","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","filters","showSysAdmin","FacilityUserListComponent_ng_container_0_th_19_Template","FacilityUserListComponent_ng_container_0_td_20_Template","FacilityUserListComponent_ng_container_0_th_22_Template","FacilityUserListComponent_ng_container_0_td_23_Template","FacilityUserListComponent_ng_container_0_th_25_Template","FacilityUserListComponent_ng_container_0_td_26_Template","canCreateUser","canAddUser","ɵɵtwoWayProperty","ɵɵpureFunction1","_c2","ɵɵpureFunction0","_c1","initFilters","filterMap","tooltipModalString","_r9","saveUser","FacilityUserListComponent_ng_template_1_div_25_Template","cancelAdd","formGroup","canEditFacilities","userId","row_r12","row_r13","row_r15","_r14","$implicit","existingUserTable_r16","ɵɵreference","addExistingUser","modal_r11","_r10","dismiss","FacilityUserListComponent_ng_template_3_th_11_Template","FacilityUserListComponent_ng_template_3_td_12_Template","FacilityUserListComponent_ng_template_3_th_14_Template","FacilityUserListComponent_ng_template_3_td_15_Template","FacilityUserListComponent_ng_template_3_th_17_Template","FacilityUserListComponent_ng_template_3_td_18_Template","_c3","_c4","FacilityUserListComponent","activatedRoute","modalService","security","httpClient","dynForm","ms","title","btnFilterService","table","businessArea","facilityName","modalContent","subscriptions","Subscription","EditUserVm","Form","model","GetModel","canDeleteUser","isCreate","facilityId","newUser","FacilityUserListVm","ColumnDefs","Object","assign","faHourglassClock","constructor","setTitle","hasModuleAccess","BusinessAreaEnum","Admin","PermissionRole","Pharmacist","CI","MetabolicFormula","UserAdmin","SecurityService","setMinRole","Manager","SystemAdmin","ngOnInit","snapshot","params","undefined","getBusinessArea","resetFilterData","subscribe","resetFilters","ajaxReload","ba","hasCiAccess","hasInventoryAccess","Inventory","hasMetabolicAccess","setSecurity","decodeURI","open","animation","beforeDismiss","post","msg","isSuccessful","parseInt","paramMap","add","vm","updateFormGroupFields","fields","patchValue","controls","setValue","isActive","message","link","value","setSystemMessage","ɵɵdirectiveInject","ActivatedRoute","NgbModal","HttpClient","DynamicFormService","SystemMessageService","Title","ButtonFilterService","selectors","viewQuery","rf","ctx","TableComponent","FacilityUserListComponent_ng_container_0_Template","FacilityUserListComponent_ng_template_1_Template","FacilityUserListComponent_ng_template_3_Template","createUserForm_r17","EditFacilityCiDetailVm","facilityAccountInfoId","facilityId","facilityName","ciPrimaryContactIds","ciPrimaryContactNames","facilityColor","accountCode","org","eo","oca","bfObjCode","bfCategory","interAgencyAgreementNumber","canGenerateCiInvoices","friendlyId","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","Form","UntypedFormGroup","GetModel","fg","EditFacilityCiDetailVmFromFg","constructor","get","value","val","setValue","EditFacilityInventoryDetailVm","facilityId","formTypeIds","formTypes","friendlyId","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","GetModel","fg","EditFacilityInventoryDetailVmFromFg","constructor","get","value","val","setValue","FacilityBusinessAreaVm","facilityId","facilityAccountInfoId","hasCiAccess","hasInventoryAccess","hasMetabolicAccess","facilityBusinessAreaEnums","businessAreas","ciDetailsVm","inventoryDetailsVm","friendlyId","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","GetModel","fg","FacilityBusinessAreaVmFromFg","constructor","get","value","val","setValue","EditFacilityCiDetailVmFromFg","EditFacilityInventoryDetailVmFromFg","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r1","id","formGroup","controls","ciPrimaryContactIds","value","CiBusinessAreaComponent","sec","route","httpClient","model","EditFacilityCiDetailVm","modelChange","EventEmitter","canGenerateCiInvoices","Form","canEditPrimaryContacts","canEdit","constructor","ngOnInit","setValue","facilityId","hasModuleAccess","BusinessAreaEnum","Admin","CI","SecurityService","setMinRole","PermissionRole","UserAdmin","MetabolicFormula","Manager","canGenerateCiInvoiceChange","patchValue","checked","emit","ɵɵdirectiveInject","ActivatedRoute","HttpClient","selectors","viewQuery","rf","ctx","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵtemplate","CiBusinessAreaComponent_pcg_control_group_4_Template","InventoryBusinessAreaComponent","sec","model","modelChange","EventEmitter","formGroup","EditFacilityInventoryDetailVm","Form","canEdit","constructor","ngOnInit","patchValue","hasModuleAccess","BusinessAreaEnum","Admin","CI","SecurityService","setMinRole","PermissionRole","UserAdmin","ɵɵdirectiveInject","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","emit","value","ɵɵelement","ɵɵelementEnd","ɵɵproperty","ɵɵadvance","controls","formTypeIds","MetabolicBusinessAreaComponent","selectors","standalone","decls","vars","template","rf","ctx","encapsulation","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","model","hasCiAccess","ɵɵresetView","ɵɵadvance","ɵɵclassMapInterpolate1","ɵɵtextInterpolate1","getDisplayName","businessAreaEnum","CI","ɵɵproperty","items","ɵɵtwoWayProperty","_r4","ciDetailsVm","hideBusinessArea","_r5","hasInventoryAccess","Inventory","_r6","inventoryDetailsVm","_r7","hasMetabolicAccess","MetabolicFormula","ɵɵelement","Metabolic","ɵɵlistener","_r1","submitForms","ɵɵtemplate","FaciltyBusinessAreasComponent_form_11_div_1_Template","FaciltyBusinessAreasComponent_form_11_div_3_Template","FaciltyBusinessAreasComponent_form_11_div_4_Template","FaciltyBusinessAreasComponent_form_11_div_6_Template","FaciltyBusinessAreasComponent_form_11_div_7_Template","FaciltyBusinessAreasComponent_form_11_div_9_Template","FaciltyBusinessAreasComponent_form_11_button_11_Template","formGroup","canEdit","FaciltyBusinessAreasComponent","route","httpClient","router","ms","sec","businessArea","id","ciBusinessArea","inventoryBusinessArea","FacilityBusinessAreaVm","Form","GetModel","model$","userId","computed","getUser","facilityBusinessAreas","BusinessAreaEnum","text","value","additionalData","color","faCaretDown","faCaretUp","constructor","ngOnInit","GetFacilityBusinessSettings","queryParams","subscribe","params","Number","module","paramMap","map","get","pipe","tap","vm","patchValue","ba","toDescription","hasBusinessArea","businessAreas","filter","o","length","hasValidCiForms","valid","Admin","setSystemMessage","post","sm","isSuccessful","onMessageSuccess","onMessageError","setSysMessage","setValue","reroute","undefined","isNaN","navigate","message","messageClass","ɵɵdirectiveInject","ActivatedRoute","HttpClient","Router","SystemMessageService","SecurityService","selectors","viewQuery","rf","ctx","FaciltyBusinessAreasComponent_form_11_Template","ɵɵpureFunction1","_c2","ɵɵpureFunction0","_c3","ɵɵpipeBind1","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","activateDeactivate","ɵɵresetView","model","isActive","ɵɵclassProp","ɵɵadvance","ɵɵtextInterpolate","ɵɵtemplate","EditFacilityComponent_mat_tab_group_1_ng_template_2_div_15_Conditional_2_Template","EditFacilityComponent_mat_tab_group_1_ng_template_2_div_15_a_3_Template","EditFacilityComponent_mat_tab_group_1_ng_template_2_div_15_input_4_Template","ɵɵconditional","ɵɵproperty","canEdit","facilityId","organizationName","formGroup","value","organizationId","faIcon","faExternalLink","ɵɵtextInterpolate1","medicalDirectorLicense","medicalDirectorExpDate","_r4","validateCountyId","id","_r1","submitForms","EditFacilityComponent_mat_tab_group_1_ng_template_2_pcg_page_info_2_Template","EditFacilityComponent_mat_tab_group_1_ng_template_2_Conditional_14_Template","EditFacilityComponent_mat_tab_group_1_ng_template_2_div_15_Template","EditFacilityComponent_mat_tab_group_1_ng_template_2_div_17_Template","EditFacilityComponent_mat_tab_group_1_ng_template_2_div_29_Template","EditFacilityComponent_mat_tab_group_1_ng_template_2_div_30_Template","updateShippingInfo","EditFacilityComponent_mat_tab_group_1_ng_template_2_button_65_Template","tmp_7_0","get","canDeactivate","ɵɵpureFunction1","_c4","hasMedicalDirector","getMedicalDirector","medicalDirectorId","canManualEntry","api","controls","countyName","shipAddressDisabled","shipFacilityName","shipSmartyAddress","formattedAddress","EditFacilityComponent_mat_tab_group_1_mat_tab_3_ng_template_1_Template","businessArea","EditFacilityComponent_mat_tab_group_1_mat_tab_4_ng_template_1_Template","EditFacilityComponent_mat_tab_group_1_mat_tab_6_ng_template_1_Template","facilityName","EditFacilityComponent_mat_tab_group_1_mat_tab_7_ng_template_1_Template","EditFacilityComponent_mat_tab_group_1_mat_tab_8_ng_template_1_Template","EditFacilityComponent_mat_tab_group_1_ng_template_2_Template","EditFacilityComponent_mat_tab_group_1_mat_tab_3_Template","EditFacilityComponent_mat_tab_group_1_mat_tab_4_Template","EditFacilityComponent_mat_tab_group_1_mat_tab_6_Template","EditFacilityComponent_mat_tab_group_1_mat_tab_7_Template","EditFacilityComponent_mat_tab_group_1_mat_tab_8_Template","ɵɵpipeBind1","model$","canViewReports","EditFacilityComponent","route","httpClient","router","sec","activationService","ms","modalService","backBtnPlacement","isSameAddress","isShipAddressValidated","EditFacilityVm","Form","GetModel","oldIcqParticipant","activeTab","oldShipSmartyAddress","oldShipFacilityName","backBtnLink","backBtnTooltip","constructor","title","setTitle","ngOnInit","hasModuleAccess","BusinessAreaEnum","CI","MetabolicFormula","Admin","PermissionRole","UserAdmin","SecurityService","setMinRole","Manager","editFacility","snapshot","queryParamMap","toDescription","undefined","SystemAdmin","disable","medicalDirectorName","FormatHelperService","GetIsNullyOrWhitespace","paramMap","subscribe","map","parseInt","pipe","tap","vm","countyId","setValue","isIcqParticipant","toggleShippingFormActivation","ActivationEnum","Facility","patchValue","smartyAddress","checked","enableShipFacilityName","disableShipFacilityName","updateValueAndValidity","valid","validateForm","modal","open","ConfirmationModalComponent","componentInstance","modalRef","confirmationMessage","result","then","emittedValue","runSave","catch","err","disabled","hasDisabledShipFacilityName","post","sm","isSuccessful","onMessageSuccess","onMessageError","reroute","Number","isNaN","navigate","setSysMessage","navigateByUrl","skipLocationChange","enable","medDirectorChange","select","additionalData","licenseNumber","expirationDate","setSystemMessage","message","messageClass","ɵɵdirectiveInject","ActivatedRoute","HttpClient","Router","Title","ActivationService","SystemMessageService","NgbModal","selectors","viewQuery","rf","ctx","EditFacilityComponent_mat_tab_group_1_Template","_c3","facilityIdentifier","FacilityListVm","facilityId","facilityName","facilityIdentifier","address","city","state","zip","county","isActive","canDelete","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","FacilityListVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r3","ctx_r3","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","filters","businessArea","ɵɵresetView","ɵɵadvance","ɵɵproperty","ɵɵtwoWayProperty","ɵɵtextInterpolate","columns","get","displayName","canEditFacility","editFacilityLink","row_r5","facilityId","facilityName","ɵɵtextInterpolate4","row_r6","address","city","state","zip","row_r7","facilityIdentifier","row_r8","row_r9","county","row_r10","isActive","ɵɵelement","table_r2","row_r11","ɵɵtemplate","FacilitiesListComponent_td_45_pcg_delete_button_1_Template","canDelete","FacilitiesListComponent","formatHelper","btnFilterService","security","router","table","header","filterMap","medicalDirectorId","organizationId","initFilters","baseEditRoles","PermissionRole","UserAdmin","SecurityService","setMinRole","Manager","canAdd","showBusinessArea","FacilityListVm","ColumnDefs","hasFacilities","constructor","ngOnInit","BusinessAreaEnum","Admin","hasModuleAccess","CI","MetabolicFormula","SystemAdmin","resetFilterData","subscribe","resetFilters","onTableReturn","tableData","Object","assign","reloadTable","User","hideShowColumn","GetIsNully","ajaxReload","ɵɵdirectiveInject","FormatHelperService","ButtonFilterService","Router","selectors","viewQuery","rf","ctx","TableComponent","FacilitiesListComponent_div_0_Template","ɵɵlistener","_r1","ɵɵreference","FacilitiesListComponent_div_14_Template","value","ɵɵelementContainerStart","FacilitiesListComponent_th_26_Template","FacilitiesListComponent_td_27_Template","FacilitiesListComponent_th_29_Template","FacilitiesListComponent_td_30_Template","FacilitiesListComponent_th_32_Template","FacilitiesListComponent_td_33_Template","FacilitiesListComponent_th_35_Template","FacilitiesListComponent_td_36_Template","FacilitiesListComponent_th_38_Template","FacilitiesListComponent_td_39_Template","FacilitiesListComponent_th_41_Template","FacilitiesListComponent_td_42_Template","FacilitiesListComponent_th_44_Template","FacilitiesListComponent_td_45_Template","ɵɵpureFunction1","_c1","ɵɵpureFunction0","_c0","PhotoModalComponent","activeModal","url","name","constructor","ngOnInit","ɵɵdirectiveInject","NgbActiveModal","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","dismiss","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵsanitizeUrl","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","ɵɵresetView","goToPrevious","ɵɵtext","ɵɵelementEnd","_r4","goToNext","ɵ$index_28_r6","_r5","$index","goToSlide","ɵɵproperty","getSlidesScr","ɵɵsanitizeUrl","ɵɵpureFunction1","_c0","currentIndex","ɵɵrepeaterCreate","ImageSliderComponent_div_0_Conditional_6_For_2_Template","_forTrack0","ɵɵadvance","ɵɵrepeater","slides","ɵ$index_34_r8","_r7","ImageSliderComponent_div_0_Conditional_7_For_2_Template","$event","_r1","onScroll","ɵɵtemplate","ImageSliderComponent_div_0_div_2_Template","openImageModal","getCurrentSlideSrc","getCurrentSlideName","ImageSliderComponent_div_0_div_5_Template","ImageSliderComponent_div_0_Conditional_6_Template","ImageSliderComponent_div_0_Conditional_7_Template","length","ɵɵconditional","useThumbnails","ImageSliderComponent","modalService","autoSlide","timeoutId","hasImages","constructor","ngOnInit","resetTimer","window","clearTimeout","setTimeout","newIndex","slideIndex","getCurrentSlideUrl","url","title","i","e","deltaY","imageUrl","imageName","modalRef","open","PhotoModalComponent","size","componentInstance","name","ngOnDestroy","ɵɵdirectiveInject","NgbModal","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","ImageSliderComponent_div_0_Template","ImageSliderModule","CommonModule","OrganizationAccountRequestVm","organizationAccountRequestId","organizationId","organizationAccountId","oldFacilityAccountName","newFacilityAccountName","facilityAccountNameId","facilityAccountNamePfsId","oldAccountNumber","newAccountNumber","oldExpirationDate","newExpirationDate","oldNotes","newNotes","oldIsActive","newIsActive","oldIsGracePeriod","newIsGracePeriod","oldUploadFilePath","newUploadFilePath","oldFileName","newFileName","isNewRequest","isRemoveDoc","isNotification","requestDate","requestBy","requestStatus","reviewDate","reviewedBy","denialExplanation","submitButton","file","uploadFiles","friendlyId","facilityId","accountAdded","accountName","accountNumber","expirationDate","isGracePeriod","isActive","uploadFilePath","notes","pfsIds","organizationName","organizationAddress","pfsFacilityAccountRequestIds","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","pattern","Form","UntypedFormGroup","GetModel","fg","OrganizationAccountRequestVmFromFg","constructor","get","value","val","setValue","ɵɵelement","ɵɵelementContainerStart","ɵɵelementStart","ɵɵelementEnd","ɵɵtext","ɵɵtemplate","NotificationNavComponent_ng_container_7_hr_24_Template","ɵɵadvance","ɵɵproperty","ctx_r2","getHref","r_r1","inventorySiteId","reconciliationEventId","ɵɵsanitizeUrl","faCircle","faBell","faLink","ɵɵtextInterpolate1","inventoryName","ɵɵtextInterpolate","reconciliationCount","last_r2","NotificationNavComponent_ng_container_8_hr_24_Template","getInvoiceHref","ns","ciInvoicesCount","last","NotificationNavComponent_ng_container_9_hr_24_Template","getIcqHref","icqCount","NotificationNavComponent","modal","httpClient","inject","NavNotificationService","ciInvoiceCount","faExternalLinkAlt","reconNotifications","ciInvoiceNotifications","constructor","ngOnInit","reconNavAccess","getReconciliationNotifications","get","subscribe","list","inventoryId","reconEventId","ɵɵdirectiveInject","NgbActiveModal","HttpClient","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵlistener","dismiss","NotificationNavComponent_ng_container_7_Template","NotificationNavComponent_ng_container_8_Template","NotificationNavComponent_ng_container_9_Template","NotificationNavComponent_div_10_Template","notificationCount","NavNotificationService","sec","inject","SecurityService","httpClient","HttpClient","modalService","NgbModal","notificationCount","computed","reconCount","ciInvoicesCount","icqCount","filter","count","length","signal","step1Count","step2Count","step3Count","accountRequestCount","fulfillmentNavAccess","invoiceNavAccess","accountRequestAccess","reconNavAccess","icqAccess","isCiUser","hasCiWorkstation","notificationModal","getHeaderCounts","setAccessFlags","step1","sessionStorage","getItem","step2","step3","fetchHeaderCountsFromServer","setStepCounts","set","hasModuleAccess","BusinessAreaEnum","Inventory","setMinRole","PermissionRole","Technician","CI","BA","Admin","Manager","ICQ","User","get","subscribe","vm","updateSessionStorage","updateCounts","setItem","fulfillmentStep1ProductPrepCount","toString","fulfillmentStep2ShippingCount","fulfillmentStep3QCCount","reconciliationCount","icqNewSurveyCount","openNotificationModal","open","NotificationNavComponent","animation","componentInstance","modalRef","factory","ɵfac","providedIn","__decorate","UntilDestroy","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","toggleModal","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","faIconName","faArrowLeft","form","controls","oldUploadFilePath","value","ɵɵsanitizeUrl","ɵɵtextInterpolate","oldFileName","fg_r4","oldNotes","ɵɵtemplate","OrganizationAccountUpdateComponent_div_0_Conditional_23_Conditional_29_Template","OrganizationAccountUpdateComponent_div_0_Conditional_23_Conditional_30_Template","OrganizationAccountUpdateComponent_div_0_Conditional_23_Conditional_33_Template","ɵɵpureFunction1","_c3","isAccountApproval","oldFacilityAccountName","name","oldAccountNumber","_c4","oldExpirationDate","ɵɵpipeBind2","_c5","ɵɵstyleProp","oldIsActive","ɵɵtextInterpolate1","ɵɵconditional","isEmpty","OldNotes","ɵɵtwoWayListener","$event","_r5","i0","ɵɵtwoWayBindingSet","organizationFile","ɵɵtwoWayProperty","maxFiles","_r6","clearFile","newUploadFilePath","newFileName","_r7","submitButton","faCheck","faTimes","_r8","modal","dismiss","OrganizationAccountUpdateComponent_div_0_Conditional_6_Template","_r1","onSubmit","OrganizationAccountUpdateComponent_div_0_Conditional_23_Template","OrganizationAccountUpdateComponent_div_0_pcg_drag_drop_file_upload_50_Template","OrganizationAccountUpdateComponent_div_0_Conditional_51_Template","OrganizationAccountUpdateComponent_div_0_Conditional_59_Template","OrganizationAccountUpdateComponent_div_0_Conditional_61_Template","isAccountList","organizationName","organizationAddress","requestBy","firstName","lastName","ɵɵpureFunction2","_c0","newFacilityAccountName","_c1","expDateRequired","newExpirationDate","hasFile","_c2","readOnly","calledFromNav","OrganizationAccountUpdateComponent","http","router","ms","notificationService","inject","NotificationService","ns","NavNotificationService","tm","EventEmitter","id","faCircle","faArrowRightArrowLeft","faLink","faExternalLinkAlt","faArrow","faSortUp","model$","OrganizationAccountRequestVm","Form","clearFileClick","constructor","ngOnInit","get","pipe","tap","model","patchValue","facilityAccountNameId","resizeModal","disableOldFormGroup","FormatHelperService","GetIsNullyOrWhitespace","isNotification","setExpDateRequired","disable","url","includes","valid","post","subscribe","resp","isSuccessful","showMessage","message","messageClass","close","getHeaderCounts","err","console","log","validateForm","status","emit","update","size","str","enable","addValidators","Validators","required","removeValidators","updateValueAndValidity","ɵɵdirectiveInject","HttpClient","NgbActiveModal","Router","SystemMessageService","selectors","inputs","outputs","standalone","decls","vars","consts","template","rf","ctx","OrganizationAccountUpdateComponent_div_0_Template","ɵɵpipeBind1","CiDashboardService","httpClient","constructor","canNavigateToRepackOrderByString","repackOrderId","get","canNavigateToRepackOrderById","canNavigateToJobByString","jobId","isHomer","httpParams","HttpParams","set","params","canNavigateToJobById","canNavigateToJobByDohLotNum","lotnum","ɵɵinject","HttpClient","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r2","repackErrorMsg","jobIdErrorMsg","lotnumErrorMsg","ɵɵlistener","ɵɵrestoreView","_r1","repackId_r2","ɵɵreference","ɵɵnextContext","clearErrors","ɵɵresetView","value","$event","orderKeyDown","navToRepackOrder","ɵɵtemplate","CiDashboardActionsComponent_div_0_div_18_Template","jobId_r4","jobKeyDown","navToJob","CiDashboardActionsComponent_div_0_div_28_Template","lotnum_r5","lotnumKeyDown","navToLotnum","CiDashboardActionsComponent_div_0_div_38_Template","clickedOutside","ɵɵproperty","repackIdhasErrors","jobIdHasErrors","lotnumHasErrors","CiDashboardActionsComponent","dashboardService","ms","ciDashboardContent","dashboardActionsClicked","reload","EventEmitter","isOpen","timeout","constructor","onChange","positionFilter","onResize","ngOnInit","rect","document","getElementById","getBoundingClientRect","nativeElement","style","top","parseInt","bottom","toString","left","ngAfterViewInit","window","addEventListener","el","classes","target","setTimeout","emit","repackId","isInputValid","isNaN","canNavigateToRepackOrderByString","pipe","tap","vm","FormatHelperService","GetIsNully","orderId","isPfs","location","href","subscribe","canNavigateToRepackOrderById","jobId","canNavigateToJobByString","isHomer","lotnum","canNavigateToJobByDohLotNum","dohLotNum","inputType","input","event","key","preventDefault","ɵɵdirectiveInject","CiDashboardService","SystemMessageService","selectors","viewQuery","rf","ctx","ɵɵresolveWindow","CiDashboardActionsComponent_div_0_Template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r1","r_r2","ɵɵnextContext","$implicit","ctx_r2","ɵɵresetView","openRequest","organizationAccountRequestId","ɵɵelement","ɵɵtemplate","OrganizationAccountUpdateNavComponent_ng_container_8_div_1_div_1_span_11_Template","OrganizationAccountUpdateNavComponent_ng_container_8_div_1_div_1_span_12_Template","OrganizationAccountUpdateNavComponent_ng_container_8_div_1_div_1_span_21_Template","OrganizationAccountUpdateNavComponent_ng_container_8_div_1_div_1_span_22_Template","ɵɵadvance","ɵɵproperty","faCircle","faArrowRightArrowLeft","isNewRequest","ɵɵtextInterpolate1","accountName","ɵɵtextInterpolate","organizationName","OrganizationAccountUpdateNavComponent_ng_container_8_div_1_div_1_Template","requests_r4","length","ɵɵelementContainerStart","OrganizationAccountUpdateNavComponent_ng_container_8_div_1_Template","OrganizationAccountUpdateNavComponent_ng_container_8_div_2_Template","_r5","toggleModal","OrganizationAccountUpdateNavComponent","modal","http","faLink","faExternalLinkAlt","faArrow","faSortDown","requests$","subscription","Subscription","selectedRequestUpdate","constructor","ngOnInit","getFacilityUpdateRequests","get","id","update","size","ɵɵdirectiveInject","NgbActiveModal","HttpClient","selectors","standalone","decls","vars","consts","template","rf","ctx","dismiss","OrganizationAccountUpdateNavComponent_ng_container_8_Template","OrganizationAccountUpdateNavComponent_ng_container_10_Template","ɵɵpipeBind1","FaBusinessAreaIconsService","getIconByBusinessArea","ba","BusinessAreaEnum","toDescription","faCaduceus","faPrescriptionBottlePill","faBoxesPacking","faTablets","faBottleBaby","faBlockQuestion","faCircleInfo","faFileLines","faBomb","faShelves","faDollarSign","faPrescription","faGear","faQuestion","getIconStyleByBusinessArea","color","background","factory","ɵfac","providedIn","getAdminNav","sec","SecurityService","p","PermissionRole","icons","FaBusinessAreaIconsService","dashboard","name","exact","path","activeNavLink","secondaryNav","organizations","moduleAccess","modules","BusinessAreaEnum","Admin","permissionRoles","setMinRole","User","children","shortName","inventoryConfig","Pharmacist","SystemAdmin","shipping","users","Manager","permissionsInfo","availableModules","map","key","toDescription","Number","split","join","toLowerCase","system","icon","getIconByBusinessArea","area","module","getBANav","icons","FaBusinessAreaIconsService","navItems","name","exact","path","moduleAccess","modules","BusinessAreaEnum","BA","permissionRoles","SecurityService","setMinRole","PermissionRole","User","featureFlag","activeNavLink","secondaryNav","href","SystemAdmin","children","icon","getIconByBusinessArea","area","module","getCiRepackNav","user","getUser","sec","SecurityService","p","PermissionRole","icons","FaBusinessAreaIconsService","navItems","name","exact","path","moduleAccess","modules","BusinessAreaEnum","CI","permissionRoles","setMinRole","User","activeNavLink","secondaryNav","Technician","Manager","UserAdmin","errorReportBusinessAreas","includes","push","ErrorReport","reportBusinessAreas","Reports","SystemAdmin","href","children","Pharmacist","canActivate","AuthGuard","icon","getIconByBusinessArea","area","module","userJson","localStorage","getItem","JSON","parse","getErrorReportNav","user","getUser","sec","SecurityService","p","PermissionRole","icons","FaBusinessAreaIconsService","name","canActivate","AuthGuard","moduleAccess","modules","BusinessAreaEnum","ErrorReport","permissionRoles","setMinRole","User","href","children","path","activeNavLink","secondaryNav","SystemAdmin","exact","icon","getIconByBusinessArea","area","module","userJson","localStorage","getItem","JSON","parse","getHelpDeskNav","user","getUser","sec","SecurityService","p","PermissionRole","icons","FaBusinessAreaIconsService","navItems","name","exact","path","moduleAccess","modules","BusinessAreaEnum","HelpDesk","permissionRoles","setMinRole","User","activeNavLink","secondaryNav","anyArea","errorReportBusinessAreas","includes","push","ErrorReport","reportBusinessAreas","Reports","SystemAdmin","href","children","canActivate","AuthGuard","icon","getIconByBusinessArea","area","module","userJson","localStorage","getItem","JSON","parse","getHEROSNav","user","getUser","icons","FaBusinessAreaIconsService","isAdmin","moduleAccess","filter","o","module","BusinessAreaEnum","HEROS","permissionRole","PermissionRole","SystemAdmin","length","name","href","modules","permissionRoles","SecurityService","setMinRole","User","children","getHerosNavItems","activeNavLink","secondaryNav","icon","getIconByBusinessArea","area","userJson","localStorage","getItem","JSON","parse","navItems","push","exact","path","requireAll","errorReportBusinessAreas","includes","ErrorReport","reportBusinessAreas","Reports","getIcqNav","user","getUser","sec","SecurityService","p","PermissionRole","icons","FaBusinessAreaIconsService","navItems","name","exact","path","moduleAccess","modules","BusinessAreaEnum","ICQ","permissionRoles","setMinRole","User","activeNavLink","secondaryNav","errorReportBusinessAreas","includes","push","ErrorReport","reportBusinessAreas","Reports","SystemAdmin","href","children","canActivate","AuthGuard","icon","getIconByBusinessArea","area","module","userJson","localStorage","getItem","JSON","parse","getInvNav","name","moduleAccess","modules","BusinessAreaEnum","SysInv","permissionRoles","SecurityService","setMinRole","PermissionRole","User","children","getNavAreas","id","url","window","location","href","indexOf","substring","lastIndexOf","includes","FormatHelperService","replaceAfterChar","path","activeNavLink","secondaryNav","Technician","getInventoryNav","user","UserStateService","getCurrentUser","icons","FaBusinessAreaIconsService","systemInventory","length","name","moduleAccess","modules","BusinessAreaEnum","SysInv","permissionRoles","SecurityService","setMinRole","PermissionRole","User","href","children","path","childNav","getInvNav","featureFlag","activeNavLink","secondaryNav","Technician","exact","SystemAdmin","icon","getIconByBusinessArea","area","module","getMetabolicFormulaNav","user","getUser","icons","FaBusinessAreaIconsService","navItems","name","exact","path","moduleAccess","modules","BusinessAreaEnum","MetabolicFormula","permissionRoles","SecurityService","setMinRole","PermissionRole","User","activeNavLink","secondaryNav","UserAdmin","Manager","errorReportBusinessAreas","includes","push","ErrorReport","reportBusinessAreas","Reports","SystemAdmin","canActivate","AuthGuard","href","children","icon","getIconByBusinessArea","area","module","userJson","localStorage","getItem","JSON","parse","getNdcDirectoryNav","user","getUser","icons","FaBusinessAreaIconsService","navItems","name","exact","path","moduleAccess","modules","BusinessAreaEnum","NDC","permissionRoles","SecurityService","setMinRole","PermissionRole","User","activeNavLink","secondaryNav","errorReportBusinessAreas","includes","push","ErrorReport","reportBusinessAreas","Reports","SystemAdmin","href","children","icon","getIconByBusinessArea","area","module","userJson","localStorage","getItem","JSON","parse","getPcgNav","pr","PermissionRole","facilityTypes","name","exact","path","activeNavLink","secondaryNav","moduleAccess","modules","BusinessAreaEnum","Admin","permissionRoles","SystemAdmin","datadog","epcis","sysInv","sse","releaseNotes","quartz","openNewTab","featureFlag","children","icon","faGears","area","module","Unassigned","getPharmacyInventoryNav","name","moduleAccess","modules","BusinessAreaEnum","Inventory","permissionRoles","SecurityService","setMinRole","PermissionRole","Technician","children","getInventoryAreas","user","getUser","id","url","window","location","href","split","rxTitle","isRxUser","indexOf","substring","lastIndexOf","includes","FormatHelperService","replaceAfterChar","path","activeNavLink","secondaryNav","exact","userJson","localStorage","getItem","JSON","parse","getPharmacyNav","user","getUser","icons","FaBusinessAreaIconsService","rxTitle","isRxUser","inventorySites","length","pharmacyNavItems","push","name","exact","path","moduleAccess","modules","BusinessAreaEnum","Inventory","permissionRoles","SecurityService","setMinRole","PermissionRole","User","activeNavLink","secondaryNav","Technician","childNav","getPharmacyInventoryNav","Pharmacist","href","children","Admin","SystemAdmin","requireAll","errorReportBusinessAreas","includes","ErrorReport","icon","getIconByBusinessArea","area","module","userJson","localStorage","getItem","JSON","parse","getReportingNav","sec","SecurityService","p","PermissionRole","icons","FaBusinessAreaIconsService","name","moduleAccess","modules","BusinessAreaEnum","Reports","permissionRoles","setMinRole","User","icon","getIconByBusinessArea","area","href","children","exact","path","activeNavLink","secondaryNav","SystemAdmin","CI","Technician","shortName","getRxConnectsNav","sec","SecurityService","p","PermissionRole","icons","FaBusinessAreaIconsService","dashboard","name","exact","path","moduleAccess","modules","BusinessAreaEnum","RxConnects","permissionRoles","setMinRole","User","activeNavLink","secondaryNav","patients","children","repository","RxConnectsPharmacist","donors","reports","href","icon","getIconByBusinessArea","area","module","getMainNavRoutes","getHEROSNav","getPharmacyNav","getCiRepackNav","getNdcDirectoryNav","getMetabolicFormulaNav","getIcqNav","getHelpDeskNav","getReportingNav","getErrorReportNav","getInventoryNav","getBANav","getRxConnectsNav","getAdminNav","getPcgNav","NavDividerCharacter","rootNav","name","id","NavigationService","sec","gs","gvs","selectedMainNav","signal","isNavOpen","isNotificationsNavOpen","isNavFixed","isMobile","userProfileExpanded","currOpenPrimaryNavMenu","currOpenPrimaryNavMenu$","toObservable","currOpenSecondaryNavMenu","rootNav","currOpenSecondaryNavMenu$","currOpenSideNavMenu","currOpenSideNavMenu$","currSelectedMainNavMenu","currSelectedMainNavMenu$","currForceSelect","currForceSelect$","navRoutes","getMainNavRoutes","navRoutes$","currNav","dynamicNavTitle","computed","name","pharmInvName","invName","FormatHelperService","GetIsNullyOrWhitespace","lastPageInitiatedMenu","_isNavOpen$","Subject","constructor","router","title","events","pipe","filter","event","NavigationEnd","subscribe","isLoggedOn","setNavRoutes","parseUrl","url","setTitle","getTitle","routes","getSecureNavItems","set","newSelectedMainNavMenu","getFlatMenu","find","o","id","user$","debounceTime","switchMap","__async","toggleNavOpenDebounce","localStorage","getItem","setCurrOpenNavMenu","newMenu","isSecondary","isSideNav","nextNav","nav","setActiveNav","setOpenSecondaryMenu","length","GetIsNully","menuList","getMenuNameWithRoot","flatMenu","menuId","join","NavDividerCharacter","path","splice","setOpenSideMenu","parentNav","flatRoutes","i","children","push","childNav","getMenuByUrl","myRoute","href","exact","startsWith","urlSegments","split","forEach","temp","m","getCurrRouteIndex","map","index","parent","activeNavLink","shouldShowRouteLink","route","shouldDisplay","concat","toggleNavFixed","setItem","toString","next","toggleNavOpen","ignoreDelay","collapseAllSubNavs","toggleSubNav","navRoute","expanded","collapseSubNavRecursively","keepOpen","navItem","getNavTreeRecursively","includes","navTree","canViewNav","hasAccess","hasNavAccess","moduleAccess","hasModuleAccess","modules","permissionRoles","currentNav","slice","area","module","sort","a","b","getUser","toggleNotificationsNav","update","isOpen","ɵɵinject","Router","SecurityService","GlobalService","GlobalVariablesService","Title","factory","ɵfac","providedIn","__decorate","UntilDestroy","SseNotificationService","sec","inject","SecurityService","http","HttpClient","notificationSource","notificationReceived","EventEmitter","initializeSSE","userId","getUser","id","readyState","EventSource","CLOSED","setupEventListeners","destroySSE","close","post","subscribe","removeAllListeners","onopen","console","log","addEventListener","event","data","JSON","parse","emit","onerror","error","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","route_r2","ɵɵnextContext","$implicit","ctx_r2","ɵɵresetView","clickLink","ɵɵtext","ɵɵelementEnd","ɵɵclassProp","isInUserNav","id","currForceSelect","ɵɵproperty","ɵɵpureFunction0","_c0","ɵɵpureFunction1","_c1","exact","ɵɵadvance","ɵɵtextInterpolate","name","_r4","closeDropdown","openDropdown","isMobile","clickDropdown","ɵɵelement","ɵɵpureFunction2","_c2","isRoot","isSecondary","currSelectedNavMenuItem","startsWith","currOpenSecondaryNavMenu","getHtmlId","href","openNewTab","_c3","ɵɵtextInterpolate1","currNavMenuItem","children","ɵɵtemplate","TopClickNavComponent_For_2_Conditional_0_Template","TopClickNavComponent_For_2_Conditional_1_Template","ɵɵconditional","navService","shouldShowRouteLink","navRoutes","hasSideNav","_r6","ɵɵtextInterpolate2","user","firstName","lastName","TopClickNavComponent_Conditional_3_Conditional_1_Template","_r5","logout","userNavOpen","_c4","TopClickNavComponent","elRef","sec","router","httpClient","ms","menuItemId","sseService","inject","SseNotificationService","isOpen","ulClasses","loopNavRoutes","constructor","ngOnInit","test","navigator","userAgent","substr","user$","subscribe","currOpenPrimaryNavMenu$","c","isSubNav","join","NavDividerCharacter","currSelectedMainNavMenu$","currOpenSecondaryNavMenu$","currForceSelect$","getNavRoutes","divCountCurrNav","split","length","ngOnChanges","changes","chng","cur","currentValue","prev","previousValue","routeId","replace","childMenuId","setCurrOpenNavMenu","route","window","open","path","navigate","queryParams","destroySSE","setSecurity","deleteAllCookies","sessionStorage","removeItem","localStorage","loggedInUsingSso","getItem","setItem","get","sm","isSuccessful","location","value","setSystemMessage","message","messageClass","cookies","document","cookie","i","eqPos","indexOf","routeIndex","getCurrRouteIndex","map","o","__spreadProps","__spreadValues","index","filter","shouldDisplay","ɵɵdirectiveInject","NavigationService","ElementRef","SecurityService","Router","HttpClient","SystemMessageService","selectors","inputs","standalone","features","ɵɵNgOnChangesFeature","decls","vars","consts","template","rf","ctx","ɵɵrepeaterCreate","TopClickNavComponent_For_2_Template","ɵɵrepeaterTrackByIdentity","TopClickNavComponent_Conditional_3_Template","ɵɵrepeater","isLoggedOn","styles","ɵɵelementStart","ɵɵlistener","tmp_2_0","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","clickDropdown","navService","currNav","parentNav","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","faIconName","faArrowLeft","ɵɵtext","ɵɵtextInterpolate","currOpenPrimaryNavMenu","route_r4","name","_r3","$implicit","clickedNav","emit","redirect","ɵɵtemplate","TopSecondaryNavComponent_For_4_Conditional_1_Conditional_2_Template","TopSecondaryNavComponent_For_4_Conditional_1_Conditional_3_Template","ɵɵclassProp","hrefLocation","includes","activeNavLink","ɵɵpureFunction1","_c1","exact","queryParams","path","ɵɵconditional","_r5","ɵɵtextInterpolate1","TopSecondaryNavComponent_For_4_Conditional_0_Template","TopSecondaryNavComponent_For_4_Conditional_1_Template","TopSecondaryNavComponent_For_4_Conditional_2_Template","TopSecondaryNavComponent_For_4_Conditional_3_Template","ellipseBefore","shouldShowRouteLink","navRoutes","index","ellipseAfter","children","hasSideNav","TopSecondaryNavComponent","router","title","sec","inject","SecurityService","rootNavId","routeNavId","forceSelect","tabPanel","EventEmitter","navLinks","loopNavRoutes","isMobile","onResize","GlobalService","setIsMobile","window","innerWidth","constructor","setTitle","ngOnInit","getNavRoutes","ngOnChanges","changes","getActiveLink","chng","cur","currentValue","prev","previousValue","focusNewlySelectedNav","checkTitle","s","FormatHelperService","GetIsNullyOrWhitespace","getTitle","dynamicNavTitle","currOpenSecondaryNavMenu","setTimeout","length","selectedNav","find","link","nativeElement","classList","contains","scrollIntoView","behavior","block","focus","childMenu","childNav","set","route","openNewTab","openInNewTab","namedRoute","newRelativeUrl","createUrlTree","baseUrl","location","href","replace","url","open","urlSegments","split","document","getElementsByTagName","isNaN","Number","slice","join","routeIndex","getCurrRouteIndex","getSecureNavItems","map","o","i","__spreadProps","__spreadValues","filter","shouldDisplay","ɵɵdirectiveInject","NavigationService","Router","Title","selectors","viewQuery","rf","ctx","ElementRef","ɵɵresolveWindow","TopSecondaryNavComponent_Conditional_1_Template","TopSecondaryNavComponent_Conditional_2_Template","ɵɵrepeaterCreate","TopSecondaryNavComponent_For_4_Template","ɵɵrepeaterTrackByIdentity","tmp_1_0","currSelectedMainNavMenu","ɵɵrepeater","WorkstationService","httpClient","sec","modalService","update","EventEmitter","workStationName","noWorkstation","constructor","user","getUser","getModel","ciWorkstationId","subscribe","data","workstationName","FormatHelperService","GetIsNullyOrWhitespace","id","httpParams","HttpParams","set","get","params","openCiWorkstationModal","open","CiWorkstationComponent","animation","hidden","JSON","parse","localStorage","getItem","ciWorkstationName","emit","ɵɵinject","HttpClient","SecurityService","NgbModal","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","dashboardActionsClicked","ciDashboardComponent_r3","ɵɵreference","clickedOutside","ɵɵelementEnd","ɵɵproperty","_r4","ɵɵelement","ɵɵadvance","faIcons","faScannerGun","WorkstationBannerComponent","workStationService","sec","gs","inject","GlobalService","isFixed","navFixedSubscription","ciDashboardComponent","user","workStationName","getModelRetries","noWorkstation","isOpen","constructor","getUser","ngOnInit","getModel","isNavFixed","subscribe","r","localStorage","getItem","ngOnDestory","unsubscribe","ciWorkstationId","setTimeout","openCiWorkstationModal","update","ɵɵdirectiveInject","WorkstationService","SecurityService","selectors","viewQuery","rf","ctx","ɵɵtext","ɵɵtemplate","WorkstationBannerComponent_Conditional_6_Template","WorkstationBannerComponent_Conditional_7_Template","ɵɵtextInterpolate","ɵɵconditional","QuickNavService","showContent","signal","preventCloseContent","toggleContent","update","closeContent","set","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵprojection","ɵɵelementEnd","ɵɵproperty","ctx_r0","navService","isMobile","QuickNavComponent","quickNavService","inject","QuickNavService","NavigationService","icon","faEllipsisV","tooltip","selectors","inputs","standalone","ngContentSelectors","_c0","decls","vars","consts","template","rf","ctx","ɵɵlistener","preventCloseContent","closeContent","toggleContent","ɵɵelement","ɵɵtemplate","QuickNavComponent_Conditional_3_Template","showContent","ɵɵadvance","ɵɵconditional","pcgSettingsDevelopment","pcgSettingsDemo","pcgSettingsProduction","pcgSettings","document","getElementById","textContent","pcgSettingsDevelopment","pcgSettingsDemo","pcgSettingsProduction","AccountRequestModalStateService","modalRefSubject","BehaviorSubject","setModalRef","modalRef","next","getModalRefObservable","asObservable","factory","ɵfac","providedIn","NotificationsService","notifications","signal","notifications$","toObservable","http","inject","HttpClient","toastr","ToastrService","unreadCount","computed","filter","n","markedAsRead","length","getNotificationsByUserId","userId","get","subscribe","next","set","sort","a","b","Date","notifiedDate","getTime","error","positionClass","timeOut","console","markAsRead","notificationId","post","pipe","tap","update","map","userNotificationId","__spreadProps","__spreadValues","markedAsReadDate","catchError","of","markAllAsRead","deleteNotification","delete","deleteAllNotifications","factory","ɵfac","providedIn","ɵɵelement","ɵɵproperty","ctx_r2","faIcons","faArrowLeft","faArrowRight","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","navService","toggleNavFixed","ɵɵtemplate","MatSideNavComponent_Conditional_0_Conditional_1_Template","MatSideNavComponent_Conditional_0_Conditional_2_Template","ɵɵelementEnd","ɵɵadvance","ɵɵconditional","isNavFixed","ɵɵelementContainer","MatSideNavComponent_For_6_ng_container_0_Template","navItem_r5","ɵɵpureFunction1","_c0","nav_r4","ɵɵtext","_r6","logout","user","id","MatSideNavComponent_ng_template_16_Conditional_0_ng_container_0_Template","nav_r8","children","length","navItemTree_r10","navItemNode_r11","ɵɵpureFunction2","_c1","level_r9","MatSideNavComponent_ng_template_16_Conditional_0_Template","canViewNav","nav_r13","icon","MatSideNavComponent_ng_template_18_Conditional_7_For_2_ng_container_0_Template","subNav_r14","level_r15","ɵɵrepeaterCreate","MatSideNavComponent_ng_template_18_Conditional_7_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵrepeater","_r12","nav","toggleSubNav","MatSideNavComponent_ng_template_18_Conditional_2_Template","MatSideNavComponent_ng_template_18_Conditional_7_Template","ɵɵclassProp","name","selectedMainNav","ɵɵtextInterpolate","tmp_9_0","shortName","undefined","expanded","faAngleDown","nav_r18","ctx_r16","_r16","level_r19","level","navLinkClicked","MatSideNavComponent_ng_template_20_Conditional_2_Template","MatSideNavComponent_ng_template_20_Conditional_5_Template","navLinkIsLoading","href","path","tmp_11_0","_r20","scrollToBottom","ns","step1Count","step2Count","step3Count","_r21","openFulfillmentList","MatSideNavComponent_Conditional_25_Conditional_3_Template","MatSideNavComponent_Conditional_25_Conditional_7_Template","MatSideNavComponent_Conditional_25_Conditional_11_Template","ɵɵstyleProp","iconColorName","faPrescription","faBoxOpen","faUserMd","accountRequestCount","_r22","openOrgAccountUpdateModal","MatSideNavComponent_Conditional_26_Conditional_3_Template","faArrowRightArrowLeft","notificationsService","unreadCount","_r23","toggleNotificationsNav","MatSideNavComponent_Conditional_27_Conditional_2_Template","faBell","MatSideNavComponent","router","sec","httpClient","modalService","arms","gs","ms","gvs","cdRef","inject","NavigationService","sseService","SseNotificationService","NavNotificationService","navContentOffscreen","observer","IntersectionObserver","entries","isIntersecting","navLinkLoading","signal","faUser","faBoxesPacking","step1Position","FaIconPosition","FaPositionUnits","percent","faNumColor","FaNumColor","faIconName","FaIconName","fileLogoUrl","mode","pcgSettings","navigationOffset","busArea","BusinessAreaEnum","role","PermissionRole","resizeTimeout","onResize","clearTimeout","setTimeout","fixNavOffset","constructor","ngOnInit","navRoutes","set","getSecureNavItems","getMainNavRoutes","isMobile","GlobalService","setIsMobile","window","innerWidth","navRoutes$","pipe","untilDestroyed","subscribe","ngAfterViewInit","getHeaderCounts","ngAfterContentChecked","detectChanges","mainNav","document","getElementById","getComputedStyle","position","getBoundingClientRect","bottom","styles","tableStyles","setDynamicStyle","checkForContentOffscreen","dynamicStyle","head","removeChild","createElement","innerHTML","appendChild","navAnchor","observe","setModalRef","open","OrganizationAccountUpdateNavComponent","animation","step","location","destroySSE","collapseAllSubNavs","setSecurity","localStorage","removeItem","deleteAllCookies","navigate","sessionStorage","loggedInUsingSso","getItem","setItem","get","msg","isSuccessful","value","setSystemMessage","message","messageClass","cookie","split","forEach","trim","toggleUserProfileSubNav","isOpen","userProfileExpanded","isNavOpen","openNewTab","openInNewTab","toggleNavOpen","namedRoute","newRelativeUrl","createUrlTree","baseUrl","replace","url","redirect","FormatHelperService","GetIsNullyOrWhitespace","reload","navigateByUrl","catch","err","console","log","currentName","currentLevel","scrollIntoView","behavior","block","inline","ɵɵdirectiveInject","Router","SecurityService","HttpClient","NgbModal","AccountRequestModalStateService","SystemMessageService","GlobalVariablesService","ChangeDetectorRef","NotificationsService","selectors","hostBindings","rf","ctx","ɵɵresolveWindow","MatSideNavComponent_Conditional_0_Template","i0","_r1","MatSideNavComponent_Conditional_3_Template","MatSideNavComponent_For_6_Template","_forTrack0","MatSideNavComponent_Conditional_14_Template","MatSideNavComponent_ng_template_16_Template","ɵɵtemplateRefExtractor","MatSideNavComponent_ng_template_18_Template","MatSideNavComponent_ng_template_20_Template","MatSideNavComponent_Conditional_22_Template","MatSideNavComponent_Conditional_25_Template","MatSideNavComponent_Conditional_26_Template","MatSideNavComponent_Conditional_27_Template","firstName","lastName","fulfillmentNavAccess","accountRequestAccess","reconNavAccess","invoiceNavAccess","icqAccess","__decorate","UntilDestroy","NavigationModule","RouterModule","CommonModule","FormsModule","ReactiveFormsModule","FontAwesomeModule","NgbTooltipModule","FormElementsModule","UiSwitchModule","MaterialsModule","EditOrganizationFacilityVm","facilityId","facilityName","facilityIdentifier","countyId","countyName","smartyAddress","smartyAddressString","hasSmarty","stateAbr","phoneNumber","dauCode","isActive","isSameAddress","shipFacilityName","shipSmartyAddress","shipSmartyAddressString","hasShipSmarty","shipStateAbr","isShipAddressValidated","friendlyId","gln","medicalDirectorId","medicalDirectorName","medicalDirectorLicense","medicalDirectorExpDate","organizationId","pfsFacilityId","reconCountsRequired","facilityTypeId","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","minLength","pattern","Form","UntypedFormGroup","GetModel","fg","EditOrganizationFacilityVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","item_r1","ProgramsAccountsInfographicComponent","httpClient","facilityTypeId","data","constructor","ngOnInit","get","subscribe","vm","buildObject","map","p","label","program","expanded","styleClass","children","c","i","orgAccount","replace","wholesalerAccount","ɵɵdirectiveInject","HttpClient","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵtext","ɵɵtemplate","ProgramsAccountsInfographicComponent_div_12_Template","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","navToFacilityDetail","ɵɵelement","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","faIconName","faExternalLink","_r4","activateDeactivate","model","isActive","ɵɵclassProp","ɵɵtextInterpolate1","ɵɵtemplate","EditOrganizationFacilityComponent_div_12_a_4_Template","canEdit","facilityId","_r5","validateCountyId","recon_r8","sysInvReconciliationId","sysInvInventoryId","ɵɵtextInterpolate","reconciliationName","_r7","closeSystemMessage","EditOrganizationFacilityComponent_div_74_button_10_Template","getCenteredStyles","ɵɵclassMap","firstLoad","pendingRecons","modal_r10","_r9","$implicit","dismiss","facilityTypeName","formGroup","controls","facilityTypeId","value","EditOrganizationFacilityComponent","httpClient","router","sec","activationService","ms","businessArea","organizationId","onSaveSuccess","EventEmitter","isSameAddress","isShipAddressValidated","infographicModal","facilityTypeSelect","modalService","inject","NgbModal","EditOrganizationFacilityVm","Form","GetModel","model$","api","canDeactivate","canViewReports","canManualEntry","canEditFacilityType","shipAddressDisabled","showHiddenFields","facilityName","oldShipSmartyAddress","oldShipFacilityName","faDiagramNested","showReconErrorMessage","facilityTypeTooltip","signal","constructor","title","setTitle","ngOnInit","hasModuleAccess","BusinessAreaEnum","CI","MetabolicFormula","Admin","PermissionRole","UserAdmin","SecurityService","setMinRole","User","Manager","Pharmacist","editFacility","undefined","SystemAdmin","get","subscribe","vm","countyId","setValue","shipFacilityName","shipSmartyAddress","toggleShippingFormActivation","disable","update","tooltip","ActivationEnum","Facility","updateShippingInfo","countyName","patchValue","smartyAddress","checked","enableShipFacilityName","disableShipFacilityName","updateValueAndValidity","submitForms","valid","validateForm","disabled","hasDisabledShipFacilityName","post","sm","isSuccessful","onMessageSuccess","onMessageError","reroute","Number","isNaN","navigate","setSysMessage","emit","showSystemMessage","showCustomReconMessage","settings","messageOpen","setTimeout","mm","document","body","clientWidth","mw","minWidth","left","enable","medDirectorChange","select","medicalDirectorLicense","additionalData","licenseNumber","medicalDirectorExpDate","expirationDate","setSystemMessage","message","messageClass","navigateByUrl","editFacilityLink","openChartModal","text","open","size","animation","ɵɵdirectiveInject","HttpClient","Router","Title","ActivationService","SystemMessageService","selectors","viewQuery","rf","ctx","i0","_r1","EditOrganizationFacilityComponent_button_11_Template","EditOrganizationFacilityComponent_div_12_Template","EditOrganizationFacilityComponent_button_28_Template","select_r6","ɵɵreference","EditOrganizationFacilityComponent_div_74_Template","EditOrganizationFacilityComponent_ng_template_75_Template","ɵɵtemplateRefExtractor","formattedAddress","OrganizationUsersVm","id","name","email","phoneNumber","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","OrganizationUsersVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","createUser","ɵɵtext","ɵɵelementEnd","_r3","addUserBtn","ɵɵadvance","ɵɵtextInterpolate","columns","get","displayName","ɵɵproperty","getEditUserLink","row_r4","id","ɵɵsanitizeUrl","name","ɵɵtemplate","AssociatedUsersComponent_ng_container_0_td_9_Conditional_1_Template","AssociatedUsersComponent_ng_container_0_td_9_Conditional_2_Template","ɵɵconditional","canEditUser","row_r5","email","row_r6","phoneNumber","ɵɵelementContainerStart","AssociatedUsersComponent_ng_container_0_Conditional_4_Template","AssociatedUsersComponent_ng_container_0_Conditional_5_Template","AssociatedUsersComponent_ng_container_0_th_8_Template","AssociatedUsersComponent_ng_container_0_td_9_Template","AssociatedUsersComponent_ng_container_0_th_11_Template","AssociatedUsersComponent_ng_container_0_td_12_Template","AssociatedUsersComponent_ng_container_0_th_14_Template","AssociatedUsersComponent_ng_container_0_td_15_Template","canCreateUser","canAddUser","ɵɵpureFunction1","_c2","ɵɵpureFunction0","_c1","params","ɵɵelement","_r8","handleOrganizations","allOrganizations","associatedOrganizations","$event","_r7","saveUser","AssociatedUsersComponent_ng_template_1_Conditional_24_Template","AssociatedUsersComponent_ng_template_1_Conditional_25_Template","cancelAdd","formGroup","canEditOrganizations","userId","row_r11","row_r12","row_r14","_r13","$implicit","existingUserTable_r15","ɵɵreference","addExistingUser","modal_r10","_r9","dismiss","AssociatedUsersComponent_ng_template_3_th_11_Template","AssociatedUsersComponent_ng_template_3_td_12_Template","AssociatedUsersComponent_ng_template_3_th_14_Template","AssociatedUsersComponent_ng_template_3_td_15_Template","AssociatedUsersComponent_ng_template_3_th_17_Template","AssociatedUsersComponent_ng_template_3_td_18_Template","_c3","_c4","filters","AssociatedUsersComponent","activatedRoute","modalService","security","httpClient","ms","dynForm","table","modalContent","businessArea","orgId","facilityIds","EditUserVm","Form","model","GetModel","organizations","canDeleteUser","isCreate","organizationId","newUser","OrganizationUsersVm","ColumnDefs","constructor","hasModuleAccess","BusinessAreaEnum","Admin","PermissionRole","Pharmacist","CI","MetabolicFormula","UserAdmin","SecurityService","setMinRole","Manager","SystemAdmin","ngOnInit","setSecurity","snapshot","undefined","reloadTable","ajaxReload","open","animation","beforeDismiss","post","subscribe","msg","isSuccessful","parseInt","paramMap","vm","updateFormGroupFields","fields","patchValue","populateOrganizations","controls","setValue","isActive","items","reduce","accum","current","push","text","value","length","filter","i","find","o","organization","organizationIds","includes","message","link","setSystemMessage","ɵɵdirectiveInject","ActivatedRoute","NgbModal","HttpClient","SystemMessageService","DynamicFormService","selectors","viewQuery","rf","ctx","TableComponent","AssociatedUsersComponent_ng_container_0_Template","AssociatedUsersComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","AssociatedUsersComponent_ng_template_3_Template","createUserForm_r16","MedicalDirectorVm","medicalDirectorId","fullName","licenseNumber","expirationDate","expirationDateStr","lastUpdatedDate","lastUpdatedDateStr","lastUpdatedUserId","lastUpdatedBy","pfsId","friendlyId","uploadFiles","medicalDirectorFiles","licenseFileName","actions","actionsSelected","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","UntypedFormArray","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","MedicalDirectorVmFromFg","constructor","get","value","val","setValue","EditOrganizationVm","organizationId","organizationName","countyId","countyName","smartyAddress","smartyAddressString","hasSmarty","stateAbr","phoneNumber","isActive","isSameAddress","shipOrganizationName","shipSmartyAddress","shipSmartyAddressString","hasShipSmarty","shipStateAbr","isShipAddressValidated","friendlyId","gln","medicalDirectorId","medicalDirectorName","medicalDirectorLicense","medicalDirectorExpDate","isSingleFacility","facilityIdentifier","dauCode","facilityIds","loginType","loginTypeEnum","ssoType","ssoTypeEnum","entraIdentifierUrl","entraLoginUrl","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","minLength","pattern","Form","UntypedFormGroup","GetModel","fg","EditOrganizationVmFromFg","constructor","get","value","val","setValue","OrganizationFacilityListVm","facilityId","facilityName","facilityIdentifier","city","county","isActive","canDelete","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","OrganizationFacilityListVmFromFg","constructor","get","value","val","setValue","SysInvInventoryVm","sysInvInventoryId","facilityId","organizationId","name","type","programIds","programs","active","canDelete","friendlyId","createdByUserStr","createdByUserId","createdDate","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","SysInvInventoryVmFromFg","constructor","get","value","val","setValue","FacilityInventoryService","http","constructor","getInventory","id","get","activateDeactivate","ɵɵinject","HttpClient","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","showInactiveInventories","ɵɵresetView","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵtwoWayProperty","ɵɵtextInterpolate","inv_r5","programs","slice","join","ɵɵlistener","_r6","$implicit","stopPropagation","showPrograms","ɵɵtextInterpolate1","length","active","_r7","updateInventoryList","ɵɵproperty","sysInvInventoryId","_r4","editInventory","ɵɵtemplate","OrgFacilityInventoriesComponent_Conditional_4_For_6_Conditional_0_Conditional_18_Template","OrgFacilityInventoriesComponent_Conditional_4_For_6_Conditional_0_Conditional_19_Template","OrgFacilityInventoriesComponent_Conditional_4_For_6_Conditional_0_Conditional_20_Template","OrgFacilityInventoriesComponent_Conditional_4_For_6_Conditional_0_Conditional_21_Template","name","parseEnum","type","ɵɵconditional","canDelete","OrgFacilityInventoriesComponent_Conditional_4_For_6_Conditional_0_Template","_r3","ɵɵelement","ɵɵrepeaterCreate","OrgFacilityInventoriesComponent_Conditional_4_For_6_Template","_forTrack0","faIcon","faPlus","ɵɵrepeater","inventoryList","_r9","AddAllPrograms","fg","controls","programIds","value","_r10","activateDeactivate","ɵɵclassProp","_r8","showEditInventory","handleSave","OrgFacilityInventoriesComponent_Conditional_5_Conditional_12_Template","OrgFacilityInventoriesComponent_Conditional_5_Conditional_13_Template","OrgFacilityInventoriesComponent_Conditional_5_Conditional_17_Template","faXmark","types","orgFacility","facilityTypeId","_r12","allPrograms","toggleProgramView","program_r14","OrgFacilityInventoriesComponent_ng_template_6_Conditional_8_li_5_Template","inv","program_r15","OrgFacilityInventoriesComponent_ng_template_6_Conditional_9_li_2_li_4_Template","inv_r16","program_r17","OrgFacilityInventoriesComponent_ng_template_6_Conditional_9_Conditional_3_li_3_li_4_Template","inv_r18","OrgFacilityInventoriesComponent_ng_template_6_Conditional_9_Conditional_3_li_3_Template","inactiveInventoryList","OrgFacilityInventoriesComponent_ng_template_6_Conditional_9_Conditional_0_Template","OrgFacilityInventoriesComponent_ng_template_6_Conditional_9_li_2_Template","OrgFacilityInventoriesComponent_ng_template_6_Conditional_9_Conditional_3_Template","activeInventoryList","OrgFacilityInventoriesComponent_ng_template_6_Conditional_3_Template","modal_r13","_r11","dismiss","OrgFacilityInventoriesComponent_ng_template_6_Conditional_8_Template","OrgFacilityInventoriesComponent_ng_template_6_Conditional_9_Template","OrgFacilityInventoriesComponent","http","sm","fi","userState","modalService","facilityId","organizationId","modalProgram","SysInvInventoryVm","Form","model$","constructor","ngOnInit","getOrgFacility","setSelectItemTypes","getInventoryList","get","subscribe","vm","list","updateInventoryLists","id","newModel","patchValue","model","find","o","disable","val","InventoryTypeEnum","toDisplay","invList","filter","updateUser","UserStateService","getCurrentUser","Object","values","isNaN","Number","Both","map","text","items","setValue","item","parseInt","isSuccessful","setSystemMessage","message","messageClass","open","animation","ɵɵdirectiveInject","HttpClient","SystemMessageService","FacilityInventoryService","NgbModal","selectors","viewQuery","rf","ctx","OrgFacilityInventoriesComponent_Conditional_3_Template","OrgFacilityInventoriesComponent_Conditional_4_Template","OrgFacilityInventoriesComponent_Conditional_5_Template","OrgFacilityInventoriesComponent_ng_template_6_Template","ɵɵtemplateRefExtractor","ɵɵelement","ɵɵelementStart","ɵɵelementEnd","ɵɵproperty","row_r4","facilityId","ɵɵadvance","ctx_r1","faIcon","faExternalLink","ɵɵtemplate","OrganizationFacilityListComponent_ng_container_0_td_22_Conditional_1_Template","ɵɵconditional","ɵɵtext","ɵɵtextInterpolate","columns","get","displayName","row_r5","facilityName","row_r6","facilityIdentifier","row_r7","city","row_r8","county","row_r9","isActive","table_r3","row_r10","OrganizationFacilityListComponent_ng_container_0_td_40_Conditional_1_Template","canDeleteFacility","ɵɵelementContainerStart","ɵɵlistener","ɵɵrestoreView","_r1","ɵɵnextContext","ɵɵresetView","reloadTable","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","filters","ɵɵreference","ajaxReload","showEditOrganizationFacility","openFacility","OrganizationFacilityListComponent_ng_container_0_th_21_Template","OrganizationFacilityListComponent_ng_container_0_td_22_Template","OrganizationFacilityListComponent_ng_container_0_th_24_Template","OrganizationFacilityListComponent_ng_container_0_td_25_Template","OrganizationFacilityListComponent_ng_container_0_th_27_Template","OrganizationFacilityListComponent_ng_container_0_td_28_Template","OrganizationFacilityListComponent_ng_container_0_th_30_Template","OrganizationFacilityListComponent_ng_container_0_td_31_Template","OrganizationFacilityListComponent_ng_container_0_th_33_Template","OrganizationFacilityListComponent_ng_container_0_td_34_Template","OrganizationFacilityListComponent_ng_container_0_th_36_Template","OrganizationFacilityListComponent_ng_container_0_td_37_Template","OrganizationFacilityListComponent_ng_container_0_th_39_Template","OrganizationFacilityListComponent_ng_container_0_td_40_Template","ɵɵtwoWayProperty","ɵɵpureFunction1","_c1","ɵɵpureFunction0","_c0","filterMap","initFilters","id","selectedFacilityId","_r11","orgFacilityInventories","getInventoryList","OrganizationFacilityListComponent_ng_template_1_Conditional_2_Template","hideEditOrganizationFacility","OrganizationFacilityListComponent","route","btnFilterService","sec","table","businessArea","Object","assign","canEdit","canDelete","showBusinessArea","OrganizationFacilityListVm","ColumnDefs","constructor","ngOnInit","hasModuleAccess","PermissionRole","UserAdmin","BusinessAreaEnum","Admin","SystemAdmin","resetFilterData","subscribe","resetFilters","queryParamMap","params","has","parseInt","hideShowColumn","FormatHelperService","GetIsNully","row","ɵɵdirectiveInject","ActivatedRoute","ButtonFilterService","SecurityService","selectors","viewQuery","rf","ctx","TableComponent","OrgFacilityInventoriesComponent","OrganizationFacilityListComponent_ng_container_0_Template","OrganizationFacilityListComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","editOrganizationFacility_r12","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r1","columns","get","displayName","row_r3","dateChangedFormatted","row_r4","module","row_r5","recordAffected","row_r6","field","row_r7","changedFrom","row_r8","changedTo","row_r9","changedBy","OrganizationAuditHistoryComponent","activatedRoute","table","AuditHistoryVm","ColumnDefs","organizationId","organizationName","filters","faIconName","faBuildingColumns","constructor","title","setTitle","ngOnInit","snapshot","params","ɵɵdirectiveInject","Title","ActivatedRoute","selectors","viewQuery","rf","ctx","TableComponent","ɵɵlistener","$event","i0","ɵɵrestoreView","_r1","ɵɵresetView","value","ɵɵelementContainerStart","ɵɵtemplate","OrganizationAuditHistoryComponent_th_5_Template","OrganizationAuditHistoryComponent_td_6_Template","OrganizationAuditHistoryComponent_th_8_Template","OrganizationAuditHistoryComponent_td_9_Template","OrganizationAuditHistoryComponent_th_11_Template","OrganizationAuditHistoryComponent_td_12_Template","OrganizationAuditHistoryComponent_th_14_Template","OrganizationAuditHistoryComponent_td_15_Template","OrganizationAuditHistoryComponent_th_17_Template","OrganizationAuditHistoryComponent_td_18_Template","OrganizationAuditHistoryComponent_th_20_Template","OrganizationAuditHistoryComponent_td_21_Template","OrganizationAuditHistoryComponent_th_23_Template","OrganizationAuditHistoryComponent_td_24_Template","ɵɵclassProp","ɵɵproperty","ɵɵpureFunction1","_c1","ɵɵpureFunction0","_c0","OrganizationAccountVm","organizationAccountId","facilityAccountNameId","facilityAccountNamePfsId","facilityAccountNameStr","organizationId","pfsIds","pfsFacilityAccountIds","organizationStr","accountNumber","expirationDate","expirationDateStr","notes","file","uploadFiles","uploadFilePath","fileName","isActive","isGracePeriod","isNewRequest","friendlyId","actions","actionsSelected","lastUpdatedDate","lastUpdatedDateStr","lastUpdatedUserId","lastUpdatedBy","hasPendingRequest","daysRemaining","organizationLink","pfsRequestIds","isRemoveDoc","homerEmailSent","pfsRequestedByEmail","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","pattern","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","OrganizationAccountVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r2","columns","get","displayName","ɵɵlistener","ɵɵrestoreView","_r4","row_r5","ɵɵnextContext","$implicit","ɵɵresetView","actionClick","actions","ɵɵtemplate","OrganizationAccountsComponent_ng_container_0_td_22_Conditional_1_Template","ɵɵconditional","actionsSelected","OrganizationAccountsComponent_ng_container_0_td_25_Conditional_2_Template","OrganizationAccountsComponent_ng_container_0_td_25_Conditional_3_Template","ɵɵtextInterpolate1","row_r6","facilityAccountNameStr","hasPendingRequest","isNewRequest","row_r7","accountNumber","row_r8","expirationDateStr","OrganizationAccountsComponent_ng_container_0_td_34_Conditional_1_Template","OrganizationAccountsComponent_ng_container_0_td_34_Conditional_2_Template","row_r9","isActive","row_r10","lastUpdatedDateStr","row_r11","lastUpdatedBy","row_r13","_r12","openFile","uploadFilePath","fileName","ɵɵelementContainerStart","_r1","table_r2","ɵɵreference","ajaxReload","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","filters","OrganizationAccountsComponent_ng_container_0_th_21_Template","OrganizationAccountsComponent_ng_container_0_td_22_Template","OrganizationAccountsComponent_ng_container_0_th_24_Template","OrganizationAccountsComponent_ng_container_0_td_25_Template","OrganizationAccountsComponent_ng_container_0_th_27_Template","OrganizationAccountsComponent_ng_container_0_td_28_Template","OrganizationAccountsComponent_ng_container_0_th_30_Template","OrganizationAccountsComponent_ng_container_0_td_31_Template","OrganizationAccountsComponent_ng_container_0_th_33_Template","OrganizationAccountsComponent_ng_container_0_td_34_Template","OrganizationAccountsComponent_ng_container_0_th_36_Template","OrganizationAccountsComponent_ng_container_0_td_37_Template","OrganizationAccountsComponent_ng_container_0_th_39_Template","OrganizationAccountsComponent_ng_container_0_td_40_Template","OrganizationAccountsComponent_ng_container_0_th_42_Template","OrganizationAccountsComponent_ng_container_0_td_43_Template","ɵɵtwoWayProperty","ɵɵproperty","newModel","ɵɵpureFunction1","_c2","ɵɵpureFunction0","_c1","btnFilterService","filterMap","_r15","formGroup","facilityFile","maxFiles","_r16","clearFile","ɵɵelement","controls","value","ɵɵsanitizeUrl","_r14","editSave","accountNameClicked","setExpDateRequired","updateExpStr","OrganizationAccountsComponent_ng_template_1_Conditional_29_Template","OrganizationAccountsComponent_ng_template_1_Conditional_30_Template","cancel","ɵɵclassProp","expDateRequired","ɵɵpipeBind2","expirationDate","hasFile","saveBtnDisabled","saveBtnTooltip","_r18","editClick","_r19","deleteClick","OrganizationAccountsComponent_ng_template_3_Conditional_3_Conditional_1_Template","OrganizationAccountsComponent_ng_template_3_Conditional_3_Conditional_2_Template","_r17","canEdit","canDelete","_r20","performDelete","OrganizationAccountsComponent_ng_template_3_Conditional_3_Template","OrganizationAccountsComponent_ng_template_3_Conditional_4_Template","editClicked","deleteClicked","OrganizationAccountsComponent","sec","arms","modalService","sm","cdr","router","inject","ActivatedRoute","http","HttpClient","notificationService","NotificationService","ns","NavNotificationService","table","accountUpdateOptions","id","businessArea","accountId","OrganizationAccountVm","ColumnDefs","Form","initFormGroup","initFilters","Object","assign","accountQueueModalRef","isOpen","clearFileClick","accountNameClick","isLoading","strAction","constructor","title","setTitle","ngOnInit","hasModuleAccess","PermissionRole","Manager","SecurityService","setMinRole","User","BusinessAreaEnum","Admin","SystemAdmin","resetFilterData","subscribe","resetFilters","reloadTablePromise","patchValue","valueChanges","isSaveDisabled","parseInt","snapshot","paramMap","getAccount","hideShowColumn","FormatHelperService","GetIsNully","sub","tableReceive","r","row","data","filter","d","facilityAccountNameId","setValue","unsubscribe","detectChanges","getModalRefObservable","modalRef","result","then","catch","e","filePath","includes","window","open","location","origin","isNew","setModelValues","animation","reset","organizationId","GetIsNullyOrWhitespace","dismissAll","next","isNotification","addValidators","Validators","required","clearValidators","updateValueAndValidity","error","showMessage","msg","messageClass","getHttpObservable","organizationAccountId","file","errors","validateForm","valid","isSuccessful","getHeaderCounts","setTimeout","expDateStr","formatDate","JSON","stringify","ɵɵdirectiveInject","ButtonFilterService","Title","AccountRequestModalStateService","NgbModal","SystemMessageService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","TableComponent","OrganizationAccountsComponent_ng_container_0_Template","OrganizationAccountsComponent_ng_template_1_Template","ɵɵtemplateRefExtractor","OrganizationAccountsComponent_ng_template_3_Template","accountUpdate_r21","LoginTypeEnum","toDescription","val","toDisplay","SSOTypeEnum","toDescription","val","toDisplay","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","changeLoginType","ɵɵelementEnd","ɵɵproperty","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate","model","loginType","_r3","openInfo","ɵɵelement","ssoType","ɵɵtemplate","OrganizationLoginsComponent_Conditional_0_Conditional_18_Conditional_3_Template","OrganizationLoginsComponent_Conditional_0_Conditional_18_Conditional_4_Template","OrganizationLoginsComponent_Conditional_0_Conditional_18_Conditional_5_Template","ɵɵconditional","ssoTypeEnum","canEdit","_r4","onSave","OrganizationLoginsComponent_Conditional_0_Conditional_16_Template","OrganizationLoginsComponent_Conditional_0_Conditional_17_Template","OrganizationLoginsComponent_Conditional_0_Conditional_18_Template","OrganizationLoginsComponent_Conditional_0_Conditional_19_Template","OrganizationLoginsComponent_Conditional_0_Conditional_21_Template","formGroup","showSsoType","_r5","closeInfo","faIconName","faXmark","ɵɵclassMap","isMobile","ɵɵsanitizeUrl","OrganizationLoginsComponent","sec","router","httpClient","ms","vm","EditOrganizationVm","Form","GetModel","infoOpened","constructor","onResize","GlobalService","setIsMobile","window","innerWidth","ngOnInit","bae","BusinessAreaEnum","pr","PermissionRole","hasModuleAccess","CI","MetabolicFormula","Admin","HEROS","SystemAdmin","SecurityService","setMinRole","newvm","patchValue","loginTypeEnum","LoginTypeEnum","SSO","Both","controls","value","SSOTypeEnum","MicrosoftEntraAD","post","getRawValue","subscribe","sm","__async","isSuccessful","setSystemMessage","message","messageClass","ɵɵdirectiveInject","Router","HttpClient","SystemMessageService","selectors","hostBindings","rf","ctx","ɵɵresolveWindow","OrganizationLoginsComponent_Conditional_0_Template","OrganizationLoginsComponent_Conditional_1_Template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r3","ctx_r1","ɵɵnextContext","activateDeactivate","ɵɵresetView","model","isActive","ɵɵclassProp","ɵɵadvance","ɵɵtextInterpolate","ɵɵtemplate","EditOrganizationComponent_Conditional_0_Conditional_3_ng_template_2_Conditional_16_Conditional_4_Template","ɵɵelement","ɵɵconditional","canEdit","organizationId","ɵɵproperty","_r5","select_r4","ɵɵreference","addMedicalDirector","select","searchTerm","_r6","validateCountyId","id","_r1","submitForms","EditOrganizationComponent_Conditional_0_Conditional_3_ng_template_2_Conditional_2_Template","onSingleFacilityChange","EditOrganizationComponent_Conditional_0_Conditional_3_ng_template_2_Conditional_16_Template","medDirectorChange","EditOrganizationComponent_Conditional_0_Conditional_3_ng_template_2_ng_template_21_Template","ɵɵtemplateRefExtractor","updateShippingInfo","EditOrganizationComponent_Conditional_0_Conditional_3_ng_template_2_Conditional_66_Template","formGroup","facilityId","canDeactivate","missingMedicalDirector_r7","ɵɵtextInterpolate1","medicalDirectorLicense","medicalDirectorExpDate","canManualEntry","api","controls","countyName","value","shipAddressDisabled","shipOrganizationName","shipSmartyAddress","formattedAddress","isSingleFacility","faIconName","faBuilding","viewModel","businessArea","facilityIds","EditOrganizationComponent_Conditional_0_Conditional_3_Conditional_3_ng_template_1_Template","EditOrganizationComponent_Conditional_0_Conditional_3_Conditional_3_ng_template_3_Template","EditOrganizationComponent_Conditional_0_Conditional_3_Conditional_3_ng_template_5_Template","EditOrganizationComponent_Conditional_0_Conditional_3_Conditional_3_ng_template_7_Template","EditOrganizationComponent_Conditional_0_Conditional_3_Conditional_5_ng_template_1_Template","EditOrganizationComponent_Conditional_0_Conditional_3_ng_template_2_Template","EditOrganizationComponent_Conditional_0_Conditional_3_Conditional_3_Template","EditOrganizationComponent_Conditional_0_Conditional_3_Conditional_5_Template","ɵɵpipeBind1","model$","canViewReports","ɵɵelementContainerStart","EditOrganizationComponent_Conditional_0_Conditional_3_Template","organizationName","modal_r9","_r8","$implicit","dismiss","saveNewMedicalDirector","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","mdFormGroup","ɵɵpipeBind2","expirationDate","medicalDirectorId","medicalDirectorFiles","ɵɵtwoWayProperty","EditOrganizationComponent","router","notification","route","httpClient","sec","activationService","isSameAddress","isShipAddressValidated","addNewMD","EditOrganizationVm","Form","GetModel","canAccess","oldShipSmartyAddress","oldShipOrganizationName","newMD","MedicalDirectorVm","subscriptions","Subscription","deleteClicked","hasFile","clearFileClick","modalService","inject","NgbModal","constructor","title","setTitle","ngOnInit","bae","BusinessAreaEnum","pr","PermissionRole","hasModuleAccess","CI","MetabolicFormula","Admin","UserAdmin","SecurityService","setMinRole","Manager","editOrganization","FormatHelperService","GetIsNully","SystemAdmin","setCanAccess","User","paramMap","subscribe","map","parseInt","get","pipe","tap","vm","countyId","setValue","toggleShippingFormActivation","ActivationEnum","Organization","patchValue","smartyAddress","checked","enableShipOrganizationName","disableShipOrganizationName","updateValueAndValidity","valid","validateForm","disabled","hasDisabledShipOrganizationName","post","sm","isSuccessful","onMessageSuccess","onMessageError","reroute","Number","isNaN","navigate","enable","disable","additionalData","licenseNumber","facilityIdentifier","addValidators","Validators","required","removeValidators","setSysMessage","showMessage","message","messageClass","goBack","window","history","back","navigateByUrl","skipLocationChange","then","name","fullName","ToTitleCase","trim","GetIsNullyOrWhitespace","licenseFileName","open","animation","add","getHttpObservable","msg","getData","dismissAll","ɵɵdirectiveInject","Router","NotificationService","ActivatedRoute","HttpClient","ActivationService","Title","selectors","viewQuery","rf","ctx","EditOrganizationComponent_Conditional_0_Template","EditOrganizationComponent_ng_template_1_Template","EditOrganizationsModule","CommonModule","TableModule","detailExpand","trigger","state","style","height","opacity","lineHeight","padding","border","transition","animate","tableEntry","notificationSlide","transform","top","bottom","OrganizationListVm","organizationId","organizationName","address","city","state","zip","county","countyId","isActive","canDelete","isParent","orgCount","facilityCount","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","OrganizationListVmFromFg","constructor","get","value","val","setValue","CollapsibleTableRowStateEnum","CollapsibleTableService","expandedRows","Set","constructor","toggleRow","row","expandedOrCollapsed","CollapsibleTableRowStateEnum","Expanded","setCollapsed","setExpanded","add","delete","toggleAllRows","length","size","clear","Array","keys","collapseAllRows","has","Collapsed","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵproperty","ctx_r1","collapsibleTableService","expandedOrCollapsed","i_r4","canEditOrganization","editOrganizationLink","rowchild_r5","organizationId","ɵɵtextInterpolate","organizationName","ɵɵtextInterpolate4","address","city","state","zip","facilityCount","ɵɵlistener","ɵɵrestoreView","_r3","index","ɵɵnextContext","ɵɵresetView","toggleRow","ɵɵtemplate","OrganizationsListComponent_Conditional_12_ng_container_16_ng_container_12_Template","row_r6","orgCount","county","filterChildren","_r1","toggleAllRows","orgList","length","OrganizationsListComponent_Conditional_12_ng_container_16_Template","expandedRows","size","filterParents","columns","get","displayName","row_r9","row_r10","row_r11","row_r12","row_r13","isActive","row_r14","table_r8","row_r15","OrganizationsListComponent_Conditional_13_td_44_Conditional_1_Template","ɵɵconditional","canDelete","_r7","reloadTable","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","filters","ɵɵreference","ajaxReload","medicalDirectorId","facilityId","tableCallback","OrganizationsListComponent_Conditional_13_th_25_Template","OrganizationsListComponent_Conditional_13_td_26_Template","OrganizationsListComponent_Conditional_13_th_28_Template","OrganizationsListComponent_Conditional_13_td_29_Template","OrganizationsListComponent_Conditional_13_th_31_Template","OrganizationsListComponent_Conditional_13_td_32_Template","OrganizationsListComponent_Conditional_13_th_34_Template","OrganizationsListComponent_Conditional_13_td_35_Template","OrganizationsListComponent_Conditional_13_th_37_Template","OrganizationsListComponent_Conditional_13_td_38_Template","OrganizationsListComponent_Conditional_13_th_40_Template","OrganizationsListComponent_Conditional_13_td_41_Template","OrganizationsListComponent_Conditional_13_th_43_Template","OrganizationsListComponent_Conditional_13_td_44_Template","ɵɵtwoWayProperty","ɵɵpureFunction1","_c1","ɵɵpureFunction0","_c0","filterMap","initFilters","OrganizationsListComponent","formatHelper","btnFilterService","security","router","httpClient","table","businessArea","BusinessAreaEnum","Admin","header","groupByCounty","showByCounty","baseEditRoles","PermissionRole","UserAdmin","SecurityService","setMinRole","Manager","hasOrgs","tableReceiveCount","canAdd","hasData","OrganizationListVm","ColumnDefs","constructor","ngOnInit","hasModuleAccess","CI","MetabolicFormula","SystemAdmin","resetFilterData","subscribe","resetFilters","getGroupedByCountyList","lst","Object","assign","tableResult","recordsTotal","User","navigateToNewOrganization","navigateByUrl","hideShowColumn","GetIsNully","filter","o","isParent","row","countyId","ɵɵdirectiveInject","FormatHelperService","ButtonFilterService","Router","HttpClient","CollapsibleTableService","selectors","viewQuery","rf","ctx","TableComponent","OrganizationsListComponent_Conditional_0_Template","OrganizationsListComponent_Conditional_12_Template","OrganizationsListComponent_Conditional_13_Template","detailExpand","SafePipe","sanitizer","constructor","transform","url","bypassSecurityTrustResourceUrl","ɵɵdirectiveInject","DomSanitizer","pure","standalone","UtcToLocalPipe","transform","utcTimeString","utcDate","Date","millisecondsPerMinute","minutes","getTimezoneOffset","getTime","pure","standalone","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate2","ctx_r2","parentStep","i_r2","ɵɵtextInterpolate","ɵɵtemplate","StepperComponent_ng_container_2_div_1_span_2_Template","StepperComponent_ng_container_2_div_1_span_3_Template","ɵɵlistener","ɵɵrestoreView","_r1","ɵɵnextContext","index","ɵɵresetView","manualClick","ɵɵproperty","ɵɵpureFunction1","_c0","selectedIndex","isChild","ɵɵclassProp","step_r5","label","StepperComponent_ng_container_2_div_2_span_2_Template","StepperComponent_ng_container_2_div_2_span_3_Template","_r6","ɵɵtextInterpolate1","ɵɵelement","ɵɵelementContainerStart","StepperComponent_ng_container_2_div_1_Template","StepperComponent_ng_container_2_div_2_Template","StepperComponent_ng_container_2_hr_3_Template","currentStep","isLast_r7","ɵɵelementContainer","step_r9","content","$event","_r8","_animationDone","next","StepperComponent_div_5_ng_container_1_Template","ɵɵstyleProp","stepDisplay","i_r10","_getAnimationDirection","_getStepContentId","destroyOnHide","StepperComponent","CdkStepper","canMoveForward","disableSpecificStepClicks","animationDone","EventEmitter","current","stepperNumberManuallyClicked","Array","apply","_steps","length","map","o","i","lastIndex","Subject","selectStepByIndex","emit","includes","ngAfterContentInit","changes","pipe","takeUntil","_destroyed","subscribe","_stateChanged","distinctUntilChanged","x","y","fromState","toState","event","__ngFactoryType__","selectors","inputs","outputs","standalone","features","ɵɵProvidersFeature","provide","useExisting","ɵɵInheritDefinitionFeature","decls","vars","consts","template","rf","ctx","StepperComponent_ng_container_2_Template","StepperComponent_div_5_Template","steps","trigger","state","style","opacity","transition","animate","StepperModule","CommonModule","FormsModule","RouterModule","CdkStepperModule","FontAwesomeModule","ɵɵelement","ɵɵproperty","ctx_r0","faIconName","faInfoCircle","tooltip","tooltipPlacement","TooltipLabelComponent","labelText","labelFontSize","constructor","ngOnInit","selectors","inputs","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtemplate","TooltipLabelComponent_fa_icon_6_Template","ɵɵadvance","ɵɵstyleProp","ɵɵtextInterpolate","ɵɵtextInterpolate1","TooltipModule","CommonModule","routes","path","component","AuditHistoryComponent","canActivate","AuthGuard","canLoad","SharedModule","CdkStepperModule","CdkTableModule","CommonModule","FontAwesomeModule","FormElementsModule","FormsModule","MaterialsModule","NavigationModule","NgbDatepickerModule","NgbModalModule","NgbNavModule","NgbTooltipModule","NgbTypeaheadModule","NgSelectModule","ReactiveFormsModule","RouterModule","forChild","StepperModule","TableModule","TooltipModule","UiSwitchModule","ImageSliderModule","DragDropModule","InventoriesModule","EditOrganizationsModule","CodeEditor","PrimeNgModule"],"x_google_ignoreList":[0,1,2,3,4,5,6,10,33,34,52]}