@indice/ng-components 0.1.273 → 0.1.277
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 +28 -2
- package/bundles/indice-ng-components.umd.js +138 -17
- package/bundles/indice-ng-components.umd.js.map +1 -1
- package/esm2015/lib/controls/date-picker/date-picker.component.js +74 -13
- package/esm2015/lib/controls/pager/pager.component.js +2 -2
- package/esm2015/lib/controls/side-pane/side-pane.component.js +5 -4
- package/esm2015/lib/controls/toggle/toggle.component.js +57 -0
- package/esm2015/lib/ng-components.module.js +5 -2
- package/esm2015/public-api.js +2 -1
- package/fesm2015/indice-ng-components.js +137 -18
- package/fesm2015/indice-ng-components.js.map +1 -1
- package/indice-ng-components.metadata.json +1 -1
- package/lib/controls/date-picker/date-picker.component.d.ts +13 -2
- package/lib/controls/toggle/toggle.component.d.ts +16 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
package/_styles.css
CHANGED
|
@@ -812,7 +812,7 @@
|
|
|
812
812
|
}
|
|
813
813
|
|
|
814
814
|
.list-view-th-half {
|
|
815
|
-
@apply w-full sm:w-1/2 px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider;
|
|
815
|
+
@apply w-full sm:w-1/2 px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider whitespace-normal break-all;
|
|
816
816
|
}
|
|
817
817
|
|
|
818
818
|
.list-view-tbody {
|
|
@@ -836,7 +836,7 @@
|
|
|
836
836
|
}
|
|
837
837
|
|
|
838
838
|
.list-view-td-half {
|
|
839
|
-
@apply w-full sm:w-1/2 px-6 py-4 whitespace-
|
|
839
|
+
@apply w-full sm:w-1/2 px-6 py-4 whitespace-normal break-all;
|
|
840
840
|
}
|
|
841
841
|
|
|
842
842
|
.details-button {
|
|
@@ -959,6 +959,32 @@
|
|
|
959
959
|
letter-spacing: 0.2625px;
|
|
960
960
|
}
|
|
961
961
|
|
|
962
|
+
@layer components {
|
|
963
|
+
.toggle-button {
|
|
964
|
+
@apply mt-3 relative inline-flex flex-shrink-0 h-6 w-11 border-2 border-transparent rounded-full cursor-pointer transition-colors ease-in-out duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
.toggle-span {
|
|
968
|
+
@apply translate-x-0 pointer-events-none inline-block h-5 w-5 rounded-full bg-white shadow transform ring-0 transition ease-in-out duration-200
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
.enabled {
|
|
972
|
+
@apply bg-indigo-600
|
|
973
|
+
}
|
|
974
|
+
|
|
975
|
+
.enabled-anim {
|
|
976
|
+
@apply translate-x-5
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
.disabled {
|
|
980
|
+
@apply bg-gray-200
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
.disabled-anim {
|
|
984
|
+
@apply translate-x-0
|
|
985
|
+
}
|
|
986
|
+
}
|
|
987
|
+
|
|
962
988
|
|
|
963
989
|
|
|
964
990
|
.modal-active {
|
|
@@ -847,7 +847,7 @@
|
|
|
847
847
|
PagerComponent.decorators = [
|
|
848
848
|
{ type: i0.Component, args: [{
|
|
849
849
|
selector: 'lib-pager',
|
|
850
|
-
template: "<div class=\"pager-container\">\r\n <div class=\"pager-container-inner\">\r\n <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\r\n <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\r\n <button (click)=\"toggleSortdir()\" class=\"pager-icon-button\">\r\n <span class=\"sr-only\">sort direction</span>\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"sortdirIcon\"></i>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"pager-pages-container\">\r\n <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\r\n <div class=\"mx-2\">\r\n <button [disabled]=\"!canPreviousPage\" (click)=\"previousPage()\"\r\n class=\"pager-arrow-button-left\">\r\n <span class=\"sr-only\">Previous</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\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n <button [disabled]=\"!canNextPage\" (click)=\"nextPage()\"\r\n class=\"pager-arrow-button-right\">\r\n <span class=\"sr-only\">Next</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\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-drop-down-menu *ngIf=\"pages && pages.length > 0\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n</div>\r\n"
|
|
850
|
+
template: "<div class=\"pager-container\">\r\n <div class=\"pager-container-inner\">\r\n <div class=\"inline-flex\" *ngIf=\"sortOptions && sortOptions.length > 0\">\r\n <lib-drop-down-menu [options]=\"sortOptions\" [selected]=\"sort\" (selectedChanged)=\"sortOptionChanged($event)\"></lib-drop-down-menu>\r\n <button (click)=\"toggleSortdir()\" class=\"pager-icon-button\">\r\n <span class=\"sr-only\">sort direction</span>\r\n <span class=\"inline-block relative\">\r\n <i [class]=\"sortdirIcon\"></i>\r\n </span>\r\n </button>\r\n </div>\r\n <div class=\"pager-pages-container\">\r\n <lib-drop-down-menu [options]=\"pageSizeOptions\" [selected]=\"pageSize\" (selectedChanged)=\"pageSizeOptionChanged($event)\"></lib-drop-down-menu>\r\n <div class=\"mx-2\" *ngIf=\"count !== null && count > pageSize\">\r\n <button [disabled]=\"!canPreviousPage\" (click)=\"previousPage()\"\r\n class=\"pager-arrow-button-left\">\r\n <span class=\"sr-only\">Previous</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\" d=\"M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n <button [disabled]=\"!canNextPage\" (click)=\"nextPage()\"\r\n class=\"pager-arrow-button-right\">\r\n <span class=\"sr-only\">Next</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\" d=\"M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n <lib-drop-down-menu *ngIf=\"(pages && pages.length > 0) && (count !== null && count > pageSize)\" [options]=\"pages\" [selected]=\"page\" (selectedChanged)=\"pageOptionChanged($event)\"></lib-drop-down-menu>\r\n </div>\r\n </div>\r\n</div>\r\n"
|
|
851
851
|
},] }
|
|
852
852
|
];
|
|
853
853
|
PagerComponent.ctorParameters = function () { return [
|
|
@@ -1162,6 +1162,7 @@
|
|
|
1162
1162
|
this.value = null;
|
|
1163
1163
|
this.valueChange = new i0.EventEmitter();
|
|
1164
1164
|
this.showCalendar = false;
|
|
1165
|
+
this.showYears = false;
|
|
1165
1166
|
this.monthNames = [
|
|
1166
1167
|
'Ιανουάριος',
|
|
1167
1168
|
'Φεβρουάριος',
|
|
@@ -1180,20 +1181,41 @@
|
|
|
1180
1181
|
this.month = -1;
|
|
1181
1182
|
this.year = -1;
|
|
1182
1183
|
this.calendarDates = [];
|
|
1184
|
+
this.calendarYears = [];
|
|
1185
|
+
this.showCalendarYears = [];
|
|
1183
1186
|
this.blankDays = [];
|
|
1187
|
+
this.calendarYearPage = 1;
|
|
1188
|
+
this.yearsPerPage = 30;
|
|
1184
1189
|
this.onChange$ = undefined;
|
|
1185
1190
|
this.onTouched$ = undefined;
|
|
1186
1191
|
}
|
|
1187
|
-
DatepickerComponent.prototype.
|
|
1192
|
+
DatepickerComponent.prototype.ngOnInit = function () {
|
|
1193
|
+
var _a, _b;
|
|
1194
|
+
var today = new Date();
|
|
1195
|
+
this.month = today.getMonth();
|
|
1196
|
+
this.year = today.getFullYear();
|
|
1197
|
+
this.calendarDates = [{ day: this.value, today: this.value, selected: this.value }];
|
|
1198
|
+
this.calendarYears = [{ year: (_a = this.value) === null || _a === void 0 ? void 0 : _a.getFullYear(), today: this.value, selected: this.value }];
|
|
1199
|
+
var yearsArray = [];
|
|
1200
|
+
for (var i = 1950; i <= today.getFullYear() + 2; i++) {
|
|
1201
|
+
yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == ((_b = this.value) === null || _b === void 0 ? void 0 : _b.getFullYear()) });
|
|
1202
|
+
}
|
|
1203
|
+
this.calendarYears = yearsArray;
|
|
1204
|
+
this.showCalendarYears = this.paginate(this.calendarYears, 1);
|
|
1205
|
+
this.calcDays();
|
|
1206
|
+
};
|
|
1207
|
+
DatepickerComponent.prototype.compareDates = function (date1, day, year) {
|
|
1208
|
+
var _a;
|
|
1188
1209
|
if (!date1) {
|
|
1189
1210
|
return false;
|
|
1190
1211
|
}
|
|
1191
|
-
var d = new Date(this.year, this.month, day);
|
|
1212
|
+
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());
|
|
1192
1213
|
return date1.toDateString() === d.toDateString();
|
|
1193
1214
|
};
|
|
1194
1215
|
;
|
|
1195
1216
|
DatepickerComponent.prototype.selectDateValue = function (date) {
|
|
1196
|
-
|
|
1217
|
+
// This should be in UTC
|
|
1218
|
+
var selectedDate = new Date(this.year, this.month, date.day, 3, 0, 0, 0);
|
|
1197
1219
|
this.value = selectedDate;
|
|
1198
1220
|
this.valueChange.emit(this.value);
|
|
1199
1221
|
if (this.onChange$) {
|
|
@@ -1205,6 +1227,21 @@
|
|
|
1205
1227
|
}
|
|
1206
1228
|
this.showCalendar = false;
|
|
1207
1229
|
};
|
|
1230
|
+
DatepickerComponent.prototype.selectYearValue = function (year) {
|
|
1231
|
+
var selectedDate = new Date(year.year, 1, 1, 2, 0, 0, 0);
|
|
1232
|
+
this.year = year.year;
|
|
1233
|
+
this.value = selectedDate;
|
|
1234
|
+
this.valueChange.emit(this.value);
|
|
1235
|
+
if (this.onChange$) {
|
|
1236
|
+
this.onChange$(this.value);
|
|
1237
|
+
}
|
|
1238
|
+
this.updateDays();
|
|
1239
|
+
if (this.onTouched$) {
|
|
1240
|
+
this.onTouched$();
|
|
1241
|
+
}
|
|
1242
|
+
this.showYears = false;
|
|
1243
|
+
this.showCalendar = true;
|
|
1244
|
+
};
|
|
1208
1245
|
DatepickerComponent.prototype.previousMonth = function () {
|
|
1209
1246
|
if (this.month !== 0) {
|
|
1210
1247
|
this.month = this.month - 1;
|
|
@@ -1233,6 +1270,20 @@
|
|
|
1233
1270
|
this.onTouched$();
|
|
1234
1271
|
}
|
|
1235
1272
|
};
|
|
1273
|
+
DatepickerComponent.prototype.previousYear = function () {
|
|
1274
|
+
this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage > 1 ? --this.calendarYearPage : 1);
|
|
1275
|
+
this.calcDays();
|
|
1276
|
+
if (this.onTouched$) {
|
|
1277
|
+
this.onTouched$();
|
|
1278
|
+
}
|
|
1279
|
+
};
|
|
1280
|
+
DatepickerComponent.prototype.nextYear = function () {
|
|
1281
|
+
this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage <= this.calendarYears.length / this.yearsPerPage ? ++this.calendarYearPage : this.calendarYearPage);
|
|
1282
|
+
this.calcDays();
|
|
1283
|
+
if (this.onTouched$) {
|
|
1284
|
+
this.onTouched$();
|
|
1285
|
+
}
|
|
1286
|
+
};
|
|
1236
1287
|
DatepickerComponent.prototype.calcDays = function () {
|
|
1237
1288
|
var daysInMonth = new Date(this.year, this.month + 1, 0).getDate();
|
|
1238
1289
|
// find where to start calendar day of week
|
|
@@ -1244,8 +1295,13 @@
|
|
|
1244
1295
|
var daysArray = [];
|
|
1245
1296
|
var today = new Date();
|
|
1246
1297
|
for (var i = 1; i <= daysInMonth; i++) {
|
|
1247
|
-
daysArray.push({ day: i, today: this.compareDates(today, i), selected: this.compareDates(this.value, i) });
|
|
1298
|
+
daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates(this.value, i, null) });
|
|
1248
1299
|
}
|
|
1300
|
+
var yearsArray = [];
|
|
1301
|
+
for (var i_1 = 1950; i_1 <= today.getFullYear() + 2; i_1++) {
|
|
1302
|
+
yearsArray.push({ year: i_1, today: this.compareDates(today, null, i_1), selected: i_1 == this.year });
|
|
1303
|
+
}
|
|
1304
|
+
this.calendarYears = yearsArray;
|
|
1249
1305
|
this.blankDays = blankdaysArray;
|
|
1250
1306
|
this.calendarDates = daysArray;
|
|
1251
1307
|
};
|
|
@@ -1253,9 +1309,8 @@
|
|
|
1253
1309
|
var _this = this;
|
|
1254
1310
|
var today = new Date();
|
|
1255
1311
|
this.calendarDates.forEach(function (d) {
|
|
1256
|
-
d.today = _this.compareDates(today, d);
|
|
1257
|
-
d.selected = _this.compareDates(_this.value, d);
|
|
1258
|
-
;
|
|
1312
|
+
d.today = _this.compareDates(today, d, _this.year);
|
|
1313
|
+
d.selected = _this.compareDates(_this.value, d, _this.year);
|
|
1259
1314
|
});
|
|
1260
1315
|
};
|
|
1261
1316
|
DatepickerComponent.prototype.writeValue = function (obj) {
|
|
@@ -1276,10 +1331,16 @@
|
|
|
1276
1331
|
this.onTouched$();
|
|
1277
1332
|
}
|
|
1278
1333
|
};
|
|
1279
|
-
DatepickerComponent.prototype.
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1334
|
+
DatepickerComponent.prototype.paginate = function (array, page_number) {
|
|
1335
|
+
return array.slice((page_number - 1) * this.yearsPerPage, page_number * this.yearsPerPage);
|
|
1336
|
+
};
|
|
1337
|
+
DatepickerComponent.prototype.openYears = function () {
|
|
1338
|
+
this.showYears = !this.showYears;
|
|
1339
|
+
this.showCalendarYears = this.paginate(this.calendarYears, 1);
|
|
1340
|
+
this.calcDays();
|
|
1341
|
+
};
|
|
1342
|
+
DatepickerComponent.prototype.openCalendar = function () {
|
|
1343
|
+
this.showCalendar = !this.showCalendar;
|
|
1283
1344
|
this.calcDays();
|
|
1284
1345
|
};
|
|
1285
1346
|
return DatepickerComponent;
|
|
@@ -1287,7 +1348,7 @@
|
|
|
1287
1348
|
DatepickerComponent.decorators = [
|
|
1288
1349
|
{ type: i0.Component, args: [{
|
|
1289
1350
|
selector: 'lib-date-picker',
|
|
1290
|
-
template: "<div class=\"relative flex\"
|
|
1351
|
+
template: "<div class=\"relative flex\">\r\n\r\n <input type=\"text\"\r\n #dateInput\r\n [readonly]=\"readonly\"\r\n name=\"dateInput\"\r\n (blur)=\"onBlur($event)\"\r\n id=\"dateInput\"\r\n [value]=\"value | date: displayFormat\"\r\n class=\"w-full focus:ring-0 focus:outline-none rounded-none sm:text-sm border-gray-300 focus:border-0\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\r\n [placeholder]=\"disabled ? '' : placeholder\">\r\n\r\n <button class=\"relative inline-flex items-center px-2 py-2 border border-gray-300 text-sm font-medium rounded-r-sm text-gray-700 bg-gray-50 hover:bg-gray-100 focus:outline-none focus:ring-1 focus:ring-gray-500 focus:border-gray-500\"\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\"\r\n class=\"bg-gray-100 mt-10 rounded-sm shadow-md p-4 absolute left-0 z-50 w-full\"\r\n style=\"height:18rem;min-width:16rem;\">\r\n <div class=\"flex justify-between items-center mb-2\">\r\n <div>\r\n <button class=\"text-lg font-bold text-gray-800\"\r\n (click)=\"openYears()\">{{monthNames[month]}}</button>\r\n <button class=\"ml-1 text-lg text-gray-600 font-normal\"\r\n (click)=\"openYears()\">{{year}}</button>\r\n </div>\r\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\r\n <button type=\"button\"\r\n class=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25\"\r\n (click)=\"previousMonth();\">\r\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\r\n 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=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25\"\r\n (click)=\"nextMonth()\">\r\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\r\n 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=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25\"\r\n (click)=\"previousYear();\">\r\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\r\n 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=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25\"\r\n (click)=\"nextYear()\">\r\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\r\n 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=\"flex flex-wrap mb-3 -mx-1\"\r\n *ngIf=\"!showYears; else showCalYearsTmpl\">\r\n <div *ngFor=\"let day of dayNames\"\r\n class=\"text-gray-800 font-medium text-center text-sm uppercase\"\r\n style=\"width: 14.28%\">{{day}}</div>\r\n </div>\r\n\r\n <ng-template #showCalYearsTmpl>\r\n <div class=\"flex flex-wrap -mx-1\">\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=\"cursor-pointer text-center hover:text-white text-sm leading-none rounded-full leading-loose transition ease-in-out duration-100\"\r\n [class]=\"year.selected ? 'bg-gray-700 text-white' : 'text-gray-800 hover:bg-gray-800'\">{{year.year}}</div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"flex flex-wrap -mx-1\"\r\n *ngIf=\"!showYears\">\r\n <div *ngFor=\"let blankday of blankDays\"\r\n style=\"width: 14.28%\"\r\n class=\"text-center border p-1 border-transparent text-sm opacity-50\">{{blankday}}1</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=\"cursor-pointer text-center hover:text-white text-sm leading-none rounded-full leading-loose transition ease-in-out duration-100\"\r\n [class]=\"date.selected ? 'bg-gray-700 text-white' : 'text-gray-800 hover:bg-gray-800'\">{{date.day}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>",
|
|
1291
1352
|
providers: [
|
|
1292
1353
|
{
|
|
1293
1354
|
provide: forms.NG_VALUE_ACCESSOR,
|
|
@@ -1432,6 +1493,62 @@
|
|
|
1432
1493
|
large: [{ type: i0.Input }]
|
|
1433
1494
|
};
|
|
1434
1495
|
|
|
1496
|
+
var ToggleComponent = /** @class */ (function () {
|
|
1497
|
+
function ToggleComponent() {
|
|
1498
|
+
this.valueChange = new i0.EventEmitter();
|
|
1499
|
+
this.onChange$ = undefined;
|
|
1500
|
+
this.onTouched$ = undefined;
|
|
1501
|
+
}
|
|
1502
|
+
ToggleComponent.prototype.writeValue = function (obj) {
|
|
1503
|
+
if (obj) {
|
|
1504
|
+
this.value = obj || false;
|
|
1505
|
+
}
|
|
1506
|
+
};
|
|
1507
|
+
ToggleComponent.prototype.registerOnChange = function (fn) {
|
|
1508
|
+
this.onChange$ = fn;
|
|
1509
|
+
};
|
|
1510
|
+
ToggleComponent.prototype.registerOnTouched = function (fn) {
|
|
1511
|
+
this.onTouched$ = fn;
|
|
1512
|
+
};
|
|
1513
|
+
ToggleComponent.prototype.onBlur = function (event) {
|
|
1514
|
+
if (this.onTouched$) {
|
|
1515
|
+
this.onTouched$();
|
|
1516
|
+
}
|
|
1517
|
+
};
|
|
1518
|
+
ToggleComponent.prototype.ngOnInit = function () {
|
|
1519
|
+
};
|
|
1520
|
+
ToggleComponent.prototype.changeValue = function () {
|
|
1521
|
+
this.value = !this.value;
|
|
1522
|
+
this.valueChange.emit(this.value);
|
|
1523
|
+
if (this.onChange$) {
|
|
1524
|
+
this.onChange$(this.value);
|
|
1525
|
+
}
|
|
1526
|
+
if (this.onTouched$) {
|
|
1527
|
+
this.onTouched$();
|
|
1528
|
+
}
|
|
1529
|
+
};
|
|
1530
|
+
return ToggleComponent;
|
|
1531
|
+
}());
|
|
1532
|
+
ToggleComponent.decorators = [
|
|
1533
|
+
{ type: i0.Component, args: [{
|
|
1534
|
+
selector: 'lib-toggle',
|
|
1535
|
+
template: "<button type=\"button\"\n [ngClass]=\"value ? 'enabled' : 'disabled'\"\n class=\"toggle-button\"\n role=\"switch\"\n aria-checked=\"false\"\n aria-labelledby=\"isPrivate\"\n (click)=\"changeValue()\"\n (blur)=\"onBlur($event)\"\n value=\"{{value}}\"\n [disabled]=\"disabled\"\n [title]=\"disabled ? '\u03A4\u03BF \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF \u03C0\u03C1\u03AD\u03C0\u03B5\u03B9 \u03BD\u03B1 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B9\u03B4\u03C9\u03C4\u03B9\u03BA\u03CC' : '\u0399\u03B4\u03B9\u03C9\u03C4\u03B9\u03BA\u03CC'\">\n <span aria-hidden=\"true\"\n [ngClass]=\"value ? 'enabled-anim' : 'disabled-anim'\"\n class=\"toggle-span\"></span>\n</button>",
|
|
1536
|
+
providers: [
|
|
1537
|
+
{
|
|
1538
|
+
provide: forms.NG_VALUE_ACCESSOR,
|
|
1539
|
+
useExisting: i0.forwardRef(function () { return ToggleComponent; }),
|
|
1540
|
+
multi: true
|
|
1541
|
+
}
|
|
1542
|
+
]
|
|
1543
|
+
},] }
|
|
1544
|
+
];
|
|
1545
|
+
ToggleComponent.ctorParameters = function () { return []; };
|
|
1546
|
+
ToggleComponent.propDecorators = {
|
|
1547
|
+
value: [{ type: i0.Input }],
|
|
1548
|
+
disabled: [{ type: i0.Input }],
|
|
1549
|
+
valueChange: [{ type: i0.Output }]
|
|
1550
|
+
};
|
|
1551
|
+
|
|
1435
1552
|
var APP_LINKS = new i0.InjectionToken('APP_LINKS');
|
|
1436
1553
|
var SHELL_CONFIG = new i0.InjectionToken('SHELL_CONFIG');
|
|
1437
1554
|
|
|
@@ -2390,8 +2507,10 @@
|
|
|
2390
2507
|
this.sizeContainerStyle = 'side-pane-box-size';
|
|
2391
2508
|
this.overlayStyle = 'side-pane-overlay';
|
|
2392
2509
|
}
|
|
2393
|
-
SidePaneComponent.prototype.ngOnDestroy = function () {
|
|
2394
|
-
|
|
2510
|
+
SidePaneComponent.prototype.ngOnDestroy = function () {
|
|
2511
|
+
};
|
|
2512
|
+
SidePaneComponent.prototype.ngOnInit = function () {
|
|
2513
|
+
};
|
|
2395
2514
|
SidePaneComponent.prototype.onSidePaneActivated = function (component) {
|
|
2396
2515
|
var _a;
|
|
2397
2516
|
this.document.body.classList.add('modal-active');
|
|
@@ -2422,7 +2541,6 @@
|
|
|
2422
2541
|
}
|
|
2423
2542
|
}
|
|
2424
2543
|
this.sizeContainerStyle = "side-pane-box-size" + sizeStyleSuffix;
|
|
2425
|
-
console.log('SidePaneComponent:activateRoute.data', 'calculated container style: ', this.sizeContainerStyle, 'overlay type: ', this.overlayStyle);
|
|
2426
2544
|
this.showPane = true;
|
|
2427
2545
|
};
|
|
2428
2546
|
SidePaneComponent.prototype.onSidePaneDeactivated = function ($event) {
|
|
@@ -2477,6 +2595,7 @@
|
|
|
2477
2595
|
SidePaneComponent,
|
|
2478
2596
|
DatepickerComponent,
|
|
2479
2597
|
AvatarInitialsComponent,
|
|
2598
|
+
ToggleComponent,
|
|
2480
2599
|
// Toaster
|
|
2481
2600
|
ToasterContainerComponent,
|
|
2482
2601
|
ToasterComponent,
|
|
@@ -2536,7 +2655,8 @@
|
|
|
2536
2655
|
DatepickerComponent,
|
|
2537
2656
|
ToasterContainerComponent,
|
|
2538
2657
|
ToasterComponent,
|
|
2539
|
-
AvatarInitialsComponent
|
|
2658
|
+
AvatarInitialsComponent,
|
|
2659
|
+
ToggleComponent
|
|
2540
2660
|
]
|
|
2541
2661
|
},] }
|
|
2542
2662
|
];
|
|
@@ -2594,6 +2714,7 @@
|
|
|
2594
2714
|
exports.ToasterComponent = ToasterComponent;
|
|
2595
2715
|
exports.ToasterContainerComponent = ToasterContainerComponent;
|
|
2596
2716
|
exports.ToasterService = ToasterService;
|
|
2717
|
+
exports.ToggleComponent = ToggleComponent;
|
|
2597
2718
|
exports.UnauthorizedComponent = UnauthorizedComponent;
|
|
2598
2719
|
exports.ViewAction = ViewAction;
|
|
2599
2720
|
exports.ViewLayoutComponent = ViewLayoutComponent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"indice-ng-components.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/ng-components/src/lib/directives/click-outside.directive.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.ts","../../../projects/ng-components/src/lib/icons.ts","../../../projects/ng-components/src/lib/types.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-tile.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-column.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-details-section.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.ts","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.ts","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.ts","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.ts","../../../projects/ng-components/src/lib/services/toaster.service.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.ts","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.ts","../../../projects/ng-components/src/lib/tokens.ts","../../../projects/ng-components/src/lib/services/component-loader.service.ts","../../../projects/ng-components/src/lib/directives/dynamic-component-host.directive.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.ts","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-renew/auth-renew.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.ts","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.ts","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.ts","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.ts","../../../projects/ng-components/src/lib/pipes/address.pipe.ts","../../../projects/ng-components/src/lib/pipes/duration-format.pipe.ts","../../../projects/ng-components/src/lib/helpers/base-list.component.ts","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.ts","../../../projects/ng-components/src/lib/ng-components.module.ts","../../../projects/ng-components/src/public-api.ts","../../../projects/ng-components/src/indice-ng-components.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","//\r\n// https://github.com/arkon/ng-click-outside\r\n// the project is inactive - so imoved the directive code in our project\r\n//\r\nimport {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n PLATFORM_ID,\r\n SimpleChanges,\r\n NgZone,\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n// tslint:disable-next-line:directive-selector\r\n@Directive({ selector: '[clickOutside]' })\r\nexport class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input() clickOutsideEnabled = true;\r\n\r\n @Input() attachOutsideOnClick = false;\r\n @Input() delayClickOutsideInit = false;\r\n @Input() emitOnBlur = false;\r\n\r\n @Input() exclude = '';\r\n @Input() excludeBeforeClick = false;\r\n\r\n @Input() clickOutsideEvents = '';\r\n\r\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _nodesExcluded: Array<HTMLElement> = [];\r\n // tslint:disable-next-line:variable-name\r\n private _events: Array<string> = ['click'];\r\n\r\n constructor(\r\n // tslint:disable-next-line:variable-name\r\n private _el: ElementRef,\r\n // tslint:disable-next-line:variable-name\r\n private _ngZone: NgZone,\r\n @Inject(PLATFORM_ID) private platformId: any) {\r\n this._initOnClickBody = this._initOnClickBody.bind(this);\r\n this._onClickBody = this._onClickBody.bind(this);\r\n this._onWindowBlur = this._onWindowBlur.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._removeClickOutsideListener();\r\n this._removeAttachOutsideOnClickListener();\r\n this._removeWindowBlurListener();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n // tslint:disable-next-line:no-string-literal\r\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\r\n this._init();\r\n }\r\n }\r\n\r\n private _init(): void {\r\n if (this.clickOutsideEvents !== '') {\r\n this._events = this.clickOutsideEvents.split(',').map(e => e.trim());\r\n }\r\n\r\n this._excludeCheck();\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._initAttachOutsideOnClickListener();\r\n } else {\r\n this._initOnClickBody();\r\n }\r\n\r\n if (this.emitOnBlur) {\r\n this._initWindowBlurListener();\r\n }\r\n }\r\n\r\n private _initOnClickBody(): void {\r\n if (this.delayClickOutsideInit) {\r\n setTimeout(this._initClickOutsideListener.bind(this));\r\n } else {\r\n this._initClickOutsideListener();\r\n }\r\n }\r\n\r\n private _excludeCheck(): void {\r\n if (this.exclude) {\r\n try {\r\n const nodes = Array.from(document.querySelectorAll(this.exclude)) as Array<HTMLElement>;\r\n if (nodes) {\r\n this._nodesExcluded = nodes;\r\n }\r\n } catch (err) {\r\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\r\n }\r\n }\r\n }\r\n\r\n private _onClickBody(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n if (this.excludeBeforeClick) {\r\n this._excludeCheck();\r\n }\r\n\r\n if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\r\n this._emit(ev);\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._removeClickOutsideListener();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Resolves problem with outside click on iframe\r\n * @see https://github.com/arkon/ng-click-outside/issues/32\r\n */\r\n private _onWindowBlur(ev: Event): void {\r\n setTimeout(() => {\r\n if (!document.hidden) {\r\n this._emit(ev);\r\n }\r\n });\r\n }\r\n\r\n private _emit(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n this._ngZone.run(() => this.clickOutside.emit(ev));\r\n }\r\n\r\n private _shouldExclude(target: any): boolean {\r\n // tslint:disable-next-line:prefer-const\r\n for (let excludedNode of this._nodesExcluded) {\r\n if (excludedNode.contains(target)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _initClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.addEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _removeClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.removeEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _initAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _removeAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _initWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.addEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n\r\n private _removeWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.removeEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-drop-down-menu',\r\n templateUrl: './drop-down-menu.component.html'\r\n})\r\nexport class DropDownMenuComponent implements OnInit, OnChanges {\r\n @Input() options: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('selected') selectedValue: any | null = null;\r\n @Input() multiple = false;\r\n\r\n private selectedOption$: MenuOption | null = null;\r\n public get selectedOption(): MenuOption | null {\r\n return this.selectedOption$;\r\n }\r\n public set selectedOption(option: MenuOption | null) {\r\n this.selectedOption$ = option;\r\n this.selectedValue = option ? option.value : null;\r\n this.expanded = false;\r\n }\r\n\r\n @Output() selectedChange: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() selectedChanged: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n private expanded$ = false;\r\n public get expanded(): boolean {\r\n return this.expanded$;\r\n }\r\n public set expanded(value: boolean) {\r\n this.expanded$ = value;\r\n }\r\n constructor() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.options && this.options.length > 0 && this.selectedValue !== null && this.selectedValue !== undefined) {\r\n this.selectedOption$ = this.options.filter(o => o.value === this.selectedValue)[0];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public isSelected(option: MenuOption): boolean {\r\n return option != null && this.selectedValue != null && option.value === this.selectedValue;\r\n }\r\n\r\n public onClickOutside($event: any): void {\r\n this.expanded = false;\r\n }\r\n\r\n public selectOption(option: MenuOption): void {\r\n this.selectedOption = option;\r\n this.selectedChange.emit(option.value);\r\n this.selectedChanged.emit(option.value);\r\n }\r\n\r\n}\r\n","export class Icons {\r\n // https://uifabricicons.azurewebsites.net/\r\n public static Dashboard = `ms-Icon ms-Icon--HomeGroup `;\r\n public static Locations = `ms-Icon ms-Icon--MapPin `;\r\n public static ChargePoints = `ms-Icon ms-Icon--ChatBot `;\r\n public static Transations = `ms-Icon ms-Icon--PaymentCard `;\r\n public static Badges = `ms-Icon ms-Icon--IDBadge `;\r\n\r\n public static Information = `ms-Icon ms-Icon--Info`;\r\n public static Refresh = `ms-Icon ms-Icon--Refresh`;\r\n public static Search = `ms-Icon ms-Icon--Search`;\r\n public static Add = `ms-Icon ms-Icon--Add`;\r\n public static Filter = `ms-Icon ms-Icon--Filter`;\r\n\r\n public static TilesView = `ms-Icon ms-Icon--AppIconDefault`;\r\n public static TableView = `ms-Icon ms-Icon--Table`;\r\n public static MapView = `ms-Icon ms-Icon--MapPin`;\r\n public static EntryView = `ms-Icon ms-Icon--EntryView`;\r\n\r\n public static Separator = `ms-Icon ms-Icon--Separator text-white`;\r\n\r\n public static ItemsCount = 'ms-Icon ms-Icon--Boards';\r\n\r\n public static Heart = 'ms-Icon ms-Icon--Heart';\r\n public static HeartBroken = 'ms-Icon ms-Icon--HeartBroken';\r\n public static DateTime = 'ms-Icon ms-Icon--ReminderTime';\r\n\r\n public static Expand = 'ms-Icon ms-Icon--ChevronDown';\r\n public static Collapse = 'ms-Icon ms-Icon--ChevronUp';\r\n\r\n public static SortAsc = 'ms-Icon ms-Icon--Ascending';\r\n public static SortDesc = 'ms-Icon ms-Icon--Descending';\r\n\r\n public static Details = ' ms-Icon ms-Icon--AccountActivity'\r\n}\r\n","export interface IAppLinks {\r\n public: NavLink[];\r\n main: NavLink[];\r\n profile: NavLink[];\r\n profileActions: NavLink[];\r\n legal: NavLink[];\r\n brand: NavLink[];\r\n}\r\n\r\n\r\nexport class NavLink {\r\n constructor(text: string, path: string, exact: boolean = false, external: boolean = false, icon?: string) {\r\n this.text = text;\r\n this.path = path;\r\n this.exact = exact;\r\n this.external = external;\r\n this.icon = icon;\r\n }\r\n public text: string;\r\n public path: string;\r\n public exact: boolean;\r\n public external: boolean;\r\n public icon: string | undefined;\r\n}\r\n\r\nexport class ExternalNavLink extends NavLink {\r\n constructor(text: string, path: string, icon?: string) {\r\n super(text, path, true, true, icon);\r\n }\r\n}\r\n\r\nexport class FragmentNavLink extends NavLink {\r\n constructor(text: string, path: string, icon?: string) {\r\n super(text, path, true, true, icon);\r\n }\r\n}\r\n\r\nexport class ViewAction {\r\n public type: string;\r\n public key: string | null;\r\n public param: any;\r\n public icon: string;\r\n public tooltip: string | null;\r\n\r\n constructor(type: string, key: string | null, param: any, icon: string, tooltip: string | null) {\r\n this.type = type;\r\n this.key = key;\r\n this.param = param;\r\n this.icon = icon;\r\n this.tooltip = tooltip;\r\n }\r\n}\r\n\r\nexport class ListViewType {\r\n public static Tiles = 'tiles';\r\n public static Table = 'table';\r\n public static Map = 'map';\r\n}\r\n\r\nexport class RouterViewAction extends ViewAction {\r\n public outlet: string | null = null;\r\n public link: string | null = null;\r\n constructor(icon: string, link: string, outlet: string | null, tooltip: string | null) {\r\n super('router-link', null, null, icon, tooltip);\r\n this.outlet = outlet;\r\n this.link = link;\r\n }\r\n}\r\n\r\n\r\nexport class SwitchViewAction extends ViewAction {\r\n constructor(view: string, icon: string, tooltip: string | null) {\r\n super('switch-view', null, view, icon, tooltip);\r\n }\r\n}\r\n\r\nexport interface IResultSet<T> {\r\n count: number;\r\n items: T[];\r\n}\r\n\r\nexport class HeaderMetaItem {\r\n public key: string | null = null;\r\n public icon: string | null = null;\r\n public text: string | null = null;\r\n}\r\n\r\nexport class MenuOption {\r\n constructor(text: string, value: any, description?: string, data?: any, icon?: string) {\r\n this.text = text;\r\n this.value = value;\r\n this.description = description;\r\n this.data = data;\r\n this.icon = icon;\r\n }\r\n public text: string;\r\n public value: any;\r\n public description: string | undefined;\r\n public data: any | undefined;\r\n public icon: string | undefined;\r\n}\r\n\r\nexport interface IAddress {\r\n id?: string;\r\n street?: string | null;\r\n streetNumber?: string | null;\r\n city?: string | null;\r\n region?: string | null;\r\n postalCode?: string | null;\r\n country?: string | null;\r\n}\r\n\r\nexport interface IShellConfig {\r\n appLogo: string;\r\n appLogoAlt: string;\r\n showHeader: boolean;\r\n customHeaderComponent?: any;\r\n showFooter: boolean;\r\n customFooterComponent?: any;\r\n fluid: boolean;\r\n}\r\n\r\nexport class DefaultShellConfig implements IShellConfig {\r\n appLogo = 'https://tailwindui.com/img/logos/workflow-mark.svg?color=white';\r\n appLogoAlt = 'your app name here';\r\n showHeader = true;\r\n showFooter = true;\r\n fluid = false;\r\n}\r\n\r\nexport enum SCREEN_SIZE {\r\n XS,\r\n SM,\r\n MD,\r\n LG,\r\n XL\r\n}\r\n\r\nexport interface IScreenSize {\r\n id: SCREEN_SIZE;\r\n name: string;\r\n css: string;\r\n}\r\n\r\nexport enum ToastType {\r\n Info = 'info',\r\n Success = 'success',\r\n Error = 'error',\r\n Warning = 'warning'\r\n}\r\n\r\nexport const NULL_TOAST = { title : '_____NULL_____' } as Toast;\r\n\r\nexport interface Toast {\r\n type: ToastType;\r\n title: string;\r\n body: string;\r\n delay: number;\r\n}\r\n\r\nexport enum SidePaneSize {\r\n Default = '',\r\n Small25 = '25%',\r\n Medium50 = '50%',\r\n Large75 = '75%'\r\n}\r\n\r\nexport enum SidePaneOverlayType {\r\n Default = '',\r\n None = '-opacity-0',\r\n Light = '',\r\n Dark = '-opacity-50'\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Icons } from '../../icons';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-pager',\r\n templateUrl: './pager.component.html'\r\n})\r\nexport class PagerComponent implements OnInit, OnChanges {\r\n // PAGING\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [\r\n new MenuOption('10', 10),\r\n new MenuOption('20', 20),\r\n new MenuOption('30', 30),\r\n new MenuOption('50', 50),\r\n new MenuOption('100', 100)\r\n ];\r\n public pages: MenuOption[] = [];\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n public canPreviousPage = false;\r\n public canNextPage = false;\r\n\r\n // SORTING\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort') sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = 'desc';\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n public sortdirIcon = Icons.SortDesc;\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.calcPages();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n private calcPages(): void {\r\n this.pages = [];\r\n if (this.count && this.count > 0) {\r\n const pageCount = this.count / this.pageSize;\r\n for (let i = 0; i < pageCount; i++) {\r\n this.pages.push(new MenuOption(i + 1 + '', i + 1));\r\n }\r\n }\r\n this.canPreviousPage = this.page > 1;\r\n this.canNextPage = this.page < this.pages.length;\r\n //console.log('calcPages', this.page, this.canPreviousPage, this.canNextPage);\r\n }\r\n\r\n public nextPage(): void {\r\n const next = this.page + 1;\r\n this.gotoPage(next);\r\n }\r\n\r\n public previousPage(): void {\r\n const previous = this.page - 1;\r\n this.gotoPage(previous);\r\n }\r\n\r\n public gotoPage(page: number): void {\r\n this.page = page;\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public pageSizeOptionChanged(pageSize: number): void {\r\n this.pageSizeChanged.emit(pageSize);\r\n this.calcPages();\r\n }\r\n\r\n public pageOptionChanged(page: number): void {\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public sortOptionChanged(sort: string): void {\r\n this.sortChanged.emit(sort);\r\n }\r\n\r\n public toggleSortdir(): void {\r\n //console.log('toggleSortdir');\r\n let sortdir = 'desc';\r\n if (this.sortdir === 'desc') {\r\n sortdir = 'asc';\r\n this.sortdirIcon = Icons.SortAsc;\r\n } else {\r\n sortdir = 'desc';\r\n this.sortdirIcon = Icons.SortDesc;\r\n }\r\n this.sortdirChanged.emit(sortdir);\r\n }\r\n\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-tile', template: '<ng-content></ng-content>' })\r\nexport class ListTileComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({selector: 'lib-list-column', template: '<ng-content></ng-content>'})\r\nexport class ListColumnComponent {\r\n @Input() title: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('full-width') fullWidth = false;\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() { }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-details-section', template: '<ng-content></ng-content>' })\r\nexport class ListDetailsSectionComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, QueryList, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { MenuOption, ListViewType } from '../../types';\r\nimport { ListTileComponent } from './list-tile.component';\r\nimport { ListColumnComponent } from './list-column.component';\r\nimport { ListDetailsSectionComponent } from './list-details-section.component';\r\nimport { Icons } from '../../icons';\r\n\r\n@Component({\r\n selector: 'lib-list-view',\r\n templateUrl: './list-view.component.html'\r\n})\r\nexport class ListViewComponent implements OnChanges {\r\n public expandIcon = Icons.Expand;\r\n public collapseIcon = Icons.Collapse;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-pager') showPager = true;\r\n // DATA SOURCE!\r\n @Input() items: any[] | null | undefined;\r\n\r\n // PAGING - pass through for pager component\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [];\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() detailsOpened: EventEmitter<{item: any, open: boolean}> = new EventEmitter<{item: any, open: boolean}>();\r\n\r\n public tableViewSupported = false;\r\n private multipleFullWidth = false;\r\n public fullWidthTHClass = 'list-view-th-full';\r\n public fullWidthTDClass = 'list-view-td-full';\r\n public tilesViewSupported = false;\r\n public detailsSectionSupported = false;\r\n\r\n @Input() view = ListViewType.Table;\r\n\r\n // SORTING - pass through for pager component\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort') sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = '-';\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n // COLUMNS\r\n public columns: any[] = [];\r\n @ContentChildren(ListColumnComponent, { read: ListColumnComponent })\r\n set cols(refs: QueryList<ListColumnComponent>) {\r\n this.columns = refs?.toArray();\r\n if (this.columns && this.columns.length > 0) {\r\n this.tableViewSupported = true;\r\n }\r\n this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;\r\n this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';\r\n this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';\r\n }\r\n\r\n public tilesDeckClass = 'cards-deck-4';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('tiles-count') tilesCount = 4;\r\n\r\n public tileTemplate: any | null | undefined = null;\r\n @ContentChild(ListTileComponent, {read: ListTileComponent})\r\n set tiles(ref: ListTileComponent) {\r\n this.tileTemplate = ref;\r\n if (this.tileTemplate) {\r\n this.tilesViewSupported = true;\r\n }\r\n }\r\n\r\n public detailsTemplate: any | null | undefined = null;\r\n @ContentChild(ListDetailsSectionComponent, {read: ListDetailsSectionComponent})\r\n set details(ref: ListDetailsSectionComponent) {\r\n this.detailsTemplate = ref;\r\n if (this.detailsTemplate) {\r\n this.detailsSectionSupported = true;\r\n }\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const tilesCountChange = changes['tiles-count'] || changes.tilesCount ;\r\n if (tilesCountChange) {\r\n this.setTilesDeckClass(tilesCountChange.currentValue);\r\n }\r\n }\r\n\r\n // events\r\n public emitPageChanged($event: number): void {\r\n this.pageChanged.emit($event);\r\n }\r\n\r\n public emitPageSizeChanged($event: number): void {\r\n this.pageSizeChanged.emit($event);\r\n }\r\n\r\n public emitSortChanged($event: string): void {\r\n this.sortChanged.emit($event);\r\n }\r\n public emitSortdirChanged($event: string): void {\r\n this.sortdirChanged.emit($event);\r\n }\r\n\r\n public toggleDetails(item: any): void {\r\n item.detailsExpanded = !item.detailsExpanded;\r\n this.detailsOpened.emit({ item, open: item.detailsExpanded });\r\n }\r\n\r\n // helpers\r\n private setTilesDeckClass(tiles: number): void {\r\n if ( tiles >= 1 && tiles <= 4 ) {\r\n this.tilesDeckClass = `cards-deck-${tiles}`;\r\n } else {\r\n this.tilesDeckClass = 'cards-deck-3';\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-list-view-empty-state',\r\n templateUrl: './list-view-empty-state.component.html'\r\n})\r\nexport class ListViewEmptyStateComponent implements OnInit {\r\n\r\n @Input() title = 'Δεν βρέθηκαν εγγραφές.';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle = 'Παρακαλώ αλλάξτε τα κριτήρια αναζήτησης σας ή ξεκινήστε προσθέτοντας μια νέα εγγραφή';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('new-item-label') newItemLabel = 'Νέα εγγραφή';\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-skeleton-loader',\r\n templateUrl: './skeleton-loader.component.html'\r\n})\r\nexport class SkeletonLoaderComponent implements OnInit {\r\n @Input() count = 5;\r\n @Input() type = 'tiles'; // 'large-tile', 'table'\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public counter(i: number): number[] {\r\n return new Array(i);\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-collapsible-panel',\r\n templateUrl: './collapsible-panel.component.html'\r\n})\r\nexport class CollapsiblePanelComponent implements OnInit {\r\n @Input() title: string | null = null;\r\n public visible = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kpi-tile',\r\n templateUrl: './kpi-tile.component.html'\r\n})\r\nexport class KpiTileComponent implements OnInit {\r\n\r\n @Input() title: string | undefined = undefined;\r\n @Input() busy = false;\r\n @Input() kpi: any | undefined = undefined;\r\n // tslint:disable-next-line:no-output-rename\r\n @Output('tile-action') tileAction: EventEmitter<any> = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitTileAction($event: any): boolean {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.tileAction.emit($event);\r\n return false;\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n// freaksly simple date picker : https://tailwind-elements.com/docs/standard/forms/datepicker/\r\n@Component({\r\n selector: 'lib-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatepickerComponent), // replace name as appropriate\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DatepickerComponent implements OnInit, ControlValueAccessor {\r\n @Input() readonly: boolean = true;\r\n @Input() disabled: boolean = false;\r\n @Input('display-format') displayFormat: string | undefined = 'dd/MM/yyyy';\r\n @Input() placeholder: string | undefined = '';\r\n @Input() value: Date | undefined | null = null;\r\n @Output() valueChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n @ViewChild('dateInput') dateInput: ElementRef | undefined;\r\n public showCalendar = false;\r\n public monthNames = [\r\n 'Ιανουάριος',\r\n 'Φεβρουάριος',\r\n 'Μάρτιος',\r\n 'Απρίλιος',\r\n 'Μάϊος',\r\n 'Ιούνιος',\r\n 'Ιούλιος',\r\n 'Αύγουστος',\r\n 'Σεπτέμβριος',\r\n 'Οκτώβριος',\r\n 'Νοεμβριος',\r\n 'Δεκέμβριος',\r\n ];\r\n public dayNames = ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'];\r\n\r\n public month: number = -1;\r\n public year: number = -1;\r\n public calendarDates: any[] = [];\r\n public blankDays: any[] = [];\r\n\r\n private onChange$: any | undefined = undefined;\r\n private onTouched$: any | undefined = undefined;\r\n\r\n public compareDates(date1: Date | undefined | null, day: number): boolean {\r\n if(!date1) {\r\n return false;\r\n }\r\n const d = new Date(this.year, this.month, day);\r\n return date1.toDateString() === d.toDateString();\r\n };\r\n\r\n public selectDateValue(date: any): void {\r\n let selectedDate = new Date(this.year, this.month, date.day);\r\n this.value = selectedDate;\r\n this.valueChange.emit(this.value);\r\n if(this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if(this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.showCalendar = false;\r\n }\r\n\r\n public previousMonth(): void {\r\n if (this.month !== 0) {\r\n this.month = this.month - 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 11;\r\n this.year = this.year - 1;\r\n this.calcDays();\r\n }\r\n if(this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public nextMonth(): void {\r\n if (this.month !== 11) {\r\n this.month = this.month + 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 0;\r\n this.year = this.year + 1;\r\n this.calcDays();\r\n }\r\n if(this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public calcDays(): void {\r\n const daysInMonth = new Date(this.year, this.month + 1, 0).getDate();\r\n\r\n // find where to start calendar day of week\r\n const dayOfWeek = new Date(this.year, this.month).getDay();\r\n const blankdaysArray = [];\r\n for (var i = 1; i <= dayOfWeek; i++) {\r\n blankdaysArray.push(i);\r\n }\r\n\r\n const daysArray = [];\r\n const today = new Date();\r\n for (var i = 1; i <= daysInMonth; i++) {\r\n daysArray.push({day: i, today: this.compareDates(today, i), selected: this.compareDates(this.value, i)});\r\n }\r\n this.blankDays = blankdaysArray;\r\n this.calendarDates = daysArray;\r\n }\r\n\r\n private updateDays(): void {\r\n const today = new Date();\r\n this.calendarDates.forEach(d => {\r\n d.today = this.compareDates(today, d);\r\n d.selected = this.compareDates(this.value, d);;\r\n });\r\n }\r\n\r\n constructor() { }\r\n\r\n writeValue(obj: any): void {\r\n if(obj) {\r\n this.value = new Date(obj);\r\n this.month = this.value.getMonth();\r\n this.year = this.value.getFullYear();\r\n }\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.onChange$ = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched$ = fn;\r\n }\r\n\r\n public onBlur(event: any): void {\r\n if(this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n let today = new Date();\r\n this.month = today.getMonth();\r\n this.year = today.getFullYear();\r\n this.calcDays();\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Toast, ToastType, NULL_TOAST } from '../types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToasterService {\r\n\r\n private subject: BehaviorSubject<Toast>;\r\n public toast$: Observable<Toast>;\r\n\r\n constructor() {\r\n this.subject = new BehaviorSubject<Toast>(NULL_TOAST);\r\n this.toast$ = this.subject.asObservable()\r\n .pipe(filter( toast => toast !== null && toast.title !== NULL_TOAST.title ));\r\n }\r\n\r\n public show(type: ToastType, title?: string, body?: string, delay?: number): void {\r\n this.subject.next({ type, title, body, delay } as Toast);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ToasterService } from '../../services/toaster.service';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster-container',\r\n templateUrl: './toaster-container.component.html'\r\n})\r\nexport class ToasterContainerComponent implements OnInit {\r\n\r\n toasts: Toast[] = [];\r\n\r\n constructor(private toaster: ToasterService) { }\r\n\r\n ngOnInit(): void {\r\n this.toaster.toast$\r\n .subscribe(toast => {\r\n this.toasts = [toast, ...this.toasts];\r\n setTimeout(() => this.toasts.pop(), toast.delay || 6000);\r\n });\r\n }\r\n\r\n remove(index: number): void {\r\n this.toasts = this.toasts.slice(0, index).concat(this.toasts.slice(index + 1));\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster',\r\n templateUrl: './toaster.component.html'\r\n})\r\nexport class ToasterComponent implements OnInit {\r\n\r\n @Input() toast: Toast | undefined;\r\n @Input() i = 0;\r\n @Output() remove = new EventEmitter<number>();\r\n public isMobile = false;\r\n public closed = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n window.screen.width > 640 ? this.isMobile = false : this.isMobile = true;\r\n }\r\n\r\n public closeToast(index: number): void {\r\n this.closed = true;\r\n setTimeout(() => this.remove.emit(index), 100);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-avatar-initials',\r\n templateUrl: './avatar-initials.component.html'\r\n})\r\nexport class AvatarInitialsComponent implements OnInit {\r\n @Input()\r\n public name: string | null | undefined;\r\n @Input()\r\n public large = false;\r\n public initials?: string;\r\n public circleColor!: string;\r\n private colors = [\r\n '#EB7181', // red\r\n '#468547', // green\r\n '#FFD558', // yellow\r\n '#3670B2', // blue\r\n ];\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.createInititals();\r\n const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));\r\n // assign this to a class if you want to randomly change background colors of the circle.\r\n this.circleColor = this.colors[randomIndex];\r\n }\r\n\r\n private createInititals(): void {\r\n if (this.name) {\r\n let initials = '';\r\n for (let i = 0; i < this.name.length; i++) {\r\n if (this.name.charAt(i) === ' ') {\r\n continue;\r\n }\r\n if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) {\r\n initials += this.name.charAt(i);\r\n if (initials.length === 2) {\r\n break;\r\n }\r\n }\r\n }\r\n this.initials = initials;\r\n }\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { IAppLinks, IShellConfig } from './types';\r\n\r\nexport const APP_LINKS = new InjectionToken<IAppLinks>('APP_LINKS');\r\nexport const SHELL_CONFIG = new InjectionToken<IShellConfig>('SHELL_CONFIG');\r\n","import { Injectable, ComponentFactoryResolver, ViewContainerRef } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ComponentLoaderService {\r\n constructor(private cfr: ComponentFactoryResolver) { }\r\n\r\n public loadComponent(vcr: ViewContainerRef, component: any): void {\r\n vcr.clear();\r\n const componentFactory = this.cfr.resolveComponentFactory(component);\r\n const componentRef = vcr.createComponent(componentFactory);\r\n // TL;TR Force change detection on this component, where change detection means force lifecycle hooks to run\r\n // In order to avoid NG0100: Expression has changed after it was checked\r\n // The above error is caused because the view is rendered before the lifecycle hooks are called,\r\n // resulting in bindind expression changes\r\n // A somewhat explanation here:\r\n // https://stackoverflow.com/questions/56427104/when-is-oninit-event-triggered-for-a-dynamically-loaded-angular-component\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { Directive, ViewContainerRef, Input } from '@angular/core';\r\n\r\n@Directive({ selector: '[appDynamicComponentHost]' })\r\nexport class DynamicComponentHostDirective {\r\n @Input() hostName: string = '';\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}","import { SHELL_CONFIG } from './../../../tokens';\r\nimport { IShellConfig, DefaultShellConfig } from './../../../types';\r\nimport { AfterViewInit, Component, OnInit, OnDestroy, Inject, ViewChildren, ViewContainerRef, QueryList } from '@angular/core';\r\nimport { DOCUMENT, Location } from '@angular/common';\r\nimport { ActivationStart, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Subscription } from 'rxjs';\r\nimport { ComponentLoaderService } from '../../../services/component-loader.service';\r\nimport { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-shell-layout',\r\n templateUrl: './shell-layout.component.html'\r\n})\r\nexport class ShellLayoutComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @ViewChildren(DynamicComponentHostDirective)\r\n dynamicComponentHosts: QueryList<DynamicComponentHostDirective> | null = null;\r\n public showRightPaneSM = false;\r\n private routerSub$: Subscription | null = null;\r\n public activeConfig: IShellConfig = new DefaultShellConfig();\r\n constructor(@Inject(DOCUMENT) private document: any,\r\n private router: Router, private location: Location,\r\n @Inject(SHELL_CONFIG) private config: IShellConfig | null,\r\n private componentLoaderService: ComponentLoaderService) {\r\n if (!config) {\r\n config = new DefaultShellConfig();\r\n }\r\n this.activeConfig = config;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routerSub$ = this.router.events\r\n .pipe(filter(event => event instanceof ActivationStart))\r\n .subscribe((e) => {\r\n // console.log('ShellLayoutComponent ActivationStart', e);\r\n if ((e as ActivationStart)?.snapshot) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot', (e as ActivationStart)?.snapshot);\r\n if ((e as ActivationStart)?.snapshot?.data) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot data', (e as ActivationStart)?.snapshot.data);\r\n if ((e as ActivationStart)?.snapshot?.data.shell) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot data shell params',\r\n // (e as ActivationStart)?.snapshot.data.shell);\r\n this.activeConfig = (e as ActivationStart)?.snapshot.data.shell as IShellConfig;\r\n // console.log('ShellLayoutComponent activeConfig from route: ', this.activeConfig);\r\n if (this.activeConfig.customHeaderComponent) {\r\n this.initCustomComponents();\r\n }\r\n } else {\r\n this.activeConfig = this.config ? this.config : new DefaultShellConfig();\r\n // console.log('ShellLayoutComponent default activeConfig: ', this.activeConfig);\r\n }\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.initCustomComponents();\r\n }\r\n\r\n private initCustomComponents(): void {\r\n if(this.dynamicComponentHosts && this.dynamicComponentHosts.length > 0){\r\n this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Header'));\r\n // since you're not using it...\r\n // this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Footer'));\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routerSub$) {\r\n this.routerSub$.unsubscribe();\r\n }\r\n }\r\n\r\n private loadCustomComponent(host: DynamicComponentHostDirective | undefined): void{\r\n if (host){\r\n const viewContainerRef = host.viewContainerRef;\r\n if (viewContainerRef && this.activeConfig.customHeaderComponent) {\r\n this.componentLoaderService.loadComponent(viewContainerRef, this.activeConfig.customHeaderComponent);\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, Inject, Input } from '@angular/core';\r\nimport { User } from 'oidc-client';\r\nimport { Event, NavigationStart, Router, RouterEvent } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { NavLink } from '../../../types';\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { BehaviorSubject, Observable, Subject, SubscriptionLike } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-shell-header',\r\n templateUrl: './shell-header.component.html'\r\n})\r\nexport class ShellHeaderComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('section-links') sectionLinksPath = 'main';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('profile-menu') profileMenuVisible = true;\r\n @Input() border = true;\r\n public sectionLinks: NavLink[] = [];\r\n public mobileMenuExpanded = false;\r\n public userMenuExpanded = false;\r\n protected routeSubject: Observable<Event>;\r\n protected userSubject: BehaviorSubject<any>;\r\n protected routerSub$: Subscription | null = null;\r\n protected userSub$: Subscription | null = null;\r\n protected statusSub$: Subscription | null = null;\r\n public user: User | null = null;\r\n public avatarName: string | null = null;\r\n\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(SHELL_CONFIG) public config: any,\r\n @Inject(APP_LINKS) public links: any) {\r\n this.routeSubject = this.router.events.pipe(filter(event => event instanceof NavigationStart));\r\n this.userSubject = this.authService.userStatus;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routerSub$) {\r\n this.routerSub$.unsubscribe();\r\n }\r\n // TODO: check authenticated user here before we start polling server status\r\n if (this.statusSub$) {\r\n this.statusSub$.unsubscribe();\r\n }\r\n if (this.userSub$) {\r\n this.userSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sectionLinks = this.links[this.sectionLinksPath] as NavLink[];\r\n this.routerSub$ = this.routeSubject.subscribe(event => {\r\n this.mobileMenuExpanded = false;\r\n this.userMenuExpanded = false;\r\n });\r\n this.authService.loadUser().then(user => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n //console.log(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.userSubject.subscribe((user: any) => {\r\n //console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\r\n }\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.userMenuExpanded = false;\r\n }\r\n\r\n public signin(event: any | null | undefined): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n this.authService.startAuthentication();\r\n }\r\n\r\n private setCurrentUser(user: any): void {\r\n this.user = user;\r\n if (this.user && this.user.profile) {\r\n this.avatarName = `${this.user.profile.given_name?.charAt(0)}${this.user.profile.family_name?.charAt(0)}`;\r\n //console.log('load user', this.avatarName);\r\n }\r\n }\r\n}\r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport { APP_LINKS } from '../../../tokens';\r\nimport { IAppLinks } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-footer',\r\n templateUrl: './shell-footer.component.html'\r\n\r\n})\r\n\r\nexport class ShellFooterComponent {\r\n constructor(@Inject(APP_LINKS) public links: IAppLinks) {\r\n }\r\n}\r\n","import { SwitchViewAction } from '../../../types';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { HeaderMetaItem, RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-view-layout',\r\n templateUrl: './view-layout.component.html'\r\n})\r\nexport class ViewLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-header') header = true;\r\n @Input() fluid = false;\r\n @Input() title = 'no title';\r\n @Input() icon: string | null = null;\r\n @Input() actions: ViewAction[] | null = null;\r\n @Input() busy = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\r\n @Input() view: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\r\n // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\r\n ];\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any): void {\r\n //console.log('routerLinkActionClick', action);\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { rightpane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n fromEvent(this.searchInput$?.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe(_ => {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n });\r\n }\r\n\r\n public switchViewActionClick(action: SwitchViewAction | any): void {\r\n //console.log('switchViewActionClick', action);\r\n this.view = action.param;\r\n if (action && action.param) {\r\n this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { HeaderMetaItem } from '../../../types';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-model-view-layout',\r\n templateUrl: './model-view-layout.component.html'\r\n})\r\nexport class ModelViewLayoutComponent implements OnInit {\r\n public showRightPaneSM = false;\r\n @Input() title = 'no title';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('primary-links') primary: { text: string, link: string }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('secondary-links') secondary: { text: string, link: string }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\r\n // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\r\n ];\r\n constructor( private location: Location) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated($event: any): void {\r\n //console.log('onSidePaneActivated', $event);\r\n this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n //console.log('onSidePaneActivated', $event);\r\n this.showRightPaneSM = false;\r\n }\r\n\r\n public closeSidePane(): void {\r\n this.location.back();\r\n }\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-view-layout',\r\n templateUrl: './side-view-layout.component.html'\r\n})\r\nexport class SideViewLayoutComponent implements OnInit {\r\n @Input() title: string | null = 'Πληροφορίες';\r\n @Input() showActions = true;\r\n @Input() disabled = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('return-path') returnPath: string | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-label') okLabel = 'Αποθήκευση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-show') okShow = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-close-dialog') closeOnOk = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-label') cancelLabel = 'Ακύρωση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-show') cancelShow = true;\r\n // @Output() close = new EventEmitter<any>();\r\n @Output() cancel: EventEmitter<boolean> = new EventEmitter();\r\n @Output() ok: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(private location: Location, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public closeSidePane(): void {\r\n if (this.returnPath) {\r\n this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => this.router.navigateByUrl(this.returnPath || '/'));\r\n } else {\r\n this.location.back();\r\n }\r\n }\r\n\r\n public emitClose(): void {\r\n this.cancel.emit(false);\r\n this.closeSidePane();\r\n }\r\n\r\n public emitCancel(): void {\r\n this.cancel.emit(false);\r\n this.closeSidePane();\r\n }\r\n\r\n public emitOK(): void {\r\n this.ok.emit(true);\r\n if(this.closeOnOk) {\r\n this.closeSidePane();\r\n }\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { fromEvent } from 'rxjs';\r\nimport { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-form-layout',\r\n templateUrl: './form-layout.component.html'\r\n})\r\nexport class FormLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n @Input() title: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\r\n @Input() actions: ViewAction[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle: string | null = null;\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n public showRightPaneSM = false;\r\n\r\n constructor(private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated($event: any): void {\r\n this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.onComplete.emit(true);\r\n this.showRightPaneSM = false;\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n fromEvent(this.searchInput$?.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe(_ => {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n });\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any, relative: boolean = false): void {\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n}\r\n","import { Inject } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-auth-callback',\r\n templateUrl: './auth-callback.component.html'\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n public status = 'παρακαλώ περιμένετε...';\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router, private route: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n const self = this;\r\n this.authService.completeAuthentication().then(() => {\r\n self.authService.isLoggedIn().subscribe((result: any) => {\r\n // i'm sorry!\r\n if (!result) {\r\n self.router.navigate(['/unauthorized']);\r\n return;\r\n }\r\n let navigationUrl = '/dashboard';\r\n if (this.route.data) {\r\n this.route.data.subscribe(data => {\r\n if(data['navigationUrl'] != undefined){\r\n navigationUrl = data['navigationUrl'];\r\n }\r\n })\r\n }\r\n\r\n // did you want to go somewhere?\r\n const user = self.authService.currentUser();\r\n if (user && user.state && user.state.url) {\r\n //console.log('AuthCallbackComponent user state', user.state);\r\n self.router.navigateByUrl(user.state.url);\r\n return;\r\n } else {\r\n self.router.navigateByUrl(navigationUrl);\r\n return;\r\n }\r\n\r\n //\r\n // lets check your subscriptions...\r\n // self.status = `we're loading your subscription information, please wait...`;\r\n // ok get the subscriptions for the user\r\n // self.appState.subscriptions.subscribe((subs) => {\r\n // self.subscriptions = subs;\r\n // if (subs === null || subs.length === 0) {\r\n // self.router.navigate(['/new-subscription']);\r\n // } else if (subs.length === 1) {\r\n // self.status = `welcome ${user.profile.name}, we're loading your configuration information, please wait...`;\r\n // self.selectSubscription(subs[0]);\r\n // } else {\r\n // self.status = `welcome ${user.profile.name}, please select a subscription to proceed...`;\r\n // }\r\n // }, error => {\r\n // self.status = `oups! an error occured, sorry about that! please try again in a while :)`;\r\n // });\r\n //\r\n\r\n });\r\n });\r\n }\r\n\r\n // public selectSubscription(subscription: any) {\r\n // this.appState.selectSubscription(subscription);\r\n // this.router.navigate([subscription.homePath]);\r\n // }\r\n\r\n}\r\n","import { Inject } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n\r\n@Component({ selector: 'lib-auth-renew', template: ''})\r\nexport class AuthRenewComponent implements OnInit {\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n // console.log('AuthRenewComponent init!!!');\r\n this.authService.manager.signinSilentCallback().catch(() => {\r\n // console.log('redirect to unauthorized!');\r\n this.router.navigate(['/unauthorized']);\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-logged-out',\r\n templateUrl: './logged-out.component.html'\r\n})\r\nexport class LoggedOutComponent implements OnInit {\r\n status = 'working on it, please give me a sec...';\r\n finished = false;\r\n constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n this.authService.completeSignout().then(() => {\r\n this.status = 'Thank you!';\r\n this.finished = true;\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-error',\r\n templateUrl: './error.component.html'\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n public error = 'Error!';\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-page-not-found',\r\n templateUrl: './page-not-found.component.html'\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n\r\n// tslint:disable-next-line:component-selector\r\n@Component({selector: 'lib-unauthorized', templateUrl: './unauthorized.component.html'})\r\nexport class UnauthorizedComponent implements OnInit {\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n signin(): void {\r\n this.authService.clearState().then( (_: any) => {\r\n this.authService.startSignout();\r\n });\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { IAddress } from '../types';\r\n\r\n@Pipe({\r\n name: 'address',\r\n pure: false\r\n})\r\nexport class AddressPipe implements PipeTransform {\r\n\r\n transform(value: IAddress | undefined): string {\r\n if (value === undefined || null || '') {\r\n return '';\r\n }\r\n // tslint:disable-next-line:no-non-null-assertion\r\n return `${value.street || ''}${value.streetNumber ? ' ' + value.streetNumber : ''}${value.city ? ', ' + value.city : ''}${+value.postalCode! ? ', ' + +value.postalCode! : ''}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'durationFormat',\r\n pure: false\r\n})\r\nexport class DurationFormatPipe implements PipeTransform {\r\n\r\n transform(value: any, arg1: any, arg2: any): string {\r\n\r\n let days: any;\r\n let seconds: any;\r\n let minutes: any;\r\n let hours: any;\r\n\r\n if (arg1 === 'ms' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value / 1000) % 60);\r\n minutes = Math.floor(((value / (1000 * 60)) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value % 60));\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 'ms' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(((value / 1000) % 60));\r\n minutes = Math.floor((value / (1000 * 60) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60) % 24));\r\n days = Math.floor((value / (1000 * 60 * 60 * 24)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(value % 60);\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60) % 24);\r\n days = Math.floor((((value / 60) / 60) / 24));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n\r\n private format(arg2: string, seconds: any, minutes: any, hours: any, days: any): any {\r\n (days < 10) ? days = '0' + days : days;\r\n (hours < 10) ? hours = '0' + hours : hours;\r\n (minutes < 10) ? minutes = '0' + minutes : minutes;\r\n (seconds < 10) ? seconds = '0' + seconds : seconds;\r\n\r\n switch (arg2) {\r\n case 'hhmmss':\r\n return `${hours}:${minutes}:${seconds}`;\r\n\r\n case 'ddhhmmss':\r\n return `${days}d, ${hours}h, ${minutes}m, ${seconds}s`;\r\n\r\n case 'ddhhmmssLong':\r\n return `${days} days, ${hours} hours, ${minutes} minutes, ${seconds} seconds`;\r\n }\r\n return undefined;\r\n }\r\n\r\n}\r\n","import { Observable, Subscription } from 'rxjs';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { HeaderMetaItem, IResultSet, MenuOption, RouterViewAction, ViewAction, ListViewType } from '../types';\r\nimport { Icons } from '../icons';\r\n\r\n@Component({ template: '' })\r\nexport abstract class BaseListComponent<T> implements OnInit, OnDestroy {\r\n public items: T[] | null | undefined = null;\r\n public view: string = ListViewType.Tiles;\r\n public title: string | null = null;\r\n public actions: ViewAction[] = [];\r\n public loaderItems: any[] = [1, 2, 3, 4, 5];\r\n public page = 1;\r\n public pageSize = 20;\r\n public count = 0;\r\n public sort: string | null = '';\r\n public sortdir: string | null = '-';\r\n public search: string | null = '';\r\n public sortOptions: MenuOption[] = [];\r\n public metaItems: HeaderMetaItem[] = [];\r\n public abstract newItemLink: string | null;\r\n private routeSub$: Subscription | undefined;\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routeSub$) {\r\n this.routeSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.actions = [\r\n new ViewAction('search', null, null, Icons.Search, 'αναζήτηση'),\r\n new ViewAction('refresh', null, null, Icons.Refresh, 'ανανέωση στοιχείων')\r\n ];\r\n if (this.newItemLink) {\r\n this.actions.push(new RouterViewAction(Icons.Add, this.newItemLink, 'rightpane', 'προσθήκη νέας εγγραφής;'));\r\n }\r\n\r\n this.metaItems = [\r\n { key: 'count', icon: Icons.ItemsCount, text: 'παρακαλώ περιμένετε...' }\r\n ];\r\n\r\n // disabled external route changes monitoring due to sync issues - which is bad :) - refresh from url will not work\r\n // until i come up with a solution...\r\n\r\n this.routeSub$ = this.route$.queryParamMap.subscribe(params => {\r\n if (params.keys.length === 0) {\r\n return;\r\n }\r\n\r\n // changing the view mode does not require reloading...\r\n this.view = params.get('view') || ListViewType.Tiles;\r\n //console.log('route changes ', this.view);\r\n\r\n // if (params.get('search') !== this.search) {\r\n // this.searchChanged(params.get('search'));\r\n // }\r\n\r\n // const page = +(params.get('page') || 1);\r\n // if (page !== this.page) {\r\n // this.page = page;\r\n // }\r\n\r\n // const size = +(params.get('pagesize') || 20);\r\n // if (this.pageSize !== size) {\r\n // this.pageSize = size;\r\n // }\r\n\r\n // if (params.get('search') !== this.search) {\r\n // this.search = params.get('search');\r\n // }\r\n\r\n // if (params.get('sort') !== this.sort) {\r\n // this.sort = params.get('sort');\r\n // }\r\n\r\n // if (params.get('sortdir') !== this.sortdir) {\r\n // this.sortdir = params.get('sortdir');\r\n // }\r\n\r\n });\r\n\r\n // just to sync params in query\r\n this.setRouteParams(true);\r\n this.load();\r\n }\r\n\r\n private setRouteParams(locationChange: boolean = false): void {\r\n this.router$.navigate([], {\r\n relativeTo: this.route$, queryParams: {\r\n view: this.view,\r\n page: this.page,\r\n pagesize: this.pageSize,\r\n search: this.search,\r\n sort: this.sort,\r\n dir: this.sortdir\r\n }, queryParamsHandling: 'merge', skipLocationChange: locationChange\r\n });\r\n }\r\n\r\n public actionHandler($event: ViewAction): void {\r\n //console.log('BaseListComponent actionHandler', $event);\r\n if ($event.key === 'refresh') {\r\n this.refresh();\r\n }\r\n }\r\n\r\n private load(): void {\r\n //console.log('BaseListComponent LOAD');\r\n this.count = 0;\r\n this.items = null;\r\n this.loadItems().subscribe(result => {\r\n this.count = result ? result.count : 0;\r\n this.items = result?.items;\r\n this.updateHeaderMeta();\r\n });\r\n }\r\n\r\n private updateHeaderMeta(): void {\r\n const count = this.metaItems?.filter(m => m.key === 'count')[0];\r\n if (count) {\r\n count.text = `${this.count} αποτελέσματα`;\r\n }\r\n }\r\n\r\n public abstract loadItems(): Observable<IResultSet<T> | null | undefined>;\r\n\r\n public clear(): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public refresh(): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public pageChanged(page: number): void {\r\n if(this.page !== page) {\r\n this.page = page;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n }\r\n\r\n public pageSizeChanged(pageSize: number): void {\r\n if(this.pageSize !== pageSize) {\r\n this.pageSize = pageSize;\r\n this.page = 1;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortChanged(sort: string): void {\r\n //console.log('base-list sortChanged', sort);\r\n if (this.sort !== sort) {\r\n this.page = 1;\r\n this.sort = sort;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortdirChanged(sortdir: string): void {\r\n if (this.sortdir !== sortdir) {\r\n this.page = 1;\r\n this.sortdir = sortdir;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public searchChanged(searchText: string | null): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = searchText;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n}\r\n","import { SidePaneOverlayType, SidePaneSize } from './../../types';\r\nimport { Subscription } from 'rxjs';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Component, Input, OnInit, OnDestroy, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-pane',\r\n templateUrl: './side-pane.component.html',\r\n})\r\nexport class SidePaneComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('visible') showPane = false;\r\n public sizeContainerStyle = 'side-pane-box-size';\r\n public overlayStyle = 'side-pane-overlay';\r\n constructor(\r\n private router: Router,\r\n @Inject(DOCUMENT) private document: any\r\n ) {}\r\n\r\n ngOnDestroy(): void {}\r\n\r\n ngOnInit(): void {}\r\n\r\n public onSidePaneActivated(component: any): void {\r\n this.document.body.classList.add('modal-active');\r\n let sizeStyleSuffix = '';\r\n const state = this.router.getCurrentNavigation()?.extras.state;\r\n if (state) {\r\n if (state.paneSize) {\r\n if (state.paneSize === SidePaneSize.Small25) {\r\n sizeStyleSuffix = '-25';\r\n } else if (state.paneSize === SidePaneSize.Medium50) {\r\n sizeStyleSuffix = '-50';\r\n } else if (state.paneSize === SidePaneSize.Large75) {\r\n sizeStyleSuffix = '-75';\r\n }\r\n }\r\n if (state.paneOverlay) {\r\n if (state.paneOverlay === SidePaneOverlayType.None) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-0';\r\n } else if (state.paneOverlay === SidePaneOverlayType.Dark) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-50';\r\n } else {\r\n this.overlayStyle = 'side-pane-overlay';\r\n }\r\n }\r\n }\r\n this.sizeContainerStyle = `side-pane-box-size${sizeStyleSuffix}`;\r\n console.log(\r\n 'SidePaneComponent:activateRoute.data',\r\n 'calculated container style: ',\r\n this.sizeContainerStyle,\r\n 'overlay type: ',\r\n this.overlayStyle\r\n );\r\n this.showPane = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.document.body.classList.remove('modal-active');\r\n this.showPane = false;\r\n }\r\n}\r\n","import { AvatarInitialsComponent } from './controls/avatar-initials/avatar-initials.component';\r\nimport { ToasterService } from './services/toaster.service';\r\nimport { ToasterComponent } from './controls/toaster/toaster.component';\r\nimport { ToasterContainerComponent } from './controls/toaster/toaster-container.component';\r\nimport { DatepickerComponent } from './controls/date-picker/date-picker.component';\r\nimport { SidePaneComponent } from './controls/side-pane/side-pane.component';\r\nimport { ListDetailsSectionComponent } from './controls/list-view/list-details-section.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { UnauthorizedComponent } from './pages/http-status/unauthorized/unauthorized.component';\r\nimport { PageNotFoundComponent } from './pages/http-status/page-not-found/page-not-found.component';\r\nimport { ErrorComponent } from './pages/http-status/error/error.component';\r\nimport { LoggedOutComponent } from './pages/auth/logged-out/logged-out.component';\r\nimport { AuthCallbackComponent } from './pages/auth/auth-callback/auth-callback.component';\r\nimport { IndiceAuthModule } from '@indice/ng-auth';\r\nimport { SkeletonLoaderComponent } from './controls/skeleton-loader/skeleton-loader.component';\r\nimport { ListTileComponent } from './controls/list-view/list-tile.component';\r\nimport { ListColumnComponent } from './controls/list-view/list-column.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { DropDownMenuComponent } from './controls/drop-down-menu/drop-down-menu.component';\r\nimport { ListViewComponent } from './controls/list-view/list-view.component';\r\nimport { PagerComponent } from './controls/pager/pager.component';\r\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\r\nimport { ShellFooterComponent } from './layouts/shell/shell-footer/shell-footer.component';\r\nimport { ShellHeaderComponent } from './layouts/shell/shell-header/shell-header.component';\r\nimport { ShellLayoutComponent } from './layouts/shell/shell-layout/shell-layout.component';\r\nimport { FormLayoutComponent } from './layouts/views/form-layout/form-layout.component';\r\nimport { ModelViewLayoutComponent } from './layouts/views/model-view-layout/model-view-layout.component';\r\nimport { SideViewLayoutComponent } from './layouts/views/side-view-layout/side-view-layout.component';\r\nimport { ViewLayoutComponent } from './layouts/views/view-layout/view-layout.component';\r\nimport { AuthRenewComponent } from './pages/auth/auth-renew/auth-renew.component';\r\nimport { AddressPipe } from './pipes/address.pipe';\r\nimport { DurationFormatPipe } from './pipes/duration-format.pipe';\r\nimport { CollapsiblePanelComponent } from './controls/collapsible-panel/collapsible-panel.component';\r\nimport { KpiTileComponent } from './controls/kpi-tile/kpi-tile.component';\r\nimport { DynamicComponentHostDirective } from './directives/dynamic-component-host.directive';\r\nimport { ListViewEmptyStateComponent } from './controls/list-view/list-view-empty-state.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n // diectives\r\n ClickOutsideDirective,\r\n DynamicComponentHostDirective,\r\n // controls\r\n DropDownMenuComponent,\r\n PagerComponent,\r\n ListViewComponent,\r\n ListColumnComponent,\r\n ListTileComponent,\r\n ListDetailsSectionComponent,\r\n ListViewEmptyStateComponent,\r\n SkeletonLoaderComponent,\r\n CollapsiblePanelComponent,\r\n KpiTileComponent,\r\n SidePaneComponent,\r\n DatepickerComponent,\r\n AvatarInitialsComponent,\r\n // Toaster\r\n ToasterContainerComponent,\r\n ToasterComponent,\r\n // shell layout\r\n ShellLayoutComponent,\r\n ShellHeaderComponent,\r\n ShellFooterComponent,\r\n // view layouts\r\n ViewLayoutComponent,\r\n SideViewLayoutComponent,\r\n ModelViewLayoutComponent,\r\n FormLayoutComponent,\r\n // pages (common)\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n LoggedOutComponent,\r\n ErrorComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n // pipes\r\n AddressPipe,\r\n DurationFormatPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n IndiceAuthModule\r\n ],\r\n exports: [\r\n ClickOutsideDirective,\r\n DropDownMenuComponent,\r\n PagerComponent,\r\n ListViewComponent,\r\n ListColumnComponent,\r\n ListTileComponent,\r\n ListDetailsSectionComponent,\r\n ListViewEmptyStateComponent,\r\n KpiTileComponent,\r\n SkeletonLoaderComponent,\r\n ShellLayoutComponent,\r\n ShellHeaderComponent,\r\n ShellFooterComponent,\r\n ViewLayoutComponent,\r\n SideViewLayoutComponent,\r\n ModelViewLayoutComponent,\r\n FormLayoutComponent,\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n LoggedOutComponent,\r\n ErrorComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n AddressPipe,\r\n DurationFormatPipe,\r\n CollapsiblePanelComponent,\r\n SidePaneComponent,\r\n DatepickerComponent,\r\n ToasterContainerComponent,\r\n ToasterComponent,\r\n AvatarInitialsComponent\r\n ]\r\n})\r\nexport class IndiceComponentsModule {\r\n // tslint:disable-next-line:typedef\r\n static forRoot() {\r\n return {\r\n ngModule: IndiceComponentsModule,\r\n providers: [ToasterService]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of @indice/ng-components\r\n */\r\n\r\n// directives\r\nexport * from './lib/directives/click-outside.directive';\r\n\r\n// controls\r\nexport * from './lib/controls/drop-down-menu/drop-down-menu.component';\r\nexport * from './lib/controls/pager/pager.component';\r\nexport * from './lib/controls/list-view/list-view.component';\r\nexport * from './lib/controls/list-view/list-column.component';\r\nexport * from './lib/controls/list-view/list-tile.component';\r\nexport * from './lib/controls/list-view/list-details-section.component';\r\nexport * from './lib/controls/list-view/list-view-empty-state.component';\r\nexport * from './lib/controls/skeleton-loader/skeleton-loader.component';\r\nexport * from './lib/controls/collapsible-panel/collapsible-panel.component';\r\nexport * from './lib/controls/kpi-tile/kpi-tile.component';\r\nexport * from './lib/controls/date-picker/date-picker.component';\r\nexport * from './lib/controls/toaster/toaster-container.component';\r\nexport * from './lib/controls/toaster/toaster.component';\r\nexport * from './lib/controls/avatar-initials/avatar-initials.component';\r\n\r\n// shell layout\r\nexport * from './lib/layouts/shell/shell-layout/shell-layout.component';\r\nexport * from './lib/layouts/shell/shell-header/shell-header.component';\r\nexport * from './lib/layouts/shell/shell-footer/shell-footer.component';\r\n\r\n// view layouts\r\nexport * from './lib/layouts/views/view-layout/view-layout.component';\r\nexport * from './lib/layouts/views/model-view-layout/model-view-layout.component';\r\nexport * from './lib/layouts/views/side-view-layout/side-view-layout.component';\r\nexport * from './lib/layouts/views/form-layout/form-layout.component';\r\n\r\n// pages\r\nexport * from './lib/pages/auth/auth-callback/auth-callback.component';\r\nexport * from './lib/pages/auth/auth-renew/auth-renew.component';\r\nexport * from './lib/pages/auth/logged-out/logged-out.component';\r\nexport * from './lib/pages/http-status/error/error.component';\r\nexport * from './lib/pages/http-status/page-not-found/page-not-found.component';\r\nexport * from './lib/pages/http-status/unauthorized/unauthorized.component';\r\n\r\n// pipes\r\nexport * from './lib/pipes/address.pipe';\r\nexport * from './lib/pipes/duration-format.pipe';\r\n\r\n// common stuff (tokens, types, helper classes)\r\nexport * from './lib/tokens';\r\nexport * from './lib/types';\r\nexport * from './lib/icons';\r\nexport * from './lib/helpers/base-list.component';\r\n\r\n// services\r\nexport * from './lib/services/component-loader.service';\r\nexport * from './lib/services/toaster.service';\r\n\r\nexport * from './lib/ng-components.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {SidePaneComponent as ɵb} from './lib/controls/side-pane/side-pane.component';\nexport {DynamicComponentHostDirective as ɵa} from './lib/directives/dynamic-component-host.directive';"],"names":["EventEmitter","isPlatformBrowser","Directive","ElementRef","NgZone","Inject","PLATFORM_ID","Input","Output","Component","SCREEN_SIZE","ToastType","SidePaneSize","SidePaneOverlayType","Router","ContentChild","TemplateRef","ContentChildren","NG_VALUE_ACCESSOR","forwardRef","ViewChild","BehaviorSubject","filter","Injectable","InjectionToken","ComponentFactoryResolver","ViewContainerRef","ActivationStart","DOCUMENT","Location","ViewChildren","router","NavigationStart","AuthService","fromEvent","map","debounceTime","distinctUntilChanged","ActivatedRoute","Pipe","NgModule","CommonModule","RouterModule","IndiceAuthModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"indice-ng-components.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/ng-components/src/lib/directives/click-outside.directive.ts","../../../projects/ng-components/src/lib/controls/drop-down-menu/drop-down-menu.component.ts","../../../projects/ng-components/src/lib/icons.ts","../../../projects/ng-components/src/lib/types.ts","../../../projects/ng-components/src/lib/controls/pager/pager.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-tile.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-column.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-details-section.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view.component.ts","../../../projects/ng-components/src/lib/controls/list-view/list-view-empty-state.component.ts","../../../projects/ng-components/src/lib/controls/skeleton-loader/skeleton-loader.component.ts","../../../projects/ng-components/src/lib/controls/collapsible-panel/collapsible-panel.component.ts","../../../projects/ng-components/src/lib/controls/kpi-tile/kpi-tile.component.ts","../../../projects/ng-components/src/lib/controls/date-picker/date-picker.component.ts","../../../projects/ng-components/src/lib/services/toaster.service.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster-container.component.ts","../../../projects/ng-components/src/lib/controls/toaster/toaster.component.ts","../../../projects/ng-components/src/lib/controls/avatar-initials/avatar-initials.component.ts","../../../projects/ng-components/src/lib/controls/toggle/toggle.component.ts","../../../projects/ng-components/src/lib/tokens.ts","../../../projects/ng-components/src/lib/services/component-loader.service.ts","../../../projects/ng-components/src/lib/directives/dynamic-component-host.directive.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-layout/shell-layout.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-header/shell-header.component.ts","../../../projects/ng-components/src/lib/layouts/shell/shell-footer/shell-footer.component.ts","../../../projects/ng-components/src/lib/layouts/views/view-layout/view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/model-view-layout/model-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/side-view-layout/side-view-layout.component.ts","../../../projects/ng-components/src/lib/layouts/views/form-layout/form-layout.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-callback/auth-callback.component.ts","../../../projects/ng-components/src/lib/pages/auth/auth-renew/auth-renew.component.ts","../../../projects/ng-components/src/lib/pages/auth/logged-out/logged-out.component.ts","../../../projects/ng-components/src/lib/pages/http-status/error/error.component.ts","../../../projects/ng-components/src/lib/pages/http-status/page-not-found/page-not-found.component.ts","../../../projects/ng-components/src/lib/pages/http-status/unauthorized/unauthorized.component.ts","../../../projects/ng-components/src/lib/pipes/address.pipe.ts","../../../projects/ng-components/src/lib/pipes/duration-format.pipe.ts","../../../projects/ng-components/src/lib/helpers/base-list.component.ts","../../../projects/ng-components/src/lib/controls/side-pane/side-pane.component.ts","../../../projects/ng-components/src/lib/ng-components.module.ts","../../../projects/ng-components/src/public-api.ts","../../../projects/ng-components/src/indice-ng-components.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","//\r\n// https://github.com/arkon/ng-click-outside\r\n// the project is inactive - so imoved the directive code in our project\r\n//\r\nimport {\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Inject,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n PLATFORM_ID,\r\n SimpleChanges,\r\n NgZone,\r\n} from '@angular/core';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n// tslint:disable-next-line:directive-selector\r\n@Directive({ selector: '[clickOutside]' })\r\nexport class ClickOutsideDirective implements OnInit, OnChanges, OnDestroy {\r\n\r\n @Input() clickOutsideEnabled = true;\r\n\r\n @Input() attachOutsideOnClick = false;\r\n @Input() delayClickOutsideInit = false;\r\n @Input() emitOnBlur = false;\r\n\r\n @Input() exclude = '';\r\n @Input() excludeBeforeClick = false;\r\n\r\n @Input() clickOutsideEvents = '';\r\n\r\n @Output() clickOutside: EventEmitter<Event> = new EventEmitter<Event>();\r\n\r\n // tslint:disable-next-line:variable-name\r\n private _nodesExcluded: Array<HTMLElement> = [];\r\n // tslint:disable-next-line:variable-name\r\n private _events: Array<string> = ['click'];\r\n\r\n constructor(\r\n // tslint:disable-next-line:variable-name\r\n private _el: ElementRef,\r\n // tslint:disable-next-line:variable-name\r\n private _ngZone: NgZone,\r\n @Inject(PLATFORM_ID) private platformId: any) {\r\n this._initOnClickBody = this._initOnClickBody.bind(this);\r\n this._onClickBody = this._onClickBody.bind(this);\r\n this._onWindowBlur = this._onWindowBlur.bind(this);\r\n }\r\n\r\n ngOnInit(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._init();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n this._removeClickOutsideListener();\r\n this._removeAttachOutsideOnClickListener();\r\n this._removeWindowBlurListener();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (!isPlatformBrowser(this.platformId)) { return; }\r\n\r\n // tslint:disable-next-line:no-string-literal\r\n if (changes['attachOutsideOnClick'] || changes['exclude'] || changes['emitOnBlur']) {\r\n this._init();\r\n }\r\n }\r\n\r\n private _init(): void {\r\n if (this.clickOutsideEvents !== '') {\r\n this._events = this.clickOutsideEvents.split(',').map(e => e.trim());\r\n }\r\n\r\n this._excludeCheck();\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._initAttachOutsideOnClickListener();\r\n } else {\r\n this._initOnClickBody();\r\n }\r\n\r\n if (this.emitOnBlur) {\r\n this._initWindowBlurListener();\r\n }\r\n }\r\n\r\n private _initOnClickBody(): void {\r\n if (this.delayClickOutsideInit) {\r\n setTimeout(this._initClickOutsideListener.bind(this));\r\n } else {\r\n this._initClickOutsideListener();\r\n }\r\n }\r\n\r\n private _excludeCheck(): void {\r\n if (this.exclude) {\r\n try {\r\n const nodes = Array.from(document.querySelectorAll(this.exclude)) as Array<HTMLElement>;\r\n if (nodes) {\r\n this._nodesExcluded = nodes;\r\n }\r\n } catch (err) {\r\n console.error('[ng-click-outside] Check your exclude selector syntax.', err);\r\n }\r\n }\r\n }\r\n\r\n private _onClickBody(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n if (this.excludeBeforeClick) {\r\n this._excludeCheck();\r\n }\r\n\r\n if (!this._el.nativeElement.contains(ev.target) && !this._shouldExclude(ev.target)) {\r\n this._emit(ev);\r\n\r\n if (this.attachOutsideOnClick) {\r\n this._removeClickOutsideListener();\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Resolves problem with outside click on iframe\r\n * @see https://github.com/arkon/ng-click-outside/issues/32\r\n */\r\n private _onWindowBlur(ev: Event): void {\r\n setTimeout(() => {\r\n if (!document.hidden) {\r\n this._emit(ev);\r\n }\r\n });\r\n }\r\n\r\n private _emit(ev: Event): void {\r\n if (!this.clickOutsideEnabled) { return; }\r\n\r\n this._ngZone.run(() => this.clickOutside.emit(ev));\r\n }\r\n\r\n private _shouldExclude(target: any): boolean {\r\n // tslint:disable-next-line:prefer-const\r\n for (let excludedNode of this._nodesExcluded) {\r\n if (excludedNode.contains(target)) {\r\n return true;\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n private _initClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.addEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _removeClickOutsideListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => document.removeEventListener(e, this._onClickBody));\r\n });\r\n }\r\n\r\n private _initAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.addEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _removeAttachOutsideOnClickListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n this._events.forEach(e => this._el.nativeElement.removeEventListener(e, this._initOnClickBody));\r\n });\r\n }\r\n\r\n private _initWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.addEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n\r\n private _removeWindowBlurListener(): void {\r\n this._ngZone.runOutsideAngular(() => {\r\n window.removeEventListener('blur', this._onWindowBlur);\r\n });\r\n }\r\n}\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-drop-down-menu',\r\n templateUrl: './drop-down-menu.component.html'\r\n})\r\nexport class DropDownMenuComponent implements OnInit, OnChanges {\r\n @Input() options: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('selected') selectedValue: any | null = null;\r\n @Input() multiple = false;\r\n\r\n private selectedOption$: MenuOption | null = null;\r\n public get selectedOption(): MenuOption | null {\r\n return this.selectedOption$;\r\n }\r\n public set selectedOption(option: MenuOption | null) {\r\n this.selectedOption$ = option;\r\n this.selectedValue = option ? option.value : null;\r\n this.expanded = false;\r\n }\r\n\r\n @Output() selectedChange: EventEmitter<any> = new EventEmitter<any>();\r\n @Output() selectedChanged: EventEmitter<any> = new EventEmitter<any>();\r\n\r\n private expanded$ = false;\r\n public get expanded(): boolean {\r\n return this.expanded$;\r\n }\r\n public set expanded(value: boolean) {\r\n this.expanded$ = value;\r\n }\r\n constructor() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (this.options && this.options.length > 0 && this.selectedValue !== null && this.selectedValue !== undefined) {\r\n this.selectedOption$ = this.options.filter(o => o.value === this.selectedValue)[0];\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public isSelected(option: MenuOption): boolean {\r\n return option != null && this.selectedValue != null && option.value === this.selectedValue;\r\n }\r\n\r\n public onClickOutside($event: any): void {\r\n this.expanded = false;\r\n }\r\n\r\n public selectOption(option: MenuOption): void {\r\n this.selectedOption = option;\r\n this.selectedChange.emit(option.value);\r\n this.selectedChanged.emit(option.value);\r\n }\r\n\r\n}\r\n","export class Icons {\r\n // https://uifabricicons.azurewebsites.net/\r\n public static Dashboard = `ms-Icon ms-Icon--HomeGroup `;\r\n public static Locations = `ms-Icon ms-Icon--MapPin `;\r\n public static ChargePoints = `ms-Icon ms-Icon--ChatBot `;\r\n public static Transations = `ms-Icon ms-Icon--PaymentCard `;\r\n public static Badges = `ms-Icon ms-Icon--IDBadge `;\r\n\r\n public static Information = `ms-Icon ms-Icon--Info`;\r\n public static Refresh = `ms-Icon ms-Icon--Refresh`;\r\n public static Search = `ms-Icon ms-Icon--Search`;\r\n public static Add = `ms-Icon ms-Icon--Add`;\r\n public static Filter = `ms-Icon ms-Icon--Filter`;\r\n\r\n public static TilesView = `ms-Icon ms-Icon--AppIconDefault`;\r\n public static TableView = `ms-Icon ms-Icon--Table`;\r\n public static MapView = `ms-Icon ms-Icon--MapPin`;\r\n public static EntryView = `ms-Icon ms-Icon--EntryView`;\r\n\r\n public static Separator = `ms-Icon ms-Icon--Separator text-white`;\r\n\r\n public static ItemsCount = 'ms-Icon ms-Icon--Boards';\r\n\r\n public static Heart = 'ms-Icon ms-Icon--Heart';\r\n public static HeartBroken = 'ms-Icon ms-Icon--HeartBroken';\r\n public static DateTime = 'ms-Icon ms-Icon--ReminderTime';\r\n\r\n public static Expand = 'ms-Icon ms-Icon--ChevronDown';\r\n public static Collapse = 'ms-Icon ms-Icon--ChevronUp';\r\n\r\n public static SortAsc = 'ms-Icon ms-Icon--Ascending';\r\n public static SortDesc = 'ms-Icon ms-Icon--Descending';\r\n\r\n public static Details = ' ms-Icon ms-Icon--AccountActivity'\r\n}\r\n","export interface IAppLinks {\r\n public: NavLink[];\r\n main: NavLink[];\r\n profile: NavLink[];\r\n profileActions: NavLink[];\r\n legal: NavLink[];\r\n brand: NavLink[];\r\n}\r\n\r\n\r\nexport class NavLink {\r\n constructor(text: string, path: string, exact: boolean = false, external: boolean = false, icon?: string) {\r\n this.text = text;\r\n this.path = path;\r\n this.exact = exact;\r\n this.external = external;\r\n this.icon = icon;\r\n }\r\n public text: string;\r\n public path: string;\r\n public exact: boolean;\r\n public external: boolean;\r\n public icon: string | undefined;\r\n}\r\n\r\nexport class ExternalNavLink extends NavLink {\r\n constructor(text: string, path: string, icon?: string) {\r\n super(text, path, true, true, icon);\r\n }\r\n}\r\n\r\nexport class FragmentNavLink extends NavLink {\r\n constructor(text: string, path: string, icon?: string) {\r\n super(text, path, true, true, icon);\r\n }\r\n}\r\n\r\nexport class ViewAction {\r\n public type: string;\r\n public key: string | null;\r\n public param: any;\r\n public icon: string;\r\n public tooltip: string | null;\r\n\r\n constructor(type: string, key: string | null, param: any, icon: string, tooltip: string | null) {\r\n this.type = type;\r\n this.key = key;\r\n this.param = param;\r\n this.icon = icon;\r\n this.tooltip = tooltip;\r\n }\r\n}\r\n\r\nexport class ListViewType {\r\n public static Tiles = 'tiles';\r\n public static Table = 'table';\r\n public static Map = 'map';\r\n}\r\n\r\nexport class RouterViewAction extends ViewAction {\r\n public outlet: string | null = null;\r\n public link: string | null = null;\r\n constructor(icon: string, link: string, outlet: string | null, tooltip: string | null) {\r\n super('router-link', null, null, icon, tooltip);\r\n this.outlet = outlet;\r\n this.link = link;\r\n }\r\n}\r\n\r\n\r\nexport class SwitchViewAction extends ViewAction {\r\n constructor(view: string, icon: string, tooltip: string | null) {\r\n super('switch-view', null, view, icon, tooltip);\r\n }\r\n}\r\n\r\nexport interface IResultSet<T> {\r\n count: number;\r\n items: T[];\r\n}\r\n\r\nexport class HeaderMetaItem {\r\n public key: string | null = null;\r\n public icon: string | null = null;\r\n public text: string | null = null;\r\n}\r\n\r\nexport class MenuOption {\r\n constructor(text: string, value: any, description?: string, data?: any, icon?: string) {\r\n this.text = text;\r\n this.value = value;\r\n this.description = description;\r\n this.data = data;\r\n this.icon = icon;\r\n }\r\n public text: string;\r\n public value: any;\r\n public description: string | undefined;\r\n public data: any | undefined;\r\n public icon: string | undefined;\r\n}\r\n\r\nexport interface IAddress {\r\n id?: string;\r\n street?: string | null;\r\n streetNumber?: string | null;\r\n city?: string | null;\r\n region?: string | null;\r\n postalCode?: string | null;\r\n country?: string | null;\r\n}\r\n\r\nexport interface IShellConfig {\r\n appLogo: string;\r\n appLogoAlt: string;\r\n showHeader: boolean;\r\n customHeaderComponent?: any;\r\n showFooter: boolean;\r\n customFooterComponent?: any;\r\n fluid: boolean;\r\n}\r\n\r\nexport class DefaultShellConfig implements IShellConfig {\r\n appLogo = 'https://tailwindui.com/img/logos/workflow-mark.svg?color=white';\r\n appLogoAlt = 'your app name here';\r\n showHeader = true;\r\n showFooter = true;\r\n fluid = false;\r\n}\r\n\r\nexport enum SCREEN_SIZE {\r\n XS,\r\n SM,\r\n MD,\r\n LG,\r\n XL\r\n}\r\n\r\nexport interface IScreenSize {\r\n id: SCREEN_SIZE;\r\n name: string;\r\n css: string;\r\n}\r\n\r\nexport enum ToastType {\r\n Info = 'info',\r\n Success = 'success',\r\n Error = 'error',\r\n Warning = 'warning'\r\n}\r\n\r\nexport const NULL_TOAST = { title : '_____NULL_____' } as Toast;\r\n\r\nexport interface Toast {\r\n type: ToastType;\r\n title: string;\r\n body: string;\r\n delay: number;\r\n}\r\n\r\nexport enum SidePaneSize {\r\n Default = '',\r\n Small25 = '25%',\r\n Medium50 = '50%',\r\n Large75 = '75%'\r\n}\r\n\r\nexport enum SidePaneOverlayType {\r\n Default = '',\r\n None = '-opacity-0',\r\n Light = '',\r\n Dark = '-opacity-50'\r\n}\r\n\r\n","import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Icons } from '../../icons';\r\nimport { MenuOption } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-pager',\r\n templateUrl: './pager.component.html'\r\n})\r\nexport class PagerComponent implements OnInit, OnChanges {\r\n // PAGING\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [\r\n new MenuOption('10', 10),\r\n new MenuOption('20', 20),\r\n new MenuOption('30', 30),\r\n new MenuOption('50', 50),\r\n new MenuOption('100', 100)\r\n ];\r\n public pages: MenuOption[] = [];\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n public canPreviousPage = false;\r\n public canNextPage = false;\r\n\r\n // SORTING\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort') sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = 'desc';\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n public sortdirIcon = Icons.SortDesc;\r\n\r\n constructor(private router: Router) { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.calcPages();\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n private calcPages(): void {\r\n this.pages = [];\r\n if (this.count && this.count > 0) {\r\n const pageCount = this.count / this.pageSize;\r\n for (let i = 0; i < pageCount; i++) {\r\n this.pages.push(new MenuOption(i + 1 + '', i + 1));\r\n }\r\n }\r\n this.canPreviousPage = this.page > 1;\r\n this.canNextPage = this.page < this.pages.length;\r\n //console.log('calcPages', this.page, this.canPreviousPage, this.canNextPage);\r\n }\r\n\r\n public nextPage(): void {\r\n const next = this.page + 1;\r\n this.gotoPage(next);\r\n }\r\n\r\n public previousPage(): void {\r\n const previous = this.page - 1;\r\n this.gotoPage(previous);\r\n }\r\n\r\n public gotoPage(page: number): void {\r\n this.page = page;\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public pageSizeOptionChanged(pageSize: number): void {\r\n this.pageSizeChanged.emit(pageSize);\r\n this.calcPages();\r\n }\r\n\r\n public pageOptionChanged(page: number): void {\r\n this.pageChanged.emit(page);\r\n this.calcPages();\r\n }\r\n\r\n public sortOptionChanged(sort: string): void {\r\n this.sortChanged.emit(sort);\r\n }\r\n\r\n public toggleSortdir(): void {\r\n //console.log('toggleSortdir');\r\n let sortdir = 'desc';\r\n if (this.sortdir === 'desc') {\r\n sortdir = 'asc';\r\n this.sortdirIcon = Icons.SortAsc;\r\n } else {\r\n sortdir = 'desc';\r\n this.sortdirIcon = Icons.SortDesc;\r\n }\r\n this.sortdirChanged.emit(sortdir);\r\n }\r\n\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-tile', template: '<ng-content></ng-content>' })\r\nexport class ListTileComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({selector: 'lib-list-column', template: '<ng-content></ng-content>'})\r\nexport class ListColumnComponent {\r\n @Input() title: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('full-width') fullWidth = false;\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() { }\r\n}\r\n","import { Component, ContentChild, Input, OnInit, TemplateRef } from '@angular/core';\r\n\r\n@Component({ selector: 'lib-list-details-section', template: '<ng-content></ng-content>' })\r\nexport class ListDetailsSectionComponent{\r\n @ContentChild(TemplateRef) template: any | null = null;\r\n constructor() {\r\n }\r\n}\r\n","import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, QueryList, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { MenuOption, ListViewType } from '../../types';\r\nimport { ListTileComponent } from './list-tile.component';\r\nimport { ListColumnComponent } from './list-column.component';\r\nimport { ListDetailsSectionComponent } from './list-details-section.component';\r\nimport { Icons } from '../../icons';\r\n\r\n@Component({\r\n selector: 'lib-list-view',\r\n templateUrl: './list-view.component.html'\r\n})\r\nexport class ListViewComponent implements OnChanges {\r\n public expandIcon = Icons.Expand;\r\n public collapseIcon = Icons.Collapse;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-pager') showPager = true;\r\n // DATA SOURCE!\r\n @Input() items: any[] | null | undefined;\r\n\r\n // PAGING - pass through for pager component\r\n @Input() count: number | null = null;\r\n @Input() page = 1;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size') pageSize = 20;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('page-size-options') pageSizeOptions: MenuOption[] = [];\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() pageSizeChanged: EventEmitter<number> = new EventEmitter<number>();\r\n @Output() detailsOpened: EventEmitter<{item: any, open: boolean}> = new EventEmitter<{item: any, open: boolean}>();\r\n\r\n public tableViewSupported = false;\r\n private multipleFullWidth = false;\r\n public fullWidthTHClass = 'list-view-th-full';\r\n public fullWidthTDClass = 'list-view-td-full';\r\n public tilesViewSupported = false;\r\n public detailsSectionSupported = false;\r\n\r\n @Input() view = ListViewType.Table;\r\n\r\n // SORTING - pass through for pager component\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-options') sortOptions: MenuOption[] = [];\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort') sort: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sort-dir') sortdir: string | null = '-';\r\n @Output() sortChanged: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() sortdirChanged: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n // COLUMNS\r\n public columns: any[] = [];\r\n @ContentChildren(ListColumnComponent, { read: ListColumnComponent })\r\n set cols(refs: QueryList<ListColumnComponent>) {\r\n this.columns = refs?.toArray();\r\n if (this.columns && this.columns.length > 0) {\r\n this.tableViewSupported = true;\r\n }\r\n this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;\r\n this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';\r\n this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';\r\n }\r\n\r\n public tilesDeckClass = 'cards-deck-4';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('tiles-count') tilesCount = 4;\r\n\r\n public tileTemplate: any | null | undefined = null;\r\n @ContentChild(ListTileComponent, {read: ListTileComponent})\r\n set tiles(ref: ListTileComponent) {\r\n this.tileTemplate = ref;\r\n if (this.tileTemplate) {\r\n this.tilesViewSupported = true;\r\n }\r\n }\r\n\r\n public detailsTemplate: any | null | undefined = null;\r\n @ContentChild(ListDetailsSectionComponent, {read: ListDetailsSectionComponent})\r\n set details(ref: ListDetailsSectionComponent) {\r\n this.detailsTemplate = ref;\r\n if (this.detailsTemplate) {\r\n this.detailsSectionSupported = true;\r\n }\r\n }\r\n\r\n constructor() { }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const tilesCountChange = changes['tiles-count'] || changes.tilesCount ;\r\n if (tilesCountChange) {\r\n this.setTilesDeckClass(tilesCountChange.currentValue);\r\n }\r\n }\r\n\r\n // events\r\n public emitPageChanged($event: number): void {\r\n this.pageChanged.emit($event);\r\n }\r\n\r\n public emitPageSizeChanged($event: number): void {\r\n this.pageSizeChanged.emit($event);\r\n }\r\n\r\n public emitSortChanged($event: string): void {\r\n this.sortChanged.emit($event);\r\n }\r\n public emitSortdirChanged($event: string): void {\r\n this.sortdirChanged.emit($event);\r\n }\r\n\r\n public toggleDetails(item: any): void {\r\n item.detailsExpanded = !item.detailsExpanded;\r\n this.detailsOpened.emit({ item, open: item.detailsExpanded });\r\n }\r\n\r\n // helpers\r\n private setTilesDeckClass(tiles: number): void {\r\n if ( tiles >= 1 && tiles <= 4 ) {\r\n this.tilesDeckClass = `cards-deck-${tiles}`;\r\n } else {\r\n this.tilesDeckClass = 'cards-deck-3';\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-list-view-empty-state',\r\n templateUrl: './list-view-empty-state.component.html'\r\n})\r\nexport class ListViewEmptyStateComponent implements OnInit {\r\n\r\n @Input() title = 'Δεν βρέθηκαν εγγραφές.';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle = 'Παρακαλώ αλλάξτε τα κριτήρια αναζήτησης σας ή ξεκινήστε προσθέτοντας μια νέα εγγραφή';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('new-item-label') newItemLabel = 'Νέα εγγραφή';\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-skeleton-loader',\r\n templateUrl: './skeleton-loader.component.html'\r\n})\r\nexport class SkeletonLoaderComponent implements OnInit {\r\n @Input() count = 5;\r\n @Input() type = 'tiles'; // 'large-tile', 'table'\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public counter(i: number): number[] {\r\n return new Array(i);\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-collapsible-panel',\r\n templateUrl: './collapsible-panel.component.html'\r\n})\r\nexport class CollapsiblePanelComponent implements OnInit {\r\n @Input() title: string | null = null;\r\n public visible = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-kpi-tile',\r\n templateUrl: './kpi-tile.component.html'\r\n})\r\nexport class KpiTileComponent implements OnInit {\r\n\r\n @Input() title: string | undefined = undefined;\r\n @Input() busy = false;\r\n @Input() kpi: any | undefined = undefined;\r\n // tslint:disable-next-line:no-output-rename\r\n @Output('tile-action') tileAction: EventEmitter<any> = new EventEmitter<any>();\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitTileAction($event: any): boolean {\r\n $event.preventDefault();\r\n $event.stopPropagation();\r\n this.tileAction.emit($event);\r\n return false;\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, forwardRef, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\n\r\n// freaksly simple date picker : https://tailwind-elements.com/docs/standard/forms/datepicker/\r\n@Component({\r\n selector: 'lib-date-picker',\r\n templateUrl: './date-picker.component.html',\r\n providers: [\r\n {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => DatepickerComponent),\r\n multi: true\r\n }\r\n ]\r\n})\r\nexport class DatepickerComponent implements OnInit, ControlValueAccessor {\r\n @Input() readonly: boolean = true;\r\n @Input() disabled: boolean = false;\r\n @Input('display-format') displayFormat: string | undefined = 'dd/MM/yyyy';\r\n @Input() placeholder: string | undefined = '';\r\n @Input() value: Date | undefined | null = null;\r\n @Output() valueChange: EventEmitter<Date> = new EventEmitter<Date>();\r\n @ViewChild('dateInput') dateInput: ElementRef | undefined;\r\n public showCalendar = false;\r\n public showYears = false;\r\n public monthNames = [\r\n 'Ιανουάριος',\r\n 'Φεβρουάριος',\r\n 'Μάρτιος',\r\n 'Απρίλιος',\r\n 'Μάϊος',\r\n 'Ιούνιος',\r\n 'Ιούλιος',\r\n 'Αύγουστος',\r\n 'Σεπτέμβριος',\r\n 'Οκτώβριος',\r\n 'Νοεμβριος',\r\n 'Δεκέμβριος',\r\n ];\r\n public dayNames = ['Κυρ', 'Δευ', 'Τρι', 'Τετ', 'Πεμ', 'Παρ', 'Σαβ'];\r\n\r\n public month: number = -1;\r\n public year: number = -1;\r\n public calendarDates: any[] = [];\r\n public calendarYears: any[] = [];\r\n public showCalendarYears: any[] = [];\r\n public blankDays: any[] = [];\r\n public calendarYearPage = 1;\r\n private yearsPerPage = 30;\r\n\r\n private onChange$: any | undefined = undefined;\r\n private onTouched$: any | undefined = undefined;\r\n\r\n ngOnInit(): void {\r\n let today = new Date();\r\n this.month = today.getMonth();\r\n this.year = today.getFullYear();\r\n this.calendarDates = [{ day: this.value, today: this.value, selected: this.value }];\r\n this.calendarYears = [{ year: this.value?.getFullYear(), today: this.value, selected: this.value }];\r\n const yearsArray = [];\r\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\r\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.value?.getFullYear() });\r\n }\r\n this.calendarYears = yearsArray;\r\n this.showCalendarYears = this.paginate(this.calendarYears, 1);\r\n this.calcDays();\r\n }\r\n\r\n public compareDates(date1: Date | undefined | null, day: number | null | undefined, year: number | null | undefined): boolean {\r\n if (!date1) {\r\n return false;\r\n }\r\n const d = new Date(year ?? this.year, this.month, day ?? this.value?.getDay());\r\n return date1.toDateString() === d.toDateString();\r\n };\r\n\r\n public selectDateValue(date: any): void {\r\n // This should be in UTC\r\n let selectedDate = new Date(this.year, this.month, date.day, 3, 0, 0, 0);\r\n this.value = selectedDate;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.showCalendar = false;\r\n }\r\n\r\n public selectYearValue(year: any): void {\r\n let selectedDate = new Date(year.year, 1, 1, 2, 0, 0, 0);\r\n this.year = year.year;\r\n this.value = selectedDate;\r\n this.valueChange.emit(this.value);\r\n if (this.onChange$) {\r\n this.onChange$(this.value);\r\n }\r\n this.updateDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n this.showYears = false;\r\n this.showCalendar = true;\r\n }\r\n\r\n public previousMonth(): void {\r\n if (this.month !== 0) {\r\n this.month = this.month - 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 11;\r\n this.year = this.year - 1;\r\n this.calcDays();\r\n }\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public nextMonth(): void {\r\n if (this.month !== 11) {\r\n this.month = this.month + 1;\r\n this.calcDays();\r\n } else {\r\n this.month = 0;\r\n this.year = this.year + 1;\r\n this.calcDays();\r\n }\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public previousYear(): void {\r\n this.showCalendarYears = this.paginate(\r\n this.calendarYears,\r\n this.calendarYearPage > 1 ? --this.calendarYearPage : 1);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public nextYear(): void {\r\n this.showCalendarYears = this.paginate(\r\n this.calendarYears,\r\n this.calendarYearPage <= this.calendarYears.length / this.yearsPerPage ? ++this.calendarYearPage : this.calendarYearPage);\r\n this.calcDays();\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public calcDays(): void {\r\n const daysInMonth = new Date(this.year, this.month + 1, 0).getDate();\r\n // find where to start calendar day of week\r\n const dayOfWeek = new Date(this.year, this.month).getDay();\r\n const blankdaysArray = [];\r\n for (var i = 1; i <= dayOfWeek; i++) {\r\n blankdaysArray.push(i);\r\n }\r\n\r\n const daysArray = [];\r\n const today = new Date();\r\n for (var i = 1; i <= daysInMonth; i++) {\r\n daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates(this.value, i, null) });\r\n }\r\n const yearsArray = [];\r\n for (let i = 1950; i <= today.getFullYear() + 2; i++) {\r\n yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.year });\r\n }\r\n this.calendarYears = yearsArray;\r\n this.blankDays = blankdaysArray;\r\n this.calendarDates = daysArray;\r\n }\r\n\r\n private updateDays(): void {\r\n const today = new Date();\r\n this.calendarDates.forEach(d => {\r\n d.today = this.compareDates(today, d, this.year);\r\n d.selected = this.compareDates(this.value, d, this.year);\r\n });\r\n }\r\n\r\n constructor() { }\r\n\r\n writeValue(obj: any): void {\r\n if (obj) {\r\n this.value = new Date(obj);\r\n this.month = this.value.getMonth();\r\n this.year = this.value.getFullYear();\r\n }\r\n }\r\n\r\n registerOnChange(fn: (_: any) => void): void {\r\n this.onChange$ = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched$ = fn;\r\n }\r\n\r\n public onBlur(event: any): void {\r\n if (this.onTouched$) {\r\n this.onTouched$();\r\n }\r\n }\r\n\r\n public paginate(array: any[], page_number: number): any[] {\r\n return array.slice((page_number - 1) * this.yearsPerPage, page_number * this.yearsPerPage);\r\n }\r\n\r\n public openYears() {\r\n this.showYears = !this.showYears;\r\n this.showCalendarYears = this.paginate(this.calendarYears, 1);\r\n this.calcDays();\r\n }\r\n\r\n public openCalendar() {\r\n this.showCalendar = !this.showCalendar\r\n this.calcDays();\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Toast, ToastType, NULL_TOAST } from '../types';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToasterService {\r\n\r\n private subject: BehaviorSubject<Toast>;\r\n public toast$: Observable<Toast>;\r\n\r\n constructor() {\r\n this.subject = new BehaviorSubject<Toast>(NULL_TOAST);\r\n this.toast$ = this.subject.asObservable()\r\n .pipe(filter( toast => toast !== null && toast.title !== NULL_TOAST.title ));\r\n }\r\n\r\n public show(type: ToastType, title?: string, body?: string, delay?: number): void {\r\n this.subject.next({ type, title, body, delay } as Toast);\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { ToasterService } from '../../services/toaster.service';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster-container',\r\n templateUrl: './toaster-container.component.html'\r\n})\r\nexport class ToasterContainerComponent implements OnInit {\r\n\r\n toasts: Toast[] = [];\r\n\r\n constructor(private toaster: ToasterService) { }\r\n\r\n ngOnInit(): void {\r\n this.toaster.toast$\r\n .subscribe(toast => {\r\n this.toasts = [toast, ...this.toasts];\r\n setTimeout(() => this.toasts.pop(), toast.delay || 6000);\r\n });\r\n }\r\n\r\n remove(index: number): void {\r\n this.toasts = this.toasts.slice(0, index).concat(this.toasts.slice(index + 1));\r\n }\r\n\r\n}\r\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Toast } from '../../types';\r\n\r\n@Component({\r\n selector: 'lib-toaster',\r\n templateUrl: './toaster.component.html'\r\n})\r\nexport class ToasterComponent implements OnInit {\r\n\r\n @Input() toast: Toast | undefined;\r\n @Input() i = 0;\r\n @Output() remove = new EventEmitter<number>();\r\n public isMobile = false;\r\n public closed = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n window.screen.width > 640 ? this.isMobile = false : this.isMobile = true;\r\n }\r\n\r\n public closeToast(index: number): void {\r\n this.closed = true;\r\n setTimeout(() => this.remove.emit(index), 100);\r\n }\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-avatar-initials',\r\n templateUrl: './avatar-initials.component.html'\r\n})\r\nexport class AvatarInitialsComponent implements OnInit {\r\n @Input()\r\n public name: string | null | undefined;\r\n @Input()\r\n public large = false;\r\n public initials?: string;\r\n public circleColor!: string;\r\n private colors = [\r\n '#EB7181', // red\r\n '#468547', // green\r\n '#FFD558', // yellow\r\n '#3670B2', // blue\r\n ];\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.createInititals();\r\n const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length));\r\n // assign this to a class if you want to randomly change background colors of the circle.\r\n this.circleColor = this.colors[randomIndex];\r\n }\r\n\r\n private createInititals(): void {\r\n if (this.name) {\r\n let initials = '';\r\n for (let i = 0; i < this.name.length; i++) {\r\n if (this.name.charAt(i) === ' ') {\r\n continue;\r\n }\r\n if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) {\r\n initials += this.name.charAt(i);\r\n if (initials.length === 2) {\r\n break;\r\n }\r\n }\r\n }\r\n this.initials = initials;\r\n }\r\n }\r\n}\r\n","import { Component, EventEmitter, forwardRef, Input, OnInit, Output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n@Component({\n selector: 'lib-toggle',\n templateUrl: './toggle.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleComponent),\n multi: true\n }\n ]\n})\nexport class ToggleComponent implements OnInit, ControlValueAccessor {\n @Input()\n public value: boolean | null | undefined;\n @Input()\n public disabled:boolean | null | undefined;\n @Output() valueChange: EventEmitter<Boolean> = new EventEmitter<Boolean>();\n\n private onChange$: any | undefined = undefined;\n private onTouched$: any | undefined = undefined;\n\n constructor() { }\n writeValue(obj: any): void {\n if(obj) {\n this.value = obj || false;\n }\n }\n registerOnChange(fn: any): void {\n this.onChange$ = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched$ = fn;\n }\n\n public onBlur(event: any): void {\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n\n ngOnInit(): void {\n }\n\n public changeValue(){\n this.value = !this.value;\n this.valueChange.emit(this.value);\n if(this.onChange$) {\n this.onChange$(this.value);\n }\n if(this.onTouched$) {\n this.onTouched$();\n }\n }\n}","import { InjectionToken } from '@angular/core';\r\nimport { IAppLinks, IShellConfig } from './types';\r\n\r\nexport const APP_LINKS = new InjectionToken<IAppLinks>('APP_LINKS');\r\nexport const SHELL_CONFIG = new InjectionToken<IShellConfig>('SHELL_CONFIG');\r\n","import { Injectable, ComponentFactoryResolver, ViewContainerRef } from '@angular/core';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ComponentLoaderService {\r\n constructor(private cfr: ComponentFactoryResolver) { }\r\n\r\n public loadComponent(vcr: ViewContainerRef, component: any): void {\r\n vcr.clear();\r\n const componentFactory = this.cfr.resolveComponentFactory(component);\r\n const componentRef = vcr.createComponent(componentFactory);\r\n // TL;TR Force change detection on this component, where change detection means force lifecycle hooks to run\r\n // In order to avoid NG0100: Expression has changed after it was checked\r\n // The above error is caused because the view is rendered before the lifecycle hooks are called,\r\n // resulting in bindind expression changes\r\n // A somewhat explanation here:\r\n // https://stackoverflow.com/questions/56427104/when-is-oninit-event-triggered-for-a-dynamically-loaded-angular-component\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n}\r\n","import { Directive, ViewContainerRef, Input } from '@angular/core';\r\n\r\n@Directive({ selector: '[appDynamicComponentHost]' })\r\nexport class DynamicComponentHostDirective {\r\n @Input() hostName: string = '';\r\n constructor(public viewContainerRef: ViewContainerRef) {}\r\n}","import { SHELL_CONFIG } from './../../../tokens';\r\nimport { IShellConfig, DefaultShellConfig } from './../../../types';\r\nimport { AfterViewInit, Component, OnInit, OnDestroy, Inject, ViewChildren, ViewContainerRef, QueryList } from '@angular/core';\r\nimport { DOCUMENT, Location } from '@angular/common';\r\nimport { ActivationStart, Router } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { Subscription } from 'rxjs';\r\nimport { ComponentLoaderService } from '../../../services/component-loader.service';\r\nimport { DynamicComponentHostDirective } from '../../../directives/dynamic-component-host.directive';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-shell-layout',\r\n templateUrl: './shell-layout.component.html'\r\n})\r\nexport class ShellLayoutComponent implements OnInit, OnDestroy, AfterViewInit {\r\n @ViewChildren(DynamicComponentHostDirective)\r\n dynamicComponentHosts: QueryList<DynamicComponentHostDirective> | null = null;\r\n public showRightPaneSM = false;\r\n private routerSub$: Subscription | null = null;\r\n public activeConfig: IShellConfig = new DefaultShellConfig();\r\n constructor(@Inject(DOCUMENT) private document: any,\r\n private router: Router, private location: Location,\r\n @Inject(SHELL_CONFIG) private config: IShellConfig | null,\r\n private componentLoaderService: ComponentLoaderService) {\r\n if (!config) {\r\n config = new DefaultShellConfig();\r\n }\r\n this.activeConfig = config;\r\n }\r\n\r\n ngOnInit(): void {\r\n this.routerSub$ = this.router.events\r\n .pipe(filter(event => event instanceof ActivationStart))\r\n .subscribe((e) => {\r\n // console.log('ShellLayoutComponent ActivationStart', e);\r\n if ((e as ActivationStart)?.snapshot) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot', (e as ActivationStart)?.snapshot);\r\n if ((e as ActivationStart)?.snapshot?.data) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot data', (e as ActivationStart)?.snapshot.data);\r\n if ((e as ActivationStart)?.snapshot?.data.shell) {\r\n // console.log('ShellLayoutComponent ActivationStart snapshot data shell params',\r\n // (e as ActivationStart)?.snapshot.data.shell);\r\n this.activeConfig = (e as ActivationStart)?.snapshot.data.shell as IShellConfig;\r\n // console.log('ShellLayoutComponent activeConfig from route: ', this.activeConfig);\r\n if (this.activeConfig.customHeaderComponent) {\r\n this.initCustomComponents();\r\n }\r\n } else {\r\n this.activeConfig = this.config ? this.config : new DefaultShellConfig();\r\n // console.log('ShellLayoutComponent default activeConfig: ', this.activeConfig);\r\n }\r\n }\r\n }\r\n });\r\n\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n this.initCustomComponents();\r\n }\r\n\r\n private initCustomComponents(): void {\r\n if(this.dynamicComponentHosts && this.dynamicComponentHosts.length > 0){\r\n this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Header'));\r\n // since you're not using it...\r\n // this.loadCustomComponent(this.dynamicComponentHosts.find(_ => _.hostName === 'Footer'));\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routerSub$) {\r\n this.routerSub$.unsubscribe();\r\n }\r\n }\r\n\r\n private loadCustomComponent(host: DynamicComponentHostDirective | undefined): void{\r\n if (host){\r\n const viewContainerRef = host.viewContainerRef;\r\n if (viewContainerRef && this.activeConfig.customHeaderComponent) {\r\n this.componentLoaderService.loadComponent(viewContainerRef, this.activeConfig.customHeaderComponent);\r\n }\r\n }\r\n }\r\n}\r\n","import { Component, OnInit, OnDestroy, Inject, Input } from '@angular/core';\r\nimport { User } from 'oidc-client';\r\nimport { Event, NavigationStart, Router, RouterEvent } from '@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\nimport { NavLink } from '../../../types';\r\nimport { AuthService } from '@indice/ng-auth';\r\nimport { APP_LINKS, SHELL_CONFIG } from '../../../tokens';\r\nimport { BehaviorSubject, Observable, Subject, SubscriptionLike } from 'rxjs';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-shell-header',\r\n templateUrl: './shell-header.component.html'\r\n})\r\nexport class ShellHeaderComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('section-links') sectionLinksPath = 'main';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('profile-menu') profileMenuVisible = true;\r\n @Input() border = true;\r\n public sectionLinks: NavLink[] = [];\r\n public mobileMenuExpanded = false;\r\n public userMenuExpanded = false;\r\n protected routeSubject: Observable<Event>;\r\n protected userSubject: BehaviorSubject<any>;\r\n protected routerSub$: Subscription | null = null;\r\n protected userSub$: Subscription | null = null;\r\n protected statusSub$: Subscription | null = null;\r\n public user: User | null = null;\r\n public avatarName: string | null = null;\r\n\r\n constructor(@Inject(AuthService) protected authService: AuthService,\r\n @Inject(Router) protected router: Router,\r\n @Inject(SHELL_CONFIG) public config: any,\r\n @Inject(APP_LINKS) public links: any) {\r\n this.routeSubject = this.router.events.pipe(filter(event => event instanceof NavigationStart));\r\n this.userSubject = this.authService.userStatus;\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routerSub$) {\r\n this.routerSub$.unsubscribe();\r\n }\r\n // TODO: check authenticated user here before we start polling server status\r\n if (this.statusSub$) {\r\n this.statusSub$.unsubscribe();\r\n }\r\n if (this.userSub$) {\r\n this.userSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.sectionLinks = this.links[this.sectionLinksPath] as NavLink[];\r\n this.routerSub$ = this.routeSubject.subscribe(event => {\r\n this.mobileMenuExpanded = false;\r\n this.userMenuExpanded = false;\r\n });\r\n this.authService.loadUser().then(user => {\r\n this.setCurrentUser(user);\r\n }, error => {\r\n //console.log(error);\r\n });\r\n // Detect user changes and display / or not user info accordingly...\r\n this.userSub$ = this.userSubject.subscribe((user: any) => {\r\n //console.log('ShellHeaderComponent user subscription');\r\n this.setCurrentUser(user);\r\n });\r\n }\r\n\r\n // tslint:disable-next-line:typedef\r\n public onClickOutside($event: any) {\r\n this.userMenuExpanded = false;\r\n }\r\n\r\n public signin(event: any | null | undefined): void {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n this.authService.startAuthentication();\r\n }\r\n\r\n private setCurrentUser(user: any): void {\r\n this.user = user;\r\n if (this.user && this.user.profile) {\r\n this.avatarName = `${this.user.profile.given_name?.charAt(0)}${this.user.profile.family_name?.charAt(0)}`;\r\n //console.log('load user', this.avatarName);\r\n }\r\n }\r\n}\r\n\r\n","import { Component, Inject } from '@angular/core';\r\nimport { APP_LINKS } from '../../../tokens';\r\nimport { IAppLinks } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-shell-footer',\r\n templateUrl: './shell-footer.component.html'\r\n\r\n})\r\n\r\nexport class ShellFooterComponent {\r\n constructor(@Inject(APP_LINKS) public links: IAppLinks) {\r\n }\r\n}\r\n","import { SwitchViewAction } from '../../../types';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { fromEvent } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs/operators';\r\nimport { HeaderMetaItem, RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-view-layout',\r\n templateUrl: './view-layout.component.html'\r\n})\r\nexport class ViewLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('show-header') header = true;\r\n @Input() fluid = false;\r\n @Input() title = 'no title';\r\n @Input() icon: string | null = null;\r\n @Input() actions: ViewAction[] | null = null;\r\n @Input() busy = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\r\n @Input() view: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\r\n // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\r\n ];\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any): void {\r\n //console.log('routerLinkActionClick', action);\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { rightpane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n fromEvent(this.searchInput$?.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe(_ => {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n });\r\n }\r\n\r\n public switchViewActionClick(action: SwitchViewAction | any): void {\r\n //console.log('switchViewActionClick', action);\r\n this.view = action.param;\r\n if (action && action.param) {\r\n this.router$.navigate([], { queryParams: { view: action.param }, queryParamsHandling: 'merge', skipLocationChange: false });\r\n }\r\n }\r\n\r\n}\r\n","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\nimport { HeaderMetaItem } from '../../../types';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-model-view-layout',\r\n templateUrl: './model-view-layout.component.html'\r\n})\r\nexport class ModelViewLayoutComponent implements OnInit {\r\n public showRightPaneSM = false;\r\n @Input() title = 'no title';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('primary-links') primary: { text: string, link: string }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('secondary-links') secondary: { text: string, link: string }[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('meta-items') metaItems: HeaderMetaItem[] | null = [\r\n // { key: 'test', icon: Icons.Badges, text: 'βρέθηκαν 200 αποτελέσματα' }\r\n ];\r\n constructor( private location: Location) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated($event: any): void {\r\n //console.log('onSidePaneActivated', $event);\r\n this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n //console.log('onSidePaneActivated', $event);\r\n this.showRightPaneSM = false;\r\n }\r\n\r\n public closeSidePane(): void {\r\n this.location.back();\r\n }\r\n}\r\n","import { Router } from '@angular/router';\r\nimport { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { Location } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-view-layout',\r\n templateUrl: './side-view-layout.component.html'\r\n})\r\nexport class SideViewLayoutComponent implements OnInit {\r\n @Input() title: string | null = 'Πληροφορίες';\r\n @Input() showActions = true;\r\n @Input() disabled = false;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('return-path') returnPath: string | undefined;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-label') okLabel = 'Αποθήκευση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-show') okShow = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('ok-close-dialog') closeOnOk = true;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-label') cancelLabel = 'Ακύρωση';\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('cancel-show') cancelShow = true;\r\n // @Output() close = new EventEmitter<any>();\r\n @Output() cancel: EventEmitter<boolean> = new EventEmitter();\r\n @Output() ok: EventEmitter<boolean> = new EventEmitter();\r\n\r\n constructor(private location: Location, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public closeSidePane(): void {\r\n if (this.returnPath) {\r\n this.router.navigateByUrl('/', {skipLocationChange: true}).then(() => this.router.navigateByUrl(this.returnPath || '/'));\r\n } else {\r\n this.location.back();\r\n }\r\n }\r\n\r\n public emitClose(): void {\r\n this.cancel.emit(false);\r\n this.closeSidePane();\r\n }\r\n\r\n public emitCancel(): void {\r\n this.cancel.emit(false);\r\n this.closeSidePane();\r\n }\r\n\r\n public emitOK(): void {\r\n this.ok.emit(true);\r\n if(this.closeOnOk) {\r\n this.closeSidePane();\r\n }\r\n }\r\n\r\n}\r\n","import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { fromEvent } from 'rxjs';\r\nimport { map, filter, debounceTime, distinctUntilChanged } from 'rxjs/operators';\r\nimport { RouterViewAction, ViewAction } from '../../../types';\r\n\r\n@Component({\r\n selector: 'lib-form-layout',\r\n templateUrl: './form-layout.component.html'\r\n})\r\nexport class FormLayoutComponent implements OnInit {\r\n // tslint:disable-next-line:no-input-rename\r\n @ViewChild('search') private searchInput$?: ElementRef;\r\n @Input() title: string | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('search-placeholder') searchPlaceholder: string | null = 'αναζήτηση'\r\n @Input() actions: ViewAction[] | null = null;\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('sub-title') subTitle: string | null = null;\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onAction: EventEmitter<ViewAction> = new EventEmitter<ViewAction>();\r\n // tslint:disable-next-line:no-output-on-prefix\r\n @Output() onSearch: EventEmitter<string> = new EventEmitter<string>();\r\n @Output() onComplete: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n public showRightPaneSM = false;\r\n\r\n constructor(private router$: Router) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated($event: any): void {\r\n this.showRightPaneSM = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.onComplete.emit(true);\r\n this.showRightPaneSM = false;\r\n }\r\n\r\n public emitActionClick(action: ViewAction): void {\r\n this.onAction.emit(action);\r\n }\r\n\r\n searchActionClick(action: ViewAction, text: string): void {\r\n this.onSearch.emit(text);\r\n }\r\n\r\n searchActionType(text: string): void {\r\n fromEvent(this.searchInput$?.nativeElement, 'keyup').pipe(\r\n map((event: any) => {\r\n return event.target.value; // Get input value.\r\n }),\r\n filter(inputValue => inputValue.length >= 3 || inputValue.length === 0),\r\n // If character length greater than minimumSearchCharacters setting.\r\n debounceTime(1000), // Time in milliseconds between key events.\r\n distinctUntilChanged() // If previous query is different from current.\r\n ).subscribe(_ => {\r\n this.onSearch.emit(this.searchInput$?.nativeElement.value);\r\n });\r\n }\r\n\r\n public routerLinkActionClick(action: RouterViewAction | any, relative: boolean = false): void {\r\n if (action.outlet) {\r\n this.router$.navigate(['', { outlets: { formRightPane: action.link } }]);\r\n } else {\r\n this.router$.navigate([action.link]);\r\n }\r\n }\r\n\r\n}\r\n","import { Inject } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-auth-callback',\r\n templateUrl: './auth-callback.component.html'\r\n})\r\nexport class AuthCallbackComponent implements OnInit {\r\n public status = 'παρακαλώ περιμένετε...';\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router, private route: ActivatedRoute) { }\r\n\r\n ngOnInit(): void {\r\n const self = this;\r\n this.authService.completeAuthentication().then(() => {\r\n self.authService.isLoggedIn().subscribe((result: any) => {\r\n // i'm sorry!\r\n if (!result) {\r\n self.router.navigate(['/unauthorized']);\r\n return;\r\n }\r\n let navigationUrl = '/dashboard';\r\n if (this.route.data) {\r\n this.route.data.subscribe(data => {\r\n if(data['navigationUrl'] != undefined){\r\n navigationUrl = data['navigationUrl'];\r\n }\r\n })\r\n }\r\n\r\n // did you want to go somewhere?\r\n const user = self.authService.currentUser();\r\n if (user && user.state && user.state.url) {\r\n //console.log('AuthCallbackComponent user state', user.state);\r\n self.router.navigateByUrl(user.state.url);\r\n return;\r\n } else {\r\n self.router.navigateByUrl(navigationUrl);\r\n return;\r\n }\r\n\r\n //\r\n // lets check your subscriptions...\r\n // self.status = `we're loading your subscription information, please wait...`;\r\n // ok get the subscriptions for the user\r\n // self.appState.subscriptions.subscribe((subs) => {\r\n // self.subscriptions = subs;\r\n // if (subs === null || subs.length === 0) {\r\n // self.router.navigate(['/new-subscription']);\r\n // } else if (subs.length === 1) {\r\n // self.status = `welcome ${user.profile.name}, we're loading your configuration information, please wait...`;\r\n // self.selectSubscription(subs[0]);\r\n // } else {\r\n // self.status = `welcome ${user.profile.name}, please select a subscription to proceed...`;\r\n // }\r\n // }, error => {\r\n // self.status = `oups! an error occured, sorry about that! please try again in a while :)`;\r\n // });\r\n //\r\n\r\n });\r\n });\r\n }\r\n\r\n // public selectSubscription(subscription: any) {\r\n // this.appState.selectSubscription(subscription);\r\n // this.router.navigate([subscription.homePath]);\r\n // }\r\n\r\n}\r\n","import { Inject } from '@angular/core';\r\nimport { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n\r\n@Component({ selector: 'lib-auth-renew', template: ''})\r\nexport class AuthRenewComponent implements OnInit {\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService, private router: Router) { }\r\n\r\n ngOnInit(): void {\r\n // console.log('AuthRenewComponent init!!!');\r\n this.authService.manager.signinSilentCallback().catch(() => {\r\n // console.log('redirect to unauthorized!');\r\n this.router.navigate(['/unauthorized']);\r\n });\r\n }\r\n\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n@Component({\r\n // tslint:disable-next-line:component-selector\r\n selector: 'lib-logged-out',\r\n templateUrl: './logged-out.component.html'\r\n})\r\nexport class LoggedOutComponent implements OnInit {\r\n status = 'working on it, please give me a sec...';\r\n finished = false;\r\n constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n this.authService.completeSignout().then(() => {\r\n this.status = 'Thank you!';\r\n this.finished = true;\r\n });\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-error',\r\n templateUrl: './error.component.html'\r\n})\r\nexport class ErrorComponent implements OnInit {\r\n public error = 'Error!';\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-page-not-found',\r\n templateUrl: './page-not-found.component.html'\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n}\r\n","import { Component, Inject, OnInit } from '@angular/core';\r\nimport { AuthService } from '@indice/ng-auth';\r\n\r\n\r\n// tslint:disable-next-line:component-selector\r\n@Component({selector: 'lib-unauthorized', templateUrl: './unauthorized.component.html'})\r\nexport class UnauthorizedComponent implements OnInit {\r\n\r\n constructor(@Inject(AuthService) private authService: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n signin(): void {\r\n this.authService.clearState().then( (_: any) => {\r\n this.authService.startSignout();\r\n });\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { IAddress } from '../types';\r\n\r\n@Pipe({\r\n name: 'address',\r\n pure: false\r\n})\r\nexport class AddressPipe implements PipeTransform {\r\n\r\n transform(value: IAddress | undefined): string {\r\n if (value === undefined || null || '') {\r\n return '';\r\n }\r\n // tslint:disable-next-line:no-non-null-assertion\r\n return `${value.street || ''}${value.streetNumber ? ' ' + value.streetNumber : ''}${value.city ? ', ' + value.city : ''}${+value.postalCode! ? ', ' + +value.postalCode! : ''}`;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'durationFormat',\r\n pure: false\r\n})\r\nexport class DurationFormatPipe implements PipeTransform {\r\n\r\n transform(value: any, arg1: any, arg2: any): string {\r\n\r\n let days: any;\r\n let seconds: any;\r\n let minutes: any;\r\n let hours: any;\r\n\r\n if (arg1 === 'ms' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value / 1000) % 60);\r\n minutes = Math.floor(((value / (1000 * 60)) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && arg2 === 'hhmmss') {\r\n seconds = Math.floor((value % 60));\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 'ms' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(((value / 1000) % 60));\r\n minutes = Math.floor((value / (1000 * 60) % 60));\r\n hours = Math.floor((value / (1000 * 60 * 60) % 24));\r\n days = Math.floor((value / (1000 * 60 * 60 * 24)));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n } else if (arg1 === 's' && (arg2 === 'ddhhmmss' || arg2 === 'ddhhmmssLong')) {\r\n seconds = Math.floor(value % 60);\r\n minutes = Math.floor(((value / 60) % 60));\r\n hours = Math.floor(((value / 60) / 60) % 24);\r\n days = Math.floor((((value / 60) / 60) / 24));\r\n return this.format(arg2, seconds, minutes, hours, days);\r\n\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n\r\n private format(arg2: string, seconds: any, minutes: any, hours: any, days: any): any {\r\n (days < 10) ? days = '0' + days : days;\r\n (hours < 10) ? hours = '0' + hours : hours;\r\n (minutes < 10) ? minutes = '0' + minutes : minutes;\r\n (seconds < 10) ? seconds = '0' + seconds : seconds;\r\n\r\n switch (arg2) {\r\n case 'hhmmss':\r\n return `${hours}:${minutes}:${seconds}`;\r\n\r\n case 'ddhhmmss':\r\n return `${days}d, ${hours}h, ${minutes}m, ${seconds}s`;\r\n\r\n case 'ddhhmmssLong':\r\n return `${days} days, ${hours} hours, ${minutes} minutes, ${seconds} seconds`;\r\n }\r\n return undefined;\r\n }\r\n\r\n}\r\n","import { Observable, Subscription } from 'rxjs';\r\nimport { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { HeaderMetaItem, IResultSet, MenuOption, RouterViewAction, ViewAction, ListViewType } from '../types';\r\nimport { Icons } from '../icons';\r\n\r\n@Component({ template: '' })\r\nexport abstract class BaseListComponent<T> implements OnInit, OnDestroy {\r\n public items: T[] | null | undefined = null;\r\n public view: string = ListViewType.Tiles;\r\n public title: string | null = null;\r\n public actions: ViewAction[] = [];\r\n public loaderItems: any[] = [1, 2, 3, 4, 5];\r\n public page = 1;\r\n public pageSize = 20;\r\n public count = 0;\r\n public sort: string | null = '';\r\n public sortdir: string | null = '-';\r\n public search: string | null = '';\r\n public sortOptions: MenuOption[] = [];\r\n public metaItems: HeaderMetaItem[] = [];\r\n public abstract newItemLink: string | null;\r\n private routeSub$: Subscription | undefined;\r\n\r\n constructor(private route$: ActivatedRoute, private router$: Router) {\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.routeSub$) {\r\n this.routeSub$.unsubscribe();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.actions = [\r\n new ViewAction('search', null, null, Icons.Search, 'αναζήτηση'),\r\n new ViewAction('refresh', null, null, Icons.Refresh, 'ανανέωση στοιχείων')\r\n ];\r\n if (this.newItemLink) {\r\n this.actions.push(new RouterViewAction(Icons.Add, this.newItemLink, 'rightpane', 'προσθήκη νέας εγγραφής;'));\r\n }\r\n\r\n this.metaItems = [\r\n { key: 'count', icon: Icons.ItemsCount, text: 'παρακαλώ περιμένετε...' }\r\n ];\r\n\r\n // disabled external route changes monitoring due to sync issues - which is bad :) - refresh from url will not work\r\n // until i come up with a solution...\r\n\r\n this.routeSub$ = this.route$.queryParamMap.subscribe(params => {\r\n if (params.keys.length === 0) {\r\n return;\r\n }\r\n\r\n // changing the view mode does not require reloading...\r\n this.view = params.get('view') || ListViewType.Tiles;\r\n //console.log('route changes ', this.view);\r\n\r\n // if (params.get('search') !== this.search) {\r\n // this.searchChanged(params.get('search'));\r\n // }\r\n\r\n // const page = +(params.get('page') || 1);\r\n // if (page !== this.page) {\r\n // this.page = page;\r\n // }\r\n\r\n // const size = +(params.get('pagesize') || 20);\r\n // if (this.pageSize !== size) {\r\n // this.pageSize = size;\r\n // }\r\n\r\n // if (params.get('search') !== this.search) {\r\n // this.search = params.get('search');\r\n // }\r\n\r\n // if (params.get('sort') !== this.sort) {\r\n // this.sort = params.get('sort');\r\n // }\r\n\r\n // if (params.get('sortdir') !== this.sortdir) {\r\n // this.sortdir = params.get('sortdir');\r\n // }\r\n\r\n });\r\n\r\n // just to sync params in query\r\n this.setRouteParams(true);\r\n this.load();\r\n }\r\n\r\n private setRouteParams(locationChange: boolean = false): void {\r\n this.router$.navigate([], {\r\n relativeTo: this.route$, queryParams: {\r\n view: this.view,\r\n page: this.page,\r\n pagesize: this.pageSize,\r\n search: this.search,\r\n sort: this.sort,\r\n dir: this.sortdir\r\n }, queryParamsHandling: 'merge', skipLocationChange: locationChange\r\n });\r\n }\r\n\r\n public actionHandler($event: ViewAction): void {\r\n //console.log('BaseListComponent actionHandler', $event);\r\n if ($event.key === 'refresh') {\r\n this.refresh();\r\n }\r\n }\r\n\r\n private load(): void {\r\n //console.log('BaseListComponent LOAD');\r\n this.count = 0;\r\n this.items = null;\r\n this.loadItems().subscribe(result => {\r\n this.count = result ? result.count : 0;\r\n this.items = result?.items;\r\n this.updateHeaderMeta();\r\n });\r\n }\r\n\r\n private updateHeaderMeta(): void {\r\n const count = this.metaItems?.filter(m => m.key === 'count')[0];\r\n if (count) {\r\n count.text = `${this.count} αποτελέσματα`;\r\n }\r\n }\r\n\r\n public abstract loadItems(): Observable<IResultSet<T> | null | undefined>;\r\n\r\n public clear(): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public refresh(): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n\r\n public pageChanged(page: number): void {\r\n if(this.page !== page) {\r\n this.page = page;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n }\r\n\r\n public pageSizeChanged(pageSize: number): void {\r\n if(this.pageSize !== pageSize) {\r\n this.pageSize = pageSize;\r\n this.page = 1;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortChanged(sort: string): void {\r\n //console.log('base-list sortChanged', sort);\r\n if (this.sort !== sort) {\r\n this.page = 1;\r\n this.sort = sort;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public sortdirChanged(sortdir: string): void {\r\n if (this.sortdir !== sortdir) {\r\n this.page = 1;\r\n this.sortdir = sortdir;\r\n this.setRouteParams();\r\n this.refresh();\r\n }\r\n }\r\n\r\n public searchChanged(searchText: string | null): void {\r\n this.count = 0;\r\n this.page = 1;\r\n this.items = null;\r\n this.search = searchText;\r\n this.setRouteParams();\r\n this.load();\r\n }\r\n}\r\n","import { SidePaneOverlayType, SidePaneSize } from './../../types';\r\nimport { Subscription } from 'rxjs';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Component, Input, OnInit, OnDestroy, Inject } from '@angular/core';\r\nimport { DOCUMENT } from '@angular/common';\r\n\r\n@Component({\r\n selector: 'lib-side-pane',\r\n templateUrl: './side-pane.component.html'\r\n})\r\nexport class SidePaneComponent implements OnInit, OnDestroy {\r\n // tslint:disable-next-line:no-input-rename\r\n @Input('visible') showPane = false;\r\n public sizeContainerStyle = 'side-pane-box-size';\r\n public overlayStyle = 'side-pane-overlay';\r\n constructor(private router: Router, @Inject(DOCUMENT) private document: any,) { }\r\n\r\n ngOnDestroy(): void {\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public onSidePaneActivated(component: any): void {\r\n this.document.body.classList.add('modal-active');\r\n let sizeStyleSuffix = '';\r\n const state = this.router.getCurrentNavigation()?.extras.state;\r\n if (state) {\r\n if (state.paneSize) {\r\n if (state.paneSize === SidePaneSize.Small25) {\r\n sizeStyleSuffix = '-25';\r\n } else if (state.paneSize === SidePaneSize.Medium50) {\r\n sizeStyleSuffix = '-50';\r\n } else if (state.paneSize === SidePaneSize.Large75) {\r\n sizeStyleSuffix = '-75';\r\n }\r\n }\r\n if (state.paneOverlay) {\r\n if (state.paneOverlay === SidePaneOverlayType.None) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-0';\r\n } else if (state.paneOverlay === SidePaneOverlayType.Dark) {\r\n this.overlayStyle = 'side-pane-overlay-opacity-50';\r\n } else {\r\n this.overlayStyle = 'side-pane-overlay';\r\n }\r\n }\r\n }\r\n this.sizeContainerStyle = `side-pane-box-size${sizeStyleSuffix}`;\r\n this.showPane = true;\r\n }\r\n\r\n public onSidePaneDeactivated($event: any): void {\r\n this.document.body.classList.remove('modal-active');\r\n this.showPane = false;\r\n }\r\n\r\n}\r\n","import { AvatarInitialsComponent } from './controls/avatar-initials/avatar-initials.component';\r\nimport { ToasterService } from './services/toaster.service';\r\nimport { ToasterComponent } from './controls/toaster/toaster.component';\r\nimport { ToasterContainerComponent } from './controls/toaster/toaster-container.component';\r\nimport { DatepickerComponent } from './controls/date-picker/date-picker.component';\r\nimport { SidePaneComponent } from './controls/side-pane/side-pane.component';\r\nimport { ListDetailsSectionComponent } from './controls/list-view/list-details-section.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { RouterModule } from '@angular/router';\r\nimport { UnauthorizedComponent } from './pages/http-status/unauthorized/unauthorized.component';\r\nimport { PageNotFoundComponent } from './pages/http-status/page-not-found/page-not-found.component';\r\nimport { ErrorComponent } from './pages/http-status/error/error.component';\r\nimport { LoggedOutComponent } from './pages/auth/logged-out/logged-out.component';\r\nimport { AuthCallbackComponent } from './pages/auth/auth-callback/auth-callback.component';\r\nimport { IndiceAuthModule } from '@indice/ng-auth';\r\nimport { SkeletonLoaderComponent } from './controls/skeleton-loader/skeleton-loader.component';\r\nimport { ListTileComponent } from './controls/list-view/list-tile.component';\r\nimport { ListColumnComponent } from './controls/list-view/list-column.component';\r\nimport { NgModule } from '@angular/core';\r\nimport { DropDownMenuComponent } from './controls/drop-down-menu/drop-down-menu.component';\r\nimport { ListViewComponent } from './controls/list-view/list-view.component';\r\nimport { PagerComponent } from './controls/pager/pager.component';\r\nimport { ClickOutsideDirective } from './directives/click-outside.directive';\r\nimport { ShellFooterComponent } from './layouts/shell/shell-footer/shell-footer.component';\r\nimport { ShellHeaderComponent } from './layouts/shell/shell-header/shell-header.component';\r\nimport { ShellLayoutComponent } from './layouts/shell/shell-layout/shell-layout.component';\r\nimport { FormLayoutComponent } from './layouts/views/form-layout/form-layout.component';\r\nimport { ModelViewLayoutComponent } from './layouts/views/model-view-layout/model-view-layout.component';\r\nimport { SideViewLayoutComponent } from './layouts/views/side-view-layout/side-view-layout.component';\r\nimport { ViewLayoutComponent } from './layouts/views/view-layout/view-layout.component';\r\nimport { AuthRenewComponent } from './pages/auth/auth-renew/auth-renew.component';\r\nimport { AddressPipe } from './pipes/address.pipe';\r\nimport { DurationFormatPipe } from './pipes/duration-format.pipe';\r\nimport { CollapsiblePanelComponent } from './controls/collapsible-panel/collapsible-panel.component';\r\nimport { KpiTileComponent } from './controls/kpi-tile/kpi-tile.component';\r\nimport { DynamicComponentHostDirective } from './directives/dynamic-component-host.directive';\r\nimport { ListViewEmptyStateComponent } from './controls/list-view/list-view-empty-state.component';\r\nimport { ToggleComponent } from './controls/toggle/toggle.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n // diectives\r\n ClickOutsideDirective,\r\n DynamicComponentHostDirective,\r\n // controls\r\n DropDownMenuComponent,\r\n PagerComponent,\r\n ListViewComponent,\r\n ListColumnComponent,\r\n ListTileComponent,\r\n ListDetailsSectionComponent,\r\n ListViewEmptyStateComponent,\r\n SkeletonLoaderComponent,\r\n CollapsiblePanelComponent,\r\n KpiTileComponent,\r\n SidePaneComponent,\r\n DatepickerComponent,\r\n AvatarInitialsComponent,\r\n ToggleComponent,\r\n // Toaster\r\n ToasterContainerComponent,\r\n ToasterComponent,\r\n // shell layout\r\n ShellLayoutComponent,\r\n ShellHeaderComponent,\r\n ShellFooterComponent,\r\n // view layouts\r\n ViewLayoutComponent,\r\n SideViewLayoutComponent,\r\n ModelViewLayoutComponent,\r\n FormLayoutComponent,\r\n // pages (common)\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n LoggedOutComponent,\r\n ErrorComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n // pipes\r\n AddressPipe,\r\n DurationFormatPipe\r\n ],\r\n imports: [\r\n CommonModule,\r\n RouterModule,\r\n IndiceAuthModule\r\n ],\r\n exports: [\r\n ClickOutsideDirective,\r\n DropDownMenuComponent,\r\n PagerComponent,\r\n ListViewComponent,\r\n ListColumnComponent,\r\n ListTileComponent,\r\n ListDetailsSectionComponent,\r\n ListViewEmptyStateComponent,\r\n KpiTileComponent,\r\n SkeletonLoaderComponent,\r\n ShellLayoutComponent,\r\n ShellHeaderComponent,\r\n ShellFooterComponent,\r\n ViewLayoutComponent,\r\n SideViewLayoutComponent,\r\n ModelViewLayoutComponent,\r\n FormLayoutComponent,\r\n AuthCallbackComponent,\r\n AuthRenewComponent,\r\n LoggedOutComponent,\r\n ErrorComponent,\r\n PageNotFoundComponent,\r\n UnauthorizedComponent,\r\n AddressPipe,\r\n DurationFormatPipe,\r\n CollapsiblePanelComponent,\r\n SidePaneComponent,\r\n DatepickerComponent,\r\n ToasterContainerComponent,\r\n ToasterComponent,\r\n AvatarInitialsComponent,\r\n ToggleComponent\r\n ]\r\n})\r\nexport class IndiceComponentsModule {\r\n // tslint:disable-next-line:typedef\r\n static forRoot() {\r\n return {\r\n ngModule: IndiceComponentsModule,\r\n providers: [ToasterService]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of @indice/ng-components\r\n */\r\n\r\n// directives\r\nexport * from './lib/directives/click-outside.directive';\r\n\r\n// controls\r\nexport * from './lib/controls/drop-down-menu/drop-down-menu.component';\r\nexport * from './lib/controls/pager/pager.component';\r\nexport * from './lib/controls/list-view/list-view.component';\r\nexport * from './lib/controls/list-view/list-column.component';\r\nexport * from './lib/controls/list-view/list-tile.component';\r\nexport * from './lib/controls/list-view/list-details-section.component';\r\nexport * from './lib/controls/list-view/list-view-empty-state.component';\r\nexport * from './lib/controls/skeleton-loader/skeleton-loader.component';\r\nexport * from './lib/controls/collapsible-panel/collapsible-panel.component';\r\nexport * from './lib/controls/kpi-tile/kpi-tile.component';\r\nexport * from './lib/controls/date-picker/date-picker.component';\r\nexport * from './lib/controls/toaster/toaster-container.component';\r\nexport * from './lib/controls/toaster/toaster.component';\r\nexport * from './lib/controls/avatar-initials/avatar-initials.component';\r\nexport * from './lib/controls/toggle/toggle.component';\r\n\r\n// shell layout\r\nexport * from './lib/layouts/shell/shell-layout/shell-layout.component';\r\nexport * from './lib/layouts/shell/shell-header/shell-header.component';\r\nexport * from './lib/layouts/shell/shell-footer/shell-footer.component';\r\n\r\n// view layouts\r\nexport * from './lib/layouts/views/view-layout/view-layout.component';\r\nexport * from './lib/layouts/views/model-view-layout/model-view-layout.component';\r\nexport * from './lib/layouts/views/side-view-layout/side-view-layout.component';\r\nexport * from './lib/layouts/views/form-layout/form-layout.component';\r\n\r\n// pages\r\nexport * from './lib/pages/auth/auth-callback/auth-callback.component';\r\nexport * from './lib/pages/auth/auth-renew/auth-renew.component';\r\nexport * from './lib/pages/auth/logged-out/logged-out.component';\r\nexport * from './lib/pages/http-status/error/error.component';\r\nexport * from './lib/pages/http-status/page-not-found/page-not-found.component';\r\nexport * from './lib/pages/http-status/unauthorized/unauthorized.component';\r\n\r\n// pipes\r\nexport * from './lib/pipes/address.pipe';\r\nexport * from './lib/pipes/duration-format.pipe';\r\n\r\n// common stuff (tokens, types, helper classes)\r\nexport * from './lib/tokens';\r\nexport * from './lib/types';\r\nexport * from './lib/icons';\r\nexport * from './lib/helpers/base-list.component';\r\n\r\n// services\r\nexport * from './lib/services/component-loader.service';\r\nexport * from './lib/services/toaster.service';\r\n\r\nexport * from './lib/ng-components.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {SidePaneComponent as ɵb} from './lib/controls/side-pane/side-pane.component';\nexport {DynamicComponentHostDirective as ɵa} from './lib/directives/dynamic-component-host.directive';"],"names":["EventEmitter","isPlatformBrowser","Directive","ElementRef","NgZone","Inject","PLATFORM_ID","Input","Output","Component","SCREEN_SIZE","ToastType","SidePaneSize","SidePaneOverlayType","Router","ContentChild","TemplateRef","ContentChildren","NG_VALUE_ACCESSOR","forwardRef","ViewChild","BehaviorSubject","filter","Injectable","InjectionToken","ComponentFactoryResolver","ViewContainerRef","ActivationStart","DOCUMENT","Location","ViewChildren","router","NavigationStart","AuthService","fromEvent","map","debounceTime","distinctUntilChanged","ActivatedRoute","Pipe","NgModule","CommonModule","RouterModule","IndiceAuthModule"],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ export class DatepickerComponent {
|
|
|
10
10
|
this.value = null;
|
|
11
11
|
this.valueChange = new EventEmitter();
|
|
12
12
|
this.showCalendar = false;
|
|
13
|
+
this.showYears = false;
|
|
13
14
|
this.monthNames = [
|
|
14
15
|
'Ιανουάριος',
|
|
15
16
|
'Φεβρουάριος',
|
|
@@ -28,20 +29,41 @@ export class DatepickerComponent {
|
|
|
28
29
|
this.month = -1;
|
|
29
30
|
this.year = -1;
|
|
30
31
|
this.calendarDates = [];
|
|
32
|
+
this.calendarYears = [];
|
|
33
|
+
this.showCalendarYears = [];
|
|
31
34
|
this.blankDays = [];
|
|
35
|
+
this.calendarYearPage = 1;
|
|
36
|
+
this.yearsPerPage = 30;
|
|
32
37
|
this.onChange$ = undefined;
|
|
33
38
|
this.onTouched$ = undefined;
|
|
34
39
|
}
|
|
35
|
-
|
|
40
|
+
ngOnInit() {
|
|
41
|
+
var _a, _b;
|
|
42
|
+
let today = new Date();
|
|
43
|
+
this.month = today.getMonth();
|
|
44
|
+
this.year = today.getFullYear();
|
|
45
|
+
this.calendarDates = [{ day: this.value, today: this.value, selected: this.value }];
|
|
46
|
+
this.calendarYears = [{ year: (_a = this.value) === null || _a === void 0 ? void 0 : _a.getFullYear(), today: this.value, selected: this.value }];
|
|
47
|
+
const yearsArray = [];
|
|
48
|
+
for (let i = 1950; i <= today.getFullYear() + 2; i++) {
|
|
49
|
+
yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == ((_b = this.value) === null || _b === void 0 ? void 0 : _b.getFullYear()) });
|
|
50
|
+
}
|
|
51
|
+
this.calendarYears = yearsArray;
|
|
52
|
+
this.showCalendarYears = this.paginate(this.calendarYears, 1);
|
|
53
|
+
this.calcDays();
|
|
54
|
+
}
|
|
55
|
+
compareDates(date1, day, year) {
|
|
56
|
+
var _a;
|
|
36
57
|
if (!date1) {
|
|
37
58
|
return false;
|
|
38
59
|
}
|
|
39
|
-
const d = new Date(this.year, this.month, day);
|
|
60
|
+
const 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());
|
|
40
61
|
return date1.toDateString() === d.toDateString();
|
|
41
62
|
}
|
|
42
63
|
;
|
|
43
64
|
selectDateValue(date) {
|
|
44
|
-
|
|
65
|
+
// This should be in UTC
|
|
66
|
+
let selectedDate = new Date(this.year, this.month, date.day, 3, 0, 0, 0);
|
|
45
67
|
this.value = selectedDate;
|
|
46
68
|
this.valueChange.emit(this.value);
|
|
47
69
|
if (this.onChange$) {
|
|
@@ -53,6 +75,21 @@ export class DatepickerComponent {
|
|
|
53
75
|
}
|
|
54
76
|
this.showCalendar = false;
|
|
55
77
|
}
|
|
78
|
+
selectYearValue(year) {
|
|
79
|
+
let selectedDate = new Date(year.year, 1, 1, 2, 0, 0, 0);
|
|
80
|
+
this.year = year.year;
|
|
81
|
+
this.value = selectedDate;
|
|
82
|
+
this.valueChange.emit(this.value);
|
|
83
|
+
if (this.onChange$) {
|
|
84
|
+
this.onChange$(this.value);
|
|
85
|
+
}
|
|
86
|
+
this.updateDays();
|
|
87
|
+
if (this.onTouched$) {
|
|
88
|
+
this.onTouched$();
|
|
89
|
+
}
|
|
90
|
+
this.showYears = false;
|
|
91
|
+
this.showCalendar = true;
|
|
92
|
+
}
|
|
56
93
|
previousMonth() {
|
|
57
94
|
if (this.month !== 0) {
|
|
58
95
|
this.month = this.month - 1;
|
|
@@ -81,6 +118,20 @@ export class DatepickerComponent {
|
|
|
81
118
|
this.onTouched$();
|
|
82
119
|
}
|
|
83
120
|
}
|
|
121
|
+
previousYear() {
|
|
122
|
+
this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage > 1 ? --this.calendarYearPage : 1);
|
|
123
|
+
this.calcDays();
|
|
124
|
+
if (this.onTouched$) {
|
|
125
|
+
this.onTouched$();
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
nextYear() {
|
|
129
|
+
this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage <= this.calendarYears.length / this.yearsPerPage ? ++this.calendarYearPage : this.calendarYearPage);
|
|
130
|
+
this.calcDays();
|
|
131
|
+
if (this.onTouched$) {
|
|
132
|
+
this.onTouched$();
|
|
133
|
+
}
|
|
134
|
+
}
|
|
84
135
|
calcDays() {
|
|
85
136
|
const daysInMonth = new Date(this.year, this.month + 1, 0).getDate();
|
|
86
137
|
// find where to start calendar day of week
|
|
@@ -92,17 +143,21 @@ export class DatepickerComponent {
|
|
|
92
143
|
const daysArray = [];
|
|
93
144
|
const today = new Date();
|
|
94
145
|
for (var i = 1; i <= daysInMonth; i++) {
|
|
95
|
-
daysArray.push({ day: i, today: this.compareDates(today, i), selected: this.compareDates(this.value, i) });
|
|
146
|
+
daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates(this.value, i, null) });
|
|
96
147
|
}
|
|
148
|
+
const yearsArray = [];
|
|
149
|
+
for (let i = 1950; i <= today.getFullYear() + 2; i++) {
|
|
150
|
+
yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.year });
|
|
151
|
+
}
|
|
152
|
+
this.calendarYears = yearsArray;
|
|
97
153
|
this.blankDays = blankdaysArray;
|
|
98
154
|
this.calendarDates = daysArray;
|
|
99
155
|
}
|
|
100
156
|
updateDays() {
|
|
101
157
|
const today = new Date();
|
|
102
158
|
this.calendarDates.forEach(d => {
|
|
103
|
-
d.today = this.compareDates(today, d);
|
|
104
|
-
d.selected = this.compareDates(this.value, d);
|
|
105
|
-
;
|
|
159
|
+
d.today = this.compareDates(today, d, this.year);
|
|
160
|
+
d.selected = this.compareDates(this.value, d, this.year);
|
|
106
161
|
});
|
|
107
162
|
}
|
|
108
163
|
writeValue(obj) {
|
|
@@ -123,17 +178,23 @@ export class DatepickerComponent {
|
|
|
123
178
|
this.onTouched$();
|
|
124
179
|
}
|
|
125
180
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
181
|
+
paginate(array, page_number) {
|
|
182
|
+
return array.slice((page_number - 1) * this.yearsPerPage, page_number * this.yearsPerPage);
|
|
183
|
+
}
|
|
184
|
+
openYears() {
|
|
185
|
+
this.showYears = !this.showYears;
|
|
186
|
+
this.showCalendarYears = this.paginate(this.calendarYears, 1);
|
|
187
|
+
this.calcDays();
|
|
188
|
+
}
|
|
189
|
+
openCalendar() {
|
|
190
|
+
this.showCalendar = !this.showCalendar;
|
|
130
191
|
this.calcDays();
|
|
131
192
|
}
|
|
132
193
|
}
|
|
133
194
|
DatepickerComponent.decorators = [
|
|
134
195
|
{ type: Component, args: [{
|
|
135
196
|
selector: 'lib-date-picker',
|
|
136
|
-
template: "<div class=\"relative flex\"
|
|
197
|
+
template: "<div class=\"relative flex\">\r\n\r\n <input type=\"text\"\r\n #dateInput\r\n [readonly]=\"readonly\"\r\n name=\"dateInput\"\r\n (blur)=\"onBlur($event)\"\r\n id=\"dateInput\"\r\n [value]=\"value | date: displayFormat\"\r\n class=\"w-full focus:ring-0 focus:outline-none rounded-none sm:text-sm border-gray-300 focus:border-0\"\r\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\r\n [placeholder]=\"disabled ? '' : placeholder\">\r\n\r\n <button class=\"relative inline-flex items-center px-2 py-2 border border-gray-300 text-sm font-medium rounded-r-sm text-gray-700 bg-gray-50 hover:bg-gray-100 focus:outline-none focus:ring-1 focus:ring-gray-500 focus:border-gray-500\"\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\"\r\n class=\"bg-gray-100 mt-10 rounded-sm shadow-md p-4 absolute left-0 z-50 w-full\"\r\n style=\"height:18rem;min-width:16rem;\">\r\n <div class=\"flex justify-between items-center mb-2\">\r\n <div>\r\n <button class=\"text-lg font-bold text-gray-800\"\r\n (click)=\"openYears()\">{{monthNames[month]}}</button>\r\n <button class=\"ml-1 text-lg text-gray-600 font-normal\"\r\n (click)=\"openYears()\">{{year}}</button>\r\n </div>\r\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\r\n <button type=\"button\"\r\n class=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25\"\r\n (click)=\"previousMonth();\">\r\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\r\n 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=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25\"\r\n (click)=\"nextMonth()\">\r\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\r\n 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=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25\"\r\n (click)=\"previousYear();\">\r\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\r\n 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=\"transition ease-in-out duration-100 inline-flex cursor-pointer hover:bg-gray-200 p-1 rounded-full disabled:opacity-25\"\r\n (click)=\"nextYear()\">\r\n <svg class=\"h-6 w-6 text-gray-500 inline-flex\"\r\n 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=\"flex flex-wrap mb-3 -mx-1\"\r\n *ngIf=\"!showYears; else showCalYearsTmpl\">\r\n <div *ngFor=\"let day of dayNames\"\r\n class=\"text-gray-800 font-medium text-center text-sm uppercase\"\r\n style=\"width: 14.28%\">{{day}}</div>\r\n </div>\r\n\r\n <ng-template #showCalYearsTmpl>\r\n <div class=\"flex flex-wrap -mx-1\">\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=\"cursor-pointer text-center hover:text-white text-sm leading-none rounded-full leading-loose transition ease-in-out duration-100\"\r\n [class]=\"year.selected ? 'bg-gray-700 text-white' : 'text-gray-800 hover:bg-gray-800'\">{{year.year}}</div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"flex flex-wrap -mx-1\"\r\n *ngIf=\"!showYears\">\r\n <div *ngFor=\"let blankday of blankDays\"\r\n style=\"width: 14.28%\"\r\n class=\"text-center border p-1 border-transparent text-sm opacity-50\">{{blankday}}1</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=\"cursor-pointer text-center hover:text-white text-sm leading-none rounded-full leading-loose transition ease-in-out duration-100\"\r\n [class]=\"date.selected ? 'bg-gray-700 text-white' : 'text-gray-800 hover:bg-gray-800'\">{{date.day}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>",
|
|
137
198
|
providers: [
|
|
138
199
|
{
|
|
139
200
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -153,4 +214,4 @@ DatepickerComponent.propDecorators = {
|
|
|
153
214
|
valueChange: [{ type: Output }],
|
|
154
215
|
dateInput: [{ type: ViewChild, args: ['dateInput',] }]
|
|
155
216
|
};
|
|
156
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLDhGQUE4RjtBQVk5RixNQUFNLE9BQU8sbUJBQW1CO0lBOEc5QjtRQTdHUyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDVixrQkFBYSxHQUF1QixZQUFZLENBQUM7UUFDakUsZ0JBQVcsR0FBdUIsRUFBRSxDQUFDO1FBQ3JDLFVBQUssR0FBNEIsSUFBSSxDQUFDO1FBQ3JDLGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFOUQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUFHO1lBQ2xCLFlBQVk7WUFDWixhQUFhO1lBQ2IsU0FBUztZQUNULFVBQVU7WUFDVixPQUFPO1lBQ1AsU0FBUztZQUNULFNBQVM7WUFDVCxXQUFXO1lBQ1gsYUFBYTtZQUNiLFdBQVc7WUFDWCxXQUFXO1lBQ1gsWUFBWTtTQUNiLENBQUM7UUFDSyxhQUFRLEdBQUcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU3RCxVQUFLLEdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDbkIsU0FBSSxHQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLGtCQUFhLEdBQVUsRUFBRSxD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bGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8vIGZyZWFrc2x5IHNpbXBsZSBkYXRlIHBpY2tlciA6IGh0dHBzOi8vdGFpbHdpbmQtZWxlbWVudHMuY29tL2RvY3Mvc3RhbmRhcmQvZm9ybXMvZGF0ZXBpY2tlci9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGF0ZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlcGlja2VyQ29tcG9uZW50KSwgIC8vIHJlcGxhY2UgbmFtZSBhcyBhcHByb3ByaWF0ZVxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoJ2Rpc3BsYXktZm9ybWF0JykgZGlzcGxheUZvcm1hdDogc3RyaW5nIHwgdW5kZWZpbmVkID0gJ2RkL01NL3l5eXknO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWQgPSAnJztcclxuICBASW5wdXQoKSB2YWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsO1xyXG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xyXG4gIEBWaWV3Q2hpbGQoJ2RhdGVJbnB1dCcpIGRhdGVJbnB1dDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgc2hvd0NhbGVuZGFyID0gZmFsc2U7XHJcbiAgcHVibGljIG1vbnRoTmFtZXMgPSBbXHJcbiAgICAnzpnOsc69zr/Phc6sz4HOuc6/z4InLFxyXG4gICAgJ86mzrXOss+Bzr/Phc6sz4HOuc6/z4InLFxyXG4gICAgJ86czqzPgc+EzrnOv8+CJyxcclxuICAgICfOkc+Az4HOr867zrnOv8+CJyxcclxuICAgICfOnM6sz4rOv8+CJyxcclxuICAgICfOmc6/z43Ovc65zr/PgicsXHJcbiAgICAnzpnOv8+NzrvOuc6/z4InLFxyXG4gICAgJ86Rz43Os86/z4XPg8+Ezr/PgicsXHJcbiAgICAnzqPOtc+Az4TOrc68zrLPgc65zr/PgicsXHJcbiAgICAnzp/Ous+Ez47Oss+BzrnOv8+CJyxcclxuICAgICfOnc6/zrXOvM6yz4HOuc6/z4InLFxyXG4gICAgJ86UzrXOus6tzrzOss+BzrnOv8+CJyxcclxuICBdO1xyXG4gIHB1YmxpYyBkYXlOYW1lcyA9IFsnzprPhc+BJywgJ86UzrXPhScsICfOpM+BzrknLCAnzqTOtc+EJywgJ86gzrXOvCcsICfOoM6xz4EnLCAnzqPOsc6yJ107XHJcblxyXG4gIHB1YmxpYyBtb250aDogbnVtYmVyID0gLTE7XHJcbiAgcHVibGljIHllYXI6IG51bWJlciA9IC0xO1xyXG4gIHB1YmxpYyBjYWxlbmRhckRhdGVzOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBibGFua0RheXM6IGFueVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UkOiBhbnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQkOiBhbnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG4gIHB1YmxpYyBjb21wYXJlRGF0ZXMoZGF0ZTE6IERhdGUgfCB1bmRlZmluZWQgfCBudWxsLCBkYXk6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgaWYoIWRhdGUxKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRheSk7XHJcbiAgICByZXR1cm4gZGF0ZTEudG9EYXRlU3RyaW5nKCkgPT09IGQudG9EYXRlU3RyaW5nKCk7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHNlbGVjdERhdGVWYWx1ZShkYXRlOiBhbnkpOiB2b2lkIHtcclxuICAgIGxldCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRhdGUuZGF5KTtcclxuICAgIHRoaXMudmFsdWUgPSBzZWxlY3RlZERhdGU7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICBpZih0aGlzLm9uQ2hhbmdlJCkge1xyXG4gICAgICB0aGlzLm9uQ2hhbmdlJCh0aGlzLnZhbHVlKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlRGF5cygpO1xyXG4gICAgaWYodGhpcy5vblRvdWNoZWQkKSB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkJCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBwcmV2aW91c01vbnRoKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMubW9udGggIT09IDApIHtcclxuICAgICAgdGhpcy5tb250aCA9IHRoaXMubW9udGggLSAxO1xyXG4gICAgICB0aGlzLmNhbGNEYXlzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vbnRoID0gMTE7XHJcbiAgICAgIHRoaXMueWVhciA9IHRoaXMueWVhciAtIDE7XHJcbiAgICAgIHRoaXMuY2FsY0RheXMoKTtcclxuICAgIH1cclxuICAgIGlmKHRoaXMub25Ub3VjaGVkJCkge1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZXh0TW9udGgoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb250aCAhPT0gMTEpIHtcclxuICAgICAgdGhpcy5tb250aCA9IHRoaXMubW9udGggKyAxO1xyXG4gICAgICB0aGlzLmNhbGNEYXlzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vbnRoID0gMDtcclxuICAgICAgdGhpcy55ZWFyID0gdGhpcy55ZWFyICsgMTtcclxuICAgICAgdGhpcy5jYWxjRGF5cygpO1xyXG4gICAgfVxyXG4gICAgaWYodGhpcy5vblRvdWNoZWQkKSB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkJCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNhbGNEYXlzKCk6IHZvaWQge1xyXG4gICAgY29uc3QgZGF5c0luTW9udGggPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGggKyAxLCAwKS5nZXREYXRlKCk7XHJcblxyXG4gICAgLy8gZmluZCB3aGVyZSB0byBzdGFydCBjYWxlbmRhciBkYXkgb2Ygd2Vla1xyXG4gICAgY29uc3QgZGF5T2ZXZWVrID0gbmV3IERhdGUodGhpcy55ZWFyLCB0aGlzLm1vbnRoKS5nZXREYXkoKTtcclxuICAgIGNvbnN0IGJsYW5rZGF5c0FycmF5ID0gW107XHJcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8PSBkYXlPZldlZWs7IGkrKykge1xyXG4gICAgICBibGFua2RheXNBcnJheS5wdXNoKGkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRheXNBcnJheSA9IFtdO1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gZGF5c0luTW9udGg7IGkrKykge1xyXG4gICAgICBkYXlzQXJyYXkucHVzaCh7ZGF5OiBpLCB0b2RheTogdGhpcy5jb21wYXJlRGF0ZXModG9kYXksIGkpLCBzZWxlY3RlZDogdGhpcy5jb21wYXJlRGF0ZXModGhpcy52YWx1ZSwgaSl9KTtcclxuICAgIH1cclxuICAgIHRoaXMuYmxhbmtEYXlzID0gYmxhbmtkYXlzQXJyYXk7XHJcbiAgICB0aGlzLmNhbGVuZGFyRGF0ZXMgPSBkYXlzQXJyYXk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHVwZGF0ZURheXMoKTogdm9pZCB7XHJcbiAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XHJcbiAgICB0aGlzLmNhbGVuZGFyRGF0ZXMuZm9yRWFjaChkID0+IHtcclxuICAgICAgZC50b2RheSA9IHRoaXMuY29tcGFyZURhdGVzKHRvZGF5LCBkKTtcclxuICAgICAgZC5zZWxlY3RlZCA9IHRoaXMuY29tcGFyZURhdGVzKHRoaXMudmFsdWUsIGQpOztcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgaWYob2JqKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZShvYmopO1xyXG4gICAgICB0aGlzLm1vbnRoID0gdGhpcy52YWx1ZS5nZXRNb250aCgpO1xyXG4gICAgICB0aGlzLnllYXIgPSB0aGlzLnZhbHVlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlJCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25CbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMub25Ub3VjaGVkJCkge1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIHRoaXMubW9udGggPSB0b2RheS5nZXRNb250aCgpO1xyXG4gICAgdGhpcy55ZWFyID0gdG9kYXkuZ2V0RnVsbFllYXIoKTtcclxuICAgIHRoaXMuY2FsY0RheXMoKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLDhGQUE4RjtBQVk5RixNQUFNLE9BQU8sbUJBQW1CO0lBMks5QjtRQTFLUyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDVixrQkFBYSxHQUF1QixZQUFZLENBQUM7UUFDakUsZ0JBQVcsR0FBdUIsRUFBRSxDQUFDO1FBQ3JDLFVBQUssR0FBNEIsSUFBSSxDQUFDO1FBQ3JDLGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFOUQsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixlQUFVLEdBQUc7WUFDbEIsWUFBWTtZQUNaLGFBQWE7WUFDYixTQUFTO1lBQ1QsVUFBVTtZQUNWLE9BQU87WUFDUCxTQUFTO1lBQ1QsU0FBUztZQUNULFdBQVc7WUFDWCxhQUFhO1lBQ2IsV0FBVztZQUNYLFdBQVc7WUFDWCxZQUFZO1NBQ2IsQ0FBQztRQUNLLGFBQVEsR0FBRyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTdELFVBQUssR0FBVyxDQUFDLENBQUMsQ0FBQztRQUNuQixTQUFJLEdBQVcsQ0FBQyxDQUFDLENB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SUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDO0lBRU0sZUFBZSxDQUFDLElBQVM7UUFDOUIsSUFBSSxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQztRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbEMsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7UUFDRCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRU0sYUFBYTtRQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFD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QUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlCQUFpQjtnQkFDM0Isb3pMQUEyQztnQkFDM0MsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7d0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7d0JBQ2xELEtBQUssRUFBRSxJQUFJO3FCQUNaO2lCQUNGO2FBQ0Y7Ozs7dUJBRUUsS0FBSzt1QkFDTCxLQUFLOzRCQUNMLEtBQUssU0FBQyxnQkFBZ0I7MEJBQ3RCLEtBQUs7b0JBQ0wsS0FBSzswQkFDTCxNQUFNO3dCQUNOLFNBQVMsU0FBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8vIGZyZWFrc2x5IHNpbXBsZSBkYXRlIHBpY2tlciA6IGh0dHBzOi8vdGFpbHdpbmQtZWxlbWVudHMuY29tL2RvY3Mvc3RhbmRhcmQvZm9ybXMvZGF0ZXBpY2tlci9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZGF0ZS1waWNrZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlcGlja2VyQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCdkaXNwbGF5LWZvcm1hdCcpIGRpc3BsYXlGb3JtYXQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICdkZC9NTS95eXl5JztcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlcjogc3RyaW5nIHwgdW5kZWZpbmVkID0gJyc7XHJcbiAgQElucHV0KCkgdmFsdWU6IERhdGUgfCB1bmRlZmluZWQgfCBudWxsID0gbnVsbDtcclxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcclxuICBAVmlld0NoaWxkKCdkYXRlSW5wdXQnKSBkYXRlSW5wdXQ6IEVsZW1lbnRSZWYgfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIHNob3dDYWxlbmRhciA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzaG93WWVhcnMgPSBmYWxzZTtcclxuICBwdWJsaWMgbW9udGhOYW1lcyA9IFtcclxuICAgICfOmc6xzr3Ov8+FzqzPgc65zr/PgicsXHJcbiAgICAnzqbOtc6yz4HOv8+FzqzPgc65zr/PgicsXHJcbiAgICAnzpzOrM+Bz4TOuc6/z4InLFxyXG4gICAgJ86Rz4DPgc6vzrvOuc6/z4InLFxyXG4gICAgJ86czqzPis6/z4InLFxyXG4gICAgJ86Zzr/Pjc69zrnOv8+CJyxcclxuICAgICfOmc6/z43Ou865zr/PgicsXHJcbiAgICAnzpHPjc6zzr/Phc+Dz4TOv8+CJyxcclxuICAgICfOo861z4DPhM6tzrzOss+BzrnOv8+CJyxcclxuICAgICfOn866z4TPjs6yz4HOuc6/z4InLFxyXG4gICAgJ86dzr/Otc68zrLPgc65zr/PgicsXHJcbiAgICAnzpTOtc66zq3OvM6yz4HOuc6/z4InLFxyXG4gIF07XHJcbiAgcHVibGljIGRheU5hbWVzID0gWyfOms+Fz4EnLCAnzpTOtc+FJywgJ86kz4HOuScsICfOpM61z4QnLCAnzqDOtc68JywgJ86gzrHPgScsICfOo86xzrInXTtcclxuXHJcbiAgcHVibGljIG1vbnRoOiBudW1iZXIgPSAtMTtcclxuICBwdWJsaWMgeWVhcjogbnVtYmVyID0gLTE7XHJcbiAgcHVibGljIGNhbGVuZGFyRGF0ZXM6IGFueVtdID0gW107XHJcbiAgcHVibGljIGNhbGVuZGFyWWVhcnM6IGFueVtdID0gW107XHJcbiAgcHVibGljIHNob3dDYWxlbmRhclllYXJzOiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBibGFua0RheXM6IGFueVtdID0gW107XHJcbiAgcHVibGljIGNhbGVuZGFyWWVhclBhZ2UgPSAxO1xyXG4gIHByaXZhdGUgeWVhcnNQZXJQYWdlID0gMzA7XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UkOiBhbnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQkOiBhbnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIHRoaXMubW9udGggPSB0b2RheS5nZXRNb250aCgpO1xyXG4gICAgdGhpcy55ZWFyID0gdG9kYXkuZ2V0RnVsbFllYXIoKTtcclxuICAgIHRoaXMuY2FsZW5kYXJEYXRlcyA9IFt7IGRheTogdGhpcy52YWx1ZSwgdG9kYXk6IHRoaXMudmFsdWUsIHNlbGVjdGVkOiB0aGlzLnZhbHVlIH1dO1xyXG4gICAgdGhpcy5jYWxlbmRhclllYXJzID0gW3sgeWVhcjogdGhpcy52YWx1ZT8uZ2V0RnVsbFllYXIoKSwgdG9kYXk6IHRoaXMudmFsdWUsIHNlbGVjdGVkOiB0aGlzLnZhbHVlIH1dO1xyXG4gICAgY29uc3QgeWVhcnNBcnJheSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE5NTA7IGkgPD0gdG9kYXkuZ2V0RnVsbFllYXIoKSArIDI7IGkrKykge1xyXG4gICAgICB5ZWFyc0FycmF5LnB1c2goeyB5ZWFyOiBpLCB0b2RheTogdGhpcy5jb21wYXJlRGF0ZXModG9kYXksIG51bGwsIGkpLCBzZWxlY3RlZDogaSA9PSB0aGlzLnZhbHVlPy5nZXRGdWxsWWVhcigpIH0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYWxlbmRhclllYXJzID0geWVhcnNBcnJheTtcclxuICAgIHRoaXMuc2hvd0NhbGVuZGFyWWVhcnMgPSB0aGlzLnBhZ2luYXRlKHRoaXMuY2FsZW5kYXJZZWFycywgMSk7XHJcbiAgICB0aGlzLmNhbGNEYXlzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY29tcGFyZURhdGVzKGRhdGUxOiBEYXRlIHwgdW5kZWZpbmVkIHwgbnVsbCwgZGF5OiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkLCB5ZWFyOiBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIWRhdGUxKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh5ZWFyID8/IHRoaXMueWVhciwgdGhpcy5tb250aCwgZGF5ID8/IHRoaXMudmFsdWU/LmdldERheSgpKTtcclxuICAgIHJldHVybiBkYXRlMS50b0RhdGVTdHJpbmcoKSA9PT0gZC50b0RhdGVTdHJpbmcoKTtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2VsZWN0RGF0ZVZhbHVlKGRhdGU6IGFueSk6IHZvaWQge1xyXG4gICAgLy8gVGhpcyBzaG91bGQgYmUgaW4gVVRDXHJcbiAgICBsZXQgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUodGhpcy55ZWFyLCB0aGlzLm1vbnRoLCBkYXRlLmRheSwgMywgMCwgMCwgMCk7XHJcbiAgICB0aGlzLnZhbHVlID0gc2VsZWN0ZWREYXRlO1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UkKSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UkKHRoaXMudmFsdWUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy51cGRhdGVEYXlzKCk7XHJcbiAgICBpZiAodGhpcy5vblRvdWNoZWQkKSB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkJCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RZZWFyVmFsdWUoeWVhcjogYW55KTogdm9pZCB7XHJcbiAgICBsZXQgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoeWVhci55ZWFyLCAxLCAxLCAyLCAwLCAwLCAwKTtcclxuICAgIHRoaXMueWVhciA9IHllYXIueWVhcjtcclxuICAgIHRoaXMudmFsdWUgPSBzZWxlY3RlZERhdGU7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XHJcbiAgICBpZiAodGhpcy5vbkNoYW5nZSQpIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZSQodGhpcy52YWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnVwZGF0ZURheXMoKTtcclxuICAgIGlmICh0aGlzLm9uVG91Y2hlZCQpIHtcclxuICAgICAgdGhpcy5vblRvdWNoZWQkKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnNob3dZZWFycyA9IGZhbHNlO1xyXG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHByZXZpb3VzTW9udGgoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb250aCAhPT0gMCkge1xyXG4gICAgICB0aGlzLm1vbnRoID0gdGhpcy5tb250aCAtIDE7XHJcbiAgICAgIHRoaXMuY2FsY0RheXMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubW9udGggPSAxMTtcclxuICAgICAgdGhpcy55ZWFyID0gdGhpcy55ZWFyIC0gMTtcclxuICAgICAgdGhpcy5jYWxjRGF5cygpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub25Ub3VjaGVkJCkge1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZXh0TW9udGgoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5tb250aCAhPT0gMTEpIHtcclxuICAgICAgdGhpcy5tb250aCA9IHRoaXMubW9udGggKyAxO1xyXG4gICAgICB0aGlzLmNhbGNEYXlzKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vbnRoID0gMDtcclxuICAgICAgdGhpcy55ZWFyID0gdGhpcy55ZWFyICsgMTtcclxuICAgICAgdGhpcy5jYWxjRGF5cygpO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMub25Ub3VjaGVkJCkge1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBwcmV2aW91c1llYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhclllYXJzID0gdGhpcy5wYWdpbmF0ZShcclxuICAgICAgdGhpcy5jYWxlbmRhclllYXJzLFxyXG4gICAgICB0aGlzLmNhbGVuZGFyWWVhclBhZ2UgPiAxID8gLS10aGlzLmNhbGVuZGFyWWVhclBhZ2UgOiAxKTtcclxuICAgIHRoaXMuY2FsY0RheXMoKTtcclxuICAgIGlmICh0aGlzLm9uVG91Y2hlZCQpIHtcclxuICAgICAgdGhpcy5vblRvdWNoZWQkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgbmV4dFllYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhclllYXJzID0gdGhpcy5wYWdpbmF0ZShcclxuICAgICAgdGhpcy5jYWxlbmRhclllYXJzLFxyXG4gICAgICB0aGlzLmNhbGVuZGFyWWVhclBhZ2UgPD0gdGhpcy5jYWxlbmRhclllYXJzLmxlbmd0aCAvIHRoaXMueWVhcnNQZXJQYWdlID8gKyt0aGlzLmNhbGVuZGFyWWVhclBhZ2UgOiB0aGlzLmNhbGVuZGFyWWVhclBhZ2UpO1xyXG4gICAgdGhpcy5jYWxjRGF5cygpO1xyXG4gICAgaWYgKHRoaXMub25Ub3VjaGVkJCkge1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjYWxjRGF5cygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRheXNJbk1vbnRoID0gbmV3IERhdGUodGhpcy55ZWFyLCB0aGlzLm1vbnRoICsgMSwgMCkuZ2V0RGF0ZSgpO1xyXG4gICAgLy8gZmluZCB3aGVyZSB0byBzdGFydCBjYWxlbmRhciBkYXkgb2Ygd2Vla1xyXG4gICAgY29uc3QgZGF5T2ZXZWVrID0gbmV3IERhdGUodGhpcy55ZWFyLCB0aGlzLm1vbnRoKS5nZXREYXkoKTtcclxuICAgIGNvbnN0IGJsYW5rZGF5c0FycmF5ID0gW107XHJcbiAgICBmb3IgKHZhciBpID0gMTsgaSA8PSBkYXlPZldlZWs7IGkrKykge1xyXG4gICAgICBibGFua2RheXNBcnJheS5wdXNoKGkpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRheXNBcnJheSA9IFtdO1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gZGF5c0luTW9udGg7IGkrKykge1xyXG4gICAgICBkYXlzQXJyYXkucHVzaCh7IGRheTogaSwgdG9kYXk6IHRoaXMuY29tcGFyZURhdGVzKHRvZGF5LCBpLCBudWxsKSwgc2VsZWN0ZWQ6IHRoaXMuY29tcGFyZURhdGVzKHRoaXMudmFsdWUsIGksIG51bGwpIH0pO1xyXG4gICAgfVxyXG4gICAgY29uc3QgeWVhcnNBcnJheSA9IFtdO1xyXG4gICAgZm9yIChsZXQgaSA9IDE5NTA7IGkgPD0gdG9kYXkuZ2V0RnVsbFllYXIoKSArIDI7IGkrKykge1xyXG4gICAgICB5ZWFyc0FycmF5LnB1c2goeyB5ZWFyOiBpLCB0b2RheTogdGhpcy5jb21wYXJlRGF0ZXModG9kYXksIG51bGwsIGkpLCBzZWxlY3RlZDogaSA9PSB0aGlzLnllYXIgfSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNhbGVuZGFyWWVhcnMgPSB5ZWFyc0FycmF5O1xyXG4gICAgdGhpcy5ibGFua0RheXMgPSBibGFua2RheXNBcnJheTtcclxuICAgIHRoaXMuY2FsZW5kYXJEYXRlcyA9IGRheXNBcnJheTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlRGF5cygpOiB2b2lkIHtcclxuICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcclxuICAgIHRoaXMuY2FsZW5kYXJEYXRlcy5mb3JFYWNoKGQgPT4ge1xyXG4gICAgICBkLnRvZGF5ID0gdGhpcy5jb21wYXJlRGF0ZXModG9kYXksIGQsIHRoaXMueWVhcik7XHJcbiAgICAgIGQuc2VsZWN0ZWQgPSB0aGlzLmNvbXBhcmVEYXRlcyh0aGlzLnZhbHVlLCBkLCB0aGlzLnllYXIpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICBpZiAob2JqKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBuZXcgRGF0ZShvYmopO1xyXG4gICAgICB0aGlzLm1vbnRoID0gdGhpcy52YWx1ZS5nZXRNb250aCgpO1xyXG4gICAgICB0aGlzLnllYXIgPSB0aGlzLnZhbHVlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlJCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25CbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm9uVG91Y2hlZCQpIHtcclxuICAgICAgdGhpcy5vblRvdWNoZWQkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcGFnaW5hdGUoYXJyYXk6IGFueVtdLCBwYWdlX251bWJlcjogbnVtYmVyKTogYW55W10ge1xyXG4gICAgcmV0dXJuIGFycmF5LnNsaWNlKChwYWdlX251bWJlciAtIDEpICogdGhpcy55ZWFyc1BlclBhZ2UsIHBhZ2VfbnVtYmVyICogdGhpcy55ZWFyc1BlclBhZ2UpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9wZW5ZZWFycygpIHtcclxuICAgIHRoaXMuc2hvd1llYXJzID0gIXRoaXMuc2hvd1llYXJzO1xyXG4gICAgdGhpcy5zaG93Q2FsZW5kYXJZZWFycyA9IHRoaXMucGFnaW5hdGUodGhpcy5jYWxlbmRhclllYXJzLCAxKTtcclxuICAgIHRoaXMuY2FsY0RheXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuQ2FsZW5kYXIoKSB7XHJcbiAgICB0aGlzLnNob3dDYWxlbmRhciA9ICF0aGlzLnNob3dDYWxlbmRhclxyXG4gICAgdGhpcy5jYWxjRGF5cygpO1xyXG4gIH1cclxuXHJcbn0iXX0=
|