{"version":3,"file":"componentList.d44597d3ad28532108ef.js","mappings":"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","sources":["webpack://ClientApp/webpack/runtime/chunk loaded","webpack://ClientApp/./src/application-insights.ts","webpack://ClientApp/./src/context/content-context.ts","webpack://ClientApp/./src/context/subscriber-context.ts","webpack://ClientApp/./src/custom-components/colleague-audit.ts","webpack://ClientApp/./src/custom-components/markup-viewer.ts","webpack://ClientApp/./src/links.ts","webpack://ClientApp/./src/modules/helpers/message-helper.ts","webpack://ClientApp/./src/modules/helpers/promise-helper.ts","webpack://ClientApp/./src/modules/helpers/response-helpers.ts","webpack://ClientApp/./src/pages/component-list.ts","webpack://ClientApp/./src/datacraft-util.ts","webpack://ClientApp/./src/modules/helpers/teams-helper.ts","webpack://ClientApp/./src/modules/helpers/authentication-helper.ts","webpack://ClientApp/./src/services/service-helper.ts","webpack://ClientApp/./src/services/sms-services.ts","webpack://ClientApp/./src/services.ts","webpack://ClientApp/./src/styles/bootstrap4.ts","webpack://ClientApp/webpack/bootstrap","webpack://ClientApp/webpack/runtime/compat get default export","webpack://ClientApp/webpack/runtime/define property getters","webpack://ClientApp/webpack/runtime/global","webpack://ClientApp/webpack/runtime/hasOwnProperty shorthand","webpack://ClientApp/webpack/runtime/make namespace object","webpack://ClientApp/webpack/runtime/runtimeId","webpack://ClientApp/webpack/runtime/jsonp chunk loading","webpack://ClientApp/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","import { ApplicationInsights, ITelemetryItem } from '@microsoft/applicationinsights-web'\n\ndeclare global {\n interface Window {\n applicationInsightsInstrumentationKey?: string;\n applicationInsightsUserName?: string;\n applicationInsightsApplicationVersion?: string;\n }\n}\n\nconst appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: window.applicationInsightsInstrumentationKey\n }\n});\n\n\nappInsights.loadAppInsights();\n\nif (window.applicationInsightsUserName) {\n appInsights.setAuthenticatedUserContext(window.applicationInsightsUserName.replace(/[,;=| ]+/g, \"_\"));\n}\n\n\nif (window.applicationInsightsApplicationVersion) {\n // the first track needs to be manually set, not sure why\n appInsights.context.application.ver = window.applicationInsightsApplicationVersion;\n var applicationVersionTelemetryInitializer = (envelope: ITelemetryItem) => {\n appInsights.context.application.ver = window.applicationInsightsApplicationVersion;\n };\n appInsights.addTelemetryInitializer(applicationVersionTelemetryInitializer);\n}\n\nappInsights.trackPageView();\nexport default appInsights;\n","import { createContext } from '@lit/context';\n\nexport const editModeContext = createContext(Symbol('edit-mode'));","import {createContext} from '@lit/context';\nexport const subscriberKeyContext = createContext('subscriber-key');","import { LitElement, html, css, nothing } from 'lit';\nimport { consume } from '@lit/context';\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { Task } from '@lit/task';\nimport { ThalamusCard } from 'src/components/thalamus-card';\nimport { AuditableUserResult, AuditableUsersResult, services } from 'src/services';\nimport { raiseAsyncPromiseEvent } from 'src/modules/helpers/message-helper';\nimport { editModeContext } from 'src/context/content-context';\n\nThalamusCard;\n@customElement('colleague-audit')\nexport class ColleagueAudit extends LitElement {\n static styles = [\n css`\n :host {\n display: block;\n }\n\n .header{\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n margin-block:0em;\n }\n .lead {\n font-size: 1.25rem;\n font-weight: 300;\n }\n .font-italic {\n font-style: italic;\n }\n\n hr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0,0,0,.1);\n }\n\n .user-grid{\n display:grid;\n grid-template-columns: 4fr 1fr 1fr;\n row-gap: 1.2em;\n }\n\n fluent-button{\n width:min-content;\n }\n\n ::slotted(*) {\n font-size: 1.25rem;\n font-weight: 300;\n }\n\n `\n ];\n\n @property({ type: Number }) practiceId: number;\n\n @state() connected: boolean;\n\n @state() users: AuditableUserResult[];\n\n @consume({ context: editModeContext }) public editMode: boolean = false;\n\n private _apiTask = new Task(this,\n {\n task: async () => {\n var result = await services.facilities.auditableUsers()\n this.practiceId = result.practiceId;\n this.users = result.users;\n return result;\n },\n autoRun: false\n },\n );\n\n private auditUserHandler = async (userRow: AuditableUserResult, isCurrentEmployee: boolean) => {\n this.users = this.users.filter(u => u != userRow);\n raiseAsyncPromiseEvent(this, services.users.colleagueAuditUser(userRow.targetUserKey, this.practiceId, isCurrentEmployee), { success:`Colleague audited`, failed:`Colleague could not be audited`} )\n };\n\n connectedCallback() {\n super.connectedCallback();\n\n if(!this.editMode){\n this._apiTask.run();\n } \n }\n\n renderAudit = (input: AuditableUsersResult) => html`\n \n

${input.practiceName}

\n

Are the following people still working at ${input.practiceName}?

\n \n

We will remove former colleagues from Thalamus.

\n
\n

If you are unsure, you don't need to do anything.

\n
\n
\n ${this.users.map(user => html`\n
${user.name}
\n this.auditUserHandler(user, true)} >Yes\n this.auditUserHandler(user, false)} >No\n `)}\n
\n
\n `;\n\n renderEditMode = () => html`\n \n

Colleague Audit (preview mode)

\n

Facility colleagues will be shown here when published. \n

  • Logged in user must be part of exactly one facility
  • \n
  • Inactive users will appear more frequently than active users
  • \n
  • Audited users part of multiple facility will removed for the Logged in users facility
  • \n
  • Audited users part of one facility will removed from their facility, any groups and then deactivated
  • \n

    \n
    \n `\n\n\n render() {\n if(this.editMode){\n return this.renderEditMode();\n }\n \n \n return html`\n ${this._apiTask.render({\n pending: () => nothing,\n complete: (input) => this.renderAudit(input),\n error: () => nothing,\n initial: () => nothing,\n })}\n `;\n }\n}\n","import { html, LitElement } from \"lit\";\nimport { provide } from '@lit/context';\nimport { customElement, property } from 'lit/decorators.js';\nimport { editModeContext } from 'src/context/content-context';\n\nimport { CtxCard } from \"src/components/ctx-card\";\nCtxCard;\n\nimport { ThalamusCard } from \"src/components/thalamus-card\";\nThalamusCard;\n\nimport { YouTubeCard } from 'src/components/youtube-card';\nYouTubeCard;\n\nimport { ColleagueAudit } from \"./colleague-audit\";\nColleagueAudit;\n\nimport { ThalamusHero } from 'src/components/thalamus-hero';\nThalamusHero;\n\nimport { CtxHero } from 'src/components/ctx-hero';\nCtxHero;\n\nimport { ReportNews } from \"../components/report-news\";\nReportNews;\n\n// markup view ensures all required components are available\n// content doesn't need to be in a slot\n@customElement('markup-viewer')\nexport class MarkupViewer extends LitElement {\n\n @provide({ context: editModeContext })\n @property({ type: Boolean, attribute: 'edit-mode' })\n editMode: boolean\n\n render() {\n return html`\n \n `;\n }\n}","import { DataTableId } from \"./services\";\n\nexport type PlatformDashboardLinks = ReturnType;\n\nexport const platformDashboardLinks = () =>{ \n const prefix = \"/\"\n return {\n index:`${prefix}`,\n report :(reportKey:number,facilityReference?:string, bookmarkId?:string ) =>{\n const facilityReferencePart = facilityReference? `&facility=${facilityReference}` : \"\"; \n const bookmarkPart = bookmarkId? `&bookmark=${bookmarkId}` : \"\"; \n return `${prefix}?report-key=${reportKey}${facilityReferencePart}${bookmarkPart}`\n },\n packs:`${prefix}?packs`,\n lists:`${prefix}?lists`,\n viewPack:(packId:number) => `${prefix}?packs&packId=${packId}`,\n badges:`${prefix}?badges`,\n manageFacility:`${prefix}?facility-management`\n } \n};\n\n\n\nexport const links =\n{\n management: {\n reports: {\n detail: (reportKey: number): string => `/Management/Reports/Details/${reportKey}`\n }\n },\n facilityManagement:{\n createUser: (facilityReference:string) => `/?facility-management&ref=${facilityReference}&create`,\n facility: (facilityReference:string) => `/?facility-management&ref=${facilityReference}`,\n facilityUser: (facilityReference:string, userKey:number) => `/?facility-management&ref=${facilityReference}&userkey=${userKey}`\n },\n subscriber: (subscriberName: string) => ({\n reports: {\n detail: (reportKey: number): string => `/subscriber/${subscriberName}/reports/details/${reportKey}`,\n preview:(reportKey: number): string => `/subscriber/${subscriberName}/reports/details/${reportKey}`\n },\n practices:(practiceKey:number) =>({\n users:(): string => `/subscriber/${subscriberName}/Practices/Users/${practiceKey}`\n }),\n report:(reportKey: number) =>({\n preview:(username: string) =>`/subscriber/${subscriberName}/Reports/Preview/${reportKey}?username=${username}`,\n preview2:(username: string, facilityReference?:string) =>{\n var facilityPart = facilityReference ? `&facility=${facilityReference}`: \"\"\n return `/subscriber/${subscriberName}/Reports/Preview/${reportKey}?username=${username}${facilityPart}`\n }\n }),\n users:() =>({\n detail:(userKey: number) =>`/subscriber/${subscriberName.replace(\" \",\"-\")}/Users/Details/${userKey}`\n })\n }),\n login: (inactive: boolean, returnUrl: string) => {\n return `/Identity/Account/Login?${inactive ? \"Inactive=true&\" : \"\"}ReturnUrl=${encodeURIComponent(returnUrl)}`\n },\n dashboard: platformDashboardLinks(),\n report:(reportKey:number) => ({\n documentation : `/documentation/${reportKey}`\n }),\n lists:{\n list:(tableId:DataTableId) => `/?list&id=${tableId}`\n },\n measureCategoryView:(reportViewContext:{ facilityReference?:string, username?: string }, measureCategoryId:number) =>\n {\n return `?measures&facility=${reportViewContext.facilityReference}&measure-cat=${measureCategoryId}`;\n }, \n measureCategory:(reportViewContext:{ facilityReference?:string, username?: string }, measureCategoryId:number, target:\"latest\", measureId?:number) =>{\n const measureIdPart = measureId ? `&measure=${measureId}` : \"\";\n return `?measures&facility=${reportViewContext.facilityReference}&measure-cat=${measureCategoryId}&${target}${measureIdPart}`\n },\n measureCategorySaved:(reportViewContext:{ facilityReference?:string, username?: string }, measureCategoryId:number,reportMeasureCategoryTableId:string) =>`?measures&facility=${reportViewContext.facilityReference}&measure-cat=${measureCategoryId}&table&report-measure-category-table=${reportMeasureCategoryTableId}`,\n export:(reportKey:number, exportKey:number, facilityReference?:string, username?: string) => {\n let url = `/export?report-key=${reportKey}&export-key=${exportKey}`;\n if (typeof username != 'undefined') {\n url = url +`&username=${username}`;\n }\n if (facilityReference) {\n url = url +`&facility=${facilityReference}`;\n }\n return url;\n },\n markdown:{\n preview:()=> \"/api/markdown/preview\"\n }\n}\n\n\n","\ndeclare global {\n interface ElementEventMap {\n 'message-promise': CustomEvent>;\n }\n}\n\n\nexport type MessageDetail = {message:string, level:\"error\"|\"success\" }\nexport type MessagePromise = {task:Promise, messages:{ success:string, failed:string, progress?:string} }\nexport type MessageActionPromise = {taskAction:() => Promise, messages:{ success:string, failed:string, progress?:string} }\n\nexport const raiseErrorMessage= (element:HTMLElement, message:string) => {\n element.dispatchEvent(new CustomEvent(\"interface-message\",{detail:{message, level:\"error\"}, bubbles:true, composed:true, cancelable:true}))\n}\nexport const raiseSuccessMessage= (element:HTMLElement, message:string) => {\n element.dispatchEvent(new CustomEvent(\"interface-message\",{detail:{message, level:\"success\"}, bubbles:true, composed:true, cancelable:true}))\n}\n\n\nexport const raisePromiseEvent = (element:HTMLElement, input:MessagePromise) => {\n element.dispatchEvent(new CustomEvent>(\"message-promise\",{detail:input, bubbles:true, composed:true, cancelable:true}))\n}\n\nexport const raiseAsyncPromiseEvent = async (element:HTMLElement, promise: Promise, messages:{ success:string, failed:string, progress?:string} ) => {\n element.dispatchEvent(new CustomEvent>(\"message-promise\",{detail:{ task:promise, messages}, bubbles:true, composed:true, cancelable:true}))\n await promise;\n}\n\nexport const raiseMessageAction = async (element:HTMLElement, promiseAction: ()=> Promise, messages:{ success:string, failed:string, progress?:string} ) => {\n var promise = promiseAction();\n var event = new MessagePromiseEvent(promise, messages)\n element.dispatchEvent(event);\n return await promise;\n}\n\nexport class MessagePromiseEvent extends Event {\n static readonly eventName = 'message-promise-2';\n onDisconnect?: () => void;\n\n readonly promise: Promise;\n messages:{ success:string, failed:string, progress?:string} \n rejector:(reason?: any) => void\n constructor(promise: Promise,messages:{ success:string, failed:string, progress?:string}) {\n super(MessagePromiseEvent.eventName, {\n bubbles: true,\n composed: true,\n cancelable: false,\n });\n\n this.promise = promise;\n this.messages = messages;\n }\n}\n\ndeclare global {\n interface HTMLElementEventMap {\n [MessagePromiseEvent.eventName]: MessagePromiseEvent;\n }\n}","export const later = (delayMs:number, value:T) => new Promise(resolve => setTimeout(resolve, delayMs, value));","export const raiseFetchResponseError = async (error: unknown): Promise =>{ \n\nif (error instanceof TypeError) {\n console.error(\"Type Error occurred:\", error.message);\n} else if (error instanceof SyntaxError) {\n console.error(\"Syntax Error occurred:\", error.message);\n} else if (error instanceof Error) {\n console.error(\"General Error occurred:\", error.message);\n} else {\n console.error(\"Unknown error occurred:\", error);\n}\n\nif (isResponse(error)) {\n if(error.status == 401)\n {\n window.dispatchEvent(new Unauthorized401Event(error))\n }\n}\n\n// Rethrow the original error by returning a rejected promise\nreturn Promise.reject(error);\n\n}\n\nfunction isResponse(obj: any): obj is Response {\n return typeof obj.status === 'number' \n}\n\n\nexport class Unauthorized401Event extends Event {\n static readonly eventName = 'unauthorized401-event';\n onDisconnect?: () => void;\n\n response:Response;\n\n constructor(response:Response) {\n super(Unauthorized401Event.eventName, {\n bubbles: true,\n composed: true,\n cancelable: false,\n });\n this.response = response;\n }\n}\n\n\ndeclare global {\n interface WindowEventMap {\n [Unauthorized401Event.eventName]:Unauthorized401Event\n }\n}\n","export * from '@material/mwc-icon'\nexport * from '@material/mwc-list';\nimport { Formfield } from '@material/mwc-formfield'\nFormfield;\nimport \"@material/mwc-list/mwc-check-list-item\";\nimport \"@material/mwc-textarea\";\n\n\nimport 'src/components/fluentComponentRegistration'\n\nimport { MarkupViewer } from 'src/custom-components/markup-viewer';\nMarkupViewer;\n\nimport '../components/info-details'\n\nexport * from '../components/ctx-checkbox'\nexport * from '../components/form-input'\nexport * from '../components/dca-select'\n\nexport * from '../components/info-details'\n\nexport * from '../components/show-component-wrapper'\n\nexport * from '../components/thalamus-hero'\nexport * from '../components/ctx-hero'\n\nexport * from '../components/message-manager'\n\nexport * from '../components/content-editor/ctx-content-button';\nexport * from '../components/content-editor/ctx-content-button-group';\nexport * from '../components/content-editor/ctx-content-editor';\nexport * from '../components/content-editor/ctx-content-heading-select';\nexport * from '../components/content-editor/ctx-content-preview';\nexport * from '../components/content-editor/ctx-content-select';\nexport * from '../components/content-editor/ctx-content-select-option';\nexport * from '../components/content-editor/ctx-content-snippet-button';\nexport * from '../components/content-editor/ctx-content-snippets-select';\nexport * from '../components/content-editor/ctx-content-snippets-select-option';\nexport * from '../components/content-editor/ctx-content-textarea';\nexport * from '../components/content-editor/ctx-content-toolbar';\nexport * from '../components/content-editor/ctx-snippets';\nexport * from '../components/content-editor/ctx-snippet-types';\n\nimport { ColleagueAudit } from 'src/custom-components/colleague-audit';\nColleagueAudit","\nexport async function fetchJson(input: RequestInfo, init?: RequestInit): Promise {\n const response = await fetch(input, init);\n if (!response.ok) {\n throw response;\n }\n if(response.status == 204)\n {\n throw response;\n }\n return await response.json();\n}\n\n\nexport async function fetchBlob(input: RequestInfo, init?: RequestInit): Promise {\n const response = await fetch(input, init);\n if (!response.ok) {\n throw response;\n }\n \n return await response.blob();\n}\n\nexport async function fetchFileBlob(input: RequestInfo, init?: RequestInit): Promise<{ filename:string, blob:Blob}> {\n const response = await fetch(input, init);\n if (!response.ok) {\n throw response;\n }\n\n var filename:string\n let disposition =response.headers.get('content-disposition')\n var filenameRegex = /filename[^;=\\n]*=((['\"]).*?\\2|[^;\\n]*)/;\n var matches = filenameRegex.exec(disposition);\n if (matches != null && matches[1]) { \n filename = matches[1].replace(/['\"]/g, '');\n }\n\n return { filename, blob: await response.blob()};\n}\n\n// for use when we only care about a successful response\nexport async function fetchOk(input: RequestInfo, init?: RequestInit): Promise {\n const response = await fetch(input, init);\n if (!response.ok) {\n throw response;\n }\n return;\n}\n\n\nexport async function fetchString(input: RequestInfo, init?: RequestInit): Promise {\n const response = await fetch(input, init);\n if (!response.ok) {\n throw response;\n }\n return await response.text();\n}\n\nexport async function fetchNumber(input: RequestInfo, init?: RequestInit): Promise {\n const response = await fetch(input, init);\n if (!response.ok) {\n throw response;\n }\n return Number(await response.text());\n}\n\n\nexport function addVerificationToken(init: RequestInit): RequestInit {\n var token = (document.getElementById(\"ApiRequestVerificationToken\") as HTMLInputElement).value;\n init.headers = { ...init.headers, ...{ 'X-CSRF-TOKEN': token } }\n return init;\n}","import { app, authentication } from \"@microsoft/teams-js\";\nimport type { ISecurityAmender } from \"./authentication-helper\";\n\nexport class TeamsSecurityAmender implements ISecurityAmender {\n private getToken = ():Promise => authentication.getAuthToken();\n AppendSecurityToRequest = async (init:RequestInit): Promise => {\n await app.initialize();\n const token = await this.getToken();\n init.headers = { ...init.headers, Authorization: `Bearer ${token}` }\n return init;\n }\n}","import { addVerificationToken } from \"src/datacraft-util\";\nimport { TeamsSecurityAmender } from \"./teams-helper\";\n\nexport interface ISecurityAmender{\n AppendSecurityToRequest (init:RequestInit): Promise \n}\n\nvar amender:ISecurityAmender = null;\n\nconst inIframe = () => {\n try {\n return window.self !== window.top;\n } catch (e) {\n return true;\n }\n}\n\n\nexport const getSecurityAmender = () => {\n if(amender === null)\n {\n // assume in iframe is in teams app\n if(inIframe() || (new URLSearchParams(window.location.search)).has(\"teams\"))\n { \n console.log(\"using: TeamsSecurityAmender\")\n amender = new TeamsSecurityAmender();\n } else {\n amender = new CookieSecurityAmender();\n }\n }\n return amender;\n}\n\n\nclass CookieSecurityAmender implements ISecurityAmender{\n AppendSecurityToRequest(init: RequestInit): Promise {\n switch (init?.method){\n case \"POST\":\n case \"PUT\":\n case \"DELETE\":\n init = addVerificationToken(init)\n break;\n }\n \n return Promise.resolve(init);\n }\n}\n","import { fetchJson } from \"src/datacraft-util\";\nimport { getSecurityAmender, ISecurityAmender } from \"src/modules/helpers/authentication-helper\";\nimport { z } from \"zod\";\n\n\nconst securityAmender:ISecurityAmender = getSecurityAmender();\n\nexport const postBody = (data: any) => securityAmender.AppendSecurityToRequest({\n method: \"POST\",\n headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n body: JSON.stringify(data)\n});\n\n\nexport async function fetchZ(schema:Z, input: RequestInfo, init?: RequestInit) {\n return schema.parse(await fetchJson(input, init)) as z.infer ;\n\n}","import { fetchJson, fetchOk } from \"src/datacraft-util\";\nimport { getSecurityAmender } from \"src/modules/helpers/authentication-helper\";\nimport { fetchZ, postBody } from \"./service-helper\";\nimport { z } from \"zod\";\n\nconst securityAmender = getSecurityAmender();\n\nconst batchSchema = z.object({\n smsBatchId:z.number(),\n sentByUsername:z.string(),\n sentAt: z.coerce.date(),\n exampleSmsMessage: z.string(),\n count:z.number()\n});\n\nconst batchMessageSchema = z.object({\n message:z.string(),\n replies:z.array(z.object({message:z.string(), replyAt:z.coerce.date()}))\n});\n\nconst batchMessagesSchema = z.record(z.string(), z.array(batchMessageSchema)).transform((obj) => new Map(Object.entries(obj)));\n\nexport const smsService = {\n messageTemplates:async () => await fetchJson<{ template:string }[]>(`/api/sms/message-templates`, await securityAmender.AppendSecurityToRequest({})),\n send:async(payload:{ facility: string, measureCategory: number, messages:{ message:string, phoneNumber:string, facility:string }[]}) => await fetchOk(`/api/sms/send-sms`, await postBody(payload)),\n listSentBatches: async (measureCategory:number, facility:string) => await fetchZ(z.array(batchSchema),`/api/sms/list-batches/${measureCategory}/${facility}`, await securityAmender.AppendSecurityToRequest({})),\n getBatchMessages: async (measureCategory:number, facility:string, batchId:number) => await fetchZ(batchMessagesSchema,`/api/sms/get-batch-messages/${measureCategory}/${facility}/${batchId}`, await securityAmender.AppendSecurityToRequest({})),\n}","import { models } from \"powerbi-client\"\nimport { fetchJson, fetchBlob, fetchOk, addVerificationToken, fetchString, fetchFileBlob, fetchNumber } from \"./datacraft-util\"\nimport { links } from \"./links\"\nimport { getSecurityAmender, ISecurityAmender } from \"./modules/helpers/authentication-helper\"\nimport { Operation } from \"fast-json-patch\"\nimport { raiseFetchResponseError } from \"./modules/helpers/response-helpers\"\nimport { DataTableConfiguration, Export, ExportColumn } from \"./exports/exportTypes\"\nimport { z } from \"zod\";\nimport { smsService } from \"./services/sms-services\"\nimport { fetchZ } from \"./services/service-helper\"\n\n\nconst updatedAtSchema = z.object({\n updatedAt: z.coerce.date()\n});\n\nconst patientNoteSchema = z.object({\n note:z.string(),\n username:z.string(),\n updatedAt: z.coerce.date()\n});\n\nconst patientNotesSchema = z.object({\n patient: z.nullable(z.optional(patientNoteSchema)),\n measure: z.nullable(z.optional(patientNoteSchema)),\n table: z.nullable(z.optional(patientNoteSchema))\n});\n\nexport type PatientNotesType = z.infer;\n\ntype updatedAtType = z.infer;\n\nexport const measuresCreatedSchema = z.object({\n updatedAt: z.coerce.date(),\n id:z.string()\n});\n\nexport type ReportMeasureCategoryModel = {pageName:string, name:string, measureCategoryId:number }\n\nexport interface IReportInfoResponse {\n displayName:string,\n hasDocumentation: boolean,\n displayBookmarks: boolean,\n canDownload: boolean\n reportKey: number,\n allowsFeedback: boolean,\n clientGroup:string,\n exports: IReportExportResponse[]\n embedSettings: IEmbedSettings,\n measureCategories: ReportMeasureCategoryModel[]\n}\nexport interface IReportExportResponse {\n exportName: string\n pageName: string\n containerName: string\n exportKey: number\n}\n\nexport interface IReportNews {\n html: string;\n name: string;\n reportKey: number;\n}\n\nexport enum ChangeType {\n Added = 'Added',\n Removed = 'Removed',\n Updated = 'Updated'\n}\n\nexport type ReportFacilityAccessChange = {\n changeType: ChangeType;\n facilityKey: number | null;\n facilityName: string | null;\n decrypt: boolean;\n}\n\nexport type ReportPermissionChange = {\n changeType: ChangeType;\n reportKey: number;\n reportName: string | null;\n userKey: number;\n userName: string | null;\n facilityChanges: ReportFacilityAccessChange[];\n}\n\nexport type MarkdownModelIdentity = { type:\"subscriber\", subscriberKey:number} | { type:\"messaging\", messageName:string} \n\nexport interface IEmbedSettings {\n navContentPaneEnabled?: boolean\n // todo caps!!!???\n FilterPaneEnabled?: boolean\n layoutType?:models.LayoutType\n}\n\nexport const reportInfo = async (reportKey: number) => await fetchJson(`/api/report/${reportKey}/info`);\n\nexport interface IEmbedCodeResponse {\n embedToken: string,\n url: string,\n reportId: string,\n expiration: string,\n powerBiType: \"Report\"|\"Dashboard\"\n datasets:{[Key: string]: string}\n \n}\n\n\nexport interface IMenuQueryView {\n displayInbox:boolean\n displayBadges:boolean\n displayFullScreen: boolean,\n search:boolean\n lists:boolean\n isFacilityManager:boolean\n features:string[]\n items: INavItem[]\n subscribers: { subscriberKey: number, name: string }[]\n}\n\nexport interface INavItem {\n title: string,\n icon: string,\n key: number,\n facilityReference?: string\n kind: \"Link\" | \"Report\"\n url: string,\n subscriberKey?:number\n items?: INavItem[]\n}\n\nexport type MeasureCategoryListResponse = { name:string, measures:{name:string, measureId:number}[], saved:{ id:string, name:string, username:string, created:Date, updated:Date }[] };\n\nexport type PackFileItem = { name: string, packFileId:number }\n\n\nexport type PackSummary = { packId: number; name: string; };\nexport type PackReaderSummary = PackSummary & { isRead:boolean }\nexport type PackEditorSummary = PackSummary & { isPublished:boolean, groupKey?:number, groupName?:string };\nexport type PackEditorDetailPractice = {\n reference: string,\n practiceKey:number,\n name: string\n files: PackFileItem[]\n users:{userKey:number, username:string }[]\n}\nexport type PackEditorDetail = PackEditorSummary & {\n folder:string\n everyoneFiles: PackFileItem[]\n practices: PackEditorDetailPractice[],\n rawMarkdown:string\n};\n\nexport type PackStatsModel = { practiceAccess:PackStatsPracticeModel[], userAccess:{userKey:number, username:string}[], fileAccess:{ practiceName:string, filename:string,downloadCount:number, usernames:string[]}[], events:{date:string,username:string, eventName:string,description:string}[]}\nexport type PackStatsPracticeModel = {practiceName:string, opened:boolean}\n\nexport type PackUserPractice = { name:string, files:PackUserPracticeFile[]}\nexport type PackUserPracticeFile = { packFileId:number, name:string}\nexport type PackReaderDetail = PackSummary & {\n packId:number\n name:string\n files:PackUserPracticeFile[]\n practices:PackUserPractice[]\n htmlContent:string\n\n}\n\n\nexport type AuditableUsersResult = {\n practiceId:number,\n practiceName:string,\n users:AuditableUserResult[]\n}\n\nexport type AuditableUserResult = {\n name:string,\n targetUserKey:Number\n}\n\nexport type FacilityModel = {\n reference:string,\n name:string\n}\n\nexport type UserModel = {\n username:string\n userKey:number,\n email:string\n}\n\nexport type FacilityUserDetailModel = {\n userKey:number,\n username:string\n email:string,\n facilityReference:string\n selectedRoles:number[],\n availableRoles:AvailableRolesModel[]\n}\n\nexport type AvailableRolesModel = {\n groupKey:number\n name:string,\n parentName:string\n explanation: string\n}\n\n\nexport type FacilityKeys ={ [name: string]: string }\n\n\ntype BadgeResponse = {badgeName:string, description:string, icon:string}\n\n\nexport type DataTableId = string\nexport type MeasureCategoryTableId = string \n\nexport type ListModel = { \n name:string,\n measureCategoryName:string,\n configuration:DataTableConfiguration,\n columns:ExportColumn[],\n data:any[]\n metaData:{ [id:string]:{}}\n}\n\nconst patientsNotesMapSchema = z.record(patientNotesSchema)\n\nexport type PatientNotes = { patient?:PatientNote, measure?:PatientNote, table?:PatientNote }\nexport type PatientNote = z.infer;\nexport type RawPatientNote = RecursivelyConvertDatesToStrings\nexport type MeasureListModel = {\n patients: z.infer\n} & ListModel\n;\nexport type SavedListModel = MeasureListModel & { updatedAt:Date }\n\n// Transform the object into a Map\nconst mapPatentNotesSchema = patientsNotesMapSchema.transform((obj) => {\n return new Map(Object.entries(obj));\n});\n\n/*\nexport const downloadReport = async (reportKey: number, exportId: string): Promise => await fetchBlob(`/api/powerbi/downloadReport/${reportKey}`, addVerificationToken({\n method: \"POST\",\n headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n body: JSON.stringify({ exportId })\n}));\n*/\nexport const updateCategory = async (key: number, description: string, icon: string) => await fetchOk(`/api/category/${key}`, addVerificationToken({\n method: \"PUT\", headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n body: JSON.stringify({ description, icon })\n}));\n\n\nexport const deleteCategory = async (key: number) => await fetchOk(`/api/category/${key}`, addVerificationToken({\n method: \"DELETE\", headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n}));\n\nexport const createCategory = async (description: string, icon: string): Promise<{ key: number }> => await fetchJson(`/api/category/`, addVerificationToken({\n method: \"POST\", headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n body: JSON.stringify({ description, icon })\n}));\n\n\n\nexport const updateGroupUser = async (groupUserKey: number, drillDown: Boolean) => await fetchOk(`/api/groupUser/${groupUserKey}`, addVerificationToken({\n method: \"PUT\", headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n body: JSON.stringify({ drillDown })\n}));\n\nconst securityAmender:ISecurityAmender = getSecurityAmender();\nexport const services = {\n navigation:{\n menu: async () => await fetchJson('/api/navigation/menu', await securityAmender.AppendSecurityToRequest({}))\n },\n sms:smsService,\n tables:{\n //NOTE: this is all turned Disabled\n list:async () => await fetchJson<{ id:DataTableId, name:string, createdAt:string }[]>(`/api/data-tables/`, await securityAmender.AppendSecurityToRequest({})),\n create:async(name:string,configuration:DataTableConfiguration, columns: ExportColumn[], data:any[])=> await fetchJson<{id:DataTableId}>(\"/api/data-tables/create\", await postBody({name, configuration, columns, data})),\n get:async(dataTableId:DataTableId) => await fetchJson(`/api/data-tables/${dataTableId}`, await securityAmender.AppendSecurityToRequest({})),\n update:async(dataTableId:DataTableId, data:any[] ) => await fetchOk(`/api/data-tables/${dataTableId}`, await postBody({ data })),\n delete:async(dataTableId:DataTableId) => await fetchOk(`/api/data-tables/${dataTableId}`, await deleteBody({}))\n },\n measures:{\n createActive:async(name:string, measureCategoryId:number, facility:string, configuration:DataTableConfiguration, columns: ExportColumn[], data:any[])=> await fetchZ(measuresCreatedSchema,`/api/measures/create-active/${facility}/${measureCategoryId}`, await postBody({name,configuration, columns, data})),\n getLatest:async(measureCategoryId:number, facility:string, measureId?:number) => {\n const measureIdPart = measureId ? `?measure=${measureId}` : \"\";\n var response = await fetchJson>(`/api/measures/latest/${facility}/${measureCategoryId}${measureIdPart}`, await securityAmender.AppendSecurityToRequest({}))\n return { ...response, \"patients\" : mapPatentNotesSchema.parse(response.patients) }\n },\n updateTable:async(measureCategoryTableId:MeasureCategoryTableId, lastModified:Date, data:any[] ): Promise => { \n let createPost = await postBody({ data });\n createPost = {...createPost, headers: {...createPost.headers, \"If-Unmodified-Since\":lastModified.toUTCString()}}\n return updatedAtSchema.parse(await fetchJson(`/api/measures/table/${measureCategoryTableId}`, createPost)) \n },\n openTable:async(measureCategoryTableId:MeasureCategoryTableId):Promise =>{\n const response = await fetchJson>(`/api/measures/table/${measureCategoryTableId}`,await securityAmender.AppendSecurityToRequest({}))\n return { ...response, \"updatedAt\":new Date(response.updatedAt), \"patients\" : mapPatentNotesSchema.parse(response.patients)}\n },\n list:async (measureCategoryId:number, facilityReference:string):Promise => {\n var init = await fetchJson>(`/api/measures/list/${facilityReference}/${measureCategoryId}`, await securityAmender.AppendSecurityToRequest({}))\n return {...init, saved: init.saved.map(i => ({...i, \"created\": new Date(i.created), \"updated\":new Date(i.updated)}))};\n },\n updateNotes:async(facilityReference:string, patientId:string, measureCategoryId:number, reportMeasureCategoryTableId?:string, patient?:string, measure?:string, table?:string) => {\n var tablePart = reportMeasureCategoryTableId != null ? `?measureCategoryDataTableId=${reportMeasureCategoryTableId}` : \"\"\n return await fetchZ(patientNotesSchema,`/api/measures/notes/${facilityReference}/${measureCategoryId}/update/${patientId}/${tablePart}`, await postBody({ patient, measure, table }))\n }\n },\n dashboard:{\n landingContent: async () => await fetchString('/LandingContent', await securityAmender.AppendSecurityToRequest({}))\n },\n report: {\n info: async (reportKey: number) => await fetchJson(`/api/report/${reportKey}/info`, await securityAmender.AppendSecurityToRequest({})),\n news: async (preview: boolean, subscriberKey?: number) => {\n const subscriberKeyPart = subscriberKey ? `&subscriberKey=${subscriberKey}` : \"\";\n return fetchJson(`/api/report-news/list?preview=${preview}${subscriberKeyPart}`, await securityAmender.AppendSecurityToRequest({}))\n },\n dismissNews: async (reportKey: number) => await fetchOk(`/api/report-news/dismiss`, await postBody({reportKey})),\n documentationContent:async (reportKey: number) => await fetchJson<{content:string}>(`/api/report/${reportKey}/documentation`, await securityAmender.AppendSecurityToRequest({})),\n sendFeedback: async (reportKey: number, message: string) => await fetchOk(`/api/report/${reportKey}/send-feedback`, await postBody(message)),\n embedToken: async (reportKey: number, username: string, facilityReference:string, isRefresh:boolean) => { \n const userPart = username ? `&username=${username}` :\"\";\n const facilityPart = facilityReference ? `&facility=${facilityReference}`: \"\";\n return fetchJson(`/api/powerbi/embedcode/${reportKey}/?isRefresh=${isRefresh}${userPart}${facilityPart}`,await securityAmender.AppendSecurityToRequest({}))\n },\n permissionChanges: async (reportKey?: number, subscriberReference?: string) => {\n const queryParam = reportKey ? `?reportKey=${reportKey}` : subscriberReference ? `?subscriberReference=${subscriberReference}` : \"?subscribersWithReportEditPermission=true\";\n return fetchJson(`/api/report-permission-changes${queryParam}`, await securityAmender.AppendSecurityToRequest({}))\n },\n exports:{\n detail:async (reportKey:number, exportKey:number, facilityReference?:string) => {\n let facilityReferencePart = \"\";\n if(facilityReference)\n {\n facilityReferencePart = `?facility=${facilityReference}`;\n }\n return await fetchJson<{ decryptionKeys: FacilityKeys, export:Export}>(`/api/export/report/${reportKey}/export/${exportKey}/detail${facilityReferencePart}`, await securityAmender.AppendSecurityToRequest({}))\n },\n update:async (reportKey:number, exportKey:number, exportItem:Export) => await fetchOk(`/api/export/report/${reportKey}/export/${exportKey}/update-export2`, await postBody(exportItem)),\n create:async (reportKey:number, exportItem:Export) => await fetchNumber(`/api/export/report/${reportKey}/create-export2`, await postBody(exportItem))\n },\n download:{\n requestDownload : async (reportKey: number, state: string, pageName: string, facilityReference?:string, username?:string ): Promise<{ exportId: string }> => await fetchJson(`/api/powerbi/requestReportDownload/${reportKey}`, await postBody({ state, pageName, username, facilityReference })),\n downloadStatus: async (reportKey: number, exportId: string): Promise<{ state: \" Running\" | \"Succeeded\" | \"Failed\", complete: boolean, percentComplete: number }> => await fetchJson(`/api/powerbi/reportDownloadStatus/${reportKey}`, await postBody({ exportId })),\n retrieveDownload: async (reportKey: number, exportId: string): Promise => await fetchBlob(`/api/powerbi/downloadReport/${reportKey}`, await postBody({ exportId }))\n }\n },\n facilities:{\n auditableUsers:async() => await fetchJson(`/api/facilities/auditable-users`, await securityAmender.AppendSecurityToRequest({})),\n userDetail:async(facilityReference:string, userKey:number) => await fetchJson(`/api/facilities/${facilityReference}/users/${userKey}`, await securityAmender.AppendSecurityToRequest({})).catch(raiseFetchResponseError),\n createFacilityUser: async(facilityReference:string, email:string, firstName:string, lastName:string) => await fetchJson<{ userKey:number }>(`/api/facilities/${facilityReference}/users/create`, await postBody({email,firstName,lastName})).catch(raiseFetchResponseError),\n updateFacilityUser: async(facilityReference:string, userKey:number, roleGroups:string[]) => await fetchOk(`/api/facilities/${facilityReference}/users/${userKey}/update`, await postBody({ roleGroups:roleGroups})).catch(raiseFetchResponseError),\n sendWelcome: async(facilityReference:string, userKey:number) => await fetchOk(`/api/facilities/${facilityReference}/users/${userKey}/send-welcome`, await postBody({})).catch(raiseFetchResponseError),\n removeUserFromFacility: async(facilityReference:string, userKey:number) => await fetchOk(`/api/facilities/${facilityReference}/users/${userKey}`, await deleteBody({})).catch(raiseFetchResponseError),\n manageableFacilities: async (): Promise => await fetchJson(`/api/facilities/manageable-facilities`, await securityAmender.AppendSecurityToRequest({})).catch(raiseFetchResponseError),\n manageableUsers:async(facilityReference:string) => await fetchJson(`/api/facilities/${facilityReference}/manage/users`, await securityAmender.AppendSecurityToRequest({})).catch(raiseFetchResponseError),\n },\n management: {\n workspaces: async (): Promise<{ name: string, workspaceKey: number }[]> => await fetchJson(`/api/management/workspace`, {\n method: \"GET\", headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n }\n }),\n workspace: {\n powerBiReports: async (powerBiGroupKey: number): Promise<[{ name: string, id: string }]> => await fetchJson(`/api/management/workspace/${powerBiGroupKey}/powerbi-reports`, {\n method: \"GET\", headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n }\n }),\n\n },\n markdown:{\n preview: async (markdown:string) => await fetchJson<{markup:string}>(links.markdown.preview(), await postBody({ markdown })),\n publish:async (entity:MarkdownModelIdentity, markdown:string) => {\n return await fetchOk(`/api/markdown/publish-content`, await postBody({ entity:entity, markdown }))\n },\n saveVersion:async (entity:MarkdownModelIdentity, markdown:string) => {\n return await fetchOk(`/api/markdown/save-version`, await postBody({ entity:entity, markdown }))\n },\n published:async (entity:MarkdownModelIdentity) => {\n return await fetchJson<{markdown:string}>(`/api/markdown/published-markdown`, await postBody(entity))\n },\n },\n listSubscribers: async (): Promise<{ subscriberKey: number, name: string }[]> => await fetchJson(`/api/management/subscribers/list`),\n createReport: async (subscriberKey: number, name: string, workspaceKey: number, reportId: string): Promise => await fetchJson(`/api/management/${subscriberKey}/create-report/`,\n addVerificationToken({\n method: \"POST\",\n headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n body: JSON.stringify({ name, workspaceKey, reportId })\n })\n ),\n exports: {\n delete: async (exportKey: number): Promise => await fetchOk(`/api/export/${exportKey}`, addVerificationToken({\n method: \"DELETE\", headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n }\n }))\n }\n },\n subscribers: {\n\n createReport: async (subscriberKey: number, data: { name: string, reportId: string, enableBookmarks: boolean, enableDownload: boolean, categories: number[] }): Promise => await fetchJson(`/api/subscribers/${subscriberKey}/create-report/`,\n addVerificationToken({\n method: \"POST\",\n headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n body: JSON.stringify(data)\n })\n ),\n\n listPowerBiReports: async (subscriberKey: number): Promise<{ id: string, name: string, powerBiType:\"Report\"|\"Dashboard\" }[]> => await fetchJson(`/api/subscribers/${subscriberKey}/powerbi-reports`),\n requestPermissionPublish: async():Promise => await fetchOk(\"/api/manage-subscriber/request-permission-publish\", await postBody({}))\n },\n categories: {\n list: async (): Promise<{ key: number, name: string, icon: string }[]> => await fetchJson(`/api/category/`)\n },\n users: {\n ping: async (): Promise => await fetchOk(`/api/user/ping`),\n sendFeedback:async (url:string, message:string, reportKey?:number) => await fetchOk(`/api/user/send-feedback`, await postBody({ url, message,reportKey })),\n colleagueAuditUser:async (targetUser:Number, facilityKey:number, isCurrentEmployee:boolean) => await fetchOk(`/api/user/${targetUser}/practice/${facilityKey}/employedstatus`, await postBody(isCurrentEmployee))\n },\n currentUser:{\n facilities: async (): Promise => await fetchJson(`/api/current-user/facilities`,await securityAmender.AppendSecurityToRequest({})),\n colleagueAuditUser:async (targetUser:Number, facilityKey:string, isCurrentEmployee:boolean) => await fetchOk(`/api/current-user/facilities/employment/${facilityKey}/${targetUser}`, await postBody(isCurrentEmployee))\n \n },\n badge:{\n current: async (): Promise<{ recent:BadgeResponse[], awarded:BadgeResponse[],available: BadgeResponse[] }> => await fetchJson(`/api/badge/current`,await securityAmender.AppendSecurityToRequest({}))\n },\n events:{\n raise:async(action:\"TeamsOpened\"|\"BadgesOpened\"|\"TutorialsOpened\"): Promise => await fetchOk(`/api/events`, await postBody({actionType:action}))\n },\n groups:{\n list: async (subscriberKey:number, userGroupsOnly?:boolean): Promise<{name:string,groupKey:number}[]> => { \n let userPart = \"\";\n if(userGroupsOnly != null)\n {\n userPart +=`&isUserGroup=${userGroupsOnly}`;\n }\n return await fetchJson(`/api/group/list?subscriberKey=${subscriberKey}${userPart}`,await securityAmender.AppendSecurityToRequest({}))\n },\n },\n packs:{\n list: async (): Promise => await fetchJson(`/api/pack/list`,await securityAmender.AppendSecurityToRequest({})),\n packUserDetail: async (packId:number) =>{\n return await fetchJson(`/api/pack/${packId}/user`, await securityAmender.AppendSecurityToRequest({}))\n },\n download: async(packFileId:number) => {\n return await fetchFileBlob(`/api/packs/files/${packFileId}/download`,await securityAmender.AppendSecurityToRequest({}))\n //return await fetchFileBlob(`/api/pack/pack-file/${packFileId}/download`,await securityAmender.AppendSecurityToRequest({}))\n },\n\n editor:{\n pack:(packId:number) => ({\n delete: async () => await fetchOk(`/api/pack/editor/${packId}`, await deleteBody({})),\n edit: async (pack:PackEditorDetail) =>await fetchJson(`/api/pack/editor/update-pack`, await putBody(pack)),\n patch: async (operations:Operation[]) =>await fetchOk(`/api/pack/editor/patch-pack-summary/${packId}`, await postBody(operations)),\n detail: async () => await fetchJson(`/api/pack/editor/${packId}/detail`, {}),\n stats: async() => await fetchJson(`/api/pack/editor/${packId}/stats`, await securityAmender.AppendSecurityToRequest({})),\n upload: async (formData:FormData) => {\n return await fetchOk(`/api/pack/editor/${packId}/upload`, await securityAmender.AppendSecurityToRequest({\n method: \"POST\",\n body: formData\n }));\n }\n }),\n createPack: async (subscriberKey:number, name:string, groupKey?:number) =>{\n return await fetchJson(`/api/pack/editor/create-pack`, await postBody({subscriberKey, name,groupKey}))\n },\n list: async (subscriberKey:number) =>{\n return await fetchJson(`/api/pack/editor/list/${subscriberKey}`, {})\n },\n deletePackFile: async(packFileId:number) => {\n return await fetchOk(`/api/pack/editor/pack-file/${packFileId}`,await deleteBody({}))\n },\n sendTestEmail: async(packId:number, subject:string, body: string) =>{\n return await fetchOk(`/api/pack/editor/${packId}/test-email`,await postBody({ subject, body }))\n },\n sendEmail: async(packId:number, subject:string, body: string) =>{\n return await fetchOk(`/api/pack/editor/${packId}/send-email`,await postBody({ subject, body }))\n } \n }\n }\n\n}\n\n\nconst deleteBody = (data: any) => securityAmender.AppendSecurityToRequest({\n method: \"DELETE\",\n headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n body: JSON.stringify(data)\n});\n\n\nconst postBody = (data: any) => securityAmender.AppendSecurityToRequest({\n method: \"POST\",\n headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n body: JSON.stringify(data)\n});\n\n\n\n\nconst putBody = (data: any) => securityAmender.AppendSecurityToRequest({\n method: \"PUT\",\n headers: {\n 'Accept': 'application/json; charset=utf-8',\n 'Content-Type': 'application/json;charset=UTF-8'\n },\n body: JSON.stringify(data)\n});\n\n","import { css } from \"lit\";\n\n/* this is copied from bootstrap, most of this may not be needed */\nexport const bootstrap4Styles = css`\n body {\n margin: 0;\n font-family: -apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n h5 {\n display: block;\n font-size: 0.83em;\n margin-block-start: 1.67em;\n margin-block-end: 1.67em;\n margin-inline-start: 0px;\n margin-inline-end: 0px;\n font-weight: bold;\n}\n\n.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {\n margin-bottom: .5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n.h5, h5 {\n font-size: 1.25rem;\n }\n\n\n\n.card {\n position: relative;\n display: flex;\n -ms-flex-direction: column;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0,0,0,.125);\n border-radius: .25rem;\n}\n\n.card-title {\n margin-bottom: .75rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n padding: 1.25rem;\n}\n\n\n.card-text:last-child {\n margin-bottom: 0;\n }\n\n\n.form-control {\n display: block;\n width: 100%;\n padding: .375rem .75rem;\n font-size: 1rem;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: .25rem;\n transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgb(0 123 255 / 25%);\n}\n\n`;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.j = 120;","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t120: 0,\n\t200: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkClientApp\"] = self[\"webpackChunkClientApp\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [96,179], () => (__webpack_require__(6921)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","appInsights","config","instrumentationKey","window","applicationInsightsInstrumentationKey","loadAppInsights","applicationInsightsUserName","setAuthenticatedUserContext","replace","applicationInsightsApplicationVersion","context","application","ver","addTelemetryInitializer","envelope","trackPageView","editModeContext","Symbol","subscriberKeyContext","ColleagueAudit","editMode","_apiTask","this","task","async","result","facilities","auditableUsers","practiceId","users","autoRun","auditUserHandler","userRow","isCurrentEmployee","filter","u","colleagueAuditUser","targetUserKey","success","failed","renderAudit","input","practiceName","map","user","name","e","renderEditMode","connectedCallback","super","run","render","pending","complete","error","initial","styles","type","Number","MarkupViewer","Boolean","attribute","links","management","reports","detail","reportKey","facilityManagement","createUser","facilityReference","facility","facilityUser","userKey","subscriber","subscriberName","preview","practices","practiceKey","report","username","preview2","login","inactive","returnUrl","encodeURIComponent","dashboard","prefix","index","bookmarkId","packs","lists","viewPack","packId","badges","manageFacility","platformDashboardLinks","documentation","list","tableId","measureCategoryView","reportViewContext","measureCategoryId","measureCategory","target","measureId","measureIdPart","measureCategorySaved","reportMeasureCategoryTableId","export","exportKey","url","markdown","raiseAsyncPromiseEvent","element","promise","messages","dispatchEvent","CustomEvent","bubbles","composed","cancelable","MessagePromiseEvent","Event","constructor","eventName","later","delayMs","value","Promise","resolve","setTimeout","raiseFetchResponseError","TypeError","console","message","SyntaxError","Error","status","Unauthorized401Event","reject","response","init","fetch","ok","json","token","document","getElementById","headers","TeamsSecurityAmender","getToken","authentication","getAuthToken","AppendSecurityToRequest","app","initialize","Authorization","amender","getSecurityAmender","self","top","inIframe","URLSearchParams","location","search","has","log","CookieSecurityAmender","method","securityAmender","fetchZ","schema","parse","batchSchema","z","object","smsBatchId","number","sentByUsername","string","sentAt","coerce","date","exampleSmsMessage","count","batchMessageSchema","replies","array","replyAt","batchMessagesSchema","record","transform","obj","Map","Object","entries","smsService","messageTemplates","send","payload","await","data","body","JSON","stringify","listSentBatches","getBatchMessages","batchId","updatedAtSchema","updatedAt","patientNoteSchema","note","patientNotesSchema","patient","nullable","optional","measure","table","measuresCreatedSchema","id","ChangeType","mapPatentNotesSchema","services","navigation","menu","sms","tables","create","configuration","columns","get","dataTableId","update","delete","deleteBody","measures","createActive","getLatest","patients","updateTable","measureCategoryTableId","lastModified","createPost","toUTCString","openTable","Date","saved","i","created","updated","updateNotes","patientId","tablePart","landingContent","text","fetchString","info","news","subscriberKey","dismissNews","documentationContent","sendFeedback","embedToken","isRefresh","permissionChanges","subscriberReference","exports","facilityReferencePart","exportItem","fetchNumber","download","requestDownload","state","pageName","downloadStatus","exportId","retrieveDownload","blob","fetchBlob","userDetail","catch","createFacilityUser","email","firstName","lastName","updateFacilityUser","roleGroups","sendWelcome","removeUserFromFacility","manageableFacilities","manageableUsers","workspaces","workspace","powerBiReports","powerBiGroupKey","publish","entity","saveVersion","published","listSubscribers","createReport","workspaceKey","reportId","subscribers","listPowerBiReports","requestPermissionPublish","categories","ping","targetUser","facilityKey","currentUser","badge","current","events","raise","action","actionType","groups","userGroupsOnly","userPart","packUserDetail","packFileId","filename","disposition","matches","exec","fetchFileBlob","editor","pack","edit","putBody","patch","operations","stats","upload","formData","createPack","groupKey","deletePackFile","sendTestEmail","subject","sendEmail","bootstrap4Styles","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","module","__webpack_modules__","call","m","O","chunkIds","fn","priority","notFulfilled","Infinity","length","fulfilled","j","keys","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","g","globalThis","Function","prop","prototype","hasOwnProperty","toStringTag","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","push","__webpack_exports__"],"sourceRoot":""}