@hmcts/ccd-case-ui-toolkit 7.3.34 → 7.3.35-exui-3995-rc-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -37,7 +37,7 @@ import { PaymentLibModule } from '@hmcts/ccpay-web-component';
|
|
|
37
37
|
import { v4 } from 'uuid';
|
|
38
38
|
import * as i2$1 from '@angular/cdk/overlay';
|
|
39
39
|
import { OverlayModule } from '@angular/cdk/overlay';
|
|
40
|
-
import * as
|
|
40
|
+
import * as i6$1 from '@angular/cdk/tree';
|
|
41
41
|
import { NestedTreeControl, CdkTreeModule } from '@angular/cdk/tree';
|
|
42
42
|
import { cloneDeep } from 'lodash';
|
|
43
43
|
import * as i4$1 from '@angular-material-components/datetime-picker';
|
|
@@ -45,7 +45,7 @@ import { NGX_MAT_DATE_FORMATS, NgxMatDateAdapter, NgxMatDatetimePickerModule, Ng
|
|
|
45
45
|
import { NGX_MAT_MOMENT_DATE_ADAPTER_OPTIONS, NgxMatMomentAdapter } from '@angular-material-components/moment-adapter';
|
|
46
46
|
import * as i5$1 from '@angular/material/legacy-form-field';
|
|
47
47
|
import { MatLegacyFormFieldModule } from '@angular/material/legacy-form-field';
|
|
48
|
-
import * as i6$
|
|
48
|
+
import * as i6$2 from '@angular/material/datepicker';
|
|
49
49
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
50
50
|
import * as i15 from '@angular/material/legacy-input';
|
|
51
51
|
import { MatLegacyInputModule } from '@angular/material/legacy-input';
|
|
@@ -6050,8 +6050,8 @@ class FormValueService {
|
|
|
6050
6050
|
constructor(fieldTypeSanitiser) {
|
|
6051
6051
|
this.fieldTypeSanitiser = fieldTypeSanitiser;
|
|
6052
6052
|
}
|
|
6053
|
-
sanitise(rawValue) {
|
|
6054
|
-
return this.sanitiseObject(rawValue);
|
|
6053
|
+
sanitise(rawValue, isCaseFlagJourney = false) {
|
|
6054
|
+
return this.sanitiseObject(rawValue, isCaseFlagJourney);
|
|
6055
6055
|
}
|
|
6056
6056
|
sanitiseCaseReference(reference) {
|
|
6057
6057
|
// strip non digits
|
|
@@ -6073,7 +6073,7 @@ class FormValueService {
|
|
|
6073
6073
|
sanitiseDynamicLists(caseFields, editForm) {
|
|
6074
6074
|
return this.fieldTypeSanitiser.sanitiseLists(caseFields, editForm.data);
|
|
6075
6075
|
}
|
|
6076
|
-
sanitiseObject(rawObject) {
|
|
6076
|
+
sanitiseObject(rawObject, isCaseFlagJourney = false) {
|
|
6077
6077
|
if (!rawObject) {
|
|
6078
6078
|
return rawObject;
|
|
6079
6079
|
}
|
|
@@ -6087,14 +6087,17 @@ class FormValueService {
|
|
|
6087
6087
|
break;
|
|
6088
6088
|
}
|
|
6089
6089
|
else if ('CaseReference' === key) {
|
|
6090
|
-
sanitisedObject[key] = this.sanitiseValue(this.sanitiseCaseReference(String(rawObject[key])));
|
|
6090
|
+
sanitisedObject[key] = this.sanitiseValue(this.sanitiseCaseReference(String(rawObject[key])), isCaseFlagJourney);
|
|
6091
6091
|
}
|
|
6092
6092
|
else {
|
|
6093
|
-
sanitisedObject[key] = this.sanitiseValue(rawObject[key]);
|
|
6093
|
+
sanitisedObject[key] = this.sanitiseValue(rawObject[key], isCaseFlagJourney);
|
|
6094
6094
|
if (Array.isArray(sanitisedObject[key])) {
|
|
6095
6095
|
// If the 'sanitised' array is empty, whereas the original array had 1 or more items
|
|
6096
6096
|
// delete the property from the sanatised object
|
|
6097
|
-
|
|
6097
|
+
const shouldDeleteField = sanitisedObject[key].length === 0
|
|
6098
|
+
&& rawObject[key].length > 0
|
|
6099
|
+
&& !isCaseFlagJourney;
|
|
6100
|
+
if (shouldDeleteField) {
|
|
6098
6101
|
delete sanitisedObject[key];
|
|
6099
6102
|
}
|
|
6100
6103
|
}
|
|
@@ -6102,13 +6105,13 @@ class FormValueService {
|
|
|
6102
6105
|
}
|
|
6103
6106
|
return sanitisedObject;
|
|
6104
6107
|
}
|
|
6105
|
-
sanitiseArray(rawArray) {
|
|
6108
|
+
sanitiseArray(rawArray, isCaseFlagJourney = false) {
|
|
6106
6109
|
if (!rawArray) {
|
|
6107
6110
|
return rawArray;
|
|
6108
6111
|
}
|
|
6109
6112
|
rawArray.forEach(item => {
|
|
6110
6113
|
if (item && item.hasOwnProperty('value')) {
|
|
6111
|
-
item.value = this.sanitiseValue(item.value);
|
|
6114
|
+
item.value = this.sanitiseValue(item.value, isCaseFlagJourney);
|
|
6112
6115
|
}
|
|
6113
6116
|
});
|
|
6114
6117
|
// Filter the array to ensure only truthy values are returned; double-bang operator returns the boolean true/false
|
|
@@ -6118,13 +6121,13 @@ class FormValueService {
|
|
|
6118
6121
|
.filter(item => !!item)
|
|
6119
6122
|
.filter(item => item.hasOwnProperty('value') ? FieldsUtils.containsNonEmptyValues(item.value) : true);
|
|
6120
6123
|
}
|
|
6121
|
-
sanitiseValue(rawValue) {
|
|
6124
|
+
sanitiseValue(rawValue, isCaseFlagJourney = false) {
|
|
6122
6125
|
if (Array.isArray(rawValue)) {
|
|
6123
|
-
return this.sanitiseArray(rawValue);
|
|
6126
|
+
return this.sanitiseArray(rawValue, isCaseFlagJourney);
|
|
6124
6127
|
}
|
|
6125
6128
|
switch (typeof rawValue) {
|
|
6126
6129
|
case 'object':
|
|
6127
|
-
return this.sanitiseObject(rawValue);
|
|
6130
|
+
return this.sanitiseObject(rawValue, isCaseFlagJourney);
|
|
6128
6131
|
case 'string':
|
|
6129
6132
|
return rawValue.trim();
|
|
6130
6133
|
case 'number':
|
|
@@ -7246,6 +7249,8 @@ class DocumentManagementService {
|
|
|
7246
7249
|
static POWERPOINT = 'powerpoint';
|
|
7247
7250
|
static TXT = 'txt';
|
|
7248
7251
|
static RTF = 'rtf';
|
|
7252
|
+
static HTML_MIME_ALLOWLIST = ['text/html'];
|
|
7253
|
+
static HTML_EXTENSION_ALLOWLIST = ['html'];
|
|
7249
7254
|
// This delay has been added to give enough time to the user on the UI to see the info messages on the document upload
|
|
7250
7255
|
// field for cases when uploads are very fast.
|
|
7251
7256
|
static RESPONSE_DELAY = 1000;
|
|
@@ -7278,16 +7283,35 @@ class DocumentManagementService {
|
|
|
7278
7283
|
this.caseTypeId = this.resolveCaseTypeId(caseInfo, currUrl);
|
|
7279
7284
|
}
|
|
7280
7285
|
getMediaViewerInfo(documentFieldValue) {
|
|
7286
|
+
const resolvedBinaryUrl = this.getDocumentBinaryUrl(documentFieldValue);
|
|
7287
|
+
const resolvedContentType = this.getContentType(documentFieldValue);
|
|
7281
7288
|
const mediaViewerInfo = {
|
|
7282
|
-
document_binary_url:
|
|
7289
|
+
document_binary_url: resolvedBinaryUrl,
|
|
7283
7290
|
document_filename: documentFieldValue.document_filename,
|
|
7284
|
-
content_type:
|
|
7291
|
+
content_type: resolvedContentType,
|
|
7285
7292
|
annotation_api_url: this.appConfig.getAnnotationApiUrl(),
|
|
7286
7293
|
case_id: documentFieldValue.id,
|
|
7287
7294
|
case_jurisdiction: documentFieldValue.jurisdiction
|
|
7288
7295
|
};
|
|
7289
7296
|
return JSON.stringify(mediaViewerInfo);
|
|
7290
7297
|
}
|
|
7298
|
+
getDocumentBinaryUrl(documentFieldValue) {
|
|
7299
|
+
if (!documentFieldValue?.document_binary_url) {
|
|
7300
|
+
return '';
|
|
7301
|
+
}
|
|
7302
|
+
return this.transformDocumentUrl(documentFieldValue.document_binary_url);
|
|
7303
|
+
}
|
|
7304
|
+
// keep HTML support explicit to avoid opening arbitrary MIME types directly in a browser tab
|
|
7305
|
+
isHtmlDocument(documentFieldValue) {
|
|
7306
|
+
const rawMimeType = documentFieldValue?.content_type;
|
|
7307
|
+
const mimeType = this.normaliseMimeType(rawMimeType);
|
|
7308
|
+
const isAllowedHtmlMime = DocumentManagementService.HTML_MIME_ALLOWLIST.includes(mimeType);
|
|
7309
|
+
// Some read paths (e.g. documents rendered via complex table fields) do not provide content_type.
|
|
7310
|
+
// For those, allow a narrow extension-based fallback so known .html legacy files can still open in a new tab.
|
|
7311
|
+
const fileExtension = this.getFileExtension(documentFieldValue?.document_filename);
|
|
7312
|
+
const isAllowedHtmlExtension = !mimeType && DocumentManagementService.HTML_EXTENSION_ALLOWLIST.includes(fileExtension);
|
|
7313
|
+
return isAllowedHtmlMime || isAllowedHtmlExtension;
|
|
7314
|
+
}
|
|
7291
7315
|
getContentType(documentFieldValue) {
|
|
7292
7316
|
let fileExtension = '<unknown>';
|
|
7293
7317
|
if (documentFieldValue.document_filename) {
|
|
@@ -7377,6 +7401,22 @@ class DocumentManagementService {
|
|
|
7377
7401
|
const remoteDocumentManagementPattern = new RegExp(this.appConfig.getRemoteDocumentManagementUrl());
|
|
7378
7402
|
return documentBinaryUrl.replace(remoteDocumentManagementPattern, this.getDocStoreUrl());
|
|
7379
7403
|
}
|
|
7404
|
+
normaliseMimeType(contentType) {
|
|
7405
|
+
if (!contentType) {
|
|
7406
|
+
return '';
|
|
7407
|
+
}
|
|
7408
|
+
return contentType.split(';')[0].trim().toLowerCase();
|
|
7409
|
+
}
|
|
7410
|
+
getFileExtension(fileName) {
|
|
7411
|
+
if (!fileName) {
|
|
7412
|
+
return '';
|
|
7413
|
+
}
|
|
7414
|
+
const dotIndex = fileName.lastIndexOf('.');
|
|
7415
|
+
if (dotIndex < 0 || dotIndex === fileName.length - 1) {
|
|
7416
|
+
return '';
|
|
7417
|
+
}
|
|
7418
|
+
return fileName.slice(dotIndex + 1).trim().toLowerCase();
|
|
7419
|
+
}
|
|
7380
7420
|
getDocStoreUrl() {
|
|
7381
7421
|
this.setCaseInfo();
|
|
7382
7422
|
if (this.isDocumentSecureModeEnabled()) {
|
|
@@ -8016,7 +8056,10 @@ class WindowService {
|
|
|
8016
8056
|
return window.sessionStorage.getItem(key);
|
|
8017
8057
|
}
|
|
8018
8058
|
openOnNewTab(url) {
|
|
8019
|
-
window.open(url, '_blank');
|
|
8059
|
+
const openedWindow = window.open(url, '_blank', 'noopener,noreferrer');
|
|
8060
|
+
if (openedWindow) {
|
|
8061
|
+
openedWindow.opener = null;
|
|
8062
|
+
}
|
|
8020
8063
|
}
|
|
8021
8064
|
confirm(message) {
|
|
8022
8065
|
return window.confirm(message);
|
|
@@ -9590,7 +9633,7 @@ class CaseEditComponent {
|
|
|
9590
9633
|
}
|
|
9591
9634
|
generateCaseEventData({ eventTrigger, form }) {
|
|
9592
9635
|
const caseEventData = {
|
|
9593
|
-
data: this.replaceEmptyComplexFieldValues(this.formValueService.sanitise(this.replaceHiddenFormValuesWithOriginalCaseData(form.get('data'), eventTrigger.case_fields))),
|
|
9636
|
+
data: this.replaceEmptyComplexFieldValues(this.formValueService.sanitise(this.replaceHiddenFormValuesWithOriginalCaseData(form.get('data'), eventTrigger.case_fields), this.isCaseFlagSubmission)),
|
|
9594
9637
|
event: form.value.event
|
|
9595
9638
|
};
|
|
9596
9639
|
this.formValueService.clearNonCaseFields(caseEventData.data, eventTrigger.case_fields);
|
|
@@ -13183,6 +13226,7 @@ class CaseFileViewFieldComponent {
|
|
|
13183
13226
|
documentManagementService;
|
|
13184
13227
|
loadingService;
|
|
13185
13228
|
sessionStorageService;
|
|
13229
|
+
windowService;
|
|
13186
13230
|
caseNotifier;
|
|
13187
13231
|
abstractConfig;
|
|
13188
13232
|
static PARAM_CASE_ID = 'cid';
|
|
@@ -13197,13 +13241,14 @@ class CaseFileViewFieldComponent {
|
|
|
13197
13241
|
icp_jurisdictions = [];
|
|
13198
13242
|
icpEnabled = false;
|
|
13199
13243
|
caseId;
|
|
13200
|
-
constructor(elementRef, route, caseFileViewService, documentManagementService, loadingService, sessionStorageService, caseNotifier, abstractConfig) {
|
|
13244
|
+
constructor(elementRef, route, caseFileViewService, documentManagementService, loadingService, sessionStorageService, windowService, caseNotifier, abstractConfig) {
|
|
13201
13245
|
this.elementRef = elementRef;
|
|
13202
13246
|
this.route = route;
|
|
13203
13247
|
this.caseFileViewService = caseFileViewService;
|
|
13204
13248
|
this.documentManagementService = documentManagementService;
|
|
13205
13249
|
this.loadingService = loadingService;
|
|
13206
13250
|
this.sessionStorageService = sessionStorageService;
|
|
13251
|
+
this.windowService = windowService;
|
|
13207
13252
|
this.caseNotifier = caseNotifier;
|
|
13208
13253
|
this.abstractConfig = abstractConfig;
|
|
13209
13254
|
}
|
|
@@ -13248,10 +13293,20 @@ class CaseFileViewFieldComponent {
|
|
|
13248
13293
|
});
|
|
13249
13294
|
}
|
|
13250
13295
|
setMediaViewerFile(document) {
|
|
13251
|
-
const
|
|
13296
|
+
const documentDetails = {
|
|
13252
13297
|
document_binary_url: document.document_binary_url,
|
|
13253
|
-
document_filename: document.document_filename
|
|
13254
|
-
|
|
13298
|
+
document_filename: document.document_filename,
|
|
13299
|
+
content_type: document.content_type
|
|
13300
|
+
};
|
|
13301
|
+
if (this.documentManagementService.isHtmlDocument(documentDetails)) {
|
|
13302
|
+
const documentBinaryUrl = this.documentManagementService.getDocumentBinaryUrl(documentDetails);
|
|
13303
|
+
if (documentBinaryUrl) {
|
|
13304
|
+
this.currentDocument = undefined;
|
|
13305
|
+
this.windowService.openOnNewTab(documentBinaryUrl);
|
|
13306
|
+
return;
|
|
13307
|
+
}
|
|
13308
|
+
}
|
|
13309
|
+
const mediaViewerInfo = this.documentManagementService.getMediaViewerInfo(documentDetails);
|
|
13255
13310
|
this.currentDocument = JSON.parse(mediaViewerInfo);
|
|
13256
13311
|
}
|
|
13257
13312
|
moveDocument(data) {
|
|
@@ -13285,7 +13340,7 @@ class CaseFileViewFieldComponent {
|
|
|
13285
13340
|
isIcpEnabled() {
|
|
13286
13341
|
return this.icpEnabled && ((this.icp_jurisdictions?.length < 1) || this.icp_jurisdictions.includes(this.caseNotifier?.cachedCaseView?.case_type?.jurisdiction.id));
|
|
13287
13342
|
}
|
|
13288
|
-
static ɵfac = function CaseFileViewFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseFileViewFieldComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(CaseFileViewService), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(AbstractAppConfig)); };
|
|
13343
|
+
static ɵfac = function CaseFileViewFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseFileViewFieldComponent)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(CaseFileViewService), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(WindowService), i0.ɵɵdirectiveInject(CaseNotifier), i0.ɵɵdirectiveInject(AbstractAppConfig)); };
|
|
13289
13344
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFieldComponent, selectors: [["ccd-case-file-view-field"]], standalone: false, decls: 3, vars: 3, consts: [[4, "ngIf"], ["class", "govuk-grid-column-two-thirds", 4, "ngIf"], ["id", "case-file-view-field-errors", "data-module", "govuk-error-summary", 1, "govuk-error-summary", "govuk-!-margin-bottom-4"], ["role", "alert"], [1, "govuk-error-summary__title"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [4, "ngFor", "ngForOf"], ["type", "button", 1, "govuk-js-link"], [1, "govuk-grid-column-two-thirds"], [1, "govuk-heading-xl"], [1, "govuk-body"], [1, "govuk-heading-l"], ["id", "case-file-view", 1, "govuk-form-group"], [1, "document-tree-container"], [1, "document-tree-container__tree", 3, "clickedDocument", "moveDocument", "categoriesAndDocuments", "allowMoving"], [1, "slider"], [1, "media-viewer-container"], [3, "url", "downloadFileName", "showToolbar", "contentType", "enableAnnotations", "enableRedactions", "height", "caseId", "multimediaPlayerEnabled", "enableICP"]], template: function CaseFileViewFieldComponent_Template(rf, ctx) { if (rf & 1) {
|
|
13290
13345
|
i0.ɵɵtemplate(0, CaseFileViewFieldComponent_ng_container_0_Template, 8, 1, "ng-container", 0)(1, CaseFileViewFieldComponent_div_1_Template, 5, 0, "div", 1)(2, CaseFileViewFieldComponent_div_2_Template, 9, 3, "div", 0);
|
|
13291
13346
|
} if (rf & 2) {
|
|
@@ -13299,7 +13354,7 @@ class CaseFileViewFieldComponent {
|
|
|
13299
13354
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewFieldComponent, [{
|
|
13300
13355
|
type: Component,
|
|
13301
13356
|
args: [{ selector: 'ccd-case-file-view-field', standalone: false, template: "<ng-container *ngIf=\"errorMessages?.length\">\n <div\n id=\"case-file-view-field-errors\"\n class=\"govuk-error-summary govuk-!-margin-bottom-4\"\n data-module=\"govuk-error-summary\"\n >\n <div role=\"alert\">\n <h2 class=\"govuk-error-summary__title\">There is a problem</h2>\n <div class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li *ngFor=\"let errorMessage of errorMessages\">\n <button type=\"button\" class=\"govuk-js-link\">{{ errorMessage }}</button>\n </li>\n </ul>\n </div>\n </div>\n </div>\n</ng-container>\n\n<div\n *ngIf=\"getCategoriesAndDocumentsError\"\n class=\"govuk-grid-column-two-thirds\"\n>\n <h1 class=\"govuk-heading-xl\">Sorry, there is a problem with the service</h1>\n <p class=\"govuk-body\">Try again later.</p>\n</div>\n<div *ngIf=\"!getCategoriesAndDocumentsError\">\n <h2 class=\"govuk-heading-l\">Case file</h2>\n <div class=\"govuk-form-group\" id=\"case-file-view\">\n <!-- Document tree -->\n <div class=\"document-tree-container\">\n <ccd-case-file-view-folder \n class=\"document-tree-container__tree\"\n [categoriesAndDocuments]=\"categoriesAndDocuments$\"\n (clickedDocument)=\"setMediaViewerFile($event); resetErrorMessages()\" \n (moveDocument)=\"moveDocument($event)\"\n [allowMoving]=\"allowMoving\">\n </ccd-case-file-view-folder>\n </div>\n <!-- Slider -->\n <div class=\"slider\"></div>\n <!-- Media viewer -->\n <div class=\"media-viewer-container\">\n <ng-container *ngIf=\"currentDocument\">\n <mv-media-viewer\n [url]=\"currentDocument.document_binary_url\"\n [downloadFileName]=\"currentDocument.document_filename\"\n [showToolbar]=\"true\"\n [contentType]=\"currentDocument.content_type\"\n [enableAnnotations]=\"true\"\n [enableRedactions]=\"true\"\n [height]=\"'94.5vh'\"\n [caseId]=\"caseId\"\n [multimediaPlayerEnabled]=\"true\"\n [enableICP]=\"isIcpEnabled()\"\n >\n </mv-media-viewer>\n </ng-container>\n </div>\n </div>\n</div>\n", styles: ["#case-file-view{display:flex;border:2px solid #C9C9C9;height:100vh;position:relative}#case-file-view .document-tree-container{background-color:#faf8f8;width:30%;min-height:400px;min-width:10%}#case-file-view .slider{width:.2%;background-color:#6b6b6b}#case-file-view .slider:hover,#case-file-view .slider:focus{cursor:col-resize}#case-file-view .media-viewer-container{background-color:#dee0e2;flex:1 1 0;overflow:hidden}\n"] }]
|
|
13302
|
-
}], () => [{ type: i0.ElementRef }, { type: i1$1.ActivatedRoute }, { type: CaseFileViewService }, { type: DocumentManagementService }, { type: LoadingService }, { type: SessionStorageService }, { type: CaseNotifier }, { type: AbstractAppConfig }], null); })();
|
|
13357
|
+
}], () => [{ type: i0.ElementRef }, { type: i1$1.ActivatedRoute }, { type: CaseFileViewService }, { type: DocumentManagementService }, { type: LoadingService }, { type: SessionStorageService }, { type: WindowService }, { type: CaseNotifier }, { type: AbstractAppConfig }], null); })();
|
|
13303
13358
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFieldComponent, { className: "CaseFileViewFieldComponent", filePath: "lib/shared/components/palette/case-file-view/case-file-view-field.component.ts", lineNumber: 18 }); })();
|
|
13304
13359
|
|
|
13305
13360
|
function ReadCaseFlagFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -15284,6 +15339,13 @@ class ReadDocumentFieldComponent extends AbstractFieldReadComponent {
|
|
|
15284
15339
|
}
|
|
15285
15340
|
}
|
|
15286
15341
|
openMediaViewer(documentFieldValue) {
|
|
15342
|
+
const documentBinaryUrl = this.documentManagement.getDocumentBinaryUrl(documentFieldValue);
|
|
15343
|
+
const isHtmlDocument = this.documentManagement.isHtmlDocument(documentFieldValue);
|
|
15344
|
+
if (isHtmlDocument && documentBinaryUrl) {
|
|
15345
|
+
// HTML files are opened directly in a separate tab; all other types continue to use media viewer.
|
|
15346
|
+
this.windowService.openOnNewTab(documentBinaryUrl);
|
|
15347
|
+
return;
|
|
15348
|
+
}
|
|
15287
15349
|
const token = FieldsUtils.createToken();
|
|
15288
15350
|
const storageKey = `${MEDIA_VIEWER_INFO}:${token}`;
|
|
15289
15351
|
const payload = this.documentManagement.getMediaViewerInfo(documentFieldValue);
|
|
@@ -25300,6 +25362,7 @@ class DocumentTreeNode {
|
|
|
25300
25362
|
children;
|
|
25301
25363
|
document_filename;
|
|
25302
25364
|
document_binary_url;
|
|
25365
|
+
content_type;
|
|
25303
25366
|
attribute_path;
|
|
25304
25367
|
upload_timestamp;
|
|
25305
25368
|
category_order;
|
|
@@ -25495,7 +25558,6 @@ class CaseFileViewFolderComponent {
|
|
|
25495
25558
|
router;
|
|
25496
25559
|
documentManagementService;
|
|
25497
25560
|
dialog;
|
|
25498
|
-
appConfig;
|
|
25499
25561
|
static UNCATEGORISED_DOCUMENTS_TITLE = 'Uncategorised documents';
|
|
25500
25562
|
static DOCUMENT_SEARCH_FORM_CONTROL_NAME = 'documentSearchFormControl';
|
|
25501
25563
|
static MINIMUM_SEARCH_CHARACTERS = 1;
|
|
@@ -25525,12 +25587,11 @@ class CaseFileViewFolderComponent {
|
|
|
25525
25587
|
return 0;
|
|
25526
25588
|
}
|
|
25527
25589
|
}
|
|
25528
|
-
constructor(windowService, router, documentManagementService, dialog
|
|
25590
|
+
constructor(windowService, router, documentManagementService, dialog) {
|
|
25529
25591
|
this.windowService = windowService;
|
|
25530
25592
|
this.router = router;
|
|
25531
25593
|
this.documentManagementService = documentManagementService;
|
|
25532
25594
|
this.dialog = dialog;
|
|
25533
|
-
this.appConfig = appConfig;
|
|
25534
25595
|
this.nestedTreeControl = new NestedTreeControl(this.getChildren);
|
|
25535
25596
|
}
|
|
25536
25597
|
collapseAll(expand) {
|
|
@@ -25591,6 +25652,9 @@ class CaseFileViewFolderComponent {
|
|
|
25591
25652
|
documentTreeNode.type = DocumentTreeNodeType.DOCUMENT;
|
|
25592
25653
|
documentTreeNode.document_filename = document.document_filename;
|
|
25593
25654
|
documentTreeNode.document_binary_url = document.document_binary_url;
|
|
25655
|
+
if (document.content_type) {
|
|
25656
|
+
documentTreeNode.content_type = document.content_type;
|
|
25657
|
+
}
|
|
25594
25658
|
documentTreeNode.attribute_path = document.attribute_path;
|
|
25595
25659
|
documentTreeNode.upload_timestamp = document.upload_timestamp ? document.upload_timestamp.toString() : '';
|
|
25596
25660
|
documentsToReturn.push(documentTreeNode);
|
|
@@ -25605,6 +25669,9 @@ class CaseFileViewFolderComponent {
|
|
|
25605
25669
|
documentTreeNode.type = DocumentTreeNodeType.DOCUMENT;
|
|
25606
25670
|
documentTreeNode.document_filename = document.document_filename;
|
|
25607
25671
|
documentTreeNode.document_binary_url = document.document_binary_url;
|
|
25672
|
+
if (document.content_type) {
|
|
25673
|
+
documentTreeNode.content_type = document.content_type;
|
|
25674
|
+
}
|
|
25608
25675
|
documentTreeNode.attribute_path = document.attribute_path;
|
|
25609
25676
|
documentTreeNode.upload_timestamp = document.upload_timestamp ? document.upload_timestamp.toString() : '';
|
|
25610
25677
|
documents.push(documentTreeNode);
|
|
@@ -25641,11 +25708,25 @@ class CaseFileViewFolderComponent {
|
|
|
25641
25708
|
this.openMoveDialog(documentTreeNode);
|
|
25642
25709
|
break;
|
|
25643
25710
|
case ('openInANewTab'):
|
|
25711
|
+
const documentDetails = {
|
|
25712
|
+
document_binary_url: documentTreeNode.document_binary_url,
|
|
25713
|
+
document_filename: documentTreeNode.document_filename,
|
|
25714
|
+
content_type: documentTreeNode.content_type
|
|
25715
|
+
};
|
|
25716
|
+
const isHtmlDocument = this.documentManagementService.isHtmlDocument(documentDetails);
|
|
25717
|
+
if (isHtmlDocument) {
|
|
25718
|
+
const documentBinaryUrl = this.documentManagementService.getDocumentBinaryUrl(documentDetails);
|
|
25719
|
+
if (documentBinaryUrl) {
|
|
25720
|
+
this.windowService.openOnNewTab(documentBinaryUrl);
|
|
25721
|
+
return;
|
|
25722
|
+
}
|
|
25723
|
+
}
|
|
25644
25724
|
const token = FieldsUtils.createToken();
|
|
25645
25725
|
const storageKey = `${MEDIA_VIEWER_LOCALSTORAGE_KEY}:${token}`;
|
|
25646
25726
|
const payload = this.documentManagementService.getMediaViewerInfo({
|
|
25647
25727
|
document_binary_url: documentTreeNode.document_binary_url,
|
|
25648
|
-
document_filename: documentTreeNode.document_filename
|
|
25728
|
+
document_filename: documentTreeNode.document_filename,
|
|
25729
|
+
content_type: documentTreeNode.content_type
|
|
25649
25730
|
});
|
|
25650
25731
|
this.windowService.setLocalStorage(storageKey, payload);
|
|
25651
25732
|
const mediaViewerUrl = this.router.createUrlTree(['/media-viewer'], { queryParams: { mvToken: token } })?.toString();
|
|
@@ -25727,7 +25808,7 @@ class CaseFileViewFolderComponent {
|
|
|
25727
25808
|
a.click();
|
|
25728
25809
|
a.remove();
|
|
25729
25810
|
}
|
|
25730
|
-
static ɵfac = function CaseFileViewFolderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseFileViewFolderComponent)(i0.ɵɵdirectiveInject(WindowService), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog)
|
|
25811
|
+
static ɵfac = function CaseFileViewFolderComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseFileViewFolderComponent)(i0.ɵɵdirectiveInject(WindowService), i0.ɵɵdirectiveInject(i1$1.Router), i0.ɵɵdirectiveInject(DocumentManagementService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog)); };
|
|
25731
25812
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseFileViewFolderComponent, selectors: [["ccd-case-file-view-folder"]], inputs: { categoriesAndDocuments: "categoriesAndDocuments", allowMoving: "allowMoving" }, outputs: { clickedDocument: "clickedDocument", moveDocument: "moveDocument" }, standalone: false, decls: 12, vars: 3, consts: [["role", "search", 1, "document-filter-container"], [1, "form-group", "document-filter", 3, "formGroup"], ["for", "document-search", 1, "govuk-visually-hidden"], ["type", "search", "id", "document-search", "name", "documentSearchFormControl", "formControlName", "documentSearchFormControl", "placeholder", "Search by document name", 1, "form-control", "document-search"], [1, "document-folders-header"], ["id", "document-folders-header-title", "aria-hidden", "true", 1, "document-folders-header__title"], ["role", "toolbar", "aria-label", "Document list actions", "aria-labelledby", "document-folders-header-title", 1, "document-folders-header__flex"], [3, "expandAll", "collapseAll"], [3, "sortAscending", "sortDescending"], ["class", "document-tree-container", 4, "ngIf"], [1, "document-tree-container"], [4, "ngIf"], ["role", "tree", "aria-label", "Case documents", 3, "dataSource", "treeControl"], ["class", "document-tree-container__node document-tree-container__node--document", 4, "cdkTreeNodeDef"], ["class", "document-tree-container__node document-tree-container__folder", 4, "cdkTreeNodeDef", "cdkTreeNodeDefWhen"], [1, "document-tree-container__node", "document-tree-container__node--document"], ["type", "button", "role", "treeitem", "aria-expanded", "false", 1, "node", "case-file__node", 3, "click"], ["disabled", "", "aria-hidden", "true", 1, "node__icon"], ["src", "/assets/img/case-file-view/case-file-view-document.svg", "alt", "Document icon", "aria-hidden", "true", 1, "node__iconImg"], [1, "node__name", "node-name-document"], [1, "node__document-upload-timestamp"], [1, "node__document-options", "case-file__action"], [3, "changeFolderAction", "openInANewTabAction", "downloadAction", "printAction", "allowMoving"], [1, "document-tree-container__node", "document-tree-container__folder"], ["type", "button", "cdkTreeNodeToggle", "", "role", "treeitem", 1, "node"], ["aria-hidden", "true", 1, "node__icon"], ["alt", "Folder icon", "aria-hidden", "true", 1, "node__iconImg", 3, "src"], [1, "node__count"], [1, "node__name", "node__name--folder"], ["role", "group"], ["cdkTreeNodeOutlet", ""]], template: function CaseFileViewFolderComponent_Template(rf, ctx) { if (rf & 1) {
|
|
25732
25813
|
i0.ɵɵelementStart(0, "div", 0)(1, "div", 1)(2, "label", 2);
|
|
25733
25814
|
i0.ɵɵtext(3, " Search by document name ");
|
|
@@ -25751,12 +25832,12 @@ class CaseFileViewFolderComponent {
|
|
|
25751
25832
|
i0.ɵɵtextInterpolate1(" Documents (", ctx.documentCount, ") ");
|
|
25752
25833
|
i0.ɵɵadvance(4);
|
|
25753
25834
|
i0.ɵɵproperty("ngIf", ctx.documentTreeData);
|
|
25754
|
-
} }, dependencies: [i5.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName,
|
|
25835
|
+
} }, dependencies: [i5.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.NgControlStatusGroup, i4.FormGroupDirective, i4.FormControlName, i6$1.CdkNestedTreeNode, i6$1.CdkTreeNodeDef, i6$1.CdkTreeNodeToggle, i6$1.CdkTree, i6$1.CdkTreeNodeOutlet, CaseFileViewFolderSortComponent, CaseFileViewFolderToggleComponent, CaseFileViewFolderDocumentActionsComponent, DatePipe], styles: ["[_nghost-%COMP%]{display:flex;height:100%;flex-direction:column}[_nghost-%COMP%] .document-tree-container[_ngcontent-%COMP%]{flex:1 0}.document-filter-container[_ngcontent-%COMP%]{border-bottom:2px solid #C9C9C9}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%]{padding:10px}.document-filter-container[_ngcontent-%COMP%] .document-filter[_ngcontent-%COMP%] .document-search[_ngcontent-%COMP%]{background:url(/assets/images/icon-search-black.svg) no-repeat right #fff;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container[_ngcontent-%COMP%] .documents-title[_ngcontent-%COMP%]{height:30%;margin-left:8px;font-weight:700}.document-folders-header__flex[_ngcontent-%COMP%]{display:flex;flex-direction:row}.document-tree-container[_ngcontent-%COMP%]{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node[_ngcontent-%COMP%]{display:block}.document-tree-container__node[_ngcontent-%COMP%] .document-tree-container__node[_ngcontent-%COMP%]{padding-left:40px}.document-tree-container[_ngcontent-%COMP%] .document-tree-invisible[_ngcontent-%COMP%]{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:7px}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-button{display:none}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-track-piece{background:#eee}.document-tree-container[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#ccc}.document-folders-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title[_ngcontent-%COMP%]{font-weight:700}.node[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected[_ngcontent-%COMP%]{background:#fff2cc}.node__icon[_ngcontent-%COMP%]{position:relative;display:inline-block}.node__count[_ngcontent-%COMP%]{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg[_ngcontent-%COMP%]{display:block;height:30px;width:30px}.node__name[_ngcontent-%COMP%]{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options[_ngcontent-%COMP%]{margin-left:auto;margin-right:0}.node__document-upload-timestamp[_ngcontent-%COMP%]{font-size:.8rem;float:left;padding-left:10px}.node.case-file__node[_ngcontent-%COMP%]{width:80%;float:left}.node__document-options.case-file__action[_ngcontent-%COMP%]{width:15%;float:left;box-sizing:border-box;padding:12px}"] });
|
|
25755
25836
|
}
|
|
25756
25837
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFileViewFolderComponent, [{
|
|
25757
25838
|
type: Component,
|
|
25758
25839
|
args: [{ selector: 'ccd-case-file-view-folder', standalone: false, template: "<div class=\"document-filter-container\" role=\"search\">\n <div class=\"form-group document-filter\" [formGroup]=\"documentFilterFormGroup\">\n <label\n class=\"govuk-visually-hidden\"\n for=\"document-search\">\n Search by document name\n </label>\n <input\n class=\"form-control document-search\"\n type=\"search\"\n id=\"document-search\"\n name=\"documentSearchFormControl\"\n formControlName=\"documentSearchFormControl\"\n placeholder=\"Search by document name\"/>\n </div>\n</div>\n\n<div class=\"document-folders-header\">\n <div class=\"document-folders-header__title\" id=\"document-folders-header-title\" aria-hidden=\"true\">\n Documents ({{ documentCount }})\n </div>\n <div\n class=\"document-folders-header__flex\"\n role=\"toolbar\"\n aria-label=\"Document list actions\"\n aria-labelledby=\"document-folders-header-title\">\n <ccd-case-file-view-folder-toggle\n (expandAll)=\"expandAll($event)\"\n (collapseAll)=\"collapseAll($event)\">\n </ccd-case-file-view-folder-toggle>\n <ccd-case-file-view-folder-sort\n (sortAscending)=\"sortDataSourceAscending($event)\"\n (sortDescending)=\"sortDataSourceDescending($event)\">\n </ccd-case-file-view-folder-sort>\n </div>\n</div>\n\n<div class=\"document-tree-container\" *ngIf=\"documentTreeData\">\n <div *ngIf=\"!nestedDataSource || nestedDataSource.length === 0\">\n No results found\n </div>\n <div>\n <cdk-tree\n [dataSource]=\"nestedDataSource\"\n [treeControl]=\"nestedTreeControl\"\n role=\"tree\"\n aria-label=\"Case documents\">\n <!-- document -->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__node--document\" *cdkTreeNodeDef=\"let node\">\n <button\n type=\"button\"\n class=\"node case-file__node\"\n role=\"treeitem\"\n aria-expanded=\"false\"\n [attr.aria-label]=\"node.name\"\n (click)=\"selectedNodeItem = node; clickedDocument.emit(node)\"\n [class.node--selected]=\"selectedNodeItem?.name === node.name\">\n <div class=\"node__icon\" disabled aria-hidden=\"true\">\n <img src=\"/assets/img/case-file-view/case-file-view-document.svg\"\n class=\"node__iconImg\"\n alt=\"Document icon\"\n aria-hidden=\"true\"\n />\n </div>\n <span class=\"node__name node-name-document\">\n {{ node.name }}\n <br />\n <span class=\"node__document-upload-timestamp\">{{\n node.upload_timestamp | ccdDate: \"local\":\"dd MMM yyyy HH:mm\"\n }}</span>\n </span>\n </button>\n <div class=\"node__document-options case-file__action\">\n <ccd-case-file-view-folder-document-actions\n (changeFolderAction)=\"triggerDocumentAction('changeFolder', node)\"\n (openInANewTabAction)=\"triggerDocumentAction('openInANewTab', node)\"\n (downloadAction)=\"triggerDocumentAction('download', node)\"\n (printAction)=\"triggerDocumentAction('print', node)\"\n [allowMoving]=\"allowMoving\"\n >\n </ccd-case-file-view-folder-document-actions>\n </div>\n </cdk-nested-tree-node>\n <!-- folder-->\n <cdk-nested-tree-node class=\"document-tree-container__node document-tree-container__folder\" *cdkTreeNodeDef=\"let node; when: nestedChildren\">\n <button\n type=\"button\"\n class=\"node\"\n cdkTreeNodeToggle\n role=\"treeitem\"\n [attr.aria-expanded]=\"nestedTreeControl.isExpanded(node)\"\n [attr.aria-label]=\"node.name + ' folder, ' + node.childDocumentCount + ' documents'\">\n <div class=\"node__icon\" aria-hidden=\"true\">\n <img class=\"node__iconImg\"\n [src]=\"nestedTreeControl.isExpanded(node)\n ? '/assets/images/folder-open.png'\n : '/assets/images/folder.png'\n \"\n alt=\"Folder icon\"\n aria-hidden=\"true\" />\n <span class=\"node__count\">{{ node.childDocumentCount }}</span>\n </div>\n <span class=\"node__name node__name--folder\">{{ node.name }}</span>\n </button>\n <div\n role=\"group\"\n [class.document-tree-invisible]=\"!nestedTreeControl.isExpanded(node)\">\n <ng-container cdkTreeNodeOutlet></ng-container>\n </div>\n </cdk-nested-tree-node>\n </cdk-tree>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column}:host .document-tree-container{flex:1 0}.document-filter-container{border-bottom:2px solid #C9C9C9}.document-filter-container .document-filter{padding:10px}.document-filter-container .document-filter .document-search{background:url(/assets/images/icon-search-black.svg) no-repeat right #fff;background-position-x:calc(100% - 4px);padding-right:30px;width:100%}.document-filter-container .documents-title{height:30%;margin-left:8px;font-weight:700}.document-folders-header__flex{display:flex;flex-direction:row}.document-tree-container{padding:4px;overflow-x:hidden;overflow-y:scroll}.document-tree-container__node{display:block}.document-tree-container__node .document-tree-container__node{padding-left:40px}.document-tree-container .document-tree-invisible{display:none}.document-tree-container::-webkit-scrollbar{width:7px}.document-tree-container::-webkit-scrollbar-thumb{border:4px solid rgba(0,0,0,0);background-clip:padding-box;border-radius:9999px;background-color:#aaa}.document-tree-container::-webkit-scrollbar-button{display:none}.document-tree-container::-webkit-scrollbar-track-piece{background:#eee}.document-tree-container::-webkit-scrollbar-thumb{background:#ccc}.document-folders-header{display:flex;align-items:center;justify-content:space-between;border-bottom:2px solid #C9C9C9;padding:10px}.document-folders-header__title{font-weight:700}.node{display:flex;align-items:center;width:100%;padding:10px;background:none;border:0;cursor:pointer;white-space:nowrap}.node--selected{background:#fff2cc}.node__icon{position:relative;display:inline-block}.node__count{color:#fff;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.875rem;padding-top:4px}.node__iconImg{display:block;height:30px;width:30px}.node__name{margin-left:6px;font-size:1rem;overflow:hidden;text-overflow:ellipsis}.node__document-options{margin-left:auto;margin-right:0}.node__document-upload-timestamp{font-size:.8rem;float:left;padding-left:10px}.node.case-file__node{width:80%;float:left}.node__document-options.case-file__action{width:15%;float:left;box-sizing:border-box;padding:12px}\n"] }]
|
|
25759
|
-
}], () => [{ type: WindowService }, { type: i1$1.Router }, { type: DocumentManagementService }, { type: i1$3.MatLegacyDialog }
|
|
25840
|
+
}], () => [{ type: WindowService }, { type: i1$1.Router }, { type: DocumentManagementService }, { type: i1$3.MatLegacyDialog }], { categoriesAndDocuments: [{
|
|
25760
25841
|
type: Input
|
|
25761
25842
|
}], allowMoving: [{
|
|
25762
25843
|
type: Input
|
|
@@ -25765,7 +25846,7 @@ class CaseFileViewFolderComponent {
|
|
|
25765
25846
|
}], moveDocument: [{
|
|
25766
25847
|
type: Output
|
|
25767
25848
|
}] }); })();
|
|
25768
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFolderComponent, { className: "CaseFileViewFolderComponent", filePath: "lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.ts", lineNumber:
|
|
25849
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFolderComponent, { className: "CaseFileViewFolderComponent", filePath: "lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.ts", lineNumber: 28 }); })();
|
|
25769
25850
|
|
|
25770
25851
|
const _c0$t = a0 => ({ "form-group-error": a0 });
|
|
25771
25852
|
function AddCommentsComponent_span_7_Template(rf, ctx) { if (rf & 1) {
|
|
@@ -29859,7 +29940,7 @@ class DatetimePickerComponent extends AbstractFormFieldComponent {
|
|
|
29859
29940
|
i0.ɵɵproperty("for", picker_r3);
|
|
29860
29941
|
i0.ɵɵadvance();
|
|
29861
29942
|
i0.ɵɵproperty("color", ctx.color)("touchUi", ctx.touchUi)("hideTime", ctx.hideTime)("startView", ctx.startView)("stepHour", ctx.stepHour)("stepSecond", ctx.stepSecond)("stepMinute", ctx.stepMinute)("showSeconds", ctx.showSeconds)("showSpinners", ctx.showSpinners)("disableMinute", ctx.disableMinute)("enableMeridian", ctx.enableMeridian);
|
|
29862
|
-
} }, dependencies: [i5.NgClass, i5.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.FormControlDirective, i4$1.NgxMatDatetimepicker, i4$1.NgxMatDatepickerInput, i4$1.NgxMatDatepickerActions, i4$1.NgxMatDatepickerApply, i5$1.MatLegacySuffix, i6$1.MatDatepickerToggle, FieldLabelPipe, FirstErrorPipe, i1.RpxTranslatePipe], styles: ["@charset \"UTF-8\";.datepicker-container{display:inline-block;position:relative;min-width:298px}.datepicker-container .govuk-input{height:35px;min-width:298px;width:auto;padding-right:40px;border:1px solid #000}.datepicker-container .govuk-input:focus{outline:1px solid #ffdd00;border:1px solid black}.datepicker-container .govuk-input::-ms-clear{display:none}.datepicker-container .datepicker-wrapper-input{position:relative;display:inline-block;top:-20%;border:0}.datepicker-container .datepicker-wrapper-input:focus{border:0;outline:none}.datepicker-container .mat-icon-button{height:32px;width:32px}.datepicker-container .mat-icon-button:focus{outline:1px solid #ffdd00}.datepicker-container .mat-icon-button .mat-datepicker-toggle-default-icon{position:relative;top:-5px}.datepicker-container .mat-datepicker-toggle{position:absolute;right:0}.datepicker-container .mat-mdc-icon-button.mat-mdc-button-base{width:32px;height:32px;padding:5px 0 0}.datepicker-container .mat-mdc-icon-button.mat-mdc-button-base:focus{outline:1px solid #fd0}.cdk-overlay-container .mat-datepicker-content{border:1px solid black;border-radius:0;max-width:295px;background:#fff}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table{width:calc(100% - 1px);table-layout:fixed}.cdk-overlay-container .mat-datepicker-content .mat-calendar-header{height:34px;border-bottom:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button{left:14%;min-width:125px;border-right:1px ridge #bfc1c3;border-left:1px ridge #bfc1c3;border-radius:0;top:-20px;width:200%}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button .mat-button-wrapper{text-align:center;font-weight:700}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button:focus{border:2px solid black}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button{left:-73%;top:-20px;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:after{border-left-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button{top:-20px;left:1%;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:after{border-right-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-button-wrapper{text-transform:capitalize!important}.cdk-overlay-container .mat-datepicker-content .mat-calendar{border-bottom:1px solid black}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider{padding:0;border-bottom:none}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider:after{height:0px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-content{padding:0}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header{color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header th.ng-star-inserted{font-weight:700;font-size:15px;padding-top:2%;padding-bottom:2%;column-width:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th{visibility:hidden}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:after{visibility:visible;color:#000;position:relative;left:-15px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(1):after{content:\"MON\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(2):after{left:-12px;content:\"TUE\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(3):after{left:-18px;content:\"WED\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(4):after{left:-14px;content:\"THU\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(5):after{left:-10px;content:\"FRI\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(6):after{content:\"SAT\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(7):after{content:\"SUN\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-label{font-weight:700;font-size:large;color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-selected{border:none;background-color:transparent;color:#fff}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active .mat-calendar-body-today{border:none;box-shadow:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell{border:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-selected=true],.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-pressed=true]{background-color:#1d70b8;outline:3px solid #ffdd00;border:2px solid black;outline-offset:1px;z-index:1}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table{border-collapse:separate;border-spacing:10px}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:2px solid #ffdd00}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table{border-collapse:separate;border-spacing:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table tr:nth-of-type(1){visibility:collapse}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #ffdd00;border:2px solid black;outline-offset:1px}.cdk-overlay-container .mat-datepicker-content .time-container{height:80px;padding-top:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table{margin-left:0!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tbody{position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr mdc-icon-button mat-mdc-icon-button mat-unthemed mat-mdc-button-base .mat-icon-button .mat-button-wrapper{width:auto;height:auto}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr mdc-icon-button mat-mdc-icon-button mat-unthemed mat-mdc-button-base .mat-icon-button:focus{outline:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child{position:absolute;left:49px;top:15px;z-index:2}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:first-child [aria-label=\"expand_less icon\"]{position:absolute;left:-2px;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(3) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:82px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(5) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:169px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(1) [aria-label=\"expand_less icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(2) [aria-label=\"expand_less icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2){display:flex;padding:20px 0 20px 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field{width:50px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field:before{color:#000;content:\"Hours\";position:relative;top:-5px;left:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-child(3) .mat-form-field:before{color:#000;content:\"Minutes\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:last-child{text-align:left;left:-15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .mat-form-field-disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-of-type(5) .mat-form-field:before{color:#000;content:\"Seconds\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian{border-bottom:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button{height:30px;top:21px;border-radius:0;color:#000;border-color:#000;background-color:#dee0e2;display:flex;justify-content:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button .mat-button-wrapper{position:relative;top:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4){display:flex;padding:2rem 0 2rem 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td:last-child{text-align:left}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child{position:absolute;left:49px;top:40px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:first-child [aria-label=\"expand_more icon\"]{position:absolute;top:15px;left:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(3) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;left:82px!important;top:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(5) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;top:15px;left:169px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-last-child(1) [aria-label=\"expand_more icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-last-child(1).ng-star-inserted [aria-label=\"expand_more icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr td{padding:0;border-bottom:0;position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .spacer{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon{visibility:hidden;display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-button-wrapper{display:block;width:15px;height:8px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-wrapper{padding-bottom:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field{width:auto;max-width:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_less icon\"].mat-icon-button .mat-button-wrapper:after{content:\" \\25b2\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_more icon\"].mat-icon-button .mat-button-wrapper:after{content:\"\\25bc\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex .mat-form-field-infix{border:1px solid black;height:20px;width:37px;display:flex;justify-content:center;align-items:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-underline{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input{height:33px;width:37px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .actions{padding-bottom:20px;margin-top:20px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .actions .mat-button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:focus{outline:2px solid #ffdd00}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:hover{background-color:#006400}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-icon{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-button-wrapper:before{color:#fff;content:\"Confirm\";position:relative;font-size:15px;left:-3px}.cdk-overlay-container .mat-datepicker-content .mat-datepicker-actions{margin-top:120px;padding:8px 8px 28px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .mat-datepicker-actions button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}\n"], encapsulation: 2 });
|
|
29943
|
+
} }, dependencies: [i5.NgClass, i5.NgIf, i4.DefaultValueAccessor, i4.NgControlStatus, i4.FormControlDirective, i4$1.NgxMatDatetimepicker, i4$1.NgxMatDatepickerInput, i4$1.NgxMatDatepickerActions, i4$1.NgxMatDatepickerApply, i5$1.MatLegacySuffix, i6$2.MatDatepickerToggle, FieldLabelPipe, FirstErrorPipe, i1.RpxTranslatePipe], styles: ["@charset \"UTF-8\";.datepicker-container{display:inline-block;position:relative;min-width:298px}.datepicker-container .govuk-input{height:35px;min-width:298px;width:auto;padding-right:40px;border:1px solid #000}.datepicker-container .govuk-input:focus{outline:1px solid #ffdd00;border:1px solid black}.datepicker-container .govuk-input::-ms-clear{display:none}.datepicker-container .datepicker-wrapper-input{position:relative;display:inline-block;top:-20%;border:0}.datepicker-container .datepicker-wrapper-input:focus{border:0;outline:none}.datepicker-container .mat-icon-button{height:32px;width:32px}.datepicker-container .mat-icon-button:focus{outline:1px solid #ffdd00}.datepicker-container .mat-icon-button .mat-datepicker-toggle-default-icon{position:relative;top:-5px}.datepicker-container .mat-datepicker-toggle{position:absolute;right:0}.datepicker-container .mat-mdc-icon-button.mat-mdc-button-base{width:32px;height:32px;padding:5px 0 0}.datepicker-container .mat-mdc-icon-button.mat-mdc-button-base:focus{outline:1px solid #fd0}.cdk-overlay-container .mat-datepicker-content{border:1px solid black;border-radius:0;max-width:295px;background:#fff}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table{width:calc(100% - 1px);table-layout:fixed}.cdk-overlay-container .mat-datepicker-content .mat-calendar-header{height:34px;border-bottom:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button{left:14%;min-width:125px;border-right:1px ridge #bfc1c3;border-left:1px ridge #bfc1c3;border-radius:0;top:-20px;width:200%}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button .mat-button-wrapper{text-align:center;font-weight:700}.cdk-overlay-container .mat-datepicker-content .mat-calendar-period-button:focus{border:2px solid black}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button{left:-73%;top:-20px;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-previous-button:after{border-left-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button{top:-20px;left:1%;border:2px solid transparent;border-radius:0}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .mat-calendar-next-button:after{border-right-width:5px;border-top-width:5px;color:#000;padding:4px;top:-2px;left:-2px}.cdk-overlay-container .mat-datepicker-content .mat-button-wrapper{text-transform:capitalize!important}.cdk-overlay-container .mat-datepicker-content .mat-calendar{border-bottom:1px solid black}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider{padding:0;border-bottom:none}.cdk-overlay-container .mat-datepicker-content .mat-calendar-table-header-divider:after{height:0px}.cdk-overlay-container .mat-datepicker-content .mat-calendar-content{padding:0}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header{color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header th.ng-star-inserted{font-weight:700;font-size:15px;padding-top:2%;padding-bottom:2%;column-width:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th{visibility:hidden}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:after{visibility:visible;color:#000;position:relative;left:-15px}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(1):after{content:\"MON\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(2):after{left:-12px;content:\"TUE\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(3):after{left:-18px;content:\"WED\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(4):after{left:-14px;content:\"THU\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(5):after{left:-10px;content:\"FRI\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(6):after{content:\"SAT\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-table-header tr:nth-of-type(1) th:nth-of-type(7):after{content:\"SUN\"}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-label{font-weight:700;font-size:large;color:#000}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-selected{border:none;background-color:transparent;color:#fff}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-active .mat-calendar-body-today{border:none;box-shadow:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell{border:1px ridge #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-selected=true],.cdk-overlay-container .mat-datepicker-content ngx-mat-month-view .mat-calendar-body-cell[aria-pressed=true]{background-color:#1d70b8;outline:3px solid #ffdd00;border:2px solid black;outline-offset:1px;z-index:1}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table{border-collapse:separate;border-spacing:10px}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-multi-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:2px solid #ffdd00}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table{border-collapse:separate;border-spacing:20px}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table tr:nth-of-type(1){visibility:collapse}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-active{background-color:#5694ca}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-cell-content{border:none}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell .mat-calendar-body-selected{border:none;box-shadow:none;background-color:transparent}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell{border:1px solid #bfc1c3}.cdk-overlay-container .mat-datepicker-content ngx-mat-year-view .mat-calendar-table .mat-calendar-body-cell[aria-selected=true]{background-color:#1d70b8;outline:3px solid #ffdd00;border:2px solid black;outline-offset:1px}.cdk-overlay-container .mat-datepicker-content .time-container{height:80px;padding-top:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table{margin-left:0!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tbody{position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr mdc-icon-button mat-mdc-icon-button mat-unthemed mat-mdc-button-base .mat-icon-button .mat-button-wrapper{width:auto;height:auto}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr mdc-icon-button mat-mdc-icon-button mat-unthemed mat-mdc-button-base .mat-icon-button:focus{outline:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child{position:absolute;left:49px;top:15px;z-index:2}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:first-child [aria-label=\"expand_less icon\"]{position:absolute;left:-2px;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(3) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:82px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-child(5) [aria-label=\"expand_less icon\"].mat-icon-button{position:absolute;left:169px!important;top:25px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(1) [aria-label=\"expand_less icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:first-child td:nth-last-child(2) [aria-label=\"expand_less icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2){display:flex;padding:20px 0 20px 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field{width:50px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:first-child .mat-form-field:before{color:#000;content:\"Hours\";position:relative;top:-5px;left:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-child(3) .mat-form-field:before{color:#000;content:\"Minutes\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:last-child{text-align:left;left:-15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .mat-form-field-disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) td:nth-of-type(5) .mat-form-field:before{color:#000;content:\"Seconds\";position:relative;top:-5px;font-size:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian{border-bottom:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button{height:30px;top:21px;border-radius:0;color:#000;border-color:#000;background-color:#dee0e2;display:flex;justify-content:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(2) .meridian .mat-button .mat-button-wrapper{position:relative;top:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4){display:flex;padding:2rem 0 2rem 15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td{margin-right:30px;text-align:right}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:nth-child(4) td:last-child{text-align:left}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child{position:absolute;left:49px;top:40px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child button:disabled{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:first-child [aria-label=\"expand_more icon\"]{position:absolute;top:15px;left:-2px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(3) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;left:82px!important;top:15px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-child(5) [aria-label=\"expand_more icon\"].mat-icon-button{position:absolute;top:15px;left:169px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-last-child(1) [aria-label=\"expand_more icon\"].mat-icon-button{left:65px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr:last-child td:nth-last-child(1).ng-star-inserted [aria-label=\"expand_more icon\"].mat-icon-button{left:153px!important}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr td{padding:0;border-bottom:0;position:relative}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .spacer{display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-icon{visibility:hidden;display:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-button-wrapper{display:block;width:15px;height:8px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-wrapper{padding-bottom:0}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field{width:auto;max-width:none}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_less icon\"].mat-icon-button .mat-button-wrapper:after{content:\" \\25b2\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr [aria-label=\"expand_more icon\"].mat-icon-button .mat-button-wrapper:after{content:\"\\25bc\"}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex{width:100%}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-flex .mat-form-field-infix{border:1px solid black;height:20px;width:37px;display:flex;justify-content:center;align-items:center}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr .mat-form-field-underline{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input{height:33px;width:37px}.cdk-overlay-container .mat-datepicker-content .time-container .ngx-mat-timepicker .table tr input:focus{border-color:#000}.cdk-overlay-container .mat-datepicker-content .actions{padding-bottom:20px;margin-top:20px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .actions .mat-button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:focus{outline:2px solid #ffdd00}.cdk-overlay-container .mat-datepicker-content .actions .mat-button:hover{background-color:#006400}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-icon{visibility:hidden}.cdk-overlay-container .mat-datepicker-content .actions .mat-button .mat-button-wrapper:before{color:#fff;content:\"Confirm\";position:relative;font-size:15px;left:-3px}.cdk-overlay-container .mat-datepicker-content .mat-datepicker-actions{margin-top:120px;padding:8px 8px 28px;justify-content:flex-start}.cdk-overlay-container .mat-datepicker-content .mat-datepicker-actions button{background-color:#00823b;position:relative;display:-moz-inline-stack;display:inline-block;padding:.526315em .789473em .263157em;border:none;border-radius:0;outline:1px solid transparent;outline-offset:-1px;-webkit-appearance:none;box-shadow:0 2px #003618;font-size:1em;line-height:1.25;text-decoration:none;-webkit-font-smoothing:antialiased;color:#fff;box-sizing:border-box;vertical-align:top;width:80px;cursor:pointer}\n"], encapsulation: 2 });
|
|
29863
29944
|
}
|
|
29864
29945
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DatetimePickerComponent, [{
|
|
29865
29946
|
type: Component,
|