@hmcts/rpx-xui-common-lib 2.1.7-angular-upgrade-11 → 2.1.8-booking-region-filter
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/hmcts-rpx-xui-common-lib.umd.js +30 -6
- package/bundles/hmcts-rpx-xui-common-lib.umd.js.map +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js +1 -1
- package/bundles/hmcts-rpx-xui-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/components/generic-filter/generic-filter.component.js +1 -1
- package/esm2015/lib/components/search-location/search-location.component.js +25 -3
- package/esm2015/lib/services/timeout-notifications/timeout-notifications.service.js +6 -4
- package/fesm2015/hmcts-rpx-xui-common-lib.js +30 -6
- package/fesm2015/hmcts-rpx-xui-common-lib.js.map +1 -1
- package/hmcts-rpx-xui-common-lib.metadata.json +1 -1
- package/package.json +1 -1
|
@@ -1281,7 +1281,7 @@
|
|
|
1281
1281
|
GenericFilterComponent.decorators = [
|
|
1282
1282
|
{ type: i0.Component, args: [{
|
|
1283
1283
|
selector: 'xuilib-generic-filter',
|
|
1284
|
-
template: "<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n <div class=\"contain-classes\" *ngFor=\"let field of config.fields\">\n <hr *ngIf=\"field.lineBreakBefore\" class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n <div class=\"govuk-form-group xui-generic-filter\"\n [hidden]=\"hidden(field, form)\"\n [id]=\"field.name\"\n [ngClass]=\"{'form-group-error': submitted && (form.get(field.name).errors?.minLength || form.get(field.name).errors?.maxLength)}\">\n <h3 *ngIf=\"field.title\" class=\"govuk-heading-s\">{{field.title}}</h3>\n <p class=\"govuk-body\" *ngIf=\"field.subTitle\">{{field.subTitle}}</p>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && form.get(field.name).errors?.minLength\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.minSelectedError}}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMaxSelectedError && submitted && form.get(field.name).errors?.maxLength\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.maxSelectedError}}\n </span>\n <div class=\"govuk-body\" [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option class=\"govuk-radios__item\" *ngFor=\"let item of field.options\" [value]=\"item.key\">{{item.label}}</option>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox-large'\">\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <div class=\"govuk-radios\">\n <div *ngFor=\"let item of field.options\" class=\"govuk-radios__item\">\n <input type=\"radio\"\n [formControlName]=\"field.name\"\n [id]=\"'radio_' + item.key\"\n [attr.disabled]=\"disabled(field, form)\"\n [checked]=\"item.key === form.get(field.name).value\"\n class=\"govuk-radios__input\"\n [value]=\"item.key\"\n (change)=\"fieldChanged(field, form)\"\n />\n <label [for]=\"'radio_' + item.key\" class=\"govuk-label govuk-radios__label\">{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-person'\">\n <xuilib-find-person subTitle=\"\" (personSelected)=\"updatePersonControls($event, field)\"\n (personFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findPersonGroup]=\"form\"\n [selectedPerson]=\"form.get(field.name)?.value?.email\"\n [userIncluded]=\"false\"\n ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location (locationFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [selectedLocations]=\"form.get(field.name)?.value\"\n [submitted]=\"submitted\"\n [services]=\"form.get(field.findLocationField)?.value\"\n
|
|
1284
|
+
template: "<form [formGroup]=\"form\" (ngSubmit)=\"applyFilter(form)\">\n <div class=\"contain-classes\" *ngFor=\"let field of config.fields\">\n <hr *ngIf=\"field.lineBreakBefore\" class=\"govuk-section-break govuk-section-break--visible elevated-break\">\n <div class=\"govuk-form-group xui-generic-filter\"\n [hidden]=\"hidden(field, form)\"\n [id]=\"field.name\"\n [ngClass]=\"{'form-group-error': submitted && (form.get(field.name).errors?.minLength || form.get(field.name).errors?.maxLength)}\">\n <h3 *ngIf=\"field.title\" class=\"govuk-heading-s\">{{field.title}}</h3>\n <p class=\"govuk-body\" *ngIf=\"field.subTitle\">{{field.subTitle}}</p>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMinSelectedError && submitted && form.get(field.name).errors?.minLength\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.minSelectedError}}\n </span>\n <span [id]=\"field.name + '-error'\" class=\"govuk-error-message\" *ngIf=\"field.displayMaxSelectedError && submitted && form.get(field.name).errors?.maxLength\">\n <span class=\"govuk-visually-hidden\">Error:</span> {{field.maxSelectedError}}\n </span>\n <div class=\"govuk-body\" [ngSwitch]=\"field.type\">\n <ng-container *ngSwitchCase=\"'select'\">\n <select class=\"govuk-select\" (change)=\"fieldChanged(field, form)\" [attr.disabled]=\"disabled(field, form)\" [name]=\"'select_' + field.name\" [id]=\"'select_' + field.name\" [formControlName]=\"field.name\">\n <option disabled selected hidden value=\"\">{{field.disabledText}}</option>\n <option class=\"govuk-radios__item\" *ngFor=\"let item of field.options\" [value]=\"item.key\">{{item.label}}</option>\n </select>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox'\">\n <div class=\"govuk-checkboxes govuk-checkboxes--small\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'checkbox-large'\">\n <div class=\"govuk-checkboxes\" [formGroupName]=\"field.name\" [attr.field]=\"field.name\" [id]=\"'checkbox_' + field.name\">\n <div *ngFor=\"let item of field.options; let i = index\" class=\"govuk-checkboxes__item\">\n <input type=\"checkbox\" class=\"govuk-checkboxes__input\"\n [attr.disabled]=\"disabled(field, form)\"\n [formControlName]=\"i\"\n (change)=\"toggleSelectAll($event, form, item, field)\"\n [value]=\"item.key\" [id]=\"'checkbox_' + item.key\"\n [name]=\"'checkbox_' + item.key\"\n />\n <label\n [for]=\"'checkbox_' + item.key\"\n class=\"govuk-label govuk-checkboxes__label\"\n [ngClass]=\"{'govuk-!-font-weight-bold': item.selectAll}\"\n >{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'radio'\">\n <div class=\"govuk-radios\">\n <div *ngFor=\"let item of field.options\" class=\"govuk-radios__item\">\n <input type=\"radio\"\n [formControlName]=\"field.name\"\n [id]=\"'radio_' + item.key\"\n [attr.disabled]=\"disabled(field, form)\"\n [checked]=\"item.key === form.get(field.name).value\"\n class=\"govuk-radios__input\"\n [value]=\"item.key\"\n (change)=\"fieldChanged(field, form)\"\n />\n <label [for]=\"'radio_' + item.key\" class=\"govuk-label govuk-radios__label\">{{item.label}}</label>\n </div>\n </div>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-person'\">\n <xuilib-find-person subTitle=\"\" (personSelected)=\"updatePersonControls($event, field)\"\n (personFieldChanged)=\"inputChanged(field)\"\n [submitted]=\"submitted\"\n [disabled]=\"disabled(field, form)\"\n [domain]=\"form.get(field.domainField)?.value\"\n [findPersonGroup]=\"form\"\n [selectedPerson]=\"form.get(field.name)?.value?.email\"\n [userIncluded]=\"false\"\n ></xuilib-find-person>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-location'\">\n <xuilib-find-location (locationFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [locationTitle]=\"field.locationTitle\"\n [enableAddLocationButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\"\n [selectedLocations]=\"form.get(field.name)?.value\"\n [submitted]=\"submitted\"\n [field]=\"field\"\n [services]=\"form.get(field.findLocationField)?.value\"\n ></xuilib-find-location>\n </ng-container>\n <ng-container *ngSwitchCase=\"'find-service'\">\n <xuilib-find-service (serviceFieldChanged)=\"inputChanged(field)\"\n [form]=\"form\"\n [fields]=\"config.fields\"\n [title]=\"field.title\"\n [enableAddServiceButton]=\"field.enableAddButton\"\n [disabled]=\"disabled(field, form)\"\n [disableInputField]=\"field.disable\" \n [field]=\"field\"\n [selectedServices]=\"form.get(field.name)?.value\" \n ></xuilib-find-service>\n </ng-container>\n </div>\n </div>\n </div>\n <hr class=\"govuk-section-break govuk-section-break--m govuk-section-break--visible\"/>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full\">\n <button\n class=\"govuk-button govuk-!-margin-right-1 govuk-!-margin-bottom-0\"\n type=\"submit\"\n id=\"applyFilter\"\n [disabled]=\"config.enableDisabledButton && form.invalid\"\n >{{config.applyButtonText || 'Apply'}}</button>\n <button *ngIf=\"config.showCancelFilterButton\"\n class=\"govuk-button govuk-button--secondary govuk-!-margin-bottom-0\"\n type=\"button\"\n id=\"cancelFilter\"\n (click)=\"cancelFilter()\">{{ config.cancelButtonText || 'Cancel'}}</button>\n </div>\n </div>\n</form>\n",
|
|
1285
1285
|
changeDetection: i0.ChangeDetectionStrategy.OnPush,
|
|
1286
1286
|
encapsulation: i0.ViewEncapsulation.None,
|
|
1287
1287
|
styles: [".contain-classes .elevated-break{position:relative;top:-10px}.contain-classes .xui-generic-filter .select-all{margin-bottom:10px}.contain-classes .xui-generic-filter .govuk-checkboxes{display:flex;flex-wrap:wrap}.contain-classes .xui-generic-filter .govuk-checkboxes>div{flex-grow:1;flex-shrink:0}"]
|
|
@@ -2776,16 +2776,38 @@
|
|
|
2776
2776
|
var bookingLocations;
|
|
2777
2777
|
// Booking type info - can create more
|
|
2778
2778
|
// NO_CHECK - All work - Do not filter out locations - Default assumption
|
|
2779
|
-
//
|
|
2779
|
+
// BOOKINGS_AND_BASE - My work - Try to only show base locations/booking locations
|
|
2780
2780
|
// POSSIBLE_BOOKINGS - Create booking screen - Show only potential bookings
|
|
2781
2781
|
if (this.bookingCheck === exports.BookingCheckType.BOOKINGS_AND_BASE) {
|
|
2782
2782
|
userLocations = JSON.parse(this.sessionStorageService.getItem('userLocations'));
|
|
2783
2783
|
bookingLocations = JSON.parse(this.sessionStorageService.getItem('bookingLocations'));
|
|
2784
|
+
var bookableServices = JSON.parse(this.sessionStorageService.getItem('bookableServices'));
|
|
2785
|
+
var knownBookableServices_1 = [];
|
|
2786
|
+
// we do below in order to enable booking locations to be searched for bookable role assignments without base location or region
|
|
2787
|
+
// first get all bookable services existing in userLocations
|
|
2788
|
+
userLocations.forEach(function (userLocation) {
|
|
2789
|
+
if (userLocation.bookable) {
|
|
2790
|
+
knownBookableServices_1.push(userLocation.service);
|
|
2791
|
+
}
|
|
2792
|
+
});
|
|
2793
|
+
// then, from the full list of bookable services, add ones that are missing
|
|
2794
|
+
// this is so that booking locations will be checked for all relevant services
|
|
2795
|
+
bookableServices.forEach(function (bookableService) {
|
|
2796
|
+
if (!knownBookableServices_1.includes(bookableService)) {
|
|
2797
|
+
userLocations.push({ service: bookableService, locations: [], bookable: true });
|
|
2798
|
+
}
|
|
2799
|
+
});
|
|
2784
2800
|
}
|
|
2785
2801
|
else if (this.bookingCheck === exports.BookingCheckType.POSSIBLE_BOOKINGS) {
|
|
2802
|
+
this.serviceIds = this.serviceIds && this.serviceIds.length ? this.serviceIds : JSON.parse(this.sessionStorageService.getItem('bookableServices'));
|
|
2786
2803
|
userLocations = JSON.parse(this.sessionStorageService.getItem('userLocations'));
|
|
2787
|
-
|
|
2804
|
+
// filter out any non-bookable services
|
|
2805
|
+
userLocations = userLocations.filter(function (userLocation) { return userLocation.bookable; });
|
|
2788
2806
|
}
|
|
2807
|
+
// get all locations will resolve filter setting using objects above
|
|
2808
|
+
// if no userLocations, NO_CHECK
|
|
2809
|
+
// if userLocation.bookable === true and bookingLocations present, BOOKINGS_AND_BASE
|
|
2810
|
+
// userLocations need no separation as non-bookable filtered out for POSSIBLE_BOOKINGS
|
|
2789
2811
|
return this.locationService.getAllLocations(this.serviceIds, this.locationType, term, userLocations, bookingLocations);
|
|
2790
2812
|
};
|
|
2791
2813
|
SearchLocationComponent.prototype.resetSearchTerm = function () {
|
|
@@ -4821,7 +4843,7 @@
|
|
|
4821
4843
|
*/
|
|
4822
4844
|
TimeoutNotificationsService.prototype.initialise = function (config) {
|
|
4823
4845
|
var _this = this;
|
|
4824
|
-
var
|
|
4846
|
+
var DOCUMENT_INTERRUPTS = 'mousedown keydown DOMMouseScroll mousewheel touchstart touchmove scroll';
|
|
4825
4847
|
var MINUTES = ' minutes';
|
|
4826
4848
|
var SECONDS = ' seconds';
|
|
4827
4849
|
var SIGNOUT_EVENT = 'sign-out';
|
|
@@ -4832,8 +4854,8 @@
|
|
|
4832
4854
|
var idleModalDisplayTimeInSeconds = this.millisecondsToSeconds(idleModalDisplayTime);
|
|
4833
4855
|
var totalIdleTimeInSeconds = this.millisecondsToSeconds(totalIdleTime);
|
|
4834
4856
|
this.idle.setTimeout(idleModalDisplayTimeInSeconds);
|
|
4835
|
-
var docInterrupts = new i1$2.DocumentInterruptSource(
|
|
4836
|
-
var windowInterrupts = new i1$2.WindowInterruptSource(
|
|
4857
|
+
var docInterrupts = new i1$2.DocumentInterruptSource(DOCUMENT_INTERRUPTS);
|
|
4858
|
+
var windowInterrupts = new i1$2.WindowInterruptSource(DOCUMENT_INTERRUPTS);
|
|
4837
4859
|
this.idle.setInterrupts([docInterrupts, windowInterrupts]);
|
|
4838
4860
|
this.idle.onTimeout.subscribe(function () {
|
|
4839
4861
|
_this.eventEmitter.next({ eventType: SIGNOUT_EVENT });
|
|
@@ -4841,6 +4863,8 @@
|
|
|
4841
4863
|
this.idle.onTimeoutWarning.pipe(operators.map(function (sec) { return (sec > 60) ? Math.ceil(sec / 60) + MINUTES : sec + SECONDS; }), operators.distinctUntilChanged()).subscribe(function (countdown) {
|
|
4842
4864
|
_this.eventEmitter.next({ eventType: COUNTDOWN_EVENT, readableCountdown: countdown });
|
|
4843
4865
|
});
|
|
4866
|
+
this.idle.onIdleStart.subscribe(function () { return console.log('You\'ve gone idle!'); });
|
|
4867
|
+
this.idle.onIdleEnd.subscribe(function () { return console.log('You\'re no longer idle!'); });
|
|
4844
4868
|
this.keepalive.interval(15);
|
|
4845
4869
|
this.keepalive.onPing.subscribe(function () {
|
|
4846
4870
|
_this.eventEmitter.next({ eventType: KEEP_ALIVE_EVENT });
|