{"version":3,"sources":["node_modules/@datadog/browser-rum/esm/domain/deflate/deflateEncoder.js","node_modules/@datadog/browser-rum/esm/domain/scriptLoadingError.js","node_modules/@datadog/browser-rum/esm/domain/deflate/deflateWorker.js","node_modules/@datadog/browser-rum/esm/boot/isBrowserSupported.js","node_modules/@datadog/browser-rum/esm/domain/getSessionReplayLink.js","node_modules/@datadog/browser-rum/esm/boot/postStartStrategy.js","node_modules/@datadog/browser-rum/esm/boot/preStartStrategy.js","node_modules/@datadog/browser-rum/esm/boot/recorderApi.js","node_modules/@datadog/browser-rum/esm/boot/lazyLoadRecorder.js","node_modules/@datadog/browser-rum/esm/domain/profiling/profilingSupported.js","node_modules/@datadog/browser-rum/esm/domain/profiling/lazyLoadProfiler.js","node_modules/@datadog/browser-rum/esm/boot/profilerApi.js","node_modules/@datadog/browser-rum/esm/entries/main.js","node_modules/@angular/animations/fesm2022/browser.mjs","node_modules/@angular/platform-browser/fesm2022/animations.mjs","node_modules/ngx-quicklink/fesm2022/ngx-quicklink.mjs","node_modules/@angular/material/fesm2022/progress-spinner.mjs","node_modules/@datadog/browser-logs/esm/domain/logger/isAuthorized.js","node_modules/@datadog/browser-logs/esm/domain/createErrorFieldFromRawError.js","node_modules/@datadog/browser-logs/esm/domain/logger.js","node_modules/@datadog/browser-logs/esm/domain/contexts/commonContext.js","node_modules/@datadog/browser-logs/esm/domain/configuration.js","node_modules/@datadog/browser-logs/esm/boot/preStartLogs.js","node_modules/@datadog/browser-logs/esm/boot/logsPublicApi.js","node_modules/@datadog/browser-logs/esm/domain/logsSessionManager.js","node_modules/@datadog/browser-logs/esm/domain/contexts/rumInternalContext.js","node_modules/@datadog/browser-logs/esm/domain/assembly.js","node_modules/@datadog/browser-logs/esm/domain/console/consoleCollection.js","node_modules/@datadog/browser-logs/esm/domain/report/reportCollection.js","node_modules/@datadog/browser-logs/esm/domain/networkError/networkErrorCollection.js","node_modules/@datadog/browser-logs/esm/domain/runtimeError/runtimeErrorCollection.js","node_modules/@datadog/browser-logs/esm/domain/lifeCycle.js","node_modules/@datadog/browser-logs/esm/domain/logger/loggerCollection.js","node_modules/@datadog/browser-logs/esm/transport/startLogsBatch.js","node_modules/@datadog/browser-logs/esm/transport/startLogsBridge.js","node_modules/@datadog/browser-logs/esm/domain/contexts/internalContext.js","node_modules/@datadog/browser-logs/esm/domain/reportError.js","node_modules/@datadog/browser-logs/esm/domain/logsTelemetry.js","node_modules/@datadog/browser-logs/esm/boot/startLogs.js","node_modules/@datadog/browser-logs/esm/entries/main.js","src/datadog_config.ts","src/app/core/inactivity-timeout/inactivity-timeout.component.ts","src/app/core/inactivity-timeout/inactivity-timeout.component.html","src/app/core/inactivity-timeout/inactivity-timeout.service.ts","src/app/core/layout/header/header.component.ts","src/app/core/layout/header/header.component.html","src/app/core/layout/spinner/spinner.component.ts","src/app/core/layout/spinner/spinner.component.html","src/app/core/system-message/system-message.component.ts","src/app/core/system-message/system-message.component.html","src/app/core/push-notification/push-notification.service.ts","src/app/core/push-notification/install-timer/install-timer.component.ts","src/app/core/push-notification/install-timer/install-timer.component.html","src/app/core/push-notification/push-notification.component.ts","src/app/core/push-notification/push-notification.component.html","src/app/core/sse-notification/sse-notification.component.ts","src/app/core/sse-notification/sse-notification.component.html","src/app/core/pages/dashboard/widgets/notifications-widget/notifications-widget.component.ts","src/app/core/pages/dashboard/widgets/notifications-widget/notifications-widget.component.html","src/app/app.component.ts","src/app/app.component.html","src/app/ci-repack/ci-repack-order/ci-repack-order-short-over/ci-repack-order-short-over-printable/ci-repack-order-short-over-printable.component.ts","src/app/ci-repack/ci-repack-order/ci-repack-order-short-over/ci-repack-order-short-over-printable/ci-repack-order-short-over-printable.component.html","src/app/shared/form-elements/components/date-picker-parser/ngb-date-native-parser-formatter.ts","src/app/shared/generated/Silkier/Models/SilkierHistoryVm.ts","src/app/silkier/view-exception-modal/view-exception-modal.component.ts","src/app/silkier/view-exception-modal/view-exception-modal.component.html","src/app/silkier/view-log-modal/view-log-modal.component.ts","src/app/silkier/view-log-modal/view-log-modal.component.html","src/app/silkier/silkier-history/silkier-history.component.ts","src/app/silkier/silkier-history/silkier-history.component.html","src/app/shared/generated/HelpDesk/Models/KnowledgeBaseDocumentVm.ts","src/app/help/knowledge-base/knowledge-base.component.ts","src/app/help/knowledge-base/knowledge-base.component.html","src/app/core/pages/change-password/change-password.component.ts","src/app/core/pages/change-password/change-password.component.html","src/app/core/pages/dashboard/widgets/recalls-widget/recalls-widget.component.ts","src/app/core/pages/dashboard/widgets/recalls-widget/recalls-widget.component.html","src/app/core/pages/dashboard/dashboard.component.ts","src/app/core/pages/dashboard/dashboard.component.html","src/app/core/pages/error404/error404.component.ts","src/app/core/pages/error404/error404.component.html","src/app/shared/generated/Models/ForgotPasswordVm.ts","src/app/core/pages/forgot-password/forgot-password.component.ts","src/app/core/pages/forgot-password/forgot-password.component.html","src/app/shared/generated/HelpDesk/Models/HelpDeskFeedbackVm.ts","src/app/core/pages/help-desk-ticket-feedback/help-desk-ticket-feedback.component.ts","src/app/core/pages/help-desk-ticket-feedback/help-desk-ticket-feedback.component.html","src/app/shared/generated/Models/Public/PfsHelpTicketVm.ts","src/app/core/pages/help-ticket/help-ticket.component.ts","src/app/core/pages/help-ticket/help-ticket.component.html","src/app/shared/generated/HEROS/Models/AgencyListByAgencyVm.ts","src/app/shared/generated/HEROS/Models/EditPublicApplicationVm.ts","src/app/core/pages/heros-application/heros-application.component.ts","src/app/core/pages/heros-application/heros-application.component.html","src/app/shared/generated/Inventory/Models/HomeDeliveryPublicVm.ts","src/app/shared/generated/Inventory/Models/RxToFillVm.ts","src/app/core/pages/home-delivery/home-delivery-submit-modal/home-delivery-submit-modal.component.ts","src/app/core/pages/home-delivery/home-delivery-submit-modal/home-delivery-submit-modal.component.html","src/app/core/pages/home-delivery/home-delivery.component.ts","src/app/core/pages/home-delivery/home-delivery.component.html","src/app/core/pages/home/home.component.ts","src/app/core/pages/home/home.component.html","src/app/shared/generated/Models/Public/HomerRegisterVm.ts","src/app/core/pages/homer-register/homer-register.service.ts","src/app/core/pages/homer-register/homer-register.component.ts","src/app/core/pages/homer-register/homer-register.component.html","src/app/shared/generated/ICQ/Models/User/IcqFeedbackVm.ts","src/app/core/pages/icq-feedback/icq-feedback.component.ts","src/app/core/pages/icq-feedback/icq-feedback.component.html","src/app/core/pages/icq-scheduling/icq-scheduling.component.ts","src/app/core/pages/icq-scheduling/icq-scheduling.component.html","src/app/shared/generated/Models/LoginVm.ts","src/app/core/pages/login/login.component.ts","src/app/core/pages/login/login.component.html","src/app/shared/generated/Models/Public/PfsRegisterVm.ts","src/app/core/pages/pfs-register/pfs-register.component.ts","src/app/core/pages/pfs-register/pfs-register.component.html","src/app/shared/generated/Models/Public/DonorRegistrationVm.ts","src/app/core/pages/rxconnects/donor/donor-registration.component.ts","src/app/core/pages/rxconnects/donor/donor-registration.component.html","src/app/shared/generated/Models/Public/RepositoryRegistrationVm.ts","src/app/core/pages/rxconnects/repository/repository-register.component.ts","src/app/core/pages/rxconnects/repository/repository-register.component.html","src/app/core/pages/tech-spec/tech-spec.component.ts","src/app/core/pages/tech-spec/tech-spec.component.html","src/app/shared/generated/Models/ReleaseNotesVm.ts","src/app/core/pages/web-release-notes/web-release-notes.component.ts","src/app/core/pages/web-release-notes/web-release-notes.component.html","src/app/core/core.routing.ts","src/app/core/interceptors/http-client-interceptor.ts","src/app/core/layout/layout.module.ts","src/app/core/push-notification/push-notification.module.ts","src/app/core/sse-notification/sse-notification.module.ts","src/app/core/system-message/system-message.module.ts","src/app/core/core.module.ts","src/app/shared/navigation/custom-reuse-strategy.ts","src/app/app.module.ts","src/main.ts"],"sourcesContent":["import { addEventListener, addTelemetryDebug, concatBuffers } from '@datadog/browser-core';\nexport function createDeflateEncoder(configuration, worker, streamId) {\n let rawBytesCount = 0;\n let compressedData = [];\n let compressedDataTrailer;\n let nextWriteActionId = 0;\n const pendingWriteActions = [];\n const {\n stop: removeMessageListener\n } = addEventListener(configuration, worker, 'message', ({\n data: workerResponse\n }) => {\n if (workerResponse.type !== 'wrote' || workerResponse.streamId !== streamId) {\n return;\n }\n rawBytesCount += workerResponse.additionalBytesCount;\n compressedData.push(workerResponse.result);\n compressedDataTrailer = workerResponse.trailer;\n const nextPendingAction = pendingWriteActions.shift();\n if (nextPendingAction && nextPendingAction.id === workerResponse.id) {\n if (nextPendingAction.writeCallback) {\n nextPendingAction.writeCallback(workerResponse.result.byteLength);\n } else if (nextPendingAction.finishCallback) {\n nextPendingAction.finishCallback();\n }\n } else {\n removeMessageListener();\n addTelemetryDebug('Worker responses received out of order.');\n }\n });\n function consumeResult() {\n const output = compressedData.length === 0 ? new Uint8Array(0) : concatBuffers(compressedData.concat(compressedDataTrailer));\n const result = {\n rawBytesCount,\n output,\n outputBytesCount: output.byteLength,\n encoding: 'deflate'\n };\n rawBytesCount = 0;\n compressedData = [];\n return result;\n }\n function sendResetIfNeeded() {\n if (nextWriteActionId > 0) {\n worker.postMessage({\n action: 'reset',\n streamId\n });\n nextWriteActionId = 0;\n }\n }\n return {\n isAsync: true,\n get isEmpty() {\n return nextWriteActionId === 0;\n },\n write(data, callback) {\n worker.postMessage({\n action: 'write',\n id: nextWriteActionId,\n data,\n streamId\n });\n pendingWriteActions.push({\n id: nextWriteActionId,\n writeCallback: callback,\n data\n });\n nextWriteActionId += 1;\n },\n finish(callback) {\n sendResetIfNeeded();\n if (!pendingWriteActions.length) {\n callback(consumeResult());\n } else {\n // Make sure we do not call any write callback\n pendingWriteActions.forEach(pendingWriteAction => {\n delete pendingWriteAction.writeCallback;\n });\n // Wait for the last action to finish before calling the finish callback\n pendingWriteActions[pendingWriteActions.length - 1].finishCallback = () => callback(consumeResult());\n }\n },\n finishSync() {\n sendResetIfNeeded();\n const pendingData = pendingWriteActions.map(pendingWriteAction => {\n // Make sure we do not call any write or finish callback\n delete pendingWriteAction.writeCallback;\n delete pendingWriteAction.finishCallback;\n return pendingWriteAction.data;\n }).join('');\n return {\n ...consumeResult(),\n pendingData\n };\n },\n estimateEncodedBytesCount(data) {\n // This is a rough estimation of the data size once it'll be encoded by deflate. We observed\n // that if it's the first chunk of data pushed to the stream, the ratio is lower (3-4), but\n // after that the ratio is greater (10+). We chose 8 here, which (on average) seems to produce\n // requests of the expected size.\n return data.length / 8;\n },\n stop() {\n removeMessageListener();\n }\n };\n}\n","import { addTelemetryError, display, DOCS_ORIGIN } from '@datadog/browser-core';\nexport function reportScriptLoadingError({\n configuredUrl,\n error,\n source,\n scriptType\n}) {\n display.error(`${source} failed to start: an error occurred while initializing the ${scriptType}:`, error);\n if (error instanceof Event || error instanceof Error && isMessageCspRelated(error.message)) {\n let baseMessage;\n if (configuredUrl) {\n baseMessage = `Please make sure the ${scriptType} URL ${configuredUrl} is correct and CSP is correctly configured.`;\n } else {\n baseMessage = 'Please make sure CSP is correctly configured.';\n }\n display.error(`${baseMessage} See documentation at ${DOCS_ORIGIN}/integrations/content_security_policy_logs/#use-csp-with-real-user-monitoring-and-session-replay`);\n } else if (scriptType === 'worker') {\n addTelemetryError(error);\n }\n}\nfunction isMessageCspRelated(message) {\n return message.includes('Content Security Policy') ||\n // Related to `require-trusted-types-for` CSP: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/require-trusted-types-for\n message.includes(\"requires 'TrustedScriptURL'\");\n}\n","import { addTelemetryError, display, addEventListener, setTimeout, ONE_SECOND } from '@datadog/browser-core';\nimport { reportScriptLoadingError } from '../scriptLoadingError';\nexport const INITIALIZATION_TIME_OUT_DELAY = 30 * ONE_SECOND;\nfunction createDeflateWorker(configuration) {\n return new Worker(configuration.workerUrl || URL.createObjectURL(new Blob([\"(()=>{function t(t){const e=t.reduce(((t,e)=>t+e.length),0),a=new Uint8Array(e);let n=0;for(const e of t)a.set(e,n),n+=e.length;return a}function e(t){for(var e=t.length;--e>=0;)t[e]=0}var a=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),n=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),r=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),i=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=Array(576);e(s);var h=Array(60);e(h);var l=Array(512);e(l);var _=Array(256);e(_);var o=Array(29);e(o);var d,u,f,c=Array(30);function p(t,e,a,n,r){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=n,this.max_length=r,this.has_stree=t&&t.length}function g(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}e(c);var v=function(t){return t<256?l[t]:l[256+(t>>>7)]},w=function(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255},m=function(t,e,a){t.bi_valid>16-a?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=a-16):(t.bi_buf|=e<>>=1,a<<=1}while(--e>0);return a>>>1},z=function(t,e,a){var n,r,i=Array(16),s=0;for(n=1;n<=15;n++)i[n]=s=s+a[n-1]<<1;for(r=0;r<=e;r++){var h=t[2*r+1];0!==h&&(t[2*r]=y(i[h]++,h))}},k=function(t){var e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0},x=function(t){t.bi_valid>8?w(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},A=function(t,e,a,n){var r=2*e,i=2*a;return t[r]>1;a>=1;a--)U(t,i,a);r=l;do{a=t.heap[1],t.heap[1]=t.heap[t.heap_len--],U(t,i,1),n=t.heap[1],t.heap[--t.heap_max]=a,t.heap[--t.heap_max]=n,i[2*r]=i[2*a]+i[2*n],t.depth[r]=(t.depth[a]>=t.depth[n]?t.depth[a]:t.depth[n])+1,i[2*a+1]=i[2*n+1]=r,t.heap[1]=r++,U(t,i,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var a,n,r,i,s,h,l=e.dyn_tree,_=e.max_code,o=e.stat_desc.static_tree,d=e.stat_desc.has_stree,u=e.stat_desc.extra_bits,f=e.stat_desc.extra_base,c=e.stat_desc.max_length,p=0;for(i=0;i<=15;i++)t.bl_count[i]=0;for(l[2*t.heap[t.heap_max]+1]=0,a=t.heap_max+1;a<573;a++)(i=l[2*l[2*(n=t.heap[a])+1]+1]+1)>c&&(i=c,p++),l[2*n+1]=i,n>_||(t.bl_count[i]++,s=0,n>=f&&(s=u[n-f]),h=l[2*n],t.opt_len+=h*(i+s),d&&(t.static_len+=h*(o[2*n+1]+s)));if(0!==p){do{for(i=c-1;0===t.bl_count[i];)i--;t.bl_count[i]--,t.bl_count[i+1]+=2,t.bl_count[c]--,p-=2}while(p>0);for(i=c;0!==i;i--)for(n=t.bl_count[i];0!==n;)(r=t.heap[--a])>_||(l[2*r+1]!==i&&(t.opt_len+=(i-l[2*r+1])*l[2*r],l[2*r+1]=i),n--)}}(t,e),z(i,_,t.bl_count)},E=function(t,e,a){var n,r,i=-1,s=e[1],h=0,l=7,_=4;for(0===s&&(l=138,_=3),e[2*(a+1)+1]=65535,n=0;n<=a;n++)r=s,s=e[2*(n+1)+1],++h>>16&65535,s=0;0!==a;){a-=s=a>2e3?2e3:a;do{i=i+(r=r+e[n++]|0)|0}while(--s);r%=65521,i%=65521}return r|i<<16},S=new Uint32Array(function(){for(var t,e=[],a=0;a<256;a++){t=a;for(var n=0;n<8;n++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e}()),T=function(t,e,a,n){var r=S,i=n+a;t^=-1;for(var s=n;s>>8^r[255&(t^e[s])];return~t},O={2:\\\"need dictionary\\\",1:\\\"stream end\\\",0:\\\"\\\",\\\"-1\\\":\\\"file error\\\",\\\"-2\\\":\\\"stream error\\\",\\\"-3\\\":\\\"data error\\\",\\\"-4\\\":\\\"insufficient memory\\\",\\\"-5\\\":\\\"buffer error\\\",\\\"-6\\\":\\\"incompatible version\\\"},q=j,F=function(t,e,a){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&a,t.last_lit++,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(_[a]+256+1)]++,t.dyn_dtree[2*v(e)]++),t.last_lit===t.lit_bufsize-1},G=-2,H=258,J=262,K=103,N=113,P=666,Q=function(t,e){return t.msg=O[e],e},R=function(t){return(t<<1)-(t>4?9:0)},V=function(t){for(var e=t.length;--e>=0;)t[e]=0},W=function(t,e,a){return(e<t.avail_out&&(a=t.avail_out),0!==a&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+a),t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))},Y=function(t,e){(function(t,e,a,n){var r,l,_=0;t.level>0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,a=4093624447;for(e=0;e<=31;e++,a>>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),I(t,t.l_desc),I(t,t.d_desc),_=function(t){var e;for(E(t,t.dyn_ltree,t.l_desc.max_code),E(t,t.dyn_dtree,t.d_desc.max_code),I(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*i[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),r=t.opt_len+3+7>>>3,(l=t.static_len+3+7>>>3)<=r&&(r=l)):r=l=a+5,a+4<=r&&-1!==e?M(t,e,a,n):4===t.strategy||l===r?(m(t,2+(n?1:0),3),B(t,s,h)):(m(t,4+(n?1:0),3),function(t,e,a,n){var r;for(m(t,e-257,5),m(t,a-1,5),m(t,n-4,4),r=0;r=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,X(t.strm)},Z=function(t,e){t.pending_buf[t.pending++]=e},$=function(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e},tt=function(t,e){var a,n,r=t.max_chain_length,i=t.strstart,s=t.prev_length,h=t.nice_match,l=t.strstart>t.w_size-J?t.strstart-(t.w_size-J):0,_=t.window,o=t.w_mask,d=t.prev,u=t.strstart+H,f=_[i+s-1],c=_[i+s];t.prev_length>=t.good_match&&(r>>=2),h>t.lookahead&&(h=t.lookahead);do{if(_[(a=e)+s]===c&&_[a+s-1]===f&&_[a]===_[i]&&_[++a]===_[i+1]){i+=2,a++;do{}while(_[++i]===_[++a]&&_[++i]===_[++a]&&_[++i]===_[++a]&&_[++i]===_[++a]&&_[++i]===_[++a]&&_[++i]===_[++a]&&_[++i]===_[++a]&&_[++i]===_[++a]&&is){if(t.match_start=e,s=n,n>=h)break;f=_[i+s-1],c=_[i+s]}}}while((e=d[e&o])>l&&0!=--r);return s<=t.lookahead?s:t.lookahead},et=function(t){var e,a,n,r,i,s,h,l,_,o,d=t.w_size;do{if(r=t.window_size-t.lookahead-t.strstart,t.strstart>=d+(d-J)){t.window.set(t.window.subarray(d,d+d),0),t.match_start-=d,t.strstart-=d,t.block_start-=d,e=a=t.hash_size;do{n=t.head[--e],t.head[e]=n>=d?n-d:0}while(--a);e=a=d;do{n=t.prev[--e],t.prev[e]=n>=d?n-d:0}while(--a);r+=d}if(0===t.strm.avail_in)break;if(s=t.strm,h=t.window,l=t.strstart+t.lookahead,_=r,o=void 0,(o=s.avail_in)>_&&(o=_),a=0===o?0:(s.avail_in-=o,h.set(s.input.subarray(s.next_in,s.next_in+o),l),1===s.state.wrap?s.adler=L(s.adler,h,o,l):2===s.state.wrap&&(s.adler=T(s.adler,h,o,l)),s.next_in+=o,s.total_in+=o,o),t.lookahead+=a,t.lookahead+t.insert>=3)for(i=t.strstart-t.insert,t.ins_h=t.window[i],t.ins_h=W(t,t.ins_h,t.window[i+1]);t.insert&&(t.ins_h=W(t,t.ins_h,t.window[i+3-1]),t.prev[i&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=i,i++,t.insert--,!(t.lookahead+t.insert<3)););}while(t.lookahead=3&&(t.ins_h=W(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),0!==a&&t.strstart-a<=t.w_size-J&&(t.match_length=tt(t,a)),t.match_length>=3)if(n=F(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=W(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart}while(0!=--t.match_length);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=W(t,t.ins_h,t.window[t.strstart+1]);else n=F(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(n&&(Y(t,!1),0===t.strm.avail_out))return 1}return t.insert=t.strstart<2?t.strstart:2,4===e?(Y(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Y(t,!1),0===t.strm.avail_out)?1:2},nt=function(t,e){for(var a,n,r;;){if(t.lookahead=3&&(t.ins_h=W(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=2,0!==a&&t.prev_length4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){r=t.strstart+t.lookahead-3,n=F(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=r&&(t.ins_h=W(t,t.ins_h,t.window[t.strstart+3-1]),a=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart)}while(0!=--t.prev_length);if(t.match_available=0,t.match_length=2,t.strstart++,n&&(Y(t,!1),0===t.strm.avail_out))return 1}else if(t.match_available){if((n=F(t,0,t.window[t.strstart-1]))&&Y(t,!1),t.strstart++,t.lookahead--,0===t.strm.avail_out)return 1}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(n=F(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<2?t.strstart:2,4===e?(Y(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Y(t,!1),0===t.strm.avail_out)?1:2};function rt(t,e,a,n,r){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=n,this.func=r}var it=[new rt(0,0,0,0,(function(t,e){var a=65535;for(a>t.pending_buf_size-5&&(a=t.pending_buf_size-5);;){if(t.lookahead<=1){if(et(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var n=t.block_start+a;if((0===t.strstart||t.strstart>=n)&&(t.lookahead=t.strstart-n,t.strstart=n,Y(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-J&&(Y(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Y(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(Y(t,!1),t.strm.avail_out),1)})),new rt(4,4,8,4,at),new rt(4,5,16,8,at),new rt(4,6,32,32,at),new rt(4,4,16,16,nt),new rt(8,16,32,32,nt),new rt(8,16,128,128,nt),new rt(8,32,128,256,nt),new rt(32,128,258,1024,nt),new rt(32,258,258,4096,nt)];function st(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=8,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),V(this.dyn_ltree),V(this.dyn_dtree),V(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),V(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),V(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}for(var ht=function(t){var e,i=function(t){if(!t||!t.state)return Q(t,G);t.total_in=t.total_out=0,t.data_type=2;var e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?42:N,t.adler=2===e.wrap?0:1,e.last_flush=0,function(t){D||(function(){var t,e,i,g,v,w=Array(16);for(i=0,g=0;g<28;g++)for(o[g]=i,t=0;t<1<>=7;g<30;g++)for(c[g]=v<<7,t=0;t<1<5||e<0)return t?Q(t,G):G;var r=t.state;if(!t.output||!t.input&&0!==t.avail_in||r.status===P&&4!==e)return Q(t,0===t.avail_out?-5:G);r.strm=t;var i=r.last_flush;if(r.last_flush=e,42===r.status)if(2===r.wrap)t.adler=0,Z(r,31),Z(r,139),Z(r,8),r.gzhead?(Z(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),Z(r,255&r.gzhead.time),Z(r,r.gzhead.time>>8&255),Z(r,r.gzhead.time>>16&255),Z(r,r.gzhead.time>>24&255),Z(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),Z(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(Z(r,255&r.gzhead.extra.length),Z(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=T(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(Z(r,0),Z(r,0),Z(r,0),Z(r,0),Z(r,0),Z(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),Z(r,3),r.status=N);else{var h=8+(r.w_bits-8<<4)<<8;h|=(r.strategy>=2||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(h|=32),h+=31-h%31,r.status=N,$(r,h),0!==r.strstart&&($(r,t.adler>>>16),$(r,65535&t.adler)),t.adler=1}if(69===r.status)if(r.gzhead.extra){for(a=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>a&&(t.adler=T(t.adler,r.pending_buf,r.pending-a,a)),X(t),a=r.pending,r.pending!==r.pending_buf_size));)Z(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>a&&(t.adler=T(t.adler,r.pending_buf,r.pending-a,a)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(t.adler=T(t.adler,r.pending_buf,r.pending-a,a)),X(t),a=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindexa&&(t.adler=T(t.adler,r.pending_buf,r.pending-a,a)),0===n&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){a=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>a&&(t.adler=T(t.adler,r.pending_buf,r.pending-a,a)),X(t),a=r.pending,r.pending===r.pending_buf_size)){n=1;break}n=r.gzindexa&&(t.adler=T(t.adler,r.pending_buf,r.pending-a,a)),0===n&&(r.status=K)}else r.status=K;if(r.status===K&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&X(t),r.pending+2<=r.pending_buf_size&&(Z(r,255&t.adler),Z(r,t.adler>>8&255),t.adler=0,r.status=N)):r.status=N),0!==r.pending){if(X(t),0===t.avail_out)return r.last_flush=-1,0}else if(0===t.avail_in&&R(e)<=R(i)&&4!==e)return Q(t,-5);if(r.status===P&&0!==t.avail_in)return Q(t,-5);if(0!==t.avail_in||0!==r.lookahead||0!==e&&r.status!==P){var l=2===r.strategy?function(t,e){for(var a;;){if(0===t.lookahead&&(et(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,a=F(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(Y(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Y(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Y(t,!1),0===t.strm.avail_out)?1:2}(r,e):3===r.strategy?function(t,e){for(var a,n,r,i,s=t.window;;){if(t.lookahead<=H){if(et(t),t.lookahead<=H&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(n=s[r=t.strstart-1])===s[++r]&&n===s[++r]&&n===s[++r]){i=t.strstart+H;do{}while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&rt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(a=F(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=F(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(Y(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(Y(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(Y(t,!1),0===t.strm.avail_out)?1:2}(r,e):it[r.level].func(r,e);if(3!==l&&4!==l||(r.status=P),1===l||3===l)return 0===t.avail_out&&(r.last_flush=-1),0;if(2===l&&(1===e?function(t){m(t,2,3),b(t,256,s),function(t){16===t.bi_valid?(w(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}(r):5!==e&&(q(r,0,0,!1),3===e&&(V(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),X(t),0===t.avail_out))return r.last_flush=-1,0}return 4!==e?0:r.wrap<=0?1:(2===r.wrap?(Z(r,255&t.adler),Z(r,t.adler>>8&255),Z(r,t.adler>>16&255),Z(r,t.adler>>24&255),Z(r,255&t.total_in),Z(r,t.total_in>>8&255),Z(r,t.total_in>>16&255),Z(r,t.total_in>>24&255)):($(r,t.adler>>>16),$(r,65535&t.adler)),X(t),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?0:1)},_t=function(t){if(!t||!t.state)return G;var e=t.state.status;return 42!==e&&69!==e&&73!==e&&91!==e&&e!==K&&e!==N&&e!==P?Q(t,G):(t.state=null,e===N?Q(t,-3):0)},ot=new Uint8Array(256),dt=0;dt<256;dt++)ot[dt]=dt>=252?6:dt>=248?5:dt>=240?4:dt>=224?3:dt>=192?2:1;ot[254]=ot[254]=1;var ut=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\\\"\\\",this.state=null,this.data_type=2,this.adler=0},ft=Object.prototype.toString;function ct(){this.options={level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0};var t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\\\"\\\",this.ended=!1,this.chunks=[],this.strm=new ut,this.strm.avail_out=0;var e,a,n=function(t,e,a,n,r,i){if(!t)return G;var s=1;if(-1===e&&(e=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>9||8!==a||n<8||n>15||e<0||e>9||i<0||i>4)return Q(t,G);8===n&&(n=9);var h=new st;return t.state=h,h.strm=t,h.wrap=s,h.gzhead=null,h.w_bits=n,h.w_size=1<=n.w_size){0===r&&(V(n.head),n.strstart=0,n.block_start=0,n.insert=0);var i=new Uint8Array(n.w_size);i.set(e.subarray(a-n.w_size,a),0),e=i,a=n.w_size}var s=t.avail_in,h=t.next_in,l=t.input;for(t.avail_in=a,t.next_in=0,t.input=e,et(n);n.lookahead>=3;){var _=n.strstart,o=n.lookahead-2;do{n.ins_h=W(n,n.ins_h,n.window[_+3-1]),n.prev[_&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=_,_++}while(--o);n.strstart=_,n.lookahead=2,et(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=2,n.match_available=0,t.next_in=h,t.input=l,t.avail_in=s,n.wrap=r,0}(this.strm,r)))throw Error(O[n]);this._dict_set=!0}}function pt(t,e,a){try{t.postMessage({type:\\\"errored\\\",error:e,streamId:a})}catch(n){t.postMessage({type:\\\"errored\\\",error:e+\\\"\\\",streamId:a})}}function gt(t){const e=t.strm.adler;return new Uint8Array([3,0,e>>>24&255,e>>>16&255,e>>>8&255,255&e])}ct.prototype.push=function(t,e){var a,n,r=this.strm,i=this.options.chunkSize;if(this.ended)return!1;for(n=e===~~e?e:!0===e?4:0,\\\"[object ArrayBuffer]\\\"===ft.call(t)?r.input=new Uint8Array(t):r.input=t,r.next_in=0,r.avail_in=r.input.length;;)if(0===r.avail_out&&(r.output=new Uint8Array(i),r.next_out=0,r.avail_out=i),(2===n||3===n)&&r.avail_out<=6)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else{if(1===(a=lt(r,n)))return r.next_out>0&&this.onData(r.output.subarray(0,r.next_out)),a=_t(this.strm),this.onEnd(a),this.ended=!0,0===a;if(0!==r.avail_out){if(n>0&&r.next_out>0)this.onData(r.output.subarray(0,r.next_out)),r.avail_out=0;else if(0===r.avail_in)break}else this.onData(r.output)}return!0},ct.prototype.onData=function(t){this.chunks.push(t)},ct.prototype.onEnd=function(t){0===t&&(this.result=function(t){for(var e=0,a=0,n=t.length;a{try{const r=function(e,a){switch(a.action){case\\\"init\\\":return{type:\\\"initialized\\\",version:\\\"6.6.2\\\"};case\\\"write\\\":{let n=e.get(a.streamId);n||(n=new ct,e.set(a.streamId,n));const r=n.chunks.length,i=function(t){if(\\\"function\\\"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(t);let e,a,n,r,i,s=t.length,h=0;for(r=0;r>>6,e[i++]=128|63&a):a<65536?(e[i++]=224|a>>>12,e[i++]=128|a>>>6&63,e[i++]=128|63&a):(e[i++]=240|a>>>18,e[i++]=128|a>>>12&63,e[i++]=128|a>>>6&63,e[i++]=128|63&a);return e}(a.data);return n.push(i,2),{type:\\\"wrote\\\",id:a.id,streamId:a.streamId,result:t(n.chunks.slice(r)),trailer:gt(n),additionalBytesCount:i.length}}case\\\"reset\\\":e.delete(a.streamId)}}(a,n.data);r&&e.postMessage(r)}catch(t){pt(e,t,n.data&&\\\"streamId\\\"in n.data?n.data.streamId:void 0)}}))}catch(t){pt(e,t)}}()})();\"])));\n}\nlet state = {\n status: 0 /* DeflateWorkerStatus.Nil */\n};\nexport function startDeflateWorker(configuration, source, onInitializationFailure, createDeflateWorkerImpl = createDeflateWorker) {\n if (state.status === 0 /* DeflateWorkerStatus.Nil */) {\n // doStartDeflateWorker updates the state to \"loading\" or \"error\"\n doStartDeflateWorker(configuration, source, createDeflateWorkerImpl);\n }\n switch (state.status) {\n case 1 /* DeflateWorkerStatus.Loading */:\n state.initializationFailureCallbacks.push(onInitializationFailure);\n return state.worker;\n case 3 /* DeflateWorkerStatus.Initialized */:\n return state.worker;\n }\n}\nexport function resetDeflateWorkerState() {\n if (state.status === 3 /* DeflateWorkerStatus.Initialized */ || state.status === 1 /* DeflateWorkerStatus.Loading */) {\n state.stop();\n }\n state = {\n status: 0 /* DeflateWorkerStatus.Nil */\n };\n}\nexport function getDeflateWorkerStatus() {\n return state.status;\n}\n/**\n * Starts the deflate worker and handle messages and errors\n *\n * The spec allow browsers to handle worker errors differently:\n * - Chromium throws an exception\n * - Firefox fires an error event\n *\n * more details: https://bugzilla.mozilla.org/show_bug.cgi?id=1736865#c2\n */\nexport function doStartDeflateWorker(configuration, source, createDeflateWorkerImpl = createDeflateWorker) {\n try {\n const worker = createDeflateWorkerImpl(configuration);\n const {\n stop: removeErrorListener\n } = addEventListener(configuration, worker, 'error', error => {\n onError(configuration, source, error);\n });\n const {\n stop: removeMessageListener\n } = addEventListener(configuration, worker, 'message', ({\n data\n }) => {\n if (data.type === 'errored') {\n onError(configuration, source, data.error, data.streamId);\n } else if (data.type === 'initialized') {\n onInitialized(data.version);\n }\n });\n worker.postMessage({\n action: 'init'\n });\n setTimeout(() => onTimeout(source), INITIALIZATION_TIME_OUT_DELAY);\n const stop = () => {\n removeErrorListener();\n removeMessageListener();\n };\n state = {\n status: 1 /* DeflateWorkerStatus.Loading */,\n worker,\n stop,\n initializationFailureCallbacks: []\n };\n } catch (error) {\n onError(configuration, source, error);\n }\n}\nfunction onTimeout(source) {\n if (state.status === 1 /* DeflateWorkerStatus.Loading */) {\n display.error(`${source} failed to start: a timeout occurred while initializing the Worker`);\n state.initializationFailureCallbacks.forEach(callback => callback());\n state = {\n status: 2 /* DeflateWorkerStatus.Error */\n };\n }\n}\nfunction onInitialized(version) {\n if (state.status === 1 /* DeflateWorkerStatus.Loading */) {\n state = {\n status: 3 /* DeflateWorkerStatus.Initialized */,\n worker: state.worker,\n stop: state.stop,\n version\n };\n }\n}\nfunction onError(configuration, source, error, streamId) {\n if (state.status === 1 /* DeflateWorkerStatus.Loading */ || state.status === 0 /* DeflateWorkerStatus.Nil */) {\n reportScriptLoadingError({\n configuredUrl: configuration.workerUrl,\n error,\n source,\n scriptType: 'worker'\n });\n if (state.status === 1 /* DeflateWorkerStatus.Loading */) {\n state.initializationFailureCallbacks.forEach(callback => callback());\n }\n state = {\n status: 2 /* DeflateWorkerStatus.Error */\n };\n } else {\n addTelemetryError(error, {\n worker_version: state.status === 3 /* DeflateWorkerStatus.Initialized */ && state.version,\n stream_id: streamId\n });\n }\n}\n","/**\n * Test for Browser features used while recording\n */\nexport function isBrowserSupported() {\n return (\n // Array.from is a bit less supported by browsers than CSSSupportsRule, but has higher chances\n // to be polyfilled. Test for both to be more confident. We could add more things if we find out\n // this test is not sufficient.\n typeof Array.from === 'function' && typeof CSSSupportsRule === 'function' && typeof URL.createObjectURL === 'function' && 'forEach' in NodeList.prototype\n );\n}\n","import { getSessionReplayUrl } from '@datadog/browser-rum-core';\nimport { isBrowserSupported } from '../boot/isBrowserSupported';\nexport function getSessionReplayLink(configuration, sessionManager, viewHistory, isRecordingStarted) {\n const session = sessionManager.findTrackedSession();\n const errorType = getErrorType(session, isRecordingStarted);\n const viewContext = viewHistory.findView();\n return getSessionReplayUrl(configuration, {\n viewContext,\n errorType,\n session\n });\n}\nfunction getErrorType(session, isRecordingStarted) {\n if (!isBrowserSupported()) {\n return 'browser-not-supported';\n }\n if (!session) {\n // possibilities:\n // - rum sampled out\n // - session expired (edge case)\n return 'rum-not-tracked';\n }\n if (session.sessionReplay === 0 /* SessionReplayState.OFF */) {\n // possibilities\n // - replay sampled out\n return 'incorrect-session-plan';\n }\n if (!isRecordingStarted) {\n return 'replay-not-started';\n }\n}\n","import { asyncRunOnReadyState, monitorError } from '@datadog/browser-core';\nimport { getSessionReplayLink } from '../domain/getSessionReplayLink';\nexport function createPostStartStrategy(configuration, lifeCycle, sessionManager, viewHistory, loadRecorder, getOrCreateDeflateEncoder) {\n let status = 0 /* RecorderStatus.Stopped */;\n let stopRecording;\n lifeCycle.subscribe(9 /* LifeCycleEventType.SESSION_EXPIRED */, () => {\n if (status === 2 /* RecorderStatus.Starting */ || status === 3 /* RecorderStatus.Started */) {\n stop();\n status = 1 /* RecorderStatus.IntentToStart */;\n }\n });\n lifeCycle.subscribe(10 /* LifeCycleEventType.SESSION_RENEWED */, () => {\n if (status === 1 /* RecorderStatus.IntentToStart */) {\n start();\n }\n });\n const doStart = async () => {\n const [startRecordingImpl] = await Promise.all([loadRecorder(), asyncRunOnReadyState(configuration, 'interactive')]);\n if (status !== 2 /* RecorderStatus.Starting */) {\n return;\n }\n const deflateEncoder = getOrCreateDeflateEncoder();\n if (!deflateEncoder || !startRecordingImpl) {\n status = 0 /* RecorderStatus.Stopped */;\n return;\n }\n ;\n ({\n stop: stopRecording\n } = startRecordingImpl(lifeCycle, configuration, sessionManager, viewHistory, deflateEncoder));\n status = 3 /* RecorderStatus.Started */;\n };\n function start(options) {\n const session = sessionManager.findTrackedSession();\n if (canStartRecording(session, options)) {\n status = 1 /* RecorderStatus.IntentToStart */;\n return;\n }\n if (isRecordingInProgress(status)) {\n return;\n }\n status = 2 /* RecorderStatus.Starting */;\n // Intentionally not awaiting doStart() to keep it asynchronous\n doStart().catch(monitorError);\n if (shouldForceReplay(session, options)) {\n sessionManager.setForcedReplay();\n }\n }\n function stop() {\n if (status === 3 /* RecorderStatus.Started */) {\n stopRecording === null || stopRecording === void 0 ? void 0 : stopRecording();\n }\n status = 0 /* RecorderStatus.Stopped */;\n }\n return {\n start,\n stop,\n getSessionReplayLink() {\n return getSessionReplayLink(configuration, sessionManager, viewHistory, status !== 0 /* RecorderStatus.Stopped */);\n },\n isRecording: () => status === 3 /* RecorderStatus.Started */\n };\n}\nfunction canStartRecording(session, options) {\n return !session || session.sessionReplay === 0 /* SessionReplayState.OFF */ && (!options || !options.force);\n}\nfunction isRecordingInProgress(status) {\n return status === 2 /* RecorderStatus.Starting */ || status === 3 /* RecorderStatus.Started */;\n}\nfunction shouldForceReplay(session, options) {\n return options && options.force && session.sessionReplay === 0 /* SessionReplayState.OFF */;\n}\n","import { noop } from '@datadog/browser-core';\nexport function createPreStartStrategy() {\n let status = 0 /* PreStartRecorderStatus.None */;\n return {\n strategy: {\n start() {\n status = 1 /* PreStartRecorderStatus.HadManualStart */;\n },\n stop() {\n status = 2 /* PreStartRecorderStatus.HadManualStop */;\n },\n isRecording: () => false,\n getSessionReplayLink: noop\n },\n shouldStartImmediately(configuration) {\n return status === 1 /* PreStartRecorderStatus.HadManualStart */ || status === 0 /* PreStartRecorderStatus.None */ && !configuration.startSessionReplayRecordingManually;\n }\n };\n}\n","import { canUseEventBridge, noop, bridgeSupports } from '@datadog/browser-core';\nimport { getReplayStats as getReplayStatsImpl } from '../domain/replayStats';\nimport { createDeflateEncoder, getDeflateWorkerStatus, startDeflateWorker } from '../domain/deflate';\nimport { isBrowserSupported } from './isBrowserSupported';\nimport { createPostStartStrategy } from './postStartStrategy';\nimport { createPreStartStrategy } from './preStartStrategy';\nexport function makeRecorderApi(loadRecorder, createDeflateWorkerImpl) {\n if (canUseEventBridge() && !bridgeSupports(\"records\" /* BridgeCapability.RECORDS */) || !isBrowserSupported()) {\n return {\n start: noop,\n stop: noop,\n getReplayStats: () => undefined,\n onRumStart: noop,\n isRecording: () => false,\n getSessionReplayLink: () => undefined\n };\n }\n // eslint-disable-next-line prefer-const\n let {\n strategy,\n shouldStartImmediately\n } = createPreStartStrategy();\n return {\n start: options => strategy.start(options),\n stop: () => strategy.stop(),\n getSessionReplayLink: () => strategy.getSessionReplayLink(),\n onRumStart,\n isRecording: () =>\n // The worker is started optimistically, meaning we could have started to record but its\n // initialization fails a bit later. This could happen when:\n // * the worker URL (blob or plain URL) is blocked by CSP in Firefox only (Chromium and Safari\n // throw an exception when instantiating the worker, and IE doesn't care about CSP)\n // * the browser fails to load the worker in case the workerUrl is used\n // * an unexpected error occurs in the Worker before initialization, ex:\n // * a runtime exception collected by monitor()\n // * a syntax error notified by the browser via an error event\n // * the worker is unresponsive for some reason and timeouts\n //\n // It is not expected to happen often. Nonetheless, the \"replayable\" status on RUM events is\n // an important part of the Datadog App:\n // * If we have a false positive (we set has_replay: true even if no replay data is present),\n // we might display broken links to the Session Replay player.\n // * If we have a false negative (we don't set has_replay: true even if replay data is\n // available), it is less noticeable because no link will be displayed.\n //\n // Thus, it is better to have false negative, so let's make sure the worker is correctly\n // initialized before advertizing that we are recording.\n //\n // In the future, when the compression worker will also be used for RUM data, this will be\n // less important since no RUM event will be sent when the worker fails to initialize.\n getDeflateWorkerStatus() === 3 /* DeflateWorkerStatus.Initialized */ && strategy.isRecording(),\n getReplayStats: viewId => getDeflateWorkerStatus() === 3 /* DeflateWorkerStatus.Initialized */ ? getReplayStatsImpl(viewId) : undefined\n };\n function onRumStart(lifeCycle, configuration, sessionManager, viewHistory, worker) {\n let cachedDeflateEncoder;\n function getOrCreateDeflateEncoder() {\n if (!cachedDeflateEncoder) {\n worker !== null && worker !== void 0 ? worker : worker = startDeflateWorker(configuration, 'Datadog Session Replay', () => {\n strategy.stop();\n }, createDeflateWorkerImpl);\n if (worker) {\n cachedDeflateEncoder = createDeflateEncoder(configuration, worker, 1 /* DeflateEncoderStreamId.REPLAY */);\n }\n }\n return cachedDeflateEncoder;\n }\n strategy = createPostStartStrategy(configuration, lifeCycle, sessionManager, viewHistory, loadRecorder, getOrCreateDeflateEncoder);\n if (shouldStartImmediately(configuration)) {\n strategy.start();\n }\n }\n}\n","import { reportScriptLoadingError } from '../domain/scriptLoadingError';\nexport async function lazyLoadRecorder(importRecorderImpl = importRecorder) {\n try {\n return await importRecorderImpl();\n } catch (error) {\n reportScriptLoadingError({\n error,\n source: 'Recorder',\n scriptType: 'module'\n });\n }\n}\nasync function importRecorder() {\n const module = await import(/* webpackChunkName: \"recorder\" */'./startRecording');\n return module.startRecording;\n}\n","import { getGlobalObject } from '@datadog/browser-core';\nexport function isProfilingSupported() {\n const globalThis = getGlobalObject();\n // This API might be unavailable in some browsers\n const globalThisProfiler = globalThis.Profiler;\n return globalThisProfiler !== undefined;\n}\n","import { display } from '@datadog/browser-core';\nexport async function lazyLoadProfiler() {\n try {\n const module = await import(/* webpackChunkName: \"profiler\" */'./profiler');\n return module.createRumProfiler;\n } catch (err) {\n /* Prevent collecting the webpack ChunkLoadError as it is already collected as a RUM resource. */\n display.error('[DD_RUM] Failed to load createRumProfiler', err);\n }\n}\n","import { addTelemetryDebug, monitorError, performDraw } from '@datadog/browser-core';\nimport { isProfilingSupported } from '../domain/profiling/profilingSupported';\nimport { lazyLoadProfiler } from '../domain/profiling/lazyLoadProfiler';\nexport function makeProfilerApi() {\n const cleanupTasks = [];\n function stop() {\n cleanupTasks.forEach(task => task());\n cleanupTasks.length = 0;\n }\n function onRumStart(lifeCycle, configuration, sessionManager, viewHistory) {\n // Check if Browser is supporting the JS Self-Profiling API\n if (!isProfilingSupported()) {\n return;\n }\n if (!performDraw(configuration.profilingSampleRate)) {\n // User is not lucky, no profiling!\n return;\n }\n let profiler;\n lazyLoadProfiler().then(createRumProfiler => {\n var _a;\n if (!createRumProfiler) {\n addTelemetryDebug('[DD_RUM] Failed to lazy load the RUM Profiler');\n return;\n }\n profiler = createRumProfiler(configuration, lifeCycle, sessionManager);\n profiler.start((_a = viewHistory.findView()) === null || _a === void 0 ? void 0 : _a.id);\n cleanupTasks.push(() => {\n profiler.stop().catch(monitorError);\n });\n }).catch(monitorError);\n }\n return {\n onRumStart,\n stop\n };\n}\n","// Keep the following in sync with packages/rum-slim/src/entries/main.ts\nimport { defineGlobal, getGlobalObject } from '@datadog/browser-core';\nimport { makeRumPublicApi, startRum } from '@datadog/browser-rum-core';\nimport { makeRecorderApi } from '../boot/recorderApi';\nimport { createDeflateEncoder, startDeflateWorker } from '../domain/deflate';\nimport { lazyLoadRecorder } from '../boot/lazyLoadRecorder';\nimport { makeProfilerApi } from '../boot/profilerApi';\nexport { DefaultPrivacyLevel } from '@datadog/browser-core';\nconst recorderApi = makeRecorderApi(lazyLoadRecorder);\nconst profilerApi = makeProfilerApi();\nexport const datadogRum = makeRumPublicApi(startRum, recorderApi, profilerApi, {\n startDeflateWorker,\n createDeflateEncoder\n});\ndefineGlobal(getGlobalObject(), 'DD_RUM', datadogRum);\n","/**\n * @license Angular v19.2.4\n * (c) 2010-2025 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer as _AnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE as _PRE_STYLE, AnimationMetadataType, sequence, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError as _RuntimeError, Injectable } from '@angular/core';\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new _RuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new _RuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new _RuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new _RuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode && `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new _RuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new _RuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new _RuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new _RuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode && \"animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))\");\n}\nfunction invalidDefinition() {\n return new _RuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new _RuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode && `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new _RuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new _RuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode && `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new _RuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new _RuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new _RuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new _RuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new _RuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new _RuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode && `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new _RuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new _RuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new _RuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new _RuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map(err => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new _RuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode && `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors.map(err => err.message).join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new _RuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode && `Unable to animate due to the following errors:${LINE_START}${errors.map(err => err.message).join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new _RuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode && `Unable to build the animation due to the following errors: ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new _RuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && \"The requested animation doesn't exist or has already been destroyed\");\n}\nfunction createAnimationFailed(errors) {\n return new _RuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode && `Unable to create the animation due to the following errors:${errors.map(err => err.message).join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new _RuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new _RuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode && `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new _RuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode && `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new _RuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode && `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new _RuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new _RuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode && `Unable to process animations due to the following failed trigger transitions\\n ${errors.map(err => err.message).join('\\n')}`);\n}\nfunction transitionFailed(name, errors) {\n return new _RuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map(err => err.message).join('\\n- ')}`);\n}\n\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = /*#__PURE__*/new Set(['-moz-outline-radius', '-moz-outline-radius-bottomleft', '-moz-outline-radius-bottomright', '-moz-outline-radius-topleft', '-moz-outline-radius-topright', '-ms-grid-columns', '-ms-grid-rows', '-webkit-line-clamp', '-webkit-text-fill-color', '-webkit-text-stroke', '-webkit-text-stroke-color', 'accent-color', 'all', 'backdrop-filter', 'background', 'background-color', 'background-position', 'background-size', 'block-size', 'border', 'border-block-end', 'border-block-end-color', 'border-block-end-width', 'border-block-start', 'border-block-start-color', 'border-block-start-width', 'border-bottom', 'border-bottom-color', 'border-bottom-left-radius', 'border-bottom-right-radius', 'border-bottom-width', 'border-color', 'border-end-end-radius', 'border-end-start-radius', 'border-image-outset', 'border-image-slice', 'border-image-width', 'border-inline-end', 'border-inline-end-color', 'border-inline-end-width', 'border-inline-start', 'border-inline-start-color', 'border-inline-start-width', 'border-left', 'border-left-color', 'border-left-width', 'border-radius', 'border-right', 'border-right-color', 'border-right-width', 'border-start-end-radius', 'border-start-start-radius', 'border-top', 'border-top-color', 'border-top-left-radius', 'border-top-right-radius', 'border-top-width', 'border-width', 'bottom', 'box-shadow', 'caret-color', 'clip', 'clip-path', 'color', 'column-count', 'column-gap', 'column-rule', 'column-rule-color', 'column-rule-width', 'column-width', 'columns', 'filter', 'flex', 'flex-basis', 'flex-grow', 'flex-shrink', 'font', 'font-size', 'font-size-adjust', 'font-stretch', 'font-variation-settings', 'font-weight', 'gap', 'grid-column-gap', 'grid-gap', 'grid-row-gap', 'grid-template-columns', 'grid-template-rows', 'height', 'inline-size', 'input-security', 'inset', 'inset-block', 'inset-block-end', 'inset-block-start', 'inset-inline', 'inset-inline-end', 'inset-inline-start', 'left', 'letter-spacing', 'line-clamp', 'line-height', 'margin', 'margin-block-end', 'margin-block-start', 'margin-bottom', 'margin-inline-end', 'margin-inline-start', 'margin-left', 'margin-right', 'margin-top', 'mask', 'mask-border', 'mask-position', 'mask-size', 'max-block-size', 'max-height', 'max-inline-size', 'max-lines', 'max-width', 'min-block-size', 'min-height', 'min-inline-size', 'min-width', 'object-position', 'offset', 'offset-anchor', 'offset-distance', 'offset-path', 'offset-position', 'offset-rotate', 'opacity', 'order', 'outline', 'outline-color', 'outline-offset', 'outline-width', 'padding', 'padding-block-end', 'padding-block-start', 'padding-bottom', 'padding-inline-end', 'padding-inline-start', 'padding-left', 'padding-right', 'padding-top', 'perspective', 'perspective-origin', 'right', 'rotate', 'row-gap', 'scale', 'scroll-margin', 'scroll-margin-block', 'scroll-margin-block-end', 'scroll-margin-block-start', 'scroll-margin-bottom', 'scroll-margin-inline', 'scroll-margin-inline-end', 'scroll-margin-inline-start', 'scroll-margin-left', 'scroll-margin-right', 'scroll-margin-top', 'scroll-padding', 'scroll-padding-block', 'scroll-padding-block-end', 'scroll-padding-block-start', 'scroll-padding-bottom', 'scroll-padding-inline', 'scroll-padding-inline-end', 'scroll-padding-inline-start', 'scroll-padding-left', 'scroll-padding-right', 'scroll-padding-top', 'scroll-snap-coordinate', 'scroll-snap-destination', 'scrollbar-color', 'shape-image-threshold', 'shape-margin', 'shape-outside', 'tab-size', 'text-decoration', 'text-decoration-color', 'text-decoration-thickness', 'text-emphasis', 'text-emphasis-color', 'text-indent', 'text-shadow', 'text-underline-offset', 'top', 'transform', 'transform-origin', 'translate', 'vertical-align', 'visibility', 'width', 'word-spacing', 'z-index', 'zoom']);\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new _AnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(normalizer, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach(kf => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = isSameOffset && previousKeyframe || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case _PRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue = normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return {\n element,\n triggerName,\n fromState,\n toState,\n phaseName,\n totalTime,\n disabled: !!disabled\n };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, value = defaultValue);\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nconst documentElement = /* @__PURE__ */(() => typeof document === 'undefined' ? null : document.documentElement)();\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host || null; // consider host to support shadow DOM\n if (parent === documentElement) {\n return null;\n }\n return parent;\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? 'WebkitAppearance' in _CACHED_BODY.style : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nfunction containsElement(elm1, elm2) {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n}\nfunction invokeQuery(element, selector, multi) {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n}\n\n/**\n * @publicApi\n *\n * `AnimationDriver` implentation for Noop animations\n */\nlet NoopAnimationDriver = /*#__PURE__*/(() => {\n class NoopAnimationDriver {\n /**\n * @returns Whether `prop` is a valid CSS property\n */\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n /**\n *\n * @returns Whether elm1 contains elm2.\n */\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n /**\n * @returns Rhe parent of the given element or `null` if the element is the `document`\n */\n getParentElement(element) {\n return getParentElement(element);\n }\n /**\n * @returns The result of the query selector on the element. The array will contain up to 1 item\n * if `multi` is `false`.\n */\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n /**\n * @returns The `defaultValue` or empty string\n */\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n /**\n * @returns An `NoopAnimationPlayer`\n */\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n static ɵfac = function NoopAnimationDriver_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NoopAnimationDriver)();\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: NoopAnimationDriver,\n factory: NoopAnimationDriver.ɵfac\n });\n }\n return NoopAnimationDriver;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * @publicApi\n */\nclass AnimationDriver {\n /**\n * @deprecated Use the NoopAnimationDriver class.\n */\n static NOOP = /*#__PURE__*/new NoopAnimationDriver();\n}\nclass AnimationStyleNormalizer {}\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number') return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2) return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default:\n // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration') ? timings : parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return {\n duration: 0,\n delay: 0,\n easing: ''\n };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n } else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return {\n duration,\n delay,\n easing\n };\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map(kf => new Map(Object.entries(kf)));\n}\nfunction normalizeStyles(styles) {\n return Array.isArray(styles) ? new Map(...styles) : new Map(styles);\n}\nfunction setStyles(element, styles, formerStyles) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n}\nfunction eraseStyles(element, styles) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1) return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach(varName => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = /* @__PURE__ */new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while (match = PARAM_REGEX.exec(value)) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = `${value}`;\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach(prop => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case AnimationMetadataType.Trigger:\n return visitor.visitTrigger(node, context);\n case AnimationMetadataType.State:\n return visitor.visitState(node, context);\n case AnimationMetadataType.Transition:\n return visitor.visitTransition(node, context);\n case AnimationMetadataType.Sequence:\n return visitor.visitSequence(node, context);\n case AnimationMetadataType.Group:\n return visitor.visitGroup(node, context);\n case AnimationMetadataType.Animate:\n return visitor.visitAnimate(node, context);\n case AnimationMetadataType.Keyframes:\n return visitor.visitKeyframes(node, context);\n case AnimationMetadataType.Style:\n return visitor.visitStyle(node, context);\n case AnimationMetadataType.Reference:\n return visitor.visitReference(node, context);\n case AnimationMetadataType.AnimateChild:\n return visitor.visitAnimateChild(node, context);\n case AnimationMetadataType.AnimateRef:\n return visitor.visitAnimateRef(node, context);\n case AnimationMetadataType.Query:\n return visitor.visitQuery(node, context);\n case AnimationMetadataType.Stagger:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\nconst DIMENSIONAL_PROP_SET = /*#__PURE__*/new Set(['width', 'height', 'minWidth', 'minHeight', 'maxWidth', 'maxHeight', 'left', 'top', 'bottom', 'right', 'fontSize', 'outlineWidth', 'outlineOffset', 'paddingTop', 'paddingLeft', 'paddingBottom', 'paddingRight', 'marginTop', 'marginLeft', 'marginBottom', 'marginRight', 'borderRadius', 'borderWidth', 'borderTopWidth', 'borderLeftWidth', 'borderRightWidth', 'borderBottomWidth', 'textIndent', 'perspective']);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n } else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings.filter(Boolean).map(warning => warning).join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue.split(/\\s*,\\s*/).forEach(str => parseInnerTransitionStr(str, expressions, errors));\n } else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n return;\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = /*#__PURE__*/new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = /*#__PURE__*/new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = /* @__PURE__ */new RegExp(`s*${SELF_TOKEN}s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n _driver;\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = visitDslNode(this, normalizeAnimationEntry(metadata), context);\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [...context.unsupportedCSSPropertiesFound.keys()]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = context.queryCount = 0;\n let depCount = context.depCount = 0;\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach(def => {\n this._resetContextStyleTimingState(context);\n if (def.type == AnimationMetadataType.State) {\n const stateDef = def;\n const name = stateDef.name;\n name.toString().split(/\\s*,\\s*/).forEach(n => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n } else if (def.type == AnimationMetadataType.Transition) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n } else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: AnimationMetadataType.Trigger,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = metadata.options && metadata.options.params || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach(style => {\n if (style instanceof Map) {\n style.forEach(value => {\n extractStyleParams(value).forEach(sub => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n context.errors.push(invalidState(metadata.name, [...missingSubs.values()]));\n }\n }\n return {\n type: AnimationMetadataType.State,\n name: metadata.name,\n style: styleAst,\n options: astParams ? {\n params: astParams\n } : null\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: AnimationMetadataType.Transition,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitSequence(metadata, context) {\n return {\n type: AnimationMetadataType.Sequence,\n steps: metadata.steps.map(s => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map(step => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: AnimationMetadataType.Group,\n steps,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles ? metadata.styles : style({});\n if (styleMetadata.type == AnimationMetadataType.Keyframes) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n } else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: AnimationMetadataType.Animate,\n timings: timingAst,\n style: styleAst,\n options: null\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n } else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n } else {\n styles.push(new Map(Object.entries(styleTuple)));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach(styleData => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: AnimationMetadataType.Style,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach(tuple => {\n if (typeof tuple === 'string') return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime && startTime >= collectedEntry.startTime && endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, {\n startTime,\n endTime\n });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = {\n type: AnimationMetadataType.Keyframes,\n styles: [],\n options: null\n };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map(styles => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n } else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? i == limit ? 1 : generatedOffset * i : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: AnimationMetadataType.Reference,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: AnimationMetadataType.AnimateChild,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: AnimationMetadataType.AnimateRef,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = metadata.options || {};\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector = parentSelector.length ? parentSelector + ' ' + selector : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: AnimationMetadataType.Query,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options)\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full' ? {\n duration: 0,\n delay: 0,\n easing: 'full'\n } : resolveTiming(metadata.timings, context.errors, true);\n return {\n type: AnimationMetadataType.Stagger,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find(token => token == SELF_TOKEN) ? true : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector.replace(/@\\*/g, NG_TRIGGER_SELECTOR).replace(/@\\w+/g, match => NG_TRIGGER_SELECTOR + '-' + match.slice(1)).replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? {\n ...obj\n } : null;\n}\nclass AnimationAstBuilderContext {\n errors;\n queryCount = 0;\n depCount = 0;\n currentTransition = null;\n currentQuery = null;\n currentQuerySelector = null;\n currentAnimateTimings = null;\n currentTime = 0;\n collectedStyles = /*#__PURE__*/new Map();\n options = null;\n unsupportedCSSPropertiesFound = /*#__PURE__*/new Set();\n constructor(errors) {\n this.errors = errors;\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string') return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach(styleTuple => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n } else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some(v => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = {\n ...options\n };\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n } else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return {\n duration,\n delay,\n easing\n };\n}\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline\n };\n}\nclass ElementInstructionMap {\n _map = /*#__PURE__*/new Map();\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, existingInstructions = []);\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = /* @__PURE__ */new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = /* @__PURE__ */new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```ts\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```ts\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```ts\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter(timeline => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length ? timelines.map(timeline => timeline.buildKeyframes()) : [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number' ? animationDelay : resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach(instruction => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime = Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == AnimationMetadataType.Style) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach(s => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach(s => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach(timeline => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params ? interpolateParams(strValue, context.params, context.errors) : strValue;\n return resolveTiming(timingValue, context.errors);\n } else {\n return {\n duration: ast.duration,\n delay: ast.delay,\n easing: ast.easing\n };\n }\n }\n visitAnimate(ast, context) {\n const timings = context.currentAnimateTimings = this._visitTiming(ast.timings, context);\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == AnimationMetadataType.Keyframes) {\n this.visitKeyframes(style, context);\n } else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = timings && timings.easing || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n } else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = context.currentTimeline.duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach(step => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = ast.options || {};\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay && (context.previousNode.type === AnimationMetadataType.Style || startTime == 0 && context.currentTimeline.hasCurrentStyleProperties())) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime = tl.currentTime - startingTime + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n _driver;\n element;\n subInstructions;\n _enterClassName;\n _leaveClassName;\n errors;\n timelines;\n parentContext = null;\n currentTimeline;\n currentAnimateTimings = null;\n previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n subContextCount = 0;\n options = {};\n currentQueryIndex = 0;\n currentQueryTotal = 0;\n currentStaggerTime = 0;\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options) return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach(name => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = options['params'] = {};\n Object.keys(oldParams).forEach(name => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: ''\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) {\n // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements = limit < 0 ? elements.slice(elements.length + limit, elements.length) : elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n _driver;\n element;\n startTime;\n _elementTimelineStylesLookup;\n duration = 0;\n easing = null;\n _previousKeyframe = /*#__PURE__*/new Map();\n _currentKeyframe = /*#__PURE__*/new Map();\n _keyframes = /*#__PURE__*/new Map();\n _styleSummary = /*#__PURE__*/new Map();\n _localTimelineStyles = /*#__PURE__*/new Map();\n _globalTimelineStyles;\n _pendingStyles = /*#__PURE__*/new Map();\n _backFill = /*#__PURE__*/new Map();\n _currentEmptyStepKeyframe = null;\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n } else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, {\n time: this.currentTime,\n value\n });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = options && options.params || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0) return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = new Map([...this._backFill, ...keyframe]);\n finalKeyframe.forEach((value, prop) => {\n if (value === _PRE_STYLE) {\n preStyleProps.add(prop);\n } else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = [...preStyleProps.values()];\n const postProps = [...postStyleProps.values()];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n keyframes;\n preStyleProps;\n postStyleProps;\n _stretchStartingKeyframe;\n timings;\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = {\n duration: timings.duration,\n delay: timings.delay,\n easing: timings.easing\n };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let {\n delay,\n duration,\n easing\n } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = new Map(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = new Map(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n delay=1000, duration=1000, keyframes = 0 .5 1\n turns into\n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = new Map(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach(token => {\n if (token === '*') {\n allProperties ??= allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n } else {\n for (let [prop, val] of token) {\n styles.set(prop, val);\n }\n }\n });\n return styles;\n}\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors\n };\n}\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n _triggerName;\n ast;\n _stateStyles;\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = this.ast.options && this.ast.options.params || EMPTY_OBJECT;\n const currentAnimationParams = currentOptions && currentOptions.params || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = nextOptions && nextOptions.params || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay\n };\n const timelines = skipAstBuild ? [] : buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach(tl => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach(tl => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach(prop => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach(prop => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, [...queriedElements.values()], preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const allowedNonAnimatableProps = new Set([\n // 'easing' is a utility/synthetic prop we use to represent\n // easing functions, it represents a property of the animation\n // which is not animatable but different values can be used\n // in different steps\n 'easing']);\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({\n keyframes\n }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach(keyframe => {\n const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));\n for (const [prop, value] of entriesToCheck) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n } else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` + ' not animatable properties: ' + Array.from(invalidNonAnimatableProps).join(', ') + '\\n' + '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some(fn => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = {\n ...defaults\n };\n Object.entries(userParams).forEach(([key, value]) => {\n if (value != null) {\n result[key] = value;\n }\n });\n return result;\n}\nclass AnimationStateStyles {\n styles;\n defaultParams;\n normalizer;\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = applyParamDefaults(params, this.defaultParams);\n this.styles.styles.forEach(value => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(prop, val);\n });\n }\n });\n return finalStyles;\n }\n}\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n name;\n ast;\n _normalizer;\n transitionFactories = [];\n fallbackTransition;\n states = /*#__PURE__*/new Map();\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n ast.states.forEach(ast => {\n const defaultParams = ast.options && ast.options.params || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach(ast => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find(f => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = {\n type: AnimationMetadataType.Sequence,\n steps: [],\n options: null\n };\n const transition = {\n type: AnimationMetadataType.Transition,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n } else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\nconst EMPTY_INSTRUCTION_MAP = /*#__PURE__*/new ElementInstructionMap();\nclass TimelineAnimationEngine {\n bodyNode;\n _driver;\n _normalizer;\n _animations = /*#__PURE__*/new Map();\n _playersById = /*#__PURE__*/new Map();\n players = [];\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n } else {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (warnings.length) {\n warnRegister(warnings);\n }\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._normalizer, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach(inst => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach(prop => styles.set(prop, null));\n });\n } else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map(i => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => {};\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = args[0] || {};\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n namespaceId;\n value;\n options;\n get params() {\n return this.options.params;\n }\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n // we drop the value property from options.\n const {\n value,\n ...options\n } = input;\n this.options = options;\n } else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach(prop => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = /*#__PURE__*/new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n id;\n hostElement;\n _engine;\n players = [];\n _triggers = /*#__PURE__*/new Map();\n _queue = [];\n _elementListeners = /*#__PURE__*/new Map();\n _hostClassName;\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = {\n name,\n phase,\n callback\n };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n } else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, triggersWithStates = new Map());\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n } else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach(player => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback) return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition\n });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach(stateMap => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter(entry => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach(player => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach(elm => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG]) return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach(ns => ns.triggerLeaveAnimation(elm, context, false, true));\n } else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach(elm => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach(listener => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName)) return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true)) return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length ? engine.playersByQueriedElement.get(element) : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n } else {\n let parent = element;\n while (parent = parent.parentNode) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n } else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach(entry => {\n const player = entry.player;\n if (player.destroyed) return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach(listener => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n } else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach(p => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n}\nclass TransitionAnimationEngine {\n bodyNode;\n driver;\n _normalizer;\n players = [];\n newHostElements = /*#__PURE__*/new Map();\n playersByElement = /*#__PURE__*/new Map();\n playersByQueriedElement = /*#__PURE__*/new Map();\n statesByElement = /*#__PURE__*/new Map();\n disabledNodes = /*#__PURE__*/new Set();\n totalAnimations = 0;\n totalQueuedPlayers = 0;\n _namespaceLookup = {};\n _namespaceList = [];\n _flushFns = [];\n _whenQuietFns = [];\n namespacesByHostElement = /*#__PURE__*/new Map();\n collectedEnterElements = [];\n collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n onRemovalComplete = (element, context) => {};\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach(ns => {\n ns.players.forEach(player => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n } else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return this._namespaceLookup[namespaceId] = ns;\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n } else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId) return;\n this.afterFlush(() => {});\n this.afterFlushAnimationsDone(() => {\n const ns = this._fetchNamespace(namespaceId);\n this.namespacesByHostElement.delete(ns.hostElement);\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n ns.destroy(context);\n delete this._namespaceLookup[namespaceId];\n });\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element)) return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n } else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n } else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n } else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => {};\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach(element => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0) return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach(element => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach(player => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n } else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach(player => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise(resolve => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n } else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach(node => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length && (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n } finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n } else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach(fn => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach(fn => fn());\n });\n } else {\n quietFns.forEach(fn => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach(node => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver.query(element, STAR_SELECTOR, true).forEach(elm => mergedLeaveNodes.add(elm));\n } else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach(node => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach(node => removeClass(node, className));\n });\n allLeaveNodes.forEach(element => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach(entry => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues && details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach(tl => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = {\n instruction,\n player,\n element\n };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach(element => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, setVal = new Set());\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach(instruction => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach(player => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach(entry => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach(player => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach(prevPlayer => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter(node => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach(node => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, _PRE_STYLE);\n });\n replaceNodes.forEach(node => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...(post?.entries() ?? []), ...(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach(entry => {\n const {\n element,\n player,\n instruction\n } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while (elm = elm.parentNode) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach(parent => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n } else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n } else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach(player => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach(player => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n } else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation) continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter(p => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n } else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach(player => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n } else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach(player => {\n if (player.queued) return;\n if (!isRemovalAnimation && player.triggerName != triggerName) return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter(player => {\n if (namespaceId && namespaceId != player.namespaceId) return false;\n if (triggerName && triggerName != player.triggerName) return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition ? undefined : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition ? undefined : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach(player => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map(timelineInstruction => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried) return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY).map(p => p.getRealPlayer())).filter(p => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this._normalizer, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach(player => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach(element => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach(element => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach(element => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n namespaceId;\n triggerName;\n element;\n _player = /*#__PURE__*/new NoopAnimationPlayer();\n _containsRealPlayer = false;\n _queuedCallbacks = /*#__PURE__*/new Map();\n destroyed = false;\n parentPlayer = null;\n markedForDestroy = false;\n disabled = false;\n queued = true;\n totalTime = 0;\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer) return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach(callback => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach(element => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach(prop => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach(element => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach(root => rootMap.set(root, []));\n if (nodes.length == 0) return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node) return NULL_NODE;\n let root = localRootMap.get(node);\n if (root) return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) {\n // ngIf inside @trigger\n root = parent;\n } else if (nodeSet.has(parent)) {\n // ngIf inside ngIf\n root = NULL_NODE;\n } else {\n // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach(node => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof _AnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n } else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length) return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop]) return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry) return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach(data => preEntry.add(data));\n } else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\nclass AnimationEngine {\n _driver;\n _normalizer;\n _transitionEngine;\n _timelineEngine;\n _triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n onRemovalComplete = (element, context) => {};\n constructor(doc, _driver, _normalizer) {\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._transitionEngine = new TransitionAnimationEngine(doc.body, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(doc.body, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context) {\n this._transitionEngine.removeNode(namespaceId, element, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n } else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return [...this._transitionEngine.players, ...this._timelineEngine.players];\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n afterFlushAnimationsDone(cb) {\n this._transitionEngine.afterFlushAnimationsDone(cb);\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n } else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return startStyles || endStyles ? new SpecialCasedStyles(element, startStyles, endStyles) : null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nlet SpecialCasedStyles = /*#__PURE__*/(() => {\n class SpecialCasedStyles {\n _element;\n _startStyles;\n _endStyles;\n static initialStylesByElement = /* @__PURE__ */new WeakMap();\n _state = 0 /* SpecialCasedStylesState.Pending */;\n _initialStyles;\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, initialStyles = new Map());\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n }\n return SpecialCasedStyles;\n})();\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\nclass WebAnimationsPlayer {\n element;\n keyframes;\n options;\n _specialStyles;\n _onDoneFns = [];\n _onStartFns = [];\n _onDestroyFns = [];\n _duration;\n _delay;\n _initialized = false;\n _finished = false;\n _started = false;\n _destroyed = false;\n _finalKeyframe;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n _originalOnDoneFns = [];\n _originalOnStartFns = [];\n // using non-null assertion because it's re(set) by init();\n domPlayer;\n time = 0;\n parentPlayer = null;\n currentSnapshot = /*#__PURE__*/new Map();\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach(fn => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized) return;\n this._initialized = true;\n const keyframes = this.keyframes;\n // @ts-expect-error overwriting a readonly property\n this.domPlayer = this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n const onFinish = () => this._onFinish();\n this.domPlayer.addEventListener('finish', onFinish);\n this.onDestroy(() => {\n // We must remove the `finish` event listener once an animation has completed all its\n // iterations. This action is necessary to prevent a memory leak since the listener captures\n // `this`, creating a closure that prevents `this` from being garbage collected.\n this.domPlayer.removeEventListener('finish', onFinish);\n });\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n } else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach(frame => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n return element.animate(this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach(fn => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach(fn => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n // tsc is complaining with TS2362 without the conversion to number\n return +(this.domPlayer.currentTime ?? 0) / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach(fn => fn());\n methods.length = 0;\n }\n}\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return computeStyle(element, prop);\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = {\n duration,\n delay,\n fill\n };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = previousPlayers.filter(player => player instanceof WebAnimationsPlayer);\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach(player => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map(styles => new Map(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\nfunction createEngine(type, doc) {\n // TODO: find a way to make this tree shakable.\n if (type === 'noop') {\n return new AnimationEngine(doc, new NoopAnimationDriver(), new NoopAnimationStyleNormalizer());\n }\n return new AnimationEngine(doc, new WebAnimationsDriver(), new WebAnimationsStyleNormalizer());\n}\nclass Animation {\n _driver;\n _animationAst;\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (warnings.length) {\n warnValidation(warnings);\n }\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles) ? normalizeStyles(startingStyles) : startingStyles;\n const dest = Array.isArray(destinationStyles) ? normalizeStyles(destinationStyles) : destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass BaseAnimationRenderer {\n namespaceId;\n delegate;\n engine;\n _onDestroy;\n // We need to explicitly type this property because of an api-extractor bug\n // See https://github.com/microsoft/rushstack/issues/4390\n ɵtype = 0 /* AnimationRendererType.Regular */;\n constructor(namespaceId, delegate, engine, _onDestroy) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this._onDestroy = _onDestroy;\n }\n get data() {\n return this.delegate.data;\n }\n destroyNode(node) {\n this.delegate.destroyNode?.(node);\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.engine.afterFlushAnimationsDone(() => {\n // Call the renderer destroy method after the animations has finished as otherwise\n // styles will be removed too early which will cause an unstyled animation.\n queueMicrotask(() => {\n this.delegate.destroy();\n });\n });\n this._onDestroy?.();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n // Prior to the changes in #57203, this method wasn't being called at all by `core` if the child\n // doesn't have a parent. There appears to be some animation-specific downstream logic that\n // depends on the null check happening before the animation engine. This check keeps the old\n // behavior while allowing `core` to not have to check for the parent element anymore.\n if (this.parentNode(oldChild)) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n }\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n } else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback, options) {\n return this.delegate.listen(target, eventName, callback, options);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n factory;\n constructor(factory, namespaceId, delegate, engine, onDestroy) {\n super(namespaceId, delegate, engine, onDestroy);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n } else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n } else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback, options) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, event => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback, options);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\n}\nclass AnimationRendererFactory {\n delegate;\n engine;\n _zone;\n _currentId = 0;\n _microtaskId = 1;\n _animationCallbacksBuffer = [];\n _rendererCache = /*#__PURE__*/new Map();\n _cdRecurDepth = 0;\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n engine.onRemovalComplete = (element, delegate) => {\n delegate?.removeChild(null, element);\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type?.data?.['animation']) {\n const cache = this._rendererCache;\n let renderer = cache.get(delegate);\n if (!renderer) {\n // Ensure that the renderer is removed from the cache on destroy\n // since it may contain references to detached DOM nodes.\n const onRendererDestroy = () => cache.delete(delegate);\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);\n // only cache this result when the base renderer is used\n cache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = trigger => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n } else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n queueMicrotask(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n const animationCallbacksBuffer = this._animationCallbacksBuffer;\n if (animationCallbacksBuffer.length == 0) {\n queueMicrotask(() => {\n this._zone.run(() => {\n animationCallbacksBuffer.forEach(tuple => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n /**\n * Used during HMR to clear any cached data about a component.\n * @param componentId ID of the component that is being replaced.\n */\n componentReplaced(componentId) {\n // Flush the engine since the renderer destruction waits for animations to be done.\n this.engine.flush();\n this.delegate.componentReplaced?.(componentId);\n }\n}\nexport { AnimationDriver, NoopAnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, BaseAnimationRenderer as ɵBaseAnimationRenderer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, camelCaseToDashCase as ɵcamelCaseToDashCase, containsElement as ɵcontainsElement, createEngine as ɵcreateEngine, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty, validateWebAnimatableStyleProperty as ɵvalidateWebAnimatableStyleProperty };\n","/**\n * @license Angular v19.2.4\n * (c) 2010-2025 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { ANIMATION_MODULE_TYPE, NgZone, RendererFactory2, Inject, Injectable, ɵperformanceMarkFeature as _performanceMarkFeature, NgModule } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2 as _DomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport * as i1 from '@angular/animations/browser';\nimport { NoopAnimationDriver, AnimationDriver, ɵAnimationStyleNormalizer as _AnimationStyleNormalizer, ɵAnimationEngine as _AnimationEngine, ɵWebAnimationsDriver as _WebAnimationsDriver, ɵWebAnimationsStyleNormalizer as _WebAnimationsStyleNormalizer, ɵAnimationRendererFactory as _AnimationRendererFactory } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\nlet InjectableAnimationEngine = /*#__PURE__*/(() => {\n class InjectableAnimationEngine extends _AnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer) {\n super(doc, driver, normalizer);\n }\n ngOnDestroy() {\n this.flush();\n }\n static ɵfac = function InjectableAnimationEngine_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || InjectableAnimationEngine)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(i1.AnimationDriver), i0.ɵɵinject(i1.ɵAnimationStyleNormalizer));\n };\n static ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: InjectableAnimationEngine,\n factory: InjectableAnimationEngine.ɵfac\n });\n }\n return InjectableAnimationEngine;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction instantiateDefaultStyleNormalizer() {\n return new _WebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new _AnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [{\n provide: _AnimationStyleNormalizer,\n useFactory: instantiateDefaultStyleNormalizer\n}, {\n provide: _AnimationEngine,\n useClass: InjectableAnimationEngine\n}, {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [_DomRendererFactory2, _AnimationEngine, NgZone]\n}];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [{\n provide: AnimationDriver,\n useClass: NoopAnimationDriver\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useValue: 'NoopAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [\n// Note: the `ngServerMode` happen inside factories to give the variable time to initialize.\n{\n provide: AnimationDriver,\n useFactory: () => typeof ngServerMode !== 'undefined' && ngServerMode ? new NoopAnimationDriver() : new _WebAnimationsDriver()\n}, {\n provide: ANIMATION_MODULE_TYPE,\n useFactory: () => typeof ngServerMode !== 'undefined' && ngServerMode ? 'NoopAnimations' : 'BrowserAnimations'\n}, ...SHARED_ANIMATION_PROVIDERS];\n\n/**\n * Exports `BrowserModule` with additional dependency-injection providers\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nlet BrowserAnimationsModule = /*#__PURE__*/(() => {\n class BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see {@link BrowserAnimationsModuleConfig}\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```ts\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations ? BROWSER_NOOP_ANIMATIONS_PROVIDERS : BROWSER_ANIMATIONS_PROVIDERS\n };\n }\n static ɵfac = function BrowserAnimationsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || BrowserAnimationsModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: BrowserAnimationsModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n return BrowserAnimationsModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Returns the set of dependency-injection providers\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```ts\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n _performanceMarkFeature('NgEagerAnimations');\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nlet NoopAnimationsModule = /*#__PURE__*/(() => {\n class NoopAnimationsModule {\n static ɵfac = function NoopAnimationsModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || NoopAnimationsModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NoopAnimationsModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n imports: [BrowserModule]\n });\n }\n return NoopAnimationsModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * Returns the set of dependency-injection providers\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```ts\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","import * as i0 from '@angular/core';\nimport { Injectable, InjectionToken, Directive, Inject, Optional, Input, NgModule } from '@angular/core';\nimport * as i1 from '@angular/router';\nimport { PRIMARY_OUTLET } from '@angular/router';\nimport { EMPTY } from 'rxjs';\n\n// Using a global registry so we can keep it populated across lazy-loaded\n// modules with different parent injectors which create instance of the registry.\nconst globalRegistry = [];\nlet PrefetchRegistry = /*#__PURE__*/(() => {\n class PrefetchRegistry {\n constructor(router) {\n this.router = router;\n this.trees = globalRegistry;\n }\n add(tree) {\n this.trees.push(tree);\n }\n shouldPrefetch(url) {\n const tree = this.router.parseUrl(url);\n return this.trees.some(containsTree.bind(null, tree));\n }\n static {\n this.ɵfac = function PrefetchRegistry_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PrefetchRegistry)(i0.ɵɵinject(i1.Router));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PrefetchRegistry,\n factory: PrefetchRegistry.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return PrefetchRegistry;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nfunction containsQueryParams(container, containee) {\n // TODO: This does not handle array params correctly.\n return Object.keys(containee).length <= Object.keys(container).length && Object.keys(containee).every(key => containee[key] === container[key]);\n}\nfunction containsTree(containee, container) {\n return containsQueryParams(container.queryParams, containee.queryParams) && containsSegmentGroup(container.root, containee.root, containee.root.segments);\n}\nfunction containsSegmentGroup(container, containee, containeePaths) {\n if (container.segments.length > containeePaths.length) {\n const current = container.segments.slice(0, containeePaths.length);\n if (!equalPath(current, containeePaths)) return false;\n if (containee.hasChildren()) return false;\n return true;\n } else if (container.segments.length === containeePaths.length) {\n if (!equalPath(container.segments, containeePaths)) return false;\n if (!containee.hasChildren()) return true;\n for (const c in containee.children) {\n if (!container.children[c]) break;\n if (containsSegmentGroup(container.children[c], containee.children[c], containee.children[c].segments)) return true;\n }\n return false;\n } else {\n const current = containeePaths.slice(0, container.segments.length);\n const next = containeePaths.slice(container.segments.length);\n if (!equalPath(container.segments, current)) return false;\n if (!container.children[PRIMARY_OUTLET]) return false;\n return containsSegmentGroup(container.children[PRIMARY_OUTLET], containee, next);\n }\n}\nfunction equalPath(as, bs) {\n if (as.length !== bs.length) return false;\n return as.every((a, i) => a.path === bs[i].path || a.path.startsWith(':') || bs[i].path.startsWith(':'));\n}\nconst requestIdleCallback = typeof window !== 'undefined' ? window.requestIdleCallback || function (cb) {\n const start = Date.now();\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n} : () => {};\nconst observerSupported = () => typeof window !== 'undefined' ? !!window.IntersectionObserver : false;\nconst LinkHandler = new InjectionToken('LinkHandler');\nlet ObservableLinkHandler = /*#__PURE__*/(() => {\n class ObservableLinkHandler {\n constructor(loader, registry, ngZone) {\n this.loader = loader;\n this.registry = registry;\n this.ngZone = ngZone;\n this.elementLink = new Map();\n this.observer = observerSupported() ? new IntersectionObserver(entries => {\n entries.forEach(entry => {\n if (!this.observer) {\n return;\n }\n if (entry.isIntersecting) {\n const link = entry.target;\n const routerLink = this.elementLink.get(link);\n if (!routerLink || !routerLink.urlTree) return;\n this.registry.add(routerLink.urlTree);\n this.observer.unobserve(link);\n requestIdleCallback(() => {\n this.loader.preload().subscribe(() => void 0);\n });\n }\n });\n }) : null;\n }\n register(el) {\n this.elementLink.set(el.element, el);\n this.ngZone.runOutsideAngular(() => {\n if (!this.observer) {\n return;\n }\n this.observer.observe(el.element);\n });\n }\n // First call to unregister will not hit this.\n unregister(el) {\n if (!this.observer) {\n return;\n }\n if (this.elementLink.has(el.element)) {\n this.observer.unobserve(el.element);\n this.elementLink.delete(el.element);\n }\n }\n supported() {\n return observerSupported();\n }\n static {\n this.ɵfac = function ObservableLinkHandler_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || ObservableLinkHandler)(i0.ɵɵinject(i1.RouterPreloader), i0.ɵɵinject(PrefetchRegistry), i0.ɵɵinject(i0.NgZone));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: ObservableLinkHandler,\n factory: ObservableLinkHandler.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return ObservableLinkHandler;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet PreloadLinkHandler = /*#__PURE__*/(() => {\n class PreloadLinkHandler {\n constructor(loader, registry) {\n this.loader = loader;\n this.registry = registry;\n }\n register(el) {\n this.registry.add(el.urlTree);\n requestIdleCallback(() => this.loader.preload().subscribe(() => void 0));\n }\n unregister(_) {}\n supported() {\n return true;\n }\n static {\n this.ɵfac = function PreloadLinkHandler_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || PreloadLinkHandler)(i0.ɵɵinject(i1.RouterPreloader), i0.ɵɵinject(PrefetchRegistry));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: PreloadLinkHandler,\n factory: PreloadLinkHandler.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return PreloadLinkHandler;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet LinkDirective = /*#__PURE__*/(() => {\n class LinkDirective {\n constructor(linkHandlers, el, link, linkWithHref) {\n this.linkHandlers = linkHandlers;\n this.el = el;\n this.linkHandler = this.linkHandlers.filter(h => h.supported()).shift();\n this.rl = link || linkWithHref;\n if (this.element && this.element.setAttribute) {\n this.element.setAttribute('ngx-ql', '');\n }\n }\n ngOnChanges(c) {\n if (c['routerLink'] && this.linkHandler) {\n this.linkHandler.unregister(this);\n this.linkHandler.register(this);\n }\n }\n ngOnDestroy() {\n if (!this.linkHandler) {\n return;\n }\n this.linkHandler.unregister(this);\n }\n get element() {\n return this.el.nativeElement;\n }\n get urlTree() {\n return this.rl.urlTree;\n }\n static {\n this.ɵfac = function LinkDirective_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || LinkDirective)(i0.ɵɵdirectiveInject(LinkHandler), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.RouterLink, 8), i0.ɵɵdirectiveInject(i1.RouterLink, 8));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: LinkDirective,\n selectors: [[\"\", \"routerLink\", \"\"]],\n inputs: {\n routerLink: \"routerLink\"\n },\n features: [i0.ɵɵNgOnChangesFeature]\n });\n }\n }\n return LinkDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst findPath = (config, route) => {\n config = config.slice();\n const parent = new Map();\n const visited = new Set();\n while (config.length) {\n const el = config.shift();\n if (!el) {\n continue;\n }\n visited.add(el);\n if (el === route) break;\n let children = el.children || [];\n const current = el._loadedRoutes || [];\n for (const route of current) {\n if (route && route.children) {\n children = children.concat(route.children);\n }\n }\n children.forEach(r => {\n if (visited.has(r)) return;\n parent.set(r, el);\n config.push(r);\n });\n }\n let path = '';\n let current = route;\n while (current) {\n if (isPrimaryRoute(current)) {\n path = `/${current.path}${path}`;\n } else {\n path = `/(${current.outlet}:${current.path}${path})`;\n }\n current = parent.get(current);\n }\n // For routes with empty paths (the resulted string will look like `///section/sub-section`)\n return path.replace(/[\\/]+/, '/');\n};\nfunction isPrimaryRoute(route) {\n return route.outlet === PRIMARY_OUTLET || !route.outlet;\n}\nlet QuicklinkStrategy = /*#__PURE__*/(() => {\n class QuicklinkStrategy {\n constructor(registry, router) {\n this.registry = registry;\n this.router = router;\n this.loading = new Set();\n }\n preload(route, load) {\n if (this.loading.has(route)) {\n // Don't preload the same route twice\n return EMPTY;\n }\n const conn = typeof navigator !== 'undefined' ? navigator.connection : undefined;\n if (conn) {\n // Don't preload if the user is on 2G. or if Save-Data is enabled..\n if ((conn.effectiveType || '').includes('2g') || conn.saveData) return EMPTY;\n }\n // Prevent from preloading\n if (route.data && route.data['preload'] === false) {\n return EMPTY;\n }\n const fullPath = findPath(this.router.config, route);\n if (this.registry.shouldPrefetch(fullPath)) {\n this.loading.add(route);\n return load();\n }\n return EMPTY;\n }\n static {\n this.ɵfac = function QuicklinkStrategy_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || QuicklinkStrategy)(i0.ɵɵinject(PrefetchRegistry), i0.ɵɵinject(i1.Router));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: QuicklinkStrategy,\n factory: QuicklinkStrategy.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return QuicklinkStrategy;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nconst quicklinkProviders = [{\n provide: LinkHandler,\n useClass: ObservableLinkHandler,\n multi: true\n}, {\n provide: LinkHandler,\n useClass: PreloadLinkHandler,\n multi: true\n}, PrefetchRegistry, QuicklinkStrategy];\nlet QuicklinkModule = /*#__PURE__*/(() => {\n class QuicklinkModule {\n static {\n this.ɵfac = function QuicklinkModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || QuicklinkModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: QuicklinkModule\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n providers: quicklinkProviders\n });\n }\n }\n return QuicklinkModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of ngx-quicklink\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { LinkDirective as QuicklinkDirective, QuicklinkModule, QuicklinkStrategy, quicklinkProviders };\n","import * as i0 from '@angular/core';\nimport { InjectionToken, inject, ElementRef, ANIMATION_MODULE_TYPE, numberAttribute, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, NgModule } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { M as MatCommonModule } from './common-module-a39ee957.mjs';\nimport '@angular/cdk/a11y';\nimport '@angular/cdk/bidi';\n\n/** Injection token to be used to override the default options for `mat-progress-spinner`. */\nconst _c0 = [\"determinateSpinner\"];\nfunction MatProgressSpinner_ng_template_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(0, \"svg\", 11);\n i0.ɵɵelement(1, \"circle\", 12);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r0 = i0.ɵɵnextContext();\n i0.ɵɵattribute(\"viewBox\", ctx_r0._viewBox());\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"stroke-dasharray\", ctx_r0._strokeCircumference(), \"px\")(\"stroke-dashoffset\", ctx_r0._strokeCircumference() / 2, \"px\")(\"stroke-width\", ctx_r0._circleStrokeWidth(), \"%\");\n i0.ɵɵattribute(\"r\", ctx_r0._circleRadius());\n }\n}\nconst MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS = /*#__PURE__*/new InjectionToken('mat-progress-spinner-default-options', {\n providedIn: 'root',\n factory: MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY\n});\n/**\n * @docs-private\n * @deprecated No longer used, will be removed.\n * @breaking-change 21.0.0\n */\nfunction MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY() {\n return {\n diameter: BASE_SIZE\n };\n}\n/**\n * Base reference size of the spinner.\n */\nconst BASE_SIZE = 100;\n/**\n * Base reference stroke width of the spinner.\n */\nconst BASE_STROKE_WIDTH = 10;\nlet MatProgressSpinner = /*#__PURE__*/(() => {\n class MatProgressSpinner {\n _elementRef = inject(ElementRef);\n /** Whether the _mat-animation-noopable class should be applied, disabling animations. */\n _noopAnimations;\n // TODO: should be typed as `ThemePalette` but internal apps pass in arbitrary strings.\n /**\n * Theme color of the progress spinner. This API is supported in M2 themes only, it\n * has no effect in M3 themes. For color customization in M3, see https://material.angular.io/components/progress-spinner/styling.\n *\n * For information on applying color variants in M3, see\n * https://material.angular.io/guide/material-2-theming#optional-add-backwards-compatibility-styles-for-color-variants\n */\n get color() {\n return this._color || this._defaultColor;\n }\n set color(value) {\n this._color = value;\n }\n _color;\n _defaultColor = 'primary';\n /** The element of the determinate spinner. */\n _determinateCircle;\n constructor() {\n const animationMode = inject(ANIMATION_MODULE_TYPE, {\n optional: true\n });\n const defaults = inject(MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS);\n this._noopAnimations = animationMode === 'NoopAnimations' && !!defaults && !defaults._forceAnimations;\n this.mode = this._elementRef.nativeElement.nodeName.toLowerCase() === 'mat-spinner' ? 'indeterminate' : 'determinate';\n if (defaults) {\n if (defaults.color) {\n this.color = this._defaultColor = defaults.color;\n }\n if (defaults.diameter) {\n this.diameter = defaults.diameter;\n }\n if (defaults.strokeWidth) {\n this.strokeWidth = defaults.strokeWidth;\n }\n }\n }\n /**\n * Mode of the progress bar.\n *\n * Input must be one of these values: determinate, indeterminate, buffer, query, defaults to\n * 'determinate'.\n * Mirrored to mode attribute.\n */\n mode;\n /** Value of the progress bar. Defaults to zero. Mirrored to aria-valuenow. */\n get value() {\n return this.mode === 'determinate' ? this._value : 0;\n }\n set value(v) {\n this._value = Math.max(0, Math.min(100, v || 0));\n }\n _value = 0;\n /** The diameter of the progress spinner (will set width and height of svg). */\n get diameter() {\n return this._diameter;\n }\n set diameter(size) {\n this._diameter = size || 0;\n }\n _diameter = BASE_SIZE;\n /** Stroke width of the progress spinner. */\n get strokeWidth() {\n return this._strokeWidth ?? this.diameter / 10;\n }\n set strokeWidth(value) {\n this._strokeWidth = value || 0;\n }\n _strokeWidth;\n /** The radius of the spinner, adjusted for stroke width. */\n _circleRadius() {\n return (this.diameter - BASE_STROKE_WIDTH) / 2;\n }\n /** The view box of the spinner's svg element. */\n _viewBox() {\n const viewBox = this._circleRadius() * 2 + this.strokeWidth;\n return `0 0 ${viewBox} ${viewBox}`;\n }\n /** The stroke circumference of the svg circle. */\n _strokeCircumference() {\n return 2 * Math.PI * this._circleRadius();\n }\n /** The dash offset of the svg circle. */\n _strokeDashOffset() {\n if (this.mode === 'determinate') {\n return this._strokeCircumference() * (100 - this._value) / 100;\n }\n return null;\n }\n /** Stroke width of the circle in percent. */\n _circleStrokeWidth() {\n return this.strokeWidth / this.diameter * 100;\n }\n static ɵfac = function MatProgressSpinner_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatProgressSpinner)();\n };\n static ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: MatProgressSpinner,\n selectors: [[\"mat-progress-spinner\"], [\"mat-spinner\"]],\n viewQuery: function MatProgressSpinner_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 5);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx._determinateCircle = _t.first);\n }\n },\n hostAttrs: [\"role\", \"progressbar\", \"tabindex\", \"-1\", 1, \"mat-mdc-progress-spinner\", \"mdc-circular-progress\"],\n hostVars: 18,\n hostBindings: function MatProgressSpinner_HostBindings(rf, ctx) {\n if (rf & 2) {\n i0.ɵɵattribute(\"aria-valuemin\", 0)(\"aria-valuemax\", 100)(\"aria-valuenow\", ctx.mode === \"determinate\" ? ctx.value : null)(\"mode\", ctx.mode);\n i0.ɵɵclassMap(\"mat-\" + ctx.color);\n i0.ɵɵstyleProp(\"width\", ctx.diameter, \"px\")(\"height\", ctx.diameter, \"px\")(\"--mdc-circular-progress-size\", ctx.diameter + \"px\")(\"--mdc-circular-progress-active-indicator-width\", ctx.diameter + \"px\");\n i0.ɵɵclassProp(\"_mat-animation-noopable\", ctx._noopAnimations)(\"mdc-circular-progress--indeterminate\", ctx.mode === \"indeterminate\");\n }\n },\n inputs: {\n color: \"color\",\n mode: \"mode\",\n value: [2, \"value\", \"value\", numberAttribute],\n diameter: [2, \"diameter\", \"diameter\", numberAttribute],\n strokeWidth: [2, \"strokeWidth\", \"strokeWidth\", numberAttribute]\n },\n exportAs: [\"matProgressSpinner\"],\n decls: 14,\n vars: 11,\n consts: [[\"circle\", \"\"], [\"determinateSpinner\", \"\"], [\"aria-hidden\", \"true\", 1, \"mdc-circular-progress__determinate-container\"], [\"xmlns\", \"http://www.w3.org/2000/svg\", \"focusable\", \"false\", 1, \"mdc-circular-progress__determinate-circle-graphic\"], [\"cx\", \"50%\", \"cy\", \"50%\", 1, \"mdc-circular-progress__determinate-circle\"], [\"aria-hidden\", \"true\", 1, \"mdc-circular-progress__indeterminate-container\"], [1, \"mdc-circular-progress__spinner-layer\"], [1, \"mdc-circular-progress__circle-clipper\", \"mdc-circular-progress__circle-left\"], [3, \"ngTemplateOutlet\"], [1, \"mdc-circular-progress__gap-patch\"], [1, \"mdc-circular-progress__circle-clipper\", \"mdc-circular-progress__circle-right\"], [\"xmlns\", \"http://www.w3.org/2000/svg\", \"focusable\", \"false\", 1, \"mdc-circular-progress__indeterminate-circle-graphic\"], [\"cx\", \"50%\", \"cy\", \"50%\"]],\n template: function MatProgressSpinner_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, MatProgressSpinner_ng_template_0_Template, 2, 8, \"ng-template\", null, 0, i0.ɵɵtemplateRefExtractor);\n i0.ɵɵelementStart(2, \"div\", 2, 1);\n i0.ɵɵnamespaceSVG();\n i0.ɵɵelementStart(4, \"svg\", 3);\n i0.ɵɵelement(5, \"circle\", 4);\n i0.ɵɵelementEnd()();\n i0.ɵɵnamespaceHTML();\n i0.ɵɵelementStart(6, \"div\", 5)(7, \"div\", 6)(8, \"div\", 7);\n i0.ɵɵelementContainer(9, 8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(10, \"div\", 9);\n i0.ɵɵelementContainer(11, 8);\n i0.ɵɵelementEnd();\n i0.ɵɵelementStart(12, \"div\", 10);\n i0.ɵɵelementContainer(13, 8);\n i0.ɵɵelementEnd()()();\n }\n if (rf & 2) {\n const circle_r2 = i0.ɵɵreference(1);\n i0.ɵɵadvance(4);\n i0.ɵɵattribute(\"viewBox\", ctx._viewBox());\n i0.ɵɵadvance();\n i0.ɵɵstyleProp(\"stroke-dasharray\", ctx._strokeCircumference(), \"px\")(\"stroke-dashoffset\", ctx._strokeDashOffset(), \"px\")(\"stroke-width\", ctx._circleStrokeWidth(), \"%\");\n i0.ɵɵattribute(\"r\", ctx._circleRadius());\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n i0.ɵɵadvance(2);\n i0.ɵɵproperty(\"ngTemplateOutlet\", circle_r2);\n }\n },\n dependencies: [NgTemplateOutlet],\n styles: [\".mat-mdc-progress-spinner{display:block;overflow:hidden;line-height:0;position:relative;direction:ltr;transition:opacity 250ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-progress-spinner circle{stroke-width:var(--mdc-circular-progress-active-indicator-width, 4px)}.mat-mdc-progress-spinner._mat-animation-noopable,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__determinate-circle{transition:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__spinner-layer,.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container{animation:none !important}.mat-mdc-progress-spinner._mat-animation-noopable .mdc-circular-progress__indeterminate-container circle{stroke-dasharray:0 !important}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic,.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle{stroke:currentColor;stroke:CanvasText}}.mdc-circular-progress__determinate-container,.mdc-circular-progress__indeterminate-circle-graphic,.mdc-circular-progress__indeterminate-container,.mdc-circular-progress__spinner-layer{position:absolute;width:100%;height:100%}.mdc-circular-progress__determinate-container{transform:rotate(-90deg)}.mdc-circular-progress--indeterminate .mdc-circular-progress__determinate-container{opacity:0}.mdc-circular-progress__indeterminate-container{font-size:0;letter-spacing:0;white-space:nowrap;opacity:0}.mdc-circular-progress--indeterminate .mdc-circular-progress__indeterminate-container{opacity:1;animation:mdc-circular-progress-container-rotate 1568.2352941176ms linear infinite}.mdc-circular-progress__determinate-circle-graphic,.mdc-circular-progress__indeterminate-circle-graphic{fill:rgba(0,0,0,0)}.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:var(--mdc-circular-progress-active-indicator-color, var(--mat-sys-primary))}@media(forced-colors: active){.mat-mdc-progress-spinner .mdc-circular-progress__determinate-circle,.mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-circle-graphic{stroke:CanvasText}}.mdc-circular-progress__determinate-circle{transition:stroke-dashoffset 500ms cubic-bezier(0, 0, 0.2, 1)}.mdc-circular-progress__gap-patch{position:absolute;top:0;left:47.5%;box-sizing:border-box;width:5%;height:100%;overflow:hidden}.mdc-circular-progress__gap-patch .mdc-circular-progress__indeterminate-circle-graphic{left:-900%;width:2000%;transform:rotate(180deg)}.mdc-circular-progress__circle-clipper .mdc-circular-progress__indeterminate-circle-graphic{width:200%}.mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{left:-100%}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-left .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-left-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress--indeterminate .mdc-circular-progress__circle-right .mdc-circular-progress__indeterminate-circle-graphic{animation:mdc-circular-progress-right-spin 1333ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}.mdc-circular-progress__circle-clipper{display:inline-flex;position:relative;width:50%;height:100%;overflow:hidden}.mdc-circular-progress--indeterminate .mdc-circular-progress__spinner-layer{animation:mdc-circular-progress-spinner-layer-rotate 5332ms cubic-bezier(0.4, 0, 0.2, 1) infinite both}@keyframes mdc-circular-progress-container-rotate{to{transform:rotate(360deg)}}@keyframes mdc-circular-progress-spinner-layer-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes mdc-circular-progress-left-spin{from{transform:rotate(265deg)}50%{transform:rotate(130deg)}to{transform:rotate(265deg)}}@keyframes mdc-circular-progress-right-spin{from{transform:rotate(-265deg)}50%{transform:rotate(-130deg)}to{transform:rotate(-265deg)}}\"],\n encapsulation: 2,\n changeDetection: 0\n });\n }\n return MatProgressSpinner;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n/**\n * @deprecated Import Progress Spinner instead. Note that the\n * `mat-spinner` selector isn't deprecated.\n * @breaking-change 16.0.0\n */\n// tslint:disable-next-line:variable-name\nconst MatSpinner = MatProgressSpinner;\nlet MatProgressSpinnerModule = /*#__PURE__*/(() => {\n class MatProgressSpinnerModule {\n static ɵfac = function MatProgressSpinnerModule_Factory(__ngFactoryType__) {\n return new (__ngFactoryType__ || MatProgressSpinnerModule)();\n };\n static ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: MatProgressSpinnerModule\n });\n static ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [MatCommonModule]\n });\n }\n return MatProgressSpinnerModule;\n})();\n/*#__PURE__*/(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nexport { MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS, MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, MatProgressSpinner, MatProgressSpinnerModule, MatSpinner };\n","export function isAuthorized(status, handlerType, logger) {\n const loggerHandler = logger.getHandler();\n const sanitizedHandlerType = Array.isArray(loggerHandler) ? loggerHandler : [loggerHandler];\n return STATUS_PRIORITIES[status] >= STATUS_PRIORITIES[logger.getLevel()] && sanitizedHandlerType.includes(handlerType);\n}\nexport const StatusType = {\n ok: 'ok',\n debug: 'debug',\n info: 'info',\n notice: 'notice',\n warn: 'warn',\n error: 'error',\n critical: 'critical',\n alert: 'alert',\n emerg: 'emerg'\n};\nexport const STATUS_PRIORITIES = {\n [StatusType.ok]: 0,\n [StatusType.debug]: 1,\n [StatusType.info]: 2,\n [StatusType.notice]: 4,\n [StatusType.warn]: 5,\n [StatusType.error]: 6,\n [StatusType.critical]: 7,\n [StatusType.alert]: 8,\n [StatusType.emerg]: 9\n};\n","export function createErrorFieldFromRawError(rawError, {\n /**\n * Set this to `true` to include the error message in the error field. In most cases, the error\n * message is already included in the log message, so we don't need to include it again.\n */\n includeMessage = false\n} = {}) {\n return {\n stack: rawError.stack,\n kind: rawError.type,\n message: includeMessage ? rawError.message : undefined,\n causes: rawError.causes,\n fingerprint: rawError.fingerprint,\n handling: rawError.handling\n };\n}\n","var __decorate = this && this.__decorate || function (decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nimport { clocksNow, computeRawError, computeStackTrace, combine, createContextManager, ErrorSource, monitored, sanitize, createHandlingStack, isError } from '@datadog/browser-core';\nimport { isAuthorized, StatusType } from './logger/isAuthorized';\nimport { createErrorFieldFromRawError } from './createErrorFieldFromRawError';\nexport const HandlerType = {\n console: 'console',\n http: 'http',\n silent: 'silent'\n};\nexport const STATUSES = Object.keys(StatusType);\n// note: it is safe to merge declarations as long as the methods are actually defined on the prototype\n// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging, no-restricted-syntax\nexport class Logger {\n constructor(handleLogStrategy, customerDataTracker, name, handlerType = HandlerType.http, level = StatusType.debug, loggerContext = {}) {\n this.handleLogStrategy = handleLogStrategy;\n this.handlerType = handlerType;\n this.level = level;\n this.contextManager = createContextManager('logger', {\n customerDataTracker\n });\n this.contextManager.setContext(loggerContext);\n if (name) {\n this.contextManager.setContextProperty('logger', {\n name\n });\n }\n }\n logImplementation(message, messageContext, status = StatusType.info, error, handlingStack) {\n const sanitizedMessageContext = sanitize(messageContext);\n let context;\n if (error !== undefined && error !== null) {\n const rawError = computeRawError({\n stackTrace: isError(error) ? computeStackTrace(error) : undefined,\n originalError: error,\n nonErrorPrefix: \"Provided\" /* NonErrorPrefix.PROVIDED */,\n source: ErrorSource.LOGGER,\n handling: \"handled\" /* ErrorHandling.HANDLED */,\n startClocks: clocksNow()\n });\n context = combine({\n error: createErrorFieldFromRawError(rawError, {\n includeMessage: true\n })\n }, sanitizedMessageContext);\n } else {\n context = sanitizedMessageContext;\n }\n this.handleLogStrategy({\n message: sanitize(message),\n context,\n status\n }, this, handlingStack);\n }\n log(message, messageContext, status = StatusType.info, error) {\n let handlingStack;\n if (isAuthorized(status, HandlerType.http, this)) {\n handlingStack = createHandlingStack('log');\n }\n this.logImplementation(message, messageContext, status, error, handlingStack);\n }\n setContext(context) {\n this.contextManager.setContext(context);\n }\n getContext() {\n return this.contextManager.getContext();\n }\n setContextProperty(key, value) {\n this.contextManager.setContextProperty(key, value);\n }\n removeContextProperty(key) {\n this.contextManager.removeContextProperty(key);\n }\n clearContext() {\n this.contextManager.clearContext();\n }\n setHandler(handler) {\n this.handlerType = handler;\n }\n getHandler() {\n return this.handlerType;\n }\n setLevel(level) {\n this.level = level;\n }\n getLevel() {\n return this.level;\n }\n}\n__decorate([monitored], Logger.prototype, \"logImplementation\", null);\n/* eslint-disable local-rules/disallow-side-effects */\nLogger.prototype.ok = createLoggerMethod(StatusType.ok);\nLogger.prototype.debug = createLoggerMethod(StatusType.debug);\nLogger.prototype.info = createLoggerMethod(StatusType.info);\nLogger.prototype.notice = createLoggerMethod(StatusType.notice);\nLogger.prototype.warn = createLoggerMethod(StatusType.warn);\nLogger.prototype.error = createLoggerMethod(StatusType.error);\nLogger.prototype.critical = createLoggerMethod(StatusType.critical);\nLogger.prototype.alert = createLoggerMethod(StatusType.alert);\nLogger.prototype.emerg = createLoggerMethod(StatusType.emerg);\nfunction createLoggerMethod(status) {\n return function (message, messageContext, error) {\n let handlingStack;\n if (isAuthorized(status, HandlerType.http, this)) {\n handlingStack = createHandlingStack('log');\n }\n this.logImplementation(message, messageContext, status, error, handlingStack);\n };\n}\n","export function buildCommonContext(globalContextManager, userContextManager, accountContextManager) {\n return {\n view: {\n referrer: document.referrer,\n url: window.location.href\n },\n context: globalContextManager.getContext(),\n user: userContextManager.getContext(),\n account: accountContextManager.getContext()\n };\n}\n","import { serializeConfiguration, ONE_KIBI_BYTE, validateAndBuildConfiguration, display, removeDuplicates, ConsoleApiName, RawReportType, objectValues } from '@datadog/browser-core';\n/**\n * arbitrary value, byte precision not needed\n */\nexport const DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT = 32 * ONE_KIBI_BYTE;\nexport function validateAndBuildLogsConfiguration(initConfiguration) {\n if (initConfiguration.usePciIntake === true && initConfiguration.site && initConfiguration.site !== 'datadoghq.com') {\n display.warn('PCI compliance for Logs is only available for Datadog organizations in the US1 site. Default intake will be used.');\n }\n const baseConfiguration = validateAndBuildConfiguration(initConfiguration);\n const forwardConsoleLogs = validateAndBuildForwardOption(initConfiguration.forwardConsoleLogs, objectValues(ConsoleApiName), 'Forward Console Logs');\n const forwardReports = validateAndBuildForwardOption(initConfiguration.forwardReports, objectValues(RawReportType), 'Forward Reports');\n if (!baseConfiguration || !forwardConsoleLogs || !forwardReports) {\n return;\n }\n if (initConfiguration.forwardErrorsToLogs && !forwardConsoleLogs.includes(ConsoleApiName.error)) {\n forwardConsoleLogs.push(ConsoleApiName.error);\n }\n return {\n forwardErrorsToLogs: initConfiguration.forwardErrorsToLogs !== false,\n forwardConsoleLogs,\n forwardReports,\n requestErrorResponseLengthLimit: DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT,\n ...baseConfiguration\n };\n}\nexport function validateAndBuildForwardOption(option, allowedValues, label) {\n if (option === undefined) {\n return [];\n }\n if (!(option === 'all' || Array.isArray(option) && option.every(api => allowedValues.includes(api)))) {\n display.error(`${label} should be \"all\" or an array with allowed values \"${allowedValues.join('\", \"')}\"`);\n return;\n }\n return option === 'all' ? allowedValues : removeDuplicates(option);\n}\nexport function serializeLogsConfiguration(configuration) {\n const baseSerializedInitConfiguration = serializeConfiguration(configuration);\n return {\n forward_errors_to_logs: configuration.forwardErrorsToLogs,\n forward_console_logs: configuration.forwardConsoleLogs,\n forward_reports: configuration.forwardReports,\n use_pci_intake: configuration.usePciIntake,\n ...baseSerializedInitConfiguration\n };\n}\n","import { createBoundedBuffer, canUseEventBridge, display, displayAlreadyInitializedError, initFeatureFlags, initFetchObservable, noop, timeStampNow } from '@datadog/browser-core';\nimport { validateAndBuildLogsConfiguration } from '../domain/configuration';\nexport function createPreStartStrategy(getCommonContext, trackingConsentState, doStartLogs) {\n const bufferApiCalls = createBoundedBuffer();\n let cachedInitConfiguration;\n let cachedConfiguration;\n const trackingConsentStateSubscription = trackingConsentState.observable.subscribe(tryStartLogs);\n function tryStartLogs() {\n if (!cachedConfiguration || !cachedInitConfiguration || !trackingConsentState.isGranted()) {\n return;\n }\n trackingConsentStateSubscription.unsubscribe();\n const startLogsResult = doStartLogs(cachedInitConfiguration, cachedConfiguration);\n bufferApiCalls.drain(startLogsResult);\n }\n return {\n init(initConfiguration) {\n if (!initConfiguration) {\n display.error('Missing configuration');\n return;\n }\n // Set the experimental feature flags as early as possible, so we can use them in most places\n initFeatureFlags(initConfiguration.enableExperimentalFeatures);\n if (canUseEventBridge()) {\n initConfiguration = overrideInitConfigurationForBridge(initConfiguration);\n }\n // Expose the initial configuration regardless of initialization success.\n cachedInitConfiguration = initConfiguration;\n if (cachedConfiguration) {\n displayAlreadyInitializedError('DD_LOGS', initConfiguration);\n return;\n }\n const configuration = validateAndBuildLogsConfiguration(initConfiguration);\n if (!configuration) {\n return;\n }\n cachedConfiguration = configuration;\n // Instrumuent fetch to track network requests\n // This is needed in case the consent is not granted and some cutsomer\n // library (Apollo Client) is storing uninstrumented fetch to be used later\n // The subscrption is needed so that the instrumentation process is completed\n initFetchObservable().subscribe(noop);\n trackingConsentState.tryToInit(configuration.trackingConsent);\n tryStartLogs();\n },\n get initConfiguration() {\n return cachedInitConfiguration;\n },\n getInternalContext: noop,\n handleLog(message, statusType, handlingStack, context = getCommonContext(), date = timeStampNow()) {\n bufferApiCalls.add(startLogsResult => startLogsResult.handleLog(message, statusType, handlingStack, context, date));\n }\n };\n}\nfunction overrideInitConfigurationForBridge(initConfiguration) {\n return {\n ...initConfiguration,\n clientToken: 'empty'\n };\n}\n","import { addTelemetryUsage, createContextManager, makePublicApi, monitor, sanitize, createCustomerDataTrackerManager, storeContextManager, displayAlreadyInitializedError, deepClone, createTrackingConsentState } from '@datadog/browser-core';\nimport { Logger } from '../domain/logger';\nimport { buildCommonContext } from '../domain/contexts/commonContext';\nimport { createPreStartStrategy } from './preStartLogs';\nconst LOGS_STORAGE_KEY = 'logs';\nexport function makeLogsPublicApi(startLogsImpl) {\n const customerDataTrackerManager = createCustomerDataTrackerManager();\n const globalContextManager = createContextManager('global context', {\n customerDataTracker: customerDataTrackerManager.getOrCreateTracker(2 /* CustomerDataType.GlobalContext */)\n });\n const userContextManager = createContextManager('user', {\n customerDataTracker: customerDataTrackerManager.getOrCreateTracker(1 /* CustomerDataType.User */),\n propertiesConfig: {\n id: {\n type: 'string'\n },\n name: {\n type: 'string'\n },\n email: {\n type: 'string'\n }\n }\n });\n const accountContextManager = createContextManager('account', {\n customerDataTracker: customerDataTrackerManager.getOrCreateTracker(1 /* CustomerDataType.User */),\n propertiesConfig: {\n id: {\n type: 'string',\n required: true\n },\n name: {\n type: 'string'\n }\n }\n });\n const trackingConsentState = createTrackingConsentState();\n function getCommonContext() {\n return buildCommonContext(globalContextManager, userContextManager, accountContextManager);\n }\n let strategy = createPreStartStrategy(getCommonContext, trackingConsentState, (initConfiguration, configuration) => {\n if (initConfiguration.storeContextsAcrossPages) {\n storeContextManager(configuration, globalContextManager, LOGS_STORAGE_KEY, 2 /* CustomerDataType.GlobalContext */);\n storeContextManager(configuration, userContextManager, LOGS_STORAGE_KEY, 1 /* CustomerDataType.User */);\n storeContextManager(configuration, accountContextManager, LOGS_STORAGE_KEY, 4 /* CustomerDataType.Account */);\n }\n const startLogsResult = startLogsImpl(initConfiguration, configuration, getCommonContext, trackingConsentState);\n strategy = createPostStartStrategy(initConfiguration, startLogsResult);\n return startLogsResult;\n });\n const customLoggers = {};\n const mainLogger = new Logger((...params) => strategy.handleLog(...params), customerDataTrackerManager.createDetachedTracker());\n return makePublicApi({\n logger: mainLogger,\n init: monitor(initConfiguration => strategy.init(initConfiguration)),\n setTrackingConsent: monitor(trackingConsent => {\n trackingConsentState.update(trackingConsent);\n addTelemetryUsage({\n feature: 'set-tracking-consent',\n tracking_consent: trackingConsent\n });\n }),\n getGlobalContext: monitor(() => globalContextManager.getContext()),\n setGlobalContext: monitor(context => globalContextManager.setContext(context)),\n setGlobalContextProperty: monitor((key, value) => globalContextManager.setContextProperty(key, value)),\n removeGlobalContextProperty: monitor(key => globalContextManager.removeContextProperty(key)),\n clearGlobalContext: monitor(() => globalContextManager.clearContext()),\n createLogger: monitor((name, conf = {}) => {\n customLoggers[name] = new Logger((...params) => strategy.handleLog(...params), customerDataTrackerManager.createDetachedTracker(), sanitize(name), conf.handler, conf.level, sanitize(conf.context));\n return customLoggers[name];\n }),\n getLogger: monitor(name => customLoggers[name]),\n getInitConfiguration: monitor(() => deepClone(strategy.initConfiguration)),\n getInternalContext: monitor(startTime => strategy.getInternalContext(startTime)),\n setUser: monitor(userContextManager.setContext),\n getUser: monitor(userContextManager.getContext),\n setUserProperty: monitor(userContextManager.setContextProperty),\n removeUserProperty: monitor(userContextManager.removeContextProperty),\n clearUser: monitor(userContextManager.clearContext),\n setAccount: monitor(accountContextManager.setContext),\n getAccount: monitor(accountContextManager.getContext),\n setAccountProperty: monitor(accountContextManager.setContextProperty),\n removeAccountProperty: monitor(accountContextManager.removeContextProperty),\n clearAccount: monitor(accountContextManager.clearContext)\n });\n}\nfunction createPostStartStrategy(initConfiguration, startLogsResult) {\n return {\n init: initConfiguration => {\n displayAlreadyInitializedError('DD_LOGS', initConfiguration);\n },\n initConfiguration,\n ...startLogsResult\n };\n}\n","import { Observable, performDraw, startSessionManager } from '@datadog/browser-core';\nexport const LOGS_SESSION_KEY = 'logs';\nexport function startLogsSessionManager(configuration, trackingConsentState) {\n const sessionManager = startSessionManager(configuration, LOGS_SESSION_KEY, rawTrackingType => computeSessionState(configuration, rawTrackingType), trackingConsentState);\n return {\n findTrackedSession: (startTime, options = {\n returnInactive: false\n }) => {\n const session = sessionManager.findSession(startTime, options);\n return session && session.trackingType === \"1\" /* LoggerTrackingType.TRACKED */ ? {\n id: session.id,\n anonymousId: session.anonymousId\n } : undefined;\n },\n expireObservable: sessionManager.expireObservable\n };\n}\nexport function startLogsSessionManagerStub(configuration) {\n const isTracked = computeTrackingType(configuration) === \"1\" /* LoggerTrackingType.TRACKED */;\n const session = isTracked ? {} : undefined;\n return {\n findTrackedSession: () => session,\n expireObservable: new Observable()\n };\n}\nfunction computeTrackingType(configuration) {\n if (!performDraw(configuration.sessionSampleRate)) {\n return \"0\" /* LoggerTrackingType.NOT_TRACKED */;\n }\n return \"1\" /* LoggerTrackingType.TRACKED */;\n}\nfunction computeSessionState(configuration, rawSessionType) {\n const trackingType = hasValidLoggerSession(rawSessionType) ? rawSessionType : computeTrackingType(configuration);\n return {\n trackingType,\n isTracked: trackingType === \"1\" /* LoggerTrackingType.TRACKED */\n };\n}\nfunction hasValidLoggerSession(trackingType) {\n return trackingType === \"0\" /* LoggerTrackingType.NOT_TRACKED */ || trackingType === \"1\" /* LoggerTrackingType.TRACKED */;\n}\n","import { willSyntheticsInjectRum, addTelemetryDebug, getSyntheticsTestId, getSyntheticsResultId } from '@datadog/browser-core';\nlet logsSentBeforeRumInjectionTelemetryAdded = false;\nexport function getRUMInternalContext(startTime) {\n const browserWindow = window;\n if (willSyntheticsInjectRum()) {\n const context = getInternalContextFromRumGlobal(browserWindow.DD_RUM_SYNTHETICS);\n if (!context && !logsSentBeforeRumInjectionTelemetryAdded) {\n logsSentBeforeRumInjectionTelemetryAdded = true;\n addTelemetryDebug('Logs sent before RUM is injected by the synthetics worker', {\n testId: getSyntheticsTestId(),\n resultId: getSyntheticsResultId()\n });\n }\n return context;\n }\n return getInternalContextFromRumGlobal(browserWindow.DD_RUM);\n function getInternalContextFromRumGlobal(rumGlobal) {\n if (rumGlobal && rumGlobal.getInternalContext) {\n return rumGlobal.getInternalContext(startTime);\n }\n }\n}\nexport function resetRUMInternalContext() {\n logsSentBeforeRumInjectionTelemetryAdded = false;\n}\n","import { ErrorSource, combine, createEventRateLimiter, getRelativeTime, isEmptyObject } from '@datadog/browser-core';\nimport { STATUSES } from './logger';\nimport { getRUMInternalContext } from './contexts/rumInternalContext';\nexport function startLogsAssembly(sessionManager, configuration, lifeCycle, getCommonContext, reportError) {\n const statusWithCustom = STATUSES.concat(['custom']);\n const logRateLimiters = {};\n statusWithCustom.forEach(status => {\n logRateLimiters[status] = createEventRateLimiter(status, configuration.eventRateLimiterThreshold, reportError);\n });\n lifeCycle.subscribe(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, ({\n rawLogsEvent,\n messageContext = undefined,\n savedCommonContext = undefined,\n domainContext\n }) => {\n var _a, _b;\n const startTime = getRelativeTime(rawLogsEvent.date);\n const session = sessionManager.findTrackedSession(startTime);\n const shouldSendLog = sessionManager.findTrackedSession(startTime, {\n returnInactive: true\n });\n if (!shouldSendLog) {\n return;\n }\n const commonContext = savedCommonContext || getCommonContext();\n let account;\n if (!isEmptyObject(commonContext.account) && commonContext.account.id) {\n account = commonContext.account;\n }\n if (session && session.anonymousId && !commonContext.user.anonymous_id) {\n commonContext.user.anonymous_id = session.anonymousId;\n }\n const log = combine({\n service: configuration.service,\n session_id: session ? session.id : undefined,\n session: session ? {\n id: session.id\n } : undefined,\n // Insert user and account first to allow overrides from global context\n usr: !isEmptyObject(commonContext.user) ? commonContext.user : undefined,\n account,\n view: commonContext.view\n }, commonContext.context, getRUMInternalContext(startTime), rawLogsEvent, messageContext);\n if (((_a = configuration.beforeSend) === null || _a === void 0 ? void 0 : _a.call(configuration, log, domainContext)) === false || log.origin !== ErrorSource.AGENT && ((_b = logRateLimiters[log.status]) !== null && _b !== void 0 ? _b : logRateLimiters['custom']).isLimitReached()) {\n return;\n }\n lifeCycle.notify(1 /* LifeCycleEventType.LOG_COLLECTED */, log);\n });\n}\n","import { timeStampNow, ConsoleApiName, ErrorSource, initConsoleObservable } from '@datadog/browser-core';\nimport { StatusType } from '../logger/isAuthorized';\nimport { createErrorFieldFromRawError } from '../createErrorFieldFromRawError';\nexport const LogStatusForApi = {\n [ConsoleApiName.log]: StatusType.info,\n [ConsoleApiName.debug]: StatusType.debug,\n [ConsoleApiName.info]: StatusType.info,\n [ConsoleApiName.warn]: StatusType.warn,\n [ConsoleApiName.error]: StatusType.error\n};\nexport function startConsoleCollection(configuration, lifeCycle) {\n const consoleSubscription = initConsoleObservable(configuration.forwardConsoleLogs).subscribe(log => {\n var _a;\n const collectedData = {\n rawLogsEvent: {\n date: timeStampNow(),\n message: log.message,\n origin: ErrorSource.CONSOLE,\n error: log.error && createErrorFieldFromRawError(log.error),\n status: LogStatusForApi[log.api]\n },\n messageContext: (_a = log.error) === null || _a === void 0 ? void 0 : _a.context,\n domainContext: {\n handlingStack: log.handlingStack\n }\n };\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, collectedData);\n });\n return {\n stop: () => {\n consoleSubscription.unsubscribe();\n }\n };\n}\n","import { timeStampNow, ErrorSource, getFileFromStackTraceString, initReportObservable } from '@datadog/browser-core';\nimport { StatusType } from '../logger/isAuthorized';\nimport { createErrorFieldFromRawError } from '../createErrorFieldFromRawError';\nexport function startReportCollection(configuration, lifeCycle) {\n const reportSubscription = initReportObservable(configuration, configuration.forwardReports).subscribe(rawError => {\n let message = rawError.message;\n let error;\n const status = rawError.originalError.type === 'deprecation' ? StatusType.warn : StatusType.error;\n if (status === StatusType.error) {\n error = createErrorFieldFromRawError(rawError);\n } else if (rawError.stack) {\n message += ` Found in ${getFileFromStackTraceString(rawError.stack)}`;\n }\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n date: timeStampNow(),\n message,\n origin: ErrorSource.REPORT,\n error,\n status\n }\n });\n });\n return {\n stop: () => {\n reportSubscription.unsubscribe();\n }\n };\n}\n","import { ErrorSource, initXhrObservable, initFetchObservable, computeStackTrace, toStackTraceString, monitor, noop, readBytesFromStream, tryToClone, isServerError, isIntakeUrl } from '@datadog/browser-core';\nimport { StatusType } from '../logger/isAuthorized';\nexport function startNetworkErrorCollection(configuration, lifeCycle) {\n if (!configuration.forwardErrorsToLogs) {\n return {\n stop: noop\n };\n }\n const xhrSubscription = initXhrObservable(configuration).subscribe(context => {\n if (context.state === 'complete') {\n handleResponse(\"xhr\" /* RequestType.XHR */, context);\n }\n });\n const fetchSubscription = initFetchObservable().subscribe(context => {\n if (context.state === 'resolve') {\n handleResponse(\"fetch\" /* RequestType.FETCH */, context);\n }\n });\n function handleResponse(type, request) {\n if (!isIntakeUrl(request.url) && (isRejected(request) || isServerError(request.status))) {\n if ('xhr' in request) {\n computeXhrResponseData(request.xhr, configuration, onResponseDataAvailable);\n } else if (request.response) {\n computeFetchResponseText(request.response, configuration, onResponseDataAvailable);\n } else if (request.error) {\n computeFetchErrorText(request.error, configuration, onResponseDataAvailable);\n }\n }\n function onResponseDataAvailable(responseData) {\n const domainContext = {\n isAborted: request.isAborted,\n handlingStack: request.handlingStack\n };\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n message: `${format(type)} error ${request.method} ${request.url}`,\n date: request.startClocks.timeStamp,\n error: {\n stack: responseData || 'Failed to load',\n // We don't know if the error was handled or not, so we set it to undefined\n handling: undefined\n },\n http: {\n method: request.method,\n // Cast resource method because of case mismatch cf issue RUMF-1152\n status_code: request.status,\n url: request.url\n },\n status: StatusType.error,\n origin: ErrorSource.NETWORK\n },\n domainContext\n });\n }\n }\n return {\n stop: () => {\n xhrSubscription.unsubscribe();\n fetchSubscription.unsubscribe();\n }\n };\n}\n// TODO: ideally, computeXhrResponseData should always call the callback with a string instead of\n// `unknown`. But to keep backward compatibility, in the case of XHR with a `responseType` different\n// than \"text\", the response data should be whatever `xhr.response` is. This is a bit confusing as\n// Logs event 'stack' is expected to be a string. This should be changed in a future major version\n// as it could be a breaking change.\nexport function computeXhrResponseData(xhr, configuration, callback) {\n if (typeof xhr.response === 'string') {\n callback(truncateResponseText(xhr.response, configuration));\n } else {\n callback(xhr.response);\n }\n}\nexport function computeFetchErrorText(error, configuration, callback) {\n callback(truncateResponseText(toStackTraceString(computeStackTrace(error)), configuration));\n}\nexport function computeFetchResponseText(response, configuration, callback) {\n const clonedResponse = tryToClone(response);\n if (!clonedResponse || !clonedResponse.body) {\n // if the clone failed or if the body is null, let's not try to read it.\n callback();\n } else if (!window.TextDecoder) {\n // If the browser doesn't support TextDecoder, let's read the whole response then truncate it.\n //\n // This should only be the case on early versions of Edge (before they migrated to Chromium).\n // Even if it could be possible to implement a workaround for the missing TextDecoder API (using\n // a Blob and FileReader), we found another issue preventing us from reading only the first\n // bytes from the response: contrary to other browsers, when reading from the cloned response,\n // if the original response gets canceled, the cloned response is also canceled and we can't\n // know about it. In the following illustration, the promise returned by `reader.read()` may\n // never be fulfilled:\n //\n // fetch('/').then((response) => {\n // const reader = response.clone().body.getReader()\n // readMore()\n // function readMore() {\n // reader.read().then(\n // (result) => {\n // if (result.done) {\n // console.log('done')\n // } else {\n // readMore()\n // }\n // },\n // () => console.log('error')\n // )\n // }\n // response.body.getReader().cancel()\n // })\n clonedResponse.text().then(monitor(text => callback(truncateResponseText(text, configuration))), monitor(error => callback(`Unable to retrieve response: ${error}`)));\n } else {\n truncateResponseStream(clonedResponse.body, configuration.requestErrorResponseLengthLimit, (error, responseText) => {\n if (error) {\n callback(`Unable to retrieve response: ${error}`);\n } else {\n callback(responseText);\n }\n });\n }\n}\nfunction isRejected(request) {\n return request.status === 0 && request.responseType !== 'opaque';\n}\nfunction truncateResponseText(responseText, configuration) {\n if (responseText.length > configuration.requestErrorResponseLengthLimit) {\n return `${responseText.substring(0, configuration.requestErrorResponseLengthLimit)}...`;\n }\n return responseText;\n}\nfunction format(type) {\n if (\"xhr\" /* RequestType.XHR */ === type) {\n return 'XHR';\n }\n return 'Fetch';\n}\nfunction truncateResponseStream(stream, bytesLimit, callback) {\n readBytesFromStream(stream, (error, bytes, limitExceeded) => {\n if (error) {\n callback(error);\n } else {\n let responseText = new TextDecoder().decode(bytes);\n if (limitExceeded) {\n responseText += '...';\n }\n callback(undefined, responseText);\n }\n }, {\n bytesLimit,\n collectStreamBody: true\n });\n}\n","import { noop, ErrorSource, trackRuntimeError, Observable } from '@datadog/browser-core';\nimport { StatusType } from '../logger/isAuthorized';\nimport { createErrorFieldFromRawError } from '../createErrorFieldFromRawError';\nexport function startRuntimeErrorCollection(configuration, lifeCycle) {\n if (!configuration.forwardErrorsToLogs) {\n return {\n stop: noop\n };\n }\n const rawErrorObservable = new Observable();\n const {\n stop: stopRuntimeErrorTracking\n } = trackRuntimeError(rawErrorObservable);\n const rawErrorSubscription = rawErrorObservable.subscribe(rawError => {\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n message: rawError.message,\n date: rawError.startClocks.timeStamp,\n error: createErrorFieldFromRawError(rawError),\n origin: ErrorSource.SOURCE,\n status: StatusType.error\n },\n messageContext: rawError.context\n });\n });\n return {\n stop: () => {\n stopRuntimeErrorTracking();\n rawErrorSubscription.unsubscribe();\n }\n };\n}\n","import { AbstractLifeCycle } from '@datadog/browser-core';\nexport const LifeCycle = AbstractLifeCycle;\n","import { combine, ErrorSource, timeStampNow, originalConsoleMethods, globalConsole, ConsoleApiName } from '@datadog/browser-core';\nimport { HandlerType } from '../logger';\nimport { isAuthorized, StatusType } from './isAuthorized';\nexport function startLoggerCollection(lifeCycle) {\n function handleLog(logsMessage, logger, handlingStack, savedCommonContext, savedDate) {\n const messageContext = combine(logger.getContext(), logsMessage.context);\n if (isAuthorized(logsMessage.status, HandlerType.console, logger)) {\n displayInConsole(logsMessage, messageContext);\n }\n if (isAuthorized(logsMessage.status, HandlerType.http, logger)) {\n const rawLogEventData = {\n rawLogsEvent: {\n date: savedDate || timeStampNow(),\n message: logsMessage.message,\n status: logsMessage.status,\n origin: ErrorSource.LOGGER\n },\n messageContext,\n savedCommonContext\n };\n if (handlingStack) {\n rawLogEventData.domainContext = {\n handlingStack\n };\n }\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, rawLogEventData);\n }\n }\n return {\n handleLog\n };\n}\nconst loggerToConsoleApiName = {\n [StatusType.ok]: ConsoleApiName.debug,\n [StatusType.debug]: ConsoleApiName.debug,\n [StatusType.info]: ConsoleApiName.info,\n [StatusType.notice]: ConsoleApiName.info,\n [StatusType.warn]: ConsoleApiName.warn,\n [StatusType.error]: ConsoleApiName.error,\n [StatusType.critical]: ConsoleApiName.error,\n [StatusType.alert]: ConsoleApiName.error,\n [StatusType.emerg]: ConsoleApiName.error\n};\nfunction displayInConsole({\n status,\n message\n}, messageContext) {\n originalConsoleMethods[loggerToConsoleApiName[status]].call(globalConsole, message, messageContext);\n}\n","import { createIdentityEncoder, startBatchWithReplica } from '@datadog/browser-core';\nexport function startLogsBatch(configuration, lifeCycle, reportError, pageMayExitObservable, session) {\n const batch = startBatchWithReplica(configuration, {\n endpoint: configuration.logsEndpointBuilder,\n encoder: createIdentityEncoder()\n }, configuration.replica && {\n endpoint: configuration.replica.logsEndpointBuilder,\n encoder: createIdentityEncoder()\n }, reportError, pageMayExitObservable, session.expireObservable);\n lifeCycle.subscribe(1 /* LifeCycleEventType.LOG_COLLECTED */, serverLogsEvent => {\n batch.add(serverLogsEvent);\n });\n return batch;\n}\n","import { getEventBridge } from '@datadog/browser-core';\nexport function startLogsBridge(lifeCycle) {\n const bridge = getEventBridge();\n lifeCycle.subscribe(1 /* LifeCycleEventType.LOG_COLLECTED */, serverLogsEvent => {\n bridge.send('log', serverLogsEvent);\n });\n}\n","export function startInternalContext(sessionManager) {\n return {\n get: startTime => {\n const trackedSession = sessionManager.findTrackedSession(startTime);\n if (trackedSession) {\n return {\n session_id: trackedSession.id\n };\n }\n }\n };\n}\n","import { ErrorSource, addTelemetryDebug } from '@datadog/browser-core';\nimport { StatusType } from './logger/isAuthorized';\nexport function startReportError(lifeCycle) {\n return error => {\n lifeCycle.notify(0 /* LifeCycleEventType.RAW_LOG_COLLECTED */, {\n rawLogsEvent: {\n message: error.message,\n date: error.startClocks.timeStamp,\n origin: ErrorSource.AGENT,\n status: StatusType.error\n }\n });\n addTelemetryDebug('Error reported to customer', {\n 'error.message': error.message\n });\n };\n}\n","import { startTelemetry, canUseEventBridge, getEventBridge, startBatchWithReplica, createIdentityEncoder, isTelemetryReplicationAllowed, addTelemetryConfiguration, drainPreStartTelemetry } from '@datadog/browser-core';\nimport { getRUMInternalContext } from './contexts/rumInternalContext';\nimport { serializeLogsConfiguration } from './configuration';\nexport function startLogsTelemetry(initConfiguration, configuration, reportError, pageMayExitObservable, session) {\n const telemetry = startTelemetry(\"browser-logs-sdk\" /* TelemetryService.LOGS */, configuration);\n telemetry.setContextProvider(() => {\n var _a, _b, _c, _d, _e, _f;\n return {\n application: {\n id: (_a = getRUMInternalContext()) === null || _a === void 0 ? void 0 : _a.application_id\n },\n session: {\n id: (_b = session.findTrackedSession()) === null || _b === void 0 ? void 0 : _b.id\n },\n view: {\n id: (_d = (_c = getRUMInternalContext()) === null || _c === void 0 ? void 0 : _c.view) === null || _d === void 0 ? void 0 : _d.id\n },\n action: {\n id: (_f = (_e = getRUMInternalContext()) === null || _e === void 0 ? void 0 : _e.user_action) === null || _f === void 0 ? void 0 : _f.id\n }\n };\n });\n const cleanupTasks = [];\n if (canUseEventBridge()) {\n const bridge = getEventBridge();\n const telemetrySubscription = telemetry.observable.subscribe(event => bridge.send('internal_telemetry', event));\n cleanupTasks.push(() => telemetrySubscription.unsubscribe());\n } else {\n const telemetryBatch = startBatchWithReplica(configuration, {\n endpoint: configuration.rumEndpointBuilder,\n encoder: createIdentityEncoder()\n }, configuration.replica && {\n endpoint: configuration.replica.rumEndpointBuilder,\n encoder: createIdentityEncoder()\n }, reportError, pageMayExitObservable, session.expireObservable);\n cleanupTasks.push(() => telemetryBatch.stop());\n const telemetrySubscription = telemetry.observable.subscribe(event => telemetryBatch.add(event, isTelemetryReplicationAllowed(configuration)));\n cleanupTasks.push(() => telemetrySubscription.unsubscribe());\n }\n drainPreStartTelemetry();\n addTelemetryConfiguration(serializeLogsConfiguration(initConfiguration));\n return {\n telemetry,\n stop: () => {\n cleanupTasks.forEach(task => task());\n }\n };\n}\n","import { sendToExtension, createPageMayExitObservable, willSyntheticsInjectRum, canUseEventBridge } from '@datadog/browser-core';\nimport { startLogsSessionManager, startLogsSessionManagerStub } from '../domain/logsSessionManager';\nimport { startLogsAssembly } from '../domain/assembly';\nimport { startConsoleCollection } from '../domain/console/consoleCollection';\nimport { startReportCollection } from '../domain/report/reportCollection';\nimport { startNetworkErrorCollection } from '../domain/networkError/networkErrorCollection';\nimport { startRuntimeErrorCollection } from '../domain/runtimeError/runtimeErrorCollection';\nimport { LifeCycle } from '../domain/lifeCycle';\nimport { startLoggerCollection } from '../domain/logger/loggerCollection';\nimport { startLogsBatch } from '../transport/startLogsBatch';\nimport { startLogsBridge } from '../transport/startLogsBridge';\nimport { startInternalContext } from '../domain/contexts/internalContext';\nimport { startReportError } from '../domain/reportError';\nimport { startLogsTelemetry } from '../domain/logsTelemetry';\nexport function startLogs(initConfiguration, configuration, getCommonContext,\n// `startLogs` and its subcomponents assume tracking consent is granted initially and starts\n// collecting logs unconditionally. As such, `startLogs` should be called with a\n// `trackingConsentState` set to \"granted\".\ntrackingConsentState) {\n const lifeCycle = new LifeCycle();\n const cleanupTasks = [];\n lifeCycle.subscribe(1 /* LifeCycleEventType.LOG_COLLECTED */, log => sendToExtension('logs', log));\n const reportError = startReportError(lifeCycle);\n const pageMayExitObservable = createPageMayExitObservable(configuration);\n const session = configuration.sessionStoreStrategyType && !canUseEventBridge() && !willSyntheticsInjectRum() ? startLogsSessionManager(configuration, trackingConsentState) : startLogsSessionManagerStub(configuration);\n const {\n stop: stopLogsTelemetry\n } = startLogsTelemetry(initConfiguration, configuration, reportError, pageMayExitObservable, session);\n cleanupTasks.push(() => stopLogsTelemetry());\n startNetworkErrorCollection(configuration, lifeCycle);\n startRuntimeErrorCollection(configuration, lifeCycle);\n startConsoleCollection(configuration, lifeCycle);\n startReportCollection(configuration, lifeCycle);\n const {\n handleLog\n } = startLoggerCollection(lifeCycle);\n startLogsAssembly(session, configuration, lifeCycle, getCommonContext, reportError);\n if (!canUseEventBridge()) {\n const {\n stop: stopLogsBatch\n } = startLogsBatch(configuration, lifeCycle, reportError, pageMayExitObservable, session);\n cleanupTasks.push(() => stopLogsBatch());\n } else {\n startLogsBridge(lifeCycle);\n }\n const internalContext = startInternalContext(session);\n return {\n handleLog,\n getInternalContext: internalContext.get,\n stop: () => {\n cleanupTasks.forEach(task => task());\n }\n };\n}\n","import { defineGlobal, getGlobalObject } from '@datadog/browser-core';\nimport { makeLogsPublicApi } from '../boot/logsPublicApi';\nimport { startLogs } from '../boot/startLogs';\nexport { Logger, HandlerType } from '../domain/logger';\nexport { StatusType } from '../domain/logger/isAuthorized';\nexport const datadogLogs = makeLogsPublicApi(startLogs);\ndefineGlobal(getGlobalObject(), 'DD_LOGS', datadogLogs);\n","import { ErrorHandler, Injectable } from '@angular/core';\r\nimport { datadogLogs } from '@datadog/browser-logs';\r\n\r\nimport { pcgSettings } from './app/shared/generated/pcg-settings';\r\n\r\n@Injectable()\r\nexport class DatadogErrorHandler implements ErrorHandler {\r\n\r\n constructor() { }\r\n\r\n // The following are error codes thrown as a result of\r\n\t// system security and should not be logged to datadog.\r\n\t// If you make changes here, also update the ErrorLoggingMiddleware.cs\r\n\tignoredErrorCodes: number[] = [\r\n\t\t401 // Login redirect\r\n\t\t, 403 // Access denied\r\n\t\t, 466 // Notification.Confirm() Msg\r\n\t\t, 467 // 2fa not enabled\r\n\t];\r\n\r\n handleError(err: any) {\r\n if (pcgSettings.mode.toLowerCase() === 'development') { console?.error(err?.originalError || err); }\r\n else if (!this.ignoredErrorCodes.includes(err.status)) { datadogLogs.logger.error(err?.message, undefined, err); }\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { timer, Subscription } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { SecurityService } from '../security/security.service';\r\nimport { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { SystemMessage, SystemMessageService } from '../system-message/system-message-service';\r\n\r\n@Component({\r\n selector: 'pcg-inactivity-timeout',\r\n templateUrl: './inactivity-timeout.component.html',\r\n styleUrls: ['./inactivity-timeout.component.scss'],\r\n standalone: false\r\n})\r\nexport class InactivityTimeoutComponent implements OnInit, OnDestroy {\r\n\r\n\tsubscribeTimer: number;\r\n\tsubscriptions = new Subscription();\r\n user: UserJsVm;\r\n\r\n\tconstructor(\r\n\t\tprivate http: HttpClient\r\n\t\t, public modal: NgbActiveModal\r\n\t\t, private sec: SecurityService\r\n\t\t, private router: Router\r\n , private ms: SystemMessageService\r\n\t) { }\r\n\r\n\tget timeLeft() {\r\n\t\tconst now: any = new Date();\r\n\t\tif (localStorage.getItem('lastAccess')) {\r\n\t\t\tconst lastAccess: any = new Date(JSON.parse(localStorage.getItem('lastAccess')));\r\n\t\t\tconst theTimeLeft = 450 - (now - lastAccess) / 1000;\r\n\t\t\treturn parseInt(theTimeLeft.toString(), 10);\r\n\t\t} else { return 0; }\r\n\t}\r\n\r\n\tngOnInit() {\r\n this.user = this.sec.getUser();\r\n\t\tif (this.user.inactivityTimeout == true)\r\n\t\t{\t\t\r\n\t\t\tthis.subscribeTimer = this.timeLeft;\r\n\t\t\tconst source = timer(0, 1000);\r\n\t\t\tthis.subscriptions.add(source.subscribe(() => {\r\n\t\t\t\tthis.subscribeTimer = this.timeLeft;\r\n\t\t\t\tif (this.subscribeTimer <= 0) { // Times up\r\n\t\t\t\t\tthis.sec.setSecurity(null, null); // Nullify token, security, and user info\r\n\t\t\t\t\tthis.modal.dismiss(); \r\n\t\t\t\t\tvar d = new Date();\r\n\t\t\t\t\td.setTime(d.getTime() + (1*24*60*1000));\r\n\t\t\t\t\t// this cookie allows the server to log you out if you were inactive at any point during the session\r\n\t\t\t\t\tdocument.cookie = `hasSpentSevenHalfMinutesInactive=true;expires=${d.toUTCString()};path=/`; \r\n\r\n var loggedInUsingSso = localStorage.getItem(\"loggedInUsingSso\") == \"true\";\r\n localStorage.setItem(\"loggedInUsingSso\", \"false\");\r\n if (loggedInUsingSso) {\r\n this.http.get(`api/Account/SingleSignOut?userId=${this.user.id}&entraIdentifierUrl=${localStorage.getItem(\"entraIdentifierUrl\")}&entraLoginUrl=${localStorage.getItem(\"entraLoginUrl\")}`).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 { \r\n this.ms.setSystemMessage(msg.message, msg.messageClass); \r\n const redirectUrl = '/' + window.location.href.replace(document.getElementsByTagName('base')[0].href, '');\r\n this.router.navigateByUrl(`/login?redirectUrl=${encodeURIComponent(redirectUrl)}&inactive=true`);\r\n }\r\n })\r\n } else {\r\n // Redirect to login\r\n const redirectUrl = '/' + window.location.href.replace(document.getElementsByTagName('base')[0].href, '');\r\n this.router.navigateByUrl(`/login?redirectUrl=${encodeURIComponent(redirectUrl)}&inactive=true`);\r\n }\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.subscriptions.unsubscribe();\r\n\t\tconst user = this.sec.getUser();\r\n\t\t// Need to do a server hit to reset timeout server-side\r\n\t\tif (\r\n\t\t\tuser \r\n\t\t\t&& this.timeLeft <= 30\r\n\t\t) { this.http.get(`/api/Account/GetUserInfo/${user.id}`).subscribe(); }\r\n\t}\r\n}\r\n","
\r\n\t
Inactivity Timeout
\r\n\t\r\n
\r\n\r\n
\r\n\t

Your session will timeout soon. Click the button below to extend your session.

\r\n\t

Otherwise, you will be logged out in {{ subscribeTimer }} seconds.

\r\n
\r\n\r\n
\r\n\t\r\n
\r\n\r\n","import { Injectable, NgZone } from '@angular/core';\r\nimport { timer, Observable, Subject, fromEvent, merge } from 'rxjs';\r\nimport { debounceTime, filter, takeUntil, tap } from 'rxjs/operators';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { InactivityTimeoutComponent } from './inactivity-timeout.component';\r\nimport { addMinutes } from 'date-fns';\r\nimport { UserJsVm } from '../../shared/generated/Administration/Models/Users/UserJsVm';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class InactivityTimeoutService{\r\n\tprivate destroy$ = new Subject();\r\n\tprivate lastActivity: Date;\r\n\tprivate modalOpen = false;\r\n\tprivate inactivityTimer: Observable;\r\n\tprivate user: UserJsVm;\r\n\r\n\t/**\r\n\t * The following are URLs that are tracked for inactivity timeout.\r\n\t * When a user navigates to any of these URLs, the inactivity timer will start counting down.\r\n\t * If the user is inactive for 7.5 minutes, the inactivity modal will be shown.\r\n\t * If the user dismisses the modal, the inactivity timer will be reset.\r\n\t * If the user is inactive for another 7.5 minutes, the user will be logged out.\r\n\t */\r\n\tprivate trackedUrls = [\r\n\t\t\"pharmacy\",\r\n\t\t\"metabolic-formula\"\r\n\t];\r\n\r\n\r\n\tconstructor(\r\n\t\tprivate ngZone: NgZone,\r\n\t\tprivate securityService: SecurityService,\r\n\t\tprivate modalService: NgbModal,\r\n\t) {\r\n\t\tif(this.securityService.getUser()?.inactivityTimeout) {\r\n\t\t\tconsole.log(\"initActivityTracking on\");\r\n\t\t\tthis.initActivityTracking();\r\n\t\t\tthis.initInactivityTimer();\r\n\t\t} else {\r\n\t\t\tconsole.log(\"initActivityTracking off\");\r\n\t\t}\r\n\t}\r\n\r\n\tprivate initActivityTracking(): void {\r\n\t\tthis.ngZone.runOutsideAngular(() => {\r\n\t\t\tconst events = [\r\n\t\t\t\t{ name: 'mousemove', target: document },\r\n\t\t\t\t{ name: 'mousedown', target: document },\r\n\t\t\t\t{ name: 'click', target: document },\r\n\t\t\t\t{ name: 'keydown', target: document },\r\n\t\t\t\t{ name: 'scroll', target: window },\r\n\t\t\t\t{ name: 'touchstart', target: document },\r\n\t\t\t\t{ name: 'pointermove', target: document }\r\n\t\t\t];\r\n\t\t\tconst observables = events.map(event =>\r\n\t\t\t\tfromEvent(event.target, event.name)\r\n\t\t\t);\r\n\t\t\tmerge(...observables)\r\n\t\t\t\t.pipe(\r\n\t\t\t\t\tdebounceTime(300),\r\n\t\t\t\t\tfilter(() => this.isTrackedUrl()),\r\n\t\t\t\t\ttakeUntil(this.destroy$)\r\n\t\t\t\t)\r\n\t\t\t\t.subscribe(() => {\r\n\t\t\t\t\tthis.ngZone.run(() => this.resetLastAccess());\r\n\t\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n\tprivate isTrackedUrl(): boolean {\r\n\t\tconst currentUrl = window.location.href;\r\n\t\treturn this.trackedUrls.some(url => currentUrl.includes(url));\r\n\t}\r\n\r\n\tprivate initInactivityTimer(): void {\r\n\t\tthis.inactivityTimer = timer(0, 1000).pipe(\r\n\t\t\ttap(() => this.checkInactivity()),\r\n\t\t\ttakeUntil(this.destroy$)\r\n\t\t);\r\n\t\tthis.inactivityTimer.subscribe();\r\n\t}\r\n\r\n\tprivate resetLastAccess(): void {\r\n\t\tthis.lastActivity = new Date();\r\n\t\tthis.securityService.setLocalStorage('lastAccess', this.lastActivity);\r\n\t}\r\n\r\n\tprivate checkInactivity(): void {\r\n\t\tif (this.modalOpen || !this.isTrackedUrl() || !this.securityService.getUser()?.inactivityTimeout) return;\r\n\t\tconst user = this.securityService.getUser();\r\n\t\tif (!user) return;\r\n\r\n\t\tconst lastAccessStr = localStorage.getItem('lastAccess');\r\n\t\tif (!lastAccessStr) {\r\n\t\t\tthis.securityService.setSecurity(null, null);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst lastAccessedDate = new Date(JSON.parse(lastAccessStr));\r\n\t\tconst endDate = addMinutes(lastAccessedDate, 7);\r\n\r\n\t\tif (new Date() >= endDate) {\r\n\t\t\tthis.showInactivityModal();\r\n\t\t}\r\n\t}\r\n\r\n\tprivate showInactivityModal(): void {\r\n\t\tif (!this.modalOpen) {\r\n\t\t\tthis.ngZone.run(() => {\r\n\t\t\t\tthis.modalOpen = true;\r\n\t\t\t\tthis.modalService.dismissAll();\r\n\t\t\t\tthis.modalService.open(\r\n\t\t\t\t\tInactivityTimeoutComponent\r\n\t\t\t\t\t, {\r\n\t\t\t\t\t\tbeforeDismiss: () => {\r\n\t\t\t\t\t\t\tthis.modalOpen = false;\r\n\t\t\t\t\t\t\tthis.resetLastAccess();\r\n\t\t\t\t\t\t\treturn true;\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\tstopTracking(): void {\r\n\t\tthis.destroy$.next();\r\n\t\tthis.destroy$.complete();\r\n\t}\r\n}\r\n","import { Location } from '@angular/common';\r\nimport { Component, ElementRef, EventEmitter, HostListener, Input, OnInit, Output, ViewChild, inject } from '@angular/core';\r\nimport { NavigationEnd, Router } from '@angular/router';\r\nimport { faBars } from '@fortawesome/pro-solid-svg-icons';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\nimport { filter } 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 { SecurityService } from 'app/core/security/security.service';\r\nimport { GlobalVariablesService } from 'app/services/global-variables.service';\r\nimport { CiWorkstationComponent } from 'app/shared/ci-workstation/ci-workstation.component';\r\nimport { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { pcgSettings } from 'app/shared/generated/pcg-settings';\r\nimport { NavDividerCharacter, NavigationService } from 'app/shared/navigation/navigation.service';\r\nimport { TopClickNavComponent } from 'app/shared/navigation/top-click-nav/top-click-nav.component';\r\nimport { GlobalService } from 'app/shared/services/global.service';\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'pcg-header',\r\n templateUrl: './header.component.html',\r\n styleUrls: ['./header.component.scss'],\r\n standalone: false\r\n})\r\nexport class TopHeaderComponent implements OnInit {\r\n\t@ViewChild(TopClickNavComponent, { static: true }) nav: TopClickNavComponent;\r\n\t@ViewChild('userNav') userNav: ElementRef;\r\n\t@ViewChild('mainHamburger', { static: true }) mainHamburger: ElementRef;\r\n\r\n\t@Input() tabPanel: any;\r\n\t@Output() hamburgerClick = new EventEmitter();\r\n\r\n\tuser: UserJsVm;\r\n\tmode = pcgSettings.mode;\t\r\n\tnavDividerCharacter = NavDividerCharacter;\t\r\n\threfLocation: string = \"\";\r\n\r\n\tuserNavOpen = false;\r\n\tadminAccess = false;\t\r\n\tisMobile = false;\r\n\tisLoggedOn = false;\r\n\tisNavFixed = false;\r\n\tisCiUser = false;\r\n\thasCiWorkstation = false;\r\n\thasCiAccess = false;\r\n\tloading = false;\r\n\r\n\tnavigationOffset = 0;\r\n\r\n\tfaIconName = { faBars };\r\n\tnavService = inject(NavigationService);\r\n \r\n\r\n\tconstructor(\r\n\t\tprivate sec: SecurityService\r\n\t\t, private router: Router\r\n\t\t, private modalService: NgbModal\r\n\t\t, private location: Location\r\n\t\t, private gvs: GlobalVariablesService\r\n\t\t, public globalService: GlobalService\r\n\t) {\r\n\t\t// Subscribe to route changes and update the navs when they happen\r\n\t\tthis.router.events\r\n\t\t\t.pipe(untilDestroyed(this))\r\n\t\t\t.pipe(filter(event => event instanceof NavigationEnd))\r\n\t\t\t.subscribe(() => { \r\n\t\t\t\tthis.setHasCiAccess();\r\n\t\t\t}\r\n\t\t);\r\n\t }\r\n\r\n setHasCiAccess() {\r\n this.hasCiAccess = this.location?.path()?.includes('ci-repack') \r\n\t\t\t\t\t&& this.sec?.hasModuleAccess( \r\n\t\t\t\t\t\t[ BusinessAreaEnum.CI ]\r\n\t\t\t\t\t\t, SecurityService.setMinRole(PermissionRole.Technician)\r\n\t\t\t\t\t);\r\n this.hasCiAccess ?\r\n this.globalService.isBannerDisplayed.set(true) : \r\n this.globalService.isBannerDisplayed.set(false); \r\n\t\t\t\tif (this.hasCiAccess && !this.location.path().includes('/job-sheet/')) { \r\n\t\t\t\t\tthis.getCiWorkstation(); \r\n\t\t\t\t}\r\n }\r\n\r\n\t// Close the main navigation when they click outside of it\r\n\t// and are not clicking the mobile hamburger button\r\n\t@HostListener('document:click', ['$event'])\r\n\tclickDoc(event: { target: any; }) {\r\n\t\tif (\r\n\t\t\t!this.mainHamburger?.nativeElement.contains(event.target)\r\n\t\t\t&& !this.nav?.elRef?.nativeElement.contains(event.target)\r\n\t\t\t&& !this.userNav?.nativeElement.contains(event.target)\r\n\t\t) { \r\n\t\t\tthis.navService.setCurrOpenNavMenu(''); \r\n\t\t\tthis.userNavOpen = false;\r\n\t\t}\r\n\t}\r\n\r\n\t// Fix the nav offset on resize\r\n\t@HostListener('window:resize')\r\n\tonResize() { this.isMobile = GlobalService.setIsMobile(window.innerWidth); }\r\n\r\n\tngOnInit() {\r\n\t\tthis.isMobile = GlobalService.setIsMobile(window.innerWidth);\r\n\t\tthis.sec.user$.pipe(untilDestroyed(this)).subscribe(user => { this.user = user; });\r\n\t\tsetTimeout(() => {\r\n\t\t\tlet secondaryNav = document.getElementById(\"secondaryNav\");\r\n\t\t\tif (secondaryNav != null) { secondaryNav.scrollLeft = Number(localStorage?.getItem(\"subNavPosition\")); }\r\n\t\t}, 250);\r\n\r\n\t\tlocalStorage.getItem(\"isNavFixed\") === \"true\" \r\n\t\t\t? this.isNavFixed = true \r\n\t\t\t: this.isNavFixed = false;\r\n\r\n this.setHasCiAccess();\r\n\t}\r\n\r\n\tngDoCheck() { this.isLoggedOn = this.sec.isLoggedOn(); }\t//Needed to check if user is logged in (to toggle header)\r\n\tsetSubNavPosition() { localStorage.setItem(\"subNavPosition\", document.getElementById(\"secondaryNav\").scrollLeft.toString()); }\r\n\ttoggleNav() { this.hamburgerClick.emit(true); } // Toggle whether or not the main navigation is open\r\n\topenCiWorkstationModal() { this.modalService.open(CiWorkstationComponent, { animation: false }); }\t\r\n\r\n\tgetCiWorkstation() {\r\n\t\t// Check if is a CI user\r\n\t\tthis.isCiUser = this.sec?.hasModuleAccess(\r\n\t\t\t[ BusinessAreaEnum.CI ]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.User)\r\n\t\t);\r\n\t\tif (this.isCiUser === true) {\r\n\t\t\tconst opened = localStorage.getItem('ciWorkstationModalOpened');\r\n\t\t\tconst sessionToken = localStorage.getItem('jwt');\r\n\t\t\tthis.hasCiWorkstation = false;\r\n\t\t\tif (\r\n\t\t\t\topened !== sessionToken \r\n\t\t\t\t&& this.user.isInternalBphpUser\r\n\t\t\t\t&& !this.user.email.includes(\"@paulconsulting.com\")\r\n\t\t\t) { this.openCiWorkstationModal(); }\r\n\t\t\tlocalStorage.setItem('ciWorkstationModalOpened', sessionToken);\r\n\t\t}\r\n\t}\r\n\r\n\tsetDynamicStyle(\r\n\t\tname: string\r\n\t\t, styles: string\r\n\t) {\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","\r\n","import { ChangeDetectorRef, Component, OnInit } from '@angular/core';\r\n\r\nimport { SpinnerService } from './spinner.service';\r\n\r\n@Component({\r\n selector: 'pcg-spinner',\r\n templateUrl: './spinner.component.html',\r\n styleUrls: ['./spinner.component.scss'],\r\n standalone: false\r\n})\r\nexport class SpinnerComponent implements OnInit {\r\n\t\r\n\tisLoading: boolean;\r\n\r\n\tconstructor(\r\n\t\tpublic spinner: SpinnerService\r\n\t\t, private ref: ChangeDetectorRef\r\n\t) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.isLoading = false;\r\n\t\tthis.spinner.loadingSource$.subscribe(isLoading => {\r\n\t\t\tthis.isLoading = isLoading;\r\n\t\t\tthis.ref.detectChanges();\r\n\t\t});\r\n\t}\r\n}\r\n","
\r\n \r\n
\r\n","import { trigger, state, animate, transition, style } from '@angular/animations';\r\nimport { Component, OnInit } from '@angular/core';\r\n\r\nimport { SystemMessageService, SystemMessageSettings } from './system-message-service';\r\n\r\n/**\r\n * This component handles the display of system messages\r\n * by subscribing to changes in the SystemMessageService.\r\n */\r\n@Component({\n selector: 'pcg-system-message',\n templateUrl: './system-message.component.html',\n styleUrls: ['./system-message.component.scss'],\n // Handles the fade in and fade out animation of system messages\n animations: [\n trigger('visibilityChanged', [\n state('true', style({ opacity: 1 })),\n state('false', style({ opacity: 0 })),\n transition('* => *', animate('.3s'))\n ])\n ],\n standalone: false\n})\r\nexport class SystemMessageComponent implements OnInit {\r\n\tmodel: SystemMessageSettings;\r\n\tpublic displayMessage: 'block' | 'none' = 'none';\r\n\r\n\t// Inject the SystemMessageService. This is a singleton\r\n\t// used throughout the application to send system messages.\r\n\tconstructor(private messageService: SystemMessageService) { }\r\n\r\n\tngOnInit() {\r\n\t\t// Set the initial model\r\n\t\tthis.model = this.messageService.settings;\r\n\r\n\t\t// Update the model when we receive a new system message\r\n\t\t// or need to close it.\r\n\t\tthis.messageService.settings$.subscribe(model => {\r\n\t\t\tthis.model = model;\r\n\t\t});\r\n\t}\r\n\r\n\t/** This will use the SystemMessageService to send a\r\n\t * new system message model with messageOpen set to false. */\r\n\tcloseSystemMessage() {\r\n\t\tthis.messageService.closeSystemMessage();\r\n\t}\r\n}\r\n","
\r\n\t
\r\n\t\t\r\n\t\t\tX\r\n\t\t\r\n\r\n\t\t
\r\n\t\t\t{{ model.messageClass }}!\r\n\t\t\t{{ model.message }}\r\n\t\t\t \r\n\t\t\t{{ model.openDate | date: 'hh:mm:ss a' }}\r\n\t\t
\r\n\t
\r\n
\r\n","import { Injectable } from '@angular/core';\r\n\r\n@Injectable({\r\n\tprovidedIn: 'root'\r\n})\r\nexport class PushNotificationService {\r\n\r\n\tconstructor() { }\r\n\r\n\tpublic static checkForNavSpace() {\r\n\t\tlet spacer = document.getElementById(\"nav-bottom-whitespace\");\r\n\t\tif (spacer != null) { spacer.style.display = 'none'; }\r\n\t\treturn spacer != null;\r\n\t}\r\n\r\n\tpublic static checkForSystemUpdate(): Date {\r\n\t\tlet updateTimer = localStorage.getItem('update-timer');\r\n\r\n\t\tif (\r\n\t\t\t!updateTimer \r\n\t\t\t|| new Date(JSON.parse(updateTimer)) < new Date()\r\n\t\t) {\r\n\t\t\tlocalStorage.removeItem('update-timer');\r\n\t\t\treturn null;\r\n\t\t}\r\n\r\n\t\treturn new Date(JSON.parse(updateTimer));\r\n\t}\r\n}\r\n","import { AfterViewInit, Component } from '@angular/core';\r\n\r\nimport { PushNotificationService } from '../push-notification.service';\r\n\r\n@Component({\r\n selector: 'pcg-install-timer',\r\n templateUrl: './install-timer.component.html',\r\n styleUrls: ['./install-timer.component.scss'],\r\n standalone: false\r\n})\r\nexport class InstallTimerComponent implements AfterViewInit {\r\n\r\n targetDate: Date;\r\n date: any;\r\n warning: boolean;\r\n minimized: boolean;\r\n minutes: number;\r\n seconds: number;\r\n navSpacerVisible: boolean;\r\n\r\n ngAfterViewInit() {\r\n let updateTimer = localStorage.getItem('update-timer');\r\n\r\n if (PushNotificationService.checkForSystemUpdate()) {\r\n this.targetDate = new Date(JSON.parse(updateTimer));\r\n setInterval(() => this.tickTock(), 1000);\r\n }\r\n }\r\n\r\n tickTock() {\r\n this.targetDate = PushNotificationService.checkForSystemUpdate();\r\n\r\n if (this.targetDate) {\r\n this.date = new Date();\r\n let diffMs = (this.targetDate?.valueOf() - this.date.valueOf()); // Milliseconds between now & update\r\n let min = Math.ceil(((diffMs % 86400000) % 3600000) / 60000) - 1; // Whole minutes between now & update\r\n let sec = Math.ceil(((diffMs % 86400000) % 3600000) % 60000 / 1000) - 1; // Remaining seconds\r\n this.minutes = min >= 0 ? min : 60 + min;\r\n this.seconds = sec >= 0 ? sec : 60 + sec;\r\n }\r\n // Prevent count down going negative\r\n else { this.minutes = this.seconds = 0; }\r\n\r\n this.warning = !this.targetDate || (this.minutes <= 0 && this.seconds < 30);\r\n }\r\n\r\n toggleVisibility() {\r\n this.navSpacerVisible = PushNotificationService.checkForNavSpace();\r\n this.targetDate = PushNotificationService.checkForSystemUpdate();\r\n\r\n if (!this.targetDate) { this.date = null; }\r\n else { this.minimized = !this.minimized; }\r\n }\r\n}\r\n","
\r\n \r\n \r\n System Update in:\r\n \r\n  \r\n \r\n {{ minutes }}\r\n \r\n :\r\n \r\n {{ seconds | number:'2.0' }}\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n\r\n

System Update

\r\n\r\n
\r\n
\r\n Minutes\r\n

{{ minutes }}

\r\n
\r\n\r\n
\r\n Seconds\r\n

{{ seconds }}

\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { PushNotificationService } from './push-notification.service';\r\nimport { pcgSettings } from 'app/shared/generated/pcg-settings';\r\n\r\n@Component({\r\n selector: 'pcg-push-notification',\r\n templateUrl: './push-notification.component.html',\r\n styleUrls: ['./push-notification.component.scss'],\r\n standalone: false\r\n})\r\nexport class PushNotificationComponent implements OnInit, OnDestroy {\r\n\tprivate eventSource: EventSource;\r\n\tisLocalHost = pcgSettings.mode === 'Development';\r\n\tshowNotification = false;\r\n\tscheduledInstall = false;\r\n\tnavSpacerVisible = false;\r\n\r\n\t/** Reload the page */\r\n\thardReload() {\r\n\t\twindow.location.reload();\r\n\t\treturn false;\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tif (!this.isLocalHost) {\r\n\t\t\tthis.connectToSSE();\r\n\t\t}\t\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tif (this.eventSource) {\r\n\t\t\tthis.eventSource.close();\r\n\t\t}\r\n\t}\r\n\t/** Connect to Server Sent Event and listen for events */\r\n\tprivate connectToSSE() {\r\n this.eventSource = new EventSource(`/api/install-events`, {\r\n withCredentials: true // This ensures cookies are sent with the request\r\n });\r\n\r\n\t\tthis.eventSource.addEventListener('install', () => {\r\n\t\t\tthis.showNotification = true;\r\n\t\t\tlocalStorage.removeItem('update-timer');\r\n\t\t\tPushNotificationService.checkForSystemUpdate();\r\n\t\t\tthis.scheduledInstall = false;\r\n\t\t\tthis.navSpacerVisible = PushNotificationService.checkForNavSpace();\r\n\t\t});\r\n\r\n\t\tthis.eventSource.addEventListener('install-scheduled', (event: MessageEvent) => {\r\n\t\t\tconst scheduledTime = new Date(JSON.parse(event.data));\r\n\t\t\tlocalStorage.setItem('update-timer', JSON.stringify(scheduledTime));\r\n\t\t\tthis.scheduledInstall = PushNotificationService.checkForSystemUpdate() != null;\r\n\t\t});\r\n\r\n\t}\r\n}\r\n","
\r\n\tHOMER has been updated with new features. \r\n\tClick here to reload the page.\r\n
\r\n\r\n
\r\n\t\r\n
","import { Component, OnInit, OnDestroy, inject, SecurityContext } from '@angular/core';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\nimport { FaIconName } from 'app/shared/fa-num-icon/fa-icon-name/fa-icon-name';\r\nimport { faExclamation, faAngleRight } from '@fortawesome/pro-solid-svg-icons';\r\nimport { notificationSlide } from 'app/shared/animations/shared-animations';\r\nimport { SseNotificationService } from './sse-notification.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { pcgSettings } from 'app/shared/generated/pcg-settings';\r\nimport { SseNotificationDataVm } from 'app/shared/generated/Models/Notifications/SseNotificationDataVm';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'pcg-sse-notification',\r\n templateUrl: './sse-notification.component.html',\r\n styleUrls: ['./sse-notification.component.scss'],\r\n standalone: false,\r\n animations: [notificationSlide]\r\n})\r\nexport class SseNotificationComponent implements OnInit, OnDestroy {\r\n sseService = inject(SseNotificationService);\r\n sec = inject(SecurityService);\r\n businessIcons = inject(FaBusinessAreaIconsService);\r\n router = inject(Router);\r\n sanitizer = inject(DomSanitizer);\r\n settings = pcgSettings;\r\n\r\n subscriptions: Subscription[] = [];\r\n /*\r\n If you want to add custom icons to your notification \r\n and not use the default business area ones\r\n add the icon to the FaIconName object\r\n */\r\n icons = new FaIconName();\r\n // If an icon is not found/set just default to '!' icon\r\n defaultIcon = faExclamation;\r\n dismissIcon = faAngleRight;\r\n\r\n notifs: SseNotificationDataVm[] = [];\r\n\r\n sound = new Audio();\r\n\r\n // Timeout and highlight logic\r\n timeoutId: any;\r\n startTime;\r\n widthIntervalId: any;\r\n widthInterval = 100;\r\n barWidth = 0;\r\n\r\n // Max size of notif array\r\n MAX_NOTIF = 5;\r\n // How much to offset older notifications in stack\r\n NOTIF_OFFSET = 15;\r\n // Opacity for stacks notifs\r\n OLD_NOTIF_OPACITY = 0.2;\r\n // Converting milliseconds to seconds for timeout\r\n MS_TO_S = 1000;\r\n // Ensure notifications are always on top\r\n NOTIF_Z_INDEX = 9999;\r\n\r\n // Defaults\r\n DEFAULT_POSITION = [\"bottom\", \"right\"];\r\n DEFAULT_HEADER_COLOR = \"#FFFFFF\";\r\n DEFAULT_MESSAGE_COLOR = \"#FFFFFF\";\r\n\r\n // Gradient values\r\n START_GRADIENT = ' 60%';\r\n END_GRADIENT = ' 95%';\r\n\r\n get direction(): string {\r\n return this.notifs[this.notifs?.length - 1]?.position?.includes('left') ? '-100%' : '100%';\r\n }\r\n\r\n ngOnInit() {\r\n // Ensure no existing SSE already setup\r\n this.sseService.destroySSE();\r\n\r\n // Whenever service says there is a notif fire, keep track to close subscribe on destroy\r\n this.subscriptions.push(\r\n this.sseService.notificationReceived.subscribe((data: SseNotificationDataVm) => {\r\n this.addNotifToQueue(data);\r\n this.setDefaults();\r\n this.setIcon();\r\n this.playSound();\r\n this.startTimer();\r\n })\r\n );\r\n\r\n // Initial setup (typically hit if already logged in)\r\n this.sseService.initializeSSE(); \r\n }\r\n\r\n ngOnDestroy() {\r\n if (this.sseService.notificationSource) {\r\n this.sseService.destroySSE();\r\n }\r\n this.stopTimer();\r\n this.subscriptions.forEach(sub => sub.unsubscribe());\r\n }\r\n\r\n //#region New notif logic\r\n addNotifToQueue(data: SseNotificationDataVm) {\r\n data.timeSent = new Date();\r\n this.notifs?.length > 0 ?\r\n this.notifs.push(data) :\r\n this.notifs = [data];\r\n if (this.notifs?.length >= this.MAX_NOTIF) {\r\n this.notifs = this.notifs.slice(-this.MAX_NOTIF);\r\n }\r\n }\r\n\r\n setDefaults() {\r\n let notif = this.notifs[this.notifs.length - 1];\r\n if (!notif.position || notif.position.length == 0)\r\n notif.position = this.DEFAULT_POSITION;\r\n if (!notif.headerColor) notif.headerColor = this.DEFAULT_HEADER_COLOR;\r\n if (!notif.messageColor) notif.messageColor = this.DEFAULT_MESSAGE_COLOR;\r\n }\r\n\r\n setIcon() {\r\n let notif = this.notifs[this.notifs.length - 1];\r\n if (notif.businessArea && !notif.icon) {\r\n notif.iconDefinition = this.businessIcons.getIconByBusinessArea(notif.businessArea);\r\n } else if (notif.icon) {\r\n notif.iconDefinition = this.icons[notif.icon];\r\n }\r\n\r\n let iconStyle = this.businessIcons.getIconStyleByBusinessArea(notif.businessArea);\r\n if (!notif.iconColor) notif.iconColor = iconStyle.color;\r\n if (!notif.iconBgColor) notif.iconBgColor = iconStyle.background;\r\n }\r\n //#endregion\r\n \r\n //#region Sound Logic\r\n playSound() {\r\n let notif = this.notifs[this.notifs.length - 1];\r\n if(notif.useSound) {\r\n if(!this.sound.src) { this.loadNotifSound(); }\r\n this.sound.play();\r\n }\r\n }\r\n\r\n private loadNotifSound() {\r\n const basePath = document.getElementsByTagName('base')[0].href;\r\n this.sound.src = basePath + 'assets/sounds/notif-ding.mp3';\r\n this.sound.load();\r\n }\r\n //#endregion\r\n\r\n //#region Click logic\r\n dismissNotif() {\r\n this.notifs.pop();\r\n this.stopTimer();\r\n this.startTimer();\r\n }\r\n\r\n bringToFront(index: number) {\r\n // Index comes in from reversed array.\r\n // Use Length - index - 1 to get actual index of original array\r\n let realIndex = this.notifs?.length - index - 1; \r\n const [element] = this.notifs.splice(realIndex, 1); \r\n this.notifs.push(element);\r\n this.startTimer();\r\n }\r\n\r\n urlRedirect() {\r\n let notif = this.notifs[this.notifs.length - 1];\r\n if (notif.openNewTab && notif.url) { \r\n window.open(notif.url, '_blank');\r\n } else {\r\n let pathUrl = new URL(notif.url);\r\n let path = pathUrl.pathname + pathUrl.search + pathUrl.hash;\r\n this.router.navigateByUrl(path);\r\n }\r\n this.dismissNotif();\r\n }\r\n //#endregion\r\n \r\n //#region Timeout logic\r\n startTimer() {\r\n this.stopTimer();\r\n if (this.notifs[this.notifs?.length - 1]?.timeout) {\r\n this.startTime = new Date();\r\n this.setTimeoutWidth();\r\n this.timeoutId = setTimeout(() => {\r\n this.dismissNotif();\r\n }, this.notifs[this.notifs?.length - 1].timeout * this.MS_TO_S);\r\n }\r\n }\r\n\r\n stopTimer() {\r\n if (this.timeoutId) {\r\n clearInterval(this.timeoutId);\r\n this.timeoutId = null;\r\n this.startTime = null;\r\n }\r\n if (this.widthInterval) {\r\n clearInterval(this.widthIntervalId);\r\n this.widthIntervalId = null;\r\n }\r\n\r\n // Reset timeout-bar back to 0, this prevents notifications without timeout\r\n // from having a random hightlight bar\r\n this.barWidth = 0;\r\n }\r\n\r\n setTimeoutWidth() {\r\n let notif = this.notifs[this.notifs.length - 1];\r\n this.widthIntervalId = setInterval(() => {\r\n const elapsed = (new Date().getTime() - this.startTime.getTime()) / 1000;\r\n const remaining = Math.max(notif.timeout - elapsed, 0);\r\n this.barWidth = (remaining / notif.timeout) * 100;\r\n if(this.barWidth == 0) \r\n clearInterval(this.widthIntervalId);\r\n }, this.widthInterval);\r\n }\r\n //#endregion\r\n sanitizeHTML = (html: string) => this.sanitizer.sanitize(SecurityContext.HTML, html);\r\n}\r\n","
\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n
\r\n
\r\n {{notif.header}}\r\n {{notif.timeSent | date: 'h:mm a'}}\r\n
\r\n
\r\n @if(notif.html) {\r\n \r\n } @else {\r\n {{notif.message}}\r\n } \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n\r\n \r\n @if(i === 0) {\r\n
\r\n }\r\n
\r\n\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, computed, inject, Input, OnInit, signal } from '@angular/core';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { Router } from '@angular/router';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { faCheckDouble, faFilter, faGear, faTrash, faX } from '@fortawesome/pro-solid-svg-icons';\r\nimport { NgbDropdown, NgbDropdownMenu, NgbDropdownToggle, NgbModal, NgbModule, NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { SubscriptionEnum } from 'app/core/enums/generated/SubscriptionEnum';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { SseNotificationService } from 'app/core/sse-notification/sse-notification.service';\r\nimport { NotificationService } from 'app/notification.service';\r\nimport { FaBusinessAreaIconsService } from 'app/shared/fa-business-area-icons/fa-business-area-icons.service';\r\nimport { ConfirmationModalComponent } from 'app/shared/form-elements/components/confirmation-modal/confirmation-modal.component';\r\nimport { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { UserSubscriptionVm } from 'app/shared/generated/Administration/Models/Users/UserSubscriptionVm';\r\nimport { UserNotificationVm } from 'app/shared/generated/Models/Notifications/UserNotificationVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { NavigationService } from 'app/shared/navigation/navigation.service';\r\nimport { SharedModule } from 'app/shared/shared.module';\r\nimport { NotificationsService } from './notifications.service';\r\n\r\n@Component({\r\n selector: 'pcg-dashboard-notifications-widget',\r\n standalone: true,\r\n imports: [\r\n CommonModule\r\n , FormsModule\r\n , NgbModule\r\n , NgbDropdown\r\n , NgbDropdownToggle\r\n , NgbDropdownMenu\r\n , NgbTooltip\r\n , FontAwesomeModule\r\n , SharedModule\r\n ],\r\n templateUrl: './notifications-widget.component.html',\r\n styleUrls: ['./notifications-widget.component.scss']\r\n})\r\nexport class DashboardNotificationsWidgetComponent implements OnInit {\r\n\tnotificationsService = inject(NotificationsService);\r\n\tsec = inject(SecurityService);\r\n\tnavService = inject(NavigationService);\r\n\trouter = inject(Router);\r\n\tbaService = inject(FaBusinessAreaIconsService);\r\n\tmodalService = inject(NgbModal);\r\n\ttoastr = inject(NotificationService);\r\n sseService = inject(SseNotificationService);\r\n \r\n\t@Input() isSideNav = false;\r\n\t// When to detect scrolled to bottom\r\n\tSCROLL_OFFSET = 100;\r\n\t// How many new items to get with each show more (and how many to start with)\r\n\tPAGE_SIZE = 5;\r\n\tshowUnreadOnly = signal(true);\r\n\tdisplayLimit = signal(this.PAGE_SIZE);\r\n\tisScrolledToBottom = signal(false);\r\n\tuser: UserJsVm;\r\n\tselectedBusinessAreas = signal([]);\r\n\tbaEnum = BusinessAreaEnum;\r\n\r\n\tfaCheckDouble = faCheckDouble;\r\n\tfaTrash = faTrash;\r\n\tfaGear = faGear;\r\n\tfaX = faX;\r\n\tfaFilter = faFilter;\r\n\r\n private notifications = toSignal(\r\n this.notificationsService.notifications$\r\n , { initialValue: [] as UserNotificationVm[] }\r\n );\r\n\r\n userModules = computed(() => {\r\n const areas = this.showUnreadOnly() ? \r\n this.notifications().filter(n => !n.markedAsRead).map(o => o.businessArea) :\r\n this.notifications().map(o => o.businessArea)\r\n return [...new Set(areas)].sort((a, b) => a - b);\r\n })\r\n\r\n filteredNotifications = computed(() => {\r\n const notifications = this.notifications();\r\n const businessAreas = this.selectedBusinessAreas().length > 0 ?\r\n notifications.filter(n => this.selectedBusinessAreas().includes(n.businessArea)) :\r\n notifications;\r\n const filtered = this.showUnreadOnly()\r\n ? businessAreas.filter(n => !n.markedAsRead)\r\n : businessAreas;\r\n return filtered.slice(0, this.displayLimit());\r\n });\r\n\r\n hasMoreNotifications = computed(() => {\r\n const total = this.showUnreadOnly()\r\n ? this.notifications().filter(n => !n.markedAsRead).length\r\n : this.notifications().length;\r\n return total > this.displayLimit();\r\n });\r\n\r\n ngOnInit(): void {\r\n this.user = this.sec.getUser();\r\n this.loadNotifications();\r\n this.handleSSEListeners();\r\n }\r\n\r\n loadNotifications(): void { this.notificationsService.getNotificationsByUserId(this.user?.id); }\r\n setUnreadFilter = (showUnreadOnly: boolean): void => this.showUnreadOnly.set(showUnreadOnly);\r\n showMore = (): void =>this.displayLimit.update(current => current + this.PAGE_SIZE);\r\n toDescription = (ba: number) => BusinessAreaEnum.toDescription(ba);\r\n markAsRead = (notification: UserNotificationVm): void => this.notificationsService.markAsRead(notification.userNotificationId);\r\n deleteNotification = (notification: UserNotificationVm): void => this.notificationsService.deleteNotification(notification.userNotificationId);\r\n \r\n deleteAllNotifications(): void {\r\n this.selectedBusinessAreas().length > 0 ? \r\n this.notificationsService.deleteAllNotifications(this.user?.id, [...this.selectedBusinessAreas()]) :\r\n this.notificationsService.deleteAllNotifications(this.user?.id)\r\n this.selectedBusinessAreas.set([]);\r\n }\r\n\r\n markAllAsRead(): void {\r\n this.selectedBusinessAreas().length > 0 ? \r\n this.notificationsService.markAllAsRead(this.user?.id, [...this.selectedBusinessAreas()]) : \r\n this.notificationsService.markAllAsRead(this.user?.id)\r\n this.selectedBusinessAreas.set([]);\r\n }\r\n\r\n unsubscribe(notification: UserNotificationVm): void {\r\n if (notification.markedAsRead || !notification.subscription) {\r\n return this.toastr.showWarning('This notification does not have an associated subscription.');\r\n }\r\n\r\n const modal = this.modalService.open(ConfirmationModalComponent);\r\n // The subscription name for display purposes.\r\n const subscriptionStr = SubscriptionEnum.toDisplay(notification.subscription);\r\n // Joins the subscription, options, and 'notification' into a string for display.\r\n const optionsStr = FormatHelperService.filterJoin([\r\n subscriptionStr, \r\n FormatHelperService.oxfordJoin(notification.options.map(o => \r\n UserSubscriptionVm.ColumnDefs.get(o).displayName)), \r\n 'notifications'\r\n ], ' ');\r\n // Warning message to display to the user.\r\n const warningMessage = `This action will unsubscribe you from the ${optionsStr}. \r\n
All ${subscriptionStr} notifications will be marked as read.\r\n
Are you sure you want to proceed?`;\r\n\r\n modal.componentInstance.modalRef = modal;\r\n modal.componentInstance.confirmationMessage = `

${warningMessage}

`;\r\n\r\n modal.result.then((emittedValue) => {\r\n if (emittedValue) {\r\n this.notificationsService.unsubscribe(notification.subscription);\r\n }\r\n }).catch(() => null);\r\n }\r\n\r\n toggleBusinessArea(businessArea: number) {\r\n if (this.selectedBusinessAreas().includes(businessArea)) {\r\n let filteredBusinessAreas = this.selectedBusinessAreas().filter(o => o != businessArea);\r\n this.selectedBusinessAreas.set(filteredBusinessAreas);\r\n } \r\n else {\r\n this.selectedBusinessAreas.update(o => [...o, businessArea]);\r\n }\r\n }\r\n \r\n onScroll(event: Event): void {\r\n const element = event.target as HTMLElement;\r\n const atBottom = Math.abs(element.scrollHeight - element.scrollTop - element.clientHeight) < 1;\r\n this.isScrolledToBottom.set(atBottom);\r\n\r\n // Auto-load more on mobile when near bottom\r\n if (\r\n this.navService.isMobile() \r\n && element.scrollTop + element.clientHeight >= element.scrollHeight - this.SCROLL_OFFSET\r\n ) {\r\n if (this.hasMoreNotifications()) { this.showMore(); }\r\n }\r\n }\r\n\r\n navToSettings() {\r\n this.router.navigateByUrl(`/admin/users/user/edit/notifications/${this.sec.getUser()?.id}`);\r\n this.navService.isNotificationsNavOpen.set(false);\r\n }\r\n\r\n handleSSEListeners() {\r\n this.sseService.persistentNotificationReceived.subscribe(() => {\r\n this.notificationsService.getNotificationsByUserId(this.user?.id);\r\n });\r\n }\r\n}","
\r\n
\r\n
Notifications
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n @if(userModules().length > 1) {\r\n \r\n }\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n @if (filteredNotifications().length > 0) {\r\n \r\n \r\n }\r\n \r\n
\r\n\r\n
\r\n @for (notification of filteredNotifications(); track notification.userNotificationId) {\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n

{{ notification.title }}

\r\n\r\n \r\n {{ notification.notifiedDate | utcToLocal | date:'MMM d, y, h:mm a' }}\r\n \r\n\r\n \r\n {{ notification.message }}\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n\r\n \r\n @if (notification.link) {\r\n \r\n View details\r\n \r\n }\r\n
\r\n
\r\n } @empty {\r\n
\r\n No notifications to display\r\n
\r\n }\r\n
\r\n\r\n @if (hasMoreNotifications() && !navService.isMobile()) {\r\n
\r\n \r\n
\r\n }\r\n
\r\n\r\n\r\n\r\n
\r\n \r\n
\r\n @for (businessArea of userModules(); track businessArea) {\r\n \r\n }\r\n
\r\n @if(selectedBusinessAreas()?.length > 0) {\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 (!notification.markedAsRead) {\r\n \r\n }\r\n
\r\n \r\n
\r\n @if (!notification.markedAsRead) {\r\n \r\n \r\n }\r\n \r\n
\r\n
\r\n
\r\n
","import { ChangeDetectorRef, Component, ElementRef, HostListener, inject, OnDestroy, OnInit, signal, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { User as ddUser } from '@datadog/browser-core';\r\nimport { datadogLogs } from '@datadog/browser-logs';\r\nimport { faArrowRight, faBell, faUser } from '@fortawesome/pro-solid-svg-icons';\r\nimport { NgbModalConfig } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { BusinessAreaEnum } from './core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from './core/enums/generated/PermissionRole';\r\nimport { InactivityTimeoutService } from './core/inactivity-timeout/inactivity-timeout.service';\r\nimport { SpinnerService } from './core/layout/spinner/spinner.service';\r\nimport { NotificationsService } from './core/pages/dashboard/widgets/notifications-widget/notifications.service';\r\nimport { SecurityService } from './core/security/security.service';\r\nimport { UserJsVm } from './shared/generated/Administration/Models/Users/UserJsVm';\r\nimport { pcgSettings } from './shared/generated/pcg-settings';\r\nimport { NavigationService } from './shared/navigation/navigation.service';\r\nimport { GlobalService } from './shared/services/global.service';\r\n\r\n/**\r\n * This is the application's root component.\r\n */\r\n@Component({\r\n\tselector: 'pcg-root',\r\n\ttemplateUrl: './app.component.html',\r\n\tstyleUrls: ['./app.component.scss'],\r\n\tstandalone: false\r\n})\r\nexport class AppComponent implements OnInit, OnDestroy {\r\n\r\n\t@ViewChild('tabPanel') tabPanel: any;\r\n\r\n fileLogoUrl = \"../assets/images/logos/logo_small.png\";\r\n\t\r\n\terrorCache: any = {};\r\n\t\r\n\t// Keeps track if nav was fixed or not before closing for print\r\n\tnavState: boolean = false;\r\n\tnavService = inject(NavigationService);\r\n notificationsService = inject(NotificationsService);\r\n spinnerService = inject(SpinnerService);\r\n\r\n @HostListener('window:resize')\r\n\tonResize() { \r\n\t\tif (this.navService.isMobile()) { \r\n\t\t\tlocalStorage.setItem(\"isNavFixed\", \"false\"); \r\n\t\t\tthis.navService.toggleNavFixed(false); \r\n\t\t\tthis.navService.toggleNavOpen(false);\r\n\t\t}\r\n\t}\r\n\r\n\t// Ensure nav is not fixed open before printing\r\n\t@HostListener('window:beforeprint')\r\n\tcloseNav = () => {\r\n\t\tthis.navState = this.navService.isNavFixed();\r\n\t\tthis.navService.toggleNavFixed(false);\r\n\t}\r\n\r\n\t@HostListener('window:afterprint')\r\n\tresetNav = () => this.navService.toggleNavFixed(this.navState);\r\n\r\n\t// Nav\r\n\tisLoggedOn = signal(false);\r\n\tmode = pcgSettings.mode; //for responsive BETA text\r\n\r\n\t// These should be managed in the navigation routes, use only for special cases\r\n\tfaIconName = { faUser, faArrowRight, faBell };\r\n\r\n\t// My Profile\r\n\tuser: UserJsVm;\r\n\r\n\t// Enums\r\n busArea = BusinessAreaEnum;\r\n\trole = PermissionRole;\r\n\r\n\t// Inactivity timeout needs to be injected here to have a constant timeout going in the background\r\n\tconstructor(\r\n\t\tprivate router: Router\r\n\t\t, elRef: ElementRef\r\n\t\t, private inactivityService: InactivityTimeoutService\r\n\t\t, private sec: SecurityService\r\n\t\t, private modalConfig: NgbModalConfig\r\n\t\t, public gs: GlobalService\r\n , private ref: ChangeDetectorRef\r\n\t) {\r\n\t\tthis.configureDatadog();\r\n\t\tthis.configureModal(); // Default modal settings, such as disabling the animation\r\n\t\tsec.user$.subscribe(user => {\r\n\t\t\t// For 'My Profile' nav functionality\r\n\t\t\tthis.user = user; \r\n\t\t\tconst isLoggedIn: boolean = sec.isLoggedOn();\r\n\r\n\t\t\tthis.isLoggedOn.set(isLoggedIn);\r\n\t\t\tif (isLoggedIn) { elRef.nativeElement.classList.add('is-logged-in'); } \r\n\t\t\telse { elRef.nativeElement.classList.remove('is-logged-in'); }\r\n\t\t});\r\n\t\twindow['$router'] = router;\r\n\t}\r\n\r\n\tngOnInit() { \r\n\t\t// Remember if nav is fixed\r\n\t\tif (this.navService.isMobile()) { this.navService.toggleNavFixed(false); } \r\n\t\telse { this.navService.toggleNavFixed(localStorage.getItem(\"isNavFixed\") === true.toString()); } \r\n\t}\r\n\r\n\t/** Set default ng-bootstrap modal options */\r\n\tconfigureModal() {\r\n\t\t// Disable ng bootstrap modal animations by default\r\n\t\tthis.modalConfig.animation = false;\r\n\t\tthis.modalConfig.ariaLabelledBy = 'modal-basic-title';\r\n\t}\r\n\t\r\n\tconfigureDatadog() {\r\n\t\tif (pcgSettings.mode.toLowerCase() !== 'development') {\r\n\t\t\tdatadogLogs.setGlobalContext({ env: pcgSettings.mode });\r\n\t\t\tdatadogLogs.setGlobalContextProperty('referrer', document.referrer);\r\n\t\t\tdatadogLogs.logger.setLevel('warn');\r\n\t\r\n\t\t\tthis.initDataDog();\r\n\t\t\tdatadogLogs.setUser(this.getDatadogUser(this.sec.getUser()));\r\n\t\t\t\r\n\t\t\tthis.sec.user$.subscribe(newUser => { \r\n\t\t\t\tthis.initDataDog();\r\n\t\t\t\tdatadogLogs.setUser(this.getDatadogUser(newUser));\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tinitDataDog() {\r\n try {\r\n datadogLogs.clearUser();\r\n const initConfig = datadogLogs.getInitConfiguration();\r\n if (\r\n initConfig === null\r\n || initConfig === undefined\r\n ) { // stop datadog init if it is already initialized\r\n datadogLogs.init({\r\n clientToken: \"pub77451973018f724e8a9f58aa8d77985d\"\r\n , trackingConsent: 'granted'\r\n , site: \"us5.datadoghq.com\"\r\n , service: \"Homer\" + pcgSettings?.mode\r\n , version: \"603c4a9a56\"\r\n , env: \"Homer\" + pcgSettings?.mode\r\n , forwardErrorsToLogs: true\r\n , sessionSampleRate: 100\t\t\t\r\n });\r\n }\r\n } catch (ex) { console.error('Failed to initialize datadog:', ex); }\r\n\t}\r\n\r\n\tgetDatadogUser(userJs: UserJsVm): ddUser {\r\n\t\tlet ddUser : ddUser = { \r\n\t\t\tid: userJs?.id.toString()\r\n\t\t\t, email: userJs?.email\r\n\t\t\t, name: `${userJs?.firstName} ${userJs?.lastName}` \r\n\t\t}\r\n\t\treturn ddUser;\r\n\t}\r\n\r\n\ttakeToMyProfile() { this.router.navigateByUrl('/admin/users/user/edit/details/' + this.user?.id); }\r\n\tngOnDestroy(): void { this.inactivityService.stopTracking(); }\r\n}\r\n","\r\n\r\n\r\n\t\r\n\t@if (isLoggedOn()) {\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n }\r\n\r\n @if (isLoggedOn()) {\r\n \r\n \r\n \r\n } \r\n \r\n \r\n\t\r\n\t\r\n\t\t\r\n\t\t@if (\r\n\t\t\t!navService.isMobile()\r\n\t\t\t&& !navService.isNavFixed()\r\n\t\t\t&& isLoggedOn()\r\n\t\t\t&& navService.navRoutes()\r\n\t\t) {\r\n\t\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\t@if (isLoggedOn()) {\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\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
\r\n\t\t
\r\n\t\t\r\n\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\t\r\n\t\t\t\t\t\tSystem by\r\n\t\t\t\t\t\tPaul Consulting Group\r\n\t\t\t\t\t\r\n\t\t\t\t\t@if (isLoggedOn()) {\r\n\t\t\t\t\t\t | \r\n\t\t\t\t\t\tRelease Notes\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
\r\n\t\r\n
","import { HttpClient } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { CiShortageOverageVm } from 'app/shared/generated/CIRepack/Models/CiRepackOrder/CiShortageOverageVm';\r\nimport { ButtonFilterService } from 'app/shared/table/table-top/button-filter/button-filter.service';\r\n\r\n@Component({\r\n selector: 'pcg-ci-repack-order-short-over-printable',\r\n templateUrl: './ci-repack-order-short-over-printable.component.html',\r\n styleUrls: ['./ci-repack-order-short-over-printable.component.scss'],\r\n standalone: false\r\n})\r\nexport class CiRepackOrderShortOverPrintableComponent implements OnInit {\r\n \r\n subscriptions = new Subscription();\r\n orderNumber: string;\r\n shortOverList: CiShortageOverageVm[] = [];\r\n dataIsLoaded: boolean = false;\r\n pageIsLoaded: boolean = false;\r\n code: string;\r\n emptyShortOverList: boolean = false;\r\n\r\n constructor(public title: Title, private route: ActivatedRoute, private httpClient: HttpClient\r\n , public btnFilterService: ButtonFilterService) { \r\n title.setTitle(\"CI Order Shortage / Overage\")\r\n document.querySelector('pcg-header')?.classList?.add('d-none');\r\n document.getElementById('footer')?.classList?.add('d-none');\r\n }\r\n\r\n ngOnInit() {\r\n if (this.route.snapshot.queryParamMap.get('code')) { this.code = this.route.snapshot.queryParamMap.get('code'); }\r\n this.getShortOverList();\r\n }\r\n\r\n ngAfterViewInit() {\r\n\t\t// After page load, call this function to verify all elements are loaded and print the page\r\n\t\tthis.pageIsLoaded = true;\r\n setTimeout(() => {\r\n this.printPage();\r\n }, 300);\r\n\t}\r\n\r\n getShortOverList(){\r\n this.subscriptions.add(this.httpClient.get(`api/PublicCiShortOver/GetCiShortageOverageListPrintable?code=${this.code}`)\r\n\t\t\t.subscribe((list: CiShortageOverageVm[]) => {\r\n if(list.length > 0)\r\n {\r\n this.shortOverList = list\r\n this.orderNumber = this.shortOverList[0].ciOrderNumber;\r\n this.dataIsLoaded = true;\r\n } else { this.emptyShortOverList = true; }\r\n }));\r\n }\r\n\r\n printPage() {\r\n\t\t// If all page elements are loaded and data has been received from the server, print the page\r\n\t\tif (this.dataIsLoaded) {\r\n window.print();\r\n\t\t\twindow.close();\r\n\t\t}\r\n\t}\r\n\r\n}\r\n","
\r\n
\r\n
\r\n \"HOMER\r\n
\r\n
\r\n

Shortage/Overage Report

\r\n
{{ orderNumber }}
\r\n
\r\n \r\n
\r\n
\r\n

The are no shortages or overages on this order.

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Invoice #Product NDCBottles OrderedBottles InvoicedSizeProduct InvoicedCount Per CardCards OrderedProduct RemainingBottles ReceivedProduct RepackedRepacked CardsProduct ReturnedProduct Difference
{{ row.invoiceNumber }}{{ row.productName}}
{{ row.ndc}}
{{ row.bottlesOrdered }}{{ row.bottlesInvoiced }}{{ row.size }}{{ row.productInvoiced | number }}{{ row.countPerCard | number }}{{ row.cardsOrdered | number }}{{ row.productRemaining | number }}{{ row.bottlesReceived | number }}{{ row.productRepacked | number }}{{ row.repackedCards | number }}{{ row.productReturned | number }}{{ row.productDifference | number }}
\r\n
\r\n
\r\n\r\n
","import { Injectable } from '@angular/core';\r\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nfunction padNumber(value: number) {\r\n\tif (isNumber(value)) {\r\n\t\treturn `0${value}`.slice(-2);\r\n\t} else {\r\n\t\treturn '';\r\n\t}\r\n}\r\n\r\nfunction isNumber(value: any): boolean {\r\n\treturn !isNaN(toInteger(value));\r\n}\r\n\r\nfunction toInteger(value: any): number {\r\n\treturn parseInt(`${value}`, 10);\r\n}\r\n\r\n@Injectable()\r\nexport class NgbDateNativeParserFormatter extends NgbDateParserFormatter {\r\n\tparse(value: string): NgbDateStruct {\r\n\t\tif (value) {\r\n\t\t\tconst dateParts = value.trim().split('/');\r\n\t\t\tif (dateParts.length === 1 && isNumber(dateParts[0])) {\r\n\t\t\t\treturn { year: toInteger(dateParts[0]), month: null, day: null };\r\n\t\t\t} else if (\r\n\t\t\t\tdateParts.length === 2 &&\r\n\t\t\t\tisNumber(dateParts[0]) &&\r\n\t\t\t\tisNumber(dateParts[1])\r\n\t\t\t) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tyear: toInteger(dateParts[1]),\r\n\t\t\t\t\tmonth: toInteger(dateParts[0]),\r\n\t\t\t\t\tday: null\r\n\t\t\t\t};\r\n\t\t\t} else if (\r\n\t\t\t\tdateParts.length === 3 &&\r\n\t\t\t\tisNumber(dateParts[0]) &&\r\n\t\t\t\tisNumber(dateParts[1]) &&\r\n\t\t\t\tisNumber(dateParts[2])\r\n\t\t\t) {\r\n\t\t\t\treturn {\r\n\t\t\t\t\tyear: toInteger(dateParts[2]),\r\n\t\t\t\t\tmonth: toInteger(dateParts[0]),\r\n\t\t\t\t\tday: toInteger(dateParts[1])\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn null;\r\n\t}\r\n\r\n\tformat(date: NgbDateStruct): string {\r\n\t\tlet stringDate = '';\r\n\t\tif (date) {\r\n\t\t\tstringDate += isNumber(date.month) ? padNumber(date.month) + '/' : '';\r\n\t\t\tstringDate += isNumber(date.day) ? padNumber(date.day) + '/' : '';\r\n\t\t\tstringDate += date.year;\r\n\t\t}\r\n\t\treturn stringDate;\r\n\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 SilkierHistoryVm {\r\n\tfireInstanceId: number;\r\n\tschedulerInstanceId?: string;\r\n\tschedulerName?: string;\r\n\tjob?: string;\r\n\ttrigger?: string;\r\n\tscheduledFireTimeUtc?: Date;\r\n\tscheduledFireTimeUtcStr?: string;\r\n\tactualFireTimeUtc: Date;\r\n\tactualFireTimeUtcStr?: string;\r\n\trecovering: boolean;\r\n\tfinishedTimeUtc?: Date;\r\n\tfinishedTimeUtcStr?: string;\r\n\tlogMessage?: string;\r\n\texceptionMessage?: string;\r\n\twasSuccessful?: 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'fireInstanceId': new UntypedFormControl(0, [...(validators['fireInstanceId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'schedulerInstanceId': new UntypedFormControl(null, [...(validators['schedulerInstanceId'] ?? []), ...[Validators.maxLength(50), Validators.minLength(0)]]),\r\n\t\t\t'schedulerName': new UntypedFormControl(null, [...(validators['schedulerName'] ?? []), ...[Validators.maxLength(50), Validators.minLength(0)]]),\r\n\t\t\t'job': new UntypedFormControl(null, [...(validators['job'] ?? []), ...[Validators.maxLength(200), Validators.minLength(0)]]),\r\n\t\t\t'trigger': new UntypedFormControl(null, [...(validators['trigger'] ?? []), ...[Validators.maxLength(200), Validators.minLength(0)]]),\r\n\t\t\t'scheduledFireTimeUtc': new UntypedFormControl(null, [...(validators['scheduledFireTimeUtc'] ?? []), ...[]]),\r\n\t\t\t'scheduledFireTimeUtcStr': new UntypedFormControl(null, [...(validators['scheduledFireTimeUtcStr'] ?? []), ...[]]),\r\n\t\t\t'actualFireTimeUtc': new UntypedFormControl('', [...(validators['actualFireTimeUtc'] ?? []), ...[Validators.required]]),\r\n\t\t\t'actualFireTimeUtcStr': new UntypedFormControl(null, [...(validators['actualFireTimeUtcStr'] ?? []), ...[]]),\r\n\t\t\t'recovering': new UntypedFormControl(false, [...(validators['recovering'] ?? []), ...[]]),\r\n\t\t\t'finishedTimeUtc': new UntypedFormControl(null, [...(validators['finishedTimeUtc'] ?? []), ...[]]),\r\n\t\t\t'finishedTimeUtcStr': new UntypedFormControl(null, [...(validators['finishedTimeUtcStr'] ?? []), ...[]]),\r\n\t\t\t'logMessage': new UntypedFormControl(null, [...(validators['logMessage'] ?? []), ...[]]),\r\n\t\t\t'exceptionMessage': new UntypedFormControl(null, [...(validators['exceptionMessage'] ?? []), ...[]]),\r\n\t\t\t'wasSuccessful': new UntypedFormControl(null, [...(validators['wasSuccessful'] ?? []), ...[]])\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['schedulerName', {\"orderId\":0,\"sortColumn\":\"schedulerName\",\"searchColumn\":\"schedulerName\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Scheduler Name\",\"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['job', {\"orderId\":1,\"sortColumn\":\"job\",\"searchColumn\":\"job\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Job\",\"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['trigger', {\"orderId\":2,\"sortColumn\":\"trigger\",\"searchColumn\":\"trigger\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Trigger\",\"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['scheduledFireTimeUtcStr', {\"orderId\":3,\"sortColumn\":\"scheduledFireTimeUtc\",\"searchColumn\":\"scheduledFireTimeUtcStr\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Scheduled Fire Time\",\"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['actualFireTimeUtcStr', {\"orderId\":4,\"sortColumn\":\"actualFireTimeUtc\",\"searchColumn\":\"actualFireTimeUtcStr\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Actual Fire Time\",\"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['recovering', {\"orderId\":5,\"sortColumn\":\"recovering\",\"searchColumn\":\"recovering\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Recovering\",\"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['finishedTimeUtcStr', {\"orderId\":6,\"sortColumn\":\"finishedTimeUtc\",\"searchColumn\":\"finishedTimeUtcStr\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Finished Time\",\"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['logMessage', {\"orderId\":7,\"sortColumn\":\"logMessage\",\"searchColumn\":\"logMessage\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Log\",\"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['exceptionMessage', {\"orderId\":8,\"sortColumn\":\"exceptionMessage\",\"searchColumn\":\"exceptionMessage\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Exception\",\"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): SilkierHistoryVmFromFg {\r\n\t\treturn new SilkierHistoryVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class SilkierHistoryVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget fireInstanceId(): number {\r\n\t\treturn this.fg.get('fireInstanceId').value;\r\n\t}\r\n\tset fireInstanceId(val) {\r\n\t\tthis.fg.get('fireInstanceId').setValue(val);\r\n\t}\r\n\r\n\tget schedulerInstanceId(): string {\r\n\t\treturn this.fg.get('schedulerInstanceId').value;\r\n\t}\r\n\tset schedulerInstanceId(val) {\r\n\t\tthis.fg.get('schedulerInstanceId').setValue(val);\r\n\t}\r\n\r\n\tget schedulerName(): string {\r\n\t\treturn this.fg.get('schedulerName').value;\r\n\t}\r\n\tset schedulerName(val) {\r\n\t\tthis.fg.get('schedulerName').setValue(val);\r\n\t}\r\n\r\n\tget job(): string {\r\n\t\treturn this.fg.get('job').value;\r\n\t}\r\n\tset job(val) {\r\n\t\tthis.fg.get('job').setValue(val);\r\n\t}\r\n\r\n\tget trigger(): string {\r\n\t\treturn this.fg.get('trigger').value;\r\n\t}\r\n\tset trigger(val) {\r\n\t\tthis.fg.get('trigger').setValue(val);\r\n\t}\r\n\r\n\tget scheduledFireTimeUtc(): Date {\r\n\t\treturn this.fg.get('scheduledFireTimeUtc').value;\r\n\t}\r\n\tset scheduledFireTimeUtc(val) {\r\n\t\tthis.fg.get('scheduledFireTimeUtc').setValue(val);\r\n\t}\r\n\r\n\tget scheduledFireTimeUtcStr(): string {\r\n\t\treturn this.fg.get('scheduledFireTimeUtcStr').value;\r\n\t}\r\n\tset scheduledFireTimeUtcStr(val) {\r\n\t\tthis.fg.get('scheduledFireTimeUtcStr').setValue(val);\r\n\t}\r\n\r\n\tget actualFireTimeUtc(): Date {\r\n\t\treturn this.fg.get('actualFireTimeUtc').value;\r\n\t}\r\n\tset actualFireTimeUtc(val) {\r\n\t\tthis.fg.get('actualFireTimeUtc').setValue(val);\r\n\t}\r\n\r\n\tget actualFireTimeUtcStr(): string {\r\n\t\treturn this.fg.get('actualFireTimeUtcStr').value;\r\n\t}\r\n\tset actualFireTimeUtcStr(val) {\r\n\t\tthis.fg.get('actualFireTimeUtcStr').setValue(val);\r\n\t}\r\n\r\n\tget recovering(): boolean {\r\n\t\treturn this.fg.get('recovering').value;\r\n\t}\r\n\tset recovering(val) {\r\n\t\tthis.fg.get('recovering').setValue(val);\r\n\t}\r\n\r\n\tget finishedTimeUtc(): Date {\r\n\t\treturn this.fg.get('finishedTimeUtc').value;\r\n\t}\r\n\tset finishedTimeUtc(val) {\r\n\t\tthis.fg.get('finishedTimeUtc').setValue(val);\r\n\t}\r\n\r\n\tget finishedTimeUtcStr(): string {\r\n\t\treturn this.fg.get('finishedTimeUtcStr').value;\r\n\t}\r\n\tset finishedTimeUtcStr(val) {\r\n\t\tthis.fg.get('finishedTimeUtcStr').setValue(val);\r\n\t}\r\n\r\n\tget logMessage(): string {\r\n\t\treturn this.fg.get('logMessage').value;\r\n\t}\r\n\tset logMessage(val) {\r\n\t\tthis.fg.get('logMessage').setValue(val);\r\n\t}\r\n\r\n\tget exceptionMessage(): string {\r\n\t\treturn this.fg.get('exceptionMessage').value;\r\n\t}\r\n\tset exceptionMessage(val) {\r\n\t\tthis.fg.get('exceptionMessage').setValue(val);\r\n\t}\r\n\r\n\tget wasSuccessful(): boolean {\r\n\t\treturn this.fg.get('wasSuccessful').value;\r\n\t}\r\n\tset wasSuccessful(val) {\r\n\t\tthis.fg.get('wasSuccessful').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\nimport { SilkierExceptionMessageVm } from 'app/shared/generated/Silkier/Models/SilkierExceptionMessageVm'\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'pcg-view-exception-modal',\r\n templateUrl: './view-exception-modal.component.html',\r\n styleUrls: ['./view-exception-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class ViewExceptionModalComponent implements OnInit {\r\n id: number;\r\n exceptionMsg: string;\r\n\r\n constructor(public modal: NgbActiveModal, private httpClient: HttpClient) { }\r\n\r\n ngOnInit() {\r\n this.getException()\r\n }\r\n\r\n public getException() {\r\n const httpParams = new HttpParams().set('fireInstanceId', this.id);\r\n this.httpClient.get('api/Silkier/SilkierHistory/GetException', {\r\n\t\t\tparams: httpParams,\r\n\t\t}).pipe(untilDestroyed(this)).subscribe((resp : SilkierExceptionMessageVm) => {\r\n if (resp != null) {\r\n this.exceptionMsg = resp.exceptionMessage\r\n }\r\n })\r\n }\r\n\r\n}\r\n","
\r\n\t
View Exception Message
\r\n\t\r\n
\r\n
\r\n\t
{{ exceptionMsg }}
\r\n
\r\n
\r\n\t\r\n
\r\n","import { HttpClient, HttpParams } from '@angular/common/http';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { UntilDestroy, untilDestroyed } from '@ngneat/until-destroy';\r\nimport { SilkierLogMessageVm } from 'app/shared/generated/Silkier/Models/SilkierLogMessageVm'\r\n\r\n@UntilDestroy()\r\n@Component({\r\n selector: 'pcg-view-log-modal',\r\n templateUrl: './view-log-modal.component.html',\r\n styleUrls: ['./view-log-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class ViewLogModalComponent implements OnInit {\r\n id: number;\r\n logMsg: string;\r\n\r\n constructor(public modal: NgbActiveModal, private httpClient: HttpClient ) { }\r\n\r\n ngOnInit() {\r\n this.getLog();\r\n }\r\n\r\n public getLog() {\r\n const httpParams = new HttpParams().set('fireInstanceId', this.id);\r\n this.httpClient.get('api/Silkier/SilkierHistory/GetLog', {\r\n\t\t\tparams: httpParams,\r\n\t}).pipe(untilDestroyed(this)).subscribe((resp: SilkierLogMessageVm) => {\r\n if (resp != null) {\r\n this.logMsg = resp.logMessage\r\n }\r\n })\r\n }\r\n}\r\n","
\r\n\t
View Log
\r\n\t\r\n
\r\n
\r\n\t
\r\n
\r\n
\r\n\t\r\n
\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { SilkierHistoryVm } from 'app/shared/generated/Silkier/Models/SilkierHistoryVm';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\nimport { ViewExceptionModalComponent } from '../view-exception-modal/view-exception-modal.component';\r\nimport { ViewLogModalComponent } from '../view-log-modal/view-log-modal.component';\r\n\r\n@Component({\r\n selector: 'pcg-silkier-history',\r\n templateUrl: './silkier-history.component.html',\r\n styleUrls: ['./silkier-history.component.scss'],\r\n standalone: false\r\n})\r\nexport class SilkierHistoryComponent implements OnInit {\r\n // Silkier History Table\r\n @ViewChild(TableComponent, {static: true}) table: TableComponent;\r\n columns = SilkierHistoryVm.ColumnDefs;\r\n\r\n\r\n constructor(public title: Title, public ms:SystemMessageService, public modalService: NgbModal) {\r\n title.setTitle('Quartz History');\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n viewLogMessage(id: number){\r\n const modal = this.modalService.open(ViewLogModalComponent, {size: 'xl', animation: false});\r\n (modal.componentInstance).id = id;\r\n }\r\n\r\n viewExceptionMessage(id: number){\r\n const modal = this.modalService.open(ViewExceptionModalComponent, {size: 'xl', animation: false});\r\n (modal.componentInstance).id = id;\r\n }\r\n}\r\n","

{{title.getTitle()}}

\r\n
\r\n\r\n\r\n\r\n \r\n \r\n {{ columns.get('schedulerInstanceId').displayName}}\r\n {{row.schedulerInstanceId}}\r\n \r\n \r\n \r\n {{ columns.get('schedulerName').displayName}}\r\n {{row.schedulerName}}\r\n \r\n \r\n \r\n {{ columns.get('job').displayName}}\r\n {{row.job}}\r\n \r\n \r\n \r\n {{ columns.get('trigger').displayName}}\r\n {{row.trigger}}\r\n \r\n \r\n \r\n {{ columns.get('scheduledFireTimeUtcStr').displayName}}\r\n {{row.scheduledFireTimeUtcStr}}\r\n \r\n \r\n \r\n {{ columns.get('actualFireTimeUtcStr').displayName}}\r\n {{row.actualFireTimeUtcStr}}\r\n \r\n \r\n \r\n {{ columns.get('recovering').displayName}}\r\n {{row.recovering}}\r\n \r\n \r\n \r\n {{ columns.get('finishedTimeUtcStr').displayName}}\r\n {{row.finishedTimeUtcStr}}\r\n \r\n \r\n \r\n {{ columns.get('logMessage').displayName }}\r\n \r\n
View Log
\r\n \r\n
\r\n \r\n \r\n {{ columns.get('exceptionMessage').displayName }}\r\n \r\n
View Exception
\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 KnowledgeBaseDocumentVm {\r\n\tdocumentId: number;\r\n\tmodule?: any;\r\n\tpermissionRole?: any;\r\n\ttitle?: string;\r\n\tdescription?: string;\r\n\tcontent?: string;\r\n\tuploadFiles?: any;\r\n\tvideoId?: string;\r\n\tsortOrder?: 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'documentId': new UntypedFormControl(0, [...(validators['documentId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'module': new UntypedFormControl(null, [...(validators['module'] ?? []), ...[]]),\r\n\t\t\t'permissionRole': new UntypedFormControl(null, [...(validators['permissionRole'] ?? []), ...[]]),\r\n\t\t\t'title': new UntypedFormControl(null, [...(validators['title'] ?? []), ...[Validators.required, Validators.maxLength(50)]]),\r\n\t\t\t'description': new UntypedFormControl(null, [...(validators['description'] ?? []), ...[Validators.maxLength(500)]]),\r\n\t\t\t'content': new UntypedFormControl(null, [...(validators['content'] ?? []), ...[]]),\r\n\t\t\t'uploadFiles': new UntypedFormControl([], [...(validators['uploadFiles'] ?? []), ...[]]),\r\n\t\t\t'videoId': new UntypedFormControl(null, [...(validators['videoId'] ?? []), ...[]]),\r\n\t\t\t'sortOrder': new UntypedFormControl(null, [...(validators['sortOrder'] ?? []), ...[]])\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): KnowledgeBaseDocumentVmFromFg {\r\n\t\treturn new KnowledgeBaseDocumentVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class KnowledgeBaseDocumentVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget documentId(): number {\r\n\t\treturn this.fg.get('documentId').value;\r\n\t}\r\n\tset documentId(val) {\r\n\t\tthis.fg.get('documentId').setValue(val);\r\n\t}\r\n\r\n\tget module(): any {\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 permissionRole(): any {\r\n\t\treturn this.fg.get('permissionRole').value;\r\n\t}\r\n\tset permissionRole(val) {\r\n\t\tthis.fg.get('permissionRole').setValue(val);\r\n\t}\r\n\r\n\tget title(): string {\r\n\t\treturn this.fg.get('title').value;\r\n\t}\r\n\tset title(val) {\r\n\t\tthis.fg.get('title').setValue(val);\r\n\t}\r\n\r\n\tget description(): string {\r\n\t\treturn this.fg.get('description').value;\r\n\t}\r\n\tset description(val) {\r\n\t\tthis.fg.get('description').setValue(val);\r\n\t}\r\n\r\n\tget content(): string {\r\n\t\treturn this.fg.get('content').value;\r\n\t}\r\n\tset content(val) {\r\n\t\tthis.fg.get('content').setValue(val);\r\n\t}\r\n\r\n\tget videoId(): string {\r\n\t\treturn this.fg.get('videoId').value;\r\n\t}\r\n\tset videoId(val) {\r\n\t\tthis.fg.get('videoId').setValue(val);\r\n\t}\r\n\r\n\tget sortOrder(): number {\r\n\t\treturn this.fg.get('sortOrder').value;\r\n\t}\r\n\tset sortOrder(val) {\r\n\t\tthis.fg.get('sortOrder').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Component, HostListener } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { faBook, faFolder, faFolderOpen, faFile, faXmark } from '@fortawesome/pro-solid-svg-icons';\r\nimport { CdkDragDrop, moveItemInArray } from '@angular/cdk/drag-drop';\r\n\r\nimport { GlobalService } from 'app/shared/services/global.service';\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { KnowledgeBaseDocumentVm } from 'app/shared/generated/HelpDesk/Models/KnowledgeBaseDocumentVm';\r\nimport { BusinessAreaEnum } from 'app/core/enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from 'app/core/enums/generated/PermissionRole';\r\nimport { SelectItem } from 'app/shared/models/select-item';\r\n\r\n@Component({\r\n selector: 'pcg-knowledge-base',\r\n templateUrl: './knowledge-base.component.html',\r\n styleUrls: ['./knowledge-base.component.scss'],\r\n standalone: false\r\n})\r\nexport class KnowledgeBaseComponent {\r\n\r\n formGroup = KnowledgeBaseDocumentVm.Form;\r\n\r\n knowledgeBaseModules: SelectItem[] = [];\r\n permissionItems: SelectItem[];\r\n\r\n // Font awesome\r\n faIconName = { faBook, faFolder, faFolderOpen, faFile, faXmark };\r\n\r\n docOpened = false;\r\n isMobile = false;\r\n isSupportAdmin = false;\r\n videoUrl: string; \r\n hasSearchResults = true;\r\n\r\n // Module access variables\r\n hasAdminAccess = false;\r\n hasCiRepackAccess = false;\r\n hasHerosAccess = false;\r\n\thasMetabolicFormulaAccess = false;\r\n hasNdcsAccess = false;\r\n hasPharmacyAccess = false;\r\n hasRxConnectsAccess = false;\r\n hasSupportAccess = false; \r\n\r\n // File navigation\r\n showAdminSubMenu = false;\r\n showCiRepackSubMenu = false;\r\n showHerosSubMenu = false;\r\n showMetabolicSubMenu = false;\r\n showNdcSubMenu = false;\r\n showPfsSubMenu = false;\r\n showPharmacySubMenu = false;\r\n showRxConnectsSubMenu = false;\r\n showSupportSubMenu = false;\r\n showOtherSubMenu = false;\r\n\r\n // Document lists by module\r\n docList: Array;\r\n adminDocList: Array;\r\n ciRepackDocList: Array;\r\n herosDocList: Array;\r\n metabolicFormulaDocList: Array;\r\n ndcsDocList: Array;\r\n pfsDocList: Array;\r\n pharmacyDocList: Array;\r\n rxConnectsDocList: Array;\r\n supportDocList: Array;\r\n otherDocList: Array;\r\n\r\n isCreateDoc = false;\r\n isEditDoc = false;\r\n currentDocument: KnowledgeBaseDocumentVm;\r\n canEdit = false;\r\n\r\n editorString: any;\r\n textEditor: any;\r\n\r\n isError = false;\r\n errorStr = \"\";\r\n \r\n constructor(\r\n title: Title\r\n , private httpClient: HttpClient\r\n , public ms: SystemMessageService\r\n , private sec: SecurityService\r\n , private gs: GlobalService\r\n ) { title.setTitle('Knowledge Base'); }\r\n\r\n // Keeps track if nav is docked or not\r\n\tisFixed = false;\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.getDocuments();\r\n this.setModuleAccesses();\r\n this.getModules();\r\n\r\n this.gs.isNavFixed.subscribe(\r\n\t\t\tr => { this.isFixed = r; }\r\n\t\t);\r\n\t\tthis.isFixed = localStorage.getItem('isNavFixed') === 'true';\r\n }\r\n\r\n setModuleAccesses() {\r\n this.isSupportAdmin = this.sec?.hasModuleAccess(\r\n [BusinessAreaEnum.HelpDesk]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n );\r\n\r\n // Checks for Admin Module Access Roles\r\n this.hasAdminAccess = this.sec?.hasModuleAccess(\r\n [BusinessAreaEnum.Admin]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n );\r\n this.hasCiRepackAccess = this.sec?.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.CI]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t);\r\n this.hasHerosAccess = this.sec?.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.HEROS]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t);\r\n\t\tthis.hasMetabolicFormulaAccess = this.sec?.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.MetabolicFormula]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t);\r\n\t\tthis.hasNdcsAccess = this.sec?.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.NDC]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t);\r\n this.hasPharmacyAccess = this.sec?.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.Inventory]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.SystemAdmin))\r\n\t\t\r\n this.hasRxConnectsAccess = this.sec?.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.RxConnects]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.RxConnectsAdmin)\r\n\t\t);\r\n\t\tthis.hasSupportAccess = this.sec?.hasModuleAccess(\r\n\t\t\t[BusinessAreaEnum.HelpDesk]\r\n\t\t\t, SecurityService.setMinRole(PermissionRole.SystemAdmin)\r\n\t\t);\r\n }\r\n\r\n setCanEdit() {\r\n this.canEdit = false;\r\n switch (this.currentDocument?.module) {\r\n case 1: \r\n if (this.hasHerosAccess || this.isSupportAdmin) { this.canEdit = true; }\r\n break;\r\n case 3: \r\n if (this.hasNdcsAccess || this.isSupportAdmin) { this.canEdit = true; }\r\n break;\r\n case 4:\r\n if (this.hasPharmacyAccess || this.isSupportAdmin) { this.canEdit = true; }\r\n break;\r\n case 5: \r\n if (this.hasMetabolicFormulaAccess || this.isSupportAdmin) { this.canEdit = true; }\r\n break;\r\n case 6:\r\n if (this.hasCiRepackAccess || this.isSupportAdmin) { this.canEdit = true; }\r\n break;\r\n case 10:\r\n if (this.hasAdminAccess || this.isSupportAdmin) { this.canEdit = true; }\r\n break;\r\n case 11: \r\n if (this.hasRxConnectsAccess || this.isSupportAdmin) { this.canEdit = true; }\r\n break;\r\n case 12: \r\n if (this.hasSupportAccess || this.isSupportAdmin) { this.canEdit = true; }\r\n break;\r\n case 13: \r\n if (this.hasAdminAccess || this.isSupportAdmin) { this.canEdit = true; }\r\n break;\r\n case 14: \r\n if (this.hasAdminAccess || this.isSupportAdmin) { this.canEdit = true; }\r\n break;\r\n default: \r\n this.canEdit = false;\r\n break;\r\n }\r\n }\r\n\r\n // #region Document actions\r\n createDocument() {\r\n this.formGroup.reset();\r\n this.isCreateDoc = true;\r\n this.docOpened = true;\r\n this.formGroup.controls.documentId.setValue(0);\r\n this.editorString = \"\";\r\n this.isError = false;\r\n this.errorStr = \"\";\r\n }\r\n\r\n editDocument() {\r\n this.isEditDoc = true;\r\n this.formGroup.setValue(this.currentDocument);\r\n this.editorString = this.formGroup.controls.content.value;\r\n if (this.formGroup.controls.module.value != null) { this.getPermissions(); }\r\n this.isError = false;\r\n this.errorStr = \"\";\r\n }\r\n\r\n cancelDocumentEdit() { this.isEditDoc = false; }\r\n\r\n deleteDocument() {\r\n if (confirm(\"Are you sure you want to delete this record?\")) {\r\n this.httpClient.get(`api/HelpDesk/KnowledgeBase/DeleteKnowledgeBaseDocument?id=${this.currentDocument.documentId}`)\r\n .subscribe((sm: SystemMessage) => {\r\n if (sm?.isSuccessful) { \r\n this.docList = sm?.value;\r\n this.upsertSortedDocuments();\r\n this.closeDocument();\r\n this.isError = false;\r\n this.errorStr = \"\";\r\n }\r\n this.ms.setSystemMessage(sm.message, sm.messageClass);\r\n });\r\n }\r\n }\r\n\r\n openDocument(doc: KnowledgeBaseDocumentVm) {\r\n this.docOpened = true;\r\n this.isCreateDoc = false;\r\n this.isEditDoc = false;\r\n this.currentDocument = doc;\r\n this.isError = false;\r\n this.errorStr = \"\";\r\n if (this.currentDocument.videoId != null && this.currentDocument.videoId != \"\") {\r\n this.videoUrl = `https://player.vimeo.com/video/${this.currentDocument.videoId}`\r\n } else {\r\n this.videoUrl = \"\";\r\n }\r\n this.setCanEdit();\r\n }\r\n\r\n closeDocument() {\r\n this.isCreateDoc = false;\r\n this.isEditDoc = false;\r\n this.docOpened = false;\r\n this.formGroup = KnowledgeBaseDocumentVm.Form;\r\n this.currentDocument = new KnowledgeBaseDocumentVm();\r\n this.canEdit = false;\r\n this.videoUrl = \"\";\r\n this.isError = false;\r\n this.errorStr = \"\";\r\n }\r\n\r\n onSave() {\r\n this.isError = false;\r\n this.errorStr = \"\";\r\n\r\n if (this.formGroup.controls.module.value === null) {\r\n this.isError = true;\r\n this.errorStr += \"Module is required. \";\r\n } \r\n if (\r\n this.formGroup.controls.title.value === null \r\n || this.formGroup.controls.title.value === \"\"\r\n ) {\r\n this.isError = true;\r\n this.errorStr += \"Title is required. \";\r\n } \r\n if (this.formGroup.controls.permissionRole.value === null) {\r\n this.isError = true;\r\n this.errorStr += \"Permission is required. \";\r\n } \r\n\r\n if (this.isError === true) { return; }\r\n\r\n this.textEditor = document.querySelector(\"trix-editor\");\r\n this.formGroup.controls.content.setValue(this.textEditor.value);\r\n\r\n this.httpClient.post(\"api/HelpDesk/KnowledgeBase/SaveKnowledgeBaseDocument\", this.formGroup.getRawValue())\r\n .subscribe((sm: SystemMessage) => {\r\n if (sm?.isSuccessful) { \r\n // Clear the formGroup\r\n this.formGroup = KnowledgeBaseDocumentVm.Form;\r\n\r\n // Open created document\r\n this.openDocument(sm?.value);\r\n\r\n // Update document lists\r\n this.docList.push(sm?.value);\r\n this.upsertSortedDocuments();\r\n }\r\n this.ms.setSystemMessage(sm.message, sm.messageClass);\r\n });\r\n }\r\n // #endregion\r\n\r\n getDocuments() {\r\n this.docList = new Array();\r\n\r\n // Get List of Documents\r\n this.httpClient.get(\"api/HelpDesk/KnowledgeBase/GetKnowledgeBaseDocumentList\")\r\n .subscribe((docList: Array) => {\r\n this.docList = docList;\r\n this.upsertSortedDocuments();\r\n });\r\n }\r\n\r\n upsertSortedDocuments(filteredList: KnowledgeBaseDocumentVm[] = [], isFiltering = false) {\r\n // Clear old lists\r\n this.adminDocList = new Array();\r\n this.ciRepackDocList = new Array();\r\n this.herosDocList = new Array();\r\n this.metabolicFormulaDocList = new Array();\r\n this.ndcsDocList = new Array();\r\n this.pfsDocList = new Array();\r\n this.pharmacyDocList = new Array();\r\n this.rxConnectsDocList = new Array();\r\n this.supportDocList = new Array();\r\n this.otherDocList = new Array();\r\n\r\n // Ensure that docList does not contain duplicate documentIds\r\n this.docList = [...new Map(this.docList.map(doc => [doc.documentId, doc])).values()];\r\n var listToPullFrom = isFiltering ? filteredList : this.docList;\r\n \r\n // Sort documents my module into corresponding lists\r\n listToPullFrom.forEach((doc) => {\r\n switch (doc?.module) {\r\n case 1: \r\n if (\r\n this.sec?.hasModuleAccess(\r\n [ BusinessAreaEnum.HEROS ]\r\n , SecurityService.setMinRole(doc.permissionRole)\r\n )\r\n || this.isSupportAdmin\r\n ) { this.herosDocList?.push(doc); }\r\n break;\r\n case 3: \r\n if (\r\n this.sec?.hasModuleAccess(\r\n [ BusinessAreaEnum.NDC ]\r\n , SecurityService.setMinRole(doc.permissionRole)\r\n )\r\n || this.isSupportAdmin\r\n ) { this.ndcsDocList?.push(doc); }\r\n break;\r\n case 4:\r\n if (\r\n this.sec?.hasModuleAccess(\r\n [ BusinessAreaEnum.Inventory ]\r\n , SecurityService.setMinRole(doc.permissionRole)\r\n )\r\n || this.isSupportAdmin\r\n ) { this.pharmacyDocList?.push(doc); }\r\n break;\r\n case 5: \r\n if (\r\n this.sec?.hasModuleAccess(\r\n [ BusinessAreaEnum.MetabolicFormula ]\r\n , SecurityService.setMinRole(doc.permissionRole)\r\n )\r\n || this.isSupportAdmin\r\n ) { this.metabolicFormulaDocList?.push(doc); }\r\n break;\r\n case 6:\r\n if (\r\n this.sec?.hasModuleAccess(\r\n [ BusinessAreaEnum.CI ]\r\n , SecurityService.setMinRole(doc.permissionRole)\r\n )\r\n || this.isSupportAdmin\r\n ) { this.ciRepackDocList?.push(doc); }\r\n break;\r\n case 10:\r\n if (\r\n this.sec?.hasModuleAccess(\r\n [ BusinessAreaEnum.Admin ]\r\n , SecurityService.setMinRole(doc.permissionRole)\r\n )\r\n || this.isSupportAdmin\r\n ) { this.adminDocList?.push(doc); }\r\n break;\r\n case 11: \r\n if (\r\n this.sec?.hasModuleAccess(\r\n [ BusinessAreaEnum.RxConnects ]\r\n , SecurityService.setMinRole(doc.permissionRole)\r\n )\r\n || this.isSupportAdmin\r\n ) { this.rxConnectsDocList?.push(doc); }\r\n break;\r\n case 12: \r\n if (\r\n this.sec?.hasModuleAccess(\r\n [ BusinessAreaEnum.HelpDesk ]\r\n , SecurityService.setMinRole(doc.permissionRole)\r\n )\r\n ) { this.supportDocList?.push(doc); }\r\n break;\r\n case 13: \r\n this.pfsDocList?.push(doc);\r\n break;\r\n case 14: \r\n this.otherDocList?.push(doc);\r\n break;\r\n default: \r\n break;\r\n }\r\n });\r\n this.sortDocList(this.herosDocList);\r\n this.sortDocList(this.ndcsDocList);\r\n this.sortDocList(this.pharmacyDocList);\r\n this.sortDocList(this.metabolicFormulaDocList);\r\n this.sortDocList(this.ciRepackDocList);\r\n this.sortDocList(this.adminDocList);\r\n this.sortDocList(this.rxConnectsDocList);\r\n this.sortDocList(this.supportDocList);\r\n this.sortDocList(this.pfsDocList);\r\n this.sortDocList(this.otherDocList);\r\n }\r\n\r\n setImageInFormGroup(event) { \r\n this.ms.setSystemMessage(\"Save images individually to see format. May need to refresh page after saving to view image.\", \"warning\");\r\n this.formGroup?.controls.uploadFiles?.setValue(event); \r\n }\r\n\r\n getModules() {\r\n this.httpClient.get(`api/Select/KnowledgeBaseModules`).subscribe((items: SelectItem[]) => {\r\n this.knowledgeBaseModules = items;\r\n\r\n // Filter by module access\r\n if (!this.hasAdminAccess && !this.isSupportAdmin) {\r\n this.knowledgeBaseModules = this.knowledgeBaseModules.filter(o => o.value != 10);\r\n\r\n // Also use admin module access to filter PFS and Other\r\n this.knowledgeBaseModules = this.knowledgeBaseModules.filter(o => o.value != 13);\r\n this.knowledgeBaseModules = this.knowledgeBaseModules.filter(o => o.value != 14);\r\n }\r\n if (!this.hasCiRepackAccess && !this.isSupportAdmin) { this.knowledgeBaseModules = this.knowledgeBaseModules.filter(o => o.value != 6); }\r\n if (!this.hasHerosAccess && !this.isSupportAdmin) { this.knowledgeBaseModules = this.knowledgeBaseModules.filter(o => o.value != 1); }\r\n if (!this.hasMetabolicFormulaAccess && !this.isSupportAdmin) { this.knowledgeBaseModules = this.knowledgeBaseModules.filter(o => o.value != 5); }\r\n if (!this.hasNdcsAccess && !this.isSupportAdmin) { this.knowledgeBaseModules = this.knowledgeBaseModules.filter(o => o.value != 3); }\r\n if (!this.hasRxConnectsAccess && !this.isSupportAdmin) { this.knowledgeBaseModules = this.knowledgeBaseModules.filter(o => o.value != 11); }\r\n if (!this.hasSupportAccess && !this.isSupportAdmin) { this.knowledgeBaseModules = this.knowledgeBaseModules.filter(o => o.value != 12); }\r\n })\r\n }\r\n\r\n onModuleChange() {\r\n this.formGroup?.controls?.permissionRole?.setValue(null);\r\n this.permissionItems = new Array();\r\n if (this.formGroup?.controls?.module?.value != null) { this.getPermissions(); }\r\n }\r\n\r\n getPermissions() {\r\n this.httpClient.get(`api/Select/PermissionRoles?module=${this.formGroup?.controls?.module?.value}`)\r\n .subscribe((items: SelectItem[]) => { \r\n if (\r\n this.formGroup?.controls?.module?.value !== 13 \r\n && this.formGroup?.controls?.module?.value !== 14\r\n ) { this.permissionItems = items.filter(o => o.value !== 0); } // filter out 'no access'\r\n else { this.permissionItems = items; }\r\n });\r\n }\r\n\r\n drop(event: CdkDragDrop, module: BusinessAreaEnum) {\r\n switch (module) {\r\n case 1: \r\n if (this.hasHerosAccess || this.isSupportAdmin) {\r\n moveItemInArray(this.herosDocList, event.previousIndex, event.currentIndex);\r\n this.httpClient.post(\"api/HelpDesk/KnowledgeBase/SortKnowledgeBaseDocuments\", this.herosDocList)\r\n .subscribe((msg: SystemMessage) => {});\r\n }\r\n break;\r\n case 3: \r\n if (this.hasNdcsAccess || this.isSupportAdmin) {\r\n moveItemInArray(this.ndcsDocList, event.previousIndex, event.currentIndex);\r\n this.httpClient.post(\"api/HelpDesk/KnowledgeBase/SortKnowledgeBaseDocuments\", this.ndcsDocList)\r\n .subscribe((msg: SystemMessage) => {});\r\n }\r\n break; \r\n case 4:\r\n if (this.hasPharmacyAccess || this.isSupportAdmin) {\r\n moveItemInArray(this.pharmacyDocList, event.previousIndex, event.currentIndex);\r\n this.httpClient.post(\"api/HelpDesk/KnowledgeBase/SortKnowledgeBaseDocuments\", this.pharmacyDocList)\r\n .subscribe((msg: SystemMessage) => {});\r\n }\r\n break;\r\n case 5: \r\n if (this.hasMetabolicFormulaAccess || this.isSupportAdmin) {\r\n moveItemInArray(this.metabolicFormulaDocList, event.previousIndex, event.currentIndex);\r\n this.httpClient.post(\"api/HelpDesk/KnowledgeBase/SortKnowledgeBaseDocuments\", this.metabolicFormulaDocList)\r\n .subscribe((msg: SystemMessage) => {});\r\n }\r\n break;\r\n case 6:\r\n if (this.hasCiRepackAccess || this.isSupportAdmin) {\r\n moveItemInArray(this.ciRepackDocList, event.previousIndex, event.currentIndex);\r\n this.httpClient.post(\"api/HelpDesk/KnowledgeBase/SortKnowledgeBaseDocuments\", this.ciRepackDocList)\r\n .subscribe((msg: SystemMessage) => {});\r\n }\r\n break;\r\n case 10:\r\n if (this.hasAdminAccess || this.isSupportAdmin) {\r\n moveItemInArray(this.adminDocList, event.previousIndex, event.currentIndex);\r\n this.httpClient.post(\"api/HelpDesk/KnowledgeBase/SortKnowledgeBaseDocuments\", this.adminDocList)\r\n .subscribe((msg: SystemMessage) => {});\r\n }\r\n break;\r\n case 11: \r\n if (this.hasRxConnectsAccess || this.isSupportAdmin) {\r\n moveItemInArray(this.rxConnectsDocList, event.previousIndex, event.currentIndex);\r\n this.httpClient.post(\"api/HelpDesk/KnowledgeBase/SortKnowledgeBaseDocuments\", this.rxConnectsDocList)\r\n .subscribe((msg: SystemMessage) => {});\r\n }\r\n break;\r\n case 12: \r\n if (this.hasSupportAccess || this.isSupportAdmin) {\r\n moveItemInArray(this.supportDocList, event.previousIndex, event.currentIndex);\r\n this.httpClient.post(\"api/HelpDesk/KnowledgeBase/SortKnowledgeBaseDocuments\", this.supportDocList)\r\n .subscribe((msg: SystemMessage) => {});\r\n }\r\n break;\r\n case 13: \r\n if (this.hasAdminAccess || this.isSupportAdmin) {\r\n moveItemInArray(this.pfsDocList, event.previousIndex, event.currentIndex);\r\n this.httpClient.post(\"api/HelpDesk/KnowledgeBase/SortKnowledgeBaseDocuments\", this.pfsDocList)\r\n .subscribe((msg: SystemMessage) => {});\r\n }\r\n break;\r\n case 14: \r\n if (this.hasAdminAccess || this.isSupportAdmin) {\r\n moveItemInArray(this.otherDocList, event.previousIndex, event.currentIndex);\r\n this.httpClient.post(\"api/HelpDesk/KnowledgeBase/SortKnowledgeBaseDocuments\", this.otherDocList)\r\n .subscribe((msg: SystemMessage) => {});\r\n }\r\n break;\r\n default: \r\n this.ms.setSystemMessage(\"Module is not set\", \"warning\");\r\n break;\r\n }\r\n }\r\n\r\n // #region Searches\r\n searchDocuments(event) {\r\n var filteredList = this.docList.filter(o => \r\n o?.title?.toLowerCase().includes(event.target.value.toLowerCase()\r\n ) || o?.description?.toLowerCase().includes(event.target.value.toLowerCase()));\r\n this.upsertSortedDocuments(filteredList, true);\r\n\r\n if (filteredList.length == 0) {\r\n this.hasSearchResults = false;\r\n } else {\r\n this.hasSearchResults = true;\r\n }\r\n this.showAdminSubMenu = true;\r\n this.showCiRepackSubMenu = true;\r\n this.showHerosSubMenu = true;\r\n this.showMetabolicSubMenu = true;\r\n this.showNdcSubMenu = true;\r\n this.showPfsSubMenu = true;\r\n this.showPharmacySubMenu = true;\r\n this.showRxConnectsSubMenu = true;\r\n this.showSupportSubMenu = true;\r\n this.showOtherSubMenu = true;\r\n\r\n if (event.target.value === \"\") {\r\n this.showAdminSubMenu = false;\r\n this.showCiRepackSubMenu = false;\r\n this.showHerosSubMenu = false;\r\n this.showMetabolicSubMenu = false;\r\n this.showNdcSubMenu = false;\r\n this.showPfsSubMenu = false;\r\n this.showPharmacySubMenu = false;\r\n this.showRxConnectsSubMenu = false;\r\n this.showSupportSubMenu = false;\r\n this.showOtherSubMenu = false;\r\n this.hasSearchResults = true;\r\n }\r\n }\r\n\r\n clearSearch() {\r\n this.upsertSortedDocuments([], false);\r\n this.showAdminSubMenu = false;\r\n this.showCiRepackSubMenu = false;\r\n this.showHerosSubMenu = false;\r\n this.showMetabolicSubMenu = false;\r\n this.showNdcSubMenu = false;\r\n this.showPfsSubMenu = false;\r\n this.showPharmacySubMenu = false;\r\n this.showRxConnectsSubMenu = false;\r\n this.showSupportSubMenu = false;\r\n this.showOtherSubMenu = false;\r\n this.hasSearchResults = true;\r\n }\r\n // #endregion\r\n\r\n sortDocList(docList: any) { docList.sort((a, b) => { return a.sortOrder - b.sortOrder; }); }\r\n\r\n // #region Toggle file nav submenus\r\n toggleAdminSubMenu() { this.showAdminSubMenu = !this.showAdminSubMenu; }\r\n toggleCiRepackSubMenu() { this.showCiRepackSubMenu = !this.showCiRepackSubMenu; }\r\n toggleHerosSubMenu() { this.showHerosSubMenu = !this.showHerosSubMenu; }\r\n toggleMetabolicSubMenu() { this.showMetabolicSubMenu = !this.showMetabolicSubMenu; }\r\n toggleNdcSubMenu() { this.showNdcSubMenu = !this.showNdcSubMenu; }\r\n togglePfsSubMenu() { this.showPfsSubMenu = !this.showPfsSubMenu; }\r\n togglePharmacySubMenu() { this.showPharmacySubMenu = !this.showPharmacySubMenu; }\r\n toggleRxConnectsSubMenu() { this.showRxConnectsSubMenu = !this.showRxConnectsSubMenu; }\r\n toggleSupportSubMenu() { this.showSupportSubMenu = !this.showSupportSubMenu; }\r\n toggleOtherSubMenu() { this.showOtherSubMenu = !this.showOtherSubMenu; }\r\n // #endregion\r\n}","\r\n \r\n \r\n \r\n
\r\n
\r\n

{{ currentDocument?.title }}

\r\n

Edit Document

\r\n

Create Document

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

{{ currentDocument?.description }}

\r\n
\r\n
\r\n
\r\n\t\t\t \r\n\t\t
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n\t\t\t\t\t\r\n\t\t\t\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 \r\n
{{ errorStr }}
\r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n

Knowledge Base

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

No results found.

\r\n \r\n 0\"\r\n class=\"parent\"\r\n (click)=\"toggleAdminSubMenu()\"\r\n >\r\n \r\n Admin\r\n \r\n
\r\n
\r\n \r\n \r\n {{ adminDoc?.title }}\r\n \r\n
\r\n
\r\n\r\n \r\n 0\"\r\n class=\"parent\"\r\n (click)=\"toggleCiRepackSubMenu()\"\r\n >\r\n \r\n CI Repack\r\n \r\n
\r\n
\r\n \r\n \r\n {{ ciRepackDoc?.title }}\r\n \r\n
\r\n
\r\n\r\n \r\n 0\"\r\n class=\"parent\"\r\n (click)=\"toggleHerosSubMenu()\"\r\n >\r\n \r\n HEROS\r\n \r\n
\r\n
\r\n \r\n \r\n {{ herosDoc?.title }}\r\n \r\n
\r\n
\r\n\r\n \r\n 0\"\r\n class=\"parent\"\r\n (click)=\"toggleMetabolicSubMenu()\"\r\n >\r\n \r\n Metabolic Formula\r\n \r\n
\r\n
\r\n \r\n \r\n {{ metabolicFormulaDoc?.title }}\r\n \r\n
\r\n
\r\n\r\n \r\n 0\"\r\n class=\"parent\"\r\n (click)=\"toggleNdcSubMenu()\"\r\n >\r\n \r\n NDCs\r\n \r\n
\r\n
\r\n \r\n \r\n {{ ndcsDoc?.title }}\r\n \r\n
\r\n
\r\n\r\n \r\n 0\"\r\n class=\"parent\"\r\n (click)=\"togglePfsSubMenu()\"\r\n >\r\n \r\n PFS\r\n \r\n
\r\n
\r\n \r\n \r\n {{ pfsDoc?.title }}\r\n \r\n
\r\n
\r\n\r\n \r\n 0\"\r\n class=\"parent\"\r\n (click)=\"togglePharmacySubMenu()\"\r\n >\r\n \r\n Pharmacy\r\n \r\n
\r\n
\r\n \r\n \r\n {{ pharmacyDoc?.title }}\r\n \r\n
\r\n
\r\n\r\n \r\n 0\"\r\n class=\"parent\"\r\n (click)=\"toggleRxConnectsSubMenu()\"\r\n >\r\n \r\n Rx Connects\r\n \r\n
\r\n
\r\n \r\n \r\n {{ rxConnectsDoc?.title }}\r\n \r\n
\r\n
\r\n\r\n \r\n 0\"\r\n class=\"parent\"\r\n (click)=\"toggleSupportSubMenu()\"\r\n >\r\n \r\n Support\r\n \r\n
\r\n
\r\n \r\n \r\n {{ supportDoc?.title }}\r\n \r\n
\r\n
\r\n\r\n \r\n 0\"\r\n class=\"parent\"\r\n (click)=\"toggleOtherSubMenu()\"\r\n >\r\n \r\n Other\r\n \r\n
\r\n
\r\n \r\n \r\n {{ otherDoc?.title }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \t\r\n

Select an item to read

\r\n \r\n
\r\n
","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { SecurityService } from 'app/core/security/security.service';\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { validateForm } from 'app/shared/form-elements/form-validateForm.function';\r\nimport { ChangePasswordForm } from './change-password.form';\r\nimport { UserGuidVm } from 'app/shared/generated/Models/UserGuidVm';\r\n\r\n\r\n@Component({\n selector: 'pcg-change-password',\n templateUrl: './change-password.component.html',\n styleUrls: ['./change-password.component.scss'],\n standalone: false\n})\r\nexport class ChangePasswordComponent implements OnInit, OnDestroy {\r\n\r\n\t// Our form group\r\n\tchangePasswordForm: UntypedFormGroup = null;\r\n\r\n\t// Change password subscription\r\n\tchangePasswordSub: Subscription = new Subscription();\r\n\r\n\t// Fields sent to server with form\r\n\tuserGUID = '0';\r\n\tuserId = '0';\r\n\tcode = '';\r\n\tisExpired = false;\r\n\terrorMessage = \"\";\r\n\r\n\tconstructor(private route: ActivatedRoute, private ms: SystemMessageService,\r\n\t\tprivate sec: SecurityService, private router: Router, private http: HttpClient) {\r\n\t\t\tconst changePasswordForm = new ChangePasswordForm(http);\r\n\t\t\tthis.changePasswordForm = changePasswordForm.formGroup;\r\n\t}\r\n\r\n\t// Get query parameters on init\r\n\tngOnInit() {\r\n\t\tthis.userGUID = this.route.snapshot.params.id;\r\n\t\tthis.code = this.route.snapshot.queryParams.code;\r\n\r\n\t\tif (this.userGUID != null) {\r\n\t\t\tthis.changePasswordSub.add(\r\n\t\t\t\tthis.http.get(`api/Account/GetUserGuidVm?guid=${this.userGUID}`)\r\n\t\t\t\t\t.subscribe((vm: UserGuidVm) => {\r\n\t\t\t\t\t\tif (vm.isExpired === false) {\r\n\t\t\t\t\t\t\tthis.userId = vm.id.toString();\r\n\t\t\t\t\t\t\tthis.isExpired = vm.isExpired;\r\n\t\t\t\t\t\t} else if (vm.message === \"This email has expired because it has already been used to reset a password or a newer email has been sent. Please use the latest email or contact an administrator for assistance.\") { \r\n\t\t\t\t\t\t\tthis.isExpired = vm.isExpired; \r\n\t\t\t\t\t\t\tthis.errorMessage = vm.message;\r\n\t\t\t\t\t\t} else if (vm.message === \"This email has expired because it has been more than 7 days since it was sent.\" && vm.isExpired) {\r\n\t\t\t\t\t\t\tthis.isExpired = vm.isExpired; \r\n\t\t\t\t\t\t\tthis.errorMessage = vm.message;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t);\r\n\t\t} else { this.ms.setSystemMessage(\"There was a problem processing your change password request. Please contact an administrator.\", \"Error\"); }\r\n\t\t\r\n\t}\r\n\r\n\tonSubmit() {\r\n\t\tif (this.changePasswordForm.valid) {\r\n\t\t\tthis.changePasswordSub.add(\r\n\t\t\t\tthis.ms.getHttpObservable(this, 'api/Account/ChangePassword', this.changePasswordForm,\r\n\t\t\t\t\t{ userId: this.userId, code: this.code })\r\n\t\t\t\t\t.subscribe(msg => {\r\n\t\t\t\t\t\tif (msg && msg.isSuccessful) {\r\n\t\t\t\t\t\t\tthis.router.navigate(['/']);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t);\r\n\t\t} else { validateForm(this.changePasswordForm); }\r\n\t}\r\n\r\n\tngOnDestroy() { this.changePasswordSub.unsubscribe(); }\r\n}\r\n","
\r\n\r\n
\r\n

Change Password

\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\r\n\t\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\t\r\n\t
\r\n\t
{{errorMessage}}
\r\n
\r\n

\r\n\r\n
\r\n\tPassword Requirements
\r\n\tMust be at least 10 characters in Length.
\r\n\tCannot contain more than 2 sequential characters.
\r\n\tCannot match any of the passwords in our list of commonly used passwords.
\r\n
\r\n","import { Component, computed, inject, OnInit, signal, AfterViewInit } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport { toSignal } from '@angular/core/rxjs-interop';\r\nimport { toObservable } from '@angular/core/rxjs-interop';\r\n\r\nimport { NavigationService } from 'app/shared/navigation/navigation.service';\r\nimport { FdaRecallVm } from 'app/shared/generated/NdcDirectory/Models/FdaRecallVm';\r\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\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\n\r\n@Component({\r\n selector: 'pcg-recalls-widget',\r\n templateUrl: './recalls-widget.component.html',\r\n styleUrls: ['./recalls-widget.component.scss'],\r\n imports: [ NgbTooltip ],\r\n standalone: true\r\n})\r\nexport class RecallsWidgetComponent implements OnInit, AfterViewInit {\r\n\r\n public recalls = signal([]);\r\n readonly recalls$ = toObservable(this.recalls);\r\n\r\n navService = inject(NavigationService);\r\n http = inject(HttpClient);\r\n toastr = inject(ToastrService);\r\n sec = inject(SecurityService)\r\n \r\n displayLimit = signal(5);\r\n isScrolledToBottom = signal(false);\r\n loading = signal(false);\r\n hasRecalls = signal(false);\r\n\r\n dataSource = \"\";\r\n hasNdcModule = false;\r\n\r\n private recallList = toSignal(\r\n this.recalls$\r\n , { initialValue: [] as FdaRecallVm[] }\r\n );\r\n\r\n filteredRecalls = computed(() => { return this.recallList().slice(0, this.displayLimit()); });\r\n hasMoreRecalls = computed(() => { return this.recallList().length > this.displayLimit(); });\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void { \r\n this.loading.set(true);\r\n this.dataSource = `api/NdcDirectory/NdcDirectory/GetFdaRecallListWidget/` \r\n + `?state=FL` \r\n + `&status=Ongoing`\r\n + `&isInFormulary=true`;\r\n this.hasNdcModule = this.sec.hasModuleAccess([BusinessAreaEnum.NDC], SecurityService.setMinRole(PermissionRole.User))\r\n if (this.hasNdcModule) { this.loadRecalls(); }\r\n }\r\n\r\n ngAfterViewInit() { this.loading.set(false); }\r\n \r\n loadRecalls() {\r\n this.http.get(`${this.dataSource}`)\r\n .subscribe({\r\n next: (lst) => { \r\n this.recalls.set(lst); \r\n if (lst.length > 0) { this.hasRecalls.set(true); }\r\n }\r\n , error: (error) => {\r\n this.toastr.error(\r\n 'Error fetching recalls'\r\n , null\r\n , {\r\n positionClass: \"toast-top-right\"\r\n , timeOut: 2000\r\n }\r\n );\r\n console.error('Error fetching recalls:', error);\r\n }\r\n }\r\n );\r\n }\r\n\r\n showMore(): void { this.displayLimit.update(current => current + 5); }\r\n\r\n onScroll(event: Event): void {\r\n const element = event.target as HTMLElement;\r\n const atBottom = Math.abs(element.scrollHeight - element.scrollTop - element.clientHeight) < 1;\r\n this.isScrolledToBottom.set(atBottom);\r\n\r\n // Auto-load more on mobile when near bottom\r\n if (\r\n this.navService.isMobile() \r\n && element.scrollTop + element.clientHeight >= element.scrollHeight - 100\r\n ) {\r\n if (this.hasMoreRecalls()) { this.showMore(); }\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n
FDA Recalls
\r\n
\r\n\r\n @if (loading()) {
Loading...
}\r\n @else {\r\n
\r\n @if (filteredRecalls().length > 0) {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n @for (row of filteredRecalls(); track row.id) {\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n
Recall #Product DescriptionProduct NDC'sCode InfoDate
\r\n \r\n {{ row.recallNumber }}\r\n \r\n \r\n 40 ? 'Click recall # to see full detail' : null\">\r\n {{ row.productDescription?.length > 40 ? row.productDescription?.slice(0, 40 - 3) + '...' :\r\n row.productDescription }}\r\n \r\n \r\n \r\n {{ row.openFdaProductNdc.includes(',') ? row.openFdaProductNdc?.substring(0,\r\n row.openFdaProductNdc?.indexOf(',')) : row.openFdaProductNdc }}\r\n \r\n \r\n 40 ? 'Click recall # to see full detail' : null\">\r\n {{ row.codeInfo?.length > 40 ? row.codeInfo?.slice(0, 40 - 3) + '...' : row.codeInfo }}\r\n \r\n {{ row.recallInitiationDateStr }}
\r\n } @else {
No recalls to display
}\r\n\r\n @if (\r\n hasMoreRecalls()\r\n && !navService.isMobile()\r\n ) {\r\n
\r\n \r\n
\r\n }\r\n
\r\n }\r\n
","import { Component, OnInit, Renderer2, ViewContainerRef, ViewChild, inject, HostListener } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { DashboardNotificationsWidgetComponent } from './widgets/notifications-widget/notifications-widget.component';\r\nimport { RecallsWidgetComponent } from './widgets/recalls-widget/recalls-widget.component';\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 { SystemNotificationVm } from 'app/shared/generated/Administration/Models/SystemNotificationVm';\r\nimport { GlobalService } from 'app/shared/services/global.service';\r\n\r\n@Component({\r\n selector: 'pcg-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrls: ['./dashboard.component.scss'],\r\n standalone: false\r\n})\r\nexport class DashboardComponent implements OnInit {\r\n\r\n @ViewChild('widgetsContainer', { read: ViewContainerRef, static: true }) widgetsContainer: ViewContainerRef;\r\n\r\n sysNotifsList: SystemNotificationVm[] = [];\r\n\r\n renderer = inject(Renderer2);\r\n sec = inject(SecurityService);\r\n httpClient = inject(HttpClient);\r\n \r\n /*\r\n Classes set to generated widgets, if you want to a use a non-global css class\r\n go to component css file and use :host-context(.class-name) as the selector\r\n */\r\n defaultClasses = ['col-12', 'col-lg-6', 'col-xl-4', 'mb-3', 'px-4', 'px-lg-3'];\r\n\r\n MAX_PER_ROW = 3;\r\n\r\n widgets: any = [];\r\n\r\n showWindow = false;\r\n isMobile = false;\r\n\r\n constructor(public title: Title) { title.setTitle('Dashboard'); }\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.setWidgets(); \r\n this.loadComponents(); \r\n this.checkForSystemNotification();\r\n }\r\n\r\n setWidgets() {\r\n this.widgets = [ \r\n { \r\n component: DashboardNotificationsWidgetComponent\r\n , classes: this.defaultClasses \r\n } \r\n ];\r\n\r\n let hasNdcAccess = this.sec.hasModuleAccess(\r\n [ BusinessAreaEnum.NDC ]\r\n , SecurityService.setMinRole(PermissionRole.User)\r\n );\r\n if (hasNdcAccess) { this.widgets.push({ component: RecallsWidgetComponent, classes: this.defaultClasses }); }\r\n }\r\n \r\n // Sets col size depending on max per row, making first widget take up any extra space\r\n //**CURRENTLY not in use, had feedback where widget was 'too big', keeping code just not calling it **//\r\n getClasses() {\r\n const totalWidgets = this.widgets.length;\r\n const widgetSize = Math.floor(12 / this.MAX_PER_ROW);\r\n const remainder = totalWidgets % this.MAX_PER_ROW;\r\n const missingSpots = remainder == 0 ? 0 : this.MAX_PER_ROW - remainder;\r\n const firstSize = widgetSize + (widgetSize * missingSpots);\r\n \r\n this.widgets.forEach((widget, index) => {\r\n widget.classes.push(...this.defaultClasses);\r\n \r\n if (totalWidgets === 1) { widget.classes.push('col-12'); } \r\n else if (\r\n remainder > 0 \r\n && index === 0\r\n ) {\r\n widget.classes.push(`col-xl-${firstSize}`);\r\n missingSpots % 2 == 0 || totalWidgets == 2 \r\n ? widget.classes.push('col-lg-6') \r\n : null;\r\n } else { widget.classes.push(`col-xl-${widgetSize}`, `col-lg-6`); }\r\n });\r\n }\r\n\r\n async loadComponents() {\r\n this.widgets.forEach(component => {\r\n const ref = this.widgetsContainer.createComponent(component.component);\r\n component.classes.forEach((className) => { this.renderer.addClass(ref.location.nativeElement, className); })\r\n });\r\n }\r\n\r\n checkForSystemNotification() {\r\n\t\tthis.httpClient.get(`api/Administration/SystemNotification/CheckForSystemNotification?ngsw-bypass=true`)\r\n\t\t\t.subscribe((lst: SystemNotificationVm[]) => {\r\n\t\t\t\tvar dismissed = JSON.parse(localStorage.getItem(\"systemNotification\")!);\r\n var ids = [];\r\n\t\t\t\tfor (var x = 0; x < lst?.length; x++) { ids.push(lst[x]?.id); }\r\n\r\n\t\t\t\tvar idsNotDismissed = ids.filter(o => !dismissed?.includes(o));\r\n if (idsNotDismissed.length > 0) { this.sysNotifsList = lst?.filter(o => idsNotDismissed.includes(o?.id)); }\r\n \r\n\t\t\t\tif (this.sysNotifsList.length > 0) { \r\n for (var i = 0; i < this.sysNotifsList?.length; i++) {\r\n var notification = this.sysNotifsList[i];\r\n if (\r\n notification.startDate != null\r\n && notification.endDate != null\r\n ) { this.showWindow = true; }\r\n }\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n dismiss(vm: SystemNotificationVm) {\r\n\t\tvar dismissed = JSON.parse(localStorage.getItem(\"systemNotification\")!);\r\n\t\tif (dismissed == null) {\r\n\t\t\tvar obj = [vm.id];\r\n\t\t\tlocalStorage.setItem(\"systemNotification\", JSON.stringify(obj));\r\n\t\t} else {\r\n\t\t\tvar preset = dismissed;\r\n\t\t\tpreset.push(vm.id);\r\n\t\t\tlocalStorage.setItem(\"systemNotification\", JSON.stringify(preset));\r\n\t\t}\r\n\r\n var dismissed = JSON.parse(localStorage.getItem(\"systemNotification\")!);\r\n var ids = [];\r\n for (var x = 0; x < this.sysNotifsList?.length; x++) { ids.push(this.sysNotifsList[x]?.id); }\r\n var idsNotDismissed = ids.filter(o => !dismissed?.includes(o));\r\n if (idsNotDismissed.length > 0) { this.sysNotifsList = this.sysNotifsList?.filter(o => idsNotDismissed.includes(o?.id)); }\r\n else { this.sysNotifsList = []; }\r\n\t}\r\n}\r\n","\r\n@if (sysNotifsList?.length > 0) {\r\n @if (isMobile) {

}\r\n @for (row of sysNotifsList; track row;) {\r\n
\r\n \r\n
{{ row?.title }}
\r\n
{{ row?.message }}
\r\n @if (showWindow) {
The window will be from {{ row.startDateStr }} to {{ row.endDateStr }}
}\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, OnInit } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n@Component({\n selector: 'pcg-error404',\n templateUrl: './error404.component.html',\n styleUrls: ['./error404.component.scss'],\n standalone: false\n})\r\nexport class Error404Component implements OnInit {\r\n\r\n\tconstructor(public title: Title) {\r\n\t\ttitle.setTitle('Error 404');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t}\r\n\r\n}\r\n","

{{title.getTitle()}}

\r\n
\r\n

The page could not be found.

\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 ForgotPasswordVm {\r\n\temail?: string;\r\n\tisWelcomeEmail: boolean;\r\n\tisHeros: boolean;\r\n\tisSendToAll: 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'email': new UntypedFormControl(null, [...(validators['email'] ?? []), ...[Validators.required, Validators.email]]),\r\n\t\t\t'isWelcomeEmail': new UntypedFormControl(false, [...(validators['isWelcomeEmail'] ?? []), ...[]]),\r\n\t\t\t'isHeros': new UntypedFormControl(false, [...(validators['isHeros'] ?? []), ...[]]),\r\n\t\t\t'isSendToAll': new UntypedFormControl(false, [...(validators['isSendToAll'] ?? []), ...[]])\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): ForgotPasswordVmFromFg {\r\n\t\treturn new ForgotPasswordVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class ForgotPasswordVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\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 isWelcomeEmail(): boolean {\r\n\t\treturn this.fg.get('isWelcomeEmail').value;\r\n\t}\r\n\tset isWelcomeEmail(val) {\r\n\t\tthis.fg.get('isWelcomeEmail').setValue(val);\r\n\t}\r\n\r\n\tget isHeros(): boolean {\r\n\t\treturn this.fg.get('isHeros').value;\r\n\t}\r\n\tset isHeros(val) {\r\n\t\tthis.fg.get('isHeros').setValue(val);\r\n\t}\r\n\r\n\tget isSendToAll(): boolean {\r\n\t\treturn this.fg.get('isSendToAll').value;\r\n\t}\r\n\tset isSendToAll(val) {\r\n\t\tthis.fg.get('isSendToAll').setValue(val);\r\n\t}\r\n}\r\n","import { AfterViewInit, Component, ElementRef, OnDestroy, ViewChild } from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { validateForm } from 'app/shared/form-elements/form-validateForm.function';\r\nimport { ForgotPasswordVm } from 'app/shared/generated/Models/ForgotPasswordVm';\r\n\r\n@Component({\r\n selector: 'pcg-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.scss'],\r\n standalone: false\r\n})\r\nexport class ForgotPasswordComponent implements OnDestroy, AfterViewInit {\r\n\r\n\t@ViewChild('footerEl', { static: true }) footerEl: ElementRef;\r\n\r\n\tforgotPasswordForm = ForgotPasswordVm.Form;\r\n\tforgotPasswordSub: Subscription = new Subscription();\r\n\tcheckEmail = false;\r\n\r\n\tconstructor(private ms: SystemMessageService) { }\r\n\r\n ngAfterViewInit() {\r\n\t\tconst footContainer = document.querySelector('#footer .container');\r\n\t\tfootContainer?.insertBefore(this.footerEl.nativeElement, footContainer.firstChild);\r\n }\r\n\r\n\tonSubmit() {\r\n\t\tif (this.forgotPasswordForm.valid) {\r\n\t\t\tthis.forgotPasswordSub.add(this.ms.getHttpObservable(this, 'api/Account/ForgotPassword', this.forgotPasswordForm)\r\n\t\t\t\t.subscribe(msg => { if (msg && msg.isSuccessful) { this.checkEmail = true; } }));\r\n\t\t} else { validateForm(this.forgotPasswordForm); }\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.forgotPasswordSub.unsubscribe();\r\n\t\tthis.footerEl.nativeElement.parentNode.removeChild(this.footerEl.nativeElement);\r\n\t}\r\n}\r\n","
\r\n\r\n
\r\n
\r\n\t
\r\n\t\t

Forgot Password

\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\t\r\n\t\tBack to Login\r\n\t
\r\n\t
\r\n\t\t

Forgot Password Confirmation

\r\n\t\t

Please check your email to reset your password

\r\n\t\tBack to Login\r\n\t
\r\n
\r\n
Florida Division of Emergency Preparedness and Community Support
\r\n","import { UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\n\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class HelpDeskFeedbackVm {\r\n\tid: number;\r\n\thelpDeskTicketId: number;\r\n\thelpDeskTicketSubject?: string;\r\n\thelpDeskTicketFacility?: string;\r\n\trating: number;\r\n\tcomment?: string;\r\n\tuserConcurrencyStamp?: 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'helpDeskTicketId': new UntypedFormControl(0, [...(validators['helpDeskTicketId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'helpDeskTicketSubject': new UntypedFormControl(null, [...(validators['helpDeskTicketSubject'] ?? []), ...[]]),\r\n\t\t\t'helpDeskTicketFacility': new UntypedFormControl(null, [...(validators['helpDeskTicketFacility'] ?? []), ...[]]),\r\n\t\t\t'rating': new UntypedFormControl(0, [...(validators['rating'] ?? []), ...[Validators.required, Validators.min(1), Validators.max(5)]]),\r\n\t\t\t'comment': new UntypedFormControl(null, [...(validators['comment'] ?? []), ...[Validators.maxLength(1000)]]),\r\n\t\t\t'userConcurrencyStamp': new UntypedFormControl(null, [...(validators['userConcurrencyStamp'] ?? []), ...[]])\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): HelpDeskFeedbackVmFromFg {\r\n\t\treturn new HelpDeskFeedbackVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class HelpDeskFeedbackVmFromFg {\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 helpDeskTicketId(): number {\r\n\t\treturn this.fg.get('helpDeskTicketId').value;\r\n\t}\r\n\tset helpDeskTicketId(val) {\r\n\t\tthis.fg.get('helpDeskTicketId').setValue(val);\r\n\t}\r\n\r\n\tget helpDeskTicketSubject(): string {\r\n\t\treturn this.fg.get('helpDeskTicketSubject').value;\r\n\t}\r\n\tset helpDeskTicketSubject(val) {\r\n\t\tthis.fg.get('helpDeskTicketSubject').setValue(val);\r\n\t}\r\n\r\n\tget helpDeskTicketFacility(): string {\r\n\t\treturn this.fg.get('helpDeskTicketFacility').value;\r\n\t}\r\n\tset helpDeskTicketFacility(val) {\r\n\t\tthis.fg.get('helpDeskTicketFacility').setValue(val);\r\n\t}\r\n\r\n\tget rating(): number {\r\n\t\treturn this.fg.get('rating').value;\r\n\t}\r\n\tset rating(val) {\r\n\t\tthis.fg.get('rating').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 userConcurrencyStamp(): string {\r\n\t\treturn this.fg.get('userConcurrencyStamp').value;\r\n\t}\r\n\tset userConcurrencyStamp(val) {\r\n\t\tthis.fg.get('userConcurrencyStamp').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { UntypedFormControl, Validators } from '@angular/forms';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { faStar } from '@fortawesome/pro-solid-svg-icons';\r\nimport { InvisibleReCaptchaComponent } from 'ngx-captcha';\r\n\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { HelpDeskFeedbackVm } from 'app/shared/generated/HelpDesk/Models/HelpDeskFeedbackVm';\r\nimport { environment } from 'environments/environment';\r\n\r\n@Component({\r\n selector: 'pcg-help-desk-ticket-feedback',\r\n templateUrl: './help-desk-ticket-feedback.component.html',\r\n styleUrls: ['./help-desk-ticket-feedback.component.scss'],\r\n standalone: false\r\n})\r\nexport class HelpDeskTicketFeedbackComponent implements OnInit, OnDestroy {\r\n\r\n // reCaptcha properties\r\n\t@ViewChild('captchaElem') captchaElem: InvisibleReCaptchaComponent ;\r\n\tsiteKey: string = environment.siteKey; // should pick up environment specific siteKey\r\n\r\n\tpublic captchaIsLoaded = false;\r\n\tpublic captchaSuccess = false;\r\n\tpublic captchaResponse?: string;\r\n\tpublic captchaIsReady = false;\r\n\tpublic recaptcha: any = null;\r\n\tpublic execute: any;\r\n\r\n formGroup = HelpDeskFeedbackVm.Form;\r\n\r\n starRating: number = 0;\r\n isError = false;\r\n\r\n stars = document.getElementsByClassName(\"star-icon\");\r\n faIconName = { faStar };\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute\r\n , private httpClient: HttpClient\r\n , public sm: SystemMessageService\r\n , private cdr: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getFeedback();\r\n this.formGroup.addControl('recaptcha', new UntypedFormControl('', Validators.required));\r\n }\r\n\r\n getFeedback() {\r\n this.httpClient.get(\r\n `api/HelpDesk/HelpDeskFeedback/GetModel?helpDeskTicketId=${this.activatedRoute.snapshot.params.id}&guid=${this.activatedRoute.snapshot.params.guid}`\r\n ).subscribe((vm: HelpDeskFeedbackVm) => { \r\n this.formGroup.patchValue(vm);\r\n this.addStars(this.formGroup.controls.rating.value);\r\n });\r\n }\r\n\r\n saveForm() {\r\n this.isError = false;\r\n if (this.starRating > 0) { this.formGroup.controls.rating.setValue(this.starRating); }\r\n else {\r\n this.isError = true;\r\n return;\r\n }\r\n \r\n this.httpClient.post(`api/HelpDesk/HelpDeskFeedback/Save`, this.formGroup.getRawValue())\r\n .subscribe((msg: SystemMessage) => {\r\n this.sm.setSystemMessage(msg.message, msg.messageClass);\r\n if (!msg.isSuccessful) { \r\n this.formGroup.controls.rating.setValue(0); \r\n this.addStars(0);\r\n }\r\n });\r\n }\r\n\r\n addStars(starNum) {\r\n this.removeStars();\r\n for (let i=0; i < starNum; i++) { this.stars[i]?.classList?.add(\"star-icon-filled\"); }\r\n this.starRating = starNum;\r\n }\r\n\r\n removeStars() {\r\n for (let i=0; i < 5; i++) { this.stars[i]?.classList?.remove(\"star-icon-filled\"); }\r\n }\r\n\r\n // Captcha callbacks\r\n\thandleReset() {\r\n\t\tthis.captchaSuccess = false;\r\n\t\tthis.captchaResponse = undefined;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleReady(): void {\r\n\t\tthis.captchaIsReady = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t\tthis.execute = setInterval(() => { this.captchaElem?.execute(); }, 5000);\r\n\t}\r\n\r\n\thandleLoad(): void {\r\n\t\tthis.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleSuccess(captchaResponse: string): void {\r\n\t\tthis.captchaSuccess = true;\r\n\t\tthis.captchaResponse = captchaResponse;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n ngOnDestroy(): void { clearInterval(this.execute); }\r\n}\r\n","
0\" class=\"ticket-feedback\">\r\n \r\n
\r\n
\r\n \r\n

User Feedback Survey

\r\n
\r\n

\r\n Thank you for using the HOMER Support Desk Ticketing system. Your Support Desk Ticket has been completed and closed. \r\n
\r\n Please help us improve our customer support by providing feedback on your experience.\r\n

\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
ID:
\r\n

{{ formGroup.controls.helpDeskTicketId.value }}

\r\n
\r\n
\r\n
Subject:
\r\n

{{ formGroup.controls.helpDeskTicketSubject.value }}

\r\n
\r\n
\r\n
Facility:
\r\n

{{ formGroup.controls.helpDeskTicketFacility.value }}

\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
Rate Your Experience
\r\n
\r\n
\r\n
\r\n {{ this.starRating }} / 5 \r\n   \r\n \r\n \r\n \r\n \t\r\n \r\n
\r\n \r\n \r\n Characters left: {{1000 - formGroup.controls.comment.value?.length}}\r\n \r\n
\r\n
\r\n
\r\n
Rating is required to submit this feedback.
\r\n \r\n\r\n \r\n
\r\n
0\" \r\n class=\"alert alert-success text-center\"\r\n >Thank you for your response! Your feedback has been submitted.
\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 PfsHelpTicketVm {\r\n\tfullName?: string;\r\n\temail?: string;\r\n\tphoneNumber?: string;\r\n\tfacilityId: number;\r\n\tfacilityName?: string;\r\n\tcategoryId: number;\r\n\tcategoryName?: string;\r\n\tpriorityId: number;\r\n\tpriorityName?: string;\r\n\tsubject?: string;\r\n\tdescription?: string;\r\n\thoneyPot?: 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'fullName': new UntypedFormControl(null, [...(validators['fullName'] ?? []), ...[Validators.required, Validators.maxLength(250), Validators.pattern(\"^[a-zA-Z\\\\s\\\\'\\\\-\\\\']*$\")]]),\r\n\t\t\t'email': new UntypedFormControl(null, [...(validators['email'] ?? []), ...[Validators.required, Validators.email, Validators.maxLength(100), Validators.pattern(\"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-z]{2,4}$\")]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[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'categoryId': new UntypedFormControl(0, [...(validators['categoryId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'categoryName': new UntypedFormControl(null, [...(validators['categoryName'] ?? []), ...[]]),\r\n\t\t\t'priorityId': new UntypedFormControl(0, [...(validators['priorityId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'priorityName': new UntypedFormControl(null, [...(validators['priorityName'] ?? []), ...[]]),\r\n\t\t\t'subject': new UntypedFormControl(null, [...(validators['subject'] ?? []), ...[Validators.required, Validators.maxLength(200), Validators.pattern(\"^[a-zA-Z0-9\\\\s\\\\'\\\\-\\\\?\\\\.\\\\']*$\")]]),\r\n\t\t\t'description': new UntypedFormControl(null, [...(validators['description'] ?? []), ...[Validators.required, Validators.maxLength(500), Validators.pattern(\"^[a-zA-Z0-9\\\\s\\\\'\\\\-\\\\?\\\\.\\\\']*$\")]]),\r\n\t\t\t'honeyPot': new UntypedFormControl(null, [...(validators['honeyPot'] ?? []), ...[]])\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): PfsHelpTicketVmFromFg {\r\n\t\treturn new PfsHelpTicketVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class PfsHelpTicketVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\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 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\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 categoryId(): number {\r\n\t\treturn this.fg.get('categoryId').value;\r\n\t}\r\n\tset categoryId(val) {\r\n\t\tthis.fg.get('categoryId').setValue(val);\r\n\t}\r\n\r\n\tget categoryName(): string {\r\n\t\treturn this.fg.get('categoryName').value;\r\n\t}\r\n\tset categoryName(val) {\r\n\t\tthis.fg.get('categoryName').setValue(val);\r\n\t}\r\n\r\n\tget priorityId(): number {\r\n\t\treturn this.fg.get('priorityId').value;\r\n\t}\r\n\tset priorityId(val) {\r\n\t\tthis.fg.get('priorityId').setValue(val);\r\n\t}\r\n\r\n\tget priorityName(): string {\r\n\t\treturn this.fg.get('priorityName').value;\r\n\t}\r\n\tset priorityName(val) {\r\n\t\tthis.fg.get('priorityName').setValue(val);\r\n\t}\r\n\r\n\tget subject(): string {\r\n\t\treturn this.fg.get('subject').value;\r\n\t}\r\n\tset subject(val) {\r\n\t\tthis.fg.get('subject').setValue(val);\r\n\t}\r\n\r\n\tget description(): string {\r\n\t\treturn this.fg.get('description').value;\r\n\t}\r\n\tset description(val) {\r\n\t\tthis.fg.get('description').setValue(val);\r\n\t}\r\n\r\n\tget honeyPot(): string {\r\n\t\treturn this.fg.get('honeyPot').value;\r\n\t}\r\n\tset honeyPot(val) {\r\n\t\tthis.fg.get('honeyPot').setValue(val);\r\n\t}\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { AbstractControl, UntypedFormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { environment } from 'environments/environment';\r\nimport { InvisibleReCaptchaComponent } from 'ngx-captcha';\r\nimport { ActivatedRoute } 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 { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { validateForm } from 'app/shared/form-elements/form-validateForm.function';\r\nimport { PfsHelpTicketVm } from 'app/shared/generated/Models/Public/PfsHelpTicketVm';\r\nimport { pcgSettings } from 'app/shared/generated/pcg-settings';\r\nimport { SelectItem } from 'app/shared/models/select-item';\r\n\r\n@Component({\r\n selector: 'pcg-public-help-ticket',\r\n templateUrl: './help-ticket.component.html',\r\n styleUrls: ['./help-ticket.component.scss'],\r\n standalone: false\r\n})\r\nexport class PublicHelpTicketComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('facilitySelect', { static: false }) facilitySelect: PcgSelectComponent;\r\n @ViewChild('categorySelect', { static: false }) categorySelect: PcgSelectComponent;\r\n @ViewChild('prioritySelect', { static: false }) prioritySelect: PcgSelectComponent;\r\n @ViewChild('captchaElem') captchaElem: InvisibleReCaptchaComponent;\r\n\r\n formGroup = PfsHelpTicketVm.Form;\r\n model = PfsHelpTicketVm.GetModel(this.formGroup);\r\n categories: SelectItem[] = [];\r\n\r\n public captchaIsLoaded = false;\r\n\tpublic captchaSuccess = false;\r\n public captchaIsReady = false;\t\r\n emptyCaptcha: boolean = true;\r\n isSuccess = false;\r\n isRegister = false;\r\n\t\r\n\tpublic recaptcha: any = null;\r\n public execute: any; \r\n honeypotControl: any;\r\n \r\n public captchaResponse?: string;\r\n returnUrl = \"\";\r\n facilityName = \"\";\r\n categoryName = \"Login Issues\";\r\n priorityName = \"High\";\r\n headerStr = \"Create Support Desk Ticket\";\r\n siteKey: string = environment.siteKey; // should pick up environment specific siteKey\r\n infoText = \"The Pharmaceutical Forms System (PFS) Support provides a single source of assistance and resolution \" \r\n + \"for any PFS-related problems or request. This includes providing useful answers regarding access, permissions, and using PFS. \" \r\n + \"In addition, the PFS Support is used to report suspected bugs experienced while using PFS and the User Portal. \" \r\n + \"To reach the PFS Support please submit your Support Desk Ticket request via this form or send email to \" \r\n + \"pfssupport@doh.state.fl.us. The Support System uses the PFS Support Desk Ticketing System and will assign your email or \" \r\n + \"phone call to a Support Desk Ticket. You will receive auto-notification back that lets you know your email has been received, \" \r\n + \"and provides you with a Support Desk Ticket number for reference.\";\r\n facilityDataSource = \"api/PublicPfsRegister/PfsFacilities\";\r\n categoryDataSource = \"api/PublicPfsHelpTicket/PfsHelpCategories\";\r\n priorityDataSource = \"api/PublicPfsHelpTicket/PfsHelpPriorities\";\r\n \r\n constructor(\r\n private ms: SystemMessageService\r\n , private cdr: ChangeDetectorRef\r\n , private route: ActivatedRoute\r\n , private httpClient: HttpClient\r\n ) { }\r\n\r\n ngOnInit() {\r\n const queryParams = this.route?.snapshot?.queryParams;\r\n if (queryParams && queryParams[\"id\"] === \"register\") { \r\n this.isRegister = true; \r\n this.headerStr = \"Register for an account in HOMER\";\r\n this.infoText = \"Fill out your information and select your requested facility from the dropdown list below. \" \r\n + \"This will submit an account request to the BPHP support staff.\";\r\n this.facilityDataSource = \"api/PublicHelpTicket/Facilities\";\r\n this.categoryDataSource = \"api/PublicHelpTicket/HelpDeskCategories\";\r\n this.priorityDataSource = \"api/PublicHelpTicket/HelpDeskPriorities\";\r\n this.categoryName = \"Account Registration\";\r\n this.formGroup.controls.categoryId.disable();\r\n this.setEnv(false); \r\n } else {\r\n this.model.categoryId = 4;\r\n this.setEnv(true); \r\n }\r\n\r\n this.httpClient.get(this.categoryDataSource).subscribe((items: SelectItem[]) => { \r\n this.categories = items;\r\n if (this.isRegister === true) { this.model.categoryId = items.find(o => o.text === \"Account Registration\")?.value; }\r\n });\r\n this.model.categoryName = this.categoryName;\r\n this.model.priorityName = this.priorityName;\r\n this.model.priorityId = 1; \r\n \r\n this.setUpHoneyPot(); \r\n this.formGroup.addControl('recaptcha', new UntypedFormControl('', Validators.required));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.captchaIsLoaded = true;\r\n \tthis.cdr.detectChanges();\r\n\t}\r\n\r\n setUpHoneyPot() {\r\n\t\tthis.formGroup.controls['honeyPot'].setValidators(this.requireFalse());\r\n\t\tthis.formGroup.updateValueAndValidity();\r\n\t}\r\n\r\n requireFalse() : ValidatorFn {\r\n\t\treturn (control : AbstractControl) : ValidationErrors | null => {\r\n\t\t\tif (control.value === true) { return { honeyPot: true}; }\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n handleReset() {\r\n\t\tthis.captchaSuccess = false;\r\n\t\tthis.captchaResponse = undefined;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n handleReady(): void {\r\n\t\tthis.captchaIsReady = true;\r\n\t\tthis.cdr.detectChanges();\r\n this.execute = setInterval(() => {\r\n\t\t\tthis.captchaElem?.execute();\r\n this.captchaElem?.getResponse() !== '' \r\n ? this.emptyCaptcha = false \r\n : this.emptyCaptcha = true;\r\n\t\t}, 2000);\r\n }\r\n\r\n handleLoad(): void {\r\n\t\tthis.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n }\r\n\r\n handleSuccess(captchaResponse: string): void {\r\n\t\tthis.captchaSuccess = true;\r\n\t\tthis.captchaResponse = captchaResponse;\r\n\t\tthis.cdr.detectChanges();\r\n }\r\n\r\n setEnv (isPfs = true) {\r\n\t\tif (pcgSettings.mode === 'Development') { \r\n this.returnUrl = isPfs ? \"https://localhost:44384/\" : \"https://localhost:44327\"; \r\n } else if (pcgSettings.mode === 'Demo') { \r\n this.returnUrl = isPfs ? \"https://demo.fdohcentralpharmacy.com/\" : \"https://demo.fdepcs.com/\"; \r\n } else { \r\n this.returnUrl = isPfs ? \"https://fdohcentralpharmacy.com/\" : \"https://fdepcs.com/\"; \r\n }\r\n\t}\r\n\r\n sanitize(email: string) {\r\n var strTempString = email.trim();\r\n strTempString = strTempString.replace(\"'\", \"\");\r\n strTempString = strTempString.replace(\"--\", \"\");\r\n strTempString = strTempString.replace(\"/\", \"\");\r\n strTempString = strTempString.replace(\"&\", \"\");\r\n strTempString = strTempString.replace(\"?\", \"\");\r\n strTempString = strTempString.replace(\":\", \"\");\r\n strTempString = strTempString.replace(\",\", \"\");\r\n strTempString = strTempString.replace(\";\", \"\");\r\n strTempString = strTempString.replace(\"NULL\", \"\");\r\n strTempString = strTempString.replace(\"xp_\", \"\");\r\n strTempString.replace(/[\\n\\r]+/g, '');\r\n strTempString.replace('\\\\', '');\r\n this.formGroup.controls['email'].setValue(strTempString);\r\n }\r\n\r\n categoryChange() {\r\n this.categoryName = this.categorySelect.text;\r\n this.model.categoryName = this.categoryName;\r\n this.formGroup.controls['categoryName'].setValue(this.categoryName); \r\n }\r\n\r\n priorityChange() {\r\n this.priorityName = this.prioritySelect.text;\r\n this.model.priorityName = this.priorityName;\r\n this.formGroup.controls['priorityName'].setValue(this.priorityName);\r\n }\r\n\r\n facilityChange() {\r\n this.facilityName = this.facilitySelect.text;\r\n this.model.facilityName = this.facilityName;\r\n this.formGroup.controls['facilityName'].setValue(this.facilityName);\r\n }\r\n\r\n onSubmit() {\r\n if (this.formGroup.valid) { \r\n this.ms.getHttpObservable(\r\n this\r\n , 'api/PublicPfsHelpTicket/SubmitPfsHelpTicket'\r\n , this.formGroup\r\n ).subscribe(msg => {\r\n if (msg.isSuccessful) {\r\n this.isSuccess = true;\r\n this.formGroup.reset();\r\n } else { this.isSuccess = false; }\r\n }\r\n );\r\n } else { \r\n validateForm(this.formGroup); \r\n this.isSuccess = false;\r\n }\r\n }\r\n\r\n ngOnDestroy() { clearInterval(this.execute); }\r\n}\r\n","
\r\n
\r\n
\r\n

{{ headerStr }}

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n\r\n
\r\n
\r\n {{ infoText }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n

\r\n Your Support Desk Ticket has been submitted.\r\n An email has been sent to BPHP staff notifying them of your Support Desk Ticket.\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 AgencyListByAgencyVm {\r\n\tagencyId: number;\r\n\tagencyName?: string;\r\n\tagencyAbbreviation?: 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'agencyId': new UntypedFormControl(0, [...(validators['agencyId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'agencyName': new UntypedFormControl(null, [...(validators['agencyName'] ?? []), ...[]]),\r\n\t\t\t'agencyAbbreviation': new UntypedFormControl(null, [...(validators['agencyAbbreviation'] ?? []), ...[]])\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['agencyName', {\"orderId\":0,\"sortColumn\":\"agencyName\",\"searchColumn\":\"agencyName\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Agency 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['agencyAbbreviation', {\"orderId\":1,\"sortColumn\":\"agencyAbbreviation\",\"searchColumn\":\"agencyAbbreviation\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Agency Abbreviation\",\"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): AgencyListByAgencyVmFromFg {\r\n\t\treturn new AgencyListByAgencyVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class AgencyListByAgencyVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget agencyId(): number {\r\n\t\treturn this.fg.get('agencyId').value;\r\n\t}\r\n\tset agencyId(val) {\r\n\t\tthis.fg.get('agencyId').setValue(val);\r\n\t}\r\n\r\n\tget agencyName(): string {\r\n\t\treturn this.fg.get('agencyName').value;\r\n\t}\r\n\tset agencyName(val) {\r\n\t\tthis.fg.get('agencyName').setValue(val);\r\n\t}\r\n\r\n\tget agencyAbbreviation(): string {\r\n\t\treturn this.fg.get('agencyAbbreviation').value;\r\n\t}\r\n\tset agencyAbbreviation(val) {\r\n\t\tthis.fg.get('agencyAbbreviation').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 { EditAgencyVm, EditAgencyVmFromFg } from '../../HEROS/Models/EditAgencyVm';\r\nimport { EditApplicantVm, EditApplicantVmFromFg } from '../../HEROS/Models/EditApplicantVm';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class EditPublicApplicationVm {\r\n\tagency?: EditAgencyVm;\r\n\tapplication?: EditApplicantVm;\r\n\tconfirmedMessages?: 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'agency': EditAgencyVm.Form,\r\n\t\t\t'application': EditApplicantVm.Form,\r\n\t\t\t'confirmedMessages': new UntypedFormControl([], [...(validators['confirmedMessages'] ?? []), ...[]])\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): EditPublicApplicationVmFromFg {\r\n\t\treturn new EditPublicApplicationVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class EditPublicApplicationVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget agency(): EditAgencyVmFromFg {\r\n\t\treturn new EditAgencyVmFromFg(this.fg.get('agency') as UntypedFormGroup);\r\n\t}\r\n\tset agency(val) {\r\n\t\t(this.fg.get('agency') as UntypedFormGroup).setValue(val);\r\n\t}\r\n\r\n\tget application(): EditApplicantVmFromFg {\r\n\t\treturn new EditApplicantVmFromFg(this.fg.get('application') as UntypedFormGroup);\r\n\t}\r\n\tset application(val) {\r\n\t\t(this.fg.get('application') as UntypedFormGroup).setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { validateForm } from 'app/shared/form-elements/form-validateForm.function';\r\nimport { AgencyListByAgencyVm } from 'app/shared/generated/HEROS/Models/AgencyListByAgencyVm';\r\nimport { EditAgencyVm } from 'app/shared/generated/HEROS/Models/EditAgencyVm';\r\nimport { EditPublicApplicationVm } from 'app/shared/generated/HEROS/Models/EditPublicApplicationVm';\r\nimport { OrderOptionVm } from 'app/shared/generated/HEROS/Models/OrderOptionVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\nimport { environment } from 'environments/environment';\r\nimport { InvisibleReCaptchaComponent } from 'ngx-captcha';\r\nimport { ConfirmationModalComponent } from 'app/shared/form-elements/components/confirmation-modal/confirmation-modal.component';\r\n\r\n@Component({\r\n selector: 'pcg-heros-application',\r\n templateUrl: './heros-application.component.html',\r\n styleUrls: ['./heros-application.component.scss'],\r\n standalone: false\r\n})\r\nexport class HerosApplicationComponent implements OnInit {\r\n\r\n\tsiteKey: string = environment.siteKey; // should pick up environment specific siteKey\r\n\t// FEIN reCaptcha properties\r\n\t@ViewChild('agencyCaptchaElem') agencyCaptcha: InvisibleReCaptchaComponent;\r\n\tagencyFormGroup = new UntypedFormGroup({});\r\n\tpublic agencyCaptchaIsLoaded = false;\r\n\tpublic agencyCaptchaSuccess = false;\r\n\tpublic agencyCaptchaResponse?: string;\r\n\tpublic agencyCaptchaIsReady = false;\r\n\tpublic agencyExecute: any;\r\n\temptyCaptcha: boolean = true;\r\n\r\n\t@ViewChild('captchaElem') captchaElem: InvisibleReCaptchaComponent;\r\n\tpublic captchaIsLoaded = false;\r\n\tpublic captchaSuccess = false;\r\n\tpublic captchaResponse?: string;\r\n\tpublic captchaIsReady = false;\r\n\tpublic execute: any;\r\n\tpublic recaptcha: any = null;\r\n\r\n\tformGroup = EditPublicApplicationVm.Form;\r\n\toldShippingInfo: EditAgencyVm;\r\n\tcanSubmit = true;\r\n\tshowButtonOath = true;\r\n\toathAccepted = false;\r\n\toathTimeStamp: string;\r\n\tisSubmitted = false;\r\n\tsubscriptions = new Subscription();\r\n\tagency: string;\r\n\t// Handles showing certain parts of the public application process\t\r\n\tshowForm = false;\r\n\tshowAgencyList = false;\r\n\tshowAgencyInput = true;\r\n\tshowAgencyInSystem = false;\r\n\tshowInformativeContent = true;\r\n\tcanManualEntry = true;\r\n\t// Agency List by FEIN Table\r\n\t@ViewChild(TableComponent) table: TableComponent;\r\n\tcolumns = AgencyListByAgencyVm.ColumnDefs;\r\n\tfilters = {\r\n\t\tagency: null\r\n\t};\r\n\tcountyApi = \"api/Select/SmartyCounties\";\r\n\r\n\tconstructor(private httpClient: HttpClient, private ms: SystemMessageService, private cdr: ChangeDetectorRef, public modalService: NgbModal) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.getPublicApplication();\r\n\t\tthis.agencyFormGroup.addControl('agencyRecaptcha', new UntypedFormControl('', Validators.required));\r\n\t\tthis.formGroup.addControl('recaptcha', new UntypedFormControl('', Validators.required));\r\n\t}\r\n\r\n\t// Checks if the Agency is in the system already\r\n\tcheckAgency(agency: string) {\r\n\t\t// Check if agency is in system\r\n\t\tthis.subscriptions.add(this.httpClient.get(`api/PublicHEROS/CheckForAgencies/?agency=${encodeURIComponent(agency)}`)\r\n\t\t\t.subscribe((agencyInSystem: boolean) => {\r\n\t\t\t\tif (agencyInSystem) {\r\n\t\t\t\t\t// if Agency is in system naviage to list of all agencies with their abbreviation\r\n\t\t\t\t\tthis.filters.agency = agency; // set ajaxdata/filters\r\n\t\t\t\t\tthis.showAgencyInput = false; // hide Agency input\r\n\t\t\t\t\tthis.showAgencyList = true; // show agency list if there already is agencies in the system with the same fein\r\n\t\t\t\t\tthis.agency = agency;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// If Agency is new then go to form\r\n\t\t\t\t\tthis.showAgencyInput = false; // hide Agency input\r\n\t\t\t\t\tthis.showForm = true; // show the form\r\n\t\t\t\t\tthis.formGroup.get('agency.agencyName').setValue(agency); // prepopulate Agency\r\n\t\t\t\t\tthis.ms.setSystemMessage(\"You have entered a new Agency.\");\r\n\r\n\t\t\t\t\t// Destroys agencyExecute interval and resets emptyCaptcha for next page\r\n\t\t\t\t\tclearInterval(this.agencyExecute);\r\n\t\t\t\t\tthis.agencyExecute = null;\r\n\t\t\t\t\tthis.emptyCaptcha = true;\r\n\t\t\t\t}\r\n\t\t\t}));\r\n\t}\r\n\r\n\tbackBtn(){\r\n\t\tthis.showForm = false;\r\n\t\tif(this.agency != null && !this.showAgencyList){\r\n\t\t\tthis.filters.agency = this.agency;\r\n\t\t\tthis.showAgencyList = true;\r\n\t\t\tthis.showAgencyInput = false;\r\n\t\t\tif (this.showAgencyInSystem){\r\n\t\t\t\tthis.showAgencyInSystem = false;\r\n\t\t\t\tthis.showInformativeContent = true;\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.showAgencyInput = true; \r\n\t\t\tthis.showAgencyList = false;\r\n\t\t\tthis.agency = null;\r\n\t\t}\r\n\t}\r\n\r\n\tnewAgencyForm() {\r\n\t\tthis.showAgencyList = false;\r\n\t\tthis.showForm = true;\r\n\t\tthis.formGroup.get('agency.agencyName').setValue(this.filters.agency);\r\n\t\tthis.formGroup.get('agency.fein').removeValidators(Validators.required);\r\n\t}\r\n\r\n\t// Get the public application model from the server\r\n\tgetPublicApplication() {\r\n\t\tthis.subscriptions.add(this.httpClient.get('api/PublicHEROS/GetPublicApplication')\r\n\t\t.subscribe((model: EditPublicApplicationVm) => {\r\n\t\t\tif (model.application.roundId !== 0) {\r\n\t\t\t\tsetTimeout(() => { this.setModel(model); }, 100);\r\n\t\t\t} else {\r\n\t\t\t\tthis.canSubmit = false;\r\n\t\t\t}\r\n\t\t}));\r\n\t}\r\n\r\n\tsetModel(model: EditPublicApplicationVm) {\r\n\t\tthis.addOrderOptionFormGroups(model.application.orderOptions.length);\r\n\t\tthis.formGroup.controls['application'].patchValue({\r\n\t\t\troundId: model.application.roundId,\r\n\t\t\tisPublicSubmit: true,\r\n\t\t\tapplicationStatus: model.application.applicationStatus,\r\n\t\t\torderOptions: model.application.orderOptions\r\n\t\t});\r\n\t}\r\n\r\n\taddOrderOptionFormGroups(count: number) {\r\n\t\tfor (let i = 0; i < count; ++i) {\r\n\t\t\t(this.formGroup.get('application.orderOptions') as UntypedFormArray).push(OrderOptionVm.Form);\r\n\t\t}\r\n\t}\r\n\r\n\t// Disable and fill shipping information with agency information when Same as Agency Address is checked; enable and clear when unchecked\r\n\tupdateShippingInfo(saveShippingInfo = false, fromCheckbox = false) {\r\n\t\t// Back up the old shipping info when Same as Agency Address is checked\r\n\t\tif (saveShippingInfo) {\r\n\t\t\tthis.oldShippingInfo = this.formGroup.value.agency.shippingInformation;\r\n\t\t}\r\n\r\n\t\t// Set address to match agency address\r\n\t\tif (this.formGroup.value.agency.useAgencyInfoForShipInfo) {\r\n\t\t\tthis.formGroup.get('agency.shipSmartyAddress').disable();\r\n\t\t\tthis.formGroup.get('agency.shipSmartyAddress').setValue(this.formGroup.value.agency.agencySmartyAddress);\r\n\t\t}\r\n\t\t// Set the shipping address back to what it was if unchecked\r\n\t\t// Or reset it if there is no previous value\r\n\t\telse if (fromCheckbox) {\r\n\t\t\tthis.formGroup.get('agency.shipSmartyAddress').enable();\r\n\t\t\tif (this.oldShippingInfo) {\r\n\t\t\t\tthis.formGroup.get('agency.shipSmartyAddress').setValue(this.oldShippingInfo);\r\n\t\t\t} else {\r\n\t\t\t\tthis.formGroup.get('agency.shipSmartyAddress').reset();\r\n\t\t\t}\r\n\t\t\tthis.formGroup.get('agency.shipSmartyAddress').markAsUntouched();\r\n\t\t}\r\n\t}\r\n\r\n\tacceptOath() {\r\n\t\tconst today = new Date();\r\n\t\tthis.formGroup.controls['application'].patchValue({ oathAcceptedNew: true, oathDateTimeNew: today });\r\n\t\tthis.oathTimeStamp = today.toLocaleDateString() + ' by public submitter';\r\n\t\tthis.showButtonOath = false;\r\n\t\tthis.oathAccepted = true;\r\n\t}\r\n\r\n\t// The main save event for the page\r\n\t// The below code is the \"HoneyPot\" used to deter hackerz\r\n\t// {\r\n\t\t\t\t\tif (msg.isSuccessful) {\r\n\t\t\t\t\t\tthis.isSubmitted = true;\r\n\t\t\t\t\t\tclearInterval(this.execute);\r\n\t\t\t\t\t\tthis.execute = null;\r\n\t\t\t\t\t}\r\n\t\t\t\t}));\r\n\t\t\t} else {\r\n\t\t\t\tvalidateForm(this.formGroup);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tsavePublicApplicationClick(honeypot: string){\r\n\t\tif (this.formGroup.valid){\r\n\t\t\tif (this.formGroup?.get('agency.secondaryName')?.value === null || this.formGroup?.get('agency.secondaryName')?.value === ''\r\n\t\t\t|| this.formGroup?.get('agency.secondaryEmail')?.value === null || this.formGroup?.get('agency.secondaryEmail')?.value === ''\r\n\t\t\t|| !this.formGroup?.get('agency.secondaryEmail')?.valid || this.formGroup?.get('agency.secondaryPhone')?.value === null\r\n\t\t\t|| this.formGroup?.get('agency.secondaryPhone')?.value === '') {\r\n const modal = this.modalService.open(ConfirmationModalComponent);\r\n let warningMessage = 'Attention: There is no secondary contact assigned to your agency. It is highly advised you include secondary contact information.';\r\n // Pass modal reference into component to give us the ability to close it\r\n modal.componentInstance.modalRef = modal;\r\n modal.componentInstance.confirmationMessage =\r\n `

${warningMessage}

`;\r\n // If user confirms, save agency\r\n modal.result.then((emittedValue) => {\r\n if (emittedValue) { this.savePublicApplication(honeypot); }\r\n else { return null; }\r\n }).catch(err => { // When user clicks out of confirmation box.\r\n return null;\r\n });\r\n\t\t\t} else {\r\n\t\t\t\tthis.savePublicApplication(honeypot);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalidateForm(this.formGroup);\r\n\t\t}\t\t\r\n\t}\r\n\r\n\tvalidateAddress() {\r\n\t\tlet agency = this.formGroup.get('agency.agencySmartyAddress')?.value?.formattedAddress\r\n\t\tlet shipping = this.formGroup.get('agency.shipSmartyAddress')?.value?.formattedAddress\r\n\t\t\r\n\t\tif (FormatHelperService.GetIsNullyOrWhitespace(agency) && FormatHelperService.GetIsNullyOrWhitespace(shipping)) {\r\n\t\t\tthis.ms.setSystemMessage('No valid addresses were found. Please enter an agency and shipping address to submit.', 'error')\r\n\t\t}\r\n\t\telse if (FormatHelperService.GetIsNullyOrWhitespace(agency)) {\r\n\t\t\tthis.ms.setSystemMessage('No valid agency address found. Please enter an agency address to submit.', 'error')\r\n\t\t}\r\n\t\telse if (FormatHelperService.GetIsNullyOrWhitespace(shipping)) {\r\n\t\t\tthis.ms.setSystemMessage('No valid shipping address found. Please enter a shipping address to submit.', 'error')\r\n\t\t}\r\n\t}\r\n\r\n\tsetFein() {\r\n\t\tconst emptyFein = \"----------\"\r\n\t\tlet isEmpty = this.formGroup?.get('agency.fein')?.value == null;\r\n\r\n\t\tif (isEmpty) { this.formGroup?.get('agency.fein')?.setValue(emptyFein) } \r\n\t}\r\n\r\n\t// Agency Captcha Callbacks\r\n\thandleAgencyReset() {\r\n\t\tthis.agencyCaptchaSuccess = false;\r\n\t\tthis.agencyCaptchaResponse = undefined;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleAgencyReady(): void {\r\n\t\tthis.agencyCaptchaIsReady = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t\tthis.agencyExecute = setInterval(() => {\r\n\t\t\tthis.agencyCaptcha?.execute();\r\n\t\t\tthis.agencyCaptcha?.getCurrentResponse() !== '' ? this.emptyCaptcha = false : this.emptyCaptcha = true;\r\n\t\t}, 2000);\r\n\t}\r\n\r\n\thandleAgencyLoad(): void {\r\n\t\tthis.agencyCaptchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleAgencySuccess(captchaResponse: string): void {\r\n\t\tthis.agencyCaptchaSuccess = true;\r\n\t\tthis.agencyCaptchaResponse = captchaResponse;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\t// captcha Callbacks\r\n\thandleReset() {\r\n\t\tthis.captchaSuccess = false;\r\n\t\tthis.captchaResponse = undefined;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleReady(): void {\r\n\t\tthis.captchaIsReady = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t\tthis.execute = setInterval(() => {\r\n\t\t\tthis.captchaElem?.execute();\r\n\t\t\tthis.captchaElem?.getCurrentResponse() !== '' ? this.emptyCaptcha = false : this.emptyCaptcha = true;\r\n\t\t}, 2000);\r\n\t}\r\n\r\n\thandleLoad(): void {\r\n\t\tthis.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleSuccess(captchaResponse: string): void {\r\n\t\tthis.captchaSuccess = true;\r\n\t\tthis.captchaResponse = captchaResponse;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n}\r\n","
\r\n\r\n
\r\n\t
\r\n\t\t

HEROS Application

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

\r\n\t\tHEROS: Helping Emergency Responders Obtain Support. See \r\n\t\tlink \r\n\t\tfor more details on the HEROS program\r\n\t

\r\n\t\r\n\t\tFill out agency and application information to complete your submission.\r\n\t\tPlease contact \r\n\t\tHEROSProgram@flhealth.gov\r\n\t\tif you need assistance with completing a submission.\r\n\t\t
Previous Applicants, please \r\n\t\tlogin \r\n\t\tto complete the application.\r\n\t
\r\n\t\r\n\tWe are not accepting applications at this time.\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\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\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\t
\r\n\t\r\n\t\t\r\n\t\t\t{{ columns.get('agencyName').displayName }}\r\n\t\t\t{{ row.agencyName }}\r\n\t\t\r\n\t\t\r\n\t\t\t{{ columns.get('agencyAbbreviation').displayName }}\r\n\t\t\t{{ row.agencyAbbreviation }}\r\n\t\t\r\n\t\r\n\t\r\n\t\t
\r\n\t\t\t

Please Select One of the Following

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

\r\n\t\t\tYour agency is already in our system. Please contact \r\n\t\t\tHEROSProgram@flhealth.gov \r\n\t\t\tfor further instructions.\r\n\t\t

\r\n\t
\r\n\t\r\n\t\t Back\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\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\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\r\n\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\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\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\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\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\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\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\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\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\t\r\n\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\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\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\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\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
Primary
\r\n\t\t\t\t\r\n\t\t\t\t\tA copy of this application will be sent to this contact upon submission.\r\n\t\t\t\t\tAdditionally, a user account will be created from this information after the agency is initially\r\n\t\t\t\t\tapproved.\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\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\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\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\r\n\t\t\t\t
Secondary
\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\r\n\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\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\r\n\t\t\t\t
\r\n\r\n\t\t\t\t
Tertiary
\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\r\n\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\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\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\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\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\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
Order Option
\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
\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\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\tStrength: {{ order.value.dosage }}\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\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
\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\r\n\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\r\n\t\t\t\t

\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tOATH: \"Under penalties of perjury, by submission to the Florida Department of Health, I declare\r\n\t\t\t\t\t\tthat I have read the foregoing application and that the facts\r\n\t\t\t\t\t\tstated in it are true.\" I understand that all I attest to in this application is subject to\r\n\t\t\t\t\t\taudit by the Department\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\tOath accepted at {{ oathTimeStamp }}\r\n\t\t\t\t

\r\n\t\t\t
\r\n\t\t
\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t\t\t Back\r\n\t\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
\r\n\t

Thank you! Your HEROS application has been submitted.

\r\n\t

\r\n\t\tNext Step: Please wait until the Primary Contact receives an email from the system to create a user account. In\r\n\t\tthe meantime, please download and fill out the form below. After a user account has been created, login and\r\n\t\tupload the completed form to your agency.\r\n\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\nimport { RxToFillVm, RxToFillVmFromFg } from '../../Inventory/Models/RxToFillVm';\r\n\r\n// tslint:disable:quotemark\r\n// tslint:disable:max-line-length\r\n// tslint:disable:whitespace\r\nexport class HomeDeliveryPublicVm {\r\n\trxNumber1?: string;\r\n\trxNumber2?: string;\r\n\trxNumber3?: string;\r\n\trxNumber4?: string;\r\n\trxNumber5?: string;\r\n\trxNumber6?: string;\r\n\tphoneNumber?: string;\r\n\trxNumbers?: string[];\r\n\trxRefills?: RxToFillVm[];\r\n\thoneyPot: 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'rxNumber1': new UntypedFormControl(null, [...(validators['rxNumber1'] ?? []), ...[Validators.required, Validators.maxLength(8)]]),\r\n\t\t\t'rxNumber2': new UntypedFormControl(null, [...(validators['rxNumber2'] ?? []), ...[Validators.maxLength(8)]]),\r\n\t\t\t'rxNumber3': new UntypedFormControl(null, [...(validators['rxNumber3'] ?? []), ...[Validators.maxLength(8)]]),\r\n\t\t\t'rxNumber4': new UntypedFormControl(null, [...(validators['rxNumber4'] ?? []), ...[Validators.maxLength(8)]]),\r\n\t\t\t'rxNumber5': new UntypedFormControl(null, [...(validators['rxNumber5'] ?? []), ...[Validators.maxLength(8)]]),\r\n\t\t\t'rxNumber6': new UntypedFormControl(null, [...(validators['rxNumber6'] ?? []), ...[Validators.maxLength(8)]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[Validators.required, Validators.maxLength(21)]]),\r\n\t\t\t'rxNumbers': new UntypedFormControl([], [...(validators['rxNumbers'] ?? []), ...[]]),\r\n\t\t\t'rxRefills': new UntypedFormArray([]),\r\n\t\t\t'honeyPot': new UntypedFormControl(false, [...(validators['honeyPot'] ?? []), ...[]])\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): HomeDeliveryPublicVmFromFg {\r\n\t\treturn new HomeDeliveryPublicVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class HomeDeliveryPublicVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget rxNumber1(): string {\r\n\t\treturn this.fg.get('rxNumber1').value;\r\n\t}\r\n\tset rxNumber1(val) {\r\n\t\tthis.fg.get('rxNumber1').setValue(val);\r\n\t}\r\n\r\n\tget rxNumber2(): string {\r\n\t\treturn this.fg.get('rxNumber2').value;\r\n\t}\r\n\tset rxNumber2(val) {\r\n\t\tthis.fg.get('rxNumber2').setValue(val);\r\n\t}\r\n\r\n\tget rxNumber3(): string {\r\n\t\treturn this.fg.get('rxNumber3').value;\r\n\t}\r\n\tset rxNumber3(val) {\r\n\t\tthis.fg.get('rxNumber3').setValue(val);\r\n\t}\r\n\r\n\tget rxNumber4(): string {\r\n\t\treturn this.fg.get('rxNumber4').value;\r\n\t}\r\n\tset rxNumber4(val) {\r\n\t\tthis.fg.get('rxNumber4').setValue(val);\r\n\t}\r\n\r\n\tget rxNumber5(): string {\r\n\t\treturn this.fg.get('rxNumber5').value;\r\n\t}\r\n\tset rxNumber5(val) {\r\n\t\tthis.fg.get('rxNumber5').setValue(val);\r\n\t}\r\n\r\n\tget rxNumber6(): string {\r\n\t\treturn this.fg.get('rxNumber6').value;\r\n\t}\r\n\tset rxNumber6(val) {\r\n\t\tthis.fg.get('rxNumber6').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 honeyPot(): boolean {\r\n\t\treturn this.fg.get('honeyPot').value;\r\n\t}\r\n\tset honeyPot(val) {\r\n\t\tthis.fg.get('honeyPot').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 RxToFillVm {\r\n\trxNumber?: string;\r\n\trefillsRemaining?: string;\r\n\terrorMessage?: 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'rxNumber': new UntypedFormControl(null, [...(validators['rxNumber'] ?? []), ...[]]),\r\n\t\t\t'refillsRemaining': new UntypedFormControl(null, [...(validators['refillsRemaining'] ?? []), ...[]]),\r\n\t\t\t'errorMessage': new UntypedFormControl(null, [...(validators['errorMessage'] ?? []), ...[]])\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['rxNumber', {\"orderId\":0,\"sortColumn\":\"rxNumber\",\"searchColumn\":\"rxNumber\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Rx 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['refillsRemaining', {\"orderId\":1,\"sortColumn\":\"refillsRemaining\",\"searchColumn\":\"refillsRemaining\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Refills Remaining\",\"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['errorMessage', {\"orderId\":2,\"sortColumn\":\"errorMessage\",\"searchColumn\":\"errorMessage\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"\",\"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): RxToFillVmFromFg {\r\n\t\treturn new RxToFillVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class RxToFillVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\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 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 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","import { HttpClient } from '@angular/common/http';\r\nimport { Component, Input, Output, OnInit, ViewChild, EventEmitter } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { HomeDeliveryPublicVm } from 'app/shared/generated/Inventory/Models/HomeDeliveryPublicVm';\r\nimport { RxToFillVm } from 'app/shared/generated/Inventory/Models/RxToFillVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\n\r\n@Component({\r\n selector: 'app-home-delivery-submit-modal',\r\n templateUrl: './home-delivery-submit-modal.component.html',\r\n styleUrls: ['./home-delivery-submit-modal.component.scss'],\r\n standalone: false\r\n})\r\nexport class HomeDeliverySubmitModalComponent implements OnInit {\r\n\t// Get table reference from the page\r\n\t@ViewChild(TableComponent, { static: true }) table: TableComponent;\r\n\t\r\n\t@Input() modal: any;\r\n\t@Input() model: HomeDeliveryPublicVm;\r\n\t@Input() parentFormGroup: UntypedFormGroup;\r\n\t@Input() submitSuccessful: boolean;\r\n\t@Output() submitSuccessfulChange = new EventEmitter();\r\n\r\n\tcolumns = RxToFillVm.ColumnDefs;\r\n\tsubscriptions = new Subscription();\r\n\r\n\ttableData: any;\r\n\r\n\tconstructor(public formatHelper: FormatHelperService, private http: HttpClient, private ms: SystemMessageService) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.tableData = this.model?.rxRefills;\r\n\t}\r\n\r\n\tsubmitRxs() {\r\n\t\tthis.subscriptions.add(this.http.post('api/PublicHomeDelivery/SubmitHomeDeliveryRefill', this.model).subscribe((o: SystemMessage) => {\r\n\t\t\tthis.ms.setSystemMessage(o.message, o.messageClass);\r\n\t\t\tthis.submitSuccessfulChange.emit(o.isSuccessful);\r\n\t\t\tthis.modal.dismiss();\r\n\t\t}));\r\n\t}\r\n\r\n\tcloseModal() {\r\n\t\tthis.submitSuccessfulChange.emit(true);\r\n\t\tthis.modal.dismiss();\r\n\t}\r\n}\r\n","
\r\n\t
\r\n\t\t
Submitted Rx's
\r\n\t\t\r\n\t
\r\n\r\n\t
\r\n\t\t

The following prescriptions have been successfully submitted to Central Pharmacy.

\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\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\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
{{columns.get('rxNumber').displayName}}{{columns.get('refillsRemaining').displayName}}Submitted
{{row.rxNumber}}{{row.refillsRemaining}}
\r\n\t
\r\n\r\n\t
\r\n\t\t\r\n\t
\r\n
\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { AbstractControl, UntypedFormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { InvisibleReCaptchaComponent } from 'ngx-captcha';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { HomeDeliveryPublicVm } from 'app/shared/generated/Inventory/Models/HomeDeliveryPublicVm';\r\nimport { RxToFillVm } from 'app/shared/generated/Inventory/Models/RxToFillVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { environment } from 'environments/environment';\r\n\r\nexport enum RxInputType {\r\n\tRx1 = 1,\r\n\tRx2 = 2,\r\n\tRx3 = 3,\r\n\tRx4 = 4,\r\n\tRx5 = 5,\r\n\tRx6 = 6\r\n}\r\n\r\n@Component({\r\n selector: 'app-home-delivery',\r\n templateUrl: './home-delivery.component.html',\r\n styleUrls: ['./home-delivery.component.scss'],\r\n standalone: false\r\n})\r\nexport class HomeDeliveryComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\t// reCaptcha properties\r\n\t@ViewChild('captchaElem') captchaElem: InvisibleReCaptchaComponent ;\r\n\tsiteKey: string = environment.siteKey; // should pick up environment specific siteKey\r\n\r\n\tpublic captchaIsLoaded = false;\r\n\tpublic captchaSuccess = false;\r\n\tpublic captchaResponse?: string;\r\n\tpublic captchaIsReady = false;\r\n\tpublic recaptcha: any = null;\r\n\tpublic execute: any;\r\n\r\n\tformGroup = HomeDeliveryPublicVm.Form;\r\n\tsubscriptions = new Subscription();\r\n\tmodalModel: HomeDeliveryPublicVm;\r\n\trxRefillValidation: RxToFillVm[];\r\n\tsubmitSuccessful = false;\r\n\trxInputType = RxInputType;\r\n\thoneypotControl;\r\n\r\n\trx2IsDupe = false;\r\n\trx3IsDupe = false;\r\n\trx4IsDupe = false;\r\n\trx5IsDupe = false;\r\n\trx6IsDupe = false;\r\n\r\n\tconstructor(private ms: SystemMessageService, private modalService: NgbModal, private formatHelper: FormatHelperService\r\n\t\t, private cdr: ChangeDetectorRef) { }\r\n\r\n\tngOnInit() {\r\n\t\tthis.setUpHoneyPot();\r\n\t\tthis.formGroup.addControl('recaptcha', new UntypedFormControl('', Validators.required));\r\n\t\tthis.setUpAdditionalValidators();\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tthis.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\topenHomeDeliverySubmitModal(modal: any, $event: SystemMessage): void {\r\n\t\tthis.modalModel = $event.model;\r\n\t\tthis.modalService.open(modal, {\r\n\t\t\tanimation: false, beforeDismiss: () => {\r\n\t\t\t\tif (this.submitSuccessful) { this.resetForm(); }\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\t// callback after sys message returns on error\r\n\thighlightErrors(msg: SystemMessage) {\r\n\t\t// Getting the system message settings and adding white-space: pre to show line breaks\r\n\t\tlet minWidth = this.ms.settings.centeredStyles.minWidth;\r\n\t\tlet left = this.ms.settings.centeredStyles.left;\r\n\t\tthis.ms.settings.centeredStyles = { minWidth, left, 'white-space': 'pre' };\r\n\t\t// Updating for to show validation results.\r\n\t\tthis.rxRefillValidation = msg.model.rxRefills;\r\n\t}\r\n\r\n\t//honeyPot initialization logic called on init\r\n\tsetUpHoneyPot() : void {\r\n\t\tthis.formGroup.controls['honeyPot'].setValidators(this.requireFalse());\r\n\t\tthis.formGroup.updateValueAndValidity();\r\n\t}\r\n\r\n\tsetUpAdditionalValidators() : void {\r\n\t\tthis.formGroup.controls.rxNumber1.addValidators(this.requireRxesToBeDifferent());\r\n\t\tthis.formGroup.controls.rxNumber2.addValidators(this.requireRxesToBeDifferent());\r\n\t\tthis.formGroup.controls.rxNumber3.addValidators(this.requireRxesToBeDifferent());\r\n\t\tthis.formGroup.controls.rxNumber4.addValidators(this.requireRxesToBeDifferent());\r\n\t\tthis.formGroup.controls.rxNumber5.addValidators(this.requireRxesToBeDifferent());\r\n\t\tthis.formGroup.controls.rxNumber6.addValidators(this.requireRxesToBeDifferent());\r\n\t}\r\n\r\n\t//reset form logic\r\n\tresetForm() {\t\t\r\n\t\tthis.formGroup = HomeDeliveryPublicVm.Form;\r\n\t\tthis.resetValidation();\r\n\t}\r\n\r\n\tresetValidation() {\r\n\t\tthis.ms.closeSystemMessage();\r\n\t\tthis.rxRefillValidation = null;\r\n\t}\r\n\r\n\t//Sets the html classes for each form rx input\r\n\t//rxIndex is which rx it is (1 through 6)\r\n\t//rxFillList needs to be passed as a parameter instead of using the property on this class so that it is recalculated when the class property changes\r\n\tsetControlClassValidation(rxIndex: RxInputType, rxFillList: RxToFillVm[]): string {\r\n\t\t// This Bootstrap style makes all the inputs a little rounded and larger and enables bootstrap validation styles\r\n\t\tlet classes = 'form-control';\r\n\t\t// Getting value entered.\r\n\t\tconst rx = this.formGroup.value[`rxNumber${rxIndex}`];\r\n\t\t// finding result from rxToFillList with matching rx #\r\n\t\tconst rxInput = rxFillList?.filter(function (i) { return Number(rx?.substr(0,8)) === Number(i.rxNumber) ? i : null })[0];\r\n\r\n\t\t//The first input is the only one that needs this class\r\n\t\tif (rxIndex === RxInputType.Rx1) { classes += ' float-right'; }\r\n\r\n\t\tif(this.isDupeRxNums()) { this.findWhichRxInputIsDupe(); } \r\n\t\telse { this.resetDupeError(); }\r\n\r\n\t\tif (this.formatHelper.GetIsNully(rxFillList)) { return classes; } // If not submitted yet\r\n\r\n\t\t//If no value has been entered or the value has changed since it was submitted\r\n\t\tif (this.formatHelper.GetIsNullyOrWhitespace(rx) || this.formatHelper.GetIsNully(rxInput)) { return classes; }\r\n\t\telse if (this.formatHelper.GetIsNullyOrWhitespace(rxInput?.errorMessage)) { classes += ' is-valid'; } // Validation successful\r\n\t\telse { classes += ' is-invalid'; } //Valdiation fails\r\n\r\n\t\treturn classes;\r\n\t}\r\n\r\n\tfindWhichRxInputIsDupe() {\r\n\t\tconst rx1 = this.formGroup.value['rxNumber1'];\r\n\t\tconst rx2 = this.formGroup.value['rxNumber2'];\r\n\t\tconst rx3 = this.formGroup.value['rxNumber3'];\r\n\t\tconst rx4 = this.formGroup.value['rxNumber4'];\r\n\t\tconst rx5 = this.formGroup.value['rxNumber5'];\r\n\t\tconst rx6 = this.formGroup.value['rxNumber6'];\r\n\t\tlet rxList = [rx1, rx2, rx3, rx4, rx5, rx6];\r\n\r\n\t\trxList.forEach((el, idx) => {\r\n\t\t\tif (idx === 0 ) { return; } \r\n\t\t\telse if (el === null || el === \"\") { this.hideDupeError(idx); } \r\n\t\t\telse {\r\n\t\t\t\tlet rxCount = rxList.filter(item => item === el).length;\r\n\t\t\t\tif (rxCount > 1) { this.showDupeError(idx); } \r\n\t\t\t\telse { this.hideDupeError(idx); }\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tshowDupeError(rxIndex) {\r\n\t\tswitch(rxIndex) {\r\n\t\t\t//purposefully skip the first index\r\n\t\t\tcase 1: this.rx2IsDupe = true; return;\r\n\t\t\tcase 2: this.rx3IsDupe = true; return;\r\n\t\t\tcase 3: this.rx4IsDupe = true; return;\r\n\t\t\tcase 4: this.rx5IsDupe = true; return;\r\n\t\t\tcase 5: this.rx6IsDupe = true; return;\r\n\t\t}\r\n\t}\r\n\r\n\thideDupeError(rxIndex) {\r\n\t\tswitch(rxIndex) {\r\n\t\t\t//purposefully skip the first index\r\n\t\t\tcase 1: this.rx2IsDupe = false; return;\r\n\t\t\tcase 2: this.rx3IsDupe = false; return;\r\n\t\t\tcase 3: this.rx4IsDupe = false; return;\r\n\t\t\tcase 4: this.rx5IsDupe = false; return;\r\n\t\t\tcase 5: this.rx6IsDupe = false; return;\r\n\t\t}\r\n\t}\r\n\r\n\tresetDupeError() {\r\n\t\tthis.rx2IsDupe = false;\r\n\t\tthis.rx3IsDupe = false;\r\n\t\tthis.rx4IsDupe = false;\r\n\t\tthis.rx5IsDupe = false;\r\n\t\tthis.rx6IsDupe = false;\r\n\t}\r\n\r\n\tisDupeRxNums() : boolean {\r\n\t\tconst rx1 = this.formGroup.value['rxNumber1'];\r\n\t\tconst rx2 = this.formGroup.value['rxNumber2'];\r\n\t\tconst rx3 = this.formGroup.value['rxNumber3'];\r\n\t\tconst rx4 = this.formGroup.value['rxNumber4'];\r\n\t\tconst rx5 = this.formGroup.value['rxNumber5'];\r\n\t\tconst rx6 = this.formGroup.value['rxNumber6'];\r\n\t\tlet rxList = [rx1, rx2, rx3, rx4, rx5, rx6];\r\n\r\n\t\trxList = rxList.filter(x => x);\r\n\r\n\t\tif (rxList.length === new Set(rxList).size) { return false; } \r\n\t\telse { return true; }\r\n\t}\r\n\r\n\t// Custom Validator for form honeyPot form control\r\n\trequireFalse() : ValidatorFn {\r\n\t\treturn (control : AbstractControl) : ValidationErrors | null => {\r\n\t\t\tif (control.value === true) { return { honeyPot: true}; }\r\n\t\t\treturn null;\r\n\t\t};\r\n\t}\r\n\r\n\trequireRxesToBeDifferent() : ValidatorFn {\r\n\t\treturn (control : AbstractControl) : ValidationErrors | null => {\r\n\t\t\tif (control.value === null || control.value === '') { return null; }\r\n\t\t\telse if(this.isDupeRxNums()) { return { duplicateValues : true }; }\r\n\t\t};\r\n\t}\r\n\r\n\t//captcha callbacks\r\n\thandleReset() {\r\n\t\tthis.captchaSuccess = false;\r\n\t\tthis.captchaResponse = undefined;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleReady(): void {\r\n\t\tthis.captchaIsReady = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t\tthis.execute = setInterval(() => { this.captchaElem?.execute(); }, 5000);\r\n\t}\r\n\r\n\thandleLoad(): void {\r\n\t\tthis.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleSuccess(captchaResponse: string): void {\r\n\t\tthis.captchaSuccess = true;\r\n\t\tthis.captchaResponse = captchaResponse;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\tngOnDestroy(): void { \r\n\t\tclearInterval(this.execute);\r\n\t}\r\n}\r\n","
\r\n\r\n
\r\n\t
\r\n\t\t

RX Refill - Home Delivery Only Form

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

\r\n\t\t\tOur online service lets you refill any valid prescription currently on file at your DOH Central Pharmacy.\r\n\t\t\tIt's quick and easy; all\r\n\t\t\tyou need is your DOH Pharmacy prescription numbers. Order refills any time of the day or night,\r\n\t\t\tfrom work or home. You don't even have to enter a password. Your request is transmitted directly to our\r\n\t\t\tCentral Pharmacy\r\n\t\t\tand your refill will be mailed directly to the address on file. If you do not wish the Rx to be sent to the\r\n\t\t\taddress on file, please\r\n\t\t\tcontact your County Health Department prescriber. Thank you.\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\tEnter Prescription Number\r\n\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\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\tPlease enter a unique Rx Number\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\tPlease enter a unique Rx Number\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\tPlease enter a unique Rx Number\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\tPlease enter a unique Rx Number\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\tPlease enter a unique Rx Number\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\tWhere can I find my prescription number?\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\tYou can find your prescription number on your refill slip or prescription bottle. Remember to\r\n\t\t\t\t\t\tenter all 8 digits listed as shown in\r\n\t\t\t\t\t\tthe highlighted box below. Do not enter any spaces or dashes between the 8 digits you enter,\r\n\t\t\t\t\t\tregardless of whether a space or a dash\r\n\t\t\t\t\t\tappears on your refill slip or bottle.\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\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t

Please click on the images for a larger view.

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

The refill slip and prescription label displayed are samples only.

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

Your refill slip and prescription label may vary by design.

\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\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\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\t\r\n\t\t\r\n\r\n\t\t\r\n\t
\r\n\r\n\t


\r\n\r\n\t
\r\n\t\t\r\n\t\t\tExperiencing any issues? Contact Central Pharmacy at 1-800-554-4584
Press 0: To Speak to a member of the\r\n\t\t\tpharmacy staff \r\n\t\t
\r\n\t
\r\n\r\n\t\r\n\t\r\n\t\t\r\n\t\r\n
","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { SecurityService } from '../../security/security.service';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n/**\r\n * This is the landing page when you first access the website.\r\n */\r\n@Component({\n selector: 'pcg-home',\n templateUrl: './home.component.html',\n standalone: false\n})\r\nexport class HomeComponent implements OnInit {\r\n\t\r\n\tconstructor(private sec: SecurityService, private router: Router, public title: Title) {\r\n\t\ttitle.setTitle('HOMER');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tif (this.sec.isLoggedOn()) { this.router.navigate(['/dashboard']); }\r\n\t\telse { this.router.navigate(['/login']); }\r\n\t}\r\n}\r\n","

Hello, world!

\r\n
\r\n

Welcome to your new single-page application, built with:

\r\n\r\n

To help you get started, we've also set up:

\r\n
    \r\n
  • Client-side navigation. For example, click Counter then Back to return here.
  • \r\n
  • Angular CLI integration. In development mode, there's no need to run ng serve. It runs in the background automatically, so your client-side resources are dynamically built on demand and the page refreshes when you modify any file.
  • \r\n
  • Efficient production builds. In production mode, development-time features are disabled, and your dotnet publish configuration automatically invokes ng build to produce minified, ahead-of-time compiled JavaScript files.
  • \r\n
\r\n

The ClientApp subdirectory is a standard Angular CLI application. If you open a command prompt in that directory, you can run any ng command (e.g., ng test), or use npm to install extra packages into it.

\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 HomerRegisterVm {\r\n\tid?: number;\r\n\tpfsUserId: number;\r\n\tfirstName?: string;\r\n\tlastName?: string;\r\n\tuserName?: string;\r\n\temail?: string;\r\n\tphoneNumber?: string;\r\n\tpfsFacilityIds?: number[];\r\n\tfacilityIds?: number[];\r\n\torganizationIds?: number[];\r\n\thoneyPot?: string;\r\n\talreadyExists: boolean;\r\n\terrorMessage?: string;\r\n\tfromAccounts: boolean;\r\n\tfromIcq: 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'id': new UntypedFormControl(null, [...(validators['id'] ?? []), ...[]]),\r\n\t\t\t'pfsUserId': new UntypedFormControl(0, [...(validators['pfsUserId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'firstName': new UntypedFormControl(null, [...(validators['firstName'] ?? []), ...[Validators.required, Validators.maxLength(50), Validators.pattern(\"^[a-zA-Z0-9\\\\s\\\\'\\\\-\\\\']*$\")]]),\r\n\t\t\t'lastName': new UntypedFormControl(null, [...(validators['lastName'] ?? []), ...[Validators.required, Validators.maxLength(50), Validators.pattern(\"^[a-zA-Z0-9\\\\s\\\\'\\\\-\\\\']*$\")]]),\r\n\t\t\t'userName': new UntypedFormControl(null, [...(validators['userName'] ?? []), ...[Validators.required]]),\r\n\t\t\t'email': new UntypedFormControl(null, [...(validators['email'] ?? []), ...[Validators.required, Validators.email, Validators.maxLength(100)]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[Validators.required]]),\r\n\t\t\t'pfsFacilityIds': new UntypedFormControl([], [...(validators['pfsFacilityIds'] ?? []), ...[]]),\r\n\t\t\t'facilityIds': new UntypedFormControl([], [...(validators['facilityIds'] ?? []), ...[]]),\r\n\t\t\t'organizationIds': new UntypedFormControl([], [...(validators['organizationIds'] ?? []), ...[]]),\r\n\t\t\t'honeyPot': new UntypedFormControl(null, [...(validators['honeyPot'] ?? []), ...[]]),\r\n\t\t\t'alreadyExists': new UntypedFormControl(false, [...(validators['alreadyExists'] ?? []), ...[]]),\r\n\t\t\t'errorMessage': new UntypedFormControl(null, [...(validators['errorMessage'] ?? []), ...[]]),\r\n\t\t\t'fromAccounts': new UntypedFormControl(false, [...(validators['fromAccounts'] ?? []), ...[]]),\r\n\t\t\t'fromIcq': new UntypedFormControl(false, [...(validators['fromIcq'] ?? []), ...[]])\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): HomerRegisterVmFromFg {\r\n\t\treturn new HomerRegisterVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class HomerRegisterVmFromFg {\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 pfsUserId(): number {\r\n\t\treturn this.fg.get('pfsUserId').value;\r\n\t}\r\n\tset pfsUserId(val) {\r\n\t\tthis.fg.get('pfsUserId').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 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\tget honeyPot(): string {\r\n\t\treturn this.fg.get('honeyPot').value;\r\n\t}\r\n\tset honeyPot(val) {\r\n\t\tthis.fg.get('honeyPot').setValue(val);\r\n\t}\r\n\r\n\tget alreadyExists(): boolean {\r\n\t\treturn this.fg.get('alreadyExists').value;\r\n\t}\r\n\tset alreadyExists(val) {\r\n\t\tthis.fg.get('alreadyExists').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 fromAccounts(): boolean {\r\n\t\treturn this.fg.get('fromAccounts').value;\r\n\t}\r\n\tset fromAccounts(val) {\r\n\t\tthis.fg.get('fromAccounts').setValue(val);\r\n\t}\r\n\r\n\tget fromIcq(): boolean {\r\n\t\treturn this.fg.get('fromIcq').value;\r\n\t}\r\n\tset fromIcq(val) {\r\n\t\tthis.fg.get('fromIcq').setValue(val);\r\n\t}\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n\r\nimport { HomerRegisterVm } from 'app/shared/generated/Models/Public/HomerRegisterVm';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class HomerRegisterService {\r\n\r\n constructor(private httpClient: HttpClient) { }\r\n\r\n getUser(guid: string) : Observable {\r\n return this.httpClient.get(`api/PublicHomerRegister/GetPfsUserByGuid?guid=${guid}`)\r\n }\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { AbstractControl, UntypedFormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { environment } from 'environments/environment';\r\nimport { InvisibleReCaptchaComponent } from 'ngx-captcha';\r\nimport { Observable, tap } from 'rxjs';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { HomerRegisterVm } from 'app/shared/generated/Models/Public/HomerRegisterVm';\r\nimport { HomerRegisterService } from './homer-register.service';\r\nimport { pcgSettings } from 'app/shared/generated/pcg-settings';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\n\r\n@Component({\r\n selector: 'app-homer-register',\r\n templateUrl: './homer-register.component.html',\r\n styleUrls: ['./homer-register.component.scss'],\r\n standalone: false\r\n})\r\nexport class HomerRegisterComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('captchaElem') captchaElem: InvisibleReCaptchaComponent;\r\n siteKey: string = environment.siteKey;\r\n\r\n public captchaIsLoaded = false;\r\n\tpublic captchaSuccess = false;\r\n\tpublic captchaResponse?: string;\r\n\tpublic captchaIsReady = false;\t\r\n\tpublic recaptcha: any = null;\r\n public execute: any;\r\n emptyCaptcha: boolean = true;\r\n honeypotControl;\r\n\r\n formGroup = HomerRegisterVm.Form;\r\n\tmodel = HomerRegisterVm.GetModel(this.formGroup);\r\n\tmodel$: Observable;\r\n\r\n isSuccess = false;\r\n alreadyExists = false;\r\n isError = false;\r\n fromAccounts = false;\r\n fromIcq = false;\r\n \r\n errorString = \"\";\r\n userGuid = \"\";\r\n loginUrl = \"\";\r\n\r\n constructor(\r\n private ms: SystemMessageService\r\n , private cdr: ChangeDetectorRef\r\n , public router: Router\r\n , private route: ActivatedRoute\r\n , private homerRegisterService: HomerRegisterService\r\n , private formatHelperService : FormatHelperService\r\n , title: Title\r\n ) { title.setTitle('HOMER Registration'); }\r\n\r\n ngOnInit() {\r\n this.setEnv(); \r\n this.setUpHoneyPot();\r\n \r\n this.route.queryParams.subscribe((params) => {\t\r\n if (!this.formatHelperService.GetIsNullyOrWhitespace(params?.guid)) { \r\n this.isError = false; \r\n this.userGuid = params.guid;\r\n } else { \r\n this.isError = true; \r\n this.errorString = \"There was an error retrieving your PFS user information.\";\r\n }\r\n if (!this.formatHelperService.GetIsNullyOrWhitespace(params?.fromAccounts)) {\r\n this.fromAccounts = true;\r\n }\r\n if (!this.formatHelperService.GetIsNullyOrWhitespace(params?.fromIcq)) {\r\n this.fromIcq = true;\r\n }\r\n\t\t});\r\n\r\n this.model$ = this.homerRegisterService.getUser(this.userGuid)\r\n .pipe(tap((vm: HomerRegisterVm) => { \r\n this.formGroup.setValue(vm); \r\n this.formGroup.addControl('recaptcha', new UntypedFormControl('', Validators.required));\r\n if (vm.alreadyExists === true) {\r\n this.isError = true;\r\n this.errorString = \"This user and/or email already exists. \" + \r\n \"Please login to Homer below to proceed or contact a PFS/HOMER administrator for further assistance.\";\r\n }\r\n if (vm.errorMessage !== \"\") { \r\n this.isError = true; \r\n this.errorString = vm.errorMessage;\r\n }\r\n this.formGroup.controls['fromAccounts'].setValue(this.fromAccounts);\r\n this.formGroup.controls['fromIcq'].setValue(this.fromIcq);\r\n }));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n setEnv() {\r\n if (pcgSettings.mode === 'Development') { this.loginUrl = \"https://localhost:44327/\"; } \r\n else if (pcgSettings.mode === 'Demo') { this.loginUrl = \"https://demo.fdepcs.com/login\"; } \r\n else { this.loginUrl = \"https://fdepcs.com/login\"; }\r\n\t}\r\n\r\n onSubmit() {\r\n this.isSuccess = false;\r\n this.isError = false;\r\n this.errorString = \"\";\r\n\r\n this.ms.getHttpObservable(this, 'api/PublicHomerRegister/RegisterHomerUser', this.formGroup)\r\n .subscribe(msg => {\r\n if (msg.isSuccessful) { this.isSuccess = true; } \r\n else { \r\n this.isSuccess = false; \r\n this.isError = true;\r\n this.errorString = msg.message;\r\n }\r\n }\r\n );\r\n }\r\n\r\n setUpHoneyPot() {\r\n this.formGroup.controls['honeyPot'].setValidators(this.requireFalse());\r\n\t\tthis.formGroup.updateValueAndValidity();\r\n }\r\n\r\n requireFalse() : ValidatorFn {\r\n\t\treturn (control : AbstractControl) : ValidationErrors | null => {\r\n\t\t\tif (control.value === true) { return { honeyPot: true}; }\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n handleReset() {\r\n\t\tthis.captchaSuccess = false;\r\n\t\tthis.captchaResponse = undefined;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n handleReady(): void {\r\n\t\tthis.captchaIsReady = true;\r\n\t\tthis.cdr.detectChanges();\r\n this.execute = setInterval(() => {\r\n\t\t\tthis.captchaElem?.execute();\r\n this.captchaElem?.getResponse() !== '' \r\n ? this.emptyCaptcha = false \r\n : this.emptyCaptcha = true;\r\n\t\t}, 2000);\r\n }\r\n\r\n handleLoad(): void {\r\n\t\tthis.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n }\r\n\r\n handleSuccess(captchaResponse: string): void {\r\n\t\tthis.captchaSuccess = true;\r\n\t\tthis.captchaResponse = captchaResponse;\r\n\t\tthis.cdr.detectChanges();\r\n }\r\n\r\n ngOnDestroy() { clearInterval(this.execute); }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

User Registration from PFS

\r\n
\r\n
\r\n
\r\n \r\n
\r\n Registering for an account in HOMER coming from PFS will automatically give you access \r\n to Support in order to create, view, and manage your Support Desk Tickets. \r\n Your facility associations will automatically be associated to match PFS. \r\n If your account already exists in HOMER you will be given a message to login with your existing account.\r\n

\r\n Upon clicking Register you will be sent a welcome email with instructions to continue setting up your account.\r\n
\r\n
\r\n \r\n
\r\n Facility Accounts are now managed in Homer as Organization Accounts.\r\n

\r\n Registering for an account in HOMER coming from PFS will automatically give you access \r\n to the Organizations admin area to manage these Accounts. \r\n Your Organization associations will automatically be associated based on your PFS Facility associations. \r\n If your account already exists in HOMER you will be given a message to login with your existing account.\r\n Please submit a Support Desk Ticket if you encounter any issues.\r\n

\r\n Upon clicking Register you will be sent a welcome email with instructions to continue setting up your account.\r\n
\r\n
\r\n \r\n
\r\n ICQ Review access is now located in HOMER.\r\n

\r\n Registering for an account in HOMER coming from PFS will automatically give you access \r\n to the ICQ Review area. \r\n Your Organization associations will automatically be associated based on your PFS Facility associations. \r\n Please submit a Support Desk Ticket if you encounter any issues.\r\n

\r\n Upon clicking Register you will be sent a welcome email with instructions to continue setting up your account.\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n
\r\n Name: {{ model.firstName }} {{ model.lastName }} \r\n
\r\n
\r\n\r\n
\r\n
\r\n Email: {{ model.email }} \r\n
\r\n
\r\n\r\n
\r\n
\r\n Phone: {{ model.phoneNumber }} \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n {{ errorString }}\r\n
\r\n
\r\n
\r\n
\r\n {{ loginUrl }}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n You have successfully created an account in HOMER. \r\n Please watch for a welcome email from fdepcs.com to finish setting up your account.\r\n
\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 { 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 IcqFeedbackVm {\r\n\tid: number;\r\n\ticqReviewId: number;\r\n\trating: number;\r\n\tcomment?: string;\r\n\tfacility?: 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'icqReviewId': new UntypedFormControl(0, [...(validators['icqReviewId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'rating': new UntypedFormControl(0, [...(validators['rating'] ?? []), ...[Validators.required]]),\r\n\t\t\t'comment': new UntypedFormControl(null, [...(validators['comment'] ?? []), ...[]]),\r\n\t\t\t'facility': new UntypedFormControl(null, [...(validators['facility'] ?? []), ...[]])\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): IcqFeedbackVmFromFg {\r\n\t\treturn new IcqFeedbackVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class IcqFeedbackVmFromFg {\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 icqReviewId(): number {\r\n\t\treturn this.fg.get('icqReviewId').value;\r\n\t}\r\n\tset icqReviewId(val) {\r\n\t\tthis.fg.get('icqReviewId').setValue(val);\r\n\t}\r\n\r\n\tget rating(): number {\r\n\t\treturn this.fg.get('rating').value;\r\n\t}\r\n\tset rating(val) {\r\n\t\tthis.fg.get('rating').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 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","import { Component, ViewChild, ChangeDetectorRef } from '@angular/core';\r\nimport { InvisibleReCaptchaComponent } from 'ngx-captcha';\r\nimport { UntypedFormControl, Validators } from '@angular/forms';\r\nimport { HttpClient } from '@angular/common/http';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { faStar } from '@fortawesome/pro-solid-svg-icons';\r\n\r\nimport { IcqFeedbackVm } from 'app/shared/generated/ICQ/Models/User/IcqFeedbackVm';\r\nimport { environment } from 'environments/environment';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\n\r\n@Component({\r\n selector: 'pcg-icq-feedback',\r\n standalone: false,\r\n templateUrl: './icq-feedback.component.html',\r\n styleUrl: './icq-feedback.component.scss'\r\n})\r\nexport class IcqFeedbackComponent {\r\n\r\n // reCaptcha properties\r\n @ViewChild('captchaElem') captchaElem: InvisibleReCaptchaComponent;\r\n\r\n siteKey: string = environment.siteKey; // should pick up environment specific siteKey\r\n public captchaIsLoaded = false;\r\n\tpublic captchaSuccess = false;\r\n\tpublic captchaResponse?: string;\r\n\tpublic captchaIsReady = false;\r\n\tpublic recaptcha: any = null;\r\n\tpublic execute: any;\r\n\r\n formGroup = IcqFeedbackVm.Form;\r\n starRating: number = 0;\r\n stars = document.getElementsByClassName(\"star-icon\");\r\n faIconName = { faStar };\r\n isError = false;\r\n\r\n constructor(\r\n private cdr: ChangeDetectorRef\r\n , private http: HttpClient\r\n , private route: ActivatedRoute\r\n , private sm: SystemMessageService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getFeedback();\r\n this.formGroup.addControl('recaptcha', new UntypedFormControl('', Validators.required));\r\n }\r\n\r\n getFeedback() {\r\n this.http.get(`api/ICQ/IcqReview/GetIcqFeedback?feedbackId=${this.route.snapshot.params.id}&guid=${this.route.snapshot.params.guid}`)\r\n .subscribe((msg: SystemMessage) => { this.formGroup.patchValue(msg.model); });\r\n }\r\n\r\n addStars(starNum) {\r\n this.removeStars();\r\n for (let i=0; i < starNum; i++) { this.stars[i]?.classList?.add(\"star-icon-filled\"); }\r\n this.starRating = starNum;\r\n }\r\n\r\n removeStars() { for (let i=0; i < 5; i++) { this.stars[i]?.classList?.remove(\"star-icon-filled\"); } }\r\n\r\n saveForm() {\r\n this.isError = false;\r\n if (this.starRating > 0) { this.formGroup.controls.rating.setValue(this.starRating); }\r\n else {\r\n this.isError = true;\r\n return;\r\n }\r\n \r\n this.http.post(`api/Icq/IcqReview/SaveFeedback`, this.formGroup.getRawValue())\r\n .subscribe((msg: SystemMessage) => {\r\n if (!msg.isSuccessful) { \r\n this.sm.setSystemMessage(msg.message, msg.messageClass);\r\n this.formGroup.controls.rating.setValue(0); \r\n this.addStars(0);\r\n }\r\n }\r\n );\r\n }\r\n\r\n // Captcha callbacks\r\n\thandleReset() {\r\n\t\tthis.captchaSuccess = false;\r\n\t\tthis.captchaResponse = undefined;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleReady(): void {\r\n\t\tthis.captchaIsReady = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t\tthis.execute = setInterval(() => { this.captchaElem?.execute(); }, 5000);\r\n\t}\r\n\r\n\thandleLoad(): void {\r\n\t\tthis.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleSuccess(captchaResponse: string): void {\r\n\t\tthis.captchaSuccess = true;\r\n\t\tthis.captchaResponse = captchaResponse;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n}\r\n","@if (formGroup.controls.id.value > 0) {\r\n
\r\n \r\n
\r\n
\r\n \r\n

User Feedback Survey

\r\n
\r\n @if (formGroup.controls.rating.value <= 0) {\r\n

\r\n Thank you for using the HOMER ICQ system. \r\n
\r\n Please help us improve our customer support by providing feedback on your experience.\r\n

\r\n }\r\n
\r\n \r\n \r\n @if (formGroup.controls.rating.value <= 0) {\r\n
\r\n
\r\n
\r\n
ID:
\r\n

{{ formGroup.controls.id.value }}

\r\n
\r\n
\r\n
Facility:
\r\n

{{ formGroup.controls.facility.value }}

\r\n
\r\n
\r\n
\r\n }\r\n \r\n \r\n @if (formGroup.controls.rating.value <= 0) {\r\n
\r\n
\r\n
\r\n
Rate Your Experience
\r\n
\r\n\r\n
\r\n
\r\n \r\n {{ this.starRating }} / 5\r\n \r\n   \r\n \r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n \r\n Characters left: {{1000 - formGroup.controls.comment.value?.length}}\r\n \r\n
\r\n
\r\n\r\n
\r\n @if (isError) {
Rating is required to submit this feedback.
}\r\n \r\n\r\n \r\n
\r\n } @else {
Thank you for your response! Your feedback has been submitted.
}\r\n
\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { SystemMessage, SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { IcqReviewVm } from 'app/shared/generated/ICQ/Models/User/IcqReviewVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { GlobalService } from 'app/shared/services/global.service';\r\n\r\n@Component({\r\n selector: 'pcg-icq-scheduling',\r\n templateUrl: './icq-scheduling.component.html',\r\n styleUrl: './icq-scheduling.component.scss',\r\n standalone: false\r\n})\r\nexport class IcqSchedulingComponent {\r\n\r\n icqReviewId: number;\r\n userId: number;\r\n approve: boolean;\r\n model: IcqReviewVm;\r\n isMobile = false;\r\n scheduleDate: string;\r\n isRescheduled = false;\r\n\r\n constructor(\r\n private activatedRoute: ActivatedRoute\r\n , private httpClient: HttpClient\r\n , private ms: SystemMessageService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.isMobile = GlobalService.setIsMobile(window.innerWidth);\r\n this.icqReviewId = Number(this.activatedRoute.snapshot.params.icqReviewId);\r\n this.userId = Number(this.activatedRoute.snapshot.params.userId);\r\n this.approve = Boolean(JSON.parse(\r\n !FormatHelperService.GetIsNullyOrWhitespace(this.activatedRoute?.snapshot.queryParams['approve'])\r\n ? this.activatedRoute?.snapshot.queryParams['approve']\r\n : \"false\"\r\n ));\r\n this.scheduleDate = this.activatedRoute?.snapshot.queryParams['scheduleDate'];\r\n this.getProposedSchedule();\r\n }\r\n\r\n getProposedSchedule() {\r\n this.httpClient.get(`api/ICQ/IcqScheduling/GetProposedSchedule?icqReviewId=${this.icqReviewId}`)\r\n .subscribe((vm: IcqReviewVm) => {\r\n this.model = vm; \r\n if (this.model.scheduleDateTimeStr != this.scheduleDate) { this.isRescheduled = true; }\r\n if (!this.isRescheduled) { this.approveOrDeclineSchedule(); }\r\n });\r\n }\r\n\r\n approveOrDeclineSchedule() {\r\n this.httpClient.post(`api/ICQ/IcqScheduling/ApproveOrDeclineSchedule?icqReviewId=${this.icqReviewId}&userId=${this.userId}&approve=${this.approve}`, {})\r\n .subscribe((sm: SystemMessage) => { \r\n if (!sm.isSuccessful) { this.ms.setSystemMessage(sm.message, sm.messageClass); }\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n @if (!isMobile) {\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n\r\n @if (isRescheduled) {\r\n
\r\n The ICQ Review Visit has been rescheduled. Please check your email to view the new date and time.\r\n
\r\n } @else {\r\n
\r\n @if (approve) {\r\n

Approved!

\r\n
\r\n \r\n You have approved the time {{ model?.scheduleDateTimeStr }} for the ICQ review for {{ model?.facilityName }} at\r\n {{ model?.facilityStreetAddress }}, {{ model?.facilityCity }}, {{ model?.facilityStateAbr }}, {{ model?.facilityZip }}\r\n \r\n } @else {\r\n

Declined!

\r\n
\r\n \r\n You have declined the time {{ model?.scheduleDateTimeStr }} for the ICQ review for {{ model?.facilityName }} at\r\n {{ model?.facilityStreetAddress }}, {{ model?.facilityCity }}, {{ model?.facilityStateAbr }}, {{ model?.facilityZip }}\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 LoginVm {\r\n\tuserName?: string;\r\n\tpassword?: 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'userName': new UntypedFormControl(null, [...(validators['userName'] ?? []), ...[Validators.required]]),\r\n\t\t\t'password': new UntypedFormControl(null, [...(validators['password'] ?? []), ...[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): LoginVmFromFg {\r\n\t\treturn new LoginVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class LoginVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\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 password(): string {\r\n\t\treturn this.fg.get('password').value;\r\n\t}\r\n\tset password(val) {\r\n\t\tthis.fg.get('password').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { AfterViewInit, Component, ElementRef, inject, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { faFingerprint, faUsbDrive } from '@fortawesome/pro-solid-svg-icons';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { FingerprintService } from 'app/core/security/multi-factor-auth/fingerprint.service';\r\nimport { WebAuthnService } from 'app/core/security/multi-factor-auth/web-authn.service';\r\nimport { SecurityService } from 'app/core/security/security.service';\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 { LoginVm } from 'app/shared/generated/Models/LoginVm';\r\nimport { FormatHelperService } from 'app/shared/helpers/format-helper.service';\r\nimport { FidoService } from 'app/shared/services/fido.service';\r\nimport { GlobalService } from 'app/shared/services/global.service';\r\nimport { MultiFactorAuthModalComponent } from './multi-factor-auth-modal/multi-factor-auth-modal.component';\r\nimport { GlobalVariablesService } from 'app/services/global-variables.service';\r\nimport { UserJsVm } from 'app/shared/generated/Administration/Models/Users/UserJsVm';\r\n\r\n@Component({\r\n selector: 'pcg-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss'],\r\n standalone: false\r\n})\r\nexport class LoginComponent implements OnDestroy, OnInit, AfterViewInit {\r\n\t@ViewChild('myForm', { static: true }) myForm: ElementRef;\r\n\t@ViewChild('footerEl', { static: true }) footerEl: ElementRef;\r\n\r\n\tloginForm = LoginVm.Form;\r\n user: UserJsVm;\r\n\r\n\tuserId: number;\r\n\r\n\tshowMfa = false;\r\n\tshowInactiveMessage = false;\r\n\tisUsingSsoLogin = false;\r\n\tisError = false;\r\n isOnPrem = true;\r\n\r\n\terrorString = \"\";\r\n\tssoEmail: string = \"\";\t\r\n\tssoCode = \"\";\r\n\r\n\tfaFingerprint = faFingerprint;\r\n\tfaUsbDrive = faUsbDrive;\r\n\t\r\n\tconstructor(\r\n\t\tprivate route: ActivatedRoute\r\n\t\t, private ms: SystemMessageService\r\n\t\t, private sec: SecurityService\r\n\t\t, private router: Router\r\n\t\t, private modalService: NgbModal\r\n\t\t, private webAuthn: WebAuthnService\r\n\t\t, private fingerprint: FingerprintService\r\n\t\t, private httpClient: HttpClient\r\n\t\t, title: Title\r\n\t\t, public gs: GlobalService\r\n\t\t, public gvs: GlobalVariablesService\r\n\t) { title.setTitle('Login'); }\r\n\r\n\tngOnInit() {\r\n\t\tconst user = this.sec.getUser();\r\n\t\tif (user) { this.loginRedirect(); }\r\n\r\n\t\tthis.isUsingSsoLogin = this.route?.snapshot?.queryParams?.useSso === true.toString();\r\n\r\n\t\tdocument.cookie = \"hasSpentSevenHalfMinutesInactive=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;\";\r\n\t\tthis.checkIfRedirectedFromInactivity();\r\n\r\n\t\tif (this.route.snapshot.queryParams.errorMessage != null) { this.ms.setSystemMessage(decodeURIComponent(this.route.snapshot.queryParams.errorMessage)); }\r\n if (this.route.snapshot.queryParams.userIdFromSso != null) { this.getUserObjAndLogin(); }\r\n\t}\r\n\r\n ngAfterViewInit() {\r\n\t\tconst footContainer = document.querySelector('#footer .container');\r\n\t\tif (footContainer) { footContainer.insertBefore(this.footerEl?.nativeElement, footContainer.firstChild); }\r\n }\r\n\r\n\tswitchSso() { this.isUsingSsoLogin = !this.isUsingSsoLogin; }\r\n\r\n\tonSubmit() {\r\n\t\tthis.isError = false;\r\n\t\tthis.errorString = \"\";\r\n\r\n\t\tif (this.loginForm.valid) {\r\n\t\t\tthis.sec.setLocalStorage('lastAccess', new Date());\r\n\t\t\tthis.httpClient.post(\"api/Account/Login\", this.loginForm.getRawValue())\r\n\t\t\t\t.subscribe((msg: SystemMessage) => { \r\n\t\t\t\t\tif (!msg.isSuccessful) { \r\n\t\t\t\t\t\tthis.isError = true;\r\n\t\t\t\t\t\tthis.errorString = msg.message;\r\n\t\t\t\t\t} else { this.doLogin(msg); }\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t\t} else { validateForm(this.loginForm); }\r\n\t}\r\n\r\n\tdoLogin (msg: SystemMessage) {\r\n\t\tconst val = msg.value;\r\n\t\tif (!val) { return; }\r\n\t\tif (val.userId) { this.userId = val.userId; }\r\n this.isOnPrem = val.isOnPrem;\r\n\t\tif (\r\n\t\t\tval.fidoMfa \r\n\t\t\t&& val.fingerprintMfa\r\n\t\t) { this.showMfa = true; }\r\n\t\telse if (val.fidoMfa) {\r\n\t\t\t// Handle fido MFA\r\n\t\t\tthis.myForm?.nativeElement?.ownerDocument?.activeElement?.blur(); // Need this hack to avoid change detection error on modal open\r\n\t\t\tthis.modalService.open(MultiFactorAuthModalComponent, { animation: false }); // Open the 2FA modal\r\n\t\t\tthis.doTwoFactorAuth(); // Handle 2FA\r\n\t\t} else if (val.fingerprintMfa) {\r\n\t\t\t// Handle fingerprint MFA\r\n\t\t\tthis.doFingerprintIdentification();\r\n\t\t} else {\r\n\t\t\t// Successful login\r\n\t\t\tthis.loginForm.reset();\r\n\t\t\tthis.sec.setSecurity(val.token, val.user);\r\n console.log(\"SSE init\");\r\n\t\t\tthis.loginRedirect();\r\n\t\t}\r\n\t}\r\n\r\n\tloginRedirect() {\r\n const baseUrl = document.getElementsByTagName('base')[0].href;\r\n this.user = this.sec.getUser();\r\n\t\tlet redirectUrl = this.route.snapshot.queryParamMap.get('redirectUrl') || sessionStorage.getItem('redirectUrl');\r\n\t\tif (localStorage.getItem(\"isNavFixed\") === \"true\") { this.gvs.isNavFixed.set(true); }\t\r\n if (this.user?.needToResetPin) { window.location.href = baseUrl + `/admin/users/user/edit/security/${this.user.id}`; } \r\n\t\tif (LoginComponent.detectMultiRedirect(redirectUrl)) {\r\n\t\t\tconst formattedUrl = this.formatMultiRedirect(redirectUrl);\r\n\t\t\r\n\t\t\tif (!formattedUrl) {\r\n\t\t\t\t// Redirect to the dashboard if the formatted URL is null or invalid\r\n\t\t\t\tthis.router.navigate(['/dashboard']);\r\n\t\t\t} else {\r\n\t\t\t\t// Navigate to the cleaned-up URL\r\n\t\t\t\tthis.router.navigateByUrl(formattedUrl);\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (redirectUrl) {\r\n\t\t\t\r\n\t\t\tredirectUrl = redirectUrl.replace(/^\\//, '');\r\n\t\t\tif (\r\n\t\t\t\tredirectUrl.startsWith('uploads/') \r\n\t\t\t\t|| redirectUrl.startsWith('quartz')\r\n\t\t\t) { window.location.href = baseUrl + redirectUrl; } \r\n\t\t\telse {\r\n\t\t\t\tthis.router.navigateByUrl(redirectUrl);\r\n\t\t\t\tsessionStorage.removeItem('redirectUrl');\r\n\t\t\t}\r\n\t\t} else { this.router.navigate(['/dashboard']); }\r\n\t}\r\n\r\n\t// If there is more than one redirect in the url, it could cause the page to render the login component \r\n\t// with top navigation instead of redirecting to the desired location\r\n\tstatic detectMultiRedirect(redirectUrl: string): boolean{\r\n\t\tconst badUrlSubStr = 'redirectUrl';\r\n\t\tif(FormatHelperService.GetIsNully(redirectUrl)) { return false; }\r\n\t\treturn redirectUrl.indexOf(badUrlSubStr) > 0;\r\n\t}\r\n\r\n\tformatMultiRedirect(redirectUrl: string): string {\r\n\t\tif (!redirectUrl) {\r\n\t\t\treturn redirectUrl; // Return as is if the URL is null or undefined\r\n\t\t}\r\n\t\r\n\t\t// Decode the URL to handle nested encoding\r\n\t\tlet decodedUrl = decodeURIComponent(redirectUrl);\r\n\t\r\n\t\t// Check if the decoded URL contains another `redirectUrl` parameter\r\n\t\tconst nestedRedirectMatch = decodedUrl.match(/redirectUrl=([^&]*)/);\r\n\t\tif (nestedRedirectMatch && nestedRedirectMatch[1]) {\r\n\t\t\t// Extract the inner redirect URL and decode it\r\n\t\t\tconst innerRedirectUrl = decodeURIComponent(nestedRedirectMatch[1]);\r\n\t\r\n\t\t\t// Return the cleaned-up URL\r\n\t\t\treturn innerRedirectUrl;\r\n\t\t}\r\n\t\r\n\t\t// If no nested redirect is found, return the original decoded URL\r\n\t\treturn decodedUrl;\r\n\t}\r\n\r\n\tdoTwoFactorAuth() {\r\n\t\tif (!this.webAuthn.isFidoCompatible()) {\r\n\t\t\tthis.modalService.dismissAll();\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// Save user credentials and clear form\r\n\t\tconst userName = this.loginForm.value.userName;\r\n\t\tconst password = this.loginForm.value.password;\r\n\t\tthis.loginForm.reset();\r\n\r\n\t\t// Get assertion options from the server for user\r\n\t\tthis.webAuthn.getAssertionOptions(userName, password)\r\n\t\t\t.subscribe(async makeAssertionOptions => {\r\n\t\t\t\ttry { \r\n\t\t\t\t\tmakeAssertionOptions = FidoService.fixAssertionOptions(makeAssertionOptions);\r\n\t\t\t\t\tlet credential = await navigator.credentials.get({ publicKey: makeAssertionOptions });\r\n\r\n\t\t\t\t\tthis.sec.setLocalStorage('lastAccess', new Date());\r\n\t\t\t\t\tthis.webAuthn.verifyAssertion(credential, userName, password)\r\n\t\t\t\t\t\t.subscribe((msg: SystemMessage) => {\r\n\t\t\t\t\t\t\tthis.modalService.dismissAll();\r\n\t\t\t\t\t\t\tthis.doLogin(msg);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\tthis.modalService.dismissAll();\r\n\t\t\t\t\tthis.webAuthn.verifyAssertion(null, userName, password)\r\n\t\t\t\t\t\t.subscribe((msg: SystemMessage) => { this.doLogin(msg); });\r\n\t\t\t\t\tconsole.log(\"Error : \" + e);\r\n\t\t\t\t} \t\t\t\t\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tfidoMfa() {\r\n\t\t// Handle fido MFA\r\n\t\tthis.myForm?.nativeElement?.ownerDocument?.activeElement?.blur(); // Need this hack to avoid change detection error on modal open\r\n\t\tthis.modalService.open(MultiFactorAuthModalComponent, { animation: false }); // Open the 2FA modal\r\n\t\tthis.doTwoFactorAuth(); // Handle 2FA\r\n\t}\r\n\r\n\tfingerprintMfa() { this.doFingerprintIdentification(); }\r\n\r\n\tasync doFingerprintIdentification() {\r\n\t\tthis.isError = false;\r\n\t\tthis.errorString = \"\";\r\n\t\tconst response = await this.fingerprint.loginFingerprintMfa(this.userId, this.isOnPrem);\r\n\r\n\t\t// Fire the save event\r\n\t\tif (response !== null) {\r\n\t\t\tif (response?.isSuccessful) { \r\n\t\t\t\tthis.sec.setLocalStorage('lastAccess', new Date());\r\n\t\t\t\tthis.httpClient.post(\"api/Account/Login?fingerprintSuccess=true\", this.loginForm.getRawValue())\r\n\t\t\t\t\t.subscribe((msg: SystemMessage) => { this.doLogin(msg); });\r\n\t\t\t} else { \r\n\t\t\t\tthis.isError = true;\r\n\t\t\t\tthis.errorString = \"Incorrect Fingerprint.\";\r\n\t\t\t}\r\n\t\t} \r\n\t}\r\n\r\n\tcheckIfRedirectedFromInactivity() { if (this.route.snapshot.queryParams.inactive != null) { this.showInactiveMessage = true; } }\r\n\r\n\tssoLogin() {\r\n\t\tthis.isError = false;\r\n\t\tthis.errorString = \"\";\r\n\r\n\t\tthis.httpClient.get(`api/Account/SsoLogin?email=${encodeURIComponent(this.ssoEmail)}`)\r\n\t\t\t.subscribe((sm: SystemMessage) => { \r\n\t\t\t\tif (sm.isSuccessful) { window.location.href = sm.value; } \r\n\t\t\t\telse { \r\n\t\t\t\t\tthis.isError = true;\r\n\t\t\t\t\tthis.errorString = sm.message;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n\t}\r\n\r\n\tgetUserObjAndLogin() {\r\n\t\tthis.isError = false;\r\n\t\tthis.errorString = \"\";\r\n var userId = Number(this.route.snapshot.queryParams.userIdFromSso);\r\n\r\n this.httpClient.get(`api/Account/GetUserObjectFromId?userId=${userId}`)\r\n\t\t\t.subscribe((msg: SystemMessage) => {\r\n\t\t\t\tif (!msg.isSuccessful) { \r\n\t\t\t\t\tthis.isError = true;\r\n\t\t\t\t\tthis.errorString = msg.message;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tthis.loginForm.reset();\r\n\t\t\t\t\tthis.sec.setSecurity(msg.value.token, msg.value.user);\r\n\t\t\t\t\tlocalStorage.setItem(\"loggedInUsingSso\", \"true\");\r\n localStorage.setItem(\"entraIdentifierUrl\", msg.value.entraIdentifierUrl);\r\n localStorage.setItem(\"entraLoginUrl\", msg.value.entraLoginUrl);\r\n\t\t\t\t\tthis.loginRedirect();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t);\r\n }\r\n\r\n\tngOnDestroy() { this.footerEl?.nativeElement.parentNode.removeChild(this.footerEl.nativeElement); }\r\n}\r\n","\r\n\r\n\r\n\r\n@if (showMfa) {\r\n\t
\r\n\t\t
\r\n\t\t\r\n\t\t\r\n\r\n\t\t\r\n\t
\r\n}\r\n\r\n@if (showInactiveMessage) {\r\n\t
\r\n\t\tYou must sign back in because you had a period of inactivity during your session.\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 PfsRegisterVm {\r\n\tfirstName?: string;\r\n\tlastName?: string;\r\n\temail?: string;\r\n\tconfirmEmail?: string;\r\n\tphoneNumber?: string;\r\n\tfacilityIds?: number[];\r\n\thoneyPot?: 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'firstName': new UntypedFormControl(null, [...(validators['firstName'] ?? []), ...[Validators.required, Validators.maxLength(50), Validators.pattern(\"^[a-zA-Z0-9\\\\s\\\\'\\\\-\\\\']*$\")]]),\r\n\t\t\t'lastName': new UntypedFormControl(null, [...(validators['lastName'] ?? []), ...[Validators.required, Validators.maxLength(50), Validators.pattern(\"^[a-zA-Z0-9\\\\s\\\\'\\\\-\\\\']*$\")]]),\r\n\t\t\t'email': new UntypedFormControl(null, [...(validators['email'] ?? []), ...[Validators.required, Validators.email, Validators.maxLength(100), Validators.pattern(\"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-z]{2,4}$\")]]),\r\n\t\t\t'confirmEmail': new UntypedFormControl(null, [...(validators['confirmEmail'] ?? []), ...[Validators.required, Validators.email, Validators.maxLength(100), Validators.pattern(\"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-z]{2,4}$\")]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityIds': new UntypedFormControl([], [...(validators['facilityIds'] ?? []), ...[Validators.required]]),\r\n\t\t\t'honeyPot': new UntypedFormControl(null, [...(validators['honeyPot'] ?? []), ...[]])\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): PfsRegisterVmFromFg {\r\n\t\treturn new PfsRegisterVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class PfsRegisterVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\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 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 confirmEmail(): string {\r\n\t\treturn this.fg.get('confirmEmail').value;\r\n\t}\r\n\tset confirmEmail(val) {\r\n\t\tthis.fg.get('confirmEmail').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 honeyPot(): string {\r\n\t\treturn this.fg.get('honeyPot').value;\r\n\t}\r\n\tset honeyPot(val) {\r\n\t\tthis.fg.get('honeyPot').setValue(val);\r\n\t}\r\n}\r\n","import { AfterViewInit, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { AbstractControl, UntypedFormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { environment } from 'environments/environment';\r\nimport { InvisibleReCaptchaComponent } from 'ngx-captcha';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { validateForm } from 'app/shared/form-elements/form-validateForm.function';\r\nimport { PfsRegisterVm } from 'app/shared/generated/Models/Public/PfsRegisterVm';\r\nimport { pcgSettings } from 'app/shared/generated/pcg-settings';\r\n\r\n@Component({\r\n selector: 'app-pfs-register',\r\n templateUrl: './pfs-register.component.html',\r\n styleUrls: ['./pfs-register.component.scss'],\r\n standalone: false\r\n})\r\nexport class PfsRegisterComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n @ViewChild('captchaElem') captchaElem: InvisibleReCaptchaComponent;\r\n siteKey: string = environment.siteKey; // should pick up environment specific siteKey\r\n\r\n public captchaIsLoaded = false;\r\n\tpublic captchaSuccess = false;\r\n\tpublic captchaResponse?: string;\r\n\tpublic captchaIsReady = false;\t\r\n\tpublic recaptcha: any = null;\r\n public execute: any;\r\n emptyCaptcha: boolean = true;\r\n honeypotControl;\r\n \r\n subscriptions: Subscription = new Subscription();\r\n formGroup = PfsRegisterVm.Form;\r\n model = PfsRegisterVm.GetModel(this.formGroup);\r\n \r\n emailMatch = true; \r\n isSuccess = false;\r\n\r\n pfsUrl : string = \"\";\r\n\r\n constructor(\r\n private ms: SystemMessageService\r\n , private cdr: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit() { \r\n this.setEnv(); \r\n this.setUpHoneyPot();\r\n this.formGroup.addControl('recaptcha', new UntypedFormControl('', Validators.required));\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n setUpHoneyPot() {\r\n\t\tthis.formGroup.controls['honeyPot'].setValidators(this.requireFalse());\r\n\t\tthis.formGroup.updateValueAndValidity();\r\n\t}\r\n\r\n requireFalse() : ValidatorFn {\r\n\t\treturn (control : AbstractControl) : ValidationErrors | null => {\r\n\t\t\tif (control.value === true) { return { honeyPot: true}; }\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n handleReset() {\r\n\t\tthis.captchaSuccess = false;\r\n\t\tthis.captchaResponse = undefined;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n handleReady(): void {\r\n\t\tthis.captchaIsReady = true;\r\n\t\tthis.cdr.detectChanges();\r\n this.execute = setInterval(() => {\r\n if(this.captchaElem != null)\r\n { \r\n\t\t\tthis.captchaElem?.execute();\r\n this.captchaElem?.getResponse() !== '' \r\n ? this.emptyCaptcha = false \r\n : this.emptyCaptcha = true;\r\n }\r\n\t\t}, 2000);\r\n }\r\n\r\n handleLoad(): void {\r\n\t\tthis.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n }\r\n\r\n handleSuccess(captchaResponse: string): void {\r\n\t\tthis.captchaSuccess = true;\r\n\t\tthis.captchaResponse = captchaResponse;\r\n\t\tthis.cdr.detectChanges();\r\n }\r\n\r\n setEnv() {\r\n if (pcgSettings.mode === 'Development') { this.pfsUrl = \"https://localhost:44384/\"; } \r\n else if (pcgSettings.mode === 'Demo') { this.pfsUrl = \"https://demo.fdohcentralpharmacy.com/\"; \t} \r\n else { this.pfsUrl = \"https://fdohcentralpharmacy.com/\"; }\r\n\t}\r\n\r\n sanitize(email: string, isConfirm: boolean) {\r\n var strTempString = email.trim();\r\n strTempString = strTempString.replace(\"'\", \"\");\r\n strTempString = strTempString.replace(\"--\", \"\");\r\n strTempString = strTempString.replace(\"/\", \"\");\r\n strTempString = strTempString.replace(\"&\", \"\");\r\n strTempString = strTempString.replace(\"?\", \"\");\r\n strTempString = strTempString.replace(\":\", \"\");\r\n strTempString = strTempString.replace(\",\", \"\");\r\n strTempString = strTempString.replace(\";\", \"\");\r\n strTempString = strTempString.replace(\"NULL\", \"\");\r\n strTempString = strTempString.replace(\"xp_\", \"\");\r\n strTempString.replace(/[\\n\\r]+/g, '');\r\n strTempString.replace('\\\\', '');\r\n\r\n if (isConfirm === true) { this.formGroup.controls['confirmEmail'].setValue(strTempString); } \r\n else { this.formGroup.controls['email'].setValue(strTempString); }\r\n }\r\n\r\n onSubmit() {\r\n if (this.formGroup.controls['confirmEmail'].value !== this.formGroup.controls['email'].value) {\r\n this.emailMatch = false;\r\n }\r\n \r\n if (this.formGroup.valid) { \r\n this.subscriptions.add(this.ms.getHttpObservable(this, 'api/PublicPfsRegister/RegisterPfsUser', this.formGroup)\r\n .subscribe(msg => {\r\n if (msg.isSuccessful) {\r\n this.isSuccess = true;\r\n this.formGroup.reset();\r\n } else { this.isSuccess = false; }\r\n }));\r\n } else { \r\n validateForm(this.formGroup); \r\n this.isSuccess = false;\r\n }\r\n }\r\n\r\n ngOnDestroy() { \r\n this.subscriptions.unsubscribe(); \r\n\t\tclearInterval(this.execute);\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n
\r\n \r\n

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

PFS Registration

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

\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n Select your facilities from the dropdown list below.\r\n Typing into the text area will filter your results.\r\n Once you find your facility select it with a mouse click or by highlighting it with the arrow keys and\r\n pressing enter.\r\n Your facility will then be added to your list.\r\n Once an item is selected you may remove it by clicking the \"x\" to the left.\r\n Repeat the process to select more than one facility.\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n If you cannot find your facility click \r\n here \r\n a to submit a Support Desk Ticket for assistance.\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n Emails do not match\r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n\r\n \r\n
\r\n\r\n
\r\n

\r\n Congratulations, you have successfully registered for access to PFS!\r\n A confirmation email has been sent to you.\r\n An email has been sent to BPHP staff notifying them of your registration.\r\n BPHP staff will review, setup, and confirm your registration.\r\n Once your registration has been confirmed, you will receive an email with your Username, and a link to\r\n create your password.\r\n

\r\n
\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 DonorRegistrationVm {\r\n\thoneyPot?: string;\r\n\tdonorId: number;\r\n\tname?: string;\r\n\tphoneNumber?: string;\r\n\taddress?: string;\r\n\taddressId?: number;\r\n\tsmartyAddress?: any;\r\n\tsmartyAddressString?: string;\r\n\tcounty?: any;\r\n\tcountyId: number;\r\n\temailAddress?: string;\r\n\tcontactName?: string;\r\n\tcontactPhone?: string;\r\n\tsignature?: string;\r\n\tdateSigned: Date;\r\n\tisAttested?: boolean;\r\n\tfacilityType?: string;\r\n\tfacilityTypeId: number;\r\n\tcomments?: string;\r\n\tstatusId: number;\r\n\tdeniedReasonId?: 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'honeyPot': new UntypedFormControl(null, [...(validators['honeyPot'] ?? []), ...[]]),\r\n\t\t\t'donorId': new UntypedFormControl(0, [...(validators['donorId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'name': new UntypedFormControl(null, [...(validators['name'] ?? []), ...[Validators.required]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[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'address': new UntypedFormControl(null, [...(validators['address'] ?? []), ...[]]),\r\n\t\t\t'addressId': new UntypedFormControl(null, [...(validators['addressId'] ?? []), ...[]]),\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'county': new UntypedFormControl(null, [...(validators['county'] ?? []), ...[]]),\r\n\t\t\t'countyId': new UntypedFormControl(0, [...(validators['countyId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'emailAddress': new UntypedFormControl(null, [...(validators['emailAddress'] ?? []), ...[Validators.required, Validators.email, Validators.pattern(\"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\\\.[a-z]{2,4}$\")]]),\r\n\t\t\t'contactName': new UntypedFormControl(null, [...(validators['contactName'] ?? []), ...[Validators.required]]),\r\n\t\t\t'contactPhone': new UntypedFormControl(null, [...(validators['contactPhone'] ?? []), ...[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'signature': new UntypedFormControl(null, [...(validators['signature'] ?? []), ...[Validators.required]]),\r\n\t\t\t'dateSigned': new UntypedFormControl('', [...(validators['dateSigned'] ?? []), ...[Validators.required]]),\r\n\t\t\t'isAttested': new UntypedFormControl(null, [...(validators['isAttested'] ?? []), ...[Validators.required]]),\r\n\t\t\t'facilityType': new UntypedFormControl(null, [...(validators['facilityType'] ?? []), ...[]]),\r\n\t\t\t'facilityTypeId': new UntypedFormControl(0, [...(validators['facilityTypeId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'comments': new UntypedFormControl(null, [...(validators['comments'] ?? []), ...[Validators.maxLength(250)]]),\r\n\t\t\t'statusId': new UntypedFormControl(0, [...(validators['statusId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'deniedReasonId': new UntypedFormControl(null, [...(validators['deniedReasonId'] ?? []), ...[]])\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): DonorRegistrationVmFromFg {\r\n\t\treturn new DonorRegistrationVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class DonorRegistrationVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget honeyPot(): string {\r\n\t\treturn this.fg.get('honeyPot').value;\r\n\t}\r\n\tset honeyPot(val) {\r\n\t\tthis.fg.get('honeyPot').setValue(val);\r\n\t}\r\n\r\n\tget donorId(): number {\r\n\t\treturn this.fg.get('donorId').value;\r\n\t}\r\n\tset donorId(val) {\r\n\t\tthis.fg.get('donorId').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 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 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 addressId(): number {\r\n\t\treturn this.fg.get('addressId').value;\r\n\t}\r\n\tset addressId(val) {\r\n\t\tthis.fg.get('addressId').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 county(): any {\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 emailAddress(): string {\r\n\t\treturn this.fg.get('emailAddress').value;\r\n\t}\r\n\tset emailAddress(val) {\r\n\t\tthis.fg.get('emailAddress').setValue(val);\r\n\t}\r\n\r\n\tget contactName(): string {\r\n\t\treturn this.fg.get('contactName').value;\r\n\t}\r\n\tset contactName(val) {\r\n\t\tthis.fg.get('contactName').setValue(val);\r\n\t}\r\n\r\n\tget contactPhone(): string {\r\n\t\treturn this.fg.get('contactPhone').value;\r\n\t}\r\n\tset contactPhone(val) {\r\n\t\tthis.fg.get('contactPhone').setValue(val);\r\n\t}\r\n\r\n\tget signature(): string {\r\n\t\treturn this.fg.get('signature').value;\r\n\t}\r\n\tset signature(val) {\r\n\t\tthis.fg.get('signature').setValue(val);\r\n\t}\r\n\r\n\tget dateSigned(): Date {\r\n\t\treturn this.fg.get('dateSigned').value;\r\n\t}\r\n\tset dateSigned(val) {\r\n\t\tthis.fg.get('dateSigned').setValue(val);\r\n\t}\r\n\r\n\tget isAttested(): boolean {\r\n\t\treturn this.fg.get('isAttested').value;\r\n\t}\r\n\tset isAttested(val) {\r\n\t\tthis.fg.get('isAttested').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\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\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 statusId(): number {\r\n\t\treturn this.fg.get('statusId').value;\r\n\t}\r\n\tset statusId(val) {\r\n\t\tthis.fg.get('statusId').setValue(val);\r\n\t}\r\n\r\n\tget deniedReasonId(): number {\r\n\t\treturn this.fg.get('deniedReasonId').value;\r\n\t}\r\n\tset deniedReasonId(val) {\r\n\t\tthis.fg.get('deniedReasonId').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { AfterViewInit, ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { AbstractControl, UntypedFormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { Router } from '@angular/router';\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { validateForm } from 'app/shared/form-elements/form-validateForm.function';\r\nimport { DonorRegistrationVm } from 'app/shared/generated/Models/Public/DonorRegistrationVm';\r\nimport { environment } from 'environments/environment';\r\nimport { InvisibleReCaptchaComponent } from 'ngx-captcha';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'donor-registration',\r\n templateUrl: './donor-registration.component.html',\r\n styleUrls: ['./donor-registration.component.scss'],\r\n standalone: false\r\n})\r\n\r\nexport class DonorRegistrationComponent implements OnInit, AfterViewInit, OnDestroy {\r\n\r\n\t@ViewChild('captchaElem') captchaElem: InvisibleReCaptchaComponent;\r\n\tsiteKey: string = environment.siteKey; // should pick up environment specific siteKey\r\n\r\n\tpublic captchaIsLoaded = false;\r\n\tpublic captchaSuccess = false;\r\n\tpublic captchaResponse?: string;\r\n\tpublic captchaIsReady = false;\r\n\tpublic recaptcha: any = null;\r\n\tpublic execute: any;\r\n\temptyCaptcha: boolean = true;\r\n\thoneypotControl;\r\n\r\n\tid: number;\r\n\tformGroup = DonorRegistrationVm.Form;\r\n\tsubscriptions = new Subscription();\r\n\tmodel = new DonorRegistrationVm();\r\n\tcurrentDate: any = new Date();\r\n\tcanManualEntry = true;\r\n\tisSuccess = false;\r\n\tdisableSave = false;\r\n\r\n\tphoneValidation = { pattern: \"Invalid phone number\" };\r\n\r\n\tconstructor(public router: Router, private httpClient: HttpClient, title: Title, private ms: SystemMessageService, private cdr: ChangeDetectorRef) {\r\n\t\ttitle.setTitle('Donor Registration');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tif (isNaN(this.id) || this.id == 0) {\r\n\t\t\tthis.setUpHoneyPot();\r\n\t\t\tthis.formGroup.addControl('recaptcha', new UntypedFormControl('', Validators.required));\r\n\t\t\tthis.formGroup.get('dateSigned').patchValue(this.currentDate.toLocaleString());\r\n\t\t}\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tif (isNaN(this.id) || this.id == 0) {\r\n\t\t\tthis.captchaIsLoaded = true;\r\n\t\t\tthis.cdr.detectChanges();\r\n\t\t}\r\n\t}\r\n\r\n\tsetUpHoneyPot() {\r\n\t\tthis.formGroup.controls['honeyPot'].setValidators(this.requireFalse());\r\n\t\tthis.formGroup.updateValueAndValidity();\r\n\t}\r\n\r\n\trequireFalse(): ValidatorFn {\r\n\t\treturn (control: AbstractControl): ValidationErrors | null => {\r\n\t\t\tif (control.value === true) { return { honeyPot: true }; }\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\thandleReset() {\r\n\t\tthis.captchaSuccess = false;\r\n\t\tthis.captchaResponse = undefined;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleReady(): void {\r\n\t\tthis.captchaIsReady = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t\tthis.execute = setInterval(() => {\r\n\t\t\tthis.captchaElem?.execute();\r\n\t\t\tthis.captchaElem?.getResponse() !== '' ? this.emptyCaptcha = false : this.emptyCaptcha = true;\r\n\t\t}, 5000);\r\n\t}\r\n\r\n\thandleLoad(): void {\r\n\t\tthis.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleSuccess(captchaResponse: string): void {\r\n\t\tthis.captchaSuccess = true;\r\n\t\tthis.captchaResponse = captchaResponse;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.subscriptions.unsubscribe();\r\n\t\tclearInterval(this.execute);\r\n\t}\r\n\r\n\tsaveDonor() {\r\n\t\tif (this.formGroup.valid) {\r\n\t\t\tthis.subscriptions.add(\r\n\t\t\t\tthis.ms.getHttpObservable(this, 'api/PublicDonorRegistration/SaveDonor/', this.formGroup).subscribe(msg => {\r\n\t\t\t\t\tif (msg.isSuccessful) {\r\n\t\t\t\t\t\tthis.isSuccess = true;\r\n\t\t\t\t\t\tthis.disableForm();\r\n\t\t\t\t\t\tthis.captchaSuccess = true;\r\n\t\t\t\t\t} else { this.isSuccess = false; }\r\n\t\t\t\t}));\r\n\t\t} else { validateForm(this.formGroup); }\r\n\t}\r\n\r\n\tdisableForm() {\r\n\t\tthis.formGroup.disable();\r\n\t\tthis.disableSave = true;\r\n\t}\r\n\r\n\tupdateCounty() {\r\n\t\tconst address = this.formGroup.value.smartyAddress;\r\n\r\n\t\tif (address === null || address.countyName === null) { return; }\r\n\t\tthis.httpClient.get(`api/PublicDonorRegistration/GetCountyByName?countyName=${address.countyName}`).subscribe((countyId: number) => {\r\n\t\t\tif (countyId !== 0) {\r\n\t\t\t\tthis.formGroup.get('countyId').patchValue(countyId)\r\n\t\t\t\tdocument.getElementById('contactName').focus();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.formGroup.get('countyId').patchValue(0)\r\n\t\t\t\tdocument.getElementById('countyId').focus();\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\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t

PRESCRIPTION DRUG DONATION PROGRAM

\r\n\t\t\t

DONOR PARTICIPATION FORM

\r\n\t\t
\r\n\t
\r\n
\r\n
\r\n\t
\r\n\t\t
\r\n\t\t\tAPPLICATION – DONOR FACILITY\r\n\t\t
\r\n\t\t
\r\n\t\t\tThank you for your willingness to donate to the Prescription Drug Donation Repository (Rx Connects) Program. Please be aware the Rx Connects Program is governed by Section 465.1902, Florida Statutes which will only allow us to accept donations from healthcare organizations and not from individual citizens. If you are not filling out this form on behalf of your healthcare organization please contact 850-841-8530 and one of our staff members will be able to assist you further.\r\n\t\t\tQuestions about completion of this form may be directed to the Bureau of Public Health Pharmacy at (850) 841-8530.\r\n\t\t
\r\n\t
\r\n\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\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\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\r\n\r\n\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\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\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\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\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
\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\r\n\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\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tThank you for submitting your application to become a donor in the Rx Connects Program. \r\n\t\t\t\t\tWe are processing your application and will notify your facility via email provided upon completion.\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\tCancel\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\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 RepositoryRegistrationVm {\r\n\thoneyPot?: string;\r\n\trepositoryId: number;\r\n\tname?: string;\r\n\tphoneNumber?: string;\r\n\tlicenseNumber?: string;\r\n\twebsiteAddress?: string;\r\n\tlicensingAgencyID?: number;\r\n\tlicenseOfIssuingAgency?: string;\r\n\taddress?: string;\r\n\taddressId?: number;\r\n\tsmartyAddress?: any;\r\n\tcountyId?: number;\r\n\tcounty?: string;\r\n\tzip?: string;\r\n\temailAddress?: string;\r\n\tpharmacistName?: string;\r\n\tpharmacistContactPhone?: string;\r\n\tfacilityType?: string;\r\n\tfacilityTypeId: number;\r\n\tisAttested: boolean;\r\n\tpharmacistSignature?: string;\r\n\tdateSigned: Date;\r\n\tcomments?: string;\r\n\tstatusId: number;\r\n\tdeniedReasonId?: 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'honeyPot': new UntypedFormControl(null, [...(validators['honeyPot'] ?? []), ...[]]),\r\n\t\t\t'repositoryId': new UntypedFormControl(0, [...(validators['repositoryId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'name': new UntypedFormControl(null, [...(validators['name'] ?? []), ...[Validators.required, Validators.maxLength(100)]]),\r\n\t\t\t'phoneNumber': new UntypedFormControl(null, [...(validators['phoneNumber'] ?? []), ...[Validators.required, Validators.maxLength(20), 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'licenseNumber': new UntypedFormControl(null, [...(validators['licenseNumber'] ?? []), ...[Validators.required, Validators.maxLength(50)]]),\r\n\t\t\t'websiteAddress': new UntypedFormControl(null, [...(validators['websiteAddress'] ?? []), ...[Validators.required, Validators.maxLength(100)]]),\r\n\t\t\t'licensingAgencyID': new UntypedFormControl(null, [...(validators['licensingAgencyID'] ?? []), ...[Validators.required]]),\r\n\t\t\t'licenseOfIssuingAgency': new UntypedFormControl(null, [...(validators['licenseOfIssuingAgency'] ?? []), ...[Validators.maxLength(100)]]),\r\n\t\t\t'address': new UntypedFormControl(null, [...(validators['address'] ?? []), ...[Validators.maxLength(200)]]),\r\n\t\t\t'addressId': new UntypedFormControl(null, [...(validators['addressId'] ?? []), ...[]]),\r\n\t\t\t'smartyAddress': new UntypedFormControl(null, [...(validators['smartyAddress'] ?? []), ...[Validators.required]]),\r\n\t\t\t'countyId': new UntypedFormControl(null, [...(validators['countyId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'county': new UntypedFormControl(null, [...(validators['county'] ?? []), ...[]]),\r\n\t\t\t'zip': new UntypedFormControl(null, [...(validators['zip'] ?? []), ...[]]),\r\n\t\t\t'emailAddress': new UntypedFormControl(null, [...(validators['emailAddress'] ?? []), ...[Validators.required, Validators.email, Validators.maxLength(100)]]),\r\n\t\t\t'pharmacistName': new UntypedFormControl(null, [...(validators['pharmacistName'] ?? []), ...[Validators.required, Validators.maxLength(100)]]),\r\n\t\t\t'pharmacistContactPhone': new UntypedFormControl(null, [...(validators['pharmacistContactPhone'] ?? []), ...[Validators.required, Validators.maxLength(20), 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'facilityType': new UntypedFormControl(null, [...(validators['facilityType'] ?? []), ...[]]),\r\n\t\t\t'facilityTypeId': new UntypedFormControl(0, [...(validators['facilityTypeId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'isAttested': new UntypedFormControl(false, [...(validators['isAttested'] ?? []), ...[]]),\r\n\t\t\t'pharmacistSignature': new UntypedFormControl(null, [...(validators['pharmacistSignature'] ?? []), ...[Validators.required, Validators.maxLength(100)]]),\r\n\t\t\t'dateSigned': new UntypedFormControl('', [...(validators['dateSigned'] ?? []), ...[Validators.required]]),\r\n\t\t\t'comments': new UntypedFormControl(null, [...(validators['comments'] ?? []), ...[Validators.maxLength(250)]]),\r\n\t\t\t'statusId': new UntypedFormControl(0, [...(validators['statusId'] ?? []), ...[Validators.required]]),\r\n\t\t\t'deniedReasonId': new UntypedFormControl(null, [...(validators['deniedReasonId'] ?? []), ...[]])\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): RepositoryRegistrationVmFromFg {\r\n\t\treturn new RepositoryRegistrationVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class RepositoryRegistrationVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget honeyPot(): string {\r\n\t\treturn this.fg.get('honeyPot').value;\r\n\t}\r\n\tset honeyPot(val) {\r\n\t\tthis.fg.get('honeyPot').setValue(val);\r\n\t}\r\n\r\n\tget repositoryId(): number {\r\n\t\treturn this.fg.get('repositoryId').value;\r\n\t}\r\n\tset repositoryId(val) {\r\n\t\tthis.fg.get('repositoryId').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 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 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 websiteAddress(): string {\r\n\t\treturn this.fg.get('websiteAddress').value;\r\n\t}\r\n\tset websiteAddress(val) {\r\n\t\tthis.fg.get('websiteAddress').setValue(val);\r\n\t}\r\n\r\n\tget licensingAgencyID(): number {\r\n\t\treturn this.fg.get('licensingAgencyID').value;\r\n\t}\r\n\tset licensingAgencyID(val) {\r\n\t\tthis.fg.get('licensingAgencyID').setValue(val);\r\n\t}\r\n\r\n\tget licenseOfIssuingAgency(): string {\r\n\t\treturn this.fg.get('licenseOfIssuingAgency').value;\r\n\t}\r\n\tset licenseOfIssuingAgency(val) {\r\n\t\tthis.fg.get('licenseOfIssuingAgency').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 addressId(): number {\r\n\t\treturn this.fg.get('addressId').value;\r\n\t}\r\n\tset addressId(val) {\r\n\t\tthis.fg.get('addressId').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 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 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 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 emailAddress(): string {\r\n\t\treturn this.fg.get('emailAddress').value;\r\n\t}\r\n\tset emailAddress(val) {\r\n\t\tthis.fg.get('emailAddress').setValue(val);\r\n\t}\r\n\r\n\tget pharmacistName(): string {\r\n\t\treturn this.fg.get('pharmacistName').value;\r\n\t}\r\n\tset pharmacistName(val) {\r\n\t\tthis.fg.get('pharmacistName').setValue(val);\r\n\t}\r\n\r\n\tget pharmacistContactPhone(): string {\r\n\t\treturn this.fg.get('pharmacistContactPhone').value;\r\n\t}\r\n\tset pharmacistContactPhone(val) {\r\n\t\tthis.fg.get('pharmacistContactPhone').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\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\tget isAttested(): boolean {\r\n\t\treturn this.fg.get('isAttested').value;\r\n\t}\r\n\tset isAttested(val) {\r\n\t\tthis.fg.get('isAttested').setValue(val);\r\n\t}\r\n\r\n\tget pharmacistSignature(): string {\r\n\t\treturn this.fg.get('pharmacistSignature').value;\r\n\t}\r\n\tset pharmacistSignature(val) {\r\n\t\tthis.fg.get('pharmacistSignature').setValue(val);\r\n\t}\r\n\r\n\tget dateSigned(): Date {\r\n\t\treturn this.fg.get('dateSigned').value;\r\n\t}\r\n\tset dateSigned(val) {\r\n\t\tthis.fg.get('dateSigned').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 statusId(): number {\r\n\t\treturn this.fg.get('statusId').value;\r\n\t}\r\n\tset statusId(val) {\r\n\t\tthis.fg.get('statusId').setValue(val);\r\n\t}\r\n\r\n\tget deniedReasonId(): number {\r\n\t\treturn this.fg.get('deniedReasonId').value;\r\n\t}\r\n\tset deniedReasonId(val) {\r\n\t\tthis.fg.get('deniedReasonId').setValue(val);\r\n\t}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, OnInit, ViewChild } from '@angular/core';\r\nimport { AbstractControl, FormControl, ValidationErrors, ValidatorFn, Validators } from '@angular/forms';\r\nimport { Title } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { InvisibleReCaptchaComponent } from 'ngx-captcha';\r\nimport { Observable, Subscription, tap } from 'rxjs';\r\n\r\nimport { SystemMessageService } from 'app/core/system-message/system-message-service';\r\nimport { validateForm } from 'app/shared/form-elements/form-validateForm.function';\r\nimport { RepositoryRegistrationVm } from 'app/shared/generated/Models/Public/RepositoryRegistrationVm';\r\nimport { environment } from 'environments/environment';\r\n\r\n@Component({\r\n selector: 'repository-register',\r\n templateUrl: './repository-register.component.html',\r\n styleUrls: ['./repository-register.component.scss'],\r\n standalone: false\r\n})\r\nexport class RepositoryRegisterComponent implements OnInit {\r\n\r\n\t@ViewChild('captchaElem') captchaElem: InvisibleReCaptchaComponent;\r\n\tsiteKey: string = environment.siteKey; // should pick up environment specific siteKey\r\n\tpublic captchaIsLoaded = false;\r\n\tpublic captchaSuccess = false;\r\n\tpublic captchaResponse?: string;\r\n\tpublic captchaIsReady = false;\r\n\tpublic recaptcha: any = null;\r\n\tpublic execute: any;\r\n\r\n\temptyCaptcha: boolean = true;\r\n\thoneypotControl;\r\n\r\n\tid: number;\r\n\tformGroup = RepositoryRegistrationVm.Form;\r\n\tmodel = RepositoryRegistrationVm.GetModel(this.formGroup);\r\n\tmodel$: Observable;\r\n\tsubscriptions = new Subscription();\r\n\tcurrentDate: Date = new Date();\r\n\tcanManualEntry = true;\r\n\tisSuccess = false;\r\n\tdisableSave = false;\r\n\r\n\tphoneValidation = { pattern: \"Invalid phone number\" };\r\n\r\n\tconstructor(private route: ActivatedRoute, private httpClient: HttpClient, title: Title,\r\n\t\tprivate ms: SystemMessageService, private cdr: ChangeDetectorRef) {\r\n\t\ttitle.setTitle('Register Repository');\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.setUpHoneyPot();\r\n\t\tthis.formGroup.addControl('recaptcha', new FormControl('', Validators.required));\r\n\t\tthis.formGroup.get('dateSigned').patchValue(this.currentDate.toLocaleString());\r\n\t}\r\n\r\n\tngAfterViewInit(): void {\r\n\t\tthis.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\tsetUpHoneyPot() {\r\n\t\tthis.formGroup.controls['honeyPot'].setValidators(this.requireFalse());\r\n\t\tthis.formGroup.updateValueAndValidity();\r\n\t}\r\n\r\n\trequireFalse(): ValidatorFn {\r\n\t\treturn (control: AbstractControl): ValidationErrors | null => {\r\n\t\t\tif (control.value === true) { return { honeyPot: true }; }\r\n\t\t\treturn null;\r\n\t\t}\r\n\t}\r\n\r\n\thandleReset() {\r\n\t\tthis.captchaSuccess = false;\r\n\t\tthis.captchaResponse = undefined;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleReady(): void {\r\n\t\tthis.captchaIsReady = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t\tthis.execute = setInterval(() => {\r\n\t\t\tthis.captchaElem.execute();\r\n\t\t\tthis.captchaElem.getResponse() !== '' ? this.emptyCaptcha = false : this.emptyCaptcha = true;\r\n\t\t}, 5000);\r\n\t}\r\n\r\n\thandleLoad(): void {\r\n\t\tthis.captchaIsLoaded = true;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\thandleSuccess(captchaResponse: string): void {\r\n\t\tthis.captchaSuccess = true;\r\n\t\tthis.captchaResponse = captchaResponse;\r\n\t\tthis.cdr.detectChanges();\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.subscriptions.unsubscribe();\r\n\t\tclearInterval(this.execute);\r\n\t}\r\n\r\n\tgetRepository() {\r\n\t\tthis.subscriptions.add(this.route.paramMap.subscribe(map => {\r\n\t\t\tthis.id = parseInt(map.get('id'), 10);\r\n\r\n\t\t\tif (this.id !== 0) {\r\n\t\t\t\tthis.model$ = this.httpClient\r\n\t\t\t\t\t.get(`api/RxConnects/Repository/GetRepositoryDetails/${this.id}`)\r\n\t\t\t\t\t.pipe(tap((model: RepositoryRegistrationVm) => {\r\n\t\t\t\t\t\tthis.formGroup.patchValue(model);\r\n\t\t\t\t\t}));\r\n\t\t\t} else { this.formGroup.get('dateSigned').patchValue(this.currentDate.toLocaleString()); }\r\n\t\t}));\r\n\t}\r\n\r\n\tsaveRepository() {\r\n\t\tif (this.formGroup.valid && this.formGroup.get('isAttested').value) {\r\n\t\t\tthis.subscriptions.add(\r\n\t\t\t\tthis.ms.getHttpObservable(this, 'api/PublicRepositoryRegister/saveRepository/', this.formGroup).subscribe(msg => {\r\n\t\t\t\t\tif (msg.isSuccessful) {\r\n\t\t\t\t\t\tthis.isSuccess = true;\r\n\t\t\t\t\t\tthis.disableForm();\r\n\t\t\t\t\t} else { this.isSuccess = false; }\r\n\t\t\t\t}));\r\n\t\t} else { validateForm(this.formGroup); }\r\n\t}\r\n\r\n\tdisableForm() {\r\n\t\tthis.formGroup.disable();\r\n\t\tthis.disableSave = true;\r\n\t}\r\n\r\n\tupdateCounty() {\r\n\t\tconst address = this.formGroup.value.smartyAddress;\r\n\r\n\t\tif (address === null || address.countyName === null) { return; }\r\n\t\tthis.httpClient.get(`api/PublicRepositoryRegister/GetCountyByName?countyName=${address.countyName}`).subscribe((countyId: number) => {\r\n\t\t\tif (countyId !== 0) {\r\n\t\t\t\tthis.formGroup.get('countyId').patchValue(countyId)\r\n\t\t\t\tdocument.getElementById('pharmacistName').focus();\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tthis.formGroup.get('countyId').patchValue(0)\r\n\t\t\t\tdocument.getElementById('countyId').focus();\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\t\r\n\t\t
\r\n\t\t
\r\n\t\t\t

PRESCRIPTION DRUG DONATION PROGRAM

\r\n\t\t\t

REPOSITORY PARTICIPATION FORM

\r\n\t\t
\r\n\t
\r\n
\r\n
\r\n\t
    \r\n\t\t
  • Questions about completion of this form may be directed to the Bureau of Public Health Pharmacy at (850)841-8530.
  • \r\n\t
\r\n
\r\n\r\n
\r\n\t
\r\n\t\t
\r\n\t\t\tAPPLICATION – PHARMACY OR MEDICAL FACILITY\r\n\t\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\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\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\r\n\r\n\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\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\r\n\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\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\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\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\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\r\n\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\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\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\r\n\t\t\t
\r\n\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\tThank you for submitting your application to become a repository in the Rx Connects Program. We are\r\n\t\t\t\t\tprocessing your application\r\n\t\t\t\t\tand will notify your facility via email provided upon completion.\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\tCancel\r\n\t\t\t\r\n\t\t\r\n\r\n\t\t\r\n\r\n\t\t\r\n\t
\r\n
\r\n\r\n","import { Component, OnInit, ViewChild, ElementRef, OnDestroy, HostListener } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'pcg-tech-spec',\r\n templateUrl: './tech-spec.component.html',\r\n styleUrls: ['./tech-spec.component.scss'],\r\n standalone: false\r\n})\r\nexport class TechSpecComponent implements OnInit, OnDestroy {\r\n\r\n constructor(public title: Title) { }\r\n\r\n ngOnInit() {\r\n\tthis.title.setTitle('Tech Spec');\r\n }\r\n\r\n ngOnDestroy() {\r\n\r\n }\r\n}\r\n","
\r\n\t

HOMER Tech Spec

\r\n\t

Technology

\r\n\t

Angular 11

\r\n\t

Microsoft .NET 6.0 with C# syntax

\r\n\t

Microsoft SQL Server 2017

\r\n\t

Supported Browsers

\r\n\t

Edge

\r\n\t

Google Chrome

\r\n\t

Firefox

\r\n\t

Domain Names

\r\n\t

\r\n\t\thttps://fdepcs.com
\r\n\t\thttps://demo.fdepcs.com\r\n\t

\r\n\t

Scheduled Jobs

\r\n\t

\r\n\t\tAutomated Routine - Every Hour\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 ReleaseNotesVm {\r\n\tversionNumber?: string;\r\n\tgoLiveDateString?: string;\r\n\tgoLiveDate: Date;\r\n\treleaseNotes?: 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'versionNumber': new UntypedFormControl(null, [...(validators['versionNumber'] ?? []), ...[]]),\r\n\t\t\t'goLiveDateString': new UntypedFormControl(null, [...(validators['goLiveDateString'] ?? []), ...[]]),\r\n\t\t\t'goLiveDate': new UntypedFormControl('', [...(validators['goLiveDate'] ?? []), ...[Validators.required]]),\r\n\t\t\t'releaseNotes': new UntypedFormControl(null, [...(validators['releaseNotes'] ?? []), ...[]])\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['versionNumber', {\"orderId\":0,\"sortColumn\":\"goLiveDate\",\"searchColumn\":\"versionNumber\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Version 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['goLiveDateString', {\"orderId\":1,\"sortColumn\":\"goLiveDate\",\"searchColumn\":\"goLiveDateString\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Go Live 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['releaseNotes', {\"orderId\":2,\"sortColumn\":\"releaseNotes\",\"searchColumn\":\"releaseNotes\",\"includeInExcel\":true,\"exportColumns\":null,\"displayName\":\"Description of Change\",\"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): ReleaseNotesVmFromFg {\r\n\t\treturn new ReleaseNotesVmFromFg(fg);\r\n\t}\r\n}\r\n\r\nexport class ReleaseNotesVmFromFg {\r\n\tconstructor(public fg: UntypedFormGroup) { }\r\n\r\n\r\n\tget versionNumber(): string {\r\n\t\treturn this.fg.get('versionNumber').value;\r\n\t}\r\n\tset versionNumber(val) {\r\n\t\tthis.fg.get('versionNumber').setValue(val);\r\n\t}\r\n\r\n\tget goLiveDateString(): string {\r\n\t\treturn this.fg.get('goLiveDateString').value;\r\n\t}\r\n\tset goLiveDateString(val) {\r\n\t\tthis.fg.get('goLiveDateString').setValue(val);\r\n\t}\r\n\r\n\tget goLiveDate(): Date {\r\n\t\treturn this.fg.get('goLiveDate').value;\r\n\t}\r\n\tset goLiveDate(val) {\r\n\t\tthis.fg.get('goLiveDate').setValue(val);\r\n\t}\r\n\r\n\tget releaseNotes(): string {\r\n\t\treturn this.fg.get('releaseNotes').value;\r\n\t}\r\n\tset releaseNotes(val) {\r\n\t\tthis.fg.get('releaseNotes').setValue(val);\r\n\t}\r\n}\r\n","import { Component, OnInit, ViewChild } from '@angular/core';\r\nimport { Title } from '@angular/platform-browser';\r\n\r\nimport { TableComponent } from 'app/shared/table/table.component';\r\nimport { ReleaseNotesVm } from 'app/shared/generated/Models/ReleaseNotesVm';\r\n\r\n@Component({\r\n selector: 'pcg-web-release-notes',\r\n templateUrl: './web-release-notes.component.html',\r\n styleUrls: ['./web-release-notes.component.scss'],\r\n standalone: false\r\n})\r\nexport class WebReleaseNotesComponent implements OnInit {\r\n\r\n\t@ViewChild(TableComponent, { static: true }) table: TableComponent;\r\n\tcolumns = ReleaseNotesVm.ColumnDefs;\r\n\r\n\tconstructor(public title: Title) { }\r\n\r\n\tngOnInit() { \r\n\t\tthis.title.setTitle('Web Release Notes'); \r\n\t}\r\n}\r\n","

{{ title.getTitle() }}

\r\n
\r\n\r\n\r\n\r\n\t\r\n\t\t{{ columns.get('versionNumber').displayName }}\r\n\t\t{{ row.versionNumber }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('goLiveDateString').displayName }}\r\n\t\t{{ row.goLiveDateString }}\r\n\t\r\n\r\n\t\r\n\t\t{{ columns.get('releaseNotes').displayName }}\r\n\t\t\r\n\t\r\n\r\n","// In order to keep core.module.ts as small as possible,\r\n// router functionality is kept in this file.\r\n\r\n// This is not done with other modules because it is conventient\r\n// to have 'ng generate component' automatically add a component to\r\n// the appropriate module by running it in that directory.\r\n\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { QuicklinkStrategy } from 'ngx-quicklink';\r\n\r\nimport { UserAuditHistoryComponent } from 'app/administration/users/edit-user/user-audit-history/user-audit-history.component';\r\nimport { UserFacilitiesComponent } from 'app/administration/users/edit-user/user-facilities/user-facilities.component';\r\nimport { UserLoginHistoryComponent } from 'app/administration/users/edit-user/user-login-history/user-login-history.component';\r\nimport { UserModuleAccessComponent } from 'app/administration/users/edit-user/user-module-access/user-module-access.component';\r\nimport { UserMultiFactorAuthenticationComponent } from 'app/administration/users/edit-user/user-multi-factor-authentication/user-multi-factor-authentication.component';\r\nimport { UserNotificationsComponent } from 'app/administration/users/edit-user/user-notifications/user-notifications.component';\r\nimport { UserOrganizationsComponent } from 'app/administration/users/edit-user/user-organizations/user-organizations.component';\r\nimport { UserRxConnectsSettingsComponent } from 'app/administration/users/edit-user/user-rxconnects-settings/user-rxconnects-settings.component';\r\nimport { CiInvoicePdfComponent } from 'app/ci-repack/ci-invoices/invoice-pdf/invoice-pdf.component';\r\nimport { CiRepackOrderShortOverPrintableComponent } from 'app/ci-repack/ci-repack-order/ci-repack-order-short-over/ci-repack-order-short-over-printable/ci-repack-order-short-over-printable.component';\r\nimport { SilkierHistoryComponent } from 'app/silkier/silkier-history/silkier-history.component';\r\nimport { EditUserComponent } from '../administration/users/edit-user/edit-user.component';\r\nimport { EditUserModule } from '../administration/users/edit-user/edit-user.module';\r\nimport { KnowledgeBaseComponent } from '../help/knowledge-base/knowledge-base.component';\r\nimport { BusinessAreaEnum } from './enums/generated/BusinessAreaEnum';\r\nimport { PermissionRole } from './enums/generated/PermissionRole';\r\nimport { ChangePasswordComponent } from './pages/change-password/change-password.component';\r\nimport { DashboardComponent } from './pages/dashboard/dashboard.component';\r\nimport { Error404Component } from './pages/error404/error404.component';\r\nimport { ForgotPasswordComponent } from './pages/forgot-password/forgot-password.component';\r\nimport { HelpDeskTicketFeedbackComponent } from './pages/help-desk-ticket-feedback/help-desk-ticket-feedback.component';\r\nimport { PublicHelpTicketComponent } from './pages/help-ticket/help-ticket.component';\r\nimport { HerosApplicationComponent } from './pages/heros-application/heros-application.component';\r\nimport { HolidaysComponent } from './pages/holidays/holidays.component';\r\nimport { HomeDeliveryComponent } from './pages/home-delivery/home-delivery.component';\r\nimport { HomeComponent } from './pages/home/home.component';\r\nimport { HomerRegisterComponent } from \"./pages/homer-register/homer-register.component\";\r\nimport { IcqFeedbackComponent } from './pages/icq-feedback/icq-feedback.component';\r\nimport { IcqSchedulingComponent } from \"./pages/icq-scheduling/icq-scheduling.component\";\r\nimport { LoginComponent } from './pages/login/login.component';\r\nimport { PfsRegisterComponent } from \"./pages/pfs-register/pfs-register.component\";\r\nimport { DonorRegistrationComponent } from './pages/rxconnects/donor/donor-registration.component';\r\nimport { PatientApplicationComponent } from './pages/rxconnects/patient-application/patient-application.component';\r\nimport { RepositoryRegisterComponent } from './pages/rxconnects/repository/repository-register.component';\r\nimport { TechSpecComponent } from './pages/tech-spec/tech-spec.component';\r\nimport { WebReleaseNotesComponent } from './pages/web-release-notes/web-release-notes.component';\r\nimport { AuthGuard } from './security/auth.guard';\r\nimport { SecurityService } from './security/security.service';\r\n\r\n// This is the root of our navigation menu route definitions\r\nconst routes: Routes = [\r\n\t{\r\n\t\tpath: ''\r\n\t\t, component: HomeComponent\r\n\t\t, pathMatch: 'full'\r\n\t}\r\n\t, {\r\n\t\tpath: 'dashboard'\r\n\t\t, component: DashboardComponent\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t}\r\n\t, {\r\n\t\tpath: 'login'\r\n\t\t, component: LoginComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'pfs-register'\r\n\t\t, component: PfsRegisterComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'homer-register'\r\n\t\t, component: HomerRegisterComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'help-ticket'\r\n\t\t, component: PublicHelpTicketComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'support/tickets/feedback/:id/:guid'\r\n\t\t, component: HelpDeskTicketFeedbackComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'heros-application'\r\n\t\t, component: HerosApplicationComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'home-delivery'\r\n\t\t, component: HomeDeliveryComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'support/web-release-notes'\r\n\t\t, component: WebReleaseNotesComponent\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t}\r\n\t, {\r\n\t\tpath: 'holidays'\r\n\t\t, component: HolidaysComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'tech-spec'\r\n\t\t, component: TechSpecComponent\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t}\r\n\t, {\r\n\t\tpath: 'admin/users/user/edit/details/:id'\r\n\t\t, component: EditUserComponent\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t}\r\n , {\r\n path: 'admin/users/user/edit/organizations/:id'\r\n , component: UserOrganizationsComponent\r\n , canActivate: [ AuthGuard ]\r\n }\r\n , {\r\n path: 'admin/users/user/edit/heros-agencies/:id'\r\n , component: UserFacilitiesComponent\r\n , canActivate: [ AuthGuard ]\r\n }\r\n , {\r\n path: 'admin/users/user/edit/security/:id'\r\n , component: UserMultiFactorAuthenticationComponent\r\n , canActivate: [ AuthGuard ]\r\n }\r\n , {\r\n path: 'admin/users/user/edit/notifications/:id'\r\n , component: UserNotificationsComponent\r\n , canActivate: [ AuthGuard ]\r\n }\r\n , {\r\n path: 'admin/users/user/edit/notifications/:id/:el'\r\n , component: UserNotificationsComponent\r\n , canActivate: [ AuthGuard ]\r\n }\r\n , {\r\n path: 'admin/users/user/edit/notifications/:id/:el/:reportId'\r\n , component: UserNotificationsComponent\r\n , canActivate: [ AuthGuard ]\r\n }\r\n , {\r\n path: 'admin/users/user/edit/module-access/:id'\r\n , component: UserModuleAccessComponent\r\n , canActivate: [ AuthGuard ]\r\n }\r\n , {\r\n path: 'admin/users/user/edit/login-history/:id'\r\n , component: UserLoginHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n }\r\n , {\r\n path: 'admin/users/user/edit/audit-history/:id'\r\n , component: UserAuditHistoryComponent\r\n , canActivate: [ AuthGuard ]\r\n }\r\n , {\r\n path: 'admin/users/user/edit/rx-connects/:id'\r\n , component: UserRxConnectsSettingsComponent\r\n , canActivate: [ AuthGuard ]\r\n }\r\n\t, {\r\n\t\tpath: 'forgot-password'\r\n\t\t, component: ForgotPasswordComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'change-password/:id'\r\n\t\t, component: ChangePasswordComponent\r\n\t}\r\n\t// IMPORTANT: This will be the path for ur CI Invoice email, accessible by the public API.\r\n\t, {\r\n\t\tpath: 'public/invoice/pdf/:code'\r\n\t\t, component: CiInvoicePdfComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'admin/system/quartz/pcg-history'\r\n\t\t, component: SilkierHistoryComponent\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t}\r\n\t, {\r\n\t\tpath: 'ci-short-over'\r\n\t\t, component: CiRepackOrderShortOverPrintableComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'support/knowledge-base'\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t\t, component: KnowledgeBaseComponent\r\n\t\t, data: {\r\n\t\t\tmoduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: SecurityService.anyArea()\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}\r\n\t}\r\n\t, {\r\n\t\tpath: 'repositoryregister'\r\n\t\t, component: RepositoryRegisterComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'donorregistration'\r\n\t\t, component: DonorRegistrationComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'patient-application'\r\n\t\t, component: PatientApplicationComponent\r\n\t}\r\n\t, {\r\n\t\tpath: 'patient-application/:id'\r\n\t\t, component: PatientApplicationComponent\r\n\t\t, data: {\r\n\t\t\tmoduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.RxConnects ]\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}\r\n\t}\r\n\t, {\r\n\t\tpath: 'support'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, loadChildren: () => import('../help-desk/help-desk.module').then(m => m.HelpDeskModule)\r\n\t},\r\n\t, {\r\n\t\tpath: 'error-report'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, loadChildren: () => import('../error-report/error-report.module').then(m => m.ErrorReportModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'admin'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, loadChildren: () => import('../administration/administration.module').then(m => m.AdministrationModule)\r\n\t\t, data: {\r\n\t\t\tmoduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\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}\r\n\t}\r\n\t, {\r\n\t\tpath: 'pcg'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, loadChildren: () => import('../administration/pcg.module').then(m => m.PcgModule)\r\n\t\t, data: {\r\n\t\t\tmoduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.Admin ]\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}\r\n\t}\r\n\t, {\r\n\t\tpath: 'heros'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, data: {\r\n\t\t\tmoduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.HEROS ]\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}\r\n\t\t, loadChildren: () => import('../heros/heros.module').then(m => m.HEROSModule)\r\n\t}\t\r\n\t, {\r\n\t\tpath: 'ndcs'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, data: {\r\n\t\t\tmoduleAccess: [\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}\r\n\t\t, loadChildren: () => import('../redbook/redbook.module').then(m => m.RedbookModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'ndcs'\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t\t, data: {\r\n\t\t\tmoduleAccess: [\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}\r\n\t\t, loadChildren: () => import('../ndc-directory/ndc-directory.module').then(m => m.NdcDirectoryModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'pharmacy'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, loadChildren: () => import('../reports/pharmacy/reportsPharmacy.module').then(m => m.ReportsPharmacyModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'pharmacy'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, data: {\r\n\t\t\tmoduleAccess: [\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}\r\n\t\t, loadChildren: () => import('../pharm-log/pharm-log.module').then(m => m.PharmLogModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'pharmacy'\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t\t, data: {\r\n\t\t\tmoduleAccess: [\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}\r\n\t\t, loadChildren: () => import('../fulfillment/fulfillment.module').then(m => m.FulfillmentModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'pharmacy'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, data: {\r\n\t\t\tmoduleAccess: [\r\n\t\t\t\t{\r\n\t\t\t\t\tmodules: [ BusinessAreaEnum.CI ]\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}\r\n\t\t, loadChildren: () => import('../inventory/inventory.module').then(m => m.InventoryModule)\r\n\t}\t\r\n\t, {\r\n\t\tpath: 'reporting'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, loadChildren: () => import('../reports/reporting.module').then(m => m.ReportingModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'metabolic-formula'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, loadChildren: () => import('../metabolic-formula/metabolic-formula.module').then(m => m.MetabolicFormulaModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'ci-repack'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, loadChildren: () => import('../ci-repack/ci-repack.module').then(m => m.CiRepackModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'icq'\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, loadChildren: () => import('../icq/icq.module').then(m => m.IcqModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'shared'\r\n\t\t, canActivate: [ AuthGuard ]\r\n\t\t, canLoad: [ AuthGuard ]\r\n\t\t, loadChildren: () => import('../shared/shared.module').then(m => m.SharedModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'rxconnects'\r\n\t\t, loadChildren: () => import('../rxconnects/rxconnects.module').then(m => m.RxConnectsModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'inventories'\r\n\t\t, loadChildren: () => import(\"../shared/facilities/facility-inventories/inventories.module\").then(m => m.InventoriesModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'inv'\r\n\t\t, loadChildren: () => import(\"../formulary-inventory/formulary-inventory.module\").then(m => m.FormularyInventoryModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'ba'\r\n\t\t, loadChildren: () => import(\"../ba/ba.module\").then(m => m.BAModule)\r\n\t}\r\n\t, {\r\n\t\tpath: 'icq/scheduling/:icqReviewId/:userId'\r\n\t\t, component: IcqSchedulingComponent\r\n\t}\r\n , {\r\n path: 'icq-feedback/:id/:guid'\r\n , component: IcqFeedbackComponent\r\n }\r\n\t, {\r\n\t\tpath: '**'\r\n\t\t, redirectTo: ''\r\n\t}\r\n];\r\n\r\nexport class CoreRouting {\r\n\tstatic declarations = [\r\n\t\tHomeComponent\r\n\t\t, DashboardComponent\r\n\t\t, LoginComponent\r\n\t\t, HolidaysComponent\r\n\t\t, Error404Component\r\n\t\t, ForgotPasswordComponent\r\n\t\t, ChangePasswordComponent\r\n\t\t, KnowledgeBaseComponent\r\n\t\t, SilkierHistoryComponent\r\n\t\t, PfsRegisterComponent\r\n\t\t, HomerRegisterComponent\r\n\t\t, PublicHelpTicketComponent\r\n\t\t, RepositoryRegisterComponent\r\n\t\t, CiInvoicePdfComponent\r\n\t\t, CiRepackOrderShortOverPrintableComponent\r\n\t];\r\n\tstatic imports = [\r\n\t\tRouterModule.forRoot(\r\n\t\t\troutes\r\n\t\t\t, {\r\n\t\t\t\tscrollPositionRestoration: 'enabled'\r\n\t\t\t\t, preloadingStrategy: QuicklinkStrategy\r\n\t\t\t\t, anchorScrolling: 'enabled'\r\n\t\t\t}\r\n\t\t)\r\n\t\t, EditUserModule\r\n\t];\r\n\tstatic exports = [ RouterModule ];\r\n\tstatic providers = [ AuthGuard ];\r\n}","import { HttpClient, HttpErrorResponse, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { throwError } from 'rxjs';\r\nimport { catchError, finalize } from 'rxjs/operators';\r\n\r\nimport { SpinnerService } from '../layout/spinner/spinner.service';\r\nimport { SecurityService } from '../security/security.service';\r\nimport { SystemMessageService } from '../system-message/system-message-service';\r\n\r\n@Injectable()\r\nexport class HttpClientInterceptor implements HttpInterceptor {\r\n\r\n\treqCount = 0;\r\n\r\n\tconstructor(\r\n\t\tprivate ms: SystemMessageService\r\n\t\t, private spinner: SpinnerService\r\n\t\t, private sec: SecurityService\r\n\t\t, private http: HttpClient\r\n\t\t, private router: Router\r\n\t\t, private modal: NgbModal\r\n\t) { }\r\n\r\n\tintercept(\r\n req: HttpRequest\r\n , next: HttpHandler\r\n ) {\r\n // Don't show the spinner if the request is silent by not incrementing the request count. \r\n // This is done by adding a silent parameter to the request.\r\n\t\tconst silent = req.params.has('silent');\r\n\r\n if (!silent) { ++this.reqCount; }\r\n\r\n this.setSpinner();\t\t\r\n\r\n\t\t// Get the URL, with automatic base URL, if beginning with 'api/' or '/api/'\r\n\t\tconst origUrl: string = req.url;\r\n\t\tlet url = req.url.indexOf('api/') === 0 || req.url.indexOf('/api/') === 0\r\n\t\t\t? document.getElementsByTagName('base')[0].href + req.url\r\n\t\t\t: req.url;\r\n\t\turl = url.replace('//api', '/api');\r\n\r\n\t\t// Add the UTC offset as a query string\r\n\t\tif (!origUrl.startsWith('http')) {\r\n\t\t\tconst timeZone = typeof Intl.DateTimeFormat().resolvedOptions !== 'undefined'\r\n\t\t\t\t? Intl.DateTimeFormat().resolvedOptions().timeZone\r\n\t\t\t\t: undefined;\r\n\t\t\turl = url \r\n\t\t\t\t+ (url.includes('?') ? '&' : '?') \r\n\t\t\t\t+ `userTimeZone=${encodeURIComponent(timeZone)}&` \r\n\t\t\t\t+ `utcOffset=${new Date().getTimezoneOffset() / -60}`;\r\n\t\t\turl = url + `&t=${new Date().toISOString()}`; // Don't cache things running through this interceptor\r\n\t\t}\r\n\r\n\t\t// Set the default content type and URL\r\n\t\tlet newReq = req.headers['Content-Type'] || req.body instanceof FormData\r\n\t\t\t? req.clone({ url })\r\n\t\t\t: req.clone({\r\n\t\t\t\theaders: req.headers.set('Content-Type', 'application/json')\r\n\t\t\t\t, url\r\n\t\t\t});\r\n\r\n\t\t// Get the auth token from the service.\r\n\t\tconst authToken = localStorage.getItem('jwt') \r\n\t\t\t? JSON.parse(localStorage.getItem('jwt')) \r\n\t\t\t: null;\r\n\r\n\t\t// Add the auth token to the header, if we have one\r\n\t\tif (\r\n\t\t\tauthToken \r\n\t\t\t&& !origUrl.startsWith('http')\r\n\t\t) { newReq = newReq.clone({ headers: newReq.headers.set('Authorization', 'Bearer ' + authToken) }); }\r\n\r\n\t\t// Set new last access date\r\n\t\tthis.sec.setLocalStorage('lastAccess', new Date());\r\n\r\n\t\t// Send cloned request with header to the next handler.\r\n\t\treturn next.handle(newReq).pipe(\r\n\t\t\tcatchError(\r\n\t\t\t\tthis.handleError.bind(this))\r\n\t\t\t\t, finalize(() => { \r\n\t\t\t\t\tif (!silent) { --this.reqCount; }\r\n this.setSpinner();\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 * This is our default error handling function throughout the application.\r\n\t * @param err The error response.\r\n\t */\r\n\thandleError(err: HttpErrorResponse) {\r\n\t\tswitch (err.status) {\r\n\t\t\tcase 401:\r\n\t\t\t\tthis.modal.dismissAll(); // Make sure all modals are closed since they are moving to the login screen\r\n\t\t\t\tthis.sec.setSecurity(null, null); // Clear out the user security\r\n\t\t\t\tconst redirectUrl = '/' + window.location.href.replace(document.getElementsByTagName('base')[0].href, '');\r\n\t\t\t\tthis.router.navigateByUrl(`/login?redirectUrl=${encodeURIComponent(redirectUrl)}&inactive=true`);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 403:\r\n\t\t\t\tlet user = this.sec.getUser();\r\n\t\t\t\tif (user) { \r\n\t\t\t\t\tthis.ms.setSystemMessage(\r\n\t\t\t\t\t\t\"Access Denied! You don't have access to this module. \" \r\n\t\t\t\t\t\t+ \"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\t\t, \"error\"\r\n\t\t\t\t\t); \r\n\t\t\t\t}\r\n\t\t\t\tthis.http.get('api/Account/GetUserInfo').subscribe((model: any) => {\r\n\t\t\t\t\tthis.sec.setSecurity(this.sec.getToken(), model.user);\r\n\t\t\t\t\tthis.router.navigateByUrl('/');\r\n\t\t\t\t});\r\n\t\t\t\tbreak;\r\n\t\t\tcase 500:\r\n\t\t\t\tthis.ms.setSystemMessage('Internal server error.', 'error');\r\n\t\t\t\tbreak;\r\n\t\t\tcase 503:\r\n\t\t\t\tthis.ms.setSystemMessage(\r\n\t\t\t\t\t'CloudABIS is currently down. Please wait a minute to see if the service it back up.'\r\n\t\t\t\t\t, 'error'\r\n\t\t\t\t\t, 10000\r\n\t\t\t\t);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 466: // This can sometimes be used to indicate confirmation messages, so ignore here\r\n\t\t\t\tbreak;\r\n\t\t\tcase 467: // The user does not have 2FA or inactivity timeout enabled\r\n\t\t\t\tthis.ms.setSystemMessage('Multi-Factor Authentication and Inactivity Timeout must be enabled to view PHI. If Inactivity Timeout is disabled, please submit a helpdesk ticket to enable it.', 'error');\r\n\t\t\t\tthis.modal.dismissAll(); // Make sure all modals are closed since they are moving to the splash screen\r\n\t\t\t\tthis.router.navigateByUrl('/');\r\n\t\t\t\tbreak;\r\n\t\t\tcase 468: // Invalid request, redirect to dashboard without showing user the error message.\r\n\t\t\t\tthis.router.navigate(['/dashboard']);\r\n\t\t\t\tbreak;\r\n\t\t\tcase 418: // User is missing MFA or inactivity timeout required for accessing sensitive area. Redirect to edit user security tab. \r\n this.ms.setSystemMessage('Multi-Factor Authentication and Inactivity Timeout must be enabled to view PHI. If Inactivity Timeout is disabled, please submit a helpdesk ticket to enable it.', 'error');\r\n this.modal.dismissAll();\r\n\t\t\t\tthis.router.navigateByUrl(err.error); \r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tif (err.url.startsWith('http://localhost:15896')) \r\n\t\t\t\t\tthis.ms.setSystemMessage(\r\n\t\t\t\t\t\t'Could not connect to CloudScanr. Please ensure that the CloudScanr application is running.'\r\n\t\t\t\t\t\t, 'error'\r\n\t\t\t\t\t);\r\n\t\t\t\telse \r\n\t\t\t\t\tthis.ms.setSystemMessage(\r\n\t\t\t\t\t\t'The request could not be processed because a network transmission error occurred.'\r\n\t\t\t\t\t\t, 'error'\r\n\t\t\t\t\t);\r\n\t\t}\r\n\t\treturn throwError(err);\r\n\t}\r\n\r\n\t/**\r\n\t * Show and hide the spinner, depending on whether or not a request\r\n\t * is still out.\r\n\t */\r\n\tsetSpinner() {\r\n\t\tif (this.reqCount === 0) { this.spinner.hideSpinner(); } \r\n\t\telse { this.spinner.showSpinner(); }\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { RouterModule } from '@angular/router';\r\n\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { SharedModule } from '../../shared/shared.module';\r\nimport { TopHeaderComponent } from './header/header.component';\r\nimport { HorizontalLoginComponent } from './header/horizontal-login/horizontal-login.component';\r\nimport { SpinnerComponent } from './spinner/spinner.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TopHeaderComponent\r\n , HorizontalLoginComponent\r\n , SpinnerComponent\r\n ]\r\n , imports: [\r\n CommonModule\r\n , RouterModule\r\n , SharedModule\r\n , MatProgressBarModule\r\n , MatProgressSpinnerModule\r\n ]\r\n , exports: [\r\n TopHeaderComponent\r\n , SpinnerComponent\r\n , MatProgressSpinnerModule\r\n ]\r\n})\r\nexport class LayoutModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { InstallTimerComponent } from './install-timer/install-timer.component';\r\nimport { PushNotificationComponent } from './push-notification.component';\r\n\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\tPushNotificationComponent\r\n\t\t, InstallTimerComponent\r\n\t]\r\n\t, imports: [\r\n\t\tCommonModule\r\n\t]\r\n\t, exports: [\r\n\t\tPushNotificationComponent\r\n\t\t, InstallTimerComponent\r\n\t]\r\n})\r\nexport class PushNotificationModule { }\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { SseNotificationComponent } from './sse-notification.component';\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\n@NgModule({\r\n\tdeclarations: [\r\n SseNotificationComponent\r\n\t]\r\n\t, imports: [\r\n\t\tCommonModule,\r\n FontAwesomeModule\r\n\t]\r\n\t, exports: [\r\n SseNotificationComponent\r\n\t]\r\n})\r\nexport class SseNotificationModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\n\r\nimport { SystemMessageComponent } from './system-message.component';\r\n\r\n/**\r\n * This module implements the system message feature.\r\n * System messages are a global toast message box that\r\n * can be used for success, warning, and error messages.\r\n * Only one system message can be open at a time.\r\n */\r\n@NgModule({\r\n\tdeclarations: [ SystemMessageComponent ]\r\n , imports: [\r\n\t\tCommonModule\r\n , BrowserAnimationsModule\r\n\t]\r\n , exports: [ SystemMessageComponent ]\r\n})\r\nexport class SystemMessageModule { }\r\n","import { HTTP_INTERCEPTORS, HttpClientModule } from \"@angular/common/http\";\r\nimport { NgModule } from \"@angular/core\";\r\nimport { BrowserModule } from \"@angular/platform-browser\";\r\nimport { RouterModule } from \"@angular/router\";\r\nimport { JwtModule } from \"@auth0/angular-jwt\";\r\nimport { NgbDateNativeAdapter, NgbDateParserFormatter } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { NgxCaptchaModule } from \"ngx-captcha\";\r\n\r\nimport { CiInvoicePdfComponent } from \"app/ci-repack/ci-invoices/invoice-pdf/invoice-pdf.component\";\r\nimport { CiRepackOrderShortOverPrintableComponent } from 'app/ci-repack/ci-repack-order/ci-repack-order-short-over/ci-repack-order-short-over-printable/ci-repack-order-short-over-printable.component';\r\nimport { NgbDateNativeParserFormatter } from \"app/shared/form-elements/components/date-picker-parser/ngb-date-native-parser-formatter\";\r\nimport { NavigationService } from \"app/shared/navigation/navigation.service\";\r\nimport { SharedModule } from \"app/shared/shared.module\";\r\nimport { FilterSaveService } from \"app/shared/table/services/filter-save.service\";\r\nimport { CollapsibleTableService } from './collapsible-table/collapsible-table.service';\r\nimport { CoreRouting } from \"./core.routing\";\r\nimport { InactivityTimeoutComponent } from './inactivity-timeout/inactivity-timeout.component';\r\nimport { InactivityTimeoutService } from \"./inactivity-timeout/inactivity-timeout.service\";\r\nimport { HttpClientInterceptor } from \"./interceptors/http-client-interceptor\";\r\nimport { LayoutModule } from \"./layout/layout.module\";\r\nimport { SpinnerService } from \"./layout/spinner/spinner.service\";\r\nimport { DashboardNotificationsWidgetComponent } from './pages/dashboard/widgets/notifications-widget/notifications-widget.component';\r\nimport { HelpDeskTicketFeedbackComponent } from './pages/help-desk-ticket-feedback/help-desk-ticket-feedback.component';\r\nimport { PublicHelpTicketComponent } from \"./pages/help-ticket/help-ticket.component\";\r\nimport { HerosApplicationComponent } from \"./pages/heros-application/heros-application.component\";\r\nimport { HolidaysComponent } from \"./pages/holidays/holidays.component\";\r\nimport { HomeDeliverySubmitModalComponent } from \"./pages/home-delivery/home-delivery-submit-modal/home-delivery-submit-modal.component\";\r\nimport { HomeDeliveryComponent } from \"./pages/home-delivery/home-delivery.component\";\r\nimport { HomerRegisterComponent } from \"./pages/homer-register/homer-register.component\";\r\nimport { IcqFeedbackComponent } from \"./pages/icq-feedback/icq-feedback.component\";\r\nimport { IcqSchedulingComponent } from \"./pages/icq-scheduling/icq-scheduling.component\";\r\nimport { MultiFactorAuthModalComponent } from \"./pages/login/multi-factor-auth-modal/multi-factor-auth-modal.component\";\r\nimport { PfsRegisterComponent } from \"./pages/pfs-register/pfs-register.component\";\r\nimport { DonorRegistrationComponent } from \"./pages/rxconnects/donor/donor-registration.component\";\r\nimport { MetaPixelComponent } from \"./pages/rxconnects/meta-pixel/meta-pixel.component\";\r\nimport { PatientApplicationComponent } from \"./pages/rxconnects/patient-application/patient-application.component\";\r\nimport { TechSpecComponent } from \"./pages/tech-spec/tech-spec.component\";\r\nimport { WebReleaseNotesComponent } from \"./pages/web-release-notes/web-release-notes.component\";\r\nimport { PushNotificationModule } from \"./push-notification/push-notification.module\";\r\nimport { GetPasswordComponent } from \"./security/get-password/get-password.component\";\r\nimport { WebAuthnService } from \"./security/multi-factor-auth/web-authn.service\";\r\nimport { SecurityService } from \"./security/security.service\";\r\nimport { SendgridApiService } from \"./sendgrid-api/sendgrid-api.service\";\r\nimport { SseNotificationModule } from \"./sse-notification/sse-notification.module\";\r\nimport { SystemMessageService } from \"./system-message/system-message-service\";\r\nimport { SystemMessageModule } from \"./system-message/system-message.module\";\r\n\r\nexport function getToken() { return localStorage.getItem(\"jwt\"); }\r\n\r\n/***\r\n * Contains application-wide, single use components and services.\r\n * Imported once (in the AppModule) when the app starts and never imported anywhere else.\r\n */\r\n@NgModule({\r\n\tdeclarations: [\r\n\t\t...CoreRouting.declarations\r\n\t\t, MultiFactorAuthModalComponent\r\n\t\t, GetPasswordComponent\r\n\t\t, HerosApplicationComponent\r\n\t\t, WebReleaseNotesComponent\r\n\t\t, HomeDeliveryComponent\r\n\t\t, HomeDeliverySubmitModalComponent\r\n\t\t, TechSpecComponent\r\n\t\t, HolidaysComponent\r\n\t\t, PfsRegisterComponent\r\n\t\t, HomerRegisterComponent\r\n\t\t, PublicHelpTicketComponent\r\n\t\t, DonorRegistrationComponent\r\n\t\t, PatientApplicationComponent\r\n\t\t, MetaPixelComponent\r\n\t\t, CiInvoicePdfComponent\r\n\t\t, CiRepackOrderShortOverPrintableComponent\r\n\t\t, HelpDeskTicketFeedbackComponent\r\n\t\t, IcqSchedulingComponent\r\n\t\t, InactivityTimeoutComponent\r\n , IcqFeedbackComponent\r\n\t]\r\n\t, imports: [\r\n\t\t...CoreRouting.imports\r\n\t\t, HttpClientModule\r\n\t\t, BrowserModule\r\n\t\t, SystemMessageModule\r\n\t\t, PushNotificationModule\r\n , SseNotificationModule\r\n\t\t, LayoutModule\r\n\t\t, SharedModule\r\n\t\t, JwtModule.forRoot({\r\n\t\t\tconfig: {\r\n\t\t\t\ttokenGetter: getToken\r\n\t\t\t\t, allowedDomains: [window.location.host]\r\n\t\t\t}\r\n\t\t})\r\n\t\t, NgxCaptchaModule\r\n\t\t, DashboardNotificationsWidgetComponent\r\n\t]\r\n\t, exports: [\r\n\t\t...CoreRouting.exports\r\n\t\t, SharedModule\r\n\t\t, LayoutModule\r\n\t\t, HttpClientModule\r\n\t\t, RouterModule\r\n\t\t, SystemMessageModule\r\n\t\t, PushNotificationModule\r\n , SseNotificationModule\r\n\t\t, BrowserModule\r\n\t]\r\n\t, providers: [\r\n\t\t...CoreRouting.providers\r\n\t\t, SystemMessageService\r\n\t\t, SpinnerService\r\n\t\t, SecurityService\r\n\t\t, WebAuthnService\r\n\t\t, InactivityTimeoutService\r\n\t\t, CollapsibleTableService\r\n\t\t, NavigationService\r\n\t\t, FilterSaveService\r\n\t\t, SendgridApiService\r\n\t\t, {\r\n\t\t\tprovide: NgbDateParserFormatter\r\n\t\t\t, useClass: NgbDateNativeParserFormatter\r\n\t\t}\r\n\t\t, NgbDateNativeAdapter\r\n\t\t, {\r\n\t\t\tprovide: HTTP_INTERCEPTORS\r\n\t\t\t, useClass: HttpClientInterceptor\r\n\t\t\t, multi: true\r\n\t\t}\r\n\t]\r\n})\r\nexport class CoreModule {}\r\n","import { ActivatedRouteSnapshot, DetachedRouteHandle , RouteReuseStrategy, UrlSegment } from '@angular/router';\r\n\r\ninterface RouteStorageObject {\r\n snapshot: ActivatedRouteSnapshot;\r\n handle: DetachedRouteHandle;\r\n}\r\n\r\nexport class CustomReuseStrategy implements RouteReuseStrategy {\r\n\r\n /** \r\n * Object which will store RouteStorageObjects indexed by keys\r\n * The keys will all be a path (as in route.routeConfig.path)\r\n * This allows us to see if we've got a route stored for the requested path\r\n */\r\n storedRoutes: { [key: string]: RouteStorageObject } = {};\r\n \r\n /** \r\n * Decides when the route should be stored\r\n * If the route should be stored, I believe the boolean is indicating to a controller whether or not to fire this.store\r\n * _When_ it is called though does not particularly matter, just know that this determines whether or not we store the route\r\n * An idea of what to do here: check the route.routeConfig.path to see if it is a path you would like to store\r\n * @param route This is, at least as I understand it, the route that the user is currently on, and we would like to know if we want to store it\r\n * @returns boolean indicating that we want to (true) or do not want to (false) store that route\r\n */\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean { return route.data.reuseRoute || false; }\r\n\r\n /**\r\n * Constructs object of type `RouteStorageObject` to store, and then stores it for later attachment\r\n * @param route This is stored for later comparison to requested routes, see `this.shouldAttach`\r\n * @param handle Later to be retrieved by this.retrieve, and offered up to whatever controller is using this class\r\n */\r\n store(\r\n route: ActivatedRouteSnapshot\r\n , handle: DetachedRouteHandle\r\n ): void {\r\n const id = this.createIdentifier(route);\r\n // routes are stored by path - the key is the path name, and the handle is stored under \r\n // it so that you can only ever have one object stored for a single path\r\n if (\r\n route.data.reuseRoute \r\n && id.length > 0\r\n ) { this.storedRoutes[id] = { handle, snapshot: route }; }\r\n }\r\n\r\n /**\r\n * Determines whether or not there is a stored route and, if there is, whether or not it should be rendered in place of requested route\r\n * @param route The route the user requested\r\n * @returns boolean indicating whether or not to render the stored route\r\n */\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n const id = this.createIdentifier(route);\r\n const storedObject = this.storedRoutes[id];\r\n // this will be true if the route has been stored before\r\n let canAttach: boolean = !!route.routeConfig && !!storedObject;\r\n if (!canAttach) { return false; }\r\n\r\n let paramsMatch: boolean = this.compareObjects(\r\n route.params\r\n , storedObject.snapshot.params\r\n );\r\n let queryParamsMatch: boolean = this.compareObjects(\r\n route.queryParams\r\n , storedObject.snapshot.queryParams\r\n );\r\n\r\n return paramsMatch && queryParamsMatch; \r\n }\r\n\r\n /** \r\n * Finds the locally stored instance of the requested route, if it exists, and returns it\r\n * @param route New route the user has requested\r\n * @returns DetachedRouteHandle object which can be used to render the component\r\n */\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n const id = this.createIdentifier(route);\r\n // return null if the path does not have a routerConfig OR if there is no stored route for that routerConfig\r\n if (\r\n !route.routeConfig \r\n || !this.storedRoutes[id]\r\n ) { return null; }\r\n return this.storedRoutes[id].handle;\r\n }\r\n\r\n /** \r\n * Determines whether or not the current route should be reused\r\n * @param future The route the user is going to, as triggered by the router\r\n * @param curr The route the user is currently on\r\n * @returns boolean basically indicating true if the user intends to leave the current route\r\n */\r\n shouldReuseRoute(\r\n future: ActivatedRouteSnapshot\r\n , curr: ActivatedRouteSnapshot\r\n ): boolean { return future.routeConfig === curr.routeConfig; }\r\n\r\n private createIdentifier(route: ActivatedRouteSnapshot) {\r\n // Build the complete path from the root to the input route\r\n const segments: UrlSegment[][] = route.pathFromRoot.map(r => r.url);\r\n const subpaths = ([] as UrlSegment[]).concat(...segments).map(segment => segment.path);\r\n // Result: ${route_depth}-${path}\r\n return segments.length + '-' + subpaths.join('/');\r\n }\r\n\r\n /** \r\n * This nasty bugger finds out whether the objects are _traditionally_ equal to each other, like you might assume someone else would have put this function in vanilla JS already\r\n * One thing to note is that it uses coercive comparison (==) on properties which both objects have, not strict comparison (===)\r\n * Another important note is that the method only tells you if `compare` has all equal parameters to `base`, not the other way around\r\n * @param base The base object which you would like to compare another object to\r\n * @param compare The object to compare to base\r\n * @returns boolean indicating whether or not the objects have all the same properties and those properties are ==\r\n */\r\n private compareObjects(\r\n base: any\r\n , compare: any\r\n ): boolean {\r\n // loop through all properties in base object\r\n for (const baseProperty in { ...base, ...compare }) {\r\n // determine if comparrison object has that property, if not: return false\r\n if (compare.hasOwnProperty(baseProperty)) {\r\n switch(typeof base[baseProperty]) {\r\n // if one is object and other is not: return false\r\n // if they are both objects, recursively call this comparison function\r\n case 'object':\r\n if (\r\n typeof compare[baseProperty] !== 'object' \r\n || !this.compareObjects(base[baseProperty], compare[baseProperty])\r\n ) { return false; } \r\n break;\r\n // if one is function and other is not: return false\r\n // if both are functions, compare function.toString() results\r\n case 'function':\r\n if (\r\n typeof compare[baseProperty] !== 'function' \r\n || base[baseProperty].toString() !== compare[baseProperty].toString()\r\n ) { return false; } \r\n break;\r\n // otherwise, see if they are equal using coercive comparison\r\n default:\r\n if (base[baseProperty] != compare[baseProperty]) { return false; }\r\n }\r\n } else { return false; }\r\n }\r\n\r\n // returns true only after false HAS NOT BEEN returned through all loops\r\n return true;\r\n }\r\n}\r\n","import { ErrorHandler, NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { ServiceWorkerModule, SwRegistrationOptions } from '@angular/service-worker';\r\nimport { QuicklinkModule } from 'ngx-quicklink';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { RouteReuseStrategy } from '@angular/router';\r\n\r\nimport { DatadogErrorHandler } from 'datadog_config';\r\nimport { AppComponent } from './app.component';\r\nimport { CoreModule } from './core/core.module';\r\nimport { DashboardNotificationsWidgetComponent } from \"./core/pages/dashboard/widgets/notifications-widget/notifications-widget.component\";\r\nimport { CustomReuseStrategy } from './shared/navigation/custom-reuse-strategy';\r\n\r\n/**\r\n * This is the first module loaded. It bootstraps\r\n * the rest of the application.\r\n */\r\n@NgModule({\r\n\tdeclarations: [ AppComponent ]\r\n\t, bootstrap: [ AppComponent ]\r\n\t, imports: [\r\n BrowserModule\r\n , CoreModule\r\n , QuicklinkModule\r\n , ToastrModule.forRoot({ positionClass: 'toast-top-center' })\r\n , BrowserAnimationsModule\r\n , ServiceWorkerModule.register('ngsw-worker.js', {\r\n enabled: true\r\n , registrationStrategy: 'registerImmediately'\r\n })\r\n , DashboardNotificationsWidgetComponent\r\n , MatProgressSpinnerModule\r\n ]\r\n\t, providers: [\r\n\t\t{ \r\n\t\t\tprovide: ErrorHandler\r\n\t\t\t, useClass: DatadogErrorHandler\r\n\t\t}\r\n , {\r\n provide: SwRegistrationOptions\r\n , useFactory: () => ({ enabled: true })\r\n }\r\n , {\r\n provide: RouteReuseStrategy\r\n , useClass: CustomReuseStrategy\r\n }\r\n\t]\t\r\n})\r\nexport class AppModule { }","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { User } from '@datadog/browser-core';\r\nimport { datadogRum } from '@datadog/browser-rum';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\n\r\nexport function getBaseUrl() { return document.getElementsByTagName('base')[0].href; }\r\n\r\nconst providers = [ { provide: 'BASE_URL', useFactory: getBaseUrl, deps: [] } ];\r\n\r\nif (environment.production) { enableProdMode(); }\r\n\r\n// Get the JSON web token from local storage\r\nconst jwt = localStorage.getItem('jwt') && localStorage.getItem('jwt').substr(0, 1) !== '\"' \r\n\t? localStorage.getItem('jwt')\r\n\t: JSON.parse(localStorage.getItem('jwt'));\r\n\r\n// If we have a JSON web token, send AJAX request to get user information\r\n// before bootstrapping Angular\r\nif (jwt) {\r\n\tconst xhr = new XMLHttpRequest();\r\n\txhr.open('POST', getBaseUrl() + 'api/Account/GetUserInfo');\r\n\txhr.setRequestHeader('Content-Type', 'application/json');\r\n\txhr.setRequestHeader('Authorization', `Bearer ${jwt}`);\r\n\txhr.onload = function () {\r\n\t\tif (xhr.status === 200) {\r\n\t\t\tconst model = JSON.parse(xhr.response);\r\n\t\t\tif (model.user === null) { localStorage.removeItem('jwt'); }\r\n\t\t\tlocalStorage.setItem('user', JSON.stringify(model.user));\r\n\t\t\tlocalStorage.setItem('jwt', JSON.stringify(jwt));\r\n\t\t}\r\n\t\tbootstrapAngular();\r\n\t\tbootstrapDataDogRum();\r\n\t};\r\n\txhr.send();\r\n} else {\r\n\t// If we don't have a token, just bootstrap Angular\r\n\tlocalStorage.removeItem('user');\r\n\tbootstrapAngular();\r\n}\r\n\r\nfunction bootstrapAngular() {\r\n\tplatformBrowserDynamic(providers).bootstrapModule(AppModule).catch(err => console.log(err));\r\n}\r\n\r\nfunction bootstrapDataDogRum() {\r\n if (environment.production) {\r\n datadogRum.init({\r\n applicationId: 'fe1f5ad7-8562-45f4-8537-8622e5931e69'\r\n\t\t\t, clientToken: 'pub77451973018f724e8a9f58aa8d77985d'\r\n\t\t\t, site: 'us5.datadoghq.com'\r\n\t\t\t, service: 'homer'\r\n\t\t\t, allowedTracingUrls: [\"https://www.fdepcs.com\"]\r\n\t\t\t, env: 'production'\r\n // Specify a version number to identify the deployed version of your application in Datadog\r\n // This will be set within a task in your CI pipeline.\r\n , version: '603c4a9a56'\r\n\t\t\t, sessionSampleRate: 100\r\n\t\t\t, sessionReplaySampleRate: 100\r\n\t\t\t, trackUserInteractions: true\r\n\t\t\t, trackResources: true\r\n\t\t\t, trackLongTasks: true\r\n\t\t\t, defaultPrivacyLevel: 'mask-user-input'\r\n });\r\n\t\tsetDatadogUser();\r\n\t}\r\n}\r\n\r\nfunction setDatadogUser() {\r\n\tlet user = JSON.parse(localStorage.getItem('user'))\r\n\tif (user != null) {\r\n\t\tlet ddUser : User = { \r\n\t\t\tid: user?.id\r\n\t\t\t, email: user?.email\r\n\t\t\t, name: `${user?.firstName} ${user?.lastName}` \r\n\t\t}\r\n\t\tdatadogRum.setUser(ddUser);\r\n\t}\r\n}\r\n"],"mappings":"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","names":["createDeflateEncoder","configuration","worker","streamId","rawBytesCount","compressedData","compressedDataTrailer","nextWriteActionId","pendingWriteActions","removeMessageListener","addEventListener","workerResponse","nextPendingAction","addTelemetryDebug","consumeResult","output","concatBuffers","result","sendResetIfNeeded","data","callback","pendingWriteAction","pendingData","__spreadProps","__spreadValues","reportScriptLoadingError","configuredUrl","error","source","scriptType","display","isMessageCspRelated","baseMessage","DOCS_ORIGIN","addTelemetryError","message","INITIALIZATION_TIME_OUT_DELAY","ONE_SECOND","createDeflateWorker","configuration","state","startDeflateWorker","source","onInitializationFailure","createDeflateWorkerImpl","doStartDeflateWorker","getDeflateWorkerStatus","state","doStartDeflateWorker","configuration","source","createDeflateWorkerImpl","createDeflateWorker","worker","removeErrorListener","addEventListener","error","onError","removeMessageListener","data","onInitialized","setTimeout","onTimeout","INITIALIZATION_TIME_OUT_DELAY","display","callback","version","streamId","reportScriptLoadingError","addTelemetryError","isBrowserSupported","getSessionReplayLink","configuration","sessionManager","viewHistory","isRecordingStarted","session","errorType","getErrorType","viewContext","getSessionReplayUrl","isBrowserSupported","createPostStartStrategy","configuration","lifeCycle","sessionManager","viewHistory","loadRecorder","getOrCreateDeflateEncoder","status","stopRecording","stop","start","doStart","__async","startRecordingImpl","asyncRunOnReadyState","deflateEncoder","options","session","canStartRecording","isRecordingInProgress","monitorError","shouldForceReplay","getSessionReplayLink","createPreStartStrategy","status","noop","configuration","makeRecorderApi","loadRecorder","createDeflateWorkerImpl","canUseEventBridge","bridgeSupports","isBrowserSupported","noop","strategy","shouldStartImmediately","createPreStartStrategy","options","onRumStart","getDeflateWorkerStatus","viewId","getReplayStats","lifeCycle","configuration","sessionManager","viewHistory","worker","cachedDeflateEncoder","getOrCreateDeflateEncoder","startDeflateWorker","createDeflateEncoder","createPostStartStrategy","lazyLoadRecorder","__async","importRecorderImpl","importRecorder","error","reportScriptLoadingError","isProfilingSupported","getGlobalObject","lazyLoadProfiler","__async","err","display","makeProfilerApi","cleanupTasks","stop","task","onRumStart","lifeCycle","configuration","sessionManager","viewHistory","isProfilingSupported","performDraw","profiler","lazyLoadProfiler","createRumProfiler","_a","addTelemetryDebug","monitorError","recorderApi","makeRecorderApi","lazyLoadRecorder","profilerApi","makeProfilerApi","datadogRum","makeRumPublicApi","startRum","startDeflateWorker","createDeflateEncoder","defineGlobal","getGlobalObject","invalidTimingValue","exp","RuntimeError","negativeStepValue","negativeDelayValue","invalidStyleParams","varName","invalidParamValue","invalidNodeType","nodeType","invalidCssUnitValue","userProvidedProperty","value","invalidTrigger","invalidDefinition","invalidState","metadataName","missingSubs","invalidStyleValue","invalidParallelAnimation","prop","firstStart","firstEnd","secondStart","secondEnd","invalidKeyframes","invalidOffset","keyframeOffsetsOutOfOrder","keyframesMissingOffsets","invalidStagger","invalidQuery","selector","invalidExpression","expr","invalidTransitionAlias","alias","triggerBuildFailed","name","errors","RuntimeError","animationFailed","registerFailed","missingOrDestroyedAnimation","createAnimationFailed","missingPlayer","id","missingTrigger","phase","missingEvent","unsupportedTriggerEvent","unregisteredTrigger","triggerTransitionsFailed","transitionFailed","optimizeGroupPlayer","players","NoopAnimationPlayer","AnimationGroupPlayer","normalizeKeyframes$1","normalizer","keyframes","preStyles","postStyles","errors","normalizedKeyframes","previousOffset","previousKeyframe","kf","offset","isSameOffset","normalizedKeyframe","val","prop","normalizedProp","normalizedValue","ɵPRE_STYLE","AUTO_STYLE","animationFailed","listenOnPlayer","player","eventName","event","callback","copyAnimationEvent","e","phaseName","totalTime","disabled","makeAnimationEvent","data","element","triggerName","fromState","toState","getOrSetDefaultValue","map","key","defaultValue","value","parseTimelineCommand","command","separatorPos","id","action","documentElement","getParentElement","parent","containsVendorPrefix","_CACHED_BODY","_IS_WEBKIT","validateStyleProperty","getBodyNode","result","getBodyNode","containsElement","elm1","elm2","getParentElement","invokeQuery","element","selector","multi","elem","NoopAnimationDriver","prop","validateStyleProperty","defaultValue","keyframes","duration","delay","easing","previousPlayers","scrubberAccessRequested","NoopAnimationPlayer","__ngFactoryType__","ɵɵdefineInjectable","AnimationDriver","AnimationStyleNormalizer","ONE_SECOND","SUBSTITUTION_EXPR_START","SUBSTITUTION_EXPR_END","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","value","matches","_convertTimeValueToMS","unit","resolveTiming","timings","errors","allowNegativeValues","parseTimeExpression","exp","regex","duration","delay","easing","invalidTimingValue","delayMatch","easingVal","containsErrors","startIndex","negativeStepValue","negativeDelayValue","normalizeKeyframes","keyframes","kf","setStyles","element","styles","formerStyles","val","prop","camelProp","dashCaseToCamelCase","eraseStyles","_","normalizeAnimationEntry","steps","sequence","validateStyleParams","value","options","errors","params","matches","extractStyleParams","varName","invalidStyleParams","PARAM_REGEX","SUBSTITUTION_EXPR_START","SUBSTITUTION_EXPR_END","match","interpolateParams","original","str","localVal","invalidParamValue","DASH_CASE_REGEXP","input","m","allowPreviousPlayerStylesMerge","duration","delay","balancePreviousStylesIntoKeyframes","element","keyframes","previousStyles","startingKeyframe","missingStyleProps","val","prop","i","kf","computeStyle","visitDslNode","visitor","node","context","AnimationMetadataType","invalidNodeType","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","AnimationStyleNormalizer","propertyName","errors","dashCaseToCamelCase","userProvidedProperty","normalizedProperty","value","unit","strVal","valAndSuffixMatch","invalidCssUnitValue","ANY_STATE","parseTransitionExpr","transitionValue","errors","expressions","str","parseInnerTransitionStr","eventStr","result","parseAnimationAlias","match","invalidExpression","fromState","separator","toState","makeLambdaFromStates","isFullAnyStateExpr","alias","invalidTransitionAlias","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN","SELF_TOKEN_REGEX","buildAnimationAst","driver","metadata","warnings","AnimationAstBuilderVisitor","ROOT_SELECTOR","_driver","context","AnimationAstBuilderContext","visitDslNode","normalizeAnimationEntry","queryCount","depCount","states","transitions","invalidTrigger","def","AnimationMetadataType","stateDef","name","n","transition","invalidDefinition","styleAst","astParams","missingSubs","params","style","value","extractStyleParams","sub","invalidState","animation","matchers","normalizeAnimationOptions","s","currentTime","furthestTime","steps","step","innerAst","timingAst","constructTimingAst","styleMetadata","isEmpty","newStyleData","_styleAst","ast","styles","metadataStyles","styleTuple","AUTO_STYLE","invalidStyleValue","containsDynamicStyles","collectedEasing","styleData","SUBSTITUTION_EXPR_START","timings","endTime","startTime","tuple","prop","collectedStyles","collectedEntry","updateCollectedStyle","invalidParallelAnimation","validateStyleParams","invalidKeyframes","MAX_KEYFRAME_OFFSET","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","previousOffset","keyframes","offsetVal","consumeOffset","offset","invalidOffset","keyframeOffsetsOutOfOrder","length","generatedOffset","keyframesMissingOffsets","limit","currentAnimateTimings","animateDuration","kf","i","durationUpToThisFrame","parentSelector","options","selector","includeSelf","normalizeSelector","getOrSetDefaultValue","invalidStagger","resolveTiming","hasAmpersand","token","NG_TRIGGER_SELECTOR","NG_ANIMATING_SELECTOR","normalizeParams","obj","__spreadValues","duration","makeTimingAst","strValue","v","delay","easing","createTimelineInstruction","element","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","instructions","existingInstructions","ONE_FRAME_IN_MILLISECONDS","ENTER_TOKEN","ENTER_TOKEN_REGEX","LEAVE_TOKEN","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","AnimationTimelineContext","resolveTimingValue","timelines","timeline","lastRootTimeline","elementInstructions","innerContext","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","interpolateParams","instruction","instructionTimings","subContextCount","ctx","DEFAULT_NOOP_PREVIOUS_NODE","innerTimelines","timingValue","innerTimeline","elms","sameElementTimeline","parentContext","tl","maxTime","startingTime","_AnimationTimelineContext","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","oldParams","newTime","target","updatedTimings","builder","SubTimelineBuilder","time","originalSelector","optional","results","multi","elements","invalidQuery","_TimelineBuilder","_elementTimelineStylesLookup","hasPreStyleStep","input","flattenStyles","val","properties","details1","details0","finalKeyframes","keyframe","finalKeyframe","ɵPRE_STYLE","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","totalTime","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","timeAtKeyframe","decimalPoints","mult","allStyles","allProperties","createTransitionInstruction","triggerName","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","oneOrMoreTransitionsMatch","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","oneOrMoreTransitionsMatch","matchFns","currentState","nextState","element","params","fn","applyParamDefaults","userParams","defaults","result","__spreadValues","key","value","AnimationStateStyles","styles","defaultParams","normalizer","errors","finalStyles","combinedParams","val","prop","interpolateParams","normalizedProp","buildTrigger","name","ast","AnimationTrigger","_normalizer","balanceProperties","AnimationTransitionFactory","createFallbackTransition","f","triggerName","states","matchers","fromState","toState","animation","AnimationMetadataType","transition","stateMap","key1","key2","EMPTY_INSTRUCTION_MAP","ElementInstructionMap","TimelineAnimationEngine","bodyNode","_driver","id","metadata","warnings","buildAnimationAst","registerFailed","i","preStyles","postStyles","keyframes","normalizeKeyframes$1","options","instructions","autoStylesMap","buildAnimationTimelines","ENTER_CLASSNAME","LEAVE_CLASSNAME","inst","getOrSetDefaultValue","missingOrDestroyedAnimation","createAnimationFailed","_","AUTO_STYLE","players","player","optimizeGroupPlayer","index","missingPlayer","eventName","callback","baseEvent","makeAnimationEvent","listenOnPlayer","command","args","QUEUED_CLASSNAME","QUEUED_SELECTOR","DISABLED_CLASSNAME","DISABLED_SELECTOR","STAR_CLASSNAME","STAR_SELECTOR","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","input","namespaceId","isObj","normalizeTriggerValue","_a","__objRest","newParams","oldParams","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_engine","addClass","phase","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","listeners","data","triggersWithStates","NG_TRIGGER_CLASSNAME","trigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","fromStyles","toStyles","eraseStyles","setStyles","playersOnElement","isFallbackTransition","removeClass","entry","elementPlayers","rootElement","context","elements","NG_TRIGGER_SELECTOR","elm","namespaces","ns","destroyAfterComplete","triggerStates","previousTriggersValues","state","elementStates","visitedTriggers","listener","engine","containsPotentialParentTransition","currentPlayers","parent","removalFlag","microtaskId","a","b","d0","d1","p","TransitionAnimationEngine","driver","namespaceList","namespacesByHostElement","found","ancestor","ancestorNs","stateValue","isElementNode","insertBefore","details","hostNS","hasAnimation","subTimelines","enterClassName","leaveClassName","skipBuildAst","containerElement","NG_ANIMATING_SELECTOR","resolve","node","cleanupFns","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","queriedElements","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","nodes","root","className","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","previousValue","nodeIsOrphaned","instruction","timelines","tl","tuple","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","ɵPRE_STYLE","post","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","parentPlayers","playersForElement","queriedPlayerResults","queriedInnerElements","j","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","NoopAnimationPlayer","previousPlayers","flattenGroupPlayers","pp","wrappedPlayer","deleteOrUnsetInMap","NG_ANIMATING_CLASSNAME","callbacks","totalTime","phaseName","map","currentValues","cloakElement","oldValue","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","props","roots","rootMap","NULL_NODE","nodeSet","localRootMap","getRoot","finalPlayers","_flattenGroupPlayersRecur","AnimationGroupPlayer","k1","k2","postEntry","preEntry","AnimationEngine","doc","componentId","cacheKey","triggerBuildFailed","disable","property","action","parseTimelineCommand","eventPhase","cb","packageNonAnimatableStyles","startStyles","endStyles","filterNonAnimatableStyles","SpecialCasedStyles","_element","_startStyles","_endStyles","initialStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","onFinish","kfs","frame","computeStyle","methods","WebAnimationsDriver","elm1","elm2","containsElement","getParentElement","selector","multi","invokeQuery","defaultValue","duration","delay","easing","fill","playerOptions","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","_keyframes","normalizeKeyframes","balancePreviousStylesIntoKeyframes","specialStyles","ANIMATION_PREFIX","DISABLE_ANIMATIONS_FLAG","BaseAnimationRenderer","namespaceId","delegate","engine","_onDestroy","node","name","namespace","value","parent","newChild","refChild","isMove","oldChild","isHostElement","selectorOrNode","preserveContent","el","style","flags","target","eventName","callback","options","element","AnimationRenderer","factory","onDestroy","resolveElementFromTarget","phase","parseTriggerCallbackName","event","countId","triggerName","dotIndex","trigger","AnimationRendererFactory","_zone","hostElement","type","EMPTY_NAMESPACE_ID","cache","renderer","onRendererDestroy","componentId","registerTrigger","count","fn","data","animationCallbacksBuffer","tuple","InjectableAnimationEngine","AnimationEngine","doc","driver","normalizer","__ngFactoryType__","ɵɵinject","DOCUMENT","AnimationDriver","AnimationStyleNormalizer","ɵɵdefineInjectable","instantiateDefaultStyleNormalizer","WebAnimationsStyleNormalizer","instantiateRendererFactory","renderer","engine","zone","AnimationRendererFactory","SHARED_ANIMATION_PROVIDERS","RendererFactory2","DomRendererFactory2","NgZone","BROWSER_NOOP_ANIMATIONS_PROVIDERS","NoopAnimationDriver","ANIMATION_MODULE_TYPE","BROWSER_ANIMATIONS_PROVIDERS","WebAnimationsDriver","BrowserAnimationsModule","config","ɵɵdefineNgModule","ɵɵdefineInjector","BrowserModule","globalRegistry","PrefetchRegistry","_PrefetchRegistry","router","tree","url","containsTree","__ngFactoryType__","ɵɵinject","Router","ɵɵdefineInjectable","containsQueryParams","container","containee","key","containsSegmentGroup","containeePaths","current","equalPath","c","next","PRIMARY_OUTLET","as","bs","a","requestIdleCallback","cb","start","observerSupported","LinkHandler","InjectionToken","ObservableLinkHandler","_ObservableLinkHandler","loader","registry","ngZone","entries","entry","link","routerLink","el","RouterPreloader","NgZone","PreloadLinkHandler","_PreloadLinkHandler","_","LinkDirective","_LinkDirective","linkHandlers","linkWithHref","h","ɵɵdirectiveInject","ElementRef","RouterLink","ɵɵdefineDirective","ɵɵNgOnChangesFeature","findPath","config","route","parent","visited","children","r","path","isPrimaryRoute","QuicklinkStrategy","_QuicklinkStrategy","load","EMPTY","conn","fullPath","quicklinkProviders","QuicklinkModule","_QuicklinkModule","ɵɵdefineNgModule","ɵɵdefineInjector","_c0","MatProgressSpinner_ng_template_0_Template","rf","ctx","ɵɵnamespaceSVG","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ctx_r0","ɵɵnextContext","ɵɵattribute","ɵɵadvance","ɵɵstyleProp","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS","InjectionToken","MAT_PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY","BASE_SIZE","BASE_STROKE_WIDTH","MatProgressSpinner","inject","ElementRef","value","animationMode","ANIMATION_MODULE_TYPE","defaults","v","size","viewBox","__ngFactoryType__","ɵɵdefineComponent","ɵɵviewQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵclassMap","ɵɵclassProp","numberAttribute","ɵɵtemplate","ɵɵtemplateRefExtractor","ɵɵnamespaceHTML","ɵɵelementContainer","circle_r2","ɵɵreference","ɵɵproperty","NgTemplateOutlet","MatProgressSpinnerModule","__ngFactoryType__","ɵɵdefineNgModule","ɵɵdefineInjector","MatCommonModule","isAuthorized","status","handlerType","logger","loggerHandler","sanitizedHandlerType","STATUS_PRIORITIES","StatusType","createErrorFieldFromRawError","rawError","includeMessage","__decorate","decorators","target","key","desc","c","r","d","i","HandlerType","STATUSES","StatusType","Logger","handleLogStrategy","customerDataTracker","name","handlerType","level","loggerContext","createContextManager","message","messageContext","status","error","handlingStack","sanitizedMessageContext","sanitize","context","rawError","computeRawError","isError","computeStackTrace","ErrorSource","clocksNow","combine","createErrorFieldFromRawError","isAuthorized","createHandlingStack","value","handler","monitored","createLoggerMethod","buildCommonContext","globalContextManager","userContextManager","accountContextManager","DEFAULT_REQUEST_ERROR_RESPONSE_LENGTH_LIMIT","validateAndBuildLogsConfiguration","initConfiguration","display","baseConfiguration","validateAndBuildConfiguration","forwardConsoleLogs","validateAndBuildForwardOption","objectValues","ConsoleApiName","forwardReports","RawReportType","__spreadValues","option","allowedValues","label","api","removeDuplicates","serializeLogsConfiguration","configuration","baseSerializedInitConfiguration","serializeConfiguration","createPreStartStrategy","getCommonContext","trackingConsentState","doStartLogs","bufferApiCalls","createBoundedBuffer","cachedInitConfiguration","cachedConfiguration","trackingConsentStateSubscription","tryStartLogs","startLogsResult","initConfiguration","display","initFeatureFlags","canUseEventBridge","overrideInitConfigurationForBridge","displayAlreadyInitializedError","configuration","validateAndBuildLogsConfiguration","initFetchObservable","noop","message","statusType","handlingStack","context","date","timeStampNow","__spreadProps","__spreadValues","LOGS_STORAGE_KEY","makeLogsPublicApi","startLogsImpl","customerDataTrackerManager","createCustomerDataTrackerManager","globalContextManager","createContextManager","userContextManager","accountContextManager","trackingConsentState","createTrackingConsentState","getCommonContext","buildCommonContext","strategy","createPreStartStrategy","initConfiguration","configuration","storeContextManager","startLogsResult","createPostStartStrategy","customLoggers","mainLogger","Logger","params","makePublicApi","monitor","trackingConsent","addTelemetryUsage","context","key","value","name","conf","sanitize","deepClone","startTime","__spreadValues","displayAlreadyInitializedError","LOGS_SESSION_KEY","startLogsSessionManager","configuration","trackingConsentState","sessionManager","startSessionManager","rawTrackingType","computeSessionState","startTime","options","session","startLogsSessionManagerStub","computeTrackingType","Observable","performDraw","rawSessionType","trackingType","hasValidLoggerSession","logsSentBeforeRumInjectionTelemetryAdded","getRUMInternalContext","startTime","browserWindow","willSyntheticsInjectRum","context","getInternalContextFromRumGlobal","addTelemetryDebug","getSyntheticsTestId","getSyntheticsResultId","rumGlobal","startLogsAssembly","sessionManager","configuration","lifeCycle","getCommonContext","reportError","statusWithCustom","STATUSES","logRateLimiters","status","createEventRateLimiter","rawLogsEvent","messageContext","savedCommonContext","domainContext","_a","_b","startTime","getRelativeTime","session","commonContext","account","isEmptyObject","log","combine","getRUMInternalContext","ErrorSource","LogStatusForApi","ConsoleApiName","StatusType","startConsoleCollection","configuration","lifeCycle","consoleSubscription","initConsoleObservable","log","_a","collectedData","timeStampNow","ErrorSource","createErrorFieldFromRawError","startReportCollection","configuration","lifeCycle","reportSubscription","initReportObservable","rawError","message","error","status","StatusType","createErrorFieldFromRawError","getFileFromStackTraceString","timeStampNow","ErrorSource","startNetworkErrorCollection","configuration","lifeCycle","noop","xhrSubscription","initXhrObservable","context","handleResponse","fetchSubscription","initFetchObservable","type","request","isIntakeUrl","isRejected","isServerError","computeXhrResponseData","onResponseDataAvailable","computeFetchResponseText","computeFetchErrorText","responseData","domainContext","format","StatusType","ErrorSource","xhr","callback","truncateResponseText","error","toStackTraceString","computeStackTrace","response","clonedResponse","tryToClone","truncateResponseStream","responseText","monitor","text","stream","bytesLimit","readBytesFromStream","bytes","limitExceeded","startRuntimeErrorCollection","configuration","lifeCycle","noop","rawErrorObservable","Observable","stopRuntimeErrorTracking","trackRuntimeError","rawErrorSubscription","rawError","createErrorFieldFromRawError","ErrorSource","StatusType","LifeCycle","AbstractLifeCycle","startLoggerCollection","lifeCycle","handleLog","logsMessage","logger","handlingStack","savedCommonContext","savedDate","messageContext","combine","isAuthorized","HandlerType","displayInConsole","rawLogEventData","timeStampNow","ErrorSource","loggerToConsoleApiName","StatusType","ConsoleApiName","status","message","originalConsoleMethods","globalConsole","startLogsBatch","configuration","lifeCycle","reportError","pageMayExitObservable","session","batch","startBatchWithReplica","createIdentityEncoder","serverLogsEvent","startLogsBridge","lifeCycle","bridge","getEventBridge","serverLogsEvent","startInternalContext","sessionManager","startTime","trackedSession","startReportError","lifeCycle","error","ErrorSource","StatusType","addTelemetryDebug","startLogsTelemetry","initConfiguration","configuration","reportError","pageMayExitObservable","session","telemetry","startTelemetry","_a","_b","_c","_d","_e","_f","getRUMInternalContext","cleanupTasks","canUseEventBridge","bridge","getEventBridge","telemetrySubscription","event","telemetryBatch","startBatchWithReplica","createIdentityEncoder","isTelemetryReplicationAllowed","drainPreStartTelemetry","addTelemetryConfiguration","serializeLogsConfiguration","task","startLogs","initConfiguration","configuration","getCommonContext","trackingConsentState","lifeCycle","LifeCycle","cleanupTasks","log","sendToExtension","reportError","startReportError","pageMayExitObservable","createPageMayExitObservable","session","canUseEventBridge","willSyntheticsInjectRum","startLogsSessionManager","startLogsSessionManagerStub","stopLogsTelemetry","startLogsTelemetry","startNetworkErrorCollection","startRuntimeErrorCollection","startConsoleCollection","startReportCollection","handleLog","startLoggerCollection","startLogsAssembly","startLogsBridge","stopLogsBatch","startLogsBatch","internalContext","startInternalContext","task","datadogLogs","makeLogsPublicApi","startLogs","defineGlobal","getGlobalObject","DatadogErrorHandler","constructor","ignoredErrorCodes","handleError","err","pcgSettings","mode","toLowerCase","console","error","originalError","includes","status","datadogLogs","logger","message","undefined","factory","ɵfac","InactivityTimeoutComponent","http","modal","sec","router","ms","subscribeTimer","subscriptions","Subscription","user","constructor","timeLeft","now","Date","localStorage","getItem","lastAccess","JSON","parse","theTimeLeft","parseInt","toString","ngOnInit","getUser","inactivityTimeout","source","timer","add","subscribe","setSecurity","dismiss","d","setTime","getTime","document","cookie","toUTCString","loggedInUsingSso","setItem","get","id","msg","isSuccessful","window","location","href","value","setSystemMessage","message","messageClass","redirectUrl","replace","getElementsByTagName","navigateByUrl","encodeURIComponent","ngOnDestroy","unsubscribe","ɵɵdirectiveInject","HttpClient","NgbActiveModal","SecurityService","Router","SystemMessageService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵadvance","ɵɵtextInterpolate1","InactivityTimeoutService","ngZone","securityService","modalService","destroy$","Subject","lastActivity","modalOpen","inactivityTimer","user","trackedUrls","constructor","getUser","inactivityTimeout","console","log","initActivityTracking","initInactivityTimer","runOutsideAngular","observables","name","target","document","window","map","event","fromEvent","merge","pipe","debounceTime","filter","isTrackedUrl","takeUntil","subscribe","run","resetLastAccess","currentUrl","location","href","some","url","includes","timer","tap","checkInactivity","Date","setLocalStorage","lastAccessStr","localStorage","getItem","setSecurity","lastAccessedDate","JSON","parse","endDate","addMinutes","showInactivityModal","dismissAll","open","InactivityTimeoutComponent","beforeDismiss","stopTracking","next","complete","ɵɵinject","NgZone","SecurityService","NgbModal","factory","ɵfac","providedIn","ɵɵelement","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","toggleNav","ɵɵelementEnd","ɵɵtext","ɵɵtemplate","TopHeaderComponent_Conditional_1_div_6_Template","ɵɵadvance","ɵɵproperty","faIconName","faBars","ɵɵpureFunction0","_c2","mode","_r3","setSubNavPosition","ɵɵtextInterpolate","navService","dynamicNavTitle","globalService","isQuickNavDisplayed","currForceSelect","navDividerCharacter","tmp_4_0","currNav","id","split","tmp_5_0","tmp_6_0","children","tabPanel","TopHeaderComponent","sec","router","modalService","location","gvs","nav","userNav","mainHamburger","hamburgerClick","EventEmitter","user","pcgSettings","NavDividerCharacter","hrefLocation","userNavOpen","adminAccess","isMobile","isLoggedOn","isNavFixed","isCiUser","hasCiWorkstation","hasCiAccess","loading","navigationOffset","inject","NavigationService","constructor","events","pipe","untilDestroyed","filter","event","NavigationEnd","subscribe","setHasCiAccess","path","includes","hasModuleAccess","BusinessAreaEnum","CI","SecurityService","setMinRole","PermissionRole","Technician","isBannerDisplayed","set","getCiWorkstation","clickDoc","nativeElement","contains","target","elRef","setCurrOpenNavMenu","onResize","GlobalService","setIsMobile","window","innerWidth","ngOnInit","user$","setTimeout","secondaryNav","document","getElementById","scrollLeft","Number","localStorage","getItem","ngDoCheck","setItem","toString","emit","openCiWorkstationModal","open","CiWorkstationComponent","animation","User","opened","sessionToken","isInternalBphpUser","email","setDynamicStyle","name","styles","dynamicStyle","head","removeChild","createElement","innerHTML","appendChild","ɵɵdirectiveInject","Router","NgbModal","Location","GlobalVariablesService","selectors","viewQuery","rf","ctx","TopClickNavComponent","$event","ɵɵresolveDocument","ɵɵresolveWindow","TopHeaderComponent_Conditional_1_Template","TopHeaderComponent_Conditional_2_Template","TopHeaderComponent_Conditional_3_Template","TopHeaderComponent_Conditional_4_Template","isNavOpen","ɵɵconditional","__decorate","UntilDestroy","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","SpinnerComponent","spinner","ref","isLoading","constructor","ngOnInit","loadingSource$","subscribe","detectChanges","ɵɵdirectiveInject","SpinnerService","ChangeDetectorRef","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","SpinnerComponent_div_0_Template","ɵɵproperty","SystemMessageComponent","messageService","model","displayMessage","constructor","ngOnInit","settings","settings$","subscribe","closeSystemMessage","ɵɵdirectiveInject","SystemMessageService","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵlistener","messageOpen","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵstyleProp","ɵɵproperty","centeredStyles","ɵɵadvance","ɵɵpureFunction1","_c0","firstLoad","_c1","messageClass","ɵɵtextInterpolate1","message","link","ɵɵsanitizeHtml","ɵɵtextInterpolate","ɵɵpipeBind2","openDate","trigger","state","style","opacity","transition","animate","PushNotificationService","constructor","checkForNavSpace","spacer","document","getElementById","style","display","checkForSystemUpdate","updateTimer","localStorage","getItem","Date","JSON","parse","removeItem","factory","ɵfac","providedIn","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","toggleVisibility","ɵɵtext","ɵɵelementEnd","ɵɵclassProp","navSpacerVisible","ɵɵadvance","warning","ɵɵtextInterpolate1","minutes","ɵɵpipeBind2","seconds","_r3","ɵɵtextInterpolate","InstallTimerComponent","targetDate","date","minimized","ngAfterViewInit","updateTimer","localStorage","getItem","PushNotificationService","checkForSystemUpdate","Date","JSON","parse","setInterval","tickTock","diffMs","valueOf","min","Math","ceil","sec","checkForNavSpace","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","InstallTimerComponent_div_0_Template","InstallTimerComponent_div_1_Template","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","hardReload","ɵɵclassProp","navSpacerVisible","ɵɵelement","PushNotificationComponent","eventSource","isLocalHost","pcgSettings","mode","showNotification","scheduledInstall","window","location","reload","ngOnInit","connectToSSE","ngOnDestroy","close","EventSource","withCredentials","addEventListener","localStorage","removeItem","PushNotificationService","checkForSystemUpdate","checkForNavSpace","event","scheduledTime","Date","JSON","parse","data","setItem","stringify","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","PushNotificationComponent_div_0_Template","PushNotificationComponent_div_1_Template","ɵɵproperty","ɵɵadvance","ɵɵelementStart","ɵɵlistener","$event","i0","ɵɵrestoreView","_r6","ɵɵresetView","stopPropagation","ɵɵelementEnd","ɵɵproperty","notif_r3","html","ɵɵsanitizeHtml","ɵɵtext","ɵɵpureFunction2","_c4","openNewTab","url","i_r4","ɵɵadvance","ɵɵtextInterpolate","message","ɵɵelement","ɵɵpureFunction1","_c8","ctx_r4","barWidth","ctx_r1","_r1","$implicit","index","ɵɵnextContext","urlRedirect","dismissNotif","bringToFront","ɵɵtemplate","SseNotificationComponent_div_0_Conditional_11_Template","SseNotificationComponent_div_0_Conditional_12_Template","SseNotificationComponent_div_0_Conditional_16_Template","_c1","_c0","direction","ɵɵpureFunction7","_c2","position","includes","ɵɵpureFunction4","_c3","NOTIF_Z_INDEX","notifs","length","OLD_NOTIF_OPACITY","NOTIF_OFFSET","_c5","iconColor","iconBgColor","iconDefinition","defaultIcon","_c6","headerBgColor","messageBgColor","START_GRADIENT","END_GRADIENT","_c7","headerColor","header","ɵɵpipeBind2","timeSent","messageColor","ɵɵconditional","dismissIcon","SseNotificationComponent","sseService","inject","SseNotificationService","sec","SecurityService","businessIcons","FaBusinessAreaIconsService","router","Router","sanitizer","DomSanitizer","settings","pcgSettings","subscriptions","icons","FaIconName","faExclamation","faAngleRight","sound","Audio","timeoutId","startTime","widthIntervalId","widthInterval","MAX_NOTIF","MS_TO_S","DEFAULT_POSITION","DEFAULT_HEADER_COLOR","DEFAULT_MESSAGE_COLOR","ngOnInit","destroySSE","push","notificationReceived","subscribe","data","addNotifToQueue","setDefaults","setIcon","playSound","startTimer","initializeSSE","ngOnDestroy","notificationSource","stopTimer","forEach","sub","unsubscribe","Date","slice","notif","businessArea","icon","getIconByBusinessArea","iconStyle","getIconStyleByBusinessArea","color","background","useSound","src","loadNotifSound","play","basePath","document","getElementsByTagName","href","load","pop","realIndex","element","splice","window","open","pathUrl","URL","path","pathname","search","hash","navigateByUrl","timeout","setTimeoutWidth","setTimeout","clearInterval","setInterval","elapsed","getTime","remaining","Math","max","sanitizeHTML","sanitize","SecurityContext","HTML","selectors","standalone","decls","vars","consts","template","rf","ctx","SseNotificationComponent_div_0_Template","reverse","notificationSlide","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","ɵɵresetView","navService","isNotificationsNavOpen","set","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","faX","ɵɵelementContainer","ɵɵtemplate","DashboardNotificationsWidgetComponent_Conditional_12_ng_container_0_Template","baDropDown_r4","_r5","markAllAsRead","ɵɵtext","deleteAllNotifications","faCheckDouble","faTrash","notification_r6","link","ɵɵsanitizeUrl","DashboardNotificationsWidgetComponent_For_21_ng_container_14_Template","DashboardNotificationsWidgetComponent_For_21_Conditional_15_Template","ɵɵclassProp","markedAsRead","ɵɵpureFunction2","_c0","baService","getIconStyleByBusinessArea","businessArea","color","background","getIconByBusinessArea","ɵɵtextInterpolate","title","ɵɵtextInterpolate1","ɵɵpipeBind2","ɵɵpipeBind1","notifiedDate","message","dropDown_r7","ɵɵpureFunction1","_c1","ɵɵconditional","_r8","showMore","businessArea_r10","_r9","$implicit","toggleBusinessArea","selectedBusinessAreas","includes","toDescription","_c2","_r11","ɵɵrepeaterCreate","DashboardNotificationsWidgetComponent_ng_template_24_For_5_Template","ɵɵrepeaterTrackByIdentity","DashboardNotificationsWidgetComponent_ng_template_24_Conditional_7_Template","faFilter","ɵɵrepeater","userModules","tmp_6_0","length","_r13","notification_r14","notification","markAsRead","_r15","unsubscribe","subscription","DashboardNotificationsWidgetComponent_ng_template_26_Conditional_1_Template","DashboardNotificationsWidgetComponent_ng_template_26_Conditional_6_Template","_r12","deleteNotification","DashboardNotificationsWidgetComponent","notificationsService","inject","NotificationsService","sec","SecurityService","NavigationService","router","Router","FaBusinessAreaIconsService","modalService","NgbModal","toastr","NotificationService","sseService","SseNotificationService","isSideNav","SCROLL_OFFSET","PAGE_SIZE","showUnreadOnly","signal","displayLimit","isScrolledToBottom","user","baEnum","BusinessAreaEnum","faGear","notifications","toSignal","notifications$","initialValue","computed","areas","filter","n","map","o","Set","sort","a","b","filteredNotifications","businessAreas","slice","hasMoreNotifications","ngOnInit","getUser","loadNotifications","handleSSEListeners","getNotificationsByUserId","id","setUnreadFilter","update","current","ba","userNotificationId","showWarning","modal","open","ConfirmationModalComponent","subscriptionStr","SubscriptionEnum","toDisplay","warningMessage","FormatHelperService","filterJoin","oxfordJoin","options","UserSubscriptionVm","ColumnDefs","get","displayName","componentInstance","modalRef","confirmationMessage","result","then","emittedValue","catch","filteredBusinessAreas","onScroll","event","element","target","atBottom","Math","abs","scrollHeight","scrollTop","clientHeight","isMobile","navToSettings","navigateByUrl","persistentNotificationReceived","subscribe","selectors","inputs","decls","vars","consts","template","rf","ctx","DashboardNotificationsWidgetComponent_button_4_Template","i0","_r1","DashboardNotificationsWidgetComponent_Conditional_12_Template","DashboardNotificationsWidgetComponent_Conditional_15_Template","$event","DashboardNotificationsWidgetComponent_For_21_Template","_forTrack0","DashboardNotificationsWidgetComponent_ForEmpty_22_Template","DashboardNotificationsWidgetComponent_Conditional_23_Template","DashboardNotificationsWidgetComponent_ng_template_24_Template","ɵɵtemplateRefExtractor","DashboardNotificationsWidgetComponent_ng_template_26_Template","unreadCount","CommonModule","NgIf","NgTemplateOutlet","NgStyle","DatePipe","FormsModule","NgbModule","NgbDropdown","NgbDropdownToggle","NgbDropdownMenu","NgbDropdownItem","NgbDropdownButtonItem","NgbTooltip","FontAwesomeModule","FaIconComponent","SharedModule","ClickCursorDirective","UtcToLocalPipe","styles","ɵɵelement","ɵɵelementStart","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r2","ctx_r2","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","navService","isNavOpen","ɵɵresetView","ɵɵlistener","toggleNavOpen","isNavFixed","ɵɵelementEnd","ɵɵproperty","isMobile","ɵɵtwoWayProperty","ɵɵadvance","user","isNotificationsNavOpen","tmp_13_0","nav_r5","href","undefined","path","ɵɵclassProp","name","selectedMainNav","icon","ɵɵtemplate","AppComponent_Conditional_5_For_5_Conditional_0_Template","ɵɵconditional","canViewNav","ɵɵtext","ɵɵtextInterpolate","notificationsService","unreadCount","_r6","toggleNotificationsNav","AppComponent_Conditional_5_Conditional_7_Conditional_2_Template","faIconName","faBell","_r4","toggleNavFixed","ɵɵrepeaterCreate","AppComponent_Conditional_5_For_5_Template","ɵɵrepeaterTrackByIdentity","takeToMyProfile","AppComponent_Conditional_5_Conditional_7_Template","faArrowRight","ɵɵrepeater","navRoutes","faUser","tmp_6_0","sec","getUser","email","includes","_r7","tabPanel_r8","AppComponent","router","inactivityService","modalConfig","gs","ref","tabPanel","fileLogoUrl","errorCache","navState","inject","NavigationService","NotificationsService","spinnerService","SpinnerService","onResize","localStorage","setItem","closeNav","resetNav","isLoggedOn","signal","mode","pcgSettings","busArea","BusinessAreaEnum","role","PermissionRole","constructor","elRef","configureDatadog","configureModal","user$","subscribe","isLoggedIn","set","nativeElement","classList","add","remove","window","ngOnInit","getItem","animation","ariaLabelledBy","toLowerCase","datadogLogs","setGlobalContext","env","setGlobalContextProperty","document","referrer","logger","setLevel","initDataDog","setUser","getDatadogUser","newUser","clearUser","initConfig","getInitConfiguration","init","clientToken","trackingConsent","site","service","version","forwardErrorsToLogs","sessionSampleRate","ex","console","error","userJs","id","toString","firstName","lastName","navigateByUrl","ngOnDestroy","stopTracking","ɵɵdirectiveInject","Router","ElementRef","InactivityTimeoutService","SecurityService","NgbModalConfig","GlobalService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","ɵɵresolveWindow","AppComponent_pcg_sse_notification_0_Template","_r1","AppComponent_Conditional_2_Template","AppComponent_Conditional_3_Template","AppComponent_Conditional_5_Template","AppComponent_Conditional_7_Template","AppComponent_Conditional_23_Template","isBannerDisplayed","ɵɵclassMap","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelementContainerStart","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","row_r1","invoiceNumber","productName","ndc","bottlesOrdered","bottlesInvoiced","size","ɵɵpipeBind1","productInvoiced","countPerCard","cardsOrdered","productRemaining","bottlesReceived","productRepacked","repackedCards","productReturned","productDifference","ɵɵtemplate","CiRepackOrderShortOverPrintableComponent_div_12_ng_container_34_Template","ɵɵproperty","ctx_r1","shortOverList","CiRepackOrderShortOverPrintableComponent","title","route","httpClient","btnFilterService","subscriptions","Subscription","orderNumber","dataIsLoaded","pageIsLoaded","code","emptyShortOverList","constructor","setTitle","document","querySelector","classList","add","getElementById","ngOnInit","snapshot","queryParamMap","get","getShortOverList","ngAfterViewInit","setTimeout","printPage","subscribe","list","length","ciOrderNumber","window","print","close","ɵɵdirectiveInject","Title","ActivatedRoute","HttpClient","ButtonFilterService","selectors","standalone","decls","vars","consts","template","rf","ctx","CiRepackOrderShortOverPrintableComponent_div_11_Template","CiRepackOrderShortOverPrintableComponent_div_12_Template","padNumber","value","isNumber","slice","isNaN","toInteger","parseInt","NgbDateNativeParserFormatter","NgbDateParserFormatter","parse","dateParts","trim","split","length","year","month","day","format","date","stringDate","__ngFactoryType__","factory","ɵfac","SilkierHistoryVm","fireInstanceId","schedulerInstanceId","schedulerName","job","trigger","scheduledFireTimeUtc","scheduledFireTimeUtcStr","actualFireTimeUtc","actualFireTimeUtcStr","recovering","finishedTimeUtc","finishedTimeUtcStr","logMessage","exceptionMessage","wasSuccessful","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","minLength","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","SilkierHistoryVmFromFg","constructor","get","value","val","setValue","ViewExceptionModalComponent","modal","httpClient","id","exceptionMsg","constructor","ngOnInit","getException","httpParams","HttpParams","set","get","params","pipe","untilDestroyed","subscribe","resp","exceptionMessage","ɵɵdirectiveInject","NgbActiveModal","HttpClient","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","dismiss","ɵɵadvance","ɵɵtextInterpolate","__decorate","UntilDestroy","ViewLogModalComponent","modal","httpClient","id","logMsg","constructor","ngOnInit","getLog","httpParams","HttpParams","set","get","params","pipe","untilDestroyed","subscribe","resp","logMessage","ɵɵdirectiveInject","NgbActiveModal","HttpClient","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵlistener","dismiss","ɵɵelement","ɵɵadvance","ɵɵproperty","ɵɵsanitizeHtml","__decorate","UntilDestroy","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","ctx_r0","columns","get","displayName","ɵɵtextInterpolate","row_r2","schedulerInstanceId","row_r3","schedulerName","row_r4","job","row_r5","trigger","row_r6","scheduledFireTimeUtcStr","row_r7","actualFireTimeUtcStr","row_r8","recovering","row_r9","finishedTimeUtcStr","ɵɵlistener","row_r11","ɵɵrestoreView","_r10","$implicit","ɵɵnextContext","ɵɵresetView","viewLogMessage","fireInstanceId","_r12","row_r13","viewExceptionMessage","ɵɵtemplate","SilkierHistoryComponent_td_34_div_1_Template","ɵɵproperty","wasSuccessful","SilkierHistoryComponent","title","ms","modalService","table","SilkierHistoryVm","ColumnDefs","constructor","setTitle","ngOnInit","id","modal","open","ViewLogModalComponent","size","animation","componentInstance","ViewExceptionModalComponent","ɵɵdirectiveInject","Title","SystemMessageService","NgbModal","selectors","viewQuery","rf","ctx","TableComponent","ɵɵelement","ɵɵelementContainerStart","SilkierHistoryComponent_th_6_Template","SilkierHistoryComponent_td_7_Template","SilkierHistoryComponent_th_9_Template","SilkierHistoryComponent_td_10_Template","SilkierHistoryComponent_th_12_Template","SilkierHistoryComponent_td_13_Template","SilkierHistoryComponent_th_15_Template","SilkierHistoryComponent_td_16_Template","SilkierHistoryComponent_th_18_Template","SilkierHistoryComponent_td_19_Template","SilkierHistoryComponent_th_21_Template","SilkierHistoryComponent_td_22_Template","SilkierHistoryComponent_th_24_Template","SilkierHistoryComponent_td_25_Template","SilkierHistoryComponent_th_27_Template","SilkierHistoryComponent_td_28_Template","SilkierHistoryComponent_th_30_Template","SilkierHistoryComponent_td_31_Template","SilkierHistoryComponent_th_33_Template","SilkierHistoryComponent_td_34_Template","getTitle","ɵɵpureFunction1","_c1","ɵɵpureFunction0","_c0","KnowledgeBaseDocumentVm","documentId","module","permissionRole","title","description","content","uploadFiles","videoId","sortOrder","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","Form","UntypedFormGroup","GetModel","fg","KnowledgeBaseDocumentVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","currentDocument","title","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","editDocument","_r3","deleteDocument","ɵɵelement","ɵɵproperty","ɵɵpipeBind1","videoUrl","ɵɵsanitizeResourceUrl","ɵɵtemplate","KnowledgeBaseComponent_div_13_div_3_Template","KnowledgeBaseComponent_div_13_div_5_Template","description","content","ɵɵsanitizeHtml","$event","_r5","setImageInFormGroup","editorString","errorStr","_r6","cancelDocumentEdit","_r4","onModuleChange","KnowledgeBaseComponent_form_14_div_14_Template","KnowledgeBaseComponent_form_14_div_16_Template","KnowledgeBaseComponent_form_14_button_17_Template","onSave","formGroup","knowledgeBaseModules","permissionItems","isError","isEditDoc","_r7","createDocument","_r8","toggleAdminSubMenu","showAdminSubMenu","faIconName","faFolderOpen","faFolder","adminDoc_r11","_r10","$implicit","openDocument","faFile","_r9","drop","KnowledgeBaseComponent_div_26_div_1_Template","adminDocList","_r12","toggleCiRepackSubMenu","showCiRepackSubMenu","ciRepackDoc_r15","_r14","_r13","KnowledgeBaseComponent_div_28_div_1_Template","ciRepackDocList","_r16","toggleHerosSubMenu","showHerosSubMenu","herosDoc_r19","_r18","_r17","KnowledgeBaseComponent_div_30_div_1_Template","herosDocList","_r20","toggleMetabolicSubMenu","showMetabolicSubMenu","metabolicFormulaDoc_r23","_r22","_r21","KnowledgeBaseComponent_div_32_div_1_Template","metabolicFormulaDocList","_r24","toggleNdcSubMenu","showNdcSubMenu","ndcsDoc_r27","_r26","_r25","KnowledgeBaseComponent_div_34_div_1_Template","ndcsDocList","_r28","togglePfsSubMenu","showPfsSubMenu","pfsDoc_r31","_r30","_r29","KnowledgeBaseComponent_div_36_div_1_Template","pfsDocList","_r32","togglePharmacySubMenu","showPharmacySubMenu","pharmacyDoc_r35","_r34","_r33","KnowledgeBaseComponent_div_38_div_1_Template","pharmacyDocList","_r36","toggleRxConnectsSubMenu","showRxConnectsSubMenu","rxConnectsDoc_r39","_r38","_r37","KnowledgeBaseComponent_div_40_div_1_Template","rxConnectsDocList","_r40","toggleSupportSubMenu","showSupportSubMenu","supportDoc_r43","_r42","_r41","KnowledgeBaseComponent_div_42_div_1_Template","supportDocList","_r44","toggleOtherSubMenu","showOtherSubMenu","otherDoc_r47","_r46","_r45","KnowledgeBaseComponent_div_44_div_1_Template","otherDocList","faBook","KnowledgeBaseComponent","httpClient","ms","sec","gs","KnowledgeBaseDocumentVm","Form","faXmark","docOpened","isMobile","isSupportAdmin","hasSearchResults","hasAdminAccess","hasCiRepackAccess","hasHerosAccess","hasMetabolicFormulaAccess","hasNdcsAccess","hasPharmacyAccess","hasRxConnectsAccess","hasSupportAccess","docList","isCreateDoc","canEdit","textEditor","constructor","setTitle","isFixed","onResize","GlobalService","setIsMobile","window","innerWidth","ngOnInit","getDocuments","setModuleAccesses","getModules","isNavFixed","subscribe","r","localStorage","getItem","hasModuleAccess","BusinessAreaEnum","HelpDesk","SecurityService","setMinRole","PermissionRole","SystemAdmin","Admin","CI","HEROS","MetabolicFormula","NDC","Inventory","RxConnects","RxConnectsAdmin","setCanEdit","module","reset","controls","documentId","setValue","value","getPermissions","confirm","get","sm","isSuccessful","upsertSortedDocuments","closeDocument","setSystemMessage","message","messageClass","doc","videoId","permissionRole","document","querySelector","post","getRawValue","push","Array","filteredList","isFiltering","Map","map","values","listToPullFrom","forEach","sortDocList","event","uploadFiles","items","filter","o","moveItemInArray","previousIndex","currentIndex","msg","searchDocuments","toLowerCase","includes","target","length","clearSearch","sort","a","b","sortOrder","ɵɵdirectiveInject","Title","HttpClient","SystemMessageService","selectors","hostBindings","rf","ctx","ɵɵresolveWindow","KnowledgeBaseComponent_h3_4_Template","KnowledgeBaseComponent_h3_5_Template","KnowledgeBaseComponent_h3_6_Template","KnowledgeBaseComponent_button_8_Template","KnowledgeBaseComponent_button_9_Template","KnowledgeBaseComponent_div_13_Template","KnowledgeBaseComponent_form_14_Template","KnowledgeBaseComponent_button_21_Template","KnowledgeBaseComponent_p_24_Template","KnowledgeBaseComponent_mat_list_item_25_Template","KnowledgeBaseComponent_div_26_Template","KnowledgeBaseComponent_mat_list_item_27_Template","KnowledgeBaseComponent_div_28_Template","KnowledgeBaseComponent_mat_list_item_29_Template","KnowledgeBaseComponent_div_30_Template","KnowledgeBaseComponent_mat_list_item_31_Template","KnowledgeBaseComponent_div_32_Template","KnowledgeBaseComponent_mat_list_item_33_Template","KnowledgeBaseComponent_div_34_Template","KnowledgeBaseComponent_mat_list_item_35_Template","KnowledgeBaseComponent_div_36_Template","KnowledgeBaseComponent_mat_list_item_37_Template","KnowledgeBaseComponent_div_38_Template","KnowledgeBaseComponent_mat_list_item_39_Template","KnowledgeBaseComponent_div_40_Template","KnowledgeBaseComponent_mat_list_item_41_Template","KnowledgeBaseComponent_div_42_Template","KnowledgeBaseComponent_mat_list_item_43_Template","KnowledgeBaseComponent_div_44_Template","KnowledgeBaseComponent_div_45_Template","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","onSubmit","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵproperty","changePasswordForm","ɵɵadvance","ɵɵpureFunction0","_c0","_c1","ɵɵtextInterpolate","errorMessage","ChangePasswordComponent","route","ms","sec","router","http","changePasswordSub","Subscription","userGUID","userId","code","isExpired","constructor","ChangePasswordForm","formGroup","ngOnInit","snapshot","params","id","queryParams","add","get","subscribe","vm","toString","message","setSystemMessage","valid","getHttpObservable","msg","isSuccessful","navigate","validateForm","ngOnDestroy","unsubscribe","ɵɵdirectiveInject","ActivatedRoute","SystemMessageService","SecurityService","Router","HttpClient","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵtemplate","ChangePasswordComponent_form_7_Template","ChangePasswordComponent_div_8_Template","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","row_r3","id","ɵɵsanitizeUrl","ɵɵtextInterpolate1","recallNumber","productDescription","length","slice","openFdaProductNdc","includes","substring","indexOf","codeInfo","ɵɵtextInterpolate","recallInitiationDateStr","ɵɵlistener","$event","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","onScroll","ɵɵrepeaterCreate","RecallsWidgetComponent_Conditional_5_Conditional_1_For_15_Template","_forTrack0","ɵɵrepeater","filteredRecalls","_r4","showMore","ɵɵtemplate","RecallsWidgetComponent_Conditional_5_Conditional_1_Template","RecallsWidgetComponent_Conditional_5_Conditional_2_Template","RecallsWidgetComponent_Conditional_5_Conditional_3_Template","ɵɵconditional","hasMoreRecalls","navService","isMobile","RecallsWidgetComponent","recalls","signal","recalls$","toObservable","inject","NavigationService","http","HttpClient","toastr","ToastrService","sec","SecurityService","displayLimit","isScrolledToBottom","loading","hasRecalls","dataSource","hasNdcModule","recallList","toSignal","initialValue","computed","constructor","ngOnInit","set","hasModuleAccess","BusinessAreaEnum","NDC","setMinRole","PermissionRole","User","loadRecalls","ngAfterViewInit","get","subscribe","next","lst","error","positionClass","timeOut","console","update","current","event","element","target","atBottom","Math","abs","scrollHeight","scrollTop","clientHeight","selectors","decls","vars","consts","template","rf","ctx","RecallsWidgetComponent_Conditional_4_Template","RecallsWidgetComponent_Conditional_5_Template","NgbTooltip","styles","ɵɵelement","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate2","row_r2","startDateStr","endDateStr","ɵɵlistener","ɵɵrestoreView","_r1","$implicit","ctx_r2","ɵɵnextContext","ɵɵresetView","dismiss","ɵɵtemplate","DashboardComponent_Conditional_0_For_2_Conditional_8_Template","ɵɵproperty","notificationClassCss","ɵɵtextInterpolate","title","message","ɵɵconditional","showWindow","DashboardComponent_Conditional_0_Conditional_0_Template","ɵɵrepeaterCreate","DashboardComponent_Conditional_0_For_2_Template","ɵɵrepeaterTrackByIdentity","isMobile","ɵɵrepeater","sysNotifsList","DashboardComponent","widgetsContainer","renderer","inject","Renderer2","sec","SecurityService","httpClient","HttpClient","defaultClasses","MAX_PER_ROW","widgets","constructor","setTitle","onResize","GlobalService","setIsMobile","window","innerWidth","ngOnInit","setWidgets","loadComponents","checkForSystemNotification","component","DashboardNotificationsWidgetComponent","classes","hasModuleAccess","BusinessAreaEnum","NDC","setMinRole","PermissionRole","User","push","RecallsWidgetComponent","getClasses","totalWidgets","length","widgetSize","Math","floor","remainder","missingSpots","firstSize","forEach","widget","index","__async","ref","createComponent","className","addClass","location","nativeElement","get","subscribe","lst","dismissed","JSON","parse","localStorage","getItem","ids","x","id","idsNotDismissed","filter","o","includes","i","notification","startDate","endDate","vm","obj","setItem","stringify","preset","ɵɵdirectiveInject","Title","selectors","viewQuery","rf","ctx","ViewContainerRef","ɵɵresolveWindow","DashboardComponent_Conditional_0_Template","Error404Component","title","constructor","setTitle","ngOnInit","ɵɵdirectiveInject","Title","selectors","standalone","decls","vars","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","getTitle","ForgotPasswordVm","email","isWelcomeEmail","isHeros","isSendToAll","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","GetModel","fg","ForgotPasswordVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","onSubmit","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵproperty","forgotPasswordForm","ForgotPasswordComponent","ms","footerEl","ForgotPasswordVm","Form","forgotPasswordSub","Subscription","checkEmail","constructor","ngAfterViewInit","footContainer","document","querySelector","insertBefore","nativeElement","firstChild","valid","add","getHttpObservable","subscribe","msg","isSuccessful","validateForm","ngOnDestroy","unsubscribe","parentNode","removeChild","ɵɵdirectiveInject","SystemMessageService","selectors","viewQuery","rf","ctx","ɵɵtemplate","ForgotPasswordComponent_form_4_Template","ForgotPasswordComponent_div_5_Template","ɵɵadvance","HelpDeskFeedbackVm","id","helpDeskTicketId","helpDeskTicketSubject","helpDeskTicketFacility","rating","comment","userConcurrencyStamp","FormData","getFormData","validators","UntypedFormControl","Validators","required","min","max","maxLength","Form","UntypedFormGroup","GetModel","fg","HelpDeskFeedbackVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","formGroup","controls","helpDeskTicketId","value","helpDeskTicketSubject","helpDeskTicketFacility","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","addStars","ɵɵtemplate","HelpDeskTicketFeedbackComponent_div_0_form_8_div_22_Template","saveForm","handleReset","handleReady","handleLoad","$event","handleSuccess","ɵɵproperty","starRating","faIconName","faStar","ɵɵtextInterpolate1","comment","length","isError","siteKey","HelpDeskTicketFeedbackComponent_div_0_p_6_Template","HelpDeskTicketFeedbackComponent_div_0_div_7_Template","HelpDeskTicketFeedbackComponent_div_0_form_8_Template","HelpDeskTicketFeedbackComponent_div_0_div_9_Template","rating","HelpDeskTicketFeedbackComponent","activatedRoute","httpClient","sm","cdr","captchaElem","environment","captchaIsLoaded","captchaSuccess","captchaResponse","captchaIsReady","recaptcha","execute","HelpDeskFeedbackVm","Form","stars","document","getElementsByClassName","constructor","ngOnInit","getFeedback","addControl","UntypedFormControl","Validators","required","get","snapshot","params","id","guid","subscribe","vm","patchValue","setValue","post","getRawValue","msg","setSystemMessage","message","messageClass","isSuccessful","starNum","removeStars","i","classList","add","remove","undefined","detectChanges","setInterval","ngOnDestroy","clearInterval","ɵɵdirectiveInject","ActivatedRoute","HttpClient","SystemMessageService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","HelpDeskTicketFeedbackComponent_div_0_Template","PfsHelpTicketVm","fullName","email","phoneNumber","facilityId","facilityName","categoryId","categoryName","priorityId","priorityName","subject","description","honeyPot","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","pattern","Form","UntypedFormGroup","GetModel","fg","PfsHelpTicketVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","onSubmit","ɵɵelement","ɵɵtext","ɵɵelementEnd","sanitize","model","email","facilityChange","categoryChange","priorityChange","handleReset","handleReady","handleLoad","$event","handleSuccess","ɵɵproperty","formGroup","ɵɵadvance","ɵɵtextInterpolate1","infoText","facilityDataSource","categories","priorityDataSource","returnUrl","ɵɵsanitizeUrl","emptyCaptcha","siteKey","PublicHelpTicketComponent","ms","cdr","route","httpClient","facilitySelect","categorySelect","prioritySelect","captchaElem","PfsHelpTicketVm","Form","GetModel","captchaIsLoaded","captchaSuccess","captchaIsReady","isSuccess","isRegister","recaptcha","execute","honeypotControl","captchaResponse","facilityName","categoryName","priorityName","headerStr","environment","categoryDataSource","constructor","ngOnInit","queryParams","snapshot","controls","categoryId","disable","setEnv","get","subscribe","items","find","o","text","value","priorityId","setUpHoneyPot","addControl","UntypedFormControl","Validators","required","ngAfterViewInit","detectChanges","setValidators","requireFalse","updateValueAndValidity","control","honeyPot","undefined","setInterval","getResponse","isPfs","pcgSettings","mode","strTempString","trim","replace","setValue","valid","getHttpObservable","msg","isSuccessful","reset","validateForm","ngOnDestroy","clearInterval","ɵɵdirectiveInject","SystemMessageService","ChangeDetectorRef","ActivatedRoute","HttpClient","selectors","viewQuery","rf","ctx","ɵɵtemplate","PublicHelpTicketComponent_form_8_Template","PublicHelpTicketComponent_div_9_Template","ɵɵtextInterpolate","AgencyListByAgencyVm","agencyId","agencyName","agencyAbbreviation","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","AgencyListByAgencyVmFromFg","constructor","get","value","val","setValue","EditPublicApplicationVm","agency","application","confirmedMessages","FormData","getFormData","validators","EditAgencyVm","Form","EditApplicantVm","UntypedFormControl","UntypedFormGroup","GetModel","fg","EditPublicApplicationVmFromFg","constructor","EditAgencyVmFromFg","get","val","setValue","EditApplicantVmFromFg","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵtemplate","HerosApplicationComponent_div_6_span_6_Template","HerosApplicationComponent_div_6_span_7_Template","ɵɵadvance","ɵɵproperty","ctx_r0","canSubmit","isSubmitted","ɵɵlistener","ɵɵrestoreView","_r4","ɵɵnextContext","agency_r3","ɵɵreference","ɵɵresetView","checkAgency","value","_r2","HerosApplicationComponent_div_7_button_11_Template","handleAgencyReset","handleAgencyReady","handleAgencyLoad","$event","handleAgencySuccess","emptyCaptcha","agencyFormGroup","siteKey","ɵɵtextInterpolate","columns","get","displayName","row_r6","agencyName","row_r7","agencyAbbreviation","ɵɵelementContainerStart","HerosApplicationComponent_div_8_th_4_Template","HerosApplicationComponent_div_8_td_5_Template","HerosApplicationComponent_div_8_th_7_Template","HerosApplicationComponent_div_8_td_8_Template","_r5","showAgencyList","showInformativeContent","showAgencyInSystem","newAgencyForm","backBtn","filters","ɵɵpureFunction1","_c3","ɵɵpureFunction0","_c2","_r8","i_r13","order_r12","optionName","ɵɵtextInterpolate1","dosage","_r14","acceptOath","oathTimeStamp","_r9","website_r10","savePublicApplicationClick","updateShippingInfo","useAgencyInfoForShipInfo","isSameAddress_r11","checked","HerosApplicationComponent_div_10_form_1_div_120_Template","HerosApplicationComponent_div_10_form_1_button_129_Template","HerosApplicationComponent_div_10_form_1_p_130_Template","handleReset","handleReady","handleLoad","handleSuccess","formGroup","ɵɵpipeBind2","controls","mmcapAnticipatedDate","countyApi","showButtonOath","oathAccepted","HerosApplicationComponent_div_10_form_1_Template","HerosApplicationComponent","httpClient","ms","cdr","modalService","environment","agencyCaptcha","UntypedFormGroup","agencyCaptchaIsLoaded","agencyCaptchaSuccess","agencyCaptchaResponse","agencyCaptchaIsReady","agencyExecute","captchaElem","captchaIsLoaded","captchaSuccess","captchaResponse","captchaIsReady","execute","recaptcha","EditPublicApplicationVm","Form","oldShippingInfo","subscriptions","Subscription","agency","showForm","showAgencyInput","canManualEntry","table","AgencyListByAgencyVm","ColumnDefs","constructor","ngOnInit","getPublicApplication","addControl","UntypedFormControl","Validators","required","add","encodeURIComponent","subscribe","agencyInSystem","setValue","setSystemMessage","clearInterval","removeValidators","model","application","roundId","setTimeout","setModel","addOrderOptionFormGroups","orderOptions","length","patchValue","isPublicSubmit","applicationStatus","count","i","push","OrderOptionVm","saveShippingInfo","fromCheckbox","shippingInformation","disable","agencySmartyAddress","enable","reset","markAsUntouched","today","Date","oathAcceptedNew","oathDateTimeNew","toLocaleDateString","savePublicApplication","honeypot","validateAddress","valid","setFein","getHttpObservable","msg","isSuccessful","validateForm","modal","open","ConfirmationModalComponent","warningMessage","componentInstance","modalRef","confirmationMessage","result","then","emittedValue","catch","err","formattedAddress","shipping","FormatHelperService","GetIsNullyOrWhitespace","undefined","detectChanges","setInterval","getCurrentResponse","ɵɵdirectiveInject","HttpClient","SystemMessageService","ChangeDetectorRef","NgbModal","selectors","viewQuery","rf","ctx","TableComponent","HerosApplicationComponent_div_6_Template","HerosApplicationComponent_div_7_Template","HerosApplicationComponent_div_8_Template","HerosApplicationComponent_div_9_Template","HerosApplicationComponent_div_10_Template","HerosApplicationComponent_div_11_Template","HomeDeliveryPublicVm","rxNumber1","rxNumber2","rxNumber3","rxNumber4","rxNumber5","rxNumber6","phoneNumber","rxNumbers","rxRefills","honeyPot","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","UntypedFormArray","Form","UntypedFormGroup","GetModel","fg","HomeDeliveryPublicVmFromFg","constructor","get","value","val","setValue","RxToFillVm","rxNumber","refillsRemaining","errorMessage","FormData","getFormData","validators","UntypedFormControl","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","RxToFillVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵadvance","ɵɵtextInterpolate","row_r1","rxNumber","refillsRemaining","HomeDeliverySubmitModalComponent","formatHelper","http","ms","table","modal","model","parentFormGroup","submitSuccessful","submitSuccessfulChange","EventEmitter","columns","RxToFillVm","ColumnDefs","subscriptions","Subscription","tableData","constructor","ngOnInit","rxRefills","submitRxs","add","post","subscribe","o","setSystemMessage","message","messageClass","emit","isSuccessful","dismiss","closeModal","ɵɵdirectiveInject","FormatHelperService","HttpClient","SystemMessageService","selectors","viewQuery","rf","ctx","TableComponent","ɵɵlistener","ɵɵtemplate","HomeDeliverySubmitModalComponent_tbody_18_Template","get","displayName","ɵɵproperty","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵtwoWayListener","$event","ɵɵrestoreView","_r3","ctx_r3","ɵɵnextContext","i0","ɵɵtwoWayBindingSet","submitSuccessful","ɵɵresetView","ɵɵproperty","modal_r5","modalModel","ɵɵtwoWayProperty","RxInputType","HomeDeliveryComponent","ms","modalService","formatHelper","cdr","captchaElem","siteKey","environment","captchaIsLoaded","captchaSuccess","captchaResponse","captchaIsReady","recaptcha","execute","formGroup","HomeDeliveryPublicVm","Form","subscriptions","Subscription","rxRefillValidation","rxInputType","honeypotControl","rx2IsDupe","rx3IsDupe","rx4IsDupe","rx5IsDupe","rx6IsDupe","constructor","ngOnInit","setUpHoneyPot","addControl","UntypedFormControl","Validators","required","setUpAdditionalValidators","ngAfterViewInit","detectChanges","openHomeDeliverySubmitModal","modal","model","open","animation","beforeDismiss","resetForm","highlightErrors","msg","minWidth","settings","centeredStyles","left","rxRefills","controls","setValidators","requireFalse","updateValueAndValidity","rxNumber1","addValidators","requireRxesToBeDifferent","rxNumber2","rxNumber3","rxNumber4","rxNumber5","rxNumber6","resetValidation","closeSystemMessage","setControlClassValidation","rxIndex","rxFillList","classes","rx","value","rxInput","filter","i","Number","substr","rxNumber","Rx1","isDupeRxNums","findWhichRxInputIsDupe","resetDupeError","GetIsNully","GetIsNullyOrWhitespace","errorMessage","rx1","rx2","rx3","rx4","rx5","rx6","rxList","forEach","el","idx","hideDupeError","item","length","showDupeError","x","Set","size","control","honeyPot","duplicateValues","handleReset","undefined","handleReady","setInterval","handleLoad","handleSuccess","ngOnDestroy","clearInterval","ɵɵdirectiveInject","SystemMessageService","NgbModal","FormatHelperService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","ɵɵelement","ɵɵlistener","_r1","homeDeliverySubmitModal_r2","ɵɵreference","ɵɵtemplate","HomeDeliveryComponent_span_24_Template","HomeDeliveryComponent_span_29_Template","HomeDeliveryComponent_span_34_Template","HomeDeliveryComponent_span_39_Template","HomeDeliveryComponent_span_44_Template","HomeDeliveryComponent_ng_template_84_Template","ɵɵtemplateRefExtractor","ɵɵadvance","Rx2","Rx3","Rx4","Rx5","Rx6","HomeComponent","sec","router","title","constructor","setTitle","ngOnInit","isLoggedOn","navigate","ɵɵdirectiveInject","SecurityService","Router","Title","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","HomerRegisterVm","id","pfsUserId","firstName","lastName","userName","email","phoneNumber","pfsFacilityIds","facilityIds","organizationIds","honeyPot","alreadyExists","errorMessage","fromAccounts","fromIcq","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","pattern","Form","UntypedFormGroup","GetModel","fg","HomerRegisterVmFromFg","constructor","get","value","val","setValue","HomerRegisterService","httpClient","constructor","getUser","guid","get","ɵɵinject","HttpClient","factory","ɵfac","providedIn","ɵɵelementContainerStart","ɵɵelementStart","ɵɵtext","ɵɵelement","ɵɵelementEnd","ɵɵtemplate","HomerRegisterComponent_12_ng_template_0_Template","ɵɵtemplateRefExtractor","ɵɵproperty","ctx_r1","emptyCaptcha","ɵɵadvance","ɵɵtextInterpolate1","errorString","loginUrl","ɵɵsanitizeUrl","ɵɵtextInterpolate","ɵɵlistener","ɵɵrestoreView","_r1","ɵɵnextContext","ɵɵresetView","onSubmit","HomerRegisterComponent_form_15_button_25_Template","HomerRegisterComponent_form_15_div_27_Template","HomerRegisterComponent_form_15_div_28_Template","handleReset","handleReady","handleLoad","$event","handleSuccess","formGroup","ɵɵtextInterpolate2","model","firstName","lastName","email","phoneNumber","alreadyExists","isSuccess","isError","siteKey","HomerRegisterComponent","ms","cdr","router","route","homerRegisterService","formatHelperService","captchaElem","environment","captchaIsLoaded","captchaSuccess","captchaResponse","captchaIsReady","recaptcha","execute","honeypotControl","HomerRegisterVm","Form","GetModel","model$","fromAccounts","fromIcq","userGuid","constructor","title","setTitle","ngOnInit","setEnv","setUpHoneyPot","queryParams","subscribe","params","GetIsNullyOrWhitespace","guid","getUser","pipe","tap","vm","setValue","addControl","UntypedFormControl","Validators","required","errorMessage","controls","ngAfterViewInit","detectChanges","pcgSettings","mode","getHttpObservable","msg","isSuccessful","message","setValidators","requireFalse","updateValueAndValidity","control","value","honeyPot","undefined","setInterval","getResponse","ngOnDestroy","clearInterval","ɵɵdirectiveInject","SystemMessageService","ChangeDetectorRef","Router","ActivatedRoute","HomerRegisterService","FormatHelperService","Title","selectors","viewQuery","rf","ctx","HomerRegisterComponent_ng_container_11_Template","HomerRegisterComponent_12_Template","HomerRegisterComponent_ng_container_13_Template","HomerRegisterComponent_form_15_Template","ɵɵpipeBind1","IcqFeedbackVm","id","icqReviewId","rating","comment","facility","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","GetModel","fg","IcqFeedbackVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelement","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","formGroup","controls","id","value","facility","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","addStars","ɵɵtemplate","IcqFeedbackComponent_Conditional_0_Conditional_8_Conditional_22_Template","saveForm","handleReset","handleReady","handleLoad","$event","handleSuccess","ɵɵproperty","starRating","faIconName","faStar","ɵɵtextInterpolate1","comment","length","ɵɵconditional","isError","siteKey","IcqFeedbackComponent_Conditional_0_Conditional_6_Template","IcqFeedbackComponent_Conditional_0_Conditional_7_Template","IcqFeedbackComponent_Conditional_0_Conditional_8_Template","IcqFeedbackComponent_Conditional_0_Conditional_9_Template","rating","IcqFeedbackComponent","cdr","http","route","sm","captchaElem","environment","captchaIsLoaded","captchaSuccess","captchaResponse","captchaIsReady","recaptcha","execute","IcqFeedbackVm","Form","stars","document","getElementsByClassName","constructor","ngOnInit","getFeedback","addControl","UntypedFormControl","Validators","required","get","snapshot","params","guid","subscribe","msg","patchValue","model","starNum","removeStars","i","classList","add","remove","setValue","post","getRawValue","isSuccessful","setSystemMessage","message","messageClass","undefined","detectChanges","setInterval","ɵɵdirectiveInject","ChangeDetectorRef","HttpClient","ActivatedRoute","SystemMessageService","selectors","viewQuery","rf","ctx","IcqFeedbackComponent_Conditional_0_Template","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵtext","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","model","scheduleDateTimeStr","ɵɵtextInterpolate5","facilityName","facilityStreetAddress","facilityCity","facilityStateAbr","facilityZip","ɵɵtemplate","IcqSchedulingComponent_Conditional_4_Conditional_1_Template","IcqSchedulingComponent_Conditional_4_Conditional_2_Template","ɵɵconditional","approve","IcqSchedulingComponent","activatedRoute","httpClient","ms","icqReviewId","userId","isMobile","scheduleDate","isRescheduled","constructor","ngOnInit","GlobalService","setIsMobile","window","innerWidth","Number","snapshot","params","Boolean","JSON","parse","FormatHelperService","GetIsNullyOrWhitespace","queryParams","getProposedSchedule","get","subscribe","vm","approveOrDeclineSchedule","post","sm","isSuccessful","setSystemMessage","message","messageClass","ɵɵdirectiveInject","ActivatedRoute","HttpClient","SystemMessageService","selectors","standalone","decls","vars","consts","template","rf","ctx","IcqSchedulingComponent_Conditional_2_Template","IcqSchedulingComponent_Conditional_3_Template","IcqSchedulingComponent_Conditional_4_Template","LoginVm","userName","password","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","GetModel","fg","LoginVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","errorString","ɵɵlistener","ɵɵrestoreView","_r2","ɵɵnextContext","ɵɵresetView","onSubmit","ɵɵelement","switchSso","ɵɵproperty","loginForm","isUsingSsoLogin","_r3","ssoLogin","ɵɵtwoWayListener","$event","i0","ɵɵtwoWayBindingSet","ssoEmail","ɵɵtwoWayProperty","_r4","fidoMfa","fingerprintMfa","faUsbDrive","faFingerprint","LoginComponent","route","ms","sec","router","modalService","webAuthn","fingerprint","httpClient","gs","gvs","myForm","footerEl","LoginVm","Form","user","userId","showMfa","showInactiveMessage","isError","isOnPrem","ssoCode","constructor","title","setTitle","ngOnInit","getUser","loginRedirect","snapshot","queryParams","useSso","document","cookie","checkIfRedirectedFromInactivity","errorMessage","setSystemMessage","decodeURIComponent","userIdFromSso","getUserObjAndLogin","ngAfterViewInit","footContainer","querySelector","insertBefore","nativeElement","firstChild","valid","setLocalStorage","Date","post","getRawValue","subscribe","msg","isSuccessful","doLogin","message","validateForm","val","value","ownerDocument","activeElement","blur","open","MultiFactorAuthModalComponent","animation","doTwoFactorAuth","doFingerprintIdentification","reset","setSecurity","token","console","log","baseUrl","getElementsByTagName","href","redirectUrl","queryParamMap","get","sessionStorage","getItem","localStorage","isNavFixed","set","needToResetPin","window","location","id","detectMultiRedirect","formattedUrl","formatMultiRedirect","navigateByUrl","navigate","replace","startsWith","removeItem","badUrlSubStr","FormatHelperService","GetIsNully","indexOf","decodedUrl","nestedRedirectMatch","match","isFidoCompatible","dismissAll","userName","password","getAssertionOptions","makeAssertionOptions","__async","FidoService","fixAssertionOptions","credential","navigator","credentials","publicKey","verifyAssertion","e","response","loginFingerprintMfa","inactive","encodeURIComponent","sm","Number","setItem","entraIdentifierUrl","entraLoginUrl","ngOnDestroy","parentNode","removeChild","ɵɵdirectiveInject","ActivatedRoute","SystemMessageService","SecurityService","Router","NgbModal","WebAuthnService","FingerprintService","HttpClient","Title","GlobalService","GlobalVariablesService","selectors","viewQuery","rf","ctx","ɵɵtemplate","LoginComponent_Conditional_2_Template","LoginComponent_Conditional_3_Template","LoginComponent_Conditional_4_Template","LoginComponent_Conditional_5_Template","LoginComponent_Conditional_6_Template","ɵɵconditional","PfsRegisterVm","firstName","lastName","email","confirmEmail","phoneNumber","facilityIds","honeyPot","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","pattern","Form","UntypedFormGroup","GetModel","fg","PfsRegisterVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r1","ctx_r1","ɵɵnextContext","ɵɵresetView","onSubmit","ɵɵtext","ɵɵelementEnd","ɵɵelement","sanitize","model","email","confirmEmail","handleReset","handleReady","handleLoad","$event","handleSuccess","ɵɵproperty","formGroup","ɵɵadvance","ɵɵsanitizeUrl","controls","facilityIds","value","ɵɵclassProp","emailMatch","emptyCaptcha","pfsUrl","siteKey","PfsRegisterComponent","ms","cdr","captchaElem","environment","captchaIsLoaded","captchaSuccess","captchaResponse","captchaIsReady","recaptcha","execute","honeypotControl","subscriptions","Subscription","PfsRegisterVm","Form","GetModel","isSuccess","constructor","ngOnInit","setEnv","setUpHoneyPot","addControl","UntypedFormControl","Validators","required","ngAfterViewInit","detectChanges","setValidators","requireFalse","updateValueAndValidity","control","honeyPot","undefined","setInterval","getResponse","pcgSettings","mode","isConfirm","strTempString","trim","replace","setValue","valid","add","getHttpObservable","subscribe","msg","isSuccessful","reset","validateForm","ngOnDestroy","unsubscribe","clearInterval","ɵɵdirectiveInject","SystemMessageService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","ɵɵtemplate","PfsRegisterComponent_form_17_Template","PfsRegisterComponent_div_18_Template","DonorRegistrationVm","honeyPot","donorId","name","phoneNumber","address","addressId","smartyAddress","smartyAddressString","county","countyId","emailAddress","contactName","contactPhone","signature","dateSigned","isAttested","facilityType","facilityTypeId","comments","statusId","deniedReasonId","FormData","getFormData","validators","UntypedFormControl","Validators","required","pattern","email","maxLength","Form","UntypedFormGroup","GetModel","fg","DonorRegistrationVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r1","emptyCaptcha","DonorRegistrationComponent","router","httpClient","ms","cdr","captchaElem","siteKey","environment","captchaIsLoaded","captchaSuccess","captchaResponse","captchaIsReady","recaptcha","execute","honeypotControl","id","formGroup","DonorRegistrationVm","Form","subscriptions","Subscription","model","currentDate","Date","canManualEntry","isSuccess","disableSave","phoneValidation","pattern","constructor","title","setTitle","ngOnInit","isNaN","setUpHoneyPot","addControl","UntypedFormControl","Validators","required","get","patchValue","toLocaleString","ngAfterViewInit","detectChanges","controls","setValidators","requireFalse","updateValueAndValidity","control","value","honeyPot","handleReset","undefined","handleReady","setInterval","getResponse","handleLoad","handleSuccess","ngOnDestroy","unsubscribe","clearInterval","saveDonor","valid","add","getHttpObservable","subscribe","msg","isSuccessful","disableForm","validateForm","disable","updateCounty","address","smartyAddress","countyName","countyId","document","getElementById","focus","ɵɵdirectiveInject","Router","HttpClient","Title","SystemMessageService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","ɵɵelement","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵtemplate","DonorRegistrationComponent_div_51_Template","DonorRegistrationComponent_pcg_fixed_buttons_52_Template","$event","RepositoryRegistrationVm","honeyPot","repositoryId","name","phoneNumber","licenseNumber","websiteAddress","licensingAgencyID","licenseOfIssuingAgency","address","addressId","smartyAddress","countyId","county","zip","emailAddress","pharmacistName","pharmacistContactPhone","facilityType","facilityTypeId","isAttested","pharmacistSignature","dateSigned","comments","statusId","deniedReasonId","FormData","getFormData","validators","UntypedFormControl","Validators","required","maxLength","pattern","email","Form","UntypedFormGroup","GetModel","fg","RepositoryRegistrationVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵproperty","ctx_r1","disableSave","RepositoryRegisterComponent","route","httpClient","ms","cdr","captchaElem","siteKey","environment","captchaIsLoaded","captchaSuccess","captchaResponse","captchaIsReady","recaptcha","execute","emptyCaptcha","honeypotControl","id","formGroup","RepositoryRegistrationVm","Form","model","GetModel","model$","subscriptions","Subscription","currentDate","Date","canManualEntry","isSuccess","phoneValidation","pattern","constructor","title","setTitle","ngOnInit","setUpHoneyPot","addControl","FormControl","Validators","required","get","patchValue","toLocaleString","ngAfterViewInit","detectChanges","controls","setValidators","requireFalse","updateValueAndValidity","control","value","honeyPot","handleReset","undefined","handleReady","setInterval","getResponse","handleLoad","handleSuccess","ngOnDestroy","unsubscribe","clearInterval","getRepository","add","paramMap","subscribe","map","parseInt","pipe","tap","saveRepository","valid","getHttpObservable","msg","isSuccessful","disableForm","validateForm","disable","updateCounty","address","smartyAddress","countyName","countyId","document","getElementById","focus","ɵɵdirectiveInject","ActivatedRoute","HttpClient","Title","SystemMessageService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","ɵɵelement","ɵɵlistener","i0","ɵɵrestoreView","_r1","ɵɵresetView","ɵɵtemplate","RepositoryRegisterComponent_div_58_Template","RepositoryRegisterComponent_pcg_fixed_buttons_59_Template","$event","TechSpecComponent","title","constructor","ngOnInit","setTitle","ngOnDestroy","ɵɵdirectiveInject","Title","selectors","standalone","decls","vars","consts","template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ReleaseNotesVm","versionNumber","goLiveDateString","goLiveDate","releaseNotes","FormData","getFormData","validators","UntypedFormControl","Validators","required","Form","UntypedFormGroup","ColumnDefs","Map","GetModel","fg","ReleaseNotesVmFromFg","constructor","get","value","val","setValue","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","ctx_r0","columns","get","displayName","row_r2","versionNumber","row_r3","goLiveDateString","ɵɵelement","ɵɵproperty","row_r4","releaseNotes","ɵɵsanitizeHtml","WebReleaseNotesComponent","title","table","ReleaseNotesVm","ColumnDefs","constructor","ngOnInit","setTitle","ɵɵdirectiveInject","Title","selectors","viewQuery","rf","ctx","TableComponent","ɵɵelementContainerStart","ɵɵtemplate","WebReleaseNotesComponent_th_5_Template","WebReleaseNotesComponent_td_6_Template","WebReleaseNotesComponent_th_8_Template","WebReleaseNotesComponent_td_9_Template","WebReleaseNotesComponent_th_11_Template","WebReleaseNotesComponent_td_12_Template","getTitle","ɵɵpureFunction1","_c1","ɵɵpureFunction0","_c0","routes","path","component","HomeComponent","pathMatch","DashboardComponent","canActivate","AuthGuard","LoginComponent","PfsRegisterComponent","HomerRegisterComponent","PublicHelpTicketComponent","HelpDeskTicketFeedbackComponent","HerosApplicationComponent","HomeDeliveryComponent","WebReleaseNotesComponent","HolidaysComponent","TechSpecComponent","EditUserComponent","UserOrganizationsComponent","UserFacilitiesComponent","UserMultiFactorAuthenticationComponent","UserNotificationsComponent","UserModuleAccessComponent","UserLoginHistoryComponent","UserAuditHistoryComponent","UserRxConnectsSettingsComponent","ForgotPasswordComponent","ChangePasswordComponent","CiInvoicePdfComponent","SilkierHistoryComponent","CiRepackOrderShortOverPrintableComponent","KnowledgeBaseComponent","data","moduleAccess","modules","SecurityService","anyArea","permissionRoles","setMinRole","PermissionRole","User","RepositoryRegisterComponent","DonorRegistrationComponent","PatientApplicationComponent","BusinessAreaEnum","RxConnects","Pharmacist","canLoad","loadChildren","then","m","HelpDeskModule","ErrorReportModule","AdministrationModule","Admin","PcgModule","HEROS","HEROSModule","NDC","RedbookModule","NdcDirectoryModule","ReportsPharmacyModule","Inventory","PharmLogModule","Technician","FulfillmentModule","CI","InventoryModule","ReportingModule","MetabolicFormulaModule","CiRepackModule","IcqModule","SharedModule","RxConnectsModule","InventoriesModule","FormularyInventoryModule","BAModule","IcqSchedulingComponent","IcqFeedbackComponent","redirectTo","CoreRouting","declarations","Error404Component","imports","RouterModule","forRoot","scrollPositionRestoration","preloadingStrategy","QuicklinkStrategy","anchorScrolling","EditUserModule","exports","providers","HttpClientInterceptor","ms","spinner","sec","http","router","modal","reqCount","constructor","intercept","req","next","silent","params","has","setSpinner","origUrl","url","indexOf","document","getElementsByTagName","href","replace","startsWith","timeZone","Intl","DateTimeFormat","resolvedOptions","undefined","includes","encodeURIComponent","Date","getTimezoneOffset","toISOString","newReq","headers","body","FormData","clone","set","authToken","localStorage","getItem","JSON","parse","setLocalStorage","handle","pipe","catchError","handleError","bind","finalize","err","status","dismissAll","setSecurity","redirectUrl","window","location","navigateByUrl","getUser","setSystemMessage","get","subscribe","model","getToken","user","navigate","error","throwError","hideSpinner","showSpinner","ɵɵinject","SystemMessageService","SpinnerService","SecurityService","HttpClient","Router","NgbModal","factory","ɵfac","LayoutModule","CommonModule","RouterModule","SharedModule","MatProgressBarModule","MatProgressSpinnerModule","PushNotificationModule","CommonModule","SseNotificationModule","CommonModule","FontAwesomeModule","SystemMessageModule","CommonModule","BrowserAnimationsModule","getToken","localStorage","getItem","CoreModule","CoreRouting","providers","SystemMessageService","SpinnerService","SecurityService","WebAuthnService","InactivityTimeoutService","CollapsibleTableService","NavigationService","FilterSaveService","SendgridApiService","provide","NgbDateParserFormatter","useClass","NgbDateNativeParserFormatter","NgbDateNativeAdapter","HTTP_INTERCEPTORS","HttpClientInterceptor","multi","imports","HttpClientModule","BrowserModule","SystemMessageModule","PushNotificationModule","SseNotificationModule","LayoutModule","SharedModule","JwtModule","forRoot","config","tokenGetter","allowedDomains","window","location","host","NgxCaptchaModule","DashboardNotificationsWidgetComponent","RouterModule","CustomReuseStrategy","storedRoutes","shouldDetach","route","data","reuseRoute","store","handle","id","createIdentifier","length","snapshot","shouldAttach","storedObject","routeConfig","paramsMatch","compareObjects","params","queryParamsMatch","queryParams","retrieve","shouldReuseRoute","future","curr","segments","pathFromRoot","map","r","url","subpaths","concat","segment","path","join","base","compare","baseProperty","__spreadValues","hasOwnProperty","toString","AppModule","bootstrap","AppComponent","provide","ErrorHandler","useClass","DatadogErrorHandler","SwRegistrationOptions","useFactory","enabled","RouteReuseStrategy","CustomReuseStrategy","imports","BrowserModule","CoreModule","QuicklinkModule","ToastrModule","forRoot","positionClass","BrowserAnimationsModule","ServiceWorkerModule","register","registrationStrategy","DashboardNotificationsWidgetComponent","MatProgressSpinnerModule","getBaseUrl","document","getElementsByTagName","href","providers","provide","useFactory","deps","environment","production","enableProdMode","jwt","localStorage","getItem","substr","JSON","parse","xhr","XMLHttpRequest","open","setRequestHeader","onload","status","model","response","user","removeItem","setItem","stringify","bootstrapAngular","bootstrapDataDogRum","send","platformBrowser","bootstrapModule","AppModule","catch","err","console","log","datadogRum","init","applicationId","clientToken","site","service","allowedTracingUrls","env","version","sessionSampleRate","sessionReplaySampleRate","trackUserInteractions","trackResources","trackLongTasks","defaultPrivacyLevel","setDatadogUser","ddUser","id","email","name","firstName","lastName","setUser"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39]}