novo-elements 5.6.1 → 5.10.0
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/novo-elements.umd.js +312 -218
- package/bundles/novo-elements.umd.js.map +1 -1
- package/bundles/novo-elements.umd.min.js +2 -2
- package/bundles/novo-elements.umd.min.js.map +1 -1
- package/elements/chips/Chips.scss +6 -0
- package/elements/data-table/cell-headers/data-table-checkbox-header-cell.component.d.ts +5 -1
- package/elements/data-table/cells/data-table-checkbox-cell.component.d.ts +3 -0
- package/elements/data-table/data-table-clear-button.component.d.ts +2 -0
- package/elements/data-table/data-table.component.d.ts +3 -1
- package/elements/data-table/data-table.component.scss +5 -1
- package/elements/data-table/interfaces.d.ts +3 -0
- package/elements/data-table/state/data-table-state.service.d.ts +6 -2
- package/elements/form/FormInterfaces.d.ts +1 -0
- package/elements/picker/extras/entity-picker-results/EntityPickerResults.d.ts +1 -0
- package/esm2015/elements/data-table/cell-headers/data-table-checkbox-header-cell.component.js +26 -6
- package/esm2015/elements/data-table/cells/data-table-checkbox-cell.component.js +16 -5
- package/esm2015/elements/data-table/data-table-clear-button.component.js +9 -1
- package/esm2015/elements/data-table/data-table.component.js +8 -3
- package/esm2015/elements/data-table/data-table.source.js +5 -2
- package/esm2015/elements/data-table/interfaces.js +1 -1
- package/esm2015/elements/data-table/pagination/data-table-pagination.component.js +4 -1
- package/esm2015/elements/data-table/sort-filter/sort-filter.directive.js +3 -1
- package/esm2015/elements/data-table/state/data-table-state.service.js +31 -7
- package/esm2015/elements/expansion/expansion-panel.js +1 -1
- package/esm2015/elements/form/FormInterfaces.js +1 -1
- package/esm2015/elements/form/extras/address/Address.js +5 -1
- package/esm2015/elements/picker/extras/entity-picker-results/EntityPickerResults.js +31 -1
- package/esm2015/index.js +1 -1
- package/esm2015/services/novo-label-service.js +2 -1
- package/esm2015/utils/app-bridge/AppBridge.js +1 -1
- package/esm2015/utils/form-utils/FormUtils.js +2 -1
- package/fesm2015/novo-elements.js +326 -215
- package/fesm2015/novo-elements.js.map +1 -1
- package/index.d.ts +1 -1
- package/novo-elements.metadata.json +1 -1
- package/package.json +1 -1
- package/services/novo-label-service.d.ts +1 -0
- package/styles/global/variables.scss +4 -1
- package/utils/app-bridge/AppBridge.d.ts +1 -1
|
@@ -3128,6 +3128,7 @@
|
|
|
3128
3128
|
this.clearAllNormalCase = 'Clear All';
|
|
3129
3129
|
this.clearSort = 'Clear Sort';
|
|
3130
3130
|
this.clearFilter = 'Clear Filter';
|
|
3131
|
+
this.clearSelected = 'Clear Selected';
|
|
3131
3132
|
this.today = 'Today';
|
|
3132
3133
|
this.now = 'Now';
|
|
3133
3134
|
this.isRequired = 'is required';
|
|
@@ -5814,6 +5815,8 @@
|
|
|
5814
5815
|
return 'user';
|
|
5815
5816
|
case 'CorporationDepartment':
|
|
5816
5817
|
return 'department';
|
|
5818
|
+
case 'JobShift':
|
|
5819
|
+
return 'timetable contract';
|
|
5817
5820
|
default:
|
|
5818
5821
|
return '';
|
|
5819
5822
|
}
|
|
@@ -5827,6 +5830,14 @@
|
|
|
5827
5830
|
}
|
|
5828
5831
|
return timestamp;
|
|
5829
5832
|
};
|
|
5833
|
+
EntityPickerResult.prototype.renderTimeNoOffset = function (dateStr) {
|
|
5834
|
+
var timestamp = '';
|
|
5835
|
+
if (dateStr) {
|
|
5836
|
+
dateStr = dateStr.slice(0, 19);
|
|
5837
|
+
timestamp = this.labels.formatTime(dateStr);
|
|
5838
|
+
}
|
|
5839
|
+
return timestamp;
|
|
5840
|
+
};
|
|
5830
5841
|
EntityPickerResult.prototype.getNameForResult = function (result) {
|
|
5831
5842
|
if (result) {
|
|
5832
5843
|
switch (result.searchEntity) {
|
|
@@ -5869,7 +5880,7 @@
|
|
|
5869
5880
|
EntityPickerResult.decorators = [
|
|
5870
5881
|
{ type: core.Component, args: [{
|
|
5871
5882
|
selector: 'entity-picker-result',
|
|
5872
|
-
template: "\n <novo-list-item *ngIf=\"match.data\">\n <item-header>\n <item-avatar [icon]=\"getIconForResult(match.data)\"></item-avatar>\n <item-title> <span [innerHtml]=\"highlight(getNameForResult(match.data), term)\"></span> </item-title>\n </item-header>\n <item-content direction=\"horizontal\">\n <!-- COMPANY 1 -->\n <p class=\"company\" *ngIf=\"match.data.companyName || match.data?.clientCorporation?.name\">\n <i class=\"bhi-company\"></i>\n <span [innerHtml]=\"highlight(match.data.companyName || match.data?.clientCorporation?.name, term)\"></span>\n </p>\n <!-- CLIENT CONTACT -->\n <p class=\"contact\" *ngIf=\"match.data?.clientContact?.firstName\">\n <i class=\"bhi-person contact person\"></i>\n <span [innerHtml]=\"highlight(match.data.clientContact.firstName + ' ' + match.data.clientContact.lastName, term)\"></span>\n </p>\n <!-- CANDIDATE -->\n <p class=\"candidate\" *ngIf=\"match.data.candidate && match.data.searchEntity === 'Placement'\">\n <i class=\"bhi-candidate\"></i>\n <span [innerHtml]=\"highlight(match.data.candidate.firstName + ' ' + match.data.candidate.lastName, term)\"></span>\n </p>\n <!-- START & END DATE -->\n <p class=\"start-date\" *ngIf=\"match.data.dateBegin && match.data.searchEntity === 'Placement'\">\n <i class=\"bhi-calendar\"></i>\n <span [innerHtml]=\"renderTimestamp(match.data.dateBegin) + ' - ' + renderTimestamp(match.data.dateEnd)\"></span>\n </p>\n <!-- EMAIL -->\n <p class=\"email\" *ngIf=\"match.data.email\">\n <i class=\"bhi-email\"></i> <span [innerHtml]=\"highlight(match.data.email, term)\"></span>\n </p>\n <!-- PHONE -->\n <p class=\"phone\" *ngIf=\"match.data.phone\">\n <i class=\"bhi-phone\"></i> <span [innerHtml]=\"highlight(match.data.phone, term)\"></span>\n </p>\n <!-- ADDRESS -->\n <p class=\"location\" *ngIf=\"match.data.address && (match.data.address.city || match.data.address.state)\">\n <i class=\"bhi-location\"></i> <span *ngIf=\"match.data.address.city\" [innerHtml]=\"highlight(match.data.address.city, term)\"></span>\n <span *ngIf=\"match.data.address.city && match.data.address.state\">, </span>\n <span *ngIf=\"match.data.address.state\" [innerHtml]=\"highlight(match.data.address.state, term)\"></span>\n </p>\n <!-- STATUS -->\n <p class=\"status\" *ngIf=\"match.data.status\">\n <i class=\"bhi-info\"></i> <span [innerHtml]=\"highlight(match.data.status, term)\"></span>\n </p>\n <!-- OWNER -->\n <p class=\"owner\" *ngIf=\"match.data.owner && match.data.owner.name && match.data.searchEntity === 'Candidate'\">\n <i class=\"bhi-person\"></i> <span [innerHtml]=\"highlight(match.data.owner.name, term)\"></span>\n </p>\n <!-- PRIMARY DEPARTMENT -->\n <p\n class=\"primary-department\"\n *ngIf=\"match.data.primaryDepartment && match.data.primaryDepartment.name && match.data.searchEntity === 'CorporateUser'\"\n >\n <i class=\"bhi-department\"></i> <span [innerHtml]=\"highlight(match.data.primaryDepartment.name, term)\"></span>\n </p>\n <!-- OCCUPATION -->\n <p class=\"occupation\" *ngIf=\"match.data.occupation && match.data.searchEntity === 'CorporateUser'\">\n <i class=\"bhi-occupation\"></i> <span [innerHtml]=\"highlight(match.data.occupation, term)\"></span>\n </p>\n </item-content>\n </novo-list-item>\n "
|
|
5883
|
+
template: "\n <novo-list-item *ngIf=\"match.data\">\n <item-header>\n <item-avatar [icon]=\"getIconForResult(match.data)\"></item-avatar>\n <item-title> <span [innerHtml]=\"highlight(getNameForResult(match.data), term)\"></span> </item-title>\n </item-header>\n <item-content direction=\"horizontal\">\n <!-- COMPANY 1 -->\n <p class=\"company\" *ngIf=\"match.data.companyName || match.data?.clientCorporation?.name\">\n <i class=\"bhi-company\"></i>\n <span [innerHtml]=\"highlight(match.data.companyName || match.data?.clientCorporation?.name, term)\"></span>\n </p>\n <!-- CLIENT CONTACT -->\n <p class=\"contact\" *ngIf=\"match.data?.clientContact?.firstName\">\n <i class=\"bhi-person contact person\"></i>\n <span [innerHtml]=\"highlight(match.data.clientContact.firstName + ' ' + match.data.clientContact.lastName, term)\"></span>\n </p>\n <!-- CANDIDATE -->\n <p class=\"candidate\" *ngIf=\"match.data.candidate && match.data.searchEntity === 'Placement'\">\n <i class=\"bhi-candidate\"></i>\n <span [innerHtml]=\"highlight(match.data.candidate.firstName + ' ' + match.data.candidate.lastName, term)\"></span>\n </p>\n <!-- START & END DATE -->\n <p class=\"start-date\" *ngIf=\"match.data.dateBegin && match.data.searchEntity === 'Placement'\">\n <i class=\"bhi-calendar\"></i>\n <span [innerHtml]=\"renderTimestamp(match.data.dateBegin) + ' - ' + renderTimestamp(match.data.dateEnd)\"></span>\n </p>\n <!-- START Date -->\n <p class=\"start-date\" *ngIf=\"match.data.startTime && match.data.searchEntity === 'JobShift'\">\n <i class=\"bhi-calendar\"></i>\n <span [innerHtml]=\"renderTimestamp(match.data.startTime)\"></span>\n </p>\n <!-- START & END TIME -->\n <p class=\"start-time\" *ngIf=\"match.data.startTime && match.data.searchEntity === 'JobShift'\">\n <i class=\"bhi-clock\"></i>\n <span [innerHtml]=\"renderTimeNoOffset(match.data.startTime) + ' - ' + renderTimeNoOffset(match.data.endTime)\"></span>\n </p>\n <!-- JOBORDER -->\n <p class=\"job\" *ngIf=\"match.data.jobOrder && match.data.searchEntity === 'JobShift'\">\n <i class=\"bhi-job\"></i>\n <span [innerHtml]=\"highlight(match.data.jobOrder.title, term)\"></span>\n </p>\n <!-- OPENINGS -->\n <p class=\"openings\" *ngIf=\"match.data.openings && match.data.searchEntity === 'JobShift'\">\n <i class=\"bhi-candidate\"></i>\n <span>{{ match.data.numAssigned }} / {{ match.data.openings }}</span>\n </p>\n <!-- EMAIL -->\n <p class=\"email\" *ngIf=\"match.data.email\">\n <i class=\"bhi-email\"></i> <span [innerHtml]=\"highlight(match.data.email, term)\"></span>\n </p>\n <!-- PHONE -->\n <p class=\"phone\" *ngIf=\"match.data.phone\">\n <i class=\"bhi-phone\"></i> <span [innerHtml]=\"highlight(match.data.phone, term)\"></span>\n </p>\n <!-- ADDRESS -->\n <p class=\"location\" *ngIf=\"match.data.address && (match.data.address.city || match.data.address.state)\">\n <i class=\"bhi-location\"></i> <span *ngIf=\"match.data.address.city\" [innerHtml]=\"highlight(match.data.address.city, term)\"></span>\n <span *ngIf=\"match.data.address.city && match.data.address.state\">, </span>\n <span *ngIf=\"match.data.address.state\" [innerHtml]=\"highlight(match.data.address.state, term)\"></span>\n </p>\n <!-- STATUS -->\n <p class=\"status\" *ngIf=\"match.data.status\">\n <i class=\"bhi-info\"></i> <span [innerHtml]=\"highlight(match.data.status, term)\"></span>\n </p>\n <!-- OWNER -->\n <p class=\"owner\" *ngIf=\"match.data.owner && match.data.owner.name && match.data.searchEntity === 'Candidate'\">\n <i class=\"bhi-person\"></i> <span [innerHtml]=\"highlight(match.data.owner.name, term)\"></span>\n </p>\n <!-- PRIMARY DEPARTMENT -->\n <p\n class=\"primary-department\"\n *ngIf=\"match.data.primaryDepartment && match.data.primaryDepartment.name && match.data.searchEntity === 'CorporateUser'\"\n >\n <i class=\"bhi-department\"></i> <span [innerHtml]=\"highlight(match.data.primaryDepartment.name, term)\"></span>\n </p>\n <!-- OCCUPATION -->\n <p class=\"occupation\" *ngIf=\"match.data.occupation && match.data.searchEntity === 'CorporateUser'\">\n <i class=\"bhi-occupation\"></i> <span [innerHtml]=\"highlight(match.data.occupation, term)\"></span>\n </p>\n </item-content>\n </novo-list-item>\n "
|
|
5873
5884
|
},] }
|
|
5874
5885
|
];
|
|
5875
5886
|
EntityPickerResult.ctorParameters = function () { return [
|
|
@@ -6987,6 +6998,7 @@
|
|
|
6987
6998
|
this.expandedRows = new Set();
|
|
6988
6999
|
this.isForceRefresh = false;
|
|
6989
7000
|
this.updates = new core.EventEmitter();
|
|
7001
|
+
this.retainSelected = false;
|
|
6990
7002
|
}
|
|
6991
7003
|
Object.defineProperty(DataTableState.prototype, "userFiltered", {
|
|
6992
7004
|
get: function () {
|
|
@@ -7017,9 +7029,12 @@
|
|
|
7017
7029
|
this.filter = undefined;
|
|
7018
7030
|
}
|
|
7019
7031
|
this.page = 0;
|
|
7020
|
-
this.
|
|
7021
|
-
|
|
7032
|
+
if (!this.retainSelected) {
|
|
7033
|
+
this.selectedRows.clear();
|
|
7034
|
+
this.resetSource.next();
|
|
7035
|
+
}
|
|
7022
7036
|
this.onSortFilterChange();
|
|
7037
|
+
this.retainSelected = false;
|
|
7023
7038
|
if (fireUpdate) {
|
|
7024
7039
|
this.updates.emit({
|
|
7025
7040
|
sort: this.sort,
|
|
@@ -7032,8 +7047,8 @@
|
|
|
7032
7047
|
if (fireUpdate === void 0) { fireUpdate = true; }
|
|
7033
7048
|
this.sort = undefined;
|
|
7034
7049
|
this.page = 0;
|
|
7035
|
-
this.
|
|
7036
|
-
this.
|
|
7050
|
+
this.checkRetainment('sort');
|
|
7051
|
+
this.reset(fireUpdate, true);
|
|
7037
7052
|
this.onSortFilterChange();
|
|
7038
7053
|
if (fireUpdate) {
|
|
7039
7054
|
this.updates.emit({
|
|
@@ -7048,8 +7063,8 @@
|
|
|
7048
7063
|
this.filter = undefined;
|
|
7049
7064
|
this.globalSearch = undefined;
|
|
7050
7065
|
this.page = 0;
|
|
7051
|
-
this.
|
|
7052
|
-
this.
|
|
7066
|
+
this.checkRetainment('filter');
|
|
7067
|
+
this.reset(fireUpdate, true);
|
|
7053
7068
|
this.onSortFilterChange();
|
|
7054
7069
|
if (fireUpdate) {
|
|
7055
7070
|
this.updates.emit({
|
|
@@ -7059,6 +7074,20 @@
|
|
|
7059
7074
|
});
|
|
7060
7075
|
}
|
|
7061
7076
|
};
|
|
7077
|
+
DataTableState.prototype.clearSelected = function (fireUpdate) {
|
|
7078
|
+
if (fireUpdate === void 0) { fireUpdate = true; }
|
|
7079
|
+
this.globalSearch = undefined;
|
|
7080
|
+
this.page = 0;
|
|
7081
|
+
this.reset(fireUpdate, true);
|
|
7082
|
+
this.onSelectionChange();
|
|
7083
|
+
if (fireUpdate) {
|
|
7084
|
+
this.updates.emit({
|
|
7085
|
+
sort: this.sort,
|
|
7086
|
+
filter: this.filter,
|
|
7087
|
+
globalSearch: this.globalSearch,
|
|
7088
|
+
});
|
|
7089
|
+
}
|
|
7090
|
+
};
|
|
7062
7091
|
DataTableState.prototype.onSelectionChange = function () {
|
|
7063
7092
|
this.selectionSource.next();
|
|
7064
7093
|
};
|
|
@@ -7066,9 +7095,12 @@
|
|
|
7066
7095
|
this.expandSource.next(targetId);
|
|
7067
7096
|
};
|
|
7068
7097
|
DataTableState.prototype.onPaginationChange = function (isPageSizeChange, pageSize) {
|
|
7098
|
+
this.checkRetainment('page');
|
|
7069
7099
|
this.paginationSource.next({ isPageSizeChange: isPageSizeChange, pageSize: pageSize });
|
|
7070
7100
|
};
|
|
7071
7101
|
DataTableState.prototype.onSortFilterChange = function () {
|
|
7102
|
+
this.checkRetainment('sort');
|
|
7103
|
+
this.checkRetainment('filter');
|
|
7072
7104
|
this.sortFilterSource.next({
|
|
7073
7105
|
sort: this.sort,
|
|
7074
7106
|
filter: this.filter,
|
|
@@ -7092,6 +7124,10 @@
|
|
|
7092
7124
|
}
|
|
7093
7125
|
}
|
|
7094
7126
|
};
|
|
7127
|
+
DataTableState.prototype.checkRetainment = function (caller) {
|
|
7128
|
+
var _a;
|
|
7129
|
+
this.retainSelected = ((_a = this.selectionOptions) === null || _a === void 0 ? void 0 : _a.some(function (option) { return option.label === caller; })) || this.retainSelected;
|
|
7130
|
+
};
|
|
7095
7131
|
return DataTableState;
|
|
7096
7132
|
}());
|
|
7097
7133
|
DataTableState.decorators = [
|
|
@@ -7103,6 +7139,7 @@
|
|
|
7103
7139
|
this.state = state;
|
|
7104
7140
|
this.ref = ref;
|
|
7105
7141
|
this.labels = labels;
|
|
7142
|
+
this.selectedClear = new core.EventEmitter();
|
|
7106
7143
|
this.sortClear = new core.EventEmitter();
|
|
7107
7144
|
this.filterClear = new core.EventEmitter();
|
|
7108
7145
|
this.allClear = new core.EventEmitter();
|
|
@@ -7115,9 +7152,14 @@
|
|
|
7115
7152
|
this.state.clearFilter();
|
|
7116
7153
|
this.filterClear.emit(true);
|
|
7117
7154
|
};
|
|
7155
|
+
NovoDataTableClearButton.prototype.clearSelected = function () {
|
|
7156
|
+
this.state.clearSelected();
|
|
7157
|
+
this.selectedClear.emit(true);
|
|
7158
|
+
};
|
|
7118
7159
|
NovoDataTableClearButton.prototype.clearAll = function () {
|
|
7119
7160
|
this.state.reset();
|
|
7120
7161
|
this.allClear.emit(true);
|
|
7162
|
+
this.selectedClear.emit(true);
|
|
7121
7163
|
this.sortClear.emit(true);
|
|
7122
7164
|
this.filterClear.emit(true);
|
|
7123
7165
|
};
|
|
@@ -7126,7 +7168,7 @@
|
|
|
7126
7168
|
NovoDataTableClearButton.decorators = [
|
|
7127
7169
|
{ type: core.Component, args: [{
|
|
7128
7170
|
selector: 'novo-data-table-clear-button',
|
|
7129
|
-
template: "\n <novo-dropdown side=\"bottom-right\" class=\"novo-data-table-clear-button\" data-automation-id=\"novo-data-table-clear-dropdown\">\n <button type=\"button\" theme=\"primary\" color=\"negative\" icon=\"collapse\" data-automation-id=\"novo-data-table-clear-dropdown-btn\">{{ labels.clear }}</button>\n <list>\n <item *ngIf=\"state.sort\" (click)=\"clearSort()\" data-automation-id=\"novo-data-table-clear-dropdown-clear-sort\">{{ labels.clearSort }}</item>\n <item *ngIf=\"state.filter\" (click)=\"clearFilter()\" data-automation-id=\"novo-data-table-clear-dropdown-clear-filter\">{{ labels.clearFilter }}</item>\n <item *ngIf=\"state.sort && state.filter\" (click)=\"clearAll()\" data-automation-id=\"novo-data-table-clear-dropdown-clear-all\">{{ labels.clearAllNormalCase }}</item>\n </list>\n </novo-dropdown>\n ",
|
|
7171
|
+
template: "\n <novo-dropdown side=\"bottom-right\" class=\"novo-data-table-clear-button\" data-automation-id=\"novo-data-table-clear-dropdown\">\n <button type=\"button\" theme=\"primary\" color=\"negative\" icon=\"collapse\" data-automation-id=\"novo-data-table-clear-dropdown-btn\">{{ labels.clear }}</button>\n <list>\n <item *ngIf=\"state.selected.length > 0\" (click)=\"clearSelected()\" data-automation-id=\"novo-data-table-clear-dropdown-clear-selected\">{{ labels.clearSelected }}</item>\n <item *ngIf=\"state.sort\" (click)=\"clearSort()\" data-automation-id=\"novo-data-table-clear-dropdown-clear-sort\">{{ labels.clearSort }}</item>\n <item *ngIf=\"state.filter\" (click)=\"clearFilter()\" data-automation-id=\"novo-data-table-clear-dropdown-clear-filter\">{{ labels.clearFilter }}</item>\n <item *ngIf=\"state.sort && state.filter\" (click)=\"clearAll()\" data-automation-id=\"novo-data-table-clear-dropdown-clear-all\">{{ labels.clearAllNormalCase }}</item>\n </list>\n </novo-dropdown>\n ",
|
|
7130
7172
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
7131
7173
|
},] }
|
|
7132
7174
|
];
|
|
@@ -7136,6 +7178,7 @@
|
|
|
7136
7178
|
{ type: NovoLabelService }
|
|
7137
7179
|
]; };
|
|
7138
7180
|
NovoDataTableClearButton.propDecorators = {
|
|
7181
|
+
selectedClear: [{ type: core.Output }],
|
|
7139
7182
|
sortClear: [{ type: core.Output }],
|
|
7140
7183
|
filterClear: [{ type: core.Output }],
|
|
7141
7184
|
allClear: [{ type: core.Output }]
|
|
@@ -7190,7 +7233,10 @@
|
|
|
7190
7233
|
_this.current = data.results.length;
|
|
7191
7234
|
_this.data = data.results;
|
|
7192
7235
|
// Clear selection
|
|
7193
|
-
_this.state.
|
|
7236
|
+
if (!_this.state.retainSelected) {
|
|
7237
|
+
_this.state.selectedRows.clear();
|
|
7238
|
+
}
|
|
7239
|
+
_this.state.retainSelected = false;
|
|
7194
7240
|
_this.state.onSelectionChange();
|
|
7195
7241
|
// Mark changes
|
|
7196
7242
|
setTimeout(function () {
|
|
@@ -7562,6 +7608,7 @@
|
|
|
7562
7608
|
}
|
|
7563
7609
|
}
|
|
7564
7610
|
this.state.filter = filter;
|
|
7611
|
+
this.state.checkRetainment('filter');
|
|
7565
7612
|
this.state.reset(false, true);
|
|
7566
7613
|
this.state.updates.next({ filter: filter, sort: this.state.sort });
|
|
7567
7614
|
this.state.onSortFilterChange();
|
|
@@ -7569,6 +7616,7 @@
|
|
|
7569
7616
|
NovoDataTableSortFilter.prototype.sort = function (id, value, transform) {
|
|
7570
7617
|
var sort = { id: id, value: value, transform: transform };
|
|
7571
7618
|
this.state.sort = sort;
|
|
7619
|
+
this.state.checkRetainment('sort');
|
|
7572
7620
|
this.state.reset(false, true);
|
|
7573
7621
|
this.state.updates.next({ sort: sort, filter: this.state.filter });
|
|
7574
7622
|
this.state.onSortFilterChange();
|
|
@@ -7981,6 +8029,7 @@
|
|
|
7981
8029
|
this.trackByFn = function (index, item) { return item.id; };
|
|
7982
8030
|
this.templates = {};
|
|
7983
8031
|
this.fixedHeader = false;
|
|
8032
|
+
this.maxSelected = undefined;
|
|
7984
8033
|
this._hideGlobalSearch = true;
|
|
7985
8034
|
this.preferencesChanged = new core.EventEmitter();
|
|
7986
8035
|
this.loading = true;
|
|
@@ -8204,6 +8253,7 @@
|
|
|
8204
8253
|
};
|
|
8205
8254
|
NovoDataTable.prototype.ngAfterContentInit = function () {
|
|
8206
8255
|
var _this = this;
|
|
8256
|
+
var _a;
|
|
8207
8257
|
if (this.displayedColumns && this.displayedColumns.length) {
|
|
8208
8258
|
this.expandable = this.displayedColumns.includes('expand');
|
|
8209
8259
|
}
|
|
@@ -8233,6 +8283,7 @@
|
|
|
8233
8283
|
}
|
|
8234
8284
|
this.state.page = this.paginationOptions ? this.paginationOptions.page : undefined;
|
|
8235
8285
|
this.state.pageSize = this.paginationOptions ? this.paginationOptions.pageSize : undefined;
|
|
8286
|
+
this.state.selectionOptions = (_a = this.selectionOptions) !== null && _a !== void 0 ? _a : undefined;
|
|
8236
8287
|
// Scrolling inside table
|
|
8237
8288
|
this.novoDataTableContainer.nativeElement.addEventListener('scroll', this.scrollListenerHandler);
|
|
8238
8289
|
this.initialized = true;
|
|
@@ -8407,11 +8458,11 @@
|
|
|
8407
8458
|
this.ref.markForCheck();
|
|
8408
8459
|
};
|
|
8409
8460
|
NovoDataTable.prototype.performInteractions = function (event) {
|
|
8410
|
-
var e_1,
|
|
8461
|
+
var e_1, _b;
|
|
8411
8462
|
if (this.listInteractions) {
|
|
8412
8463
|
try {
|
|
8413
|
-
for (var
|
|
8414
|
-
var column =
|
|
8464
|
+
for (var _c = __values(this.columns), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
8465
|
+
var column = _d.value;
|
|
8415
8466
|
var allListColumnInteractions = this.listInteractions[column.id];
|
|
8416
8467
|
var listColumnInteraction = allListColumnInteractions && allListColumnInteractions.find(function (int) { return int.event.includes(event); });
|
|
8417
8468
|
if (listColumnInteraction) {
|
|
@@ -8422,7 +8473,7 @@
|
|
|
8422
8473
|
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
8423
8474
|
finally {
|
|
8424
8475
|
try {
|
|
8425
|
-
if (
|
|
8476
|
+
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
|
8426
8477
|
}
|
|
8427
8478
|
finally { if (e_1) throw e_1.error; }
|
|
8428
8479
|
}
|
|
@@ -8440,7 +8491,7 @@
|
|
|
8440
8491
|
animations.transition('void <=> *', animations.animate('70ms cubic-bezier(0.4, 0.0, 0.2, 1)')),
|
|
8441
8492
|
]),
|
|
8442
8493
|
],
|
|
8443
|
-
template: "\n <header\n *ngIf=\"(!(dataSource?.totallyEmpty && !state.userFiltered) && !loading) || forceShowHeader\"\n [class.empty]=\"hideGlobalSearch && !paginationOptions && !templates['customActions']\"\n >\n <ng-container *ngTemplateOutlet=\"templates['customHeader']\"></ng-container>\n <novo-search\n alwaysOpen=\"true\"\n (searchChanged)=\"onSearchChange($event)\"\n [(ngModel)]=\"state.globalSearch\"\n *ngIf=\"!hideGlobalSearch\"\n [placeholder]=\"searchOptions?.placeholder\"\n [hint]=\"searchOptions?.tooltip\"\n >\n </novo-search>\n <novo-data-table-pagination\n *ngIf=\"paginationOptions\"\n [theme]=\"paginationOptions.theme\"\n [length]=\"dataSource?.currentTotal\"\n [page]=\"paginationOptions.page\"\n [pageSize]=\"paginationOptions.pageSize\"\n [pageSizeOptions]=\"paginationOptions.pageSizeOptions\"\n [dataFeatureId]=\"paginatorDataFeatureId\"\n >\n </novo-data-table-pagination>\n <div class=\"novo-data-table-actions\" *ngIf=\"templates['customActions']\">\n <ng-container *ngTemplateOutlet=\"templates['customActions']\"></ng-container>\n </div>\n </header>\n <div class=\"novo-data-table-loading-mask\" *ngIf=\"dataSource?.loading || loading\" data-automation-id=\"novo-data-table-loading\">\n <novo-loading></novo-loading>\n </div>\n <div class=\"novo-data-table-outside-container\" [ngClass]=\"{ 'novo-data-table-outside-container-fixed': fixedHeader }\">\n <div class=\"novo-data-table-custom-filter\" *ngIf=\"customFilter\">\n <ng-container *ngTemplateOutlet=\"templates['customFilter']\"></ng-container>\n </div>\n <div\n #novoDataTableContainer\n class=\"novo-data-table-container\"\n [ngClass]=\"{ 'novo-data-table-container-fixed': fixedHeader }\"\n [class.empty-user-filtered]=\"dataSource?.currentlyEmpty && state.userFiltered\"\n [class.empty]=\"dataSource?.totallyEmpty && !dataSource?.loading && !loading && !state.userFiltered && !dataSource.pristine\"\n >\n <cdk-table\n *ngIf=\"columns?.length > 0 && columnsLoaded && dataSource\"\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackByFn\"\n novoDataTableSortFilter\n [class.expandable]=\"expandable\"\n [class.empty]=\"dataSource?.currentlyEmpty && state.userFiltered\"\n [hidden]=\"dataSource?.totallyEmpty && !state.userFiltered\"\n >\n <ng-container cdkColumnDef=\"selection\">\n <novo-data-table-checkbox-header-cell *cdkHeaderCellDef></novo-data-table-checkbox-header-cell>\n <novo-data-table-checkbox-cell *cdkCellDef=\"let row; let i = index\" [row]=\"row\"></novo-data-table-checkbox-cell>\n </ng-container>\n <ng-container cdkColumnDef=\"expand\">\n <novo-data-table-expand-header-cell *cdkHeaderCellDef></novo-data-table-expand-header-cell>\n <novo-data-table-expand-cell *cdkCellDef=\"let row; let i = index\" [row]=\"row\"></novo-data-table-expand-cell>\n </ng-container>\n <ng-container *ngFor=\"let column of columns; trackBy: trackColumnsBy\" [cdkColumnDef]=\"column.id\">\n <novo-data-table-header-cell\n *cdkHeaderCellDef\n [column]=\"column\"\n [filterTemplate]=\"templates['column-filter-' + column.id]\"\n [novo-data-table-cell-config]=\"column\"\n [resized]=\"resized\"\n [defaultSort]=\"defaultSort\"\n [allowMultipleFilters]=\"allowMultipleFilters\"\n [class.empty]=\"column?.type === 'action' && !column?.label\"\n [class.button-header-cell]=\"column?.type === 'expand' || (column?.type === 'action' && !column?.action?.options)\"\n [class.dropdown-header-cell]=\"column?.type === 'action' && column?.action?.options\"\n [class.fixed-header]=\"fixedHeader\"\n ></novo-data-table-header-cell>\n <novo-data-table-cell\n *cdkCellDef=\"let row\"\n [resized]=\"resized\"\n [column]=\"column\"\n [row]=\"row\"\n [template]=\"columnToTemplate[column.id]\"\n [class.empty]=\"column?.type === 'action' && !column?.label\"\n [class.button-cell]=\"column?.type === 'expand' || (column?.type === 'action' && !column?.action?.options)\"\n [class.dropdown-cell]=\"column?.type === 'action' && column?.action?.options\"\n ></novo-data-table-cell>\n </ng-container>\n <novo-data-table-header-row\n *cdkHeaderRowDef=\"displayedColumns\"\n [fixedHeader]=\"fixedHeader\"\n data-automation-id=\"novo-data-table-header-row\"\n ></novo-data-table-header-row>\n <novo-data-table-row\n *cdkRowDef=\"let row; columns: displayedColumns\"\n [ngClass]=\"{ active: row[rowIdentifier] == activeRowIdentifier }\"\n [novoDataTableExpand]=\"detailRowTemplate\"\n [row]=\"row\"\n [id]=\"name + '-' + row[rowIdentifier]\"\n [dataAutomationId]=\"row[rowIdentifier]\"\n ></novo-data-table-row>\n </cdk-table>\n <div class=\"novo-data-table-footer\" *ngIf=\"templates['footer']\">\n <ng-container *ngTemplateOutlet=\"templates['footer']; context: { $implicit: columns, data: dataSource.data }\"></ng-container>\n </div>\n <div\n class=\"novo-data-table-no-results-container\"\n [style.left.px]=\"scrollLeft\"\n *ngIf=\"dataSource?.currentlyEmpty && state.userFiltered && !dataSource?.loading && !loading && !dataSource.pristine\"\n >\n <div class=\"novo-data-table-empty-message\">\n <ng-container *ngTemplateOutlet=\"templates['noResultsMessage'] || templates['defaultNoResultsMessage']\"></ng-container>\n </div>\n </div>\n </div>\n <div\n class=\"novo-data-table-empty-container\"\n *ngIf=\"dataSource?.totallyEmpty && !dataSource?.loading && !loading && !state.userFiltered && !dataSource.pristine\"\n >\n <div class=\"novo-data-table-empty-message\">\n <ng-container *ngTemplateOutlet=\"templates['emptyMessage'] || templates['defaultNoResultsMessage']\"></ng-container>\n </div>\n </div>\n </div>\n <!-- DEFAULT CELL TEMPLATE -->\n <ng-template novoTemplate=\"textCellTemplate\" let-row let-col=\"col\">\n <span [style.width.px]=\"col?.width\" [style.min-width.px]=\"col?.width\" [style.max-width.px]=\"col?.width\">{{\n row[col.id] | dataTableInterpolate: col\n }}</span>\n </ng-template>\n <ng-template novoTemplate=\"dateCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableDateRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"datetimeCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableDateTimeRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"timeCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableTimeRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"currencyCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableCurrencyRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"bigdecimalCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableBigDecimalRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"numberCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableNumberRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"percentCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableNumberRenderer: col:true }}</span>\n </ng-template>\n <ng-template novoTemplate=\"linkCellTemplate\" let-row let-col=\"col\">\n <a\n [attr.data-feature-id]=\"col?.attributes?.dataFeatureId\"\n (click)=\"col.handlers?.click({ originalEvent: $event, row: row })\"\n [style.width.px]=\"col?.width\"\n [style.min-width.px]=\"col?.width\"\n [style.max-width.px]=\"col?.width\"\n >{{ row[col.id] | dataTableInterpolate: col }}</a\n >\n </ng-template>\n <ng-template novoTemplate=\"telCellTemplate\" let-row let-col=\"col\">\n <a href=\"tel:{{ row[col.id] | dataTableInterpolate: col }}\" [target]=\"col?.attributes?.target\">{{\n row[col.id] | dataTableInterpolate: col\n }}</a>\n </ng-template>\n <ng-template novoTemplate=\"mailtoCellTemplate\" let-row let-col=\"col\">\n <a href=\"mailto:{{ row[col.id] | dataTableInterpolate: col }}\" [target]=\"col?.attributes?.target\">{{\n row[col.id] | dataTableInterpolate: col\n }}</a>\n </ng-template>\n <ng-template novoTemplate=\"buttonCellTemplate\" let-row let-col=\"col\">\n <p [tooltip]=\"col?.action?.tooltip\" tooltipPosition=\"right\" [attr.data-feature-id]=\"col?.attributes?.dataFeatureId\">\n <i\n class=\"bhi-{{ col?.action?.icon }} data-table-icon\"\n (click)=\"col.handlers?.click({ originalEvent: $event, row: row })\"\n [class.disabled]=\"isDisabled(col, row)\"\n ></i>\n </p>\n </ng-template>\n <ng-template novoTemplate=\"dropdownCellTemplate\" let-row let-col=\"col\">\n <novo-dropdown parentScrollSelector=\".novo-data-table-container\" containerClass=\"novo-data-table-dropdown\">\n <button type=\"button\" theme=\"dialogue\" [icon]=\"col.action.icon\" inverse>{{ col.label }}</button>\n <list>\n <item\n *ngFor=\"let option of col?.action?.options\"\n (action)=\"option.handlers.click({ originalEvent: $event?.originalEvent, row: row })\"\n [disabled]=\"isDisabled(option, row)\"\n >\n <span [attr.data-automation-id]=\"option.label\">{{ option.label }}</span>\n </item>\n </list>\n </novo-dropdown>\n </ng-template>\n <ng-template novoTemplate=\"defaultNoResultsMessage\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.noMatchingRecordsMessage }}</h4>\n </ng-template>\n <ng-template novoTemplate=\"defaultEmptyMessage\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.emptyTableMessage }}</h4>\n </ng-template>\n <ng-template novoTemplate=\"expandedRow\"> You did not provide an \"expandedRow\" template! </ng-template>\n <ng-template #detailRowTemplate let-row>\n <div class=\"novo-data-table-detail-row\" [@expand] style=\"overflow: hidden\">\n <ng-container *ngTemplateOutlet=\"templates['expandedRow']; context: { $implicit: row }\"></ng-container>\n </div>\n </ng-template>\n <!-- CUSTOM CELLS PASSED IN -->\n <ng-content></ng-content>\n ",
|
|
8494
|
+
template: "\n <header\n *ngIf=\"(!(dataSource?.totallyEmpty && !state.userFiltered) && !loading) || forceShowHeader\"\n [class.empty]=\"hideGlobalSearch && !paginationOptions && !templates['customActions']\"\n >\n <ng-container *ngTemplateOutlet=\"templates['customHeader']\"></ng-container>\n <novo-search\n alwaysOpen=\"true\"\n (searchChanged)=\"onSearchChange($event)\"\n [(ngModel)]=\"state.globalSearch\"\n *ngIf=\"!hideGlobalSearch\"\n [placeholder]=\"searchOptions?.placeholder\"\n [hint]=\"searchOptions?.tooltip\"\n >\n </novo-search>\n <novo-data-table-pagination\n *ngIf=\"paginationOptions\"\n [theme]=\"paginationOptions.theme\"\n [length]=\"dataSource?.currentTotal\"\n [page]=\"paginationOptions.page\"\n [pageSize]=\"paginationOptions.pageSize\"\n [pageSizeOptions]=\"paginationOptions.pageSizeOptions\"\n [dataFeatureId]=\"paginatorDataFeatureId\"\n >\n </novo-data-table-pagination>\n <div class=\"novo-data-table-actions\" *ngIf=\"templates['customActions']\">\n <ng-container *ngTemplateOutlet=\"templates['customActions']\"></ng-container>\n </div>\n </header>\n <div class=\"novo-data-table-loading-mask\" *ngIf=\"dataSource?.loading || loading\" data-automation-id=\"novo-data-table-loading\">\n <novo-loading></novo-loading>\n </div>\n <div class=\"novo-data-table-outside-container\" [ngClass]=\"{ 'novo-data-table-outside-container-fixed': fixedHeader }\">\n <div class=\"novo-data-table-custom-filter\" *ngIf=\"customFilter\">\n <ng-container *ngTemplateOutlet=\"templates['customFilter']\"></ng-container>\n </div>\n <div\n #novoDataTableContainer\n class=\"novo-data-table-container\"\n [ngClass]=\"{ 'novo-data-table-container-fixed': fixedHeader }\"\n [class.empty-user-filtered]=\"dataSource?.currentlyEmpty && state.userFiltered\"\n [class.empty]=\"dataSource?.totallyEmpty && !dataSource?.loading && !loading && !state.userFiltered && !dataSource.pristine\"\n >\n <cdk-table\n *ngIf=\"columns?.length > 0 && columnsLoaded && dataSource\"\n [dataSource]=\"dataSource\"\n [trackBy]=\"trackByFn\"\n novoDataTableSortFilter\n [class.expandable]=\"expandable\"\n [class.empty]=\"dataSource?.currentlyEmpty && state.userFiltered\"\n [hidden]=\"dataSource?.totallyEmpty && !state.userFiltered\"\n >\n <ng-container cdkColumnDef=\"selection\">\n <novo-data-table-checkbox-header-cell *cdkHeaderCellDef [maxSelected]=\"maxSelected\"></novo-data-table-checkbox-header-cell>\n <novo-data-table-checkbox-cell *cdkCellDef=\"let row; let i = index\" [row]=\"row\" [maxSelected]=\"maxSelected\"></novo-data-table-checkbox-cell>\n </ng-container>\n <ng-container cdkColumnDef=\"expand\">\n <novo-data-table-expand-header-cell *cdkHeaderCellDef></novo-data-table-expand-header-cell>\n <novo-data-table-expand-cell *cdkCellDef=\"let row; let i = index\" [row]=\"row\"></novo-data-table-expand-cell>\n </ng-container>\n <ng-container *ngFor=\"let column of columns; trackBy: trackColumnsBy\" [cdkColumnDef]=\"column.id\">\n <novo-data-table-header-cell\n *cdkHeaderCellDef\n [column]=\"column\"\n [filterTemplate]=\"templates['column-filter-' + column.id]\"\n [novo-data-table-cell-config]=\"column\"\n [resized]=\"resized\"\n [defaultSort]=\"defaultSort\"\n [allowMultipleFilters]=\"allowMultipleFilters\"\n [class.empty]=\"column?.type === 'action' && !column?.label\"\n [class.button-header-cell]=\"column?.type === 'expand' || (column?.type === 'action' && !column?.action?.options)\"\n [class.dropdown-header-cell]=\"column?.type === 'action' && column?.action?.options\"\n [class.fixed-header]=\"fixedHeader\"\n ></novo-data-table-header-cell>\n <novo-data-table-cell\n *cdkCellDef=\"let row\"\n [resized]=\"resized\"\n [column]=\"column\"\n [row]=\"row\"\n [template]=\"columnToTemplate[column.id]\"\n [class.empty]=\"column?.type === 'action' && !column?.label\"\n [class.button-cell]=\"column?.type === 'expand' || (column?.type === 'action' && !column?.action?.options)\"\n [class.dropdown-cell]=\"column?.type === 'action' && column?.action?.options\"\n ></novo-data-table-cell>\n </ng-container>\n <novo-data-table-header-row\n *cdkHeaderRowDef=\"displayedColumns\"\n [fixedHeader]=\"fixedHeader\"\n data-automation-id=\"novo-data-table-header-row\"\n ></novo-data-table-header-row>\n <novo-data-table-row\n *cdkRowDef=\"let row; columns: displayedColumns\"\n [ngClass]=\"{ active: row[rowIdentifier] == activeRowIdentifier }\"\n [novoDataTableExpand]=\"detailRowTemplate\"\n [row]=\"row\"\n [id]=\"name + '-' + row[rowIdentifier]\"\n [dataAutomationId]=\"row[rowIdentifier]\"\n ></novo-data-table-row>\n </cdk-table>\n <div class=\"novo-data-table-footer\" *ngIf=\"templates['footer']\">\n <ng-container *ngTemplateOutlet=\"templates['footer']; context: { $implicit: columns, data: dataSource.data }\"></ng-container>\n </div>\n <div\n class=\"novo-data-table-no-results-container\"\n [style.left.px]=\"scrollLeft\"\n *ngIf=\"dataSource?.currentlyEmpty && state.userFiltered && !dataSource?.loading && !loading && !dataSource.pristine\"\n >\n <div class=\"novo-data-table-empty-message\">\n <ng-container *ngTemplateOutlet=\"templates['noResultsMessage'] || templates['defaultNoResultsMessage']\"></ng-container>\n </div>\n </div>\n </div>\n <div\n class=\"novo-data-table-empty-container\"\n *ngIf=\"dataSource?.totallyEmpty && !dataSource?.loading && !loading && !state.userFiltered && !dataSource.pristine\"\n >\n <div class=\"novo-data-table-empty-message\">\n <ng-container *ngTemplateOutlet=\"templates['emptyMessage'] || templates['defaultNoResultsMessage']\"></ng-container>\n </div>\n </div>\n </div>\n <!-- DEFAULT CELL TEMPLATE -->\n <ng-template novoTemplate=\"textCellTemplate\" let-row let-col=\"col\">\n <span [style.width.px]=\"col?.width\" [style.min-width.px]=\"col?.width\" [style.max-width.px]=\"col?.width\">{{\n row[col.id] | dataTableInterpolate: col\n }}</span>\n </ng-template>\n <ng-template novoTemplate=\"dateCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableDateRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"datetimeCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableDateTimeRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"timeCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableTimeRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"currencyCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableCurrencyRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"bigdecimalCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableBigDecimalRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"numberCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableNumberRenderer: col }}</span>\n </ng-template>\n <ng-template novoTemplate=\"percentCellTemplate\" let-row let-col=\"col\">\n <span>{{ row[col.id] | dataTableInterpolate: col | dataTableNumberRenderer: col:true }}</span>\n </ng-template>\n <ng-template novoTemplate=\"linkCellTemplate\" let-row let-col=\"col\">\n <a\n [attr.data-feature-id]=\"col?.attributes?.dataFeatureId\"\n (click)=\"col.handlers?.click({ originalEvent: $event, row: row })\"\n [style.width.px]=\"col?.width\"\n [style.min-width.px]=\"col?.width\"\n [style.max-width.px]=\"col?.width\"\n >{{ row[col.id] | dataTableInterpolate: col }}</a\n >\n </ng-template>\n <ng-template novoTemplate=\"telCellTemplate\" let-row let-col=\"col\">\n <a href=\"tel:{{ row[col.id] | dataTableInterpolate: col }}\" [target]=\"col?.attributes?.target\">{{\n row[col.id] | dataTableInterpolate: col\n }}</a>\n </ng-template>\n <ng-template novoTemplate=\"mailtoCellTemplate\" let-row let-col=\"col\">\n <a href=\"mailto:{{ row[col.id] | dataTableInterpolate: col }}\" [target]=\"col?.attributes?.target\">{{\n row[col.id] | dataTableInterpolate: col\n }}</a>\n </ng-template>\n <ng-template novoTemplate=\"buttonCellTemplate\" let-row let-col=\"col\">\n <p [tooltip]=\"col?.action?.tooltip\" tooltipPosition=\"right\" [attr.data-feature-id]=\"col?.attributes?.dataFeatureId\">\n <i\n class=\"bhi-{{ col?.action?.icon }} data-table-icon\"\n (click)=\"col.handlers?.click({ originalEvent: $event, row: row })\"\n [class.disabled]=\"isDisabled(col, row)\"\n ></i>\n </p>\n </ng-template>\n <ng-template novoTemplate=\"dropdownCellTemplate\" let-row let-col=\"col\">\n <novo-dropdown parentScrollSelector=\".novo-data-table-container\" containerClass=\"novo-data-table-dropdown\">\n <button type=\"button\" theme=\"dialogue\" [icon]=\"col.action.icon\" inverse>{{ col.label }}</button>\n <list>\n <item\n *ngFor=\"let option of col?.action?.options\"\n (action)=\"option.handlers.click({ originalEvent: $event?.originalEvent, row: row })\"\n [disabled]=\"isDisabled(option, row)\"\n >\n <span [attr.data-automation-id]=\"option.label\">{{ option.label }}</span>\n </item>\n </list>\n </novo-dropdown>\n </ng-template>\n <ng-template novoTemplate=\"defaultNoResultsMessage\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.noMatchingRecordsMessage }}</h4>\n </ng-template>\n <ng-template novoTemplate=\"defaultEmptyMessage\">\n <h4><i class=\"bhi-search-question\"></i> {{ labels.emptyTableMessage }}</h4>\n </ng-template>\n <ng-template novoTemplate=\"expandedRow\"> You did not provide an \"expandedRow\" template! </ng-template>\n <ng-template #detailRowTemplate let-row>\n <div class=\"novo-data-table-detail-row\" [@expand] style=\"overflow: hidden\">\n <ng-container *ngTemplateOutlet=\"templates['expandedRow']; context: { $implicit: row }\"></ng-container>\n </div>\n </ng-template>\n <!-- CUSTOM CELLS PASSED IN -->\n <ng-content></ng-content>\n ",
|
|
8444
8495
|
changeDetection: core.ChangeDetectionStrategy.OnPush,
|
|
8445
8496
|
providers: [DataTableState]
|
|
8446
8497
|
},] }
|
|
@@ -8460,6 +8511,7 @@
|
|
|
8460
8511
|
displayedColumns: [{ type: core.Input }],
|
|
8461
8512
|
paginationOptions: [{ type: core.Input }],
|
|
8462
8513
|
searchOptions: [{ type: core.Input }],
|
|
8514
|
+
selectionOptions: [{ type: core.Input }],
|
|
8463
8515
|
defaultSort: [{ type: core.Input }],
|
|
8464
8516
|
name: [{ type: core.Input }],
|
|
8465
8517
|
allowMultipleFilters: [{ type: core.Input }],
|
|
@@ -8469,6 +8521,7 @@
|
|
|
8469
8521
|
templates: [{ type: core.Input }],
|
|
8470
8522
|
fixedHeader: [{ type: core.Input }],
|
|
8471
8523
|
paginatorDataFeatureId: [{ type: core.Input }],
|
|
8524
|
+
maxSelected: [{ type: core.Input }],
|
|
8472
8525
|
dataTableService: [{ type: core.Input }],
|
|
8473
8526
|
rows: [{ type: core.Input }],
|
|
8474
8527
|
outsideFilter: [{ type: core.Input }],
|
|
@@ -26931,7 +26984,7 @@
|
|
|
26931
26984
|
{ type: core.Component, args: [{
|
|
26932
26985
|
selector: 'novo-address',
|
|
26933
26986
|
providers: [ADDRESS_VALUE_ACCESSOR],
|
|
26934
|
-
template: "\n <span\n *ngIf=\"!config?.address1?.hidden\"\n class=\"street-address\"\n [class.invalid]=\"invalid.address1\"\n [class.focus]=\"focused.address1\"\n [class.disabled]=\"disabled.address1\"\n >\n <i\n *ngIf=\"config.address1.required\"\n class=\"required-indicator address1\"\n [ngClass]=\"{ 'bhi-circle': !valid.address1, 'bhi-check': valid.address1 }\"\n >\n </i>\n <input\n [class.maxlength-error]=\"invalidMaxlength.address1\"\n type=\"text\"\n id=\"address1\"\n name=\"address1\"\n [placeholder]=\"config.address1.label\"\n [maxlength]=\"config?.address1?.maxlength\"\n autocomplete=\"shipping street-address address-line-1\"\n [(ngModel)]=\"model.address1\"\n (ngModelChange)=\"updateControl()\"\n (focus)=\"isFocused($event, 'address1')\"\n (blur)=\"isBlurred($event, 'address1')\"\n (input)=\"onInput($event, 'address1')\"\n />\n </span>\n <span\n *ngIf=\"!config?.address2?.hidden\"\n class=\"apt suite\"\n [class.invalid]=\"invalid.address2\"\n [class.focus]=\"focused.address2\"\n [class.disabled]=\"disabled.address2\"\n >\n <i\n *ngIf=\"config.address2.required\"\n class=\"required-indicator address2\"\n [ngClass]=\"{ 'bhi-circle': !valid.address2, 'bhi-check': valid.address2 }\"\n >\n </i>\n <input\n [class.maxlength-error]=\"invalidMaxlength.address2\"\n type=\"text\"\n id=\"address2\"\n name=\"address2\"\n [placeholder]=\"config.address2.label\"\n [maxlength]=\"config?.address2?.maxlength\"\n autocomplete=\"shipping address-line-2\"\n [(ngModel)]=\"model.address2\"\n (ngModelChange)=\"updateControl()\"\n (focus)=\"isFocused($event, 'address2')\"\n (blur)=\"isBlurred($event, 'address2')\"\n (input)=\"onInput($event, 'address2')\"\n />\n </span>\n <span\n *ngIf=\"!config?.city?.hidden\"\n class=\"city locality\"\n [class.invalid]=\"invalid.city\"\n [class.focus]=\"focused.city\"\n [class.disabled]=\"disabled.city\"\n >\n <i *ngIf=\"config.city.required\" class=\"required-indicator\" [ngClass]=\"{ 'bhi-circle': !valid.city, 'bhi-check': valid.city }\"> </i>\n <input\n [class.maxlength-error]=\"invalidMaxlength.city\"\n type=\"text\"\n id=\"city\"\n name=\"city\"\n [placeholder]=\"config.city.label\"\n autocomplete=\"shipping city locality\"\n [maxlength]=\"config?.city?.maxlength\"\n [(ngModel)]=\"model.city\"\n (ngModelChange)=\"updateControl()\"\n (focus)=\"isFocused($event, 'city')\"\n (blur)=\"isBlurred($event, 'city')\"\n (input)=\"onInput($event, 'city')\"\n />\n </span>\n <span\n *ngIf=\"!config?.state?.hidden\"\n class=\"state region\"\n [class.invalid]=\"invalid.state\"\n [class.focus]=\"focused.state\"\n [class.disabled]=\"disabled.state\"\n [tooltip]=\"tooltip.state\"\n >\n <i *ngIf=\"config.state.required\" class=\"required-indicator\" [ngClass]=\"{ 'bhi-circle': !valid.state, 'bhi-check': valid.state }\"> </i>\n <novo-picker\n [config]=\"config?.state?.pickerConfig\"\n [placeholder]=\"config?.state?.label\"\n (changed)=\"onStateChange($event)\"\n autocomplete=\"shipping region\"\n [(ngModel)]=\"model.state\"\n [disablePickerInput]=\"disabled.state\"\n ></novo-picker>\n </span>\n <span\n *ngIf=\"!config?.zip?.hidden\"\n class=\"zip postal-code\"\n [class.invalid]=\"invalid.zip\"\n [class.focus]=\"focused.zip\"\n [class.disabled]=\"disabled.zip\"\n >\n <i *ngIf=\"config.zip.required\" class=\"required-indicator\" [ngClass]=\"{ 'bhi-circle': !valid.zip, 'bhi-check': valid.zip }\"> </i>\n <input\n [class.maxlength-error]=\"invalidMaxlength.zip\"\n type=\"text\"\n id=\"zip\"\n name=\"zip\"\n [placeholder]=\"config.zip.label\"\n autocomplete=\"shipping postal-code\"\n [maxlength]=\"config?.zip?.maxlength\"\n [(ngModel)]=\"model.zip\"\n (ngModelChange)=\"updateControl()\"\n (focus)=\"isFocused($event, 'zip')\"\n (blur)=\"isBlurred($event, 'zip')\"\n (input)=\"onInput($event, 'zip')\"\n />\n </span>\n <span\n *ngIf=\"!config?.countryID?.hidden\"\n class=\"country-name\"\n [class.invalid]=\"invalid.countryID\"\n [class.focus]=\"focused.countryID\"\n [class.disabled]=\"disabled.countryID\"\n >\n <i\n *ngIf=\"config.countryID.required\"\n class=\"required-indicator\"\n [ngClass]=\"{ 'bhi-circle': !valid.countryID, 'bhi-check': valid.countryID }\"\n >\n </i>\n <novo-picker\n [config]=\"config?.countryID?.pickerConfig\"\n [placeholder]=\"config.countryID.label\"\n (changed)=\"onCountryChange($event)\"\n autocomplete=\"shipping country\"\n [(ngModel)]=\"model.countryID\"\n [disablePickerInput]=\"disabled.countryID\"\n ></novo-picker>\n </span>\n "
|
|
26987
|
+
template: "\n <span\n *ngIf=\"!config?.address1?.hidden\"\n class=\"street-address\"\n [class.invalid]=\"invalid.address1\"\n [class.focus]=\"focused.address1\"\n [class.disabled]=\"disabled.address1\"\n >\n <i\n *ngIf=\"config.address1.required\"\n class=\"required-indicator address1\"\n [ngClass]=\"{ 'bhi-circle': !valid.address1, 'bhi-check': valid.address1 }\"\n >\n </i>\n <input\n [class.maxlength-error]=\"invalidMaxlength.address1\"\n type=\"text\"\n id=\"address1\"\n name=\"address1\"\n [placeholder]=\"config.address1.label\"\n [maxlength]=\"config?.address1?.maxlength\"\n autocomplete=\"shipping street-address address-line-1\"\n [(ngModel)]=\"model.address1\"\n (ngModelChange)=\"updateControl()\"\n (focus)=\"isFocused($event, 'address1')\"\n (blur)=\"isBlurred($event, 'address1')\"\n (input)=\"onInput($event, 'address1')\"\n [disabled]=\"disabled.address1\"\n />\n </span>\n <span\n *ngIf=\"!config?.address2?.hidden\"\n class=\"apt suite\"\n [class.invalid]=\"invalid.address2\"\n [class.focus]=\"focused.address2\"\n [class.disabled]=\"disabled.address2\"\n >\n <i\n *ngIf=\"config.address2.required\"\n class=\"required-indicator address2\"\n [ngClass]=\"{ 'bhi-circle': !valid.address2, 'bhi-check': valid.address2 }\"\n >\n </i>\n <input\n [class.maxlength-error]=\"invalidMaxlength.address2\"\n type=\"text\"\n id=\"address2\"\n name=\"address2\"\n [placeholder]=\"config.address2.label\"\n [maxlength]=\"config?.address2?.maxlength\"\n autocomplete=\"shipping address-line-2\"\n [(ngModel)]=\"model.address2\"\n (ngModelChange)=\"updateControl()\"\n (focus)=\"isFocused($event, 'address2')\"\n (blur)=\"isBlurred($event, 'address2')\"\n (input)=\"onInput($event, 'address2')\"\n [disabled]=\"disabled.address2\"\n />\n </span>\n <span\n *ngIf=\"!config?.city?.hidden\"\n class=\"city locality\"\n [class.invalid]=\"invalid.city\"\n [class.focus]=\"focused.city\"\n [class.disabled]=\"disabled.city\"\n >\n <i *ngIf=\"config.city.required\" class=\"required-indicator\" [ngClass]=\"{ 'bhi-circle': !valid.city, 'bhi-check': valid.city }\"> </i>\n <input\n [class.maxlength-error]=\"invalidMaxlength.city\"\n type=\"text\"\n id=\"city\"\n name=\"city\"\n [placeholder]=\"config.city.label\"\n autocomplete=\"shipping city locality\"\n [maxlength]=\"config?.city?.maxlength\"\n [(ngModel)]=\"model.city\"\n (ngModelChange)=\"updateControl()\"\n (focus)=\"isFocused($event, 'city')\"\n (blur)=\"isBlurred($event, 'city')\"\n (input)=\"onInput($event, 'city')\"\n [disabled]=\"disabled.city\"\n />\n </span>\n <span\n *ngIf=\"!config?.state?.hidden\"\n class=\"state region\"\n [class.invalid]=\"invalid.state\"\n [class.focus]=\"focused.state\"\n [class.disabled]=\"disabled.state\"\n [tooltip]=\"tooltip.state\"\n >\n <i *ngIf=\"config.state.required\" class=\"required-indicator\" [ngClass]=\"{ 'bhi-circle': !valid.state, 'bhi-check': valid.state }\"> </i>\n <novo-picker\n [config]=\"config?.state?.pickerConfig\"\n [placeholder]=\"config?.state?.label\"\n (changed)=\"onStateChange($event)\"\n autocomplete=\"shipping region\"\n [(ngModel)]=\"model.state\"\n [disablePickerInput]=\"disabled.state\"\n ></novo-picker>\n </span>\n <span\n *ngIf=\"!config?.zip?.hidden\"\n class=\"zip postal-code\"\n [class.invalid]=\"invalid.zip\"\n [class.focus]=\"focused.zip\"\n [class.disabled]=\"disabled.zip\"\n >\n <i *ngIf=\"config.zip.required\" class=\"required-indicator\" [ngClass]=\"{ 'bhi-circle': !valid.zip, 'bhi-check': valid.zip }\"> </i>\n <input\n [class.maxlength-error]=\"invalidMaxlength.zip\"\n type=\"text\"\n id=\"zip\"\n name=\"zip\"\n [placeholder]=\"config.zip.label\"\n autocomplete=\"shipping postal-code\"\n [maxlength]=\"config?.zip?.maxlength\"\n [(ngModel)]=\"model.zip\"\n (ngModelChange)=\"updateControl()\"\n (focus)=\"isFocused($event, 'zip')\"\n (blur)=\"isBlurred($event, 'zip')\"\n (input)=\"onInput($event, 'zip')\"\n [disabled]=\"disabled.zip\"\n />\n </span>\n <span\n *ngIf=\"!config?.countryID?.hidden\"\n class=\"country-name\"\n [class.invalid]=\"invalid.countryID\"\n [class.focus]=\"focused.countryID\"\n [class.disabled]=\"disabled.countryID\"\n >\n <i\n *ngIf=\"config.countryID.required\"\n class=\"required-indicator\"\n [ngClass]=\"{ 'bhi-circle': !valid.countryID, 'bhi-check': valid.countryID }\"\n >\n </i>\n <novo-picker\n [config]=\"config?.countryID?.pickerConfig\"\n [placeholder]=\"config.countryID.label\"\n (changed)=\"onCountryChange($event)\"\n autocomplete=\"shipping country\"\n [(ngModel)]=\"model.countryID\"\n [disablePickerInput]=\"disabled.countryID\"\n ></novo-picker>\n </span>\n "
|
|
26935
26988
|
},] }
|
|
26936
26989
|
];
|
|
26937
26990
|
NovoAddressElement.ctorParameters = function () { return [
|
|
@@ -28658,6 +28711,7 @@
|
|
|
28658
28711
|
_this.dataTable = dataTable;
|
|
28659
28712
|
_this.ref = ref;
|
|
28660
28713
|
_this.role = 'gridcell';
|
|
28714
|
+
_this.maxSelected = undefined;
|
|
28661
28715
|
_this.checked = false;
|
|
28662
28716
|
renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', "novo-checkbox-column-" + columnDef.cssClassFriendlyName);
|
|
28663
28717
|
renderer.addClass(elementRef.nativeElement, "novo-checkbox-column-" + columnDef.cssClassFriendlyName);
|
|
@@ -28672,11 +28726,23 @@
|
|
|
28672
28726
|
});
|
|
28673
28727
|
return _this;
|
|
28674
28728
|
}
|
|
28729
|
+
Object.defineProperty(NovoDataTableCheckboxCell.prototype, "isAtLimit", {
|
|
28730
|
+
get: function () {
|
|
28731
|
+
return this.maxSelected && this.dataTable.state.selectedRows.size >= this.maxSelected && !this.checked;
|
|
28732
|
+
},
|
|
28733
|
+
enumerable: false,
|
|
28734
|
+
configurable: true
|
|
28735
|
+
});
|
|
28675
28736
|
NovoDataTableCheckboxCell.prototype.ngOnInit = function () {
|
|
28676
28737
|
this.checked = this.dataTable.isSelected(this.row);
|
|
28677
28738
|
};
|
|
28678
28739
|
NovoDataTableCheckboxCell.prototype.onClick = function () {
|
|
28679
|
-
|
|
28740
|
+
if (!this.isAtLimit) {
|
|
28741
|
+
this.dataTable.selectRow(this.row);
|
|
28742
|
+
}
|
|
28743
|
+
};
|
|
28744
|
+
NovoDataTableCheckboxCell.prototype.getTooltip = function () {
|
|
28745
|
+
return (this.isAtLimit) ? 'More than ' + this.maxSelected + ' items are not able to be selected at one time' : '';
|
|
28680
28746
|
};
|
|
28681
28747
|
NovoDataTableCheckboxCell.prototype.ngOnDestroy = function () {
|
|
28682
28748
|
if (this.selectionSubscription) {
|
|
@@ -28691,7 +28757,7 @@
|
|
|
28691
28757
|
NovoDataTableCheckboxCell.decorators = [
|
|
28692
28758
|
{ type: core.Component, args: [{
|
|
28693
28759
|
selector: 'novo-data-table-checkbox-cell',
|
|
28694
|
-
template: "\n <div class=\"data-table-checkbox\" (click)=\"onClick()\">\n <input type=\"checkbox\" [checked]=\"checked\">\n <label>\n <i [class.bhi-checkbox-empty]=\"!checked\"\n [class.bhi-checkbox-filled]=\"checked\"></i>\n </label>\n </div>\n ",
|
|
28760
|
+
template: "\n <div class=\"data-table-checkbox\" (click)=\"onClick()\" [tooltip]=\"getTooltip()\" tooltipPosition=\"right\">\n <input type=\"checkbox\" [checked]=\"checked\">\n <label>\n <i [class.bhi-checkbox-disabled]=\"isAtLimit\"\n [class.bhi-checkbox-empty]=\"!checked\"\n [class.bhi-checkbox-filled]=\"checked\"></i>\n </label>\n </div>\n ",
|
|
28695
28761
|
changeDetection: core.ChangeDetectionStrategy.OnPush
|
|
28696
28762
|
},] }
|
|
28697
28763
|
];
|
|
@@ -28704,7 +28770,8 @@
|
|
|
28704
28770
|
]; };
|
|
28705
28771
|
NovoDataTableCheckboxCell.propDecorators = {
|
|
28706
28772
|
role: [{ type: core.HostBinding, args: ['attr.role',] }],
|
|
28707
|
-
row: [{ type: core.Input }]
|
|
28773
|
+
row: [{ type: core.Input }],
|
|
28774
|
+
maxSelected: [{ type: core.Input }]
|
|
28708
28775
|
};
|
|
28709
28776
|
|
|
28710
28777
|
var NovoDataTableExpandCell = /** @class */ (function (_super) {
|
|
@@ -28850,13 +28917,210 @@
|
|
|
28850
28917
|
role: [{ type: core.HostBinding, args: ['attr.role',] }]
|
|
28851
28918
|
};
|
|
28852
28919
|
|
|
28920
|
+
// NG2
|
|
28921
|
+
var NovoToastElement = /** @class */ (function () {
|
|
28922
|
+
function NovoToastElement(sanitizer) {
|
|
28923
|
+
this.sanitizer = sanitizer;
|
|
28924
|
+
this.theme = 'danger';
|
|
28925
|
+
this.icon = 'caution';
|
|
28926
|
+
this.hasDialogue = false;
|
|
28927
|
+
this.isCloseable = false;
|
|
28928
|
+
this.closed = new core.EventEmitter();
|
|
28929
|
+
this.show = false;
|
|
28930
|
+
this.animate = false;
|
|
28931
|
+
this.parent = null;
|
|
28932
|
+
this.launched = false;
|
|
28933
|
+
}
|
|
28934
|
+
Object.defineProperty(NovoToastElement.prototype, "message", {
|
|
28935
|
+
set: function (m) {
|
|
28936
|
+
this._message = this.sanitizer.bypassSecurityTrustHtml(m);
|
|
28937
|
+
},
|
|
28938
|
+
enumerable: false,
|
|
28939
|
+
configurable: true
|
|
28940
|
+
});
|
|
28941
|
+
NovoToastElement.prototype.ngOnInit = function () {
|
|
28942
|
+
if (!this.launched) {
|
|
28943
|
+
// clear position and time
|
|
28944
|
+
this.position = null;
|
|
28945
|
+
this.time = null;
|
|
28946
|
+
// set icon and styling
|
|
28947
|
+
this.iconClass = "bhi-" + this.icon;
|
|
28948
|
+
this.alertTheme = this.theme + " toast-container embedded";
|
|
28949
|
+
if (this.hasDialogue) {
|
|
28950
|
+
this.alertTheme += ' dialogue';
|
|
28951
|
+
}
|
|
28952
|
+
}
|
|
28953
|
+
};
|
|
28954
|
+
NovoToastElement.prototype.ngOnChanges = function (changes) {
|
|
28955
|
+
// set icon and styling
|
|
28956
|
+
this.iconClass = "bhi-" + this.icon;
|
|
28957
|
+
this.alertTheme = this.theme + " toast-container embedded";
|
|
28958
|
+
if (this.hasDialogue) {
|
|
28959
|
+
this.alertTheme += ' dialogue';
|
|
28960
|
+
}
|
|
28961
|
+
};
|
|
28962
|
+
NovoToastElement.prototype.clickHandler = function (event) {
|
|
28963
|
+
if (!this.isCloseable) {
|
|
28964
|
+
if (event) {
|
|
28965
|
+
event.stopPropagation();
|
|
28966
|
+
event.preventDefault();
|
|
28967
|
+
}
|
|
28968
|
+
if (this.parent) {
|
|
28969
|
+
this.parent.hide(this);
|
|
28970
|
+
}
|
|
28971
|
+
else {
|
|
28972
|
+
this.closed.emit({ closed: true });
|
|
28973
|
+
}
|
|
28974
|
+
}
|
|
28975
|
+
};
|
|
28976
|
+
NovoToastElement.prototype.close = function (event) {
|
|
28977
|
+
if (event) {
|
|
28978
|
+
event.stopPropagation();
|
|
28979
|
+
event.preventDefault();
|
|
28980
|
+
}
|
|
28981
|
+
if (this.parent) {
|
|
28982
|
+
this.parent.hide(this);
|
|
28983
|
+
}
|
|
28984
|
+
else {
|
|
28985
|
+
this.closed.emit({ closed: true });
|
|
28986
|
+
}
|
|
28987
|
+
};
|
|
28988
|
+
return NovoToastElement;
|
|
28989
|
+
}());
|
|
28990
|
+
NovoToastElement.decorators = [
|
|
28991
|
+
{ type: core.Component, args: [{
|
|
28992
|
+
selector: 'novo-toast',
|
|
28993
|
+
host: {
|
|
28994
|
+
'[class]': 'alertTheme',
|
|
28995
|
+
'[class.show]': 'show',
|
|
28996
|
+
'[class.animate]': 'animate',
|
|
28997
|
+
'[class.embedded]': 'embedded',
|
|
28998
|
+
'(click)': '!isCloseable && clickHandler($event)',
|
|
28999
|
+
},
|
|
29000
|
+
template: "\n <div class=\"toast-icon\">\n <i [ngClass]=\"iconClass\"></i>\n </div>\n <div class=\"toast-content\">\n <h5 *ngIf=\"title\">{{title}}</h5>\n <p *ngIf=\"_message\" [class.message-only]=\"!title\" [innerHtml]=\"_message\"></p>\n <div *ngIf=\"link\" class=\"link-generated\">\n <input type=\"text\" [value]=\"link\" onfocus=\"this.select();\"/>\n </div>\n <div class=\"dialogue\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"close-icon\" *ngIf=\"isCloseable\" (click)=\"close($event)\">\n <i class=\"bhi-times\"></i>\n </div>\n "
|
|
29001
|
+
},] }
|
|
29002
|
+
];
|
|
29003
|
+
NovoToastElement.ctorParameters = function () { return [
|
|
29004
|
+
{ type: platformBrowser.DomSanitizer }
|
|
29005
|
+
]; };
|
|
29006
|
+
NovoToastElement.propDecorators = {
|
|
29007
|
+
theme: [{ type: core.Input }],
|
|
29008
|
+
icon: [{ type: core.Input }],
|
|
29009
|
+
title: [{ type: core.Input }],
|
|
29010
|
+
hasDialogue: [{ type: core.Input }],
|
|
29011
|
+
link: [{ type: core.Input }],
|
|
29012
|
+
isCloseable: [{ type: core.Input }],
|
|
29013
|
+
message: [{ type: core.Input }],
|
|
29014
|
+
closed: [{ type: core.Output }]
|
|
29015
|
+
};
|
|
29016
|
+
|
|
29017
|
+
// NG2
|
|
29018
|
+
var NovoToastService = /** @class */ (function () {
|
|
29019
|
+
function NovoToastService(componentUtils) {
|
|
29020
|
+
this.componentUtils = componentUtils;
|
|
29021
|
+
this.references = [];
|
|
29022
|
+
this.icons = { default: 'bell', success: 'check', info: 'info', warning: 'warning', danger: 'remove' };
|
|
29023
|
+
this.defaults = { hideDelay: 3500, position: 'growlTopRight', theme: 'default' };
|
|
29024
|
+
}
|
|
29025
|
+
Object.defineProperty(NovoToastService.prototype, "parentViewContainer", {
|
|
29026
|
+
set: function (view) {
|
|
29027
|
+
this._parentViewContainer = view;
|
|
29028
|
+
},
|
|
29029
|
+
enumerable: false,
|
|
29030
|
+
configurable: true
|
|
29031
|
+
});
|
|
29032
|
+
NovoToastService.prototype.alert = function (options, toastElement) {
|
|
29033
|
+
var _this = this;
|
|
29034
|
+
if (toastElement === void 0) { toastElement = NovoToastElement; }
|
|
29035
|
+
return new Promise(function (resolve) {
|
|
29036
|
+
if (!_this._parentViewContainer) {
|
|
29037
|
+
console.error('No parent view container specified for the ToastService. Set it inside your main application. \nthis.toastService.parentViewContainer = view (ViewContainerRef)');
|
|
29038
|
+
return;
|
|
29039
|
+
}
|
|
29040
|
+
var toast = _this.componentUtils.append(toastElement, _this._parentViewContainer);
|
|
29041
|
+
_this.references.push(toast);
|
|
29042
|
+
_this.handleAlert(toast.instance, options);
|
|
29043
|
+
resolve(toast);
|
|
29044
|
+
});
|
|
29045
|
+
};
|
|
29046
|
+
NovoToastService.prototype.isVisible = function (toast) {
|
|
29047
|
+
return toast.show;
|
|
29048
|
+
};
|
|
29049
|
+
NovoToastService.prototype.hide = function (toast) {
|
|
29050
|
+
var _this = this;
|
|
29051
|
+
toast.animate = false;
|
|
29052
|
+
setTimeout(function () {
|
|
29053
|
+
toast.show = false;
|
|
29054
|
+
var REF = _this.references.filter(function (x) { return x.instance === toast; })[0];
|
|
29055
|
+
if (REF) {
|
|
29056
|
+
_this.references.splice(_this.references.indexOf(REF), 1);
|
|
29057
|
+
REF.destroy();
|
|
29058
|
+
}
|
|
29059
|
+
}, 300);
|
|
29060
|
+
};
|
|
29061
|
+
NovoToastService.prototype.handleAlert = function (toast, options) {
|
|
29062
|
+
var _this = this;
|
|
29063
|
+
this.setToastOnSession(toast, options);
|
|
29064
|
+
setTimeout(function () {
|
|
29065
|
+
_this.show(toast);
|
|
29066
|
+
}, 20);
|
|
29067
|
+
if (!toast.isCloseable) {
|
|
29068
|
+
this.toastTimer(toast);
|
|
29069
|
+
}
|
|
29070
|
+
};
|
|
29071
|
+
NovoToastService.prototype.setToastOnSession = function (toast, opts) {
|
|
29072
|
+
var OPTIONS = typeof opts === 'object' ? opts : {};
|
|
29073
|
+
toast.parent = this;
|
|
29074
|
+
toast.title = OPTIONS.title || '';
|
|
29075
|
+
toast.message = OPTIONS.message || '';
|
|
29076
|
+
toast.hideDelay = OPTIONS.hideDelay || this.defaults.hideDelay;
|
|
29077
|
+
toast.link = OPTIONS.link || '';
|
|
29078
|
+
toast.isCloseable = OPTIONS.isCloseable || false;
|
|
29079
|
+
var CUSTOM_CLASS = OPTIONS.customClass || '';
|
|
29080
|
+
var ALERT_STYLE = OPTIONS.theme || this.defaults.theme;
|
|
29081
|
+
var ALERT_POSITION = OPTIONS.position || this.defaults.position;
|
|
29082
|
+
var ALERT_ICON = OPTIONS.icon || this.icons.default;
|
|
29083
|
+
toast.iconClass = "bhi-" + ALERT_ICON;
|
|
29084
|
+
toast.launched = true;
|
|
29085
|
+
toast.alertTheme = ALERT_STYLE + " " + ALERT_POSITION + " " + CUSTOM_CLASS + " toast-container launched";
|
|
29086
|
+
};
|
|
29087
|
+
NovoToastService.prototype.show = function (toast) {
|
|
29088
|
+
toast.show = true;
|
|
29089
|
+
setTimeout(addClass, 25);
|
|
29090
|
+
/**
|
|
29091
|
+
* Adds animate class to be called after a timeout
|
|
29092
|
+
**/
|
|
29093
|
+
function addClass() {
|
|
29094
|
+
toast.animate = true;
|
|
29095
|
+
}
|
|
29096
|
+
};
|
|
29097
|
+
NovoToastService.prototype.toastTimer = function (toast) {
|
|
29098
|
+
var _this = this;
|
|
29099
|
+
if (toast.hideDelay < 0) {
|
|
29100
|
+
return;
|
|
29101
|
+
}
|
|
29102
|
+
setTimeout(function () {
|
|
29103
|
+
_this.hide(toast);
|
|
29104
|
+
}, toast.hideDelay);
|
|
29105
|
+
};
|
|
29106
|
+
return NovoToastService;
|
|
29107
|
+
}());
|
|
29108
|
+
NovoToastService.decorators = [
|
|
29109
|
+
{ type: core.Injectable }
|
|
29110
|
+
];
|
|
29111
|
+
NovoToastService.ctorParameters = function () { return [
|
|
29112
|
+
{ type: ComponentUtils }
|
|
29113
|
+
]; };
|
|
29114
|
+
|
|
28853
29115
|
var NovoDataTableCheckboxHeaderCell = /** @class */ (function (_super) {
|
|
28854
29116
|
__extends(NovoDataTableCheckboxHeaderCell, _super);
|
|
28855
|
-
function NovoDataTableCheckboxHeaderCell(columnDef, elementRef, renderer, dataTable, ref) {
|
|
29117
|
+
function NovoDataTableCheckboxHeaderCell(columnDef, elementRef, renderer, dataTable, ref, toaster) {
|
|
28856
29118
|
var _this = _super.call(this, columnDef, elementRef) || this;
|
|
28857
29119
|
_this.dataTable = dataTable;
|
|
28858
29120
|
_this.ref = ref;
|
|
29121
|
+
_this.toaster = toaster;
|
|
28859
29122
|
_this.role = 'columnheader';
|
|
29123
|
+
_this.maxSelected = undefined;
|
|
28860
29124
|
_this.checked = false;
|
|
28861
29125
|
renderer.setAttribute(elementRef.nativeElement, 'data-automation-id', "novo-checkbox-column-header-" + columnDef.cssClassFriendlyName);
|
|
28862
29126
|
renderer.addClass(elementRef.nativeElement, "novo-checkbox-column-" + columnDef.cssClassFriendlyName);
|
|
@@ -28869,6 +29133,8 @@
|
|
|
28869
29133
|
if (event.isPageSizeChange) {
|
|
28870
29134
|
_this.checked = false;
|
|
28871
29135
|
_this.dataTable.selectRows(false);
|
|
29136
|
+
_this.dataTable.state.checkRetainment('pageSize');
|
|
29137
|
+
_this.dataTable.state.reset(false, true);
|
|
28872
29138
|
}
|
|
28873
29139
|
else {
|
|
28874
29140
|
_this.checked = _this.dataTable.allCurrentRowsSelected();
|
|
@@ -28881,6 +29147,13 @@
|
|
|
28881
29147
|
});
|
|
28882
29148
|
return _this;
|
|
28883
29149
|
}
|
|
29150
|
+
Object.defineProperty(NovoDataTableCheckboxHeaderCell.prototype, "isAtLimit", {
|
|
29151
|
+
get: function () {
|
|
29152
|
+
return this.maxSelected && this.dataTable.state.selectedRows.size + this.dataTable.dataSource.data.length > this.maxSelected && !this.checked;
|
|
29153
|
+
},
|
|
29154
|
+
enumerable: false,
|
|
29155
|
+
configurable: true
|
|
29156
|
+
});
|
|
28884
29157
|
NovoDataTableCheckboxHeaderCell.prototype.ngOnDestroy = function () {
|
|
28885
29158
|
if (this.selectionSubscription) {
|
|
28886
29159
|
this.selectionSubscription.unsubscribe();
|
|
@@ -28893,7 +29166,17 @@
|
|
|
28893
29166
|
}
|
|
28894
29167
|
};
|
|
28895
29168
|
NovoDataTableCheckboxHeaderCell.prototype.onClick = function () {
|
|
28896
|
-
|
|
29169
|
+
if (this.isAtLimit) {
|
|
29170
|
+
this.toaster.alert({
|
|
29171
|
+
theme: 'danger',
|
|
29172
|
+
position: 'fixedTop',
|
|
29173
|
+
message: 'Error, more than 500 items are not able to be selected at one time',
|
|
29174
|
+
icon: 'caution',
|
|
29175
|
+
});
|
|
29176
|
+
}
|
|
29177
|
+
else {
|
|
29178
|
+
this.dataTable.selectRows(!this.checked);
|
|
29179
|
+
}
|
|
28897
29180
|
};
|
|
28898
29181
|
return NovoDataTableCheckboxHeaderCell;
|
|
28899
29182
|
}(table.CdkHeaderCell));
|
|
@@ -28909,10 +29192,12 @@
|
|
|
28909
29192
|
{ type: core.ElementRef },
|
|
28910
29193
|
{ type: core.Renderer2 },
|
|
28911
29194
|
{ type: NovoDataTable },
|
|
28912
|
-
{ type: core.ChangeDetectorRef }
|
|
29195
|
+
{ type: core.ChangeDetectorRef },
|
|
29196
|
+
{ type: NovoToastService }
|
|
28913
29197
|
]; };
|
|
28914
29198
|
NovoDataTableCheckboxHeaderCell.propDecorators = {
|
|
28915
|
-
role: [{ type: core.HostBinding, args: ['attr.role',] }]
|
|
29199
|
+
role: [{ type: core.HostBinding, args: ['attr.role',] }],
|
|
29200
|
+
maxSelected: [{ type: core.Input }]
|
|
28916
29201
|
};
|
|
28917
29202
|
|
|
28918
29203
|
var NovoDataTableHeaderCell = /** @class */ (function (_super) {
|
|
@@ -29028,10 +29313,12 @@
|
|
|
29028
29313
|
this.resetSubscription.unsubscribe();
|
|
29029
29314
|
};
|
|
29030
29315
|
NovoDataTablePagination.prototype.selectPage = function (page) {
|
|
29316
|
+
this.state.checkRetainment('page');
|
|
29031
29317
|
this.page = page;
|
|
29032
29318
|
this.emitPageEvent();
|
|
29033
29319
|
};
|
|
29034
29320
|
NovoDataTablePagination.prototype.nextPage = function () {
|
|
29321
|
+
this.state.checkRetainment('page');
|
|
29035
29322
|
if (!this.hasNextPage()) {
|
|
29036
29323
|
return;
|
|
29037
29324
|
}
|
|
@@ -29040,6 +29327,7 @@
|
|
|
29040
29327
|
this.emitPageEvent();
|
|
29041
29328
|
};
|
|
29042
29329
|
NovoDataTablePagination.prototype.previousPage = function () {
|
|
29330
|
+
this.state.checkRetainment('page');
|
|
29043
29331
|
if (!this.hasPreviousPage()) {
|
|
29044
29332
|
return;
|
|
29045
29333
|
}
|
|
@@ -30307,7 +30595,7 @@
|
|
|
30307
30595
|
'[class.novo-expansion-panel-spacing]': '_hasSpacing()',
|
|
30308
30596
|
'[class.novo-expansion-panel-padding]': 'padding',
|
|
30309
30597
|
},
|
|
30310
|
-
styles: ["@-webkit-keyframes rotate{0%{transform:rotate(0deg)}75%{transform:rotate(200deg)}to{transform:rotate(180deg)}}@-webkit-keyframes half-rotate{0%{transform:rotate(45deg)}75%{transform:rotate(100deg)}to{transform:rotate(90deg)}}@-webkit-keyframes rotateBack{0%{transform:rotate(90deg)}to{transform:rotate(0deg)}}@-webkit-keyframes show{0%{opacity:0;transform:translateX(-100%)}75%{transform:translateX(0)}to{opacity:1;transform:translateX(0)}}@keyframes rotate{0%{transform:rotate(0deg)}75%{transform:rotate(200deg)}to{transform:rotate(180deg)}}@keyframes half-rotate{0%{transform:rotate(45deg)}75%{transform:rotate(100deg)}to{transform:rotate(90deg)}}@keyframes rotateBack{0%{transform:rotate(90deg)}to{transform:rotate(0deg)}}@keyframes show{0%{opacity:0;transform:translateX(-100%)}75%{transform:translateX(0)}to{opacity:1;transform:translateX(0)}}.novo-expansion-panel{background:#fff;color:#3d464d}.novo-action-row{border-top-color:#3d464d}.novo-expansion-panel:not(.novo-expanded) .novo-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.novo-expansion-panel:not(.novo-expanded) .novo-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused,.novo-expansion-panel:not(.novo-expanded) .novo-expansion-panel-header:not([aria-disabled=true]):hover{background:rgba(0,0,0,.04)}.novo-expansion-panel-header-title{color:#3d464d}.novo-expansion-indicator:after,.novo-expansion-panel-header-description{color:#999}.novo-expansion-panel-header[aria-disabled=true]{color:#999;pointer-events:none}.novo-expansion-panel-header[aria-disabled=true] .novo-expansion-panel-header-description,.novo-expansion-panel-header[aria-disabled=true] .novo-expansion-panel-header-title{color:inherit}.novo-expansion-panel.novo-expanded[theme=company]{border-top:3px solid #39d}.novo-expansion-panel.novo-expanded[theme=candidate]{border-top:3px solid #4b7}.novo-expansion-panel.novo-expanded[theme=navigation]{border-top:3px solid #2f384f}.novo-expansion-panel.novo-expanded[theme=lead]{border-top:3px solid #a69}.novo-expansion-panel.novo-expanded[theme=contact]{border-top:3px solid #fa4}.novo-expansion-panel.novo-expanded[theme=opportunity]{border-top:3px solid #625}.novo-expansion-panel.novo-expanded[theme=job]{border-top:3px solid #b56}.novo-expansion-panel.novo-expanded[theme=earnCode],.novo-expansion-panel.novo-expanded[theme=jobCode]{border-top:3px solid #696d79}.novo-expansion-panel.novo-expanded[theme=sendout]{border-top:3px solid #747884}.novo-expansion-panel.novo-expanded[theme=placement]{border-top:3px solid #0b344f}.novo-expansion-panel.novo-expanded[theme=corporateuser],.novo-expansion-panel.novo-expanded[theme=credential],.novo-expansion-panel.novo-expanded[theme=distributionList],.novo-expansion-panel.novo-expanded[theme=task],.novo-expansion-panel.novo-expanded[theme=user]{border-top:3px solid #4f5361}.novo-expansion-panel.novo-expanded[theme=aqua]{border-top:3px solid #3bafda}.novo-expansion-panel.novo-expanded[theme=ocean]{border-top:3px solid #4a89dc}.novo-expansion-panel.novo-expanded[theme=mint]{border-top:3px solid #37bc9b}.novo-expansion-panel.novo-expanded[theme=grass]{border-top:3px solid #8cc152}.novo-expansion-panel.novo-expanded[theme=sunflower]{border-top:3px solid #f6b042}.novo-expansion-panel.novo-expanded[theme=bittersweet]{border-top:3px solid #eb6845}.novo-expansion-panel.novo-expanded[theme=grapefruit]{border-top:3px solid #da4453}.novo-expansion-panel.novo-expanded[theme=carnation]{border-top:3px solid #d770ad}.novo-expansion-panel.novo-expanded[theme=lavender]{border-top:3px solid #967adc}.novo-expansion-panel.novo-expanded[theme=positive]{border-top:3px solid #4a89dc}.novo-expansion-panel.novo-expanded[theme=success]{border-top:3px solid #8cc152}.novo-expansion-panel.novo-expanded[theme=negative]{border-top:3px solid #da4453}.novo-expansion-panel.novo-expanded[theme=warning]{border-top:3px solid #f6b042}.novo-expansion-panel.novo-expanded[theme=black]{border-top:3px solid #000}.novo-expansion-panel.novo-expanded[theme=dark]{border-top:3px solid #3d464d}.novo-expansion-panel.novo-expanded[theme=pulse]{border-top:3px solid #3bafda}.novo-expansion-panel.novo-expanded[theme=neutral]{border-top:3px solid #4f5361}.novo-expansion-panel.novo-expanded[theme=navy]{border-top:3px solid #0d2d42}.novo-expansion-panel.novo-expanded[theme=contract]{border-top:3px solid #454ea0}.novo-expansion-panel.novo-expanded[theme=mountain]{border-top:3px solid #9678b6}.novo-expansion-panel.novo-expanded[theme=billableCharge],.novo-expansion-panel.novo-expanded[theme=invoiceStatement],.novo-expansion-panel.novo-expanded[theme=payableCharge]{border-top:3px solid #696d79}.novo-expansion-panel.novo-expanded[theme=submission]{border-top:3px solid #a9adbb}.novo-expansion-panel.novo-expanded[theme=note]{border-top:3px solid #747884}.novo-expansion-panel.novo-expanded[theme=ash]{border-top:3px solid #a0a0a0}.novo-expansion-panel.novo-expanded[theme=slate]{border-top:3px solid #707070}.novo-expansion-panel.novo-expanded[theme=charcoal]{border-top:3px solid #282828}.novo-expansion-panel.novo-expanded[theme=background]{border-top:3px solid #f4f4f4}.novo-expansion-panel.novo-expanded[theme=background-dark]{border-top:3px solid #e2e2e2}.novo-expansion-panel.novo-expanded[theme=white]{border-top:3px solid #fff}.novo-expansion-panel.novo-expanded[theme=grey]{border-top:3px solid #999}.novo-expansion-panel.novo-expanded[theme=off-white]{border-top:3px solid #f4f4f4}.novo-expansion-panel.novo-expanded[theme=light]{border-top:3px solid #d9dadc}.novo-expansion-panel.novo-expanded[theme=empty]{border-top:3px solid #cccdcc}.novo-expansion-panel.novo-expanded[theme=sand]{border-top:3px solid #f4f4f4}.novo-expansion-panel.novo-expanded[theme=silver]{border-top:3px solid #e2e2e2}.novo-expansion-panel.novo-expanded[theme=stone]{border-top:3px solid #bebebe}.novo-expansion-panel{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-sizing:content-box;display:block;margin:0 16px;transition:margin 225ms ease-in-out}.novo-expansion-panel.novo-expanded{margin:16px 4px}.novo-expansion-panel.novo-expanded:first-child{margin-top:0}.novo-expansion-panel.novo-expanded:last-child{margin-bottom:0}.novo-expansion-panel-content{overflow:hidden}.novo-expansion-panel-content.novo-expanded{overflow:visible}.novo-expansion-panel-padding .novo-expansion-panel-body{padding:0 24px 16px}.novo-accordion .novo-expansion-panel-spacing:first-child{margin-top:0}.novo-accordion .novo-expansion-panel-spacing:last-child{margin-bottom:0}.novo-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px}.novo-action-row button.novo-button{margin-left:8px}[dir=rtl] .novo-action-row button.novo-button{margin-left:0;margin-right:8px}"]
|
|
30598
|
+
styles: ["@-webkit-keyframes rotate{0%{transform:rotate(0deg)}75%{transform:rotate(200deg)}to{transform:rotate(180deg)}}@-webkit-keyframes half-rotate{0%{transform:rotate(45deg)}75%{transform:rotate(100deg)}to{transform:rotate(90deg)}}@-webkit-keyframes rotateBack{0%{transform:rotate(90deg)}to{transform:rotate(0deg)}}@-webkit-keyframes show{0%{opacity:0;transform:translateX(-100%)}75%{transform:translateX(0)}to{opacity:1;transform:translateX(0)}}@keyframes rotate{0%{transform:rotate(0deg)}75%{transform:rotate(200deg)}to{transform:rotate(180deg)}}@keyframes half-rotate{0%{transform:rotate(45deg)}75%{transform:rotate(100deg)}to{transform:rotate(90deg)}}@keyframes rotateBack{0%{transform:rotate(90deg)}to{transform:rotate(0deg)}}@keyframes show{0%{opacity:0;transform:translateX(-100%)}75%{transform:translateX(0)}to{opacity:1;transform:translateX(0)}}.novo-expansion-panel{background:#fff;color:#3d464d}.novo-action-row{border-top-color:#3d464d}.novo-expansion-panel:not(.novo-expanded) .novo-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.novo-expansion-panel:not(.novo-expanded) .novo-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused,.novo-expansion-panel:not(.novo-expanded) .novo-expansion-panel-header:not([aria-disabled=true]):hover{background:rgba(0,0,0,.04)}.novo-expansion-panel-header-title{color:#3d464d}.novo-expansion-indicator:after,.novo-expansion-panel-header-description{color:#999}.novo-expansion-panel-header[aria-disabled=true]{color:#999;pointer-events:none}.novo-expansion-panel-header[aria-disabled=true] .novo-expansion-panel-header-description,.novo-expansion-panel-header[aria-disabled=true] .novo-expansion-panel-header-title{color:inherit}.novo-expansion-panel.novo-expanded[theme=company]{border-top:3px solid #39d}.novo-expansion-panel.novo-expanded[theme=candidate]{border-top:3px solid #4b7}.novo-expansion-panel.novo-expanded[theme=navigation]{border-top:3px solid #2f384f}.novo-expansion-panel.novo-expanded[theme=lead]{border-top:3px solid #a69}.novo-expansion-panel.novo-expanded[theme=contact]{border-top:3px solid #fa4}.novo-expansion-panel.novo-expanded[theme=opportunity]{border-top:3px solid #625}.novo-expansion-panel.novo-expanded[theme=job]{border-top:3px solid #b56}.novo-expansion-panel.novo-expanded[theme=earnCode],.novo-expansion-panel.novo-expanded[theme=jobCode]{border-top:3px solid #696d79}.novo-expansion-panel.novo-expanded[theme=sendout]{border-top:3px solid #747884}.novo-expansion-panel.novo-expanded[theme=placement]{border-top:3px solid #0b344f}.novo-expansion-panel.novo-expanded[theme=corporateuser],.novo-expansion-panel.novo-expanded[theme=credential],.novo-expansion-panel.novo-expanded[theme=distributionList],.novo-expansion-panel.novo-expanded[theme=task],.novo-expansion-panel.novo-expanded[theme=user]{border-top:3px solid #4f5361}.novo-expansion-panel.novo-expanded[theme=aqua]{border-top:3px solid #3bafda}.novo-expansion-panel.novo-expanded[theme=ocean]{border-top:3px solid #4a89dc}.novo-expansion-panel.novo-expanded[theme=mint]{border-top:3px solid #37bc9b}.novo-expansion-panel.novo-expanded[theme=grass]{border-top:3px solid #8cc152}.novo-expansion-panel.novo-expanded[theme=sunflower]{border-top:3px solid #f6b042}.novo-expansion-panel.novo-expanded[theme=bittersweet]{border-top:3px solid #eb6845}.novo-expansion-panel.novo-expanded[theme=grapefruit]{border-top:3px solid #da4453}.novo-expansion-panel.novo-expanded[theme=carnation]{border-top:3px solid #d770ad}.novo-expansion-panel.novo-expanded[theme=lavender]{border-top:3px solid #967adc}.novo-expansion-panel.novo-expanded[theme=positive]{border-top:3px solid #4a89dc}.novo-expansion-panel.novo-expanded[theme=success]{border-top:3px solid #8cc152}.novo-expansion-panel.novo-expanded[theme=negative]{border-top:3px solid #da4453}.novo-expansion-panel.novo-expanded[theme=warning]{border-top:3px solid #f6b042}.novo-expansion-panel.novo-expanded[theme=black]{border-top:3px solid #000}.novo-expansion-panel.novo-expanded[theme=dark]{border-top:3px solid #3d464d}.novo-expansion-panel.novo-expanded[theme=pulse]{border-top:3px solid #3bafda}.novo-expansion-panel.novo-expanded[theme=neutral]{border-top:3px solid #4f5361}.novo-expansion-panel.novo-expanded[theme=navy]{border-top:3px solid #0d2d42}.novo-expansion-panel.novo-expanded[theme=contract]{border-top:3px solid #454ea0}.novo-expansion-panel.novo-expanded[theme=mountain]{border-top:3px solid #9678b6}.novo-expansion-panel.novo-expanded[theme=billableCharge],.novo-expansion-panel.novo-expanded[theme=invoiceStatement],.novo-expansion-panel.novo-expanded[theme=payableCharge]{border-top:3px solid #696d79}.novo-expansion-panel.novo-expanded[theme=submission]{border-top:3px solid #a9adbb}.novo-expansion-panel.novo-expanded[theme=note]{border-top:3px solid #747884}.novo-expansion-panel.novo-expanded[theme=ash]{border-top:3px solid #a0a0a0}.novo-expansion-panel.novo-expanded[theme=slate]{border-top:3px solid #707070}.novo-expansion-panel.novo-expanded[theme=charcoal]{border-top:3px solid #282828}.novo-expansion-panel.novo-expanded[theme=jobShift]{border-top:3px solid #454ea0}.novo-expansion-panel.novo-expanded[theme=background]{border-top:3px solid #f4f4f4}.novo-expansion-panel.novo-expanded[theme=background-dark]{border-top:3px solid #e2e2e2}.novo-expansion-panel.novo-expanded[theme=white]{border-top:3px solid #fff}.novo-expansion-panel.novo-expanded[theme=grey]{border-top:3px solid #999}.novo-expansion-panel.novo-expanded[theme=off-white]{border-top:3px solid #f4f4f4}.novo-expansion-panel.novo-expanded[theme=light]{border-top:3px solid #d9dadc}.novo-expansion-panel.novo-expanded[theme=empty]{border-top:3px solid #cccdcc}.novo-expansion-panel.novo-expanded[theme=sand]{border-top:3px solid #f4f4f4}.novo-expansion-panel.novo-expanded[theme=silver]{border-top:3px solid #e2e2e2}.novo-expansion-panel.novo-expanded[theme=stone]{border-top:3px solid #bebebe}.novo-expansion-panel{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-sizing:content-box;display:block;margin:0 16px;transition:margin 225ms ease-in-out}.novo-expansion-panel.novo-expanded{margin:16px 4px}.novo-expansion-panel.novo-expanded:first-child{margin-top:0}.novo-expansion-panel.novo-expanded:last-child{margin-bottom:0}.novo-expansion-panel-content{overflow:hidden}.novo-expansion-panel-content.novo-expanded{overflow:visible}.novo-expansion-panel-padding .novo-expansion-panel-body{padding:0 24px 16px}.novo-accordion .novo-expansion-panel-spacing:first-child{margin-top:0}.novo-accordion .novo-expansion-panel-spacing:last-child{margin-bottom:0}.novo-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px}.novo-action-row button.novo-button{margin-left:8px}[dir=rtl] .novo-action-row button.novo-button{margin-left:0;margin-right:8px}"]
|
|
30311
30599
|
},] }
|
|
30312
30600
|
];
|
|
30313
30601
|
NovoExpansionPanel.ctorParameters = function () { return [
|
|
@@ -31800,6 +32088,7 @@
|
|
|
31800
32088
|
})
|
|
31801
32089
|
: [];
|
|
31802
32090
|
var fields = meta.fields.map(function (field) {
|
|
32091
|
+
field.parentEntity = meta.entity;
|
|
31803
32092
|
if (!field.hasOwnProperty('sortOrder')) {
|
|
31804
32093
|
field.sortOrder = Number.MAX_SAFE_INTEGER - 1;
|
|
31805
32094
|
}
|
|
@@ -32230,201 +32519,6 @@
|
|
|
32230
32519
|
{ type: ComponentUtils }
|
|
32231
32520
|
]; };
|
|
32232
32521
|
|
|
32233
|
-
// NG2
|
|
32234
|
-
var NovoToastElement = /** @class */ (function () {
|
|
32235
|
-
function NovoToastElement(sanitizer) {
|
|
32236
|
-
this.sanitizer = sanitizer;
|
|
32237
|
-
this.theme = 'danger';
|
|
32238
|
-
this.icon = 'caution';
|
|
32239
|
-
this.hasDialogue = false;
|
|
32240
|
-
this.isCloseable = false;
|
|
32241
|
-
this.closed = new core.EventEmitter();
|
|
32242
|
-
this.show = false;
|
|
32243
|
-
this.animate = false;
|
|
32244
|
-
this.parent = null;
|
|
32245
|
-
this.launched = false;
|
|
32246
|
-
}
|
|
32247
|
-
Object.defineProperty(NovoToastElement.prototype, "message", {
|
|
32248
|
-
set: function (m) {
|
|
32249
|
-
this._message = this.sanitizer.bypassSecurityTrustHtml(m);
|
|
32250
|
-
},
|
|
32251
|
-
enumerable: false,
|
|
32252
|
-
configurable: true
|
|
32253
|
-
});
|
|
32254
|
-
NovoToastElement.prototype.ngOnInit = function () {
|
|
32255
|
-
if (!this.launched) {
|
|
32256
|
-
// clear position and time
|
|
32257
|
-
this.position = null;
|
|
32258
|
-
this.time = null;
|
|
32259
|
-
// set icon and styling
|
|
32260
|
-
this.iconClass = "bhi-" + this.icon;
|
|
32261
|
-
this.alertTheme = this.theme + " toast-container embedded";
|
|
32262
|
-
if (this.hasDialogue) {
|
|
32263
|
-
this.alertTheme += ' dialogue';
|
|
32264
|
-
}
|
|
32265
|
-
}
|
|
32266
|
-
};
|
|
32267
|
-
NovoToastElement.prototype.ngOnChanges = function (changes) {
|
|
32268
|
-
// set icon and styling
|
|
32269
|
-
this.iconClass = "bhi-" + this.icon;
|
|
32270
|
-
this.alertTheme = this.theme + " toast-container embedded";
|
|
32271
|
-
if (this.hasDialogue) {
|
|
32272
|
-
this.alertTheme += ' dialogue';
|
|
32273
|
-
}
|
|
32274
|
-
};
|
|
32275
|
-
NovoToastElement.prototype.clickHandler = function (event) {
|
|
32276
|
-
if (!this.isCloseable) {
|
|
32277
|
-
if (event) {
|
|
32278
|
-
event.stopPropagation();
|
|
32279
|
-
event.preventDefault();
|
|
32280
|
-
}
|
|
32281
|
-
if (this.parent) {
|
|
32282
|
-
this.parent.hide(this);
|
|
32283
|
-
}
|
|
32284
|
-
else {
|
|
32285
|
-
this.closed.emit({ closed: true });
|
|
32286
|
-
}
|
|
32287
|
-
}
|
|
32288
|
-
};
|
|
32289
|
-
NovoToastElement.prototype.close = function (event) {
|
|
32290
|
-
if (event) {
|
|
32291
|
-
event.stopPropagation();
|
|
32292
|
-
event.preventDefault();
|
|
32293
|
-
}
|
|
32294
|
-
if (this.parent) {
|
|
32295
|
-
this.parent.hide(this);
|
|
32296
|
-
}
|
|
32297
|
-
else {
|
|
32298
|
-
this.closed.emit({ closed: true });
|
|
32299
|
-
}
|
|
32300
|
-
};
|
|
32301
|
-
return NovoToastElement;
|
|
32302
|
-
}());
|
|
32303
|
-
NovoToastElement.decorators = [
|
|
32304
|
-
{ type: core.Component, args: [{
|
|
32305
|
-
selector: 'novo-toast',
|
|
32306
|
-
host: {
|
|
32307
|
-
'[class]': 'alertTheme',
|
|
32308
|
-
'[class.show]': 'show',
|
|
32309
|
-
'[class.animate]': 'animate',
|
|
32310
|
-
'[class.embedded]': 'embedded',
|
|
32311
|
-
'(click)': '!isCloseable && clickHandler($event)',
|
|
32312
|
-
},
|
|
32313
|
-
template: "\n <div class=\"toast-icon\">\n <i [ngClass]=\"iconClass\"></i>\n </div>\n <div class=\"toast-content\">\n <h5 *ngIf=\"title\">{{title}}</h5>\n <p *ngIf=\"_message\" [class.message-only]=\"!title\" [innerHtml]=\"_message\"></p>\n <div *ngIf=\"link\" class=\"link-generated\">\n <input type=\"text\" [value]=\"link\" onfocus=\"this.select();\"/>\n </div>\n <div class=\"dialogue\">\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"close-icon\" *ngIf=\"isCloseable\" (click)=\"close($event)\">\n <i class=\"bhi-times\"></i>\n </div>\n "
|
|
32314
|
-
},] }
|
|
32315
|
-
];
|
|
32316
|
-
NovoToastElement.ctorParameters = function () { return [
|
|
32317
|
-
{ type: platformBrowser.DomSanitizer }
|
|
32318
|
-
]; };
|
|
32319
|
-
NovoToastElement.propDecorators = {
|
|
32320
|
-
theme: [{ type: core.Input }],
|
|
32321
|
-
icon: [{ type: core.Input }],
|
|
32322
|
-
title: [{ type: core.Input }],
|
|
32323
|
-
hasDialogue: [{ type: core.Input }],
|
|
32324
|
-
link: [{ type: core.Input }],
|
|
32325
|
-
isCloseable: [{ type: core.Input }],
|
|
32326
|
-
message: [{ type: core.Input }],
|
|
32327
|
-
closed: [{ type: core.Output }]
|
|
32328
|
-
};
|
|
32329
|
-
|
|
32330
|
-
// NG2
|
|
32331
|
-
var NovoToastService = /** @class */ (function () {
|
|
32332
|
-
function NovoToastService(componentUtils) {
|
|
32333
|
-
this.componentUtils = componentUtils;
|
|
32334
|
-
this.references = [];
|
|
32335
|
-
this.icons = { default: 'bell', success: 'check', info: 'info', warning: 'warning', danger: 'remove' };
|
|
32336
|
-
this.defaults = { hideDelay: 3500, position: 'growlTopRight', theme: 'default' };
|
|
32337
|
-
}
|
|
32338
|
-
Object.defineProperty(NovoToastService.prototype, "parentViewContainer", {
|
|
32339
|
-
set: function (view) {
|
|
32340
|
-
this._parentViewContainer = view;
|
|
32341
|
-
},
|
|
32342
|
-
enumerable: false,
|
|
32343
|
-
configurable: true
|
|
32344
|
-
});
|
|
32345
|
-
NovoToastService.prototype.alert = function (options, toastElement) {
|
|
32346
|
-
var _this = this;
|
|
32347
|
-
if (toastElement === void 0) { toastElement = NovoToastElement; }
|
|
32348
|
-
return new Promise(function (resolve) {
|
|
32349
|
-
if (!_this._parentViewContainer) {
|
|
32350
|
-
console.error('No parent view container specified for the ToastService. Set it inside your main application. \nthis.toastService.parentViewContainer = view (ViewContainerRef)');
|
|
32351
|
-
return;
|
|
32352
|
-
}
|
|
32353
|
-
var toast = _this.componentUtils.append(toastElement, _this._parentViewContainer);
|
|
32354
|
-
_this.references.push(toast);
|
|
32355
|
-
_this.handleAlert(toast.instance, options);
|
|
32356
|
-
resolve(toast);
|
|
32357
|
-
});
|
|
32358
|
-
};
|
|
32359
|
-
NovoToastService.prototype.isVisible = function (toast) {
|
|
32360
|
-
return toast.show;
|
|
32361
|
-
};
|
|
32362
|
-
NovoToastService.prototype.hide = function (toast) {
|
|
32363
|
-
var _this = this;
|
|
32364
|
-
toast.animate = false;
|
|
32365
|
-
setTimeout(function () {
|
|
32366
|
-
toast.show = false;
|
|
32367
|
-
var REF = _this.references.filter(function (x) { return x.instance === toast; })[0];
|
|
32368
|
-
if (REF) {
|
|
32369
|
-
_this.references.splice(_this.references.indexOf(REF), 1);
|
|
32370
|
-
REF.destroy();
|
|
32371
|
-
}
|
|
32372
|
-
}, 300);
|
|
32373
|
-
};
|
|
32374
|
-
NovoToastService.prototype.handleAlert = function (toast, options) {
|
|
32375
|
-
var _this = this;
|
|
32376
|
-
this.setToastOnSession(toast, options);
|
|
32377
|
-
setTimeout(function () {
|
|
32378
|
-
_this.show(toast);
|
|
32379
|
-
}, 20);
|
|
32380
|
-
if (!toast.isCloseable) {
|
|
32381
|
-
this.toastTimer(toast);
|
|
32382
|
-
}
|
|
32383
|
-
};
|
|
32384
|
-
NovoToastService.prototype.setToastOnSession = function (toast, opts) {
|
|
32385
|
-
var OPTIONS = typeof opts === 'object' ? opts : {};
|
|
32386
|
-
toast.parent = this;
|
|
32387
|
-
toast.title = OPTIONS.title || '';
|
|
32388
|
-
toast.message = OPTIONS.message || '';
|
|
32389
|
-
toast.hideDelay = OPTIONS.hideDelay || this.defaults.hideDelay;
|
|
32390
|
-
toast.link = OPTIONS.link || '';
|
|
32391
|
-
toast.isCloseable = OPTIONS.isCloseable || false;
|
|
32392
|
-
var CUSTOM_CLASS = OPTIONS.customClass || '';
|
|
32393
|
-
var ALERT_STYLE = OPTIONS.theme || this.defaults.theme;
|
|
32394
|
-
var ALERT_POSITION = OPTIONS.position || this.defaults.position;
|
|
32395
|
-
var ALERT_ICON = OPTIONS.icon || this.icons.default;
|
|
32396
|
-
toast.iconClass = "bhi-" + ALERT_ICON;
|
|
32397
|
-
toast.launched = true;
|
|
32398
|
-
toast.alertTheme = ALERT_STYLE + " " + ALERT_POSITION + " " + CUSTOM_CLASS + " toast-container launched";
|
|
32399
|
-
};
|
|
32400
|
-
NovoToastService.prototype.show = function (toast) {
|
|
32401
|
-
toast.show = true;
|
|
32402
|
-
setTimeout(addClass, 25);
|
|
32403
|
-
/**
|
|
32404
|
-
* Adds animate class to be called after a timeout
|
|
32405
|
-
**/
|
|
32406
|
-
function addClass() {
|
|
32407
|
-
toast.animate = true;
|
|
32408
|
-
}
|
|
32409
|
-
};
|
|
32410
|
-
NovoToastService.prototype.toastTimer = function (toast) {
|
|
32411
|
-
var _this = this;
|
|
32412
|
-
if (toast.hideDelay < 0) {
|
|
32413
|
-
return;
|
|
32414
|
-
}
|
|
32415
|
-
setTimeout(function () {
|
|
32416
|
-
_this.hide(toast);
|
|
32417
|
-
}, toast.hideDelay);
|
|
32418
|
-
};
|
|
32419
|
-
return NovoToastService;
|
|
32420
|
-
}());
|
|
32421
|
-
NovoToastService.decorators = [
|
|
32422
|
-
{ type: core.Injectable }
|
|
32423
|
-
];
|
|
32424
|
-
NovoToastService.ctorParameters = function () { return [
|
|
32425
|
-
{ type: ComponentUtils }
|
|
32426
|
-
]; };
|
|
32427
|
-
|
|
32428
32522
|
// NG2
|
|
32429
32523
|
var ControlConfirmModal = /** @class */ (function () {
|
|
32430
32524
|
function ControlConfirmModal(modalRef, params, labels) {
|