@indice/ng-components 0.2.160-beta.0 → 0.2.160-beta.11
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/_styles.css +630 -3
- package/bundles/indice-ng-components.umd.js +871 -468
- package/bundles/indice-ng-components.umd.js.map +1 -1
- package/esm2015/lib/controls/advanced-search/advanced-search.component.js +116 -0
- package/esm2015/lib/controls/advanced-search/models.js +91 -0
- package/esm2015/lib/controls/combobox/combobox.component.js +5 -4
- package/esm2015/lib/controls/list-view/list-view.component.js +21 -7
- package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +8 -2
- package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +19 -13
- package/esm2015/lib/controls/stepper/lib-step.component.js +3 -5
- package/esm2015/lib/controls/stepper/lib-stepper.component.js +35 -10
- package/esm2015/lib/controls/tabs/lib-tab-group.component.js +3 -2
- package/esm2015/lib/controls/user-profile-menu/user-profile-menu.component.js +2 -2
- package/esm2015/lib/helpers/base-list.component.js +47 -3
- package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +10 -11
- package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +4 -6
- package/esm2015/lib/layouts/shell/shell-sidebar/shell-sidebar.component.js +2 -2
- package/esm2015/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.js +48 -0
- package/esm2015/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.js +28 -0
- package/esm2015/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.js +24 -0
- package/esm2015/lib/ng-components.module.js +22 -6
- package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +1 -2
- package/esm2015/public-api.js +3 -1
- package/fesm2015/indice-ng-components.js +750 -375
- package/fesm2015/indice-ng-components.js.map +1 -1
- package/lib/controls/advanced-search/advanced-search.component.d.ts +26 -0
- package/lib/controls/advanced-search/models.d.ts +83 -0
- package/lib/controls/list-view/list-view.component.d.ts +6 -1
- package/lib/controls/nav-links-list/nav-links-list.component.d.ts +5 -2
- package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +3 -3
- package/lib/controls/stepper/lib-stepper.component.d.ts +15 -4
- package/lib/helpers/base-list.component.d.ts +11 -0
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +2 -3
- package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +14 -0
- package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +12 -0
- package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +10 -0
- package/lib/ng-components.module.d.ts +9 -4
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/common'), require('@angular/router'), require('@angular/forms'), require('rxjs'), require('rxjs/operators'), require('uuid'), require('@indice/ng-auth')) :
|
|
3
3
|
typeof define === 'function' && define.amd ? define('@indice/ng-components', ['exports', '@angular/core', '@angular/common', '@angular/router', '@angular/forms', 'rxjs', 'rxjs/operators', 'uuid', '@indice/ng-auth'], factory) :
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory((global.indice = global.indice || {}, global.indice["ng-components"] = {}), global.ng.core, global.ng.common, global.ng.router, global.ng.forms, global.rxjs, global.rxjs.operators, global.uuid, global.i2));
|
|
5
|
-
})(this, (function (exports, i0, i1, i1$1,
|
|
5
|
+
})(this, (function (exports, i0, i1, i1$1, i4, rxjs, operators, uuid, i2) { 'use strict';
|
|
6
6
|
|
|
7
7
|
function _interopNamespace(e) {
|
|
8
8
|
if (e && e.__esModule) return e;
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
var i0__namespace = /*#__PURE__*/_interopNamespace(i0);
|
|
26
26
|
var i1__namespace = /*#__PURE__*/_interopNamespace(i1);
|
|
27
27
|
var i1__namespace$1 = /*#__PURE__*/_interopNamespace(i1$1);
|
|
28
|
+
var i4__namespace = /*#__PURE__*/_interopNamespace(i4);
|
|
28
29
|
var uuid__namespace = /*#__PURE__*/_interopNamespace(uuid);
|
|
29
30
|
var i2__namespace = /*#__PURE__*/_interopNamespace(i2);
|
|
30
31
|
|
|
@@ -1010,317 +1011,97 @@
|
|
|
1010
1011
|
args: [i0.TemplateRef]
|
|
1011
1012
|
}] } });
|
|
1012
1013
|
|
|
1013
|
-
var
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
}
|
|
1018
|
-
|
|
1019
|
-
};
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
};
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
this.
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
//
|
|
1046
|
-
|
|
1047
|
-
}
|
|
1048
|
-
ListViewEmptyStateComponent.prototype.ngOnInit = function () {
|
|
1049
|
-
};
|
|
1050
|
-
return ListViewEmptyStateComponent;
|
|
1051
|
-
}());
|
|
1052
|
-
ListViewEmptyStateComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ListViewEmptyStateComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1053
|
-
ListViewEmptyStateComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: { title: "title", subTitle: ["sub-title", "subTitle"], newItemLabel: ["new-item-label", "newItemLabel"] }, ngImport: i0__namespace, template: "<div class=\"p-20\">\r\n <div class=\"text-center p-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\r\n </svg>\r\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\r\n <p class=\"mt-1 text-sm text-gray-500\">\r\n {{subTitle}}\r\n </p>\r\n <div class=\"mt-6\" *ngIf=\"false\">\r\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\r\n <!-- Heroicon name: solid/plus -->\r\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\r\n </svg>\r\n {{newItemLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1054
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ListViewEmptyStateComponent, decorators: [{
|
|
1055
|
-
type: i0.Component,
|
|
1056
|
-
args: [{
|
|
1057
|
-
selector: 'lib-list-view-empty-state',
|
|
1058
|
-
templateUrl: './list-view-empty-state.component.html'
|
|
1059
|
-
}]
|
|
1060
|
-
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
1061
|
-
type: i0.Input
|
|
1062
|
-
}], subTitle: [{
|
|
1063
|
-
type: i0.Input,
|
|
1064
|
-
args: ['sub-title']
|
|
1065
|
-
}], newItemLabel: [{
|
|
1066
|
-
type: i0.Input,
|
|
1067
|
-
args: ['new-item-label']
|
|
1068
|
-
}] } });
|
|
1069
|
-
|
|
1070
|
-
var ListViewComponent = /** @class */ (function () {
|
|
1071
|
-
function ListViewComponent() {
|
|
1072
|
-
// BUSY STATE
|
|
1073
|
-
this.busy = false;
|
|
1074
|
-
// PAGING - pass through for pager component
|
|
1075
|
-
this.count = null;
|
|
1076
|
-
this.page = 1;
|
|
1077
|
-
this.view = ListViewType.Table;
|
|
1078
|
-
this.sort = null;
|
|
1079
|
-
// tslint:disable-next-line:no-input-rename
|
|
1080
|
-
this.pageSize = 20;
|
|
1081
|
-
// tslint:disable-next-line:no-input-rename
|
|
1082
|
-
this.pageSizeOptions = [];
|
|
1083
|
-
// SORTING - pass through for pager component
|
|
1084
|
-
// tslint:disable-next-line:no-input-rename
|
|
1085
|
-
this.sortOptions = [];
|
|
1086
|
-
// tslint:disable-next-line:no-input-rename
|
|
1087
|
-
this.sortdir = '-';
|
|
1088
|
-
// tslint:disable-next-line:no-input-rename
|
|
1089
|
-
this.tilesCount = 4;
|
|
1090
|
-
// tslint:disable-next-line:no-input-rename
|
|
1091
|
-
this.showPager = true;
|
|
1092
|
-
// tslint:disable-next-line:no-input-rename
|
|
1093
|
-
this.pagerPosition = exports.PagerPosition.Top;
|
|
1094
|
-
// DETAILS SECTION
|
|
1095
|
-
// Check if details section and button should be displayed according to the count of the value given
|
|
1096
|
-
// tslint:disable-next-line:no-input-rename
|
|
1097
|
-
this.detailsSectionPropertyCount = null;
|
|
1098
|
-
this.pageChanged = new i0.EventEmitter();
|
|
1099
|
-
this.pageSizeChanged = new i0.EventEmitter();
|
|
1100
|
-
this.detailsOpened = new i0.EventEmitter();
|
|
1101
|
-
this.sortChanged = new i0.EventEmitter();
|
|
1102
|
-
this.sortdirChanged = new i0.EventEmitter();
|
|
1103
|
-
this.multipleFullWidth = false;
|
|
1104
|
-
this.expandIcon = Icons.Expand;
|
|
1105
|
-
this.collapseIcon = Icons.Collapse;
|
|
1106
|
-
this.tableViewSupported = false;
|
|
1107
|
-
this.fullWidthTHClass = 'list-view-th-full';
|
|
1108
|
-
this.fullWidthTDClass = 'list-view-td-full';
|
|
1109
|
-
this.tilesViewSupported = false;
|
|
1110
|
-
this.detailsSectionSupported = false;
|
|
1111
|
-
this.loaderItems = [];
|
|
1112
|
-
this.columns = [];
|
|
1113
|
-
this.tilesDeckClass = 'cards-deck-4';
|
|
1114
|
-
this.tileTemplate = null;
|
|
1115
|
-
this.detailsTemplate = null;
|
|
1116
|
-
for (var i = 0; i < 5; i++) {
|
|
1117
|
-
this.loaderItems.push({});
|
|
1118
|
-
}
|
|
1119
|
-
if (this.pagerPosition) {
|
|
1120
|
-
this.pagerPosition = this.pagerPosition;
|
|
1014
|
+
var Operators;
|
|
1015
|
+
(function (Operators) {
|
|
1016
|
+
Operators.EQUALS = { label: '=', value: 'eq', description: 'Ίσο με' };
|
|
1017
|
+
Operators.NOT_EQUALS = { label: '≠', value: 'neq', description: 'Διάφορο του' };
|
|
1018
|
+
Operators.GREATER_THAN = { label: '>', value: 'gt', description: 'Μεγαλύτερο από' };
|
|
1019
|
+
Operators.LESS_THAN = { label: '<', value: 'lt', description: 'Μικρότερο από' };
|
|
1020
|
+
Operators.GREATER_THAN_EQUAL = { label: '≥', value: 'gte', description: 'Μεγαλύτερο ή ίσο με' };
|
|
1021
|
+
Operators.LESS_THAN_EQUAL = { label: '≤', value: 'lte', description: 'Μικρότερο ή ίσο με' };
|
|
1022
|
+
Operators.CONTAINS = { label: '∋', value: 'contains', description: 'Περιέχει' };
|
|
1023
|
+
Operators.IN = { label: '1..n', value: 'in', description: 'Μέσα σε' };
|
|
1024
|
+
})(Operators || (Operators = {}));
|
|
1025
|
+
var QueryParameters;
|
|
1026
|
+
(function (QueryParameters) {
|
|
1027
|
+
QueryParameters["VIEW"] = "view";
|
|
1028
|
+
QueryParameters["PAGE_SIZE"] = "pagesize";
|
|
1029
|
+
QueryParameters["PAGE"] = "page";
|
|
1030
|
+
QueryParameters["SEARCH"] = "search";
|
|
1031
|
+
QueryParameters["SORT_FIELD"] = "sort";
|
|
1032
|
+
QueryParameters["SORT_DIRECTION"] = "dir";
|
|
1033
|
+
QueryParameters["FILTER"] = "filter";
|
|
1034
|
+
QueryParameters["FILTER_FROM"] = "from";
|
|
1035
|
+
QueryParameters["FILTER_TO"] = "to";
|
|
1036
|
+
})(QueryParameters || (QueryParameters = {}));
|
|
1037
|
+
var FilterClause = /** @class */ (function () {
|
|
1038
|
+
function FilterClause(member, value, operator, dataType, searchOptions) {
|
|
1039
|
+
var _this = this;
|
|
1040
|
+
var _a;
|
|
1041
|
+
this.member = member;
|
|
1042
|
+
this.value = value;
|
|
1043
|
+
this.operator = operator || Operators.EQUALS.value;
|
|
1044
|
+
this.dataType = dataType === undefined ? 'string' : dataType;
|
|
1045
|
+
// uiName
|
|
1046
|
+
if (this.dataType === 'datetime') { // special treatment for dates
|
|
1047
|
+
this.uiName = this.member === QueryParameters.FILTER_FROM ? 'Από' : 'Έως';
|
|
1121
1048
|
}
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1049
|
+
else {
|
|
1050
|
+
this.uiName = this.member;
|
|
1051
|
+
var fo_1 = {};
|
|
1052
|
+
if (searchOptions && searchOptions.length > 0) {
|
|
1053
|
+
fo_1 = searchOptions.find(function (f) {
|
|
1054
|
+
return f.field === _this.member;
|
|
1055
|
+
});
|
|
1129
1056
|
}
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';
|
|
1133
|
-
},
|
|
1134
|
-
enumerable: false,
|
|
1135
|
-
configurable: true
|
|
1136
|
-
});
|
|
1137
|
-
Object.defineProperty(ListViewComponent.prototype, "tiles", {
|
|
1138
|
-
// tslint:disable-next-line:no-input-rename
|
|
1139
|
-
set: function (ref) {
|
|
1140
|
-
this.tileTemplate = ref;
|
|
1141
|
-
if (this.tileTemplate) {
|
|
1142
|
-
this.tilesViewSupported = true;
|
|
1057
|
+
if (fo_1) {
|
|
1058
|
+
this.uiName = fo_1.name;
|
|
1143
1059
|
}
|
|
1144
|
-
}
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
this.
|
|
1151
|
-
|
|
1152
|
-
|
|
1060
|
+
}
|
|
1061
|
+
// uiOperator
|
|
1062
|
+
this.uiOperator = this.dataType === 'datetime' ? '' : Operators.EQUALS.label; // that's fine (for now)...
|
|
1063
|
+
// uiValue
|
|
1064
|
+
this.uiValue = this.value;
|
|
1065
|
+
if ((this.dataType === 'datetime')) {
|
|
1066
|
+
this.uiValue = i1.formatDate(new Date(this.value), 'dd/MM/yyyy', 'en-US');
|
|
1067
|
+
}
|
|
1068
|
+
var fo;
|
|
1069
|
+
if (searchOptions && searchOptions.length > 0) {
|
|
1070
|
+
fo = searchOptions.find(function (f) {
|
|
1071
|
+
return f.field === _this.member;
|
|
1072
|
+
});
|
|
1073
|
+
}
|
|
1074
|
+
if (fo && fo.options) { // special treatment for arrays, if there is an options property then it is an array
|
|
1075
|
+
this.dataType = 'array';
|
|
1076
|
+
this.uiValue = (_a = fo.options.find(function (option) {
|
|
1077
|
+
return option.value === _this.value;
|
|
1078
|
+
})) === null || _a === void 0 ? void 0 : _a.label;
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
FilterClause.parse = function (text) {
|
|
1082
|
+
var pattern = /^\s*([A-Za-z_][A-Za-z0-9_\.]+)::(eq|neq|gt|lt|gte|lte|contains|in)::(\((string|integer|number|boolean|datetime)\))?(.+)\s*$/gi;
|
|
1083
|
+
if (text != null) {
|
|
1084
|
+
var matches = pattern.exec(text);
|
|
1085
|
+
if (matches != null) {
|
|
1086
|
+
var path = matches[1];
|
|
1087
|
+
var op = matches[2];
|
|
1088
|
+
var dt = matches[4];
|
|
1089
|
+
var v = matches[5];
|
|
1090
|
+
return new FilterClause(path, v, op, dt);
|
|
1153
1091
|
}
|
|
1154
|
-
},
|
|
1155
|
-
enumerable: false,
|
|
1156
|
-
configurable: true
|
|
1157
|
-
});
|
|
1158
|
-
ListViewComponent.prototype.ngOnChanges = function (changes) {
|
|
1159
|
-
var tilesCountChange = changes['tiles-count'] || changes.tilesCount;
|
|
1160
|
-
if (tilesCountChange) {
|
|
1161
|
-
this.setTilesDeckClass(tilesCountChange.currentValue);
|
|
1162
1092
|
}
|
|
1093
|
+
return undefined;
|
|
1163
1094
|
};
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
};
|
|
1168
|
-
ListViewComponent.prototype.emitPageSizeChanged = function ($event) {
|
|
1169
|
-
this.pageSizeChanged.emit($event);
|
|
1170
|
-
};
|
|
1171
|
-
ListViewComponent.prototype.emitSortChanged = function ($event) {
|
|
1172
|
-
this.sortChanged.emit($event);
|
|
1173
|
-
};
|
|
1174
|
-
ListViewComponent.prototype.emitSortdirChanged = function ($event) {
|
|
1175
|
-
this.sortdirChanged.emit($event);
|
|
1176
|
-
};
|
|
1177
|
-
ListViewComponent.prototype.toggleDetails = function (item) {
|
|
1178
|
-
item.detailsExpanded = !item.detailsExpanded;
|
|
1179
|
-
this.detailsOpened.emit({ item: item, open: item.detailsExpanded });
|
|
1180
|
-
};
|
|
1181
|
-
// helpers
|
|
1182
|
-
ListViewComponent.prototype.setTilesDeckClass = function (tiles) {
|
|
1183
|
-
if (tiles >= 1 && tiles <= 4) {
|
|
1184
|
-
this.tilesDeckClass =
|
|
1185
|
-
this.view !== ListViewType.Gallery
|
|
1186
|
-
? "cards-deck-" + tiles
|
|
1187
|
-
: this.items && this.items.length > 0
|
|
1188
|
-
? "gallery-deck-" + tiles
|
|
1189
|
-
: 'gallery-deck';
|
|
1095
|
+
FilterClause.prototype.toString = function () {
|
|
1096
|
+
if (this.dataType !== 'string' && this.dataType !== 'array') {
|
|
1097
|
+
return this.member + "::" + this.operator + "::(" + this.dataType + ")" + this.value;
|
|
1190
1098
|
}
|
|
1191
1099
|
else {
|
|
1192
|
-
this.
|
|
1193
|
-
this.view !== ListViewType.Gallery
|
|
1194
|
-
? 'cards-deck-3'
|
|
1195
|
-
: this.items && this.items.length > 0
|
|
1196
|
-
? 'gallery-deck-3'
|
|
1197
|
-
: 'gallery-deck';
|
|
1100
|
+
return this.member + "::" + this.operator + "::" + this.value;
|
|
1198
1101
|
}
|
|
1199
1102
|
};
|
|
1200
|
-
return
|
|
1201
|
-
}());
|
|
1202
|
-
ListViewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ListViewComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1203
|
-
ListViewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ListViewComponent, selector: "lib-list-view", inputs: { busy: "busy", items: "items", count: "count", page: "page", view: "view", sort: "sort", pageSize: ["page-size", "pageSize"], pageSizeOptions: ["page-size-options", "pageSizeOptions"], sortOptions: ["sort-options", "sortOptions"], sortdir: ["sort-dir", "sortdir"], tilesCount: ["tiles-count", "tilesCount"], showPager: ["show-pager", "showPager"], pagerPosition: ["pager-position", "pagerPosition"], detailsSectionPropertyCount: ["details-section-property-count", "detailsSectionPropertyCount"] }, outputs: { pageChanged: "pageChanged", pageSizeChanged: "pageSizeChanged", detailsOpened: "detailsOpened", sortChanged: "sortChanged", sortdirChanged: "sortdirChanged" }, queries: [{ propertyName: "tiles", first: true, predicate: ListTileComponent, descendants: true, read: ListTileComponent }, { propertyName: "details", first: true, predicate: ListDetailsSectionComponent, descendants: true, read: ListDetailsSectionComponent }, { propertyName: "cols", predicate: ListColumnComponent, read: ListColumnComponent }], usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"px-2\">\r\n\r\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\r\n [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>\r\n\r\n<ng-container [ngSwitch]=\"view\">\r\n\r\n <ng-container *ngSwitchCase=\"'tiles'\">\r\n <div [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- *ngSwitchCase=\"'gallery'\" -->\r\n <ng-container *ngSwitchCase=\"'gallery'\">\r\n <ul role=\"list\" [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n\r\n <!-- *ngSwitchCase=\"'table'\" -->\r\n <ng-container *ngSwitchDefault>\r\n\r\n <div class=\"list-view-container\">\r\n <div class=\"list-view-container-inner\">\r\n <table class=\"list-view-table\">\r\n <thead class=\"list-view-thead\">\r\n <tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <th class=\"list-view-th-details\"></th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th scope=\"col\"\r\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\r\n {{col.title}}\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody class=\"list-view-tbody\" *ngIf=\"busy\">\r\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button disabled\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n <tbody class=\"list-view-tbody\" *ngIf=\"!busy\">\r\n <ng-container *ngFor=\"let item of items;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button (click)=\"toggleDetails(item)\"\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <ng-template [ngTemplateOutlet]=\"col.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\r\n <div class=\"cards-deck-1\">\r\n <lib-list-view-empty-state></lib-list-view-empty-state>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-content></ng-content>\r\n\r\n<div class=\"pt-2 px-2\">\r\n\r\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\"\r\n [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>\r\n", components: [{ type: PagerComponent, selector: "lib-pager", inputs: ["busy", "count", "page", "page-size", "page-size-options", "sort-options", "sort", "sort-dir"], outputs: ["pageChanged", "pageSizeChanged", "sortChanged", "sortdirChanged"] }, { type: SkeletonLoaderComponent, selector: "lib-skeleton-loader", inputs: ["count", "type"] }, { type: ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: ["title", "sub-title", "new-item-label"] }], directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1__namespace.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
|
|
1204
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ListViewComponent, decorators: [{
|
|
1205
|
-
type: i0.Component,
|
|
1206
|
-
args: [{
|
|
1207
|
-
selector: 'lib-list-view',
|
|
1208
|
-
templateUrl: './list-view.component.html'
|
|
1209
|
-
}]
|
|
1210
|
-
}], ctorParameters: function () { return []; }, propDecorators: { busy: [{
|
|
1211
|
-
type: i0.Input
|
|
1212
|
-
}], items: [{
|
|
1213
|
-
type: i0.Input
|
|
1214
|
-
}], count: [{
|
|
1215
|
-
type: i0.Input
|
|
1216
|
-
}], page: [{
|
|
1217
|
-
type: i0.Input
|
|
1218
|
-
}], view: [{
|
|
1219
|
-
type: i0.Input
|
|
1220
|
-
}], sort: [{
|
|
1221
|
-
type: i0.Input
|
|
1222
|
-
}], pageSize: [{
|
|
1223
|
-
type: i0.Input,
|
|
1224
|
-
args: ['page-size']
|
|
1225
|
-
}], pageSizeOptions: [{
|
|
1226
|
-
type: i0.Input,
|
|
1227
|
-
args: ['page-size-options']
|
|
1228
|
-
}], sortOptions: [{
|
|
1229
|
-
type: i0.Input,
|
|
1230
|
-
args: ['sort-options']
|
|
1231
|
-
}], sortdir: [{
|
|
1232
|
-
type: i0.Input,
|
|
1233
|
-
args: ['sort-dir']
|
|
1234
|
-
}], tilesCount: [{
|
|
1235
|
-
type: i0.Input,
|
|
1236
|
-
args: ['tiles-count']
|
|
1237
|
-
}], showPager: [{
|
|
1238
|
-
type: i0.Input,
|
|
1239
|
-
args: ['show-pager']
|
|
1240
|
-
}], pagerPosition: [{
|
|
1241
|
-
type: i0.Input,
|
|
1242
|
-
args: ['pager-position']
|
|
1243
|
-
}], detailsSectionPropertyCount: [{
|
|
1244
|
-
type: i0.Input,
|
|
1245
|
-
args: ['details-section-property-count']
|
|
1246
|
-
}], cols: [{
|
|
1247
|
-
type: i0.ContentChildren,
|
|
1248
|
-
args: [ListColumnComponent, { read: ListColumnComponent }]
|
|
1249
|
-
}], tiles: [{
|
|
1250
|
-
type: i0.ContentChild,
|
|
1251
|
-
args: [ListTileComponent, { read: ListTileComponent }]
|
|
1252
|
-
}], details: [{
|
|
1253
|
-
type: i0.ContentChild,
|
|
1254
|
-
args: [ListDetailsSectionComponent, { read: ListDetailsSectionComponent }]
|
|
1255
|
-
}], pageChanged: [{
|
|
1256
|
-
type: i0.Output
|
|
1257
|
-
}], pageSizeChanged: [{
|
|
1258
|
-
type: i0.Output
|
|
1259
|
-
}], detailsOpened: [{
|
|
1260
|
-
type: i0.Output
|
|
1261
|
-
}], sortChanged: [{
|
|
1262
|
-
type: i0.Output
|
|
1263
|
-
}], sortdirChanged: [{
|
|
1264
|
-
type: i0.Output
|
|
1265
|
-
}] } });
|
|
1266
|
-
|
|
1267
|
-
var CollapsiblePanelComponent = /** @class */ (function () {
|
|
1268
|
-
function CollapsiblePanelComponent() {
|
|
1269
|
-
this.title = null;
|
|
1270
|
-
this.visible = false;
|
|
1271
|
-
}
|
|
1272
|
-
CollapsiblePanelComponent.prototype.ngOnInit = function () {
|
|
1273
|
-
};
|
|
1274
|
-
return CollapsiblePanelComponent;
|
|
1275
|
-
}());
|
|
1276
|
-
CollapsiblePanelComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CollapsiblePanelComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1277
|
-
CollapsiblePanelComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CollapsiblePanelComponent, selector: "lib-collapsible-panel", inputs: { title: "title" }, ngImport: i0__namespace, template: "<div class=\"collapsible-panel-container\">\r\n <div class=\"collapsible-panel-container-shadow\">\r\n <div class=\"collapsible-panel-container-inner\">\r\n <button type=\"button\" class=\"collapsible-panel-button\" (click)=\"visible = !visible\">\r\n <div class=\"collapsible-panel-button-content-container\">\r\n <span>{{ title }} </span>\r\n <span class=\"ico-plus\"></span>\r\n </div>\r\n </button>\r\n <div class=\"collapsible-panel-content-container\" *ngIf=\"visible\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1278
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CollapsiblePanelComponent, decorators: [{
|
|
1279
|
-
type: i0.Component,
|
|
1280
|
-
args: [{
|
|
1281
|
-
selector: 'lib-collapsible-panel',
|
|
1282
|
-
templateUrl: './collapsible-panel.component.html'
|
|
1283
|
-
}]
|
|
1284
|
-
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
1285
|
-
type: i0.Input
|
|
1286
|
-
}] } });
|
|
1287
|
-
|
|
1288
|
-
var KpiTileComponent = /** @class */ (function () {
|
|
1289
|
-
function KpiTileComponent() {
|
|
1290
|
-
this.title = undefined;
|
|
1291
|
-
this.busy = false;
|
|
1292
|
-
this.kpi = undefined;
|
|
1293
|
-
// tslint:disable-next-line:no-output-rename
|
|
1294
|
-
this.tileAction = new i0.EventEmitter();
|
|
1295
|
-
}
|
|
1296
|
-
KpiTileComponent.prototype.ngOnInit = function () {
|
|
1297
|
-
};
|
|
1298
|
-
KpiTileComponent.prototype.emitTileAction = function ($event) {
|
|
1299
|
-
$event.preventDefault();
|
|
1300
|
-
$event.stopPropagation();
|
|
1301
|
-
this.tileAction.emit($event);
|
|
1302
|
-
return false;
|
|
1303
|
-
};
|
|
1304
|
-
return KpiTileComponent;
|
|
1305
|
-
}());
|
|
1306
|
-
KpiTileComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KpiTileComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1307
|
-
KpiTileComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KpiTileComponent, selector: "lib-kpi-tile", inputs: { title: "title", busy: "busy", kpi: "kpi" }, outputs: { tileAction: "tile-action" }, ngImport: i0__namespace, template: "<div class=\"card\"\r\n [ngClass]=\"{'card-deck-busy' : busy }\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\r\n </div>\r\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\r\n <div class=\"card-footer\">\r\n <div class=\"text-xs\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n (click)=\"emitTileAction($event)\">\u03A0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B1</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", directives: [{ type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
1308
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KpiTileComponent, decorators: [{
|
|
1309
|
-
type: i0.Component,
|
|
1310
|
-
args: [{
|
|
1311
|
-
selector: 'lib-kpi-tile',
|
|
1312
|
-
templateUrl: './kpi-tile.component.html'
|
|
1313
|
-
}]
|
|
1314
|
-
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
1315
|
-
type: i0.Input
|
|
1316
|
-
}], busy: [{
|
|
1317
|
-
type: i0.Input
|
|
1318
|
-
}], kpi: [{
|
|
1319
|
-
type: i0.Input
|
|
1320
|
-
}], tileAction: [{
|
|
1321
|
-
type: i0.Output,
|
|
1322
|
-
args: ['tile-action']
|
|
1323
|
-
}] } });
|
|
1103
|
+
return FilterClause;
|
|
1104
|
+
}());
|
|
1324
1105
|
|
|
1325
1106
|
// freaksly simple date picker : https://tailwind-elements.com/docs/standard/forms/datepicker/
|
|
1326
1107
|
var DatepickerComponent = /** @class */ (function () {
|
|
@@ -1471,154 +1252,591 @@
|
|
|
1471
1252
|
this.onTouched$();
|
|
1472
1253
|
}
|
|
1473
1254
|
};
|
|
1474
|
-
DatepickerComponent.prototype.compareDates = function (date1, day, year) {
|
|
1475
|
-
var _a;
|
|
1476
|
-
if (!date1) {
|
|
1477
|
-
return false;
|
|
1255
|
+
DatepickerComponent.prototype.compareDates = function (date1, day, year) {
|
|
1256
|
+
var _a;
|
|
1257
|
+
if (!date1) {
|
|
1258
|
+
return false;
|
|
1259
|
+
}
|
|
1260
|
+
var d = new Date(year !== null && year !== void 0 ? year : this.year, this.month, day !== null && day !== void 0 ? day : (_a = this.value) === null || _a === void 0 ? void 0 : _a.getDay());
|
|
1261
|
+
return date1.toDateString() === d.toDateString();
|
|
1262
|
+
};
|
|
1263
|
+
;
|
|
1264
|
+
DatepickerComponent.prototype.calcDays = function () {
|
|
1265
|
+
var _a;
|
|
1266
|
+
var daysInMonth = new Date(this.year, this.month + 1, 0).getDate();
|
|
1267
|
+
// find where to start calendar day of week
|
|
1268
|
+
var dayOfWeek = new Date(this.year, this.month).getDay();
|
|
1269
|
+
var blankdaysArray = new Array();
|
|
1270
|
+
for (var i = 1; i <= dayOfWeek; i++) {
|
|
1271
|
+
// check if month is February
|
|
1272
|
+
blankdaysArray.push(this.month != 2 ? (32 - i) : (29 - i));
|
|
1273
|
+
blankdaysArray.reverse().sort();
|
|
1274
|
+
}
|
|
1275
|
+
var daysArray = [];
|
|
1276
|
+
var today = new Date();
|
|
1277
|
+
for (var i = 1; i <= daysInMonth; i++) {
|
|
1278
|
+
daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates((_a = this.value) !== null && _a !== void 0 ? _a : today, i, null) });
|
|
1279
|
+
}
|
|
1280
|
+
var yearsArray = [];
|
|
1281
|
+
for (var i_1 = 1950; i_1 <= today.getFullYear() + 2; i_1++) {
|
|
1282
|
+
yearsArray.push({ year: i_1, today: this.compareDates(today, null, i_1), selected: i_1 == this.year });
|
|
1283
|
+
}
|
|
1284
|
+
this.calendarYears = yearsArray;
|
|
1285
|
+
this.blankDays = blankdaysArray;
|
|
1286
|
+
this.calendarDates = daysArray;
|
|
1287
|
+
};
|
|
1288
|
+
DatepickerComponent.prototype.updateDays = function () {
|
|
1289
|
+
var _this = this;
|
|
1290
|
+
var today = new Date();
|
|
1291
|
+
this.calendarDates.forEach(function (d) {
|
|
1292
|
+
d.today = _this.compareDates(today, d, _this.year);
|
|
1293
|
+
d.selected = _this.compareDates(_this.value, d, _this.year);
|
|
1294
|
+
});
|
|
1295
|
+
};
|
|
1296
|
+
DatepickerComponent.prototype.paginate = function (array, page_number) {
|
|
1297
|
+
return array.slice((page_number - 1) * this.yearsPerPage, page_number * this.yearsPerPage);
|
|
1298
|
+
};
|
|
1299
|
+
DatepickerComponent.prototype.getDateFromInput = function () {
|
|
1300
|
+
var _a, _b;
|
|
1301
|
+
if (((_a = this.dateInput) === null || _a === void 0 ? void 0 : _a.nativeElement.value) !== '' && !this.inline) {
|
|
1302
|
+
var dateParts = (_b = this.dateInput) === null || _b === void 0 ? void 0 : _b.nativeElement.value.split("/");
|
|
1303
|
+
var dateInGrFormat = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0], 3, 0, 0);
|
|
1304
|
+
if (dateInGrFormat.toString() !== 'Invalid Date') {
|
|
1305
|
+
this.writeValue(dateInGrFormat);
|
|
1306
|
+
this.calcDays();
|
|
1307
|
+
this.valueChange.emit(dateInGrFormat);
|
|
1308
|
+
}
|
|
1309
|
+
if (this.onChange$) {
|
|
1310
|
+
this.onChange$(this.value);
|
|
1311
|
+
}
|
|
1312
|
+
this.updateDays();
|
|
1313
|
+
if (this.onTouched$) {
|
|
1314
|
+
this.onTouched$();
|
|
1315
|
+
}
|
|
1316
|
+
}
|
|
1317
|
+
this.showCalendar = false;
|
|
1318
|
+
};
|
|
1319
|
+
DatepickerComponent.prototype.openYears = function () {
|
|
1320
|
+
this.showYears = !this.showYears;
|
|
1321
|
+
this.calendarYearPage = Math.ceil(this.calendarYears.map(function (x) { return x.year; }).indexOf(this.year) / this.yearsPerPage);
|
|
1322
|
+
this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage !== 0 ? this.calendarYearPage : 1);
|
|
1323
|
+
this.calcDays();
|
|
1324
|
+
};
|
|
1325
|
+
DatepickerComponent.prototype.openCalendar = function () {
|
|
1326
|
+
this.showCalendar = !this.showCalendar;
|
|
1327
|
+
this.calcDays();
|
|
1328
|
+
};
|
|
1329
|
+
DatepickerComponent.prototype.closeCalendar = function () {
|
|
1330
|
+
this.showCalendar = false;
|
|
1331
|
+
this.getDateFromInput();
|
|
1332
|
+
};
|
|
1333
|
+
DatepickerComponent.prototype.outOfRangeDate = function (date) {
|
|
1334
|
+
var outOfRange = false;
|
|
1335
|
+
if (this.minDate || this.maxDate) {
|
|
1336
|
+
var d = new Date(this.year, this.month, date.day);
|
|
1337
|
+
var dateInMillis = d.getTime();
|
|
1338
|
+
if (this.minDate) {
|
|
1339
|
+
var minDate = this.minDate.getTime();
|
|
1340
|
+
if (dateInMillis < minDate && this.minDate.toDateString() !== d.toDateString()) {
|
|
1341
|
+
outOfRange = true;
|
|
1342
|
+
}
|
|
1343
|
+
}
|
|
1344
|
+
if (this.maxDate) {
|
|
1345
|
+
var maxDate = this.maxDate.getTime();
|
|
1346
|
+
if (dateInMillis > maxDate && this.maxDate.toDateString() !== d.toDateString()) {
|
|
1347
|
+
outOfRange = true;
|
|
1348
|
+
}
|
|
1349
|
+
}
|
|
1350
|
+
}
|
|
1351
|
+
return outOfRange;
|
|
1352
|
+
};
|
|
1353
|
+
return DatepickerComponent;
|
|
1354
|
+
}());
|
|
1355
|
+
DatepickerComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: DatepickerComponent, deps: [{ token: i0.LOCALE_ID }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1356
|
+
DatepickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DatepickerComponent, selector: "lib-date-picker", inputs: { readonly: "readonly", disabled: "disabled", inline: "inline", displayFormat: ["display-format", "displayFormat"], placeholder: "placeholder", value: "value", minDate: "minDate", maxDate: "maxDate" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
1357
|
+
{
|
|
1358
|
+
provide: i4.NG_VALUE_ACCESSOR,
|
|
1359
|
+
useExisting: i0.forwardRef(function () { return DatepickerComponent; }),
|
|
1360
|
+
multi: true
|
|
1361
|
+
}
|
|
1362
|
+
], viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true }], ngImport: i0__namespace, template: "<div class=\"flex\"\r\n [ngClass]=\"{'relative': !inline}\"\r\n (clickOutside)=\"closeCalendar()\">\r\n\r\n <input type=\"text\"\r\n *ngIf=\"!inline\"\r\n #dateInput\r\n [readonly]=\"readonly\"\r\n name=\"dateInput\"\r\n (blur)=\"onBlur($event)\"\r\n id=\"dateInput\"\r\n (focus)=\"showCalendar = false\"\r\n [value]=\"value | date: displayFormat\"\r\n class=\"detapicker-input\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\r\n [placeholder]=\"disabled ? '' : placeholder\">\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!inline\"\r\n class=\"datepicker-button\"\r\n [disabled]=\"disabled\"\r\n (click)=\"openCalendar()\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\">\r\n <i class=\"ms-Icon ms-Icon--DateTime2\"></i>\r\n </button>\r\n\r\n <div *ngIf=\"showCalendar || inline\"\r\n [ngClass]=\"{'absolute': !inline}\"\r\n class=\"datepicker-background\"\r\n style=\"height:18rem;min-width:16rem;\"\r\n name=\"calendar\">\r\n <div class=\"datepicker-btn-wrapper\">\r\n <div>\r\n <button type=\"button\"\r\n (click)=\"openYears()\">\r\n <span class=\"datepicker-selected-month\">\r\n {{monthNames[month]}}\r\n </span>\r\n <span class=\"datepicker-selected-year\">\r\n {{year}}</span>\r\n </button>\r\n </div>\r\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousMonth();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextMonth()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <ng-template #showYearsPickerTmpl>\r\n <div>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousYear();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextYear()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"datepicker-wrapper\"\r\n *ngIf=\"!showYears; else showCalYearsTmpl\">\r\n <div *ngFor=\"let day of dayNames\"\r\n class=\"datepicker-day-name\"\r\n style=\"width: 14.28%\">{{day}}</div>\r\n </div>\r\n\r\n <ng-template #showCalYearsTmpl>\r\n <div class=\"datepicker-content-wrapper\">\r\n <div *ngFor=\"let year of showCalendarYears\"\r\n style=\"width: 18.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectYearValue(year)\"\r\n class=\"datepicker-year\"\r\n [class]=\"year.selected ? 'selected' : 'not-selected'\">\r\n {{year.year}}</div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"datepicker-content-wrapper\"\r\n *ngIf=\"!showYears\">\r\n <div *ngFor=\"let blankday of blankDays\"\r\n style=\"width: 14.28%\"\r\n class=\"datepicker-blank-days\">{{blankday}}</div>\r\n <div *ngFor=\"let date of calendarDates;\"\r\n style=\"width: 14.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectDateValue(date)\"\r\n class=\"datepicker-days\"\r\n [ngClass]=\"{'out-of-range': outOfRangeDate(date),'selected': date.selected, 'not-selected':!date.selected }\">\r\n {{date.day}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>", directives: [{ type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "date": i1__namespace.DatePipe } });
|
|
1363
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: DatepickerComponent, decorators: [{
|
|
1364
|
+
type: i0.Component,
|
|
1365
|
+
args: [{
|
|
1366
|
+
selector: 'lib-date-picker',
|
|
1367
|
+
templateUrl: './date-picker.component.html',
|
|
1368
|
+
providers: [
|
|
1369
|
+
{
|
|
1370
|
+
provide: i4.NG_VALUE_ACCESSOR,
|
|
1371
|
+
useExisting: i0.forwardRef(function () { return DatepickerComponent; }),
|
|
1372
|
+
multi: true
|
|
1373
|
+
}
|
|
1374
|
+
]
|
|
1375
|
+
}]
|
|
1376
|
+
}], ctorParameters: function () {
|
|
1377
|
+
return [{ type: undefined, decorators: [{
|
|
1378
|
+
type: i0.Inject,
|
|
1379
|
+
args: [i0.LOCALE_ID]
|
|
1380
|
+
}] }];
|
|
1381
|
+
}, propDecorators: { readonly: [{
|
|
1382
|
+
type: i0.Input
|
|
1383
|
+
}], disabled: [{
|
|
1384
|
+
type: i0.Input
|
|
1385
|
+
}], inline: [{
|
|
1386
|
+
type: i0.Input
|
|
1387
|
+
}], displayFormat: [{
|
|
1388
|
+
type: i0.Input,
|
|
1389
|
+
args: ['display-format']
|
|
1390
|
+
}], placeholder: [{
|
|
1391
|
+
type: i0.Input
|
|
1392
|
+
}], value: [{
|
|
1393
|
+
type: i0.Input
|
|
1394
|
+
}], valueChange: [{
|
|
1395
|
+
type: i0.Output
|
|
1396
|
+
}], dateInput: [{
|
|
1397
|
+
type: i0.ViewChild,
|
|
1398
|
+
args: ['dateInput']
|
|
1399
|
+
}], minDate: [{
|
|
1400
|
+
type: i0.Input
|
|
1401
|
+
}], maxDate: [{
|
|
1402
|
+
type: i0.Input
|
|
1403
|
+
}] } });
|
|
1404
|
+
|
|
1405
|
+
var AdvancedSearchComponent = /** @class */ (function () {
|
|
1406
|
+
function AdvancedSearchComponent() {
|
|
1407
|
+
this.advancedSearchChanged = new i0.EventEmitter();
|
|
1408
|
+
this.searchOptions = [];
|
|
1409
|
+
this.filters = [];
|
|
1410
|
+
this.menuOptions = [];
|
|
1411
|
+
this.menuOptionsDictionary = {};
|
|
1412
|
+
}
|
|
1413
|
+
AdvancedSearchComponent.prototype.ngOnInit = function () {
|
|
1414
|
+
var _this = this;
|
|
1415
|
+
this.searchOptions.forEach(function (searchOption) {
|
|
1416
|
+
var _a;
|
|
1417
|
+
_this.menuOptions.push({
|
|
1418
|
+
text: searchOption.name,
|
|
1419
|
+
value: searchOption.field,
|
|
1420
|
+
data: searchOption.dataType,
|
|
1421
|
+
description: searchOption.placeholder,
|
|
1422
|
+
icon: undefined
|
|
1423
|
+
});
|
|
1424
|
+
if (searchOption.dataType === 'array') {
|
|
1425
|
+
var menuOpts_1 = [];
|
|
1426
|
+
(_a = searchOption.options) === null || _a === void 0 ? void 0 : _a.forEach(function (selectInputOption) {
|
|
1427
|
+
menuOpts_1.push({
|
|
1428
|
+
text: selectInputOption.label,
|
|
1429
|
+
value: selectInputOption.value,
|
|
1430
|
+
data: undefined,
|
|
1431
|
+
description: selectInputOption.description,
|
|
1432
|
+
icon: undefined
|
|
1433
|
+
});
|
|
1434
|
+
});
|
|
1435
|
+
_this.menuOptionsDictionary[searchOption.field] = menuOpts_1;
|
|
1436
|
+
}
|
|
1437
|
+
});
|
|
1438
|
+
};
|
|
1439
|
+
AdvancedSearchComponent.prototype.selectedFieldChanged = function (field) {
|
|
1440
|
+
this.selectedField = this.searchOptions.find(function (searchOption) { return searchOption.field === field; });
|
|
1441
|
+
this.fieldValue = undefined;
|
|
1442
|
+
};
|
|
1443
|
+
AdvancedSearchComponent.prototype.selectedFieldValueChanged = function (fieldValue) {
|
|
1444
|
+
this.fieldValue = fieldValue;
|
|
1445
|
+
};
|
|
1446
|
+
AdvancedSearchComponent.prototype.search = function () {
|
|
1447
|
+
var _this = this;
|
|
1448
|
+
if (!this.selectedField || !this.selectedField.dataType) {
|
|
1449
|
+
return;
|
|
1450
|
+
}
|
|
1451
|
+
// the filter is of type 'daterange'
|
|
1452
|
+
if (this.selectedField.dataType === 'daterange') {
|
|
1453
|
+
if (!this.selectedField.multiTerm) {
|
|
1454
|
+
this.filters = this.filters.filter(function (f) {
|
|
1455
|
+
return f.member !== QueryParameters.FILTER_FROM && f.member !== QueryParameters.FILTER_TO;
|
|
1456
|
+
});
|
|
1457
|
+
}
|
|
1458
|
+
if (this.fieldValueDateFrom) {
|
|
1459
|
+
var filterClauseFrom = new FilterClause(QueryParameters.FILTER_FROM, this.fieldValueDateFrom, Operators.GREATER_THAN_EQUAL.value, 'datetime', this.searchOptions);
|
|
1460
|
+
this.filters.push(filterClauseFrom);
|
|
1461
|
+
}
|
|
1462
|
+
if (this.fieldValueDateTo) {
|
|
1463
|
+
var filterClauseTo = new FilterClause(QueryParameters.FILTER_TO, this.fieldValueDateTo, Operators.LESS_THAN_EQUAL.value, 'datetime', this.searchOptions);
|
|
1464
|
+
this.filters.push(filterClauseTo);
|
|
1465
|
+
}
|
|
1466
|
+
}
|
|
1467
|
+
// the filter isn't of type 'daterange' (everything else)
|
|
1468
|
+
else {
|
|
1469
|
+
if (this.fieldValue === undefined) { // handle empty field value
|
|
1470
|
+
return;
|
|
1471
|
+
}
|
|
1472
|
+
// create the filterClause
|
|
1473
|
+
var filterClause = new FilterClause(this.selectedField.field, this.fieldValue, Operators.EQUALS.value, this.selectedField.dataType, this.searchOptions); // operator is always 'equals'...
|
|
1474
|
+
if (!this.selectedField.multiTerm) { // multiTerm means that we can have multiple filter values of the SAME filter clause (eg "filter case types that are Phone OR Address")
|
|
1475
|
+
this.filters = this.filters.filter(function (f) {
|
|
1476
|
+
return f.member !== _this.selectedField.field;
|
|
1477
|
+
});
|
|
1478
|
+
}
|
|
1479
|
+
this.filters.push(filterClause);
|
|
1480
|
+
this.fieldValue = undefined;
|
|
1481
|
+
}
|
|
1482
|
+
this.advancedSearchChanged.emit(this.filters);
|
|
1483
|
+
};
|
|
1484
|
+
AdvancedSearchComponent.prototype.removeFilter = function (index) {
|
|
1485
|
+
if (this.filters && this.filters.length >= index) {
|
|
1486
|
+
this.filters.splice(index, 1);
|
|
1487
|
+
this.advancedSearchChanged.emit(this.filters);
|
|
1478
1488
|
}
|
|
1479
|
-
var d = new Date(year !== null && year !== void 0 ? year : this.year, this.month, day !== null && day !== void 0 ? day : (_a = this.value) === null || _a === void 0 ? void 0 : _a.getDay());
|
|
1480
|
-
return date1.toDateString() === d.toDateString();
|
|
1481
1489
|
};
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
for (var i = 1; i <= dayOfWeek; i++) {
|
|
1490
|
-
// check if month is February
|
|
1491
|
-
blankdaysArray.push(this.month != 2 ? (32 - i) : (29 - i));
|
|
1492
|
-
blankdaysArray.reverse().sort();
|
|
1493
|
-
}
|
|
1494
|
-
var daysArray = [];
|
|
1495
|
-
var today = new Date();
|
|
1496
|
-
for (var i = 1; i <= daysInMonth; i++) {
|
|
1497
|
-
daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates((_a = this.value) !== null && _a !== void 0 ? _a : today, i, null) });
|
|
1498
|
-
}
|
|
1499
|
-
var yearsArray = [];
|
|
1500
|
-
for (var i_1 = 1950; i_1 <= today.getFullYear() + 2; i_1++) {
|
|
1501
|
-
yearsArray.push({ year: i_1, today: this.compareDates(today, null, i_1), selected: i_1 == this.year });
|
|
1502
|
-
}
|
|
1503
|
-
this.calendarYears = yearsArray;
|
|
1504
|
-
this.blankDays = blankdaysArray;
|
|
1505
|
-
this.calendarDates = daysArray;
|
|
1490
|
+
AdvancedSearchComponent.prototype.clear = function () {
|
|
1491
|
+
this.fieldValueDateFrom = undefined;
|
|
1492
|
+
this.fieldValueDateTo = undefined;
|
|
1493
|
+
this.selectedField = undefined;
|
|
1494
|
+
this.fieldValue = undefined;
|
|
1495
|
+
this.filters = [];
|
|
1496
|
+
this.advancedSearchChanged.emit(this.filters);
|
|
1506
1497
|
};
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1498
|
+
return AdvancedSearchComponent;
|
|
1499
|
+
}());
|
|
1500
|
+
AdvancedSearchComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: AdvancedSearchComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1501
|
+
AdvancedSearchComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: AdvancedSearchComponent, selector: "lib-advanced-search", inputs: { searchOptions: ["search-options", "searchOptions"], filters: "filters" }, outputs: { advancedSearchChanged: "advancedSearchChanged" }, ngImport: i0__namespace, template: "<div class=\"advanced-search-container\">\r\n <div class=\"advanced-search-filter\">\r\n <!--SEARCH FIELDS-->\r\n <div class=\"advanced-search-filter-field-container\">\r\n <label class=\"advanced-search-filter-field-label\"\r\n for=\"selectedField\">\r\n \u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7 \u03B1\u03BD\u03AC:\r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptions\"\r\n (selectedChanged)=\"selectedFieldChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <!--SEARCH FIELDS INPUT-->\r\n <div *ngIf=\"selectedField\"\r\n class=\"advanced-search-filter-value-container\">\r\n <div *ngIf=\"selectedField.dataType === 'array'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <lib-drop-down-menu [options]=\"menuOptionsDictionary[selectedField.field]\"\r\n [selected]=\"fieldValue\"\r\n (selectedChanged)=\"selectedFieldValueChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'string'\">\r\n <label class=\"advanced-search-filter-value-label\"\r\n for=\"fieldValue\">\r\n \r\n </label>\r\n <input (keyup.enter)=\"search()\"\r\n [(ngModel)]=\"fieldValue\"\r\n name=\"fieldValue\"\r\n type=\"text\"\r\n placeholder=\"\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7\"\r\n maxlength=\"300\"\r\n class=\"advanced-search-filter-value-input\">\r\n </div>\r\n <ng-container *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <div>\r\n <span class=\"advanced-search-filter-value-input-daterange-from\">\r\n \u0391\u03C0\u03CC:\r\n </span>\r\n <lib-date-picker [maxDate]=\"fieldValueDateTo\"\r\n [(ngModel)]=\"fieldValueDateFrom\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n <div *ngIf=\"selectedField.dataType === 'daterange'\">\r\n <span class=\"advanced-search-filter-value-input-daterange-to\">\r\n \u0388\u03C9\u03C2:\r\n </span>\r\n <lib-date-picker [minDate]=\"fieldValueDateFrom\"\r\n [(ngModel)]=\"fieldValueDateTo\"\r\n [placeholder]=\"'01/01/2022'\"></lib-date-picker>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <ng-container *ngIf=\"selectedField\">\r\n <!--DO SEARCH-->\r\n <button type=\"button\"\r\n [ngClass]=\"{'opacity-50 cursor-not-allowed': fieldValue === undefined && fieldValueDateFrom === undefined && fieldValueDateTo === undefined}\"\r\n [disabled]=\"fieldValue === undefined && fieldValueDateFrom === undefined && fieldValueDateTo === undefined\"\r\n (click)=\"search()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Search'\"></i>\r\n </button>\r\n <!--CLEAR-->\r\n <button type=\"button\"\r\n (click)=\"clear()\">\r\n <i [class]=\"'ms-Icon ms-Icon--Cancel'\"></i>\r\n </button>\r\n </ng-container>\r\n </div>\r\n <!--FILTER CHIPS-->\r\n <!-- This example requires Tailwind CSS v2.0+ -->\r\n <ng-container *ngFor=\"let filter of filters; let i = index\">\r\n <span *ngIf=\"filter && filter.member\"\r\n class=\"advanced-search-chips\">\r\n {{ filter.uiName }} {{ filter.uiOperator }} '{{ filter.uiValue }}'\r\n <button (click)=\"removeFilter(i)\"\r\n type=\"button\"\r\n class=\"advanced-search-chips-remove-filter\">\r\n <span class=\"sr-only\">Remove large option</span>\r\n <svg class=\"h-2 w-2\"\r\n stroke=\"currentColor\"\r\n fill=\"none\"\r\n viewBox=\"0 0 8 8\">\r\n <path stroke-linecap=\"round\"\r\n stroke-width=\"1.5\"\r\n d=\"M1 1l6 6m0-6L1 7\" />\r\n </svg>\r\n </button>\r\n </span>\r\n </ng-container>\r\n</div>", components: [{ type: DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: ["options", "selected", "multiple", "placeholder"], outputs: ["selectedChange", "selectedChanged"] }, { type: DatepickerComponent, selector: "lib-date-picker", inputs: ["readonly", "disabled", "inline", "display-format", "placeholder", "value", "minDate", "maxDate"], outputs: ["valueChange"] }], directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4__namespace.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i4__namespace.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i4__namespace.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4__namespace.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
1502
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: AdvancedSearchComponent, decorators: [{
|
|
1503
|
+
type: i0.Component,
|
|
1504
|
+
args: [{
|
|
1505
|
+
selector: 'lib-advanced-search',
|
|
1506
|
+
templateUrl: './advanced-search.component.html'
|
|
1507
|
+
}]
|
|
1508
|
+
}], ctorParameters: function () { return []; }, propDecorators: { advancedSearchChanged: [{
|
|
1509
|
+
type: i0.Output
|
|
1510
|
+
}], searchOptions: [{
|
|
1511
|
+
type: i0.Input,
|
|
1512
|
+
args: ['search-options']
|
|
1513
|
+
}], filters: [{
|
|
1514
|
+
type: i0.Input
|
|
1515
|
+
}] } });
|
|
1516
|
+
|
|
1517
|
+
var SkeletonLoaderComponent = /** @class */ (function () {
|
|
1518
|
+
function SkeletonLoaderComponent() {
|
|
1519
|
+
this.count = 5;
|
|
1520
|
+
this.type = 'tiles'; // 'large-tile', 'table'
|
|
1521
|
+
}
|
|
1522
|
+
SkeletonLoaderComponent.prototype.ngOnInit = function () {
|
|
1514
1523
|
};
|
|
1515
|
-
|
|
1516
|
-
return
|
|
1524
|
+
SkeletonLoaderComponent.prototype.counter = function (i) {
|
|
1525
|
+
return new Array(i);
|
|
1517
1526
|
};
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
+
return SkeletonLoaderComponent;
|
|
1528
|
+
}());
|
|
1529
|
+
SkeletonLoaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkeletonLoaderComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1530
|
+
SkeletonLoaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkeletonLoaderComponent, selector: "lib-skeleton-loader", inputs: { count: "count", type: "type" }, ngImport: i0__namespace, template: "<!-- <h1>SKELETON LOADER!</h1> -->\r\n<ng-container *ngSwitch=\"type\">\r\n <div class=\"cards-deck-4\" *ngSwitchCase=\"'tiles'\">\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\r\n <div class=\"animate-pulse flex flex-col\">\r\n <div class=\"rounded w-full h-32 bg-gray-200\"></div>\r\n <div class=\"flex flex-col mt-5\">\r\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"flex items-center mt-5\">\r\n <div>\r\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\r\n </div>\r\n <div class=\"flex justify-between w-full ml-3\">\r\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"cards-deck-3\" *ngSwitchCase=\"'large-tiles'\">\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\r\n <div class=\"animate-pulse flex flex-col\">\r\n <div class=\"rounded w-full h-52 bg-gray-200\"></div>\r\n <div class=\"flex flex-col mt-5\">\r\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"flex items-center mt-5\">\r\n <div>\r\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\r\n </div>\r\n <div class=\"flex justify-between w-full ml-3\">\r\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"cards-deck-1\" *ngSwitchCase=\"'table'\">\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"border border-light-blue-300 shadow rounded-sm p-4 max-w-sm w-full mx-auto mb-4\">\r\n <div class=\"animate-pulse flex space-x-4\">\r\n <div class=\"rounded-full bg-light-blue-400 h-12 w-12\"> </div>\r\n <div class=\"flex-1 space-y-4 py-1\">\r\n <div class=\"h-4 bg-light-blue-400 rounded w-3/4\"> </div>\r\n <div class=\"space-y-2\">\r\n <div class=\"h-4 bg-light-blue-400 rounded\"> </div>\r\n <div class=\"h-4 bg-light-blue-400 rounded w-5/6\"> </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"cards-deck-3\" *ngSwitchDefault>\r\n <ng-container *ngFor=\"let i of counter(count)\">\r\n <div class=\"relative p-4 w-full bg-white rounded-lg overflow-hidden shadow hover:shadow-md rounded-lg\">\r\n <div class=\"animate-pulse flex flex-col\">\r\n <div class=\"rounded w-full h-52 bg-gray-200\"></div>\r\n <div class=\"flex flex-col mt-5\">\r\n <div class=\"w-full h-5 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-10/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-8/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"grid grid-cols-2 mt-5 gap-x-2 gap-y-1\">\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"mt-2 w-full h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n\r\n <div class=\"flex items-center mt-5\">\r\n <div>\r\n <div class=\"rounded-full bg-gray-200 w-10 h-10\"></div>\r\n </div>\r\n <div class=\"flex justify-between w-full ml-3\">\r\n <div class=\"w-5/12 h-3 bg-gray-200 rounded\"></div>\r\n <div class=\"w-2/12 h-3 bg-gray-200 rounded\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</ng-container>\r\n", directives: [{ type: i1__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
|
|
1531
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkeletonLoaderComponent, decorators: [{
|
|
1532
|
+
type: i0.Component,
|
|
1533
|
+
args: [{
|
|
1534
|
+
// tslint:disable-next-line:component-selector
|
|
1535
|
+
selector: 'lib-skeleton-loader',
|
|
1536
|
+
templateUrl: './skeleton-loader.component.html'
|
|
1537
|
+
}]
|
|
1538
|
+
}], ctorParameters: function () { return []; }, propDecorators: { count: [{
|
|
1539
|
+
type: i0.Input
|
|
1540
|
+
}], type: [{
|
|
1541
|
+
type: i0.Input
|
|
1542
|
+
}] } });
|
|
1543
|
+
|
|
1544
|
+
var ListViewEmptyStateComponent = /** @class */ (function () {
|
|
1545
|
+
function ListViewEmptyStateComponent() {
|
|
1546
|
+
this.title = 'Δεν βρέθηκαν εγγραφές.';
|
|
1547
|
+
// tslint:disable-next-line:no-input-rename
|
|
1548
|
+
this.subTitle = 'Παρακαλώ αλλάξτε τα κριτήρια αναζήτησης σας ή ξεκινήστε προσθέτοντας μια νέα εγγραφή';
|
|
1549
|
+
// tslint:disable-next-line:no-input-rename
|
|
1550
|
+
this.newItemLabel = 'Νέα εγγραφή';
|
|
1551
|
+
}
|
|
1552
|
+
ListViewEmptyStateComponent.prototype.ngOnInit = function () {
|
|
1553
|
+
};
|
|
1554
|
+
return ListViewEmptyStateComponent;
|
|
1555
|
+
}());
|
|
1556
|
+
ListViewEmptyStateComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ListViewEmptyStateComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1557
|
+
ListViewEmptyStateComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: { title: "title", subTitle: ["sub-title", "subTitle"], newItemLabel: ["new-item-label", "newItemLabel"] }, ngImport: i0__namespace, template: "<div class=\"p-20\">\r\n <div class=\"text-center p-2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\r\n </svg>\r\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\r\n <p class=\"mt-1 text-sm text-gray-500\">\r\n {{subTitle}}\r\n </p>\r\n <div class=\"mt-6\" *ngIf=\"false\">\r\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\r\n <!-- Heroicon name: solid/plus -->\r\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\r\n </svg>\r\n {{newItemLabel}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1558
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ListViewEmptyStateComponent, decorators: [{
|
|
1559
|
+
type: i0.Component,
|
|
1560
|
+
args: [{
|
|
1561
|
+
selector: 'lib-list-view-empty-state',
|
|
1562
|
+
templateUrl: './list-view-empty-state.component.html'
|
|
1563
|
+
}]
|
|
1564
|
+
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
1565
|
+
type: i0.Input
|
|
1566
|
+
}], subTitle: [{
|
|
1567
|
+
type: i0.Input,
|
|
1568
|
+
args: ['sub-title']
|
|
1569
|
+
}], newItemLabel: [{
|
|
1570
|
+
type: i0.Input,
|
|
1571
|
+
args: ['new-item-label']
|
|
1572
|
+
}] } });
|
|
1573
|
+
|
|
1574
|
+
var ListViewComponent = /** @class */ (function () {
|
|
1575
|
+
function ListViewComponent() {
|
|
1576
|
+
this.searchOptions = [];
|
|
1577
|
+
this.filters = [];
|
|
1578
|
+
// BUSY STATE
|
|
1579
|
+
this.busy = false;
|
|
1580
|
+
// PAGING - pass through for pager component
|
|
1581
|
+
this.count = null;
|
|
1582
|
+
this.page = 1;
|
|
1583
|
+
this.view = ListViewType.Table;
|
|
1584
|
+
this.sort = null;
|
|
1585
|
+
// tslint:disable-next-line:no-input-rename
|
|
1586
|
+
this.pageSize = 20;
|
|
1587
|
+
// tslint:disable-next-line:no-input-rename
|
|
1588
|
+
this.pageSizeOptions = [];
|
|
1589
|
+
// SORTING - pass through for pager component
|
|
1590
|
+
// tslint:disable-next-line:no-input-rename
|
|
1591
|
+
this.sortOptions = [];
|
|
1592
|
+
// tslint:disable-next-line:no-input-rename
|
|
1593
|
+
this.sortdir = '-';
|
|
1594
|
+
// tslint:disable-next-line:no-input-rename
|
|
1595
|
+
this.tilesCount = 4;
|
|
1596
|
+
// tslint:disable-next-line:no-input-rename
|
|
1597
|
+
this.showPager = true;
|
|
1598
|
+
// tslint:disable-next-line:no-input-rename
|
|
1599
|
+
this.pagerPosition = exports.PagerPosition.Top;
|
|
1600
|
+
// DETAILS SECTION
|
|
1601
|
+
// Check if details section and button should be displayed according to the count of the value given
|
|
1602
|
+
// tslint:disable-next-line:no-input-rename
|
|
1603
|
+
this.detailsSectionPropertyCount = null;
|
|
1604
|
+
this.pageChanged = new i0.EventEmitter();
|
|
1605
|
+
this.pageSizeChanged = new i0.EventEmitter();
|
|
1606
|
+
this.detailsOpened = new i0.EventEmitter();
|
|
1607
|
+
this.sortChanged = new i0.EventEmitter();
|
|
1608
|
+
this.sortdirChanged = new i0.EventEmitter();
|
|
1609
|
+
this.advancedSearchChanged = new i0.EventEmitter();
|
|
1610
|
+
this.multipleFullWidth = false;
|
|
1611
|
+
this.expandIcon = Icons.Expand;
|
|
1612
|
+
this.collapseIcon = Icons.Collapse;
|
|
1613
|
+
this.tableViewSupported = false;
|
|
1614
|
+
this.fullWidthTHClass = 'list-view-th-full';
|
|
1615
|
+
this.fullWidthTDClass = 'list-view-td-full';
|
|
1616
|
+
this.tilesViewSupported = false;
|
|
1617
|
+
this.detailsSectionSupported = false;
|
|
1618
|
+
this.loaderItems = [];
|
|
1619
|
+
this.columns = [];
|
|
1620
|
+
this.tilesDeckClass = 'cards-deck-4';
|
|
1621
|
+
this.tileTemplate = null;
|
|
1622
|
+
this.detailsTemplate = null;
|
|
1623
|
+
for (var i = 0; i < 5; i++) {
|
|
1624
|
+
this.loaderItems.push({});
|
|
1625
|
+
}
|
|
1626
|
+
if (this.pagerPosition) {
|
|
1627
|
+
this.pagerPosition = this.pagerPosition;
|
|
1628
|
+
}
|
|
1629
|
+
}
|
|
1630
|
+
Object.defineProperty(ListViewComponent.prototype, "cols", {
|
|
1631
|
+
// COLUMNS
|
|
1632
|
+
set: function (refs) {
|
|
1633
|
+
this.columns = refs === null || refs === void 0 ? void 0 : refs.toArray();
|
|
1634
|
+
if (this.columns && this.columns.length > 0) {
|
|
1635
|
+
this.tableViewSupported = true;
|
|
1527
1636
|
}
|
|
1528
|
-
|
|
1529
|
-
|
|
1637
|
+
this.multipleFullWidth = this.columns.filter(function (c) { return c.fullWidth; }).length > 1;
|
|
1638
|
+
this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';
|
|
1639
|
+
this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';
|
|
1640
|
+
},
|
|
1641
|
+
enumerable: false,
|
|
1642
|
+
configurable: true
|
|
1643
|
+
});
|
|
1644
|
+
Object.defineProperty(ListViewComponent.prototype, "tiles", {
|
|
1645
|
+
// tslint:disable-next-line:no-input-rename
|
|
1646
|
+
set: function (ref) {
|
|
1647
|
+
this.tileTemplate = ref;
|
|
1648
|
+
if (this.tileTemplate) {
|
|
1649
|
+
this.tilesViewSupported = true;
|
|
1530
1650
|
}
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1651
|
+
},
|
|
1652
|
+
enumerable: false,
|
|
1653
|
+
configurable: true
|
|
1654
|
+
});
|
|
1655
|
+
Object.defineProperty(ListViewComponent.prototype, "details", {
|
|
1656
|
+
set: function (ref) {
|
|
1657
|
+
this.detailsTemplate = ref;
|
|
1658
|
+
if (this.detailsTemplate) {
|
|
1659
|
+
this.detailsSectionSupported = true;
|
|
1534
1660
|
}
|
|
1661
|
+
},
|
|
1662
|
+
enumerable: false,
|
|
1663
|
+
configurable: true
|
|
1664
|
+
});
|
|
1665
|
+
ListViewComponent.prototype.ngOnChanges = function (changes) {
|
|
1666
|
+
var tilesCountChange = changes['tiles-count'] || changes.tilesCount;
|
|
1667
|
+
if (tilesCountChange) {
|
|
1668
|
+
this.setTilesDeckClass(tilesCountChange.currentValue);
|
|
1535
1669
|
}
|
|
1536
|
-
this.showCalendar = false;
|
|
1537
1670
|
};
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
this.
|
|
1541
|
-
this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage !== 0 ? this.calendarYearPage : 1);
|
|
1542
|
-
this.calcDays();
|
|
1671
|
+
// events
|
|
1672
|
+
ListViewComponent.prototype.emitPageChanged = function ($event) {
|
|
1673
|
+
this.pageChanged.emit($event);
|
|
1543
1674
|
};
|
|
1544
|
-
|
|
1545
|
-
this.
|
|
1546
|
-
this.calcDays();
|
|
1675
|
+
ListViewComponent.prototype.emitPageSizeChanged = function ($event) {
|
|
1676
|
+
this.pageSizeChanged.emit($event);
|
|
1547
1677
|
};
|
|
1548
|
-
|
|
1549
|
-
this.
|
|
1550
|
-
this.getDateFromInput();
|
|
1678
|
+
ListViewComponent.prototype.emitSortChanged = function ($event) {
|
|
1679
|
+
this.sortChanged.emit($event);
|
|
1551
1680
|
};
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1681
|
+
ListViewComponent.prototype.emitSortdirChanged = function ($event) {
|
|
1682
|
+
this.sortdirChanged.emit($event);
|
|
1683
|
+
};
|
|
1684
|
+
ListViewComponent.prototype.emitAdvancedSearchChanged = function ($event) {
|
|
1685
|
+
this.advancedSearchChanged.emit($event);
|
|
1686
|
+
};
|
|
1687
|
+
ListViewComponent.prototype.toggleDetails = function (item) {
|
|
1688
|
+
item.detailsExpanded = !item.detailsExpanded;
|
|
1689
|
+
this.detailsOpened.emit({ item: item, open: item.detailsExpanded });
|
|
1690
|
+
};
|
|
1691
|
+
// helpers
|
|
1692
|
+
ListViewComponent.prototype.setTilesDeckClass = function (tiles) {
|
|
1693
|
+
if (tiles >= 1 && tiles <= 4) {
|
|
1694
|
+
this.tilesDeckClass =
|
|
1695
|
+
this.view !== ListViewType.Gallery
|
|
1696
|
+
? "cards-deck-" + tiles
|
|
1697
|
+
: this.items && this.items.length > 0
|
|
1698
|
+
? "gallery-deck-" + tiles
|
|
1699
|
+
: 'gallery-deck';
|
|
1700
|
+
}
|
|
1701
|
+
else {
|
|
1702
|
+
this.tilesDeckClass =
|
|
1703
|
+
this.view !== ListViewType.Gallery
|
|
1704
|
+
? 'cards-deck-3'
|
|
1705
|
+
: this.items && this.items.length > 0
|
|
1706
|
+
? 'gallery-deck-3'
|
|
1707
|
+
: 'gallery-deck';
|
|
1569
1708
|
}
|
|
1570
|
-
return outOfRange;
|
|
1571
1709
|
};
|
|
1572
|
-
return
|
|
1710
|
+
return ListViewComponent;
|
|
1573
1711
|
}());
|
|
1574
|
-
|
|
1575
|
-
DatepickerComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: DatepickerComponent, selector: "lib-date-picker", inputs: { readonly: "readonly", disabled: "disabled", inline: "inline", displayFormat: ["display-format", "displayFormat"], placeholder: "placeholder", value: "value", minDate: "minDate", maxDate: "maxDate" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
1576
|
-
|
|
1577
|
-
provide: forms.NG_VALUE_ACCESSOR,
|
|
1578
|
-
useExisting: i0.forwardRef(function () { return DatepickerComponent; }),
|
|
1579
|
-
multi: true
|
|
1580
|
-
}
|
|
1581
|
-
], viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true }], ngImport: i0__namespace, template: "<div class=\"flex\"\r\n [ngClass]=\"{'relative': !inline}\"\r\n (clickOutside)=\"closeCalendar()\">\r\n\r\n <input type=\"text\"\r\n *ngIf=\"!inline\"\r\n #dateInput\r\n [readonly]=\"readonly\"\r\n name=\"dateInput\"\r\n (blur)=\"onBlur($event)\"\r\n id=\"dateInput\"\r\n (focus)=\"showCalendar = false\"\r\n [value]=\"value | date: displayFormat\"\r\n class=\"detapicker-input\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\r\n [placeholder]=\"disabled ? '' : placeholder\">\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!inline\"\r\n class=\"datepicker-button\"\r\n [disabled]=\"disabled\"\r\n (click)=\"openCalendar()\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\">\r\n <i class=\"ms-Icon ms-Icon--DateTime2\"></i>\r\n </button>\r\n\r\n <div *ngIf=\"showCalendar || inline\"\r\n [ngClass]=\"{'absolute': !inline}\"\r\n class=\"datepicker-background\"\r\n style=\"height:18rem;min-width:16rem;\"\r\n name=\"calendar\">\r\n <div class=\"datepicker-btn-wrapper\">\r\n <div>\r\n <button type=\"button\"\r\n (click)=\"openYears()\">\r\n <span class=\"datepicker-selected-month\">\r\n {{monthNames[month]}}\r\n </span>\r\n <span class=\"datepicker-selected-year\">\r\n {{year}}</span>\r\n </button>\r\n </div>\r\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousMonth();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextMonth()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <ng-template #showYearsPickerTmpl>\r\n <div>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"previousYear();\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 19l-7-7 7-7\" />\r\n </svg>\r\n </button>\r\n <button type=\"button\"\r\n class=\"datepicker-nav-btn\"\r\n (click)=\"nextYear()\">\r\n <svg fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M9 5l7 7-7 7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"datepicker-wrapper\"\r\n *ngIf=\"!showYears; else showCalYearsTmpl\">\r\n <div *ngFor=\"let day of dayNames\"\r\n class=\"datepicker-day-name\"\r\n style=\"width: 14.28%\">{{day}}</div>\r\n </div>\r\n\r\n <ng-template #showCalYearsTmpl>\r\n <div class=\"datepicker-content-wrapper\">\r\n <div *ngFor=\"let year of showCalendarYears\"\r\n style=\"width: 18.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectYearValue(year)\"\r\n class=\"datepicker-year\"\r\n [class]=\"year.selected ? 'selected' : 'not-selected'\">\r\n {{year.year}}</div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"datepicker-content-wrapper\"\r\n *ngIf=\"!showYears\">\r\n <div *ngFor=\"let blankday of blankDays\"\r\n style=\"width: 14.28%\"\r\n class=\"datepicker-blank-days\">{{blankday}}</div>\r\n <div *ngFor=\"let date of calendarDates;\"\r\n style=\"width: 14.28%\"\r\n class=\"px-1 mb-1\">\r\n <div (click)=\"selectDateValue(date)\"\r\n class=\"datepicker-days\"\r\n [ngClass]=\"{'out-of-range': outOfRangeDate(date),'selected': date.selected, 'not-selected':!date.selected }\">\r\n {{date.day}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>", directives: [{ type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "date": i1__namespace.DatePipe } });
|
|
1582
|
-
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: DatepickerComponent, decorators: [{
|
|
1712
|
+
ListViewComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ListViewComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1713
|
+
ListViewComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ListViewComponent, selector: "lib-list-view", inputs: { searchOptions: ["search-options", "searchOptions"], filters: "filters", busy: "busy", items: "items", count: "count", page: "page", view: "view", sort: "sort", pageSize: ["page-size", "pageSize"], pageSizeOptions: ["page-size-options", "pageSizeOptions"], sortOptions: ["sort-options", "sortOptions"], sortdir: ["sort-dir", "sortdir"], tilesCount: ["tiles-count", "tilesCount"], showPager: ["show-pager", "showPager"], pagerPosition: ["pager-position", "pagerPosition"], detailsSectionPropertyCount: ["details-section-property-count", "detailsSectionPropertyCount"] }, outputs: { pageChanged: "pageChanged", pageSizeChanged: "pageSizeChanged", detailsOpened: "detailsOpened", sortChanged: "sortChanged", sortdirChanged: "sortdirChanged", advancedSearchChanged: "advancedSearchChanged" }, queries: [{ propertyName: "tiles", first: true, predicate: ListTileComponent, descendants: true, read: ListTileComponent }, { propertyName: "details", first: true, predicate: ListDetailsSectionComponent, descendants: true, read: ListDetailsSectionComponent }, { propertyName: "cols", predicate: ListColumnComponent, read: ListColumnComponent }], usesOnChanges: true, ngImport: i0__namespace, template: "<div class=\"px-2\">\r\n\r\n <lib-advanced-search *ngIf=\"searchOptions && searchOptions.length > 0\"\r\n [search-options]=\"searchOptions\"\r\n [filters]=\"filters\"\r\n (advancedSearchChanged)=\"emitAdvancedSearchChanged($event)\"></lib-advanced-search>\r\n\r\n <lib-pager *ngIf=\"showPager && (pagerPosition == 'top' || pagerPosition == 'both')\"\r\n [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>\r\n\r\n<ng-container [ngSwitch]=\"view\">\r\n\r\n <ng-container *ngSwitchCase=\"'tiles'\">\r\n <div [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\"\r\n [count]=\"5\"\r\n [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- *ngSwitchCase=\"'gallery'\" -->\r\n <ng-container *ngSwitchCase=\"'gallery'\">\r\n <ul role=\"list\"\r\n [class]=\"tilesDeckClass\">\r\n\r\n <lib-skeleton-loader *ngIf=\"busy\"\r\n [count]=\"5\"\r\n [type]=\"'tiles'\"></lib-skeleton-loader>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\r\n <ng-container *ngFor=\"let item of items\">\r\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\r\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ul>\r\n </ng-container>\r\n\r\n <!-- *ngSwitchCase=\"'table'\" -->\r\n <ng-container *ngSwitchDefault>\r\n\r\n <div class=\"list-view-container\">\r\n <div class=\"list-view-container-inner\">\r\n <table class=\"list-view-table\">\r\n <thead class=\"list-view-thead\">\r\n <tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <th class=\"list-view-th-details\"></th>\r\n </ng-container>\r\n <ng-container *ngFor=\"let col of columns\">\r\n <th scope=\"col\"\r\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\r\n {{col.title}}\r\n </th>\r\n </ng-container>\r\n </tr>\r\n </thead>\r\n <tbody class=\"list-view-tbody\"\r\n *ngIf=\"busy\">\r\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button disabled\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n <tbody class=\"list-view-tbody\"\r\n *ngIf=\"!busy\">\r\n <ng-container *ngFor=\"let item of items;let i=index\">\r\n <tr class=\"list-view-tr\">\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <td class=\"list-view-td-details\"\r\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\r\n <button (click)=\"toggleDetails(item)\"\r\n type=\"button\"\r\n class=\"expand-collapse-button\">\r\n <!-- Heroicon name: solid/plus -->\r\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\r\n </button>\r\n </td>\r\n <ng-template #hiddenDetailsButton>\r\n <td class=\"list-view-td-details\"></td>\r\n </ng-template>\r\n </ng-container>\r\n <td *ngFor=\"let col of columns\"\r\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\r\n <ng-template [ngTemplateOutlet]=\"col.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n <ng-container *ngIf=\"detailsSectionSupported\">\r\n <tr *ngIf=\"item.detailsExpanded\">\r\n <td [colSpan]=\"columns.length + 1\"\r\n class=\"list-view-td bg-gray-100\">\r\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\r\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n </ng-container>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\r\n <div class=\"cards-deck-1\">\r\n <lib-list-view-empty-state></lib-list-view-empty-state>\r\n </div>\r\n </ng-container>\r\n</ng-container>\r\n\r\n<ng-content></ng-content>\r\n\r\n<div class=\"pt-2 px-2\">\r\n\r\n <lib-pager *ngIf=\"items && items.length !== 0 && showPager && (pagerPosition == 'bottom' || pagerPosition == 'both')\"\r\n [page]=\"page\"\r\n [page-size]=\"pageSize\"\r\n [count]=\"count\"\r\n [sort-options]=\"sortOptions\"\r\n [sort]=\"sort\"\r\n [sort-dir]=\"sortdir\"\r\n [busy]=\"busy\"\r\n (pageChanged)=\"emitPageChanged($event)\"\r\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\r\n (sortChanged)=\"emitSortChanged($event)\"\r\n (sortdirChanged)=\"emitSortdirChanged($event)\">\r\n </lib-pager>\r\n</div>", components: [{ type: AdvancedSearchComponent, selector: "lib-advanced-search", inputs: ["search-options", "filters"], outputs: ["advancedSearchChanged"] }, { type: PagerComponent, selector: "lib-pager", inputs: ["busy", "count", "page", "page-size", "page-size-options", "sort-options", "sort", "sort-dir"], outputs: ["pageChanged", "pageSizeChanged", "sortChanged", "sortdirChanged"] }, { type: SkeletonLoaderComponent, selector: "lib-skeleton-loader", inputs: ["count", "type"] }, { type: ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: ["title", "sub-title", "new-item-label"] }], directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1__namespace.NgSwitchDefault, selector: "[ngSwitchDefault]" }] });
|
|
1714
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ListViewComponent, decorators: [{
|
|
1583
1715
|
type: i0.Component,
|
|
1584
1716
|
args: [{
|
|
1585
|
-
selector: 'lib-
|
|
1586
|
-
templateUrl: './
|
|
1587
|
-
providers: [
|
|
1588
|
-
{
|
|
1589
|
-
provide: forms.NG_VALUE_ACCESSOR,
|
|
1590
|
-
useExisting: i0.forwardRef(function () { return DatepickerComponent; }),
|
|
1591
|
-
multi: true
|
|
1592
|
-
}
|
|
1593
|
-
]
|
|
1717
|
+
selector: 'lib-list-view',
|
|
1718
|
+
templateUrl: './list-view.component.html'
|
|
1594
1719
|
}]
|
|
1595
|
-
}], ctorParameters: function () {
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
|
|
1599
|
-
}] }];
|
|
1600
|
-
}, propDecorators: { readonly: [{
|
|
1720
|
+
}], ctorParameters: function () { return []; }, propDecorators: { searchOptions: [{
|
|
1721
|
+
type: i0.Input,
|
|
1722
|
+
args: ['search-options']
|
|
1723
|
+
}], filters: [{
|
|
1601
1724
|
type: i0.Input
|
|
1602
|
-
}],
|
|
1725
|
+
}], busy: [{
|
|
1603
1726
|
type: i0.Input
|
|
1604
|
-
}],
|
|
1727
|
+
}], items: [{
|
|
1605
1728
|
type: i0.Input
|
|
1606
|
-
}],
|
|
1607
|
-
type: i0.Input,
|
|
1608
|
-
args: ['display-format']
|
|
1609
|
-
}], placeholder: [{
|
|
1729
|
+
}], count: [{
|
|
1610
1730
|
type: i0.Input
|
|
1611
|
-
}],
|
|
1731
|
+
}], page: [{
|
|
1612
1732
|
type: i0.Input
|
|
1613
|
-
}],
|
|
1733
|
+
}], view: [{
|
|
1734
|
+
type: i0.Input
|
|
1735
|
+
}], sort: [{
|
|
1736
|
+
type: i0.Input
|
|
1737
|
+
}], pageSize: [{
|
|
1738
|
+
type: i0.Input,
|
|
1739
|
+
args: ['page-size']
|
|
1740
|
+
}], pageSizeOptions: [{
|
|
1741
|
+
type: i0.Input,
|
|
1742
|
+
args: ['page-size-options']
|
|
1743
|
+
}], sortOptions: [{
|
|
1744
|
+
type: i0.Input,
|
|
1745
|
+
args: ['sort-options']
|
|
1746
|
+
}], sortdir: [{
|
|
1747
|
+
type: i0.Input,
|
|
1748
|
+
args: ['sort-dir']
|
|
1749
|
+
}], tilesCount: [{
|
|
1750
|
+
type: i0.Input,
|
|
1751
|
+
args: ['tiles-count']
|
|
1752
|
+
}], showPager: [{
|
|
1753
|
+
type: i0.Input,
|
|
1754
|
+
args: ['show-pager']
|
|
1755
|
+
}], pagerPosition: [{
|
|
1756
|
+
type: i0.Input,
|
|
1757
|
+
args: ['pager-position']
|
|
1758
|
+
}], detailsSectionPropertyCount: [{
|
|
1759
|
+
type: i0.Input,
|
|
1760
|
+
args: ['details-section-property-count']
|
|
1761
|
+
}], cols: [{
|
|
1762
|
+
type: i0.ContentChildren,
|
|
1763
|
+
args: [ListColumnComponent, { read: ListColumnComponent }]
|
|
1764
|
+
}], tiles: [{
|
|
1765
|
+
type: i0.ContentChild,
|
|
1766
|
+
args: [ListTileComponent, { read: ListTileComponent }]
|
|
1767
|
+
}], details: [{
|
|
1768
|
+
type: i0.ContentChild,
|
|
1769
|
+
args: [ListDetailsSectionComponent, { read: ListDetailsSectionComponent }]
|
|
1770
|
+
}], pageChanged: [{
|
|
1614
1771
|
type: i0.Output
|
|
1615
|
-
}],
|
|
1616
|
-
type: i0.
|
|
1617
|
-
|
|
1618
|
-
|
|
1772
|
+
}], pageSizeChanged: [{
|
|
1773
|
+
type: i0.Output
|
|
1774
|
+
}], detailsOpened: [{
|
|
1775
|
+
type: i0.Output
|
|
1776
|
+
}], sortChanged: [{
|
|
1777
|
+
type: i0.Output
|
|
1778
|
+
}], sortdirChanged: [{
|
|
1779
|
+
type: i0.Output
|
|
1780
|
+
}], advancedSearchChanged: [{
|
|
1781
|
+
type: i0.Output
|
|
1782
|
+
}] } });
|
|
1783
|
+
|
|
1784
|
+
var CollapsiblePanelComponent = /** @class */ (function () {
|
|
1785
|
+
function CollapsiblePanelComponent() {
|
|
1786
|
+
this.title = null;
|
|
1787
|
+
this.visible = false;
|
|
1788
|
+
}
|
|
1789
|
+
CollapsiblePanelComponent.prototype.ngOnInit = function () {
|
|
1790
|
+
};
|
|
1791
|
+
return CollapsiblePanelComponent;
|
|
1792
|
+
}());
|
|
1793
|
+
CollapsiblePanelComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CollapsiblePanelComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1794
|
+
CollapsiblePanelComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: CollapsiblePanelComponent, selector: "lib-collapsible-panel", inputs: { title: "title" }, ngImport: i0__namespace, template: "<div class=\"collapsible-panel-container\">\r\n <div class=\"collapsible-panel-container-shadow\">\r\n <div class=\"collapsible-panel-container-inner\">\r\n <button type=\"button\" class=\"collapsible-panel-button\" (click)=\"visible = !visible\">\r\n <div class=\"collapsible-panel-button-content-container\">\r\n <span>{{ title }} </span>\r\n <span class=\"ico-plus\"></span>\r\n </div>\r\n </button>\r\n <div class=\"collapsible-panel-content-container\" *ngIf=\"visible\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1795
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: CollapsiblePanelComponent, decorators: [{
|
|
1796
|
+
type: i0.Component,
|
|
1797
|
+
args: [{
|
|
1798
|
+
selector: 'lib-collapsible-panel',
|
|
1799
|
+
templateUrl: './collapsible-panel.component.html'
|
|
1800
|
+
}]
|
|
1801
|
+
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
1619
1802
|
type: i0.Input
|
|
1620
|
-
}]
|
|
1803
|
+
}] } });
|
|
1804
|
+
|
|
1805
|
+
var KpiTileComponent = /** @class */ (function () {
|
|
1806
|
+
function KpiTileComponent() {
|
|
1807
|
+
this.title = undefined;
|
|
1808
|
+
this.busy = false;
|
|
1809
|
+
this.kpi = undefined;
|
|
1810
|
+
// tslint:disable-next-line:no-output-rename
|
|
1811
|
+
this.tileAction = new i0.EventEmitter();
|
|
1812
|
+
}
|
|
1813
|
+
KpiTileComponent.prototype.ngOnInit = function () {
|
|
1814
|
+
};
|
|
1815
|
+
KpiTileComponent.prototype.emitTileAction = function ($event) {
|
|
1816
|
+
$event.preventDefault();
|
|
1817
|
+
$event.stopPropagation();
|
|
1818
|
+
this.tileAction.emit($event);
|
|
1819
|
+
return false;
|
|
1820
|
+
};
|
|
1821
|
+
return KpiTileComponent;
|
|
1822
|
+
}());
|
|
1823
|
+
KpiTileComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KpiTileComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1824
|
+
KpiTileComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: KpiTileComponent, selector: "lib-kpi-tile", inputs: { title: "title", busy: "busy", kpi: "kpi" }, outputs: { tileAction: "tile-action" }, ngImport: i0__namespace, template: "<div class=\"card\"\r\n [ngClass]=\"{'card-deck-busy' : busy }\">\r\n <div class=\"card-body\">\r\n <div class=\"kpi-tile-title-container\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\r\n </div>\r\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\r\n <div class=\"card-footer\">\r\n <div class=\"text-xs\">\r\n <a href=\"#\"\r\n class=\"kpi-tile-action\"\r\n (click)=\"emitTileAction($event)\">\u03A0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B1</a>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", directives: [{ type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
1825
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: KpiTileComponent, decorators: [{
|
|
1826
|
+
type: i0.Component,
|
|
1827
|
+
args: [{
|
|
1828
|
+
selector: 'lib-kpi-tile',
|
|
1829
|
+
templateUrl: './kpi-tile.component.html'
|
|
1830
|
+
}]
|
|
1831
|
+
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
1832
|
+
type: i0.Input
|
|
1833
|
+
}], busy: [{
|
|
1621
1834
|
type: i0.Input
|
|
1835
|
+
}], kpi: [{
|
|
1836
|
+
type: i0.Input
|
|
1837
|
+
}], tileAction: [{
|
|
1838
|
+
type: i0.Output,
|
|
1839
|
+
args: ['tile-action']
|
|
1622
1840
|
}] } });
|
|
1623
1841
|
|
|
1624
1842
|
var ToasterService = /** @class */ (function () {
|
|
@@ -1790,7 +2008,7 @@
|
|
|
1790
2008
|
ToggleComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ToggleComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1791
2009
|
ToggleComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ToggleComponent, selector: "lib-toggle", inputs: { value: "value", disabled: "disabled" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
1792
2010
|
{
|
|
1793
|
-
provide:
|
|
2011
|
+
provide: i4.NG_VALUE_ACCESSOR,
|
|
1794
2012
|
useExisting: i0.forwardRef(function () { return ToggleComponent; }),
|
|
1795
2013
|
multi: true
|
|
1796
2014
|
}
|
|
@@ -1802,7 +2020,7 @@
|
|
|
1802
2020
|
templateUrl: './toggle.component.html',
|
|
1803
2021
|
providers: [
|
|
1804
2022
|
{
|
|
1805
|
-
provide:
|
|
2023
|
+
provide: i4.NG_VALUE_ACCESSOR,
|
|
1806
2024
|
useExisting: i0.forwardRef(function () { return ToggleComponent; }),
|
|
1807
2025
|
multi: true
|
|
1808
2026
|
}
|
|
@@ -1900,12 +2118,19 @@
|
|
|
1900
2118
|
// tslint:disable-next-line:no-input-rename
|
|
1901
2119
|
this.showIcons = false;
|
|
1902
2120
|
}
|
|
2121
|
+
NavLinksListComponent.prototype.ngOnDestroy = function () {
|
|
2122
|
+
var _a;
|
|
2123
|
+
(_a = this.fragmentSub$) === null || _a === void 0 ? void 0 : _a.unsubscribe();
|
|
2124
|
+
};
|
|
1903
2125
|
NavLinksListComponent.prototype.ngOnInit = function () {
|
|
2126
|
+
var _this = this;
|
|
2127
|
+
var _a;
|
|
2128
|
+
this.fragmentSub$ = (_a = this.activeFragment) === null || _a === void 0 ? void 0 : _a.subscribe(function (fragment) { return _this.fragmentValue = fragment; });
|
|
1904
2129
|
};
|
|
1905
2130
|
return NavLinksListComponent;
|
|
1906
2131
|
}());
|
|
1907
2132
|
NavLinksListComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NavLinksListComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
1908
|
-
NavLinksListComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NavLinksListComponent, selector: "lib-nav-links-list", inputs: { links: "links", activeFragment: ["active-fragment", "activeFragment"], navLinkClass: ["link-class", "navLinkClass"], navLinkActiveClass: ["link-active-class", "navLinkActiveClass"], containerClass: ["container-class", "containerClass"], showIcons: ["show-icons", "showIcons"] }, ngImport: i0__namespace, template: "\r\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\r\n <div class=\"nav-link-list-container-inner\">\r\n <ng-container *ngFor=\"let link of links | async\">\r\n <ng-container [ngSwitch]=\"link.type\">\r\n <a *ngSwitchCase=\"'router'\"\r\n href=\"#\"\r\n [routerLink]=\"[link.path]\"\r\n [routerLinkActive]=\"navLinkActiveClass\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n [class]=\"navLinkClass\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon + ' mr-3'\"></i>{{ link.text }}\r\n </a>\r\n <a *ngSwitchCase=\"'external'\"\r\n [href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\"\r\n [class]=\"navLinkClass\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\r\n </a>\r\n <a *ngSwitchCase=\"'fragment'\"\r\n routerLink=\".\"\r\n [fragment]=\"link.path\"\r\n [class
|
|
2133
|
+
NavLinksListComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NavLinksListComponent, selector: "lib-nav-links-list", inputs: { links: "links", activeFragment: ["active-fragment", "activeFragment"], navLinkClass: ["link-class", "navLinkClass"], navLinkActiveClass: ["link-active-class", "navLinkActiveClass"], containerClass: ["container-class", "containerClass"], showIcons: ["show-icons", "showIcons"] }, ngImport: i0__namespace, template: "\r\n<div [class]=\"containerClass ?? 'nav-link-list-container'\">\r\n <div class=\"nav-link-list-container-inner\">\r\n <ng-container *ngFor=\"let link of links | async\">\r\n <ng-container [ngSwitch]=\"link.type\">\r\n <a *ngSwitchCase=\"'router'\"\r\n href=\"#\"\r\n [routerLink]=\"[link.path]\"\r\n [routerLinkActive]=\"navLinkActiveClass\"\r\n [routerLinkActiveOptions]=\"{ exact: link.exact }\"\r\n [class]=\"navLinkClass\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon + ' mr-3'\"></i>{{ link.text }}\r\n </a>\r\n <a *ngSwitchCase=\"'external'\"\r\n [href]=\"link.path\"\r\n [attr.target]=\"link.external ? '_blank' : '_self'\"\r\n [class]=\"navLinkClass\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\r\n </a>\r\n <a *ngSwitchCase=\"'fragment'\"\r\n routerLink=\".\"\r\n [fragment]=\"link.path\"\r\n [class]=\"fragmentValue === link.path ? navLinkClass + ' ' + navLinkActiveClass : navLinkClass\">\r\n <i *ngIf=\"showIcons && link.icon\" [class]=\"link.icon+ ' mr-3'\"></i>{{ link.text }}\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", directives: [{ type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1__namespace$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: i1__namespace$1.RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "routerLinkActive"], exportAs: ["routerLinkActive"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i1__namespace.AsyncPipe } });
|
|
1909
2134
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: NavLinksListComponent, decorators: [{
|
|
1910
2135
|
type: i0.Component,
|
|
1911
2136
|
args: [{
|
|
@@ -2004,7 +2229,7 @@
|
|
|
2004
2229
|
return ComboboxComponent;
|
|
2005
2230
|
}());
|
|
2006
2231
|
ComboboxComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ComboboxComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
2007
|
-
ComboboxComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ComboboxComponent, selector: "lib-combobox", inputs: { id: "id", items: "items", itemTemplate: "itemTemplate", selectedItemsFilter: "selectedItemsFilter", selectedItemTemplate: "selectedItemTemplate", busy: "busy", debounceMs: "debounceMs" }, outputs: { onSearch: "onSearch", onItemSelected: "onItemSelected" }, ngImport: i0__namespace, template: "<div class=\"relative mt-1\">\r\n <form autocomplete=\"off\" [id]=\"id + '-form'\">\r\n <input [id]=\"id + '-input'\" type=\"text\" (click)=\"onInputClick()\" (clickOutside)=\"onInputClickOutside()\" (keyup)=\"onInputKeyUp($event)\"\r\n class=\"w-full rounded-md border border-gray-300 bg-white py-2 pl-3 pr-12 shadow-sm focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500 sm:text-sm\" role=\"combobox\" aria-controls=\"options\"\r\n aria-expanded=\"false\" autocomplete=\"off\" list=\"autocomplete\">\r\n </form>\r\n <div class=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\">\r\n <svg *ngIf=\"!busy\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\r\n </svg>\r\n <svg *ngIf=\"busy\" class=\"animate-spin h-6 w-6 text-gray-400\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\r\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\r\n </svg>\r\n </div>\r\n <ul [id]=\"id + '-options'\" *ngIf=\"showOptions\" class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\" role=\"listbox\">\r\n <li *ngFor=\"let item of items; let i = index;\" [id]=\"'option-'+ i\" (click)=\"onListItemSelected(item)\" role=\"option\" tabindex=\"-1\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </li>\r\n </ul>\r\n</div>\r\n<ul *ngIf=\"selectedItems.length > 0\" role=\"list\" class=\"grid grid-cols-1\">\r\n <li *ngFor=\"let item of selectedItems; let i = index;\" class=\"mt-3\">\r\n <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </li>\r\n</ul>\r\n<ng-template #defaultItemTemplate let-item>\r\n <span class=\"hover:bg-gray-100 relative cursor-pointer select-none py-2 pl-3 pr-3 block truncate\">{{ item }}</span>\r\n</ng-template>\r\n<ng-template #defaultSelectedItemTemplate let-item>\r\n <div class=\"grid grid-cols-1\">\r\n <div class=\"relative rounded-lg border border-gray-300 bg-white px-6 py-5 shadow-sm flex items-center space-x-3 hover:border-gray-400\">\r\n <div class=\"flex-1 min-w-0\">\r\n <div class=\"focus:outline-none\">\r\n <span class=\"absolute\" aria-hidden=\"true\"></span>\r\n <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\r\n </div>\r\n </div>\r\n <div class=\"ml-4 flex-shrink-0 flex\">\r\n <button type=\"button\" (click)=\"removeSelectedItem(item)\" class=\"cursor-pointer bg-white rounded-md inline-flex text-gray-400 hover:text-gray-500\">\r\n <span class=\"sr-only\">Close</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>", directives: [{ type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
2232
|
+
ComboboxComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ComboboxComponent, selector: "lib-combobox", inputs: { id: "id", items: "items", itemTemplate: "itemTemplate", selectedItemsFilter: "selectedItemsFilter", selectedItemTemplate: "selectedItemTemplate", busy: "busy", debounceMs: "debounceMs" }, outputs: { onSearch: "onSearch", onItemSelected: "onItemSelected" }, ngImport: i0__namespace, template: "<div class=\"relative mt-1\">\r\n <form autocomplete=\"off\" [id]=\"id + '-form'\">\r\n <input [id]=\"id + '-input'\" type=\"text\" (click)=\"onInputClick()\" (clickOutside)=\"onInputClickOutside()\" (keyup)=\"onInputKeyUp($event)\"\r\n class=\"w-full rounded-md border border-gray-300 bg-white py-2 pl-3 pr-12 shadow-sm focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500 sm:text-sm\" role=\"combobox\" aria-controls=\"options\"\r\n aria-expanded=\"false\" autocomplete=\"off\" list=\"autocomplete\">\r\n </form>\r\n <div class=\"absolute inset-y-0 right-0 flex items-center rounded-r-md px-2 focus:outline-none\">\r\n <svg *ngIf=\"!busy\" xmlns=\"http://www.w3.org/2000/svg\" class=\"h-6 w-6 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\" />\r\n </svg>\r\n <svg *ngIf=\"busy\" class=\"animate-spin h-6 w-6 text-gray-400\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\">\r\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" stroke=\"currentColor\" stroke-width=\"4\"></circle>\r\n <path class=\"opacity-75\" fill=\"currentColor\" d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"></path>\r\n </svg>\r\n </div>\r\n <ul [id]=\"id + '-options'\" *ngIf=\"showOptions\" class=\"absolute z-10 mt-1 max-h-60 w-full overflow-auto rounded-md bg-white py-1 text-base shadow-lg ring-1 ring-black ring-opacity-5 focus:outline-none sm:text-sm\" role=\"listbox\">\r\n <li *ngFor=\"let item of items; let i = index;\" [id]=\"'option-'+ i\" (click)=\"onListItemSelected(item)\" role=\"option\" tabindex=\"-1\">\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate || defaultItemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </li>\r\n </ul>\r\n</div>\r\n<ul *ngIf=\"selectedItems.length > 0\" role=\"list\" class=\"grid grid-cols-1\">\r\n <li *ngFor=\"let item of selectedItems; let i = index;\" class=\"mt-3\">\r\n <ng-container [ngTemplateOutlet]=\"selectedItemTemplate || defaultSelectedItemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-container>\r\n </li>\r\n</ul>\r\n<ng-template #defaultItemTemplate let-item>\r\n <span class=\"hover:bg-gray-100 relative cursor-pointer select-none py-2 pl-3 pr-3 block truncate\">{{ item }}</span>\r\n</ng-template>\r\n<ng-template #defaultSelectedItemTemplate let-item>\r\n <div class=\"grid grid-cols-1\">\r\n <div class=\"relative rounded-lg border border-gray-300 bg-white px-6 py-5 shadow-sm flex items-center space-x-3 hover:border-gray-400\">\r\n <div class=\"flex-1 min-w-0\">\r\n <div class=\"focus:outline-none\">\r\n <span class=\"absolute\" aria-hidden=\"true\"></span>\r\n <p class=\"text-sm font-medium text-gray-900\">{{ item }}</p>\r\n </div>\r\n </div>\r\n <div class=\"ml-4 flex-shrink-0 flex\">\r\n <button type=\"button\" (click)=\"removeSelectedItem(item)\" class=\"cursor-pointer bg-white rounded-md inline-flex text-gray-400 hover:text-gray-500\">\r\n <span class=\"sr-only\">Close</span>\r\n <svg class=\"h-5 w-5\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\"\r\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\r\n clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>", directives: [{ type: i4__namespace.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i4__namespace.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i4__namespace.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
2008
2233
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ComboboxComponent, decorators: [{
|
|
2009
2234
|
type: i0.Component,
|
|
2010
2235
|
args: [{
|
|
@@ -2149,7 +2374,7 @@
|
|
|
2149
2374
|
LibTabGroupComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: LibTabGroupComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
2150
2375
|
LibTabGroupComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: LibTabGroupComponent, selector: "lib-tab-group", outputs: { tabChanged: "tabChanged" }, providers: [
|
|
2151
2376
|
{ provide: LIBTABGROUP_ACCESSOR, useExisting: i0.forwardRef(function () { return LibTabGroupComponent; }) }
|
|
2152
|
-
], queries: [{ propertyName: "tabs", predicate: LibTabComponent, descendants: true }], ngImport: i0__namespace, template: "<div class=\"tab-group-select-hidden\">\r\n <label for=\"tabs\" class=\"sr-only\">Select a tab</label>\r\n <select id=\"tabs\" name=\"tabs\" (change)=\"onTabSelectChanged(+tabsSelect.value)\" class=\"tab-group-select\" #tabsSelect>\r\n <option [value]=\"i\" *ngFor=\"let tab of tabs; let i = index\">{{ tab.label }}</option>\r\n </select>\r\n</div>\r\n<div class=\"tab-group-container-hidden\">\r\n <div class=\"tab-group-container\">\r\n <nav class=\"tab-group-container-nav\" aria-label=\"Tabs\">\r\n <a *ngFor=\"let tab of tabs\" href=\"javascript:void(0)\" [class.tab]=\"!tab.isActive\" [class.tab-active]=\"tab.isActive\" (click)=\"onTabChanged(tab)\">\r\n {{ tab.label }}\r\n </a>\r\n </nav>\r\n </div>\r\n</div>\r\n<div *ngIf=\"currentTab?.content\">\r\n <ng-container [ngTemplateOutlet]=\"currentTab!.content\"></ng-container>\r\n</div>", directives: [{ type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
2377
|
+
], queries: [{ propertyName: "tabs", predicate: LibTabComponent, descendants: true }], ngImport: i0__namespace, template: "<div class=\"tab-group-select-hidden\">\r\n <label for=\"tabs\" class=\"sr-only\">Select a tab</label>\r\n <select id=\"tabs\" name=\"tabs\" (change)=\"onTabSelectChanged(+tabsSelect.value)\" class=\"tab-group-select\" #tabsSelect>\r\n <option [value]=\"i\" *ngFor=\"let tab of tabs; let i = index\">{{ tab.label }}</option>\r\n </select>\r\n</div>\r\n<div class=\"tab-group-container-hidden\">\r\n <div class=\"tab-group-container\">\r\n <nav class=\"tab-group-container-nav\" aria-label=\"Tabs\">\r\n <a *ngFor=\"let tab of tabs\" href=\"javascript:void(0)\" [class.tab]=\"!tab.isActive\" [class.tab-active]=\"tab.isActive\" (click)=\"onTabChanged(tab)\">\r\n {{ tab.label }}\r\n </a>\r\n </nav>\r\n </div>\r\n</div>\r\n<div *ngIf=\"currentTab?.content\">\r\n <ng-container [ngTemplateOutlet]=\"currentTab!.content\"></ng-container>\r\n</div>", directives: [{ type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4__namespace.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i4__namespace.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
2153
2378
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: LibTabGroupComponent, decorators: [{
|
|
2154
2379
|
type: i0.Component,
|
|
2155
2380
|
args: [{
|
|
@@ -2210,8 +2435,7 @@
|
|
|
2210
2435
|
Object.defineProperty(LibStepComponent.prototype, "index", {
|
|
2211
2436
|
/** Indicates the index of the step. */
|
|
2212
2437
|
get: function () {
|
|
2213
|
-
|
|
2214
|
-
return (_a = this._stepper) === null || _a === void 0 ? void 0 : _a.steps.toArray().indexOf(this);
|
|
2438
|
+
return this._stepper ? this._stepper.steps.toArray().indexOf(this) : -1;
|
|
2215
2439
|
},
|
|
2216
2440
|
enumerable: false,
|
|
2217
2441
|
configurable: true
|
|
@@ -2219,8 +2443,7 @@
|
|
|
2219
2443
|
Object.defineProperty(LibStepComponent.prototype, "isLast", {
|
|
2220
2444
|
/** Indicates whether this step is the last step. */
|
|
2221
2445
|
get: function () {
|
|
2222
|
-
|
|
2223
|
-
return ((_a = this._stepper) === null || _a === void 0 ? void 0 : _a.steps.length) - 1 === this.index;
|
|
2446
|
+
return this._stepper ? this._stepper.steps.length - 1 === this.index : false;
|
|
2224
2447
|
},
|
|
2225
2448
|
enumerable: false,
|
|
2226
2449
|
configurable: true
|
|
@@ -2299,11 +2522,15 @@
|
|
|
2299
2522
|
})(exports.StepperType || (exports.StepperType = {}));
|
|
2300
2523
|
|
|
2301
2524
|
var LibStepperComponent = /** @class */ (function () {
|
|
2302
|
-
function LibStepperComponent() {
|
|
2525
|
+
function LibStepperComponent(_changeDetectorRef) {
|
|
2526
|
+
this._changeDetectorRef = _changeDetectorRef;
|
|
2303
2527
|
// Private properties.
|
|
2304
2528
|
this._currentStepIndex = 0;
|
|
2529
|
+
this._isCompleted = false;
|
|
2305
2530
|
/** Emmited when a step change occurs. */
|
|
2306
2531
|
this.stepChanged = new i0.EventEmitter();
|
|
2532
|
+
/** Emmited when the stepper navigates away from the final step. Only emits once. */
|
|
2533
|
+
this.completed = new i0.EventEmitter();
|
|
2307
2534
|
/** Indicates whether each step has to be validated before proceeding to the next. */
|
|
2308
2535
|
this.linear = false;
|
|
2309
2536
|
/** The type of the stepper. */
|
|
@@ -2328,19 +2555,50 @@
|
|
|
2328
2555
|
enumerable: false,
|
|
2329
2556
|
configurable: true
|
|
2330
2557
|
});
|
|
2558
|
+
Object.defineProperty(LibStepperComponent.prototype, "canGoBack", {
|
|
2559
|
+
/** Indicates whether stepper can go a step back. */
|
|
2560
|
+
get: function () {
|
|
2561
|
+
return this._currentStepIndex > 0;
|
|
2562
|
+
},
|
|
2563
|
+
enumerable: false,
|
|
2564
|
+
configurable: true
|
|
2565
|
+
});
|
|
2566
|
+
Object.defineProperty(LibStepperComponent.prototype, "canGoForward", {
|
|
2567
|
+
/** Indicates whether stepper can go a step forward. */
|
|
2568
|
+
get: function () {
|
|
2569
|
+
var _a;
|
|
2570
|
+
return this._currentStepIndex < ((_a = this.steps) === null || _a === void 0 ? void 0 : _a.length) - 1;
|
|
2571
|
+
},
|
|
2572
|
+
enumerable: false,
|
|
2573
|
+
configurable: true
|
|
2574
|
+
});
|
|
2575
|
+
Object.defineProperty(LibStepperComponent.prototype, "isCompleted", {
|
|
2576
|
+
/** Indicates whether */
|
|
2577
|
+
get: function () {
|
|
2578
|
+
return this._isCompleted;
|
|
2579
|
+
},
|
|
2580
|
+
enumerable: false,
|
|
2581
|
+
configurable: true
|
|
2582
|
+
});
|
|
2331
2583
|
LibStepperComponent.prototype.ngOnInit = function () { };
|
|
2584
|
+
LibStepperComponent.prototype.ngAfterViewChecked = function () {
|
|
2585
|
+
this._changeDetectorRef.detectChanges();
|
|
2586
|
+
};
|
|
2332
2587
|
/** Proceeds to the next step, if any. */
|
|
2333
2588
|
LibStepperComponent.prototype.goToNextStep = function () {
|
|
2334
|
-
|
|
2335
|
-
if (this.
|
|
2589
|
+
var _a;
|
|
2590
|
+
if (((_a = this.currentStep) === null || _a === void 0 ? void 0 : _a.isLast) && !this._isCompleted) {
|
|
2591
|
+
this._isCompleted = true;
|
|
2592
|
+
this.completed.emit();
|
|
2593
|
+
}
|
|
2594
|
+
if (!this.canGoForward) {
|
|
2336
2595
|
return;
|
|
2337
2596
|
}
|
|
2338
2597
|
this.updateCurrentStepIndex(this._currentStepIndex + 1);
|
|
2339
2598
|
};
|
|
2340
2599
|
/** Proceeds to the previous step, if any. */
|
|
2341
2600
|
LibStepperComponent.prototype.goToPreviousStep = function () {
|
|
2342
|
-
|
|
2343
|
-
if (this._currentStepIndex === 0) {
|
|
2601
|
+
if (!this.canGoBack) {
|
|
2344
2602
|
return;
|
|
2345
2603
|
}
|
|
2346
2604
|
this.updateCurrentStepIndex(this._currentStepIndex - 1);
|
|
@@ -2367,10 +2625,10 @@
|
|
|
2367
2625
|
};
|
|
2368
2626
|
return LibStepperComponent;
|
|
2369
2627
|
}());
|
|
2370
|
-
LibStepperComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: LibStepperComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
2371
|
-
LibStepperComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: LibStepperComponent, selector: "lib-stepper", inputs: { linear: "linear", type: "type" }, outputs: { stepChanged: "stepChanged" }, providers: [
|
|
2628
|
+
LibStepperComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: LibStepperComponent, deps: [{ token: i0__namespace.ChangeDetectorRef }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
2629
|
+
LibStepperComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: LibStepperComponent, selector: "lib-stepper", inputs: { linear: "linear", type: "type" }, outputs: { stepChanged: "stepChanged", completed: "completed" }, providers: [
|
|
2372
2630
|
{ provide: LIBSTEPPER_ACCESSOR, useExisting: i0.forwardRef(function () { return LibStepperComponent; }) }
|
|
2373
|
-
], queries: [{ propertyName: "steps", predicate: LibStepComponent, descendants: true }], ngImport: i0__namespace, template: "<ng-container [ngSwitch]=\"type\">\r\n <!-- Bullets -->\r\n <nav class=\"flex items-center justify-center\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Bullets\">\r\n <p class=\"text-sm font-medium\">Step {{ currentStepIndex + 1 }} of {{ steps.length }}</p>\r\n <ol role=\"list\" class=\"ml-8 flex items-center space-x-5\">\r\n <li class=\"cursor-pointer\" *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\">\r\n <!-- Completed Step -->\r\n <div class=\"block w-2.5 h-2.5 bg-blue-600 rounded-full hover:bg-blue-900\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"relative flex items-center justify-center\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"absolute w-5 h-5 p-px flex\" aria-hidden=\"true\">\r\n <span class=\"w-full h-full rounded-full bg-blue-200\"></span>\r\n </span>\r\n <span class=\"relative block w-2.5 h-2.5 bg-blue-600 rounded-full\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div href=\"#\" class=\"block w-2.5 h-2.5 bg-gray-200 rounded-full hover:bg-gray-400\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Bullets & Text -->\r\n <div class=\"flex items-center justify-center\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.BulletsAndText\">\r\n <nav aria-label=\"Progress\">\r\n <ol role=\"list\" class=\"space-y-6\">\r\n <li class=\"cursor-pointer\" *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\">\r\n <!-- Complete Step -->\r\n <div class=\"group\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"flex items-start\">\r\n <span class=\"flex-shrink-0 relative h-5 w-5 flex items-center justify-center\">\r\n <svg class=\"h-full w-full text-blue-600 group-hover:text-blue-800\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"ml-3 text-sm font-medium text-gray-500 group-hover:text-gray-900\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"flex items-start\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"flex-shrink-0 h-5 w-5 relative flex items-center justify-center\" aria-hidden=\"true\">\r\n <span class=\"absolute h-4 w-4 rounded-full bg-blue-200\"></span>\r\n <span class=\"relative block w-2 h-2 bg-blue-600 rounded-full\"></span>\r\n </span>\r\n <span class=\"ml-3 text-sm font-medium text-blue-600\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"flex items-start\">\r\n <div class=\"flex-shrink-0 h-5 w-5 relative flex items-center justify-center\" aria-hidden=\"true\">\r\n <div class=\"h-2 w-2 bg-gray-300 rounded-full group-hover:bg-gray-400\"></div>\r\n </div>\r\n <p class=\"ml-3 text-sm font-medium text-gray-500 group-hover:text-gray-900\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </p>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Circles -->\r\n <nav class=\"flex justify-center\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Circles\">\r\n <ol class=\"flex items-center\" role=\"list\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative pr-8 sm:pr-20 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-blue-600\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full hover:bg-blue-900\">\r\n <svg class=\"w-5 h-5 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\" aria-current=\"step\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"group relative w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Circles With Text -->\r\n <nav class=\"flex items-center justify-center\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.CirclesWithText\">\r\n <ol role=\"list\" class=\"overflow-hidden\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative pb-10 cursor-pointer\">\r\n <!-- Complete Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-blue-600\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-5 h-5 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\" aria-current=\"step\">\r\n <span class=\"h-9 flex items-center\" aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-blue-600\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div href=\"#\" class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\" aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-gray-500\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels -->\r\n <nav aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Panels\">\r\n <ol role=\"list\" class=\"border border-gray-300 rounded-md divide-y divide-gray-300 md:flex md:divide-y-0\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative md:flex-1 md:flex cursor-pointer\">\r\n <!-- Completed step -->\r\n <div class=\"group flex items-center w-full\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-6 h-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-900\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active step -->\r\n <div class=\"px-6 py-4 flex items-center text-sm font-medium\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-blue-600 rounded-full\">\r\n <span class=\"text-blue-600\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-blue-600\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming step -->\r\n <div class=\"group flex items-center\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"text-gray-500 group-hover:text-gray-900\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-500 group-hover:text-gray-900\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Arrow separator for lg screens and up -->\r\n <div *ngIf=\"!step.isLast\" class=\"hidden md:block absolute top-0 right-0 h-full w-5\" aria-hidden=\"true\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 22 80\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0 -2L20 40L0 82\" vector-effect=\"non-scaling-stroke\" stroke=\"currentcolor\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels With Border -->\r\n <div class=\"border-t border-b border-gray-200\" *ngSwitchCase=\"StepperType.PanelsWithBorder\">\r\n <nav class=\"mx-auto max-w-7xl px-4 sm:px-6 lg:px-8\" aria-label=\"Progress\">\r\n <ol role=\"list\" class=\"rounded-md overflow-hidden flex border-l border-r border-gray-200 lg:rounded-none\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative overflow-hidden lg:flex-1 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <div class=\"border border-gray-200 overflow-hidden border-b-0 rounded-t-md lg:border-0\" *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"group\">\r\n <span class=\"absolute top-0 left-0 w-1 h-full bg-transparent group-hover:bg-gray-200 lg:w-full lg:h-1 lg:bottom-0 lg:top-auto\" aria-hidden=\"true\"></span>\r\n <span class=\"px-6 py-5 flex items-start text-sm font-medium\">\r\n <span class=\"flex-shrink-0\">\r\n <span class=\"w-10 h-10 flex items-center justify-center bg-blue-600 rounded-full\">\r\n <svg class=\"w-6 h-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"mt-0.5 ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm font-medium text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"border border-gray-200 overflow-hidden lg:border-0\" *ngIf=\"step.state === StepState.Active\">\r\n <div aria-current=\"step\">\r\n <span class=\"absolute top-0 left-0 w-1 h-full bg-blue-600 lg:w-full lg:h-1 lg:bottom-0 lg:top-auto\" aria-hidden=\"true\"></span>\r\n <span class=\"px-6 py-5 flex items-start text-sm font-medium lg:pl-9\">\r\n <span class=\"flex-shrink-0\">\r\n <span class=\"w-10 h-10 flex items-center justify-center border-2 border-blue-600 rounded-full\">\r\n <span class=\"text-blue-600\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"mt-0.5 ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold text-blue-600 tracking-wide uppercase\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm font-medium text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"hidden absolute top-0 left-0 w-3 inset-0 lg:block\" aria-hidden=\"true\" *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 12 82\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\" stroke=\"currentcolor\" vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"border border-gray-200 overflow-hidden border-t-0 rounded-b-md lg:border-0\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"group\">\r\n <span class=\"absolute top-0 left-0 w-1 h-full bg-transparent group-hover:bg-gray-200 lg:w-full lg:h-1 lg:bottom-0 lg:top-auto\" aria-hidden=\"true\"></span>\r\n <span class=\"px-6 py-5 flex items-start text-sm font-medium lg:pl-9\">\r\n <span class=\"flex-shrink-0\">\r\n <span class=\"w-10 h-10 flex items-center justify-center border-2 border-gray-300 rounded-full\">\r\n <span class=\"text-gray-500\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"mt-0.5 ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold text-gray-500 tracking-wide uppercase\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm font-medium text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"hidden absolute top-0 left-0 w-3 inset-0 lg:block\" aria-hidden=\"true\" *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 12 82\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\" stroke=\"currentcolor\" vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Progress -->\r\n <div *ngSwitchCase=\"StepperType.Progress\">\r\n <div class=\"mt-6\" aria-hidden=\"true\">\r\n <div class=\"bg-gray-200 rounded-full overflow-hidden\">\r\n <div class=\"h-2 bg-blue-600 rounded-full\" [style.width]=\"(((currentStepIndex + 1) / steps.length) * 100) + '%'\"></div>\r\n </div>\r\n <div class=\"hidden sm:grid grid-cols-4 text-sm font-medium text-gray-600 mt-6\">\r\n <div *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"text-blue-600 cursor-pointer\">\r\n <ng-container *ngIf=\"step.stepLabel\" [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Simple -->\r\n <nav aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Simple\">\r\n <ol role=\"list\" class=\"space-y-4 md:flex md:space-y-0 md:space-x-8\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"md:flex-1 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-blue-600 hover:border-blue-800 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase group-hover:text-blue-800\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"pl-4 py-2 flex flex-col border-l-4 border-blue-600 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-gray-200 hover:border-gray-300 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"text-xs text-gray-500 font-semibold tracking-wide uppercase group-hover:text-gray-700\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n</ng-container>\r\n<ng-container *ngFor=\"let step of steps\">\r\n <ng-container *ngIf=\"step.state === StepState.Active\" [ngTemplateOutlet]=\"step.content\"></ng-container>\r\n</ng-container>", directives: [{ type: i1__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
2631
|
+
], queries: [{ propertyName: "steps", predicate: LibStepComponent, descendants: true }], ngImport: i0__namespace, template: "<ng-container [ngSwitch]=\"type\">\r\n <!-- Bullets -->\r\n <nav class=\"stepper-bullets-container\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Bullets\">\r\n <p class=\"stepper-bullets-counter\">Step {{ currentStepIndex + 1 }} of {{ steps.length }}</p>\r\n <ol role=\"list\" class=\"stepper-bullets-ol\">\r\n <li class=\"cursor-pointer\" *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\">\r\n <!-- Completed Step -->\r\n <div class=\"stepper-bullets-completed-step\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"stepper-bullets-active-step\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"stepper-bullets-active-step-level1\" aria-hidden=\"true\">\r\n <span class=\"stepper-bullets-active-step-level1\"></span>\r\n </span>\r\n <span class=\"stepper-bullets-active-step-bullet\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div href=\"#\" class=\"stepper-bullets-upcoming-step\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"sr-only\">Step {{ step.index }}</span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Bullets & Text -->\r\n <div class=\"stepper-bullets-and-text-container\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.BulletsAndText\">\r\n <nav aria-label=\"Progress\">\r\n <ol role=\"list\" class=\"stepper-bullets-and-text-ol\">\r\n <li class=\"cursor-pointer\" *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\">\r\n <!-- Complete Step -->\r\n <div class=\"group\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"stepper-bullets-and-text-completed-step\">\r\n <span class=\"stepper-bullets-and-text-completed-step-level1\">\r\n <svg class=\"h-full w-full text-blue-600 group-hover:text-blue-800\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"stepper-bullets-and-text-completed-step-container\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"stepper-bullets-and-text-active-step\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"stepper-bullets-and-text-active-step-level1\" aria-hidden=\"true\">\r\n <span class=\"stepper-bullets-and-text-active-step-level11\"></span>\r\n <span class=\"stepper-bullets-and-text-active-step-level12\"></span>\r\n </span>\r\n <span class=\"stepper-bullets-and-text-active-step-container\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step-level1\" aria-hidden=\"true\">\r\n <div class=\"stepper-bullets-and-text-upcoming-step-level2\"></div>\r\n </div>\r\n <p class=\"stepper-bullets-and-text-upcoming-step-container\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </p>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Circles -->\r\n <nav class=\"flex justify-center\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Circles\">\r\n <ol class=\"flex items-center\" role=\"list\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative pr-8 sm:pr-20 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-blue-600\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full hover:bg-blue-900\">\r\n <svg class=\"w-5 h-5 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"relative w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\" aria-current=\"step\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\r\n <div class=\"h-0.5 w-full bg-gray-200\"></div>\r\n </div>\r\n <div class=\"group relative w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\" aria-hidden=\"true\"></span>\r\n <span class=\"sr-only\">Step {{ step.index + 1 }}</span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Circles With Text -->\r\n <nav class=\"flex items-center justify-center\" aria-label=\"Progress\" *ngSwitchCase=\"StepperType.CirclesWithText\">\r\n <ol role=\"list\" class=\"overflow-hidden\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative pb-10 cursor-pointer\">\r\n <!-- Complete Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-blue-600\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-5 h-5 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Active Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Active\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div class=\"relative flex items-start group\" aria-current=\"step\">\r\n <span class=\"h-9 flex items-center\" aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-blue-600 rounded-full\">\r\n <span class=\"h-2.5 w-2.5 bg-blue-600 rounded-full\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-blue-600\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n <!-- Upcoming Step -->\r\n <ng-container *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"-ml-px absolute mt-0.5 top-4 left-4 w-0.5 h-full bg-gray-300\" aria-hidden=\"true\" *ngIf=\"!step.isLast\"></div>\r\n <div href=\"#\" class=\"relative flex items-start group\">\r\n <span class=\"h-9 flex items-center\" aria-hidden=\"true\">\r\n <span class=\"relative z-10 w-8 h-8 flex items-center justify-center bg-white border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"h-2.5 w-2.5 bg-transparent rounded-full group-hover:bg-gray-300\"></span>\r\n </span>\r\n </span>\r\n <span class=\"ml-4 min-w-0 flex flex-col\">\r\n <span class=\"text-xs font-semibold tracking-wide uppercase text-gray-500\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n </ng-container>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels -->\r\n <nav aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Panels\">\r\n <ol role=\"list\" class=\"border border-gray-300 rounded-md divide-y divide-gray-300 md:flex md:divide-y-0\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"relative md:flex-1 md:flex cursor-pointer\">\r\n <!-- Completed step -->\r\n <div class=\"group flex items-center w-full\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center bg-blue-600 rounded-full group-hover:bg-blue-800\">\r\n <svg class=\"w-6 h-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-900\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Active step -->\r\n <div class=\"px-6 py-4 flex items-center text-sm font-medium\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-blue-600 rounded-full\">\r\n <span class=\"text-blue-600\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-blue-600\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming step -->\r\n <div class=\"group flex items-center\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"px-6 py-4 flex items-center text-sm font-medium\">\r\n <span class=\"flex-shrink-0 w-10 h-10 flex items-center justify-center border-2 border-gray-300 rounded-full group-hover:border-gray-400\">\r\n <span class=\"text-gray-500 group-hover:text-gray-900\">{{ (step.index + 1) }}</span>\r\n </span>\r\n <span class=\"ml-4 text-sm font-medium text-gray-500 group-hover:text-gray-900\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Arrow separator for lg screens and up -->\r\n <div *ngIf=\"!step.isLast\" class=\"hidden md:block absolute top-0 right-0 h-full w-5\" aria-hidden=\"true\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 22 80\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0 -2L20 40L0 82\" vector-effect=\"non-scaling-stroke\" stroke=\"currentcolor\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n <!-- Panels With Border -->\r\n <div class=\"panels-with-border-container\" *ngSwitchCase=\"StepperType.PanelsWithBorder\">\r\n <nav class=\"panels-with-border-nav\" aria-label=\"Progress\">\r\n <ol role=\"list\" class=\"panels-with-border-ol\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"panels-with-border-li\">\r\n <!-- Completed Step -->\r\n <div class=\"panels-with-border-completed-step\" *ngIf=\"step.state === StepState.Completed\">\r\n <div class=\"group\">\r\n <span class=\"panels-with-border-completed-step-level1\" aria-hidden=\"true\"></span>\r\n <span class=\"panels-with-border-completed-step-level2\">\r\n <span class=\"panels-with-border-completed-step-level21\">\r\n <span class=\"panels-with-border-completed-step-level211\">\r\n <svg class=\"w-6 h-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\r\n <path fill-rule=\"evenodd\" d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level22\">\r\n <span class=\"panels-with-border-completed-step-level221\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"panels-with-border-completed-step-level222\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"panels-with-border-active-step\" *ngIf=\"step.state === StepState.Active\">\r\n <div aria-current=\"step\">\r\n <span class=\"panels-with-border-active-step-level1\" aria-hidden=\"true\"></span>\r\n <span class=\"panels-with-border-active-step-level2\">\r\n <span class=\"panels-with-border-active-step-level21\">\r\n <span class=\"panels-with-border-active-step-level211\">\r\n <span class=\"panels-with-border-active-step-level211-text\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-active-step-level22\">\r\n <span class=\"panels-with-border-active-step-level221\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"panels-with-border-active-step-level222\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"panels-with-border-step-separator\" aria-hidden=\"true\" *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 12 82\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\" stroke=\"currentcolor\" vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"panels-with-border-upcoming-step\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <div class=\"group\">\r\n <span class=\"panels-with-border-upcoming-step-level1\" aria-hidden=\"true\"></span>\r\n <span class=\"panels-with-border-upcoming-step-level2\">\r\n <span class=\"panels-with-border-upcoming-step-level21\">\r\n <span class=\"panels-with-border-upcoming-step-level211\">\r\n <span class=\"panels-with-border-upcoming-step-level211-text\">{{ step.index + 1 }}</span>\r\n </span>\r\n </span>\r\n <span class=\"panels-with-border-upcoming-step-level22\">\r\n <span class=\"panels-with-border-upcoming-step-level221\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n <span class=\"text-sm font-medium text-gray-500\" *ngIf=\"step.stepInfo\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepInfo.template\"></ng-container>\r\n </span>\r\n </span>\r\n </span>\r\n </div>\r\n <!-- Separator -->\r\n <div class=\"panels-with-border-step-separator\" aria-hidden=\"true\" *ngIf=\"step.index !== 0\">\r\n <svg class=\"h-full w-full text-gray-300\" viewBox=\"0 0 12 82\" fill=\"none\" preserveAspectRatio=\"none\">\r\n <path d=\"M0.5 0V31L10.5 41L0.5 51V82\" stroke=\"currentcolor\" vector-effect=\"non-scaling-stroke\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n </div>\r\n <!-- Progress -->\r\n <div *ngSwitchCase=\"StepperType.Progress\">\r\n <div class=\"mt-6\" aria-hidden=\"true\">\r\n <div class=\"bg-gray-200 rounded-full overflow-hidden\">\r\n <div class=\"h-2 bg-blue-600 rounded-full\" [style.width]=\"(((currentStepIndex + 1) / steps.length) * 100) + '%'\"></div>\r\n </div>\r\n <div class=\"hidden sm:grid grid-cols-4 text-sm font-medium text-gray-600 mt-6\">\r\n <div *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"text-blue-600 cursor-pointer\">\r\n <ng-container *ngIf=\"step.stepLabel\" [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Simple -->\r\n <nav aria-label=\"Progress\" *ngSwitchCase=\"StepperType.Simple\">\r\n <ol role=\"list\" class=\"space-y-4 md:flex md:space-y-0 md:space-x-8\">\r\n <li *ngFor=\"let step of steps\" (click)=\"onSelectStep(step)\" class=\"md:flex-1 cursor-pointer\">\r\n <!-- Completed Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-blue-600 hover:border-blue-800 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" *ngIf=\"step.state === StepState.Completed\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase group-hover:text-blue-800\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Active Step -->\r\n <div class=\"pl-4 py-2 flex flex-col border-l-4 border-blue-600 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" aria-current=\"step\" *ngIf=\"step.state === StepState.Active\">\r\n <span class=\"text-xs text-blue-600 font-semibold tracking-wide uppercase\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n <!-- Upcoming Step -->\r\n <div class=\"group pl-4 py-2 flex flex-col border-l-4 border-gray-200 hover:border-gray-300 md:pl-0 md:pt-4 md:pb-0 md:border-l-0 md:border-t-4\" *ngIf=\"step.state === StepState.Upcoming\">\r\n <span class=\"text-xs text-gray-500 font-semibold tracking-wide uppercase group-hover:text-gray-700\">Step {{ step.index + 1 }}</span>\r\n <span class=\"text-sm font-medium\" *ngIf=\"step.stepLabel\">\r\n <ng-container [ngTemplateOutlet]=\"step.stepLabel.template\"></ng-container>\r\n </span>\r\n </div>\r\n </li>\r\n </ol>\r\n </nav>\r\n</ng-container>\r\n<ng-container *ngFor=\"let step of steps\">\r\n <ng-container *ngIf=\"step.state === StepState.Active\" [ngTemplateOutlet]=\"step.content\"></ng-container>\r\n</ng-container>", directives: [{ type: i1__namespace.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1__namespace.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1__namespace.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }] });
|
|
2374
2632
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: LibStepperComponent, decorators: [{
|
|
2375
2633
|
type: i0.Component,
|
|
2376
2634
|
args: [{
|
|
@@ -2380,11 +2638,13 @@
|
|
|
2380
2638
|
{ provide: LIBSTEPPER_ACCESSOR, useExisting: i0.forwardRef(function () { return LibStepperComponent; }) }
|
|
2381
2639
|
]
|
|
2382
2640
|
}]
|
|
2383
|
-
}], ctorParameters: function () { return []; }, propDecorators: { steps: [{
|
|
2641
|
+
}], ctorParameters: function () { return [{ type: i0__namespace.ChangeDetectorRef }]; }, propDecorators: { steps: [{
|
|
2384
2642
|
type: i0.ContentChildren,
|
|
2385
2643
|
args: [LibStepComponent, { descendants: true }]
|
|
2386
2644
|
}], stepChanged: [{
|
|
2387
2645
|
type: i0.Output
|
|
2646
|
+
}], completed: [{
|
|
2647
|
+
type: i0.Output
|
|
2388
2648
|
}], linear: [{
|
|
2389
2649
|
type: i0.Input
|
|
2390
2650
|
}], type: [{
|
|
@@ -2688,7 +2948,7 @@
|
|
|
2688
2948
|
return UserProfileMenuComponent;
|
|
2689
2949
|
}());
|
|
2690
2950
|
UserProfileMenuComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: UserProfileMenuComponent, deps: [{ token: i2.AuthService }, { token: i1$1.Router }, { token: APP_LINKS }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
2691
|
-
UserProfileMenuComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: UserProfileMenuComponent, selector: "lib-user-profile-menu", inputs: { showUserName: ["show-user-name", "showUserName"] }, ngImport: i0__namespace, template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\"
|
|
2951
|
+
UserProfileMenuComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: UserProfileMenuComponent, selector: "lib-user-profile-menu", inputs: { showUserName: ["show-user-name", "showUserName"] }, ngImport: i0__namespace, template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <div class=\"inline-flex\">\r\n <!-- Username -->\r\n <div [ngClass]=\"{'shell-header-profile': showUserName}\">\r\n <div *ngIf=\"user && showUserName\" class=\"shell-header-profile-userName\">\r\n {{ user.profile.name }}\r\n </div>\r\n </div>\r\n\r\n <div [class.ml-2]=\"showUserName\">\r\n <button type=\"button\" \r\n *ngIf=\"user\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\"\r\n (click)=\"userMenuExpanded = !userMenuExpanded\">\r\n <span class=\"sr-only\">Open user menu</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\">{{this.avatarName}}</span>\r\n </span>\r\n </button>\r\n\r\n <button type=\"button\"\r\n *ngIf=\"!user\"\r\n (click)=\"signin($event)\"\r\n class=\"shell-header-profile-dropdown-button\"\r\n id=\"user-menu\"\r\n aria-expanded=\"false\"\r\n aria-haspopup=\"true\">\r\n <span class=\"sr-only\">sign in</span>\r\n <span class=\"avatar-container\">\r\n <span class=\"avatar-text\"><i class=\"ms-Icon ms-Icon--Signin\"></i></span>\r\n </span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <div [class]=\"userMenuExpanded ?\r\n 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\r\n :\r\n 'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\"\r\n role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [link-class]=\"'nav-link-profile'\"\r\n [link-active-class]=\"'nav-link-profile-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n\r\n</div>\r\n\r\n", components: [{ type: NavLinksListComponent, selector: "lib-nav-links-list", inputs: ["links", "active-fragment", "link-class", "link-active-class", "container-class", "show-icons"] }], directives: [{ type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i1__namespace.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
2692
2952
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: UserProfileMenuComponent, decorators: [{
|
|
2693
2953
|
type: i0.Component,
|
|
2694
2954
|
args: [{
|
|
@@ -2728,20 +2988,26 @@
|
|
|
2728
2988
|
};
|
|
2729
2989
|
NotificationsIndicatorComponent.prototype.ngOnInit = function () {
|
|
2730
2990
|
var _this = this;
|
|
2731
|
-
|
|
2732
|
-
|
|
2733
|
-
|
|
2734
|
-
|
|
2735
|
-
|
|
2736
|
-
|
|
2737
|
-
|
|
2738
|
-
|
|
2739
|
-
|
|
2740
|
-
|
|
2741
|
-
|
|
2991
|
+
var _a;
|
|
2992
|
+
if (this.links && this.links['notifications']) {
|
|
2993
|
+
this.links['notifications'].subscribe(function (notificationsLink) {
|
|
2994
|
+
_this.allNotificationsLink = notificationsLink;
|
|
2995
|
+
});
|
|
2996
|
+
}
|
|
2997
|
+
if (this.notifications) {
|
|
2998
|
+
this.notificationsSub$ = (_a = this.notifications) === null || _a === void 0 ? void 0 : _a.messages.subscribe(function (result) {
|
|
2999
|
+
if (result.items) {
|
|
3000
|
+
_this.newArrival = true;
|
|
3001
|
+
_this.unreadCount = result.count;
|
|
3002
|
+
_this.items = result.items;
|
|
3003
|
+
setTimeout(function () { _this.newArrival = false; }, 1000);
|
|
3004
|
+
}
|
|
3005
|
+
});
|
|
3006
|
+
}
|
|
2742
3007
|
};
|
|
2743
3008
|
NotificationsIndicatorComponent.prototype.doInboxAction = function () {
|
|
2744
|
-
|
|
3009
|
+
var _a;
|
|
3010
|
+
if ((_a = this.notifications) === null || _a === void 0 ? void 0 : _a.inboxAction) {
|
|
2745
3011
|
this.notifications.inboxAction();
|
|
2746
3012
|
}
|
|
2747
3013
|
else {
|
|
@@ -2834,7 +3100,7 @@
|
|
|
2834
3100
|
// tslint:disable-next-line:no-input-rename
|
|
2835
3101
|
this.showAlerts = false;
|
|
2836
3102
|
// tslint:disable-next-line:no-input-rename
|
|
2837
|
-
this.
|
|
3103
|
+
this.showLangs = false;
|
|
2838
3104
|
this.border = true;
|
|
2839
3105
|
this.sectionLinks = rxjs.of([]);
|
|
2840
3106
|
this.mobileMenuExpanded = false;
|
|
@@ -2898,7 +3164,7 @@
|
|
|
2898
3164
|
return ShellHeaderComponent;
|
|
2899
3165
|
}());
|
|
2900
3166
|
ShellHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellHeaderComponent, deps: [{ token: i2.AuthService }, { token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: SHELL_CONFIG }, { token: APP_LINKS }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
2901
|
-
ShellHeaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ShellHeaderComponent, selector: "lib-shell-header", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], profileMenuVisible: ["profile-menu", "profileMenuVisible"], showUserNameOnHeader: ["show-userName", "showUserNameOnHeader"], showAlerts: ["show-alerts", "showAlerts"],
|
|
3167
|
+
ShellHeaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ShellHeaderComponent, selector: "lib-shell-header", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], profileMenuVisible: ["profile-menu", "profileMenuVisible"], showUserNameOnHeader: ["show-userName", "showUserNameOnHeader"], showAlerts: ["show-alerts", "showAlerts"], showLangs: ["show-langs", "showLangs"], border: "border" }, ngImport: i0__namespace, template: "<nav>\r\n <div class=\"shell-header-paddings\">\r\n <div class=\"shell-header-border\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-logo-container\">\r\n <div>\r\n <a href=\"#\" [routerLink]=\"['/']\"><img class=\"app-logo\" [src]=\"config.appLogo\" [alt]=\"config.appLogoAlt\" /></a>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-link-container\">\r\n <div class=\"shell-header-link-container-inner\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link'\"\r\n [link-active-class]=\"'nav-link-active'\">\r\n </lib-nav-links-list>\r\n </div>\r\n </div>\r\n\r\n <div class=\"shell-header-md-visible\">\r\n\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profileActions\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'shell-header-menu-rounded-button'\"\r\n [link-active-class]=\"'shell-header-menu-rounded-button-active'\">\r\n </lib-nav-links-list>\r\n\r\n\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\r\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\r\n </div>\r\n\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\r\n\r\n <!-- languages dropdown -->\r\n <div *ngIf=\"showLangs\" class=\"ml-4\">\r\n <lib-language-selection></lib-language-selection>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mobile-menu-button-container\">\r\n <!-- Mobile menu button -->\r\n <button type=\"button\"\r\n (click)=\"mobileMenuExpanded = !mobileMenuExpanded\"\r\n class=\"mobile-menu-button\"\r\n aria-controls=\"mobile-menu\"\r\n [attr.aria-expanded]=\"mobileMenuExpanded\">\r\n <span class=\"sr-only\">Open main menu</span>\r\n <!--Heroicon name: outline/menu Menu open: \"hidden\", Menu closed: \"block\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'hidden':'block h-6 w-6'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M4 6h16M4 12h16M4 18h16\" />\r\n </svg>\r\n <!--Heroicon name: outline/x Menu open: \"block\", Menu closed: \"hidden\"-->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\"\r\n [class]=\"mobileMenuExpanded ? 'block h-6 w-6':'hidden'\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Mobile menu, show/hide based on menu state. -->\r\n <div class=\"mobile-menu-container\" *ngIf=\"mobileMenuExpanded\" id=\"mobile-menu\">\r\n <lib-nav-links-list\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n\r\n <div *ngIf=\"!user\">\r\n <a href=\"#\" (click)=\"signin($event)\" class=\"nav-link-mobile\">\r\n <i class=\"ms-Icon ms-Icon--Signin mr-2\"></i>\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7\r\n </a>\r\n </div>\r\n\r\n <div class=\"mobile-menu-user-info-container\" *ngIf=\"user\">\r\n <div class=\"mobile-menu-user-info-container-inner\">\r\n <div class=\"flex-shrink-0\">\r\n <span class=\"mobile-menu-avatar-container\">\r\n <span class=\"mobile-menu-avatar-name\">{{ this.avatarName }}</span>\r\n </span>\r\n </div>\r\n <div class=\"ml-3\">\r\n <div class=\"mobile-menu-user-name\">{{ user.profile.name }}</div>\r\n <div class=\"mobile-menu-user-email\">{{ user.profile.email }}</div>\r\n </div>\r\n <!--\r\n <button class=\"mobile-menu-rounded-button\">\r\n <span class=\"sr-only\">View notifications</span>\r\n <svg class=\"mobile-menu-rounded-button-icon-style\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n fill=\"none\"\r\n viewBox=\"0 0 24 24\"\r\n stroke=\"currentColor\"\r\n aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n stroke-width=\"2\"\r\n d=\"M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9\" />\r\n </svg>\r\n </button>\r\n -->\r\n </div>\r\n </div>\r\n\r\n <lib-nav-links-list\r\n [links]=\"links.profile\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'nav-link-mobile'\"\r\n [link-active-class]=\"'nav-link-mobile-active'\"\r\n [container-class]=\"'mobile-menu-link-container'\">\r\n </lib-nav-links-list>\r\n </div>\r\n</nav>\r\n", components: [{ type: NavLinksListComponent, selector: "lib-nav-links-list", inputs: ["links", "active-fragment", "link-class", "link-active-class", "container-class", "show-icons"] }, { type: UserProfileMenuComponent, selector: "lib-user-profile-menu", inputs: ["show-user-name"] }, { type: NotificationsIndicatorComponent, selector: "lib-notifications-indicator" }, { type: LanguageSelectionComponent, selector: "lib-language-selection" }], directives: [{ type: i1__namespace$1.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["routerLink", "target", "queryParams", "fragment", "queryParamsHandling", "preserveFragment", "skipLocationChange", "replaceUrl", "state", "relativeTo"] }, { type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
2902
3168
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellHeaderComponent, decorators: [{
|
|
2903
3169
|
type: i0.Component,
|
|
2904
3170
|
args: [{
|
|
@@ -2935,9 +3201,9 @@
|
|
|
2935
3201
|
}], showAlerts: [{
|
|
2936
3202
|
type: i0.Input,
|
|
2937
3203
|
args: ['show-alerts']
|
|
2938
|
-
}],
|
|
3204
|
+
}], showLangs: [{
|
|
2939
3205
|
type: i0.Input,
|
|
2940
|
-
args: ['
|
|
3206
|
+
args: ['show-langs']
|
|
2941
3207
|
}], border: [{
|
|
2942
3208
|
type: i0.Input
|
|
2943
3209
|
}] } });
|
|
@@ -2963,6 +3229,25 @@
|
|
|
2963
3229
|
}] }];
|
|
2964
3230
|
} });
|
|
2965
3231
|
|
|
3232
|
+
var ShellStackedLayoutComponent = /** @class */ (function () {
|
|
3233
|
+
function ShellStackedLayoutComponent() {
|
|
3234
|
+
}
|
|
3235
|
+
ShellStackedLayoutComponent.prototype.ngOnInit = function () {
|
|
3236
|
+
};
|
|
3237
|
+
return ShellStackedLayoutComponent;
|
|
3238
|
+
}());
|
|
3239
|
+
ShellStackedLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellStackedLayoutComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
3240
|
+
ShellStackedLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ShellStackedLayoutComponent, selector: "lib-shell-stacked-layout", inputs: { config: "config" }, ngImport: i0__namespace, template: "<div class=\"shell-header-container\" *ngIf=\"config?.showHeader\">\r\n <div [class]=\"config?.fluid ? 'shell-header-container-inner-fluid' : 'shell-header-container-inner'\">\r\n <ng-container *ngIf=\"config?.customHeaderComponent\">\r\n <div appDynamicComponentHost =\"Header\"></div>\r\n </ng-container>\r\n <lib-shell-header *ngIf=\"!config?.customHeaderComponent\" [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\" [show-langs]=\"config?.showLangsOnHeader\">\r\n </lib-shell-header>\r\n </div>\r\n</div>\r\n\r\n<main [class]=\"config?.showHeader ? 'shell-content-container' : 'shell-content-container-no-header'\">\r\n <div [class]=\"config?.fluid ? 'shell-content-container-inner-fluid' : 'shell-content-container-inner'\">\r\n <router-outlet *ngIf=\"(!config || config.layout === 'Stacked' || !config.layout)\"></router-outlet>\r\n </div>\r\n</main>\r\n\r\n<div class=\"shell-footer-container\" *ngIf=\"config?.showFooter\">\r\n <div [class]=\"config?.fluid ? 'shell-footer-container-inner-fluid' : 'shell-footer-container-inner'\">\r\n <ng-container *ngIf=\"config?.customFooterComponent\">\r\n <div appDynamicComponentHost hostName=\"Footer\"></div>\r\n </ng-container>\r\n <lib-shell-footer *ngIf=\"!config?.customFooterComponent\"></lib-shell-footer>\r\n </div>\r\n</div>", components: [{ type: ShellHeaderComponent, selector: "lib-shell-header", inputs: ["section-links", "profile-menu", "show-userName", "show-alerts", "show-langs", "border"] }, { type: ShellFooterComponent, selector: "lib-shell-footer" }], directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: DynamicComponentHostDirective, selector: "[appDynamicComponentHost]", inputs: ["hostName"] }, { type: i1__namespace$1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
|
|
3241
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellStackedLayoutComponent, decorators: [{
|
|
3242
|
+
type: i0.Component,
|
|
3243
|
+
args: [{
|
|
3244
|
+
selector: 'lib-shell-stacked-layout',
|
|
3245
|
+
templateUrl: './shell-stacked-layout.component.html'
|
|
3246
|
+
}]
|
|
3247
|
+
}], ctorParameters: function () { return []; }, propDecorators: { config: [{
|
|
3248
|
+
type: i0.Input
|
|
3249
|
+
}] } });
|
|
3250
|
+
|
|
2966
3251
|
var ShellSidebarComponent = /** @class */ (function () {
|
|
2967
3252
|
function ShellSidebarComponent(router, route, links) {
|
|
2968
3253
|
this.router = router;
|
|
@@ -2982,7 +3267,7 @@
|
|
|
2982
3267
|
return ShellSidebarComponent;
|
|
2983
3268
|
}());
|
|
2984
3269
|
ShellSidebarComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellSidebarComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: APP_LINKS }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
2985
|
-
ShellSidebarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ShellSidebarComponent, selector: "lib-shell-sidebar", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], shellConfig: ["config", "shellConfig"] }, ngImport: i0__namespace, template: "<!-- Sidebar component, swap this element with another sidebar if you like -->\r\n<div class=\"
|
|
3270
|
+
ShellSidebarComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ShellSidebarComponent, selector: "lib-shell-sidebar", inputs: { sectionLinksPath: ["section-links", "sectionLinksPath"], shellConfig: ["config", "shellConfig"] }, ngImport: i0__namespace, template: "<!-- Sidebar component, swap this element with another sidebar if you like -->\r\n<div class=\"shell-sidebar-component-container\">\r\n <div class=\"shell-sidebar-component-links-container sidebar\">\r\n <lib-nav-links-list\r\n [show-icons]=\"true\"\r\n [links]=\"sectionLinks\"\r\n [active-fragment]=\"activeFragment\"\r\n [link-class]=\"'sidebar nav-link group'\"\r\n [link-active-class]=\"'sidebar nav-link-active group'\">\r\n </lib-nav-links-list>\r\n </div>\r\n</div>\r\n", components: [{ type: NavLinksListComponent, selector: "lib-nav-links-list", inputs: ["links", "active-fragment", "link-class", "link-active-class", "container-class", "show-icons"] }] });
|
|
2986
3271
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellSidebarComponent, decorators: [{
|
|
2987
3272
|
type: i0.Component,
|
|
2988
3273
|
args: [{
|
|
@@ -3008,6 +3293,69 @@
|
|
|
3008
3293
|
args: ['config']
|
|
3009
3294
|
}] } });
|
|
3010
3295
|
|
|
3296
|
+
var ShellSidebarHeaderComponent = /** @class */ (function (_super) {
|
|
3297
|
+
__extends(ShellSidebarHeaderComponent, _super);
|
|
3298
|
+
function ShellSidebarHeaderComponent(authService, router, route, config, links) {
|
|
3299
|
+
var _this = _super.call(this, authService, router, route, config, links) || this;
|
|
3300
|
+
_this.authService = authService;
|
|
3301
|
+
_this.router = router;
|
|
3302
|
+
_this.route = route;
|
|
3303
|
+
_this.config = config;
|
|
3304
|
+
_this.links = links;
|
|
3305
|
+
return _this;
|
|
3306
|
+
}
|
|
3307
|
+
return ShellSidebarHeaderComponent;
|
|
3308
|
+
}(ShellHeaderComponent));
|
|
3309
|
+
ShellSidebarHeaderComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellSidebarHeaderComponent, deps: [{ token: i2.AuthService }, { token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: SHELL_CONFIG }, { token: APP_LINKS }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
3310
|
+
ShellSidebarHeaderComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ShellSidebarHeaderComponent, selector: "lib-shell-sidebar-header", usesInheritance: true, ngImport: i0__namespace, template: "<div class=\"shell-header-paddings\">\r\n <div class=\"shell-header-border\">\r\n <div class=\"shell-header-menu-container\">\r\n <div class=\"shell-header-md-visible\">\r\n <div class=\"shell-header-links-far-container\" (clickOutside)=\"onClickOutside($event)\">\r\n <!-- Profile dropdown -->\r\n <div *ngIf=\"profileMenuVisible\" class=\"ml-4\">\r\n <lib-user-profile-menu [show-user-name]=\"showUserNameOnHeader\"></lib-user-profile-menu>\r\n </div>\r\n <!-- Notifications dropdown -->\r\n <div *ngIf=\"showAlerts && user\" class=\"ml-4\">\r\n <lib-notifications-indicator></lib-notifications-indicator>\r\n </div>\r\n <!-- languages dropdown -->\r\n <div *ngIf=\"showLangs\" class=\"ml-4\">\r\n <lib-language-selection></lib-language-selection>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n \r\n", components: [{ type: UserProfileMenuComponent, selector: "lib-user-profile-menu", inputs: ["show-user-name"] }, { type: NotificationsIndicatorComponent, selector: "lib-notifications-indicator" }, { type: LanguageSelectionComponent, selector: "lib-language-selection" }], directives: [{ type: ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
3311
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellSidebarHeaderComponent, decorators: [{
|
|
3312
|
+
type: i0.Component,
|
|
3313
|
+
args: [{
|
|
3314
|
+
selector: 'lib-shell-sidebar-header',
|
|
3315
|
+
templateUrl: './shell-sidebar-header.component.html'
|
|
3316
|
+
}]
|
|
3317
|
+
}], ctorParameters: function () {
|
|
3318
|
+
return [{ type: i2__namespace.AuthService, decorators: [{
|
|
3319
|
+
type: i0.Inject,
|
|
3320
|
+
args: [i2.AuthService]
|
|
3321
|
+
}] }, { type: i1__namespace$1.Router, decorators: [{
|
|
3322
|
+
type: i0.Inject,
|
|
3323
|
+
args: [i1$1.Router]
|
|
3324
|
+
}] }, { type: i1__namespace$1.ActivatedRoute, decorators: [{
|
|
3325
|
+
type: i0.Inject,
|
|
3326
|
+
args: [i1$1.ActivatedRoute]
|
|
3327
|
+
}] }, { type: undefined, decorators: [{
|
|
3328
|
+
type: i0.Inject,
|
|
3329
|
+
args: [SHELL_CONFIG]
|
|
3330
|
+
}] }, { type: undefined, decorators: [{
|
|
3331
|
+
type: i0.Inject,
|
|
3332
|
+
args: [APP_LINKS]
|
|
3333
|
+
}] }];
|
|
3334
|
+
} });
|
|
3335
|
+
|
|
3336
|
+
var ShellSidebarLayoutComponent = /** @class */ (function () {
|
|
3337
|
+
function ShellSidebarLayoutComponent() {
|
|
3338
|
+
this.showMobileSidebar = true;
|
|
3339
|
+
}
|
|
3340
|
+
ShellSidebarLayoutComponent.prototype.ngOnInit = function () {
|
|
3341
|
+
};
|
|
3342
|
+
ShellSidebarLayoutComponent.prototype.toggleMobileSidebar = function () {
|
|
3343
|
+
this.showMobileSidebar = !this.showMobileSidebar;
|
|
3344
|
+
};
|
|
3345
|
+
return ShellSidebarLayoutComponent;
|
|
3346
|
+
}());
|
|
3347
|
+
ShellSidebarLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellSidebarLayoutComponent, deps: [], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
3348
|
+
ShellSidebarLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ShellSidebarLayoutComponent, selector: "lib-shell-sidebar-layout", inputs: { config: "config" }, ngImport: i0__namespace, template: "<div>\r\n <!-- Off-canvas menu for mobile, show/hide based on off-canvas menu state. -->\r\n <div class=\"sidebar-off-canvas-menu-container\" role=\"dialog\" aria-modal=\"true\">\r\n <!-- Off-canvas menu backdrop, show/hide based on off-canvas menu state.-->\r\n <div class=\"sidebar-off-canvas-menu-backdrop\" \r\n [class.sidebar-off-canvas-menu-backdrop-opacity-100]=\"showMobileSidebar\">\r\n </div>\r\n \r\n <div class=\"sidebar-off-canvas-menu-container-inner\" \r\n [class.sidebar-off-canvas-menu-container-inner-active]=\"showMobileSidebar\" \r\n [class.sidebar-off-canvas-menu-container-inner-not-active]=\"!showMobileSidebar\">\r\n <!-- Off-canvas menu, show/hide based on off-canvas menu state.-->\r\n <div class=\"sidebar-off-canvas-layout-container\">\r\n <!--Close button, show/hide based on off-canvas menu state.-->\r\n <div class=\"sidebar-off-canvas-toggle-button-container\">\r\n <button type=\"button\" class=\"sidebar-off-canvas-toggle-button\" (click)=\"showMobileSidebar = !showMobileSidebar\">\r\n <span class=\"sr-only\">Close sidebar</span>\r\n <!-- Heroicon name: outline/x -->\r\n <svg class=\"h-6 w-6 text-white\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M6 18L18 6M6 6l12 12\" />\r\n </svg>\r\n </button>\r\n </div>\r\n \r\n <div class=\"sidebar-off-canvas-app-logo-container\">\r\n <img class=\"h-8 w-auto\" [src]=\"config?.appLogo\" [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n \r\n </div>\r\n \r\n <div class=\"sidebar-dummy-element\" aria-hidden=\"true\">\r\n <!-- Dummy element to force sidebar to shrink to fit close icon -->\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <!-- Static sidebar for desktop -->\r\n <div class=\"sidebar-static-menu-outer-container\">\r\n \r\n <div class=\"sidebar-static-menu-container\" \r\n [class.sidebar-static-menu-container-active]=\"showMobileSidebar\" \r\n [class.sidebar-static-menu-container-not-active]=\"!showMobileSidebar\">\r\n <!-- Sidebar component, swap this element with another sidebar if you like -->\r\n <div class=\"sidebar-static-menu-container-inner\">\r\n <div class=\"sidebar-static-menu-app-logo-container\">\r\n <img class=\"h-8 w-auto\" [src]=\"config?.appLogo\" [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n <lib-shell-sidebar></lib-shell-sidebar>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"sidebar-static-menu-wrapper\" [class.sidebar-static-menu-wrapper-active]=\"showMobileSidebar\">\r\n <div class=\"sidebar-static-menu-toggle-button-container\">\r\n <button type=\"button\" class=\"sidebar-static-menu-toggle-button\" (click)=\"showMobileSidebar = !showMobileSidebar\">\r\n <span class=\"sr-only\">Toggle sidebar</span>\r\n <!-- Heroicon name: outline/menu-alt-2 -->\r\n <svg class=\"h-6 w-6\" xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke-width=\"2\" stroke=\"currentColor\" aria-hidden=\"true\">\r\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M4 6h16M4 12h16M4 18h7\" />\r\n </svg>\r\n </button>\r\n \r\n <!-- sidebar-static-menu-header-container -->\r\n <div class=\"sidebar-static-menu-header-container\">\r\n <div class=\"sidebar-static-menu-header-near-container\">\r\n <div class=\"sidebar-static-menu-header-app-logo-container\" *ngIf=\"!showMobileSidebar\">\r\n <img class=\"h-8 w-auto\" [src]=\"config?.appLogo\" [alt]=\"config?.appLogoAlt\">\r\n </div>\r\n </div>\r\n <div class=\"sidebar-static-menu-header-far-container\">\r\n <lib-shell-sidebar-header \r\n [show-userName]=\"config?.showUserNameOnHeader\"\r\n [show-alerts]=\"config?.showAlertsOnHeader\" \r\n [show-langs]=\"config?.showLangsOnHeader\"></lib-shell-sidebar-header>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div flex-1>\r\n <main class=\"shell-content-container-fluid\">\r\n <div class=\"shell-content-container-inner\">\r\n <!-- YOU NEED TO ADD/REMOVE THIS FROM DOM DEPENDING ON THE SELECTED LAYOUT ESPECIALLY IN THE CASE OF LAYOUT SWITCHING!!! -->\r\n <router-outlet *ngIf=\"(config && config.layout === 'Sidebar')\"></router-outlet>\r\n </div>\r\n </main>\r\n </div>\r\n </div>\r\n </div>", components: [{ type: ShellSidebarComponent, selector: "lib-shell-sidebar", inputs: ["section-links", "config"] }, { type: ShellSidebarHeaderComponent, selector: "lib-shell-sidebar-header" }], directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
|
|
3349
|
+
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellSidebarLayoutComponent, decorators: [{
|
|
3350
|
+
type: i0.Component,
|
|
3351
|
+
args: [{
|
|
3352
|
+
selector: 'lib-shell-sidebar-layout',
|
|
3353
|
+
templateUrl: './shell-sidebar-layout.component.html'
|
|
3354
|
+
}]
|
|
3355
|
+
}], ctorParameters: function () { return []; }, propDecorators: { config: [{
|
|
3356
|
+
type: i0.Input
|
|
3357
|
+
}] } });
|
|
3358
|
+
|
|
3011
3359
|
var ShellLayoutComponent = /** @class */ (function () {
|
|
3012
3360
|
function ShellLayoutComponent(document, router, location, config, componentLoaderFactory) {
|
|
3013
3361
|
this.document = document;
|
|
@@ -3083,7 +3431,7 @@
|
|
|
3083
3431
|
return ShellLayoutComponent;
|
|
3084
3432
|
}());
|
|
3085
3433
|
ShellLayoutComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellLayoutComponent, deps: [{ token: i1.DOCUMENT }, { token: i1__namespace$1.Router }, { token: i1__namespace.Location }, { token: SHELL_CONFIG }, { token: ComponentLoaderFactory }], target: i0__namespace.ɵɵFactoryTarget.Component });
|
|
3086
|
-
ShellLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0__namespace, template: "<div
|
|
3434
|
+
ShellLayoutComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ShellLayoutComponent, selector: "lib-shell-layout", viewQueries: [{ propertyName: "dynamicComponentHosts", predicate: DynamicComponentHostDirective, descendants: true }], ngImport: i0__namespace, template: "<div [class.none]=\"!loaded\" [class.block]=\"loaded\">\r\n\r\n <!-- STACKED LAYOUT -->\r\n <div *ngIf=\"(activeConfig.layout === 'Stacked' || !activeConfig.layout)\" class=\"shell-container active-side-pane\">\r\n <lib-shell-stacked-layout [config]=\"activeConfig\"></lib-shell-stacked-layout>\r\n </div>\r\n\r\n <!-- SIDEBAR LAYOUT -->\r\n <div *ngIf=\"activeConfig.layout === 'Sidebar'\" class=\"sidebar shell-container active-side-pane\">\r\n <lib-shell-sidebar-layout [config]=\"activeConfig\"></lib-shell-sidebar-layout>\r\n </div>\r\n\r\n <lib-side-pane #rightPane>\r\n <router-outlet name=\"rightpane\" (activate)=\"rightPane.onSidePaneActivated($event)\" (deactivate)=\"rightPane.onSidePaneDeactivated($event)\"></router-outlet>\r\n </lib-side-pane>\r\n\r\n <lib-toaster-container></lib-toaster-container>\r\n\r\n</div>", components: [{ type: ShellStackedLayoutComponent, selector: "lib-shell-stacked-layout", inputs: ["config"] }, { type: ShellSidebarLayoutComponent, selector: "lib-shell-sidebar-layout", inputs: ["config"] }, { type: SidePaneComponent, selector: "lib-side-pane", inputs: ["visible"], outputs: ["onComplete"] }, { type: ToasterContainerComponent, selector: "lib-toaster-container" }], directives: [{ type: i1__namespace.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1__namespace$1.RouterOutlet, selector: "router-outlet", outputs: ["activate", "deactivate"], exportAs: ["outlet"] }] });
|
|
3087
3435
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: ShellLayoutComponent, decorators: [{
|
|
3088
3436
|
type: i0.Component,
|
|
3089
3437
|
args: [{
|
|
@@ -3448,7 +3796,6 @@
|
|
|
3448
3796
|
this.authService.signinRedirectCallback().subscribe(function (user) {
|
|
3449
3797
|
var _a;
|
|
3450
3798
|
if (user) {
|
|
3451
|
-
debugger;
|
|
3452
3799
|
_this.router.navigateByUrl(((_a = user.state) === null || _a === void 0 ? void 0 : _a.url) || '/');
|
|
3453
3800
|
}
|
|
3454
3801
|
});
|
|
@@ -3684,6 +4031,8 @@
|
|
|
3684
4031
|
this.sort = '';
|
|
3685
4032
|
this.sortdir = '';
|
|
3686
4033
|
this.search = '';
|
|
4034
|
+
this.filters = [];
|
|
4035
|
+
this.searchOptions = [];
|
|
3687
4036
|
this.sortOptions = [];
|
|
3688
4037
|
this.metaItems = [];
|
|
3689
4038
|
}
|
|
@@ -3739,14 +4088,38 @@
|
|
|
3739
4088
|
if (params.get('dir') !== _this.sortdir) {
|
|
3740
4089
|
_this.sortdir = params.get('dir');
|
|
3741
4090
|
}
|
|
4091
|
+
// initialize filters that may reside in the query string
|
|
4092
|
+
_this.filters = _this.getFiltersFrom(params);
|
|
3742
4093
|
});
|
|
3743
4094
|
// just to sync params in query
|
|
3744
4095
|
this.setRouteParams(true);
|
|
3745
4096
|
this.load();
|
|
3746
4097
|
};
|
|
4098
|
+
/**
|
|
4099
|
+
* Get filters from a querystring
|
|
4100
|
+
* @param queryParamMap
|
|
4101
|
+
* @returns filters found from a paramMap
|
|
4102
|
+
*/
|
|
4103
|
+
BaseListComponent.prototype.getFiltersFrom = function (queryParamMap) {
|
|
4104
|
+
var filterResult = [];
|
|
4105
|
+
if (queryParamMap.has(QueryParameters.FILTER) && queryParamMap.get(QueryParameters.FILTER).length > 0) {
|
|
4106
|
+
var filterValue = queryParamMap.get(QueryParameters.FILTER);
|
|
4107
|
+
var filterValues = filterValue === null || filterValue === void 0 ? void 0 : filterValue.split(","); // we may have multiple filters in filter query param
|
|
4108
|
+
if (filterValues && filterValues.length > 0) {
|
|
4109
|
+
// create the filterClauses derived from the query params
|
|
4110
|
+
for (var index in filterValues) {
|
|
4111
|
+
var filterClause = FilterClause.parse(filterValues[index]);
|
|
4112
|
+
var parsed = new FilterClause(filterClause.member, filterClause.value, filterClause.operator, filterClause.dataType, this.searchOptions);
|
|
4113
|
+
if (parsed !== undefined) {
|
|
4114
|
+
filterResult.push(parsed);
|
|
4115
|
+
}
|
|
4116
|
+
}
|
|
4117
|
+
}
|
|
4118
|
+
}
|
|
4119
|
+
return filterResult;
|
|
4120
|
+
};
|
|
3747
4121
|
BaseListComponent.prototype.setRouteParams = function (locationChange) {
|
|
3748
4122
|
if (locationChange === void 0) { locationChange = false; }
|
|
3749
|
-
console.log(this.sortdir);
|
|
3750
4123
|
this.router$.navigate([], {
|
|
3751
4124
|
relativeTo: this.route$, queryParams: {
|
|
3752
4125
|
view: this.view,
|
|
@@ -3754,10 +4127,19 @@
|
|
|
3754
4127
|
pagesize: this.pageSize,
|
|
3755
4128
|
search: this.search,
|
|
3756
4129
|
sort: this.sort,
|
|
3757
|
-
dir: this.sortdir
|
|
4130
|
+
dir: this.sortdir,
|
|
4131
|
+
filter: this.filterClausesToString(this.filters)
|
|
3758
4132
|
}, queryParamsHandling: 'merge', skipLocationChange: locationChange
|
|
3759
4133
|
});
|
|
3760
4134
|
};
|
|
4135
|
+
BaseListComponent.prototype.filterClausesToString = function (filters) {
|
|
4136
|
+
return filters === null || filters === void 0 ? void 0 : filters.map(function (f) {
|
|
4137
|
+
if (f.dataType === 'datetime') {
|
|
4138
|
+
f.value = (new Date(f.value)).toISOString();
|
|
4139
|
+
}
|
|
4140
|
+
return f.toString();
|
|
4141
|
+
}).join(',');
|
|
4142
|
+
};
|
|
3761
4143
|
BaseListComponent.prototype.actionHandler = function ($event) {
|
|
3762
4144
|
// console.log('BaseListComponent actionHandler', $event);
|
|
3763
4145
|
if ($event.key === 'refresh') {
|
|
@@ -3833,6 +4215,14 @@
|
|
|
3833
4215
|
this.refresh();
|
|
3834
4216
|
}
|
|
3835
4217
|
};
|
|
4218
|
+
BaseListComponent.prototype.advancedSearchChanged = function (filters) {
|
|
4219
|
+
this.count = 0;
|
|
4220
|
+
this.page = 1;
|
|
4221
|
+
this.items = null;
|
|
4222
|
+
this.filters = filters;
|
|
4223
|
+
this.setRouteParams();
|
|
4224
|
+
this.load();
|
|
4225
|
+
};
|
|
3836
4226
|
BaseListComponent.prototype.searchChanged = function (searchText) {
|
|
3837
4227
|
this.count = 0;
|
|
3838
4228
|
this.page = 1;
|
|
@@ -4362,10 +4752,15 @@
|
|
|
4362
4752
|
LibStepperComponent,
|
|
4363
4753
|
LibStepComponent,
|
|
4364
4754
|
LibStepLabelDirective,
|
|
4365
|
-
LibStepInfoDirective
|
|
4755
|
+
LibStepInfoDirective,
|
|
4756
|
+
ShellSidebarHeaderComponent,
|
|
4757
|
+
ShellSidebarLayoutComponent,
|
|
4758
|
+
ShellStackedLayoutComponent,
|
|
4759
|
+
AdvancedSearchComponent
|
|
4366
4760
|
], imports: [i1.CommonModule,
|
|
4367
4761
|
i1$1.RouterModule,
|
|
4368
|
-
i2.IndiceAuthModule
|
|
4762
|
+
i2.IndiceAuthModule,
|
|
4763
|
+
i4.FormsModule], exports: [AddressPipe,
|
|
4369
4764
|
AuthCallbackComponent,
|
|
4370
4765
|
AuthRenewComponent,
|
|
4371
4766
|
AvatarInitialsComponent,
|
|
@@ -4407,7 +4802,8 @@
|
|
|
4407
4802
|
IndiceComponentsModule.ɵinj = i0__namespace.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: IndiceComponentsModule, imports: [[
|
|
4408
4803
|
i1.CommonModule,
|
|
4409
4804
|
i1$1.RouterModule,
|
|
4410
|
-
i2.IndiceAuthModule
|
|
4805
|
+
i2.IndiceAuthModule,
|
|
4806
|
+
i4.FormsModule
|
|
4411
4807
|
]] });
|
|
4412
4808
|
i0__namespace.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: IndiceComponentsModule, decorators: [{
|
|
4413
4809
|
type: i0.NgModule,
|
|
@@ -4466,12 +4862,17 @@
|
|
|
4466
4862
|
LibStepperComponent,
|
|
4467
4863
|
LibStepComponent,
|
|
4468
4864
|
LibStepLabelDirective,
|
|
4469
|
-
LibStepInfoDirective
|
|
4865
|
+
LibStepInfoDirective,
|
|
4866
|
+
ShellSidebarHeaderComponent,
|
|
4867
|
+
ShellSidebarLayoutComponent,
|
|
4868
|
+
ShellStackedLayoutComponent,
|
|
4869
|
+
AdvancedSearchComponent
|
|
4470
4870
|
],
|
|
4471
4871
|
imports: [
|
|
4472
4872
|
i1.CommonModule,
|
|
4473
4873
|
i1$1.RouterModule,
|
|
4474
|
-
i2.IndiceAuthModule
|
|
4874
|
+
i2.IndiceAuthModule,
|
|
4875
|
+
i4.FormsModule
|
|
4475
4876
|
],
|
|
4476
4877
|
exports: [
|
|
4477
4878
|
AddressPipe,
|
|
@@ -4579,6 +4980,8 @@
|
|
|
4579
4980
|
exports.ShellFooterComponent = ShellFooterComponent;
|
|
4580
4981
|
exports.ShellHeaderComponent = ShellHeaderComponent;
|
|
4581
4982
|
exports.ShellLayoutComponent = ShellLayoutComponent;
|
|
4983
|
+
exports.ShellSidebarComponent = ShellSidebarComponent;
|
|
4984
|
+
exports.ShellSidebarHeaderComponent = ShellSidebarHeaderComponent;
|
|
4582
4985
|
exports.SidePaneComponent = SidePaneComponent;
|
|
4583
4986
|
exports.SideViewLayoutComponent = SideViewLayoutComponent;
|
|
4584
4987
|
exports.SkeletonLoaderComponent = SkeletonLoaderComponent;
|