@indice/ng-components 0.2.166 → 0.2.167
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/README.md +4 -4
- package/_styles.css +4270 -4270
- package/{esm2015/indice-ng-components.js → esm2020/indice-ng-components.mjs} +0 -0
- package/esm2020/lib/controls/advanced-search/advanced-search.component.mjs +112 -0
- package/esm2020/lib/controls/advanced-search/models.mjs +90 -0
- package/{esm2015/lib/controls/avatar-initials/avatar-initials.component.js → esm2020/lib/controls/avatar-initials/avatar-initials.component.mjs} +5 -8
- package/esm2020/lib/controls/collapsible-panel/collapsible-panel.component.mjs +20 -0
- package/esm2020/lib/controls/combobox/combobox.component.mjs +97 -0
- package/esm2020/lib/controls/date-picker/date-picker.component.mjs +292 -0
- package/esm2020/lib/controls/drop-down-menu/drop-down-menu.component.mjs +68 -0
- package/esm2020/lib/controls/kpi-tile/kpi-tile.component.mjs +39 -0
- package/esm2020/lib/controls/language-selection/language-selection.component.mjs +31 -0
- package/{esm2015/lib/controls/list-view/list-column.component.js → esm2020/lib/controls/list-view/list-column.component.mjs} +4 -4
- package/{esm2015/lib/controls/list-view/list-details-section.component.js → esm2020/lib/controls/list-view/list-details-section.component.mjs} +4 -4
- package/{esm2015/lib/controls/list-view/list-tile.component.js → esm2020/lib/controls/list-view/list-tile.component.mjs} +4 -4
- package/esm2020/lib/controls/list-view/list-view-empty-state.component.mjs +29 -0
- package/esm2020/lib/controls/list-view/list-view.component.mjs +206 -0
- package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +46 -0
- package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +79 -0
- package/esm2020/lib/controls/pager/pager.component.mjs +130 -0
- package/esm2020/lib/controls/side-pane/side-pane.component.mjs +72 -0
- package/esm2020/lib/controls/skeleton-loader/skeleton-loader.component.mjs +25 -0
- package/{esm2015/lib/controls/stepper/lib-step-info.directive.js → esm2020/lib/controls/stepper/lib-step-info.directive.mjs} +4 -4
- package/{esm2015/lib/controls/stepper/lib-step-label.directive.js → esm2020/lib/controls/stepper/lib-step-label.directive.mjs} +4 -4
- package/esm2020/lib/controls/stepper/lib-step.component.mjs +81 -0
- package/esm2020/lib/controls/stepper/lib-stepper.component.mjs +108 -0
- package/esm2020/lib/controls/stepper/types/step-selected-event.mjs +4 -0
- package/{esm2015/lib/controls/stepper/types/stepper-type.js → esm2020/lib/controls/stepper/types/stepper-type.mjs} +1 -1
- package/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +60 -0
- package/esm2020/lib/controls/tabs/lib-tab.component.mjs +57 -0
- package/esm2020/lib/controls/toaster/toaster-container.component.mjs +28 -0
- package/esm2020/lib/controls/toaster/toaster.component.mjs +31 -0
- package/esm2020/lib/controls/toggle/toggle.component.mjs +64 -0
- package/esm2020/lib/controls/user-profile-menu/user-profile-menu.component.mjs +71 -0
- package/{esm2015/lib/directives/click-outside.directive.js → esm2020/lib/directives/click-outside.directive.mjs} +4 -4
- package/{esm2015/lib/directives/dynamic-component-host.directive.js → esm2020/lib/directives/dynamic-component-host.directive.mjs} +4 -4
- package/esm2020/lib/helpers/base-list.component.mjs +226 -0
- package/{esm2015/lib/icons.js → esm2020/lib/icons.mjs} +1 -1
- package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -0
- package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +130 -0
- package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +101 -0
- package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +47 -0
- package/esm2020/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.mjs +45 -0
- package/esm2020/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.mjs +25 -0
- package/esm2020/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.mjs +21 -0
- package/esm2020/lib/layouts/views/form-layout/form-layout.component.mjs +80 -0
- package/esm2020/lib/layouts/views/model-view-layout/model-view-layout.component.mjs +49 -0
- package/esm2020/lib/layouts/views/side-view-layout/side-view-layout.component.mjs +98 -0
- package/esm2020/lib/layouts/views/view-layout/view-layout.component.mjs +104 -0
- package/{esm2015/lib/ng-components.module.js → esm2020/lib/ng-components.module.mjs} +8 -10
- package/esm2020/lib/pages/auth/auth-callback/auth-callback.component.mjs +30 -0
- package/{esm2015/lib/pages/auth/auth-renew/auth-renew.component.js → esm2020/lib/pages/auth/auth-renew/auth-renew.component.mjs} +4 -4
- package/esm2020/lib/pages/auth/logged-out/logged-out.component.mjs +28 -0
- package/esm2020/lib/pages/http-status/error/error.component.mjs +17 -0
- package/esm2020/lib/pages/http-status/page-not-found/page-not-found.component.mjs +15 -0
- package/esm2020/lib/pages/http-status/unauthorized/unauthorized.component.mjs +14 -0
- package/{esm2015/lib/pipes/address.pipe.js → esm2020/lib/pipes/address.pipe.mjs} +4 -4
- package/{esm2015/lib/pipes/duration-format.pipe.js → esm2020/lib/pipes/duration-format.pipe.mjs} +4 -4
- package/esm2020/lib/services/component-loader/component-loader-options.class.mjs +8 -0
- package/esm2020/lib/services/component-loader/component-loader.class.mjs +188 -0
- package/{esm2015/lib/services/component-loader/component-loader.factory.js → esm2020/lib/services/component-loader/component-loader.factory.mjs} +4 -4
- package/{esm2015/lib/services/component-loader/content-ref.class.js → esm2020/lib/services/component-loader/content-ref.class.mjs} +1 -1
- package/esm2020/lib/services/modal-service/modal-backdrop-component.mjs +44 -0
- package/esm2020/lib/services/modal-service/modal-container-component.mjs +126 -0
- package/esm2020/lib/services/modal-service/modal-options.class.mjs +35 -0
- package/esm2020/lib/services/modal-service/modal-service.mjs +219 -0
- package/{esm2015/lib/services/modal-service/modal-styles.class.js → esm2020/lib/services/modal-service/modal-styles.class.mjs} +1 -1
- package/esm2020/lib/services/modal-service/modal.class.mjs +27 -0
- package/{esm2015/lib/services/toaster.service.js → esm2020/lib/services/toaster.service.mjs} +4 -4
- package/{esm2015/lib/tokens.js → esm2020/lib/tokens.mjs} +1 -1
- package/{esm2015/lib/types.js → esm2020/lib/types.mjs} +1 -1
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +1 -1
- package/fesm2015/indice-ng-components.mjs +4269 -0
- package/fesm2015/indice-ng-components.mjs.map +1 -0
- package/fesm2020/indice-ng-components.mjs +4196 -0
- package/fesm2020/indice-ng-components.mjs.map +1 -0
- package/{indice-ng-components.d.ts → index.d.ts} +0 -0
- package/lib/controls/advanced-search/advanced-search.component.d.ts +1 -1
- package/lib/controls/avatar-initials/avatar-initials.component.d.ts +1 -1
- package/lib/controls/collapsible-panel/collapsible-panel.component.d.ts +1 -1
- package/lib/controls/combobox/combobox.component.d.ts +1 -1
- package/lib/controls/date-picker/date-picker.component.d.ts +1 -1
- package/lib/controls/drop-down-menu/drop-down-menu.component.d.ts +1 -1
- package/lib/controls/kpi-tile/kpi-tile.component.d.ts +1 -1
- package/lib/controls/language-selection/language-selection.component.d.ts +1 -1
- package/lib/controls/list-view/list-column.component.d.ts +1 -1
- package/lib/controls/list-view/list-details-section.component.d.ts +1 -1
- package/lib/controls/list-view/list-tile.component.d.ts +1 -1
- package/lib/controls/list-view/list-view-empty-state.component.d.ts +1 -1
- package/lib/controls/list-view/list-view.component.d.ts +1 -1
- package/lib/controls/nav-links-list/nav-links-list.component.d.ts +1 -1
- package/lib/controls/notifications-indicator/notifications-indicator.component.d.ts +1 -1
- package/lib/controls/pager/pager.component.d.ts +1 -1
- package/lib/controls/side-pane/side-pane.component.d.ts +1 -1
- package/lib/controls/skeleton-loader/skeleton-loader.component.d.ts +1 -1
- package/lib/controls/stepper/lib-step-info.directive.d.ts +1 -1
- package/lib/controls/stepper/lib-step-label.directive.d.ts +1 -1
- package/lib/controls/stepper/lib-step.component.d.ts +1 -1
- package/lib/controls/stepper/lib-stepper.component.d.ts +1 -1
- package/lib/controls/tabs/lib-tab-group.component.d.ts +1 -1
- package/lib/controls/tabs/lib-tab.component.d.ts +1 -1
- package/lib/controls/toaster/toaster-container.component.d.ts +1 -1
- package/lib/controls/toaster/toaster.component.d.ts +1 -1
- package/lib/controls/toggle/toggle.component.d.ts +1 -1
- package/lib/controls/user-profile-menu/user-profile-menu.component.d.ts +1 -1
- package/lib/directives/click-outside.directive.d.ts +1 -1
- package/lib/directives/dynamic-component-host.directive.d.ts +1 -1
- package/lib/helpers/base-list.component.d.ts +1 -1
- package/lib/layouts/shell/shell-footer/shell-footer.component.d.ts +1 -1
- package/lib/layouts/shell/shell-header/shell-header.component.d.ts +1 -1
- package/lib/layouts/shell/shell-layout/shell-layout.component.d.ts +1 -1
- package/lib/layouts/shell/shell-sidebar/shell-sidebar.component.d.ts +1 -1
- package/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.d.ts +1 -1
- package/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.d.ts +1 -1
- package/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.d.ts +1 -1
- package/lib/layouts/views/form-layout/form-layout.component.d.ts +1 -1
- package/lib/layouts/views/model-view-layout/model-view-layout.component.d.ts +1 -1
- package/lib/layouts/views/side-view-layout/side-view-layout.component.d.ts +1 -1
- package/lib/layouts/views/view-layout/view-layout.component.d.ts +1 -1
- package/lib/pages/auth/auth-callback/auth-callback.component.d.ts +1 -1
- package/lib/pages/auth/auth-renew/auth-renew.component.d.ts +1 -1
- package/lib/pages/auth/logged-out/logged-out.component.d.ts +1 -1
- package/lib/pages/http-status/error/error.component.d.ts +1 -1
- package/lib/pages/http-status/page-not-found/page-not-found.component.d.ts +1 -1
- package/lib/pages/http-status/unauthorized/unauthorized.component.d.ts +1 -1
- package/lib/pipes/address.pipe.d.ts +1 -1
- package/lib/pipes/duration-format.pipe.d.ts +1 -1
- package/lib/services/modal-service/modal-backdrop-component.d.ts +1 -1
- package/lib/services/modal-service/modal-container-component.d.ts +1 -1
- package/modal.css +157 -157
- package/package.json +21 -8
- package/bundles/indice-ng-components.umd.js +0 -5003
- package/bundles/indice-ng-components.umd.js.map +0 -1
- package/esm2015/lib/controls/advanced-search/advanced-search.component.js +0 -116
- package/esm2015/lib/controls/advanced-search/models.js +0 -91
- package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +0 -23
- package/esm2015/lib/controls/combobox/combobox.component.js +0 -100
- package/esm2015/lib/controls/date-picker/date-picker.component.js +0 -301
- package/esm2015/lib/controls/drop-down-menu/drop-down-menu.component.js +0 -72
- package/esm2015/lib/controls/kpi-tile/kpi-tile.component.js +0 -42
- package/esm2015/lib/controls/language-selection/language-selection.component.js +0 -35
- package/esm2015/lib/controls/list-view/list-view-empty-state.component.js +0 -32
- package/esm2015/lib/controls/list-view/list-view.component.js +0 -209
- package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +0 -51
- package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +0 -82
- package/esm2015/lib/controls/pager/pager.component.js +0 -133
- package/esm2015/lib/controls/side-pane/side-pane.component.js +0 -76
- package/esm2015/lib/controls/skeleton-loader/skeleton-loader.component.js +0 -29
- package/esm2015/lib/controls/stepper/lib-step.component.js +0 -82
- package/esm2015/lib/controls/stepper/lib-stepper.component.js +0 -115
- package/esm2015/lib/controls/stepper/types/step-selected-event.js +0 -4
- package/esm2015/lib/controls/tabs/lib-tab-group.component.js +0 -67
- package/esm2015/lib/controls/tabs/lib-tab.component.js +0 -58
- package/esm2015/lib/controls/toaster/toaster-container.component.js +0 -31
- package/esm2015/lib/controls/toaster/toaster.component.js +0 -34
- package/esm2015/lib/controls/toggle/toggle.component.js +0 -68
- package/esm2015/lib/controls/user-profile-menu/user-profile-menu.component.js +0 -75
- package/esm2015/lib/helpers/base-list.component.js +0 -227
- package/esm2015/lib/layouts/shell/shell-footer/shell-footer.component.js +0 -22
- package/esm2015/lib/layouts/shell/shell-header/shell-header.component.js +0 -135
- package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +0 -106
- package/esm2015/lib/layouts/shell/shell-sidebar/shell-sidebar.component.js +0 -50
- package/esm2015/lib/layouts/shell/shell-sidebar-header/shell-sidebar-header.component.js +0 -48
- package/esm2015/lib/layouts/shell/shell-sidebar-layout/shell-sidebar-layout.component.js +0 -28
- package/esm2015/lib/layouts/shell/shell-stacked-layout/shell-stacked-layout.component.js +0 -24
- package/esm2015/lib/layouts/views/form-layout/form-layout.component.js +0 -85
- package/esm2015/lib/layouts/views/model-view-layout/model-view-layout.component.js +0 -53
- package/esm2015/lib/layouts/views/side-view-layout/side-view-layout.component.js +0 -101
- package/esm2015/lib/layouts/views/view-layout/view-layout.component.js +0 -110
- package/esm2015/lib/pages/auth/auth-callback/auth-callback.component.js +0 -34
- package/esm2015/lib/pages/auth/logged-out/logged-out.component.js +0 -32
- package/esm2015/lib/pages/http-status/error/error.component.js +0 -20
- package/esm2015/lib/pages/http-status/page-not-found/page-not-found.component.js +0 -18
- package/esm2015/lib/pages/http-status/unauthorized/unauthorized.component.js +0 -17
- package/esm2015/lib/services/component-loader/component-loader-options.class.js +0 -8
- package/esm2015/lib/services/component-loader/component-loader.class.js +0 -192
- package/esm2015/lib/services/modal-service/modal-backdrop-component.js +0 -44
- package/esm2015/lib/services/modal-service/modal-container-component.js +0 -128
- package/esm2015/lib/services/modal-service/modal-options.class.js +0 -35
- package/esm2015/lib/services/modal-service/modal-service.js +0 -220
- package/esm2015/lib/services/modal-service/modal.class.js +0 -27
- package/fesm2015/indice-ng-components.js +0 -4355
- package/fesm2015/indice-ng-components.js.map +0 -1
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
import { getLocaleMonthNames, FormStyle, TranslationWidth, getLocaleDayNames } from '@angular/common';
|
|
2
|
+
import { Component, EventEmitter, forwardRef, Inject, Input, LOCALE_ID, Output, ViewChild } from '@angular/core';
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common";
|
|
6
|
+
import * as i2 from "../../directives/click-outside.directive";
|
|
7
|
+
// freaksly simple date picker : https://tailwind-elements.com/docs/standard/forms/datepicker/
|
|
8
|
+
export class DatepickerComponent {
|
|
9
|
+
constructor(locale) {
|
|
10
|
+
this.locale = locale;
|
|
11
|
+
this.readonly = false;
|
|
12
|
+
this.disabled = false;
|
|
13
|
+
this.inline = false;
|
|
14
|
+
this.displayFormat = 'dd/MM/yyyy';
|
|
15
|
+
this.placeholder = '';
|
|
16
|
+
this.value = null;
|
|
17
|
+
this.valueChange = new EventEmitter();
|
|
18
|
+
this.minDate = undefined;
|
|
19
|
+
this.maxDate = undefined;
|
|
20
|
+
this.showCalendar = false;
|
|
21
|
+
this.showYears = false;
|
|
22
|
+
this.monthNames = getLocaleMonthNames(this.locale, FormStyle.Standalone, TranslationWidth.Wide);
|
|
23
|
+
this.dayNames = getLocaleDayNames(this.locale, FormStyle.Standalone, TranslationWidth.Abbreviated);
|
|
24
|
+
this.month = -1;
|
|
25
|
+
this.year = -1;
|
|
26
|
+
this.calendarDates = [];
|
|
27
|
+
this.calendarYears = [];
|
|
28
|
+
this.showCalendarYears = [];
|
|
29
|
+
this.blankDays = [];
|
|
30
|
+
this.calendarYearPage = 1;
|
|
31
|
+
this.yearsPerPage = 30;
|
|
32
|
+
this.onChange$ = undefined;
|
|
33
|
+
this.onTouched$ = undefined;
|
|
34
|
+
}
|
|
35
|
+
ngOnInit() {
|
|
36
|
+
let today = new Date();
|
|
37
|
+
this.month = today.getMonth();
|
|
38
|
+
this.year = today.getFullYear();
|
|
39
|
+
this.calendarDates = [{ day: this.value, today: this.value, selected: this.value }];
|
|
40
|
+
this.calendarYears = [{ year: this.value?.getFullYear(), today: this.value, selected: this.value }];
|
|
41
|
+
const yearsArray = [];
|
|
42
|
+
for (let i = 1950; i <= today.getFullYear() + 2; i++) {
|
|
43
|
+
yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.value?.getFullYear() });
|
|
44
|
+
}
|
|
45
|
+
this.calendarYears = yearsArray;
|
|
46
|
+
this.showCalendarYears = this.paginate(this.calendarYears, 1);
|
|
47
|
+
this.calcDays();
|
|
48
|
+
}
|
|
49
|
+
writeValue(obj) {
|
|
50
|
+
if (obj) {
|
|
51
|
+
this.value = new Date(obj);
|
|
52
|
+
this.month = this.value.getMonth();
|
|
53
|
+
this.year = this.value.getFullYear();
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
registerOnChange(fn) {
|
|
57
|
+
this.onChange$ = fn;
|
|
58
|
+
}
|
|
59
|
+
registerOnTouched(fn) {
|
|
60
|
+
this.onTouched$ = fn;
|
|
61
|
+
}
|
|
62
|
+
onBlur(event) {
|
|
63
|
+
if (this.onTouched$) {
|
|
64
|
+
this.onTouched$();
|
|
65
|
+
}
|
|
66
|
+
this.getDateFromInput();
|
|
67
|
+
}
|
|
68
|
+
selectDateValue(date) {
|
|
69
|
+
// This should be in UTC
|
|
70
|
+
if (!this.outOfRangeDate(date.day)) {
|
|
71
|
+
let selectedDate = new Date(this.year, this.month, date.day, 3, 0, 0, 0);
|
|
72
|
+
this.value = selectedDate;
|
|
73
|
+
this.valueChange.emit(this.value);
|
|
74
|
+
if (this.onChange$) {
|
|
75
|
+
this.onChange$(this.value);
|
|
76
|
+
}
|
|
77
|
+
this.updateDays();
|
|
78
|
+
if (this.onTouched$) {
|
|
79
|
+
this.onTouched$();
|
|
80
|
+
}
|
|
81
|
+
this.calcDays();
|
|
82
|
+
this.showCalendar = false;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
selectYearValue(year) {
|
|
86
|
+
// This should be in UTC
|
|
87
|
+
const tempYear = this.year;
|
|
88
|
+
this.year = year.year;
|
|
89
|
+
if (!this.outOfRangeDate(this.calendarDates?.find(x => x.selected == true) ?? { day: 1 })) {
|
|
90
|
+
let selectedDate = new Date(year.year, this.month ?? 1, this.calendarDates?.find(x => x.selected == true).day ?? 1, 3, 0, 0, 0);
|
|
91
|
+
this.value = selectedDate;
|
|
92
|
+
this.valueChange.emit(this.value);
|
|
93
|
+
if (this.onChange$) {
|
|
94
|
+
this.onChange$(this.value);
|
|
95
|
+
}
|
|
96
|
+
this.updateDays();
|
|
97
|
+
if (this.onTouched$) {
|
|
98
|
+
this.onTouched$();
|
|
99
|
+
}
|
|
100
|
+
this.showYears = false;
|
|
101
|
+
this.showCalendar = true;
|
|
102
|
+
this.calcDays();
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.year = tempYear;
|
|
106
|
+
this.showYears = false;
|
|
107
|
+
this.showCalendar = true;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
previousMonth() {
|
|
111
|
+
if (this.month !== 0) {
|
|
112
|
+
this.month = this.month - 1;
|
|
113
|
+
this.calcDays();
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
this.month = 11;
|
|
117
|
+
this.year = this.year - 1;
|
|
118
|
+
this.calcDays();
|
|
119
|
+
}
|
|
120
|
+
if (this.onTouched$) {
|
|
121
|
+
this.onTouched$();
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
nextMonth() {
|
|
125
|
+
if (this.month !== 11) {
|
|
126
|
+
this.month = this.month + 1;
|
|
127
|
+
this.calcDays();
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
this.month = 0;
|
|
131
|
+
this.year = this.year + 1;
|
|
132
|
+
this.calcDays();
|
|
133
|
+
}
|
|
134
|
+
if (this.onTouched$) {
|
|
135
|
+
this.onTouched$();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
previousYear() {
|
|
139
|
+
this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage > 1 ? --this.calendarYearPage : 1);
|
|
140
|
+
this.calcDays();
|
|
141
|
+
if (this.onTouched$) {
|
|
142
|
+
this.onTouched$();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
nextYear() {
|
|
146
|
+
this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage <= this.calendarYears.length / this.yearsPerPage
|
|
147
|
+
? ++this.calendarYearPage
|
|
148
|
+
: this.calendarYearPage);
|
|
149
|
+
this.calcDays();
|
|
150
|
+
if (this.onTouched$) {
|
|
151
|
+
this.onTouched$();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
compareDates(date1, day, year) {
|
|
155
|
+
if (!date1) {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
const d = new Date(year ?? this.year, this.month, day ?? this.value?.getDay());
|
|
159
|
+
return date1.toDateString() === d.toDateString();
|
|
160
|
+
}
|
|
161
|
+
;
|
|
162
|
+
calcDays() {
|
|
163
|
+
const daysInMonth = new Date(this.year, this.month + 1, 0).getDate();
|
|
164
|
+
// find where to start calendar day of week
|
|
165
|
+
const dayOfWeek = new Date(this.year, this.month).getDay();
|
|
166
|
+
const blankdaysArray = new Array();
|
|
167
|
+
for (var i = 1; i <= dayOfWeek; i++) {
|
|
168
|
+
// check if month is February
|
|
169
|
+
blankdaysArray.push(this.month != 2 ? (32 - i) : (29 - i));
|
|
170
|
+
blankdaysArray.reverse().sort();
|
|
171
|
+
}
|
|
172
|
+
const daysArray = [];
|
|
173
|
+
const today = new Date();
|
|
174
|
+
for (var i = 1; i <= daysInMonth; i++) {
|
|
175
|
+
daysArray.push({ day: i, today: this.compareDates(today, i, null), selected: this.compareDates(this.value ?? today, i, null) });
|
|
176
|
+
}
|
|
177
|
+
const yearsArray = [];
|
|
178
|
+
for (let i = 1950; i <= today.getFullYear() + 2; i++) {
|
|
179
|
+
yearsArray.push({ year: i, today: this.compareDates(today, null, i), selected: i == this.year });
|
|
180
|
+
}
|
|
181
|
+
this.calendarYears = yearsArray;
|
|
182
|
+
this.blankDays = blankdaysArray;
|
|
183
|
+
this.calendarDates = daysArray;
|
|
184
|
+
}
|
|
185
|
+
updateDays() {
|
|
186
|
+
const today = new Date();
|
|
187
|
+
this.calendarDates.forEach(d => {
|
|
188
|
+
d.today = this.compareDates(today, d, this.year);
|
|
189
|
+
d.selected = this.compareDates(this.value, d, this.year);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
paginate(array, page_number) {
|
|
193
|
+
return array.slice((page_number - 1) * this.yearsPerPage, page_number * this.yearsPerPage);
|
|
194
|
+
}
|
|
195
|
+
getDateFromInput() {
|
|
196
|
+
if (this.dateInput?.nativeElement.value !== '' && !this.inline) {
|
|
197
|
+
var dateParts = this.dateInput?.nativeElement.value.split("/");
|
|
198
|
+
let dateInGrFormat = new Date(+dateParts[2], dateParts[1] - 1, +dateParts[0], 3, 0, 0);
|
|
199
|
+
if (dateInGrFormat.toString() !== 'Invalid Date') {
|
|
200
|
+
this.writeValue(dateInGrFormat);
|
|
201
|
+
this.calcDays();
|
|
202
|
+
this.valueChange.emit(dateInGrFormat);
|
|
203
|
+
}
|
|
204
|
+
if (this.onChange$) {
|
|
205
|
+
this.onChange$(this.value);
|
|
206
|
+
}
|
|
207
|
+
this.updateDays();
|
|
208
|
+
if (this.onTouched$) {
|
|
209
|
+
this.onTouched$();
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
this.showCalendar = false;
|
|
213
|
+
}
|
|
214
|
+
openYears() {
|
|
215
|
+
this.showYears = !this.showYears;
|
|
216
|
+
this.calendarYearPage = Math.ceil(this.calendarYears.map(x => x.year).indexOf(this.year) / this.yearsPerPage);
|
|
217
|
+
this.showCalendarYears = this.paginate(this.calendarYears, this.calendarYearPage !== 0 ? this.calendarYearPage : 1);
|
|
218
|
+
this.calcDays();
|
|
219
|
+
}
|
|
220
|
+
openCalendar() {
|
|
221
|
+
this.showCalendar = !this.showCalendar;
|
|
222
|
+
this.calcDays();
|
|
223
|
+
}
|
|
224
|
+
closeCalendar() {
|
|
225
|
+
this.showCalendar = false;
|
|
226
|
+
this.getDateFromInput();
|
|
227
|
+
}
|
|
228
|
+
outOfRangeDate(date) {
|
|
229
|
+
let outOfRange = false;
|
|
230
|
+
if (this.minDate || this.maxDate) {
|
|
231
|
+
const d = new Date(this.year, this.month, date.day);
|
|
232
|
+
const dateInMillis = d.getTime();
|
|
233
|
+
if (this.minDate) {
|
|
234
|
+
let minDate = this.minDate.getTime();
|
|
235
|
+
if (dateInMillis < minDate && this.minDate.toDateString() !== d.toDateString()) {
|
|
236
|
+
outOfRange = true;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
if (this.maxDate) {
|
|
240
|
+
let maxDate = this.maxDate.getTime();
|
|
241
|
+
if (dateInMillis > maxDate && this.maxDate.toDateString() !== d.toDateString()) {
|
|
242
|
+
outOfRange = true;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return outOfRange;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
DatepickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DatepickerComponent, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Component });
|
|
250
|
+
DatepickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: DatepickerComponent, selector: "lib-date-picker", inputs: { readonly: "readonly", disabled: "disabled", inline: "inline", displayFormat: ["display-format", "displayFormat"], placeholder: "placeholder", value: "value", minDate: "minDate", maxDate: "maxDate" }, outputs: { valueChange: "valueChange" }, providers: [
|
|
251
|
+
{
|
|
252
|
+
provide: NG_VALUE_ACCESSOR,
|
|
253
|
+
useExisting: forwardRef(() => DatepickerComponent),
|
|
254
|
+
multi: true
|
|
255
|
+
}
|
|
256
|
+
], viewQueries: [{ propertyName: "dateInput", first: true, predicate: ["dateInput"], descendants: true }], ngImport: i0, template: "<div class=\"flex\"\n [ngClass]=\"{'relative': !inline}\"\n (clickOutside)=\"closeCalendar()\">\n\n <input type=\"text\"\n *ngIf=\"!inline\"\n #dateInput\n [readonly]=\"readonly\"\n name=\"dateInput\"\n (blur)=\"onBlur($event)\"\n id=\"dateInput\"\n (focus)=\"showCalendar = false\"\n [value]=\"value | date: displayFormat\"\n class=\"detapicker-input\"\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\n [placeholder]=\"disabled ? '' : placeholder\">\n\n <button type=\"button\"\n *ngIf=\"!inline\"\n class=\"datepicker-button\"\n [disabled]=\"disabled\"\n (click)=\"openCalendar()\"\n [ngClass]=\"{'cursor-not-allowed': disabled}\">\n <i class=\"ms-Icon ms-Icon--DateTime2\"></i>\n </button>\n\n <div *ngIf=\"showCalendar || inline\"\n [ngClass]=\"{'absolute': !inline}\"\n class=\"datepicker-background\"\n style=\"height:18rem;min-width:16rem;\"\n name=\"calendar\">\n <div class=\"datepicker-btn-wrapper\">\n <div>\n <button type=\"button\"\n (click)=\"openYears()\">\n <span class=\"datepicker-selected-month\">\n {{monthNames[month]}}\n </span>\n <span class=\"datepicker-selected-year\">\n {{year}}</span>\n </button>\n </div>\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\n <button type=\"button\"\n class=\"datepicker-nav-btn\"\n (click)=\"previousMonth();\">\n <svg fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n <button type=\"button\"\n class=\"datepicker-nav-btn\"\n (click)=\"nextMonth()\">\n <svg fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </div>\n <ng-template #showYearsPickerTmpl>\n <div>\n <button type=\"button\"\n class=\"datepicker-nav-btn\"\n (click)=\"previousYear();\">\n <svg fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n <button type=\"button\"\n class=\"datepicker-nav-btn\"\n (click)=\"nextYear()\">\n <svg fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </div>\n </ng-template>\n </div>\n\n <div class=\"datepicker-wrapper\"\n *ngIf=\"!showYears; else showCalYearsTmpl\">\n <div *ngFor=\"let day of dayNames\"\n class=\"datepicker-day-name\"\n style=\"width: 14.28%\">{{day}}</div>\n </div>\n\n <ng-template #showCalYearsTmpl>\n <div class=\"datepicker-content-wrapper\">\n <div *ngFor=\"let year of showCalendarYears\"\n style=\"width: 18.28%\"\n class=\"px-1 mb-1\">\n <div (click)=\"selectYearValue(year)\"\n class=\"datepicker-year\"\n [class]=\"year.selected ? 'selected' : 'not-selected'\">\n {{year.year}}</div>\n </div>\n </div>\n </ng-template>\n\n <div class=\"datepicker-content-wrapper\"\n *ngIf=\"!showYears\">\n <div *ngFor=\"let blankday of blankDays\"\n style=\"width: 14.28%\"\n class=\"datepicker-blank-days\">{{blankday}}</div>\n <div *ngFor=\"let date of calendarDates;\"\n style=\"width: 14.28%\"\n class=\"px-1 mb-1\">\n <div (click)=\"selectDateValue(date)\"\n class=\"datepicker-days\"\n [ngClass]=\"{'out-of-range': outOfRangeDate(date),'selected': date.selected, 'not-selected':!date.selected }\">\n {{date.day}}</div>\n </div>\n </div>\n </div>\n\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
|
|
257
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DatepickerComponent, decorators: [{
|
|
258
|
+
type: Component,
|
|
259
|
+
args: [{ selector: 'lib-date-picker', providers: [
|
|
260
|
+
{
|
|
261
|
+
provide: NG_VALUE_ACCESSOR,
|
|
262
|
+
useExisting: forwardRef(() => DatepickerComponent),
|
|
263
|
+
multi: true
|
|
264
|
+
}
|
|
265
|
+
], template: "<div class=\"flex\"\n [ngClass]=\"{'relative': !inline}\"\n (clickOutside)=\"closeCalendar()\">\n\n <input type=\"text\"\n *ngIf=\"!inline\"\n #dateInput\n [readonly]=\"readonly\"\n name=\"dateInput\"\n (blur)=\"onBlur($event)\"\n id=\"dateInput\"\n (focus)=\"showCalendar = false\"\n [value]=\"value | date: displayFormat\"\n class=\"detapicker-input\"\n [ngClass]=\"{'cursor-not-allowed': disabled}\"\n [placeholder]=\"disabled ? '' : placeholder\">\n\n <button type=\"button\"\n *ngIf=\"!inline\"\n class=\"datepicker-button\"\n [disabled]=\"disabled\"\n (click)=\"openCalendar()\"\n [ngClass]=\"{'cursor-not-allowed': disabled}\">\n <i class=\"ms-Icon ms-Icon--DateTime2\"></i>\n </button>\n\n <div *ngIf=\"showCalendar || inline\"\n [ngClass]=\"{'absolute': !inline}\"\n class=\"datepicker-background\"\n style=\"height:18rem;min-width:16rem;\"\n name=\"calendar\">\n <div class=\"datepicker-btn-wrapper\">\n <div>\n <button type=\"button\"\n (click)=\"openYears()\">\n <span class=\"datepicker-selected-month\">\n {{monthNames[month]}}\n </span>\n <span class=\"datepicker-selected-year\">\n {{year}}</span>\n </button>\n </div>\n <div *ngIf=\"!showYears; else showYearsPickerTmpl\">\n <button type=\"button\"\n class=\"datepicker-nav-btn\"\n (click)=\"previousMonth();\">\n <svg fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n <button type=\"button\"\n class=\"datepicker-nav-btn\"\n (click)=\"nextMonth()\">\n <svg fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </div>\n <ng-template #showYearsPickerTmpl>\n <div>\n <button type=\"button\"\n class=\"datepicker-nav-btn\"\n (click)=\"previousYear();\">\n <svg fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M15 19l-7-7 7-7\" />\n </svg>\n </button>\n <button type=\"button\"\n class=\"datepicker-nav-btn\"\n (click)=\"nextYear()\">\n <svg fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\">\n <path stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n stroke-width=\"2\"\n d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </div>\n </ng-template>\n </div>\n\n <div class=\"datepicker-wrapper\"\n *ngIf=\"!showYears; else showCalYearsTmpl\">\n <div *ngFor=\"let day of dayNames\"\n class=\"datepicker-day-name\"\n style=\"width: 14.28%\">{{day}}</div>\n </div>\n\n <ng-template #showCalYearsTmpl>\n <div class=\"datepicker-content-wrapper\">\n <div *ngFor=\"let year of showCalendarYears\"\n style=\"width: 18.28%\"\n class=\"px-1 mb-1\">\n <div (click)=\"selectYearValue(year)\"\n class=\"datepicker-year\"\n [class]=\"year.selected ? 'selected' : 'not-selected'\">\n {{year.year}}</div>\n </div>\n </div>\n </ng-template>\n\n <div class=\"datepicker-content-wrapper\"\n *ngIf=\"!showYears\">\n <div *ngFor=\"let blankday of blankDays\"\n style=\"width: 14.28%\"\n class=\"datepicker-blank-days\">{{blankday}}</div>\n <div *ngFor=\"let date of calendarDates;\"\n style=\"width: 14.28%\"\n class=\"px-1 mb-1\">\n <div (click)=\"selectDateValue(date)\"\n class=\"datepicker-days\"\n [ngClass]=\"{'out-of-range': outOfRangeDate(date),'selected': date.selected, 'not-selected':!date.selected }\">\n {{date.day}}</div>\n </div>\n </div>\n </div>\n\n</div>" }]
|
|
266
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
267
|
+
type: Inject,
|
|
268
|
+
args: [LOCALE_ID]
|
|
269
|
+
}] }]; }, propDecorators: { readonly: [{
|
|
270
|
+
type: Input
|
|
271
|
+
}], disabled: [{
|
|
272
|
+
type: Input
|
|
273
|
+
}], inline: [{
|
|
274
|
+
type: Input
|
|
275
|
+
}], displayFormat: [{
|
|
276
|
+
type: Input,
|
|
277
|
+
args: ['display-format']
|
|
278
|
+
}], placeholder: [{
|
|
279
|
+
type: Input
|
|
280
|
+
}], value: [{
|
|
281
|
+
type: Input
|
|
282
|
+
}], valueChange: [{
|
|
283
|
+
type: Output
|
|
284
|
+
}], dateInput: [{
|
|
285
|
+
type: ViewChild,
|
|
286
|
+
args: ['dateInput']
|
|
287
|
+
}], minDate: [{
|
|
288
|
+
type: Input
|
|
289
|
+
}], maxDate: [{
|
|
290
|
+
type: Input
|
|
291
|
+
}] } });
|
|
292
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEcsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckksT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBRXpFLDhGQUE4RjtBQVk5RixNQUFNLE9BQU8sbUJBQW1CO0lBMkM5QixZQUFzQyxNQUFjO1FBQWQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQTFDM0MsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUMxQixhQUFRLEdBQVksS0FBSyxDQUFDO1FBQzFCLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDUixrQkFBYSxHQUF1QixZQUFZLENBQUM7UUFDakUsZ0JBQVcsR0FBdUIsRUFBRSxDQUFDO1FBQ3JDLFVBQUssR0FBNEIsSUFBSSxDQUFDO1FBQ3JDLGdCQUFXLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7UUFFNUQsWUFBTyxHQUFxQixTQUFTLENBQUM7UUFDdEMsWUFBTyxHQUFxQixTQUFTLENBQUM7UUFDeEMsaUJBQVksR0FBRyxLQUFLLENBQUM7UUFDckIsY0FB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QUFDLFlBQVksRUFBRSxLQUFLLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtvQkFDOUUsVUFBVSxHQUFHLElBQUksQ0FBQztpQkFDbkI7YUFDRjtTQUNGO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQzs7Z0hBclFVLG1CQUFtQixrQkEyQ1YsU0FBUztvR0EzQ2xCLG1CQUFtQixxU0FSbkI7UUFDVDtZQUNFLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUNsRCxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0Ysa0lDZEgseW5KQXNJTTsyRkR0SE8sbUJBQW1CO2tCQVgvQixTQUFTOytCQUNFLGlCQUFpQixhQUVoQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OzBCQTZDWSxNQUFNOzJCQUFDLFNBQVM7NENBMUNwQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNtQixhQUFhO3NCQUFyQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFDZCxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBQ2IsT0FBTztzQkFBZixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldExvY2FsZU1vbnRoTmFtZXMsIEZvcm1TdHlsZSwgVHJhbnNsYXRpb25XaWR0aCwgZ2V0TG9jYWxlRGF5TmFtZXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEluamVjdCwgSW5wdXQsIExPQ0FMRV9JRCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vLyBmcmVha3NseSBzaW1wbGUgZGF0ZSBwaWNrZXIgOiBodHRwczovL3RhaWx3aW5kLWVsZW1lbnRzLmNvbS9kb2NzL3N0YW5kYXJkL2Zvcm1zL2RhdGVwaWNrZXIvXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZGF0ZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVwaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBpbmxpbmU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCdkaXNwbGF5LWZvcm1hdCcpIGRpc3BsYXlGb3JtYXQ6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICdkZC9NTS95eXl5JztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xuICBASW5wdXQoKSB2YWx1ZTogRGF0ZSB8IHVuZGVmaW5lZCB8IG51bGwgPSBudWxsO1xuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcbiAgQFZpZXdDaGlsZCgnZGF0ZUlucHV0JykgZGF0ZUlucHV0OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtaW5EYXRlOiBEYXRlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBASW5wdXQoKSBtYXhEYXRlOiBEYXRlIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICBwdWJsaWMgc2hvd0NhbGVuZGFyID0gZmFsc2U7XG4gIHB1YmxpYyBzaG93WWVhcnMgPSBmYWxzZTtcbiAgcHVibGljIG1vbnRoTmFtZXMgPSBnZXRMb2NhbGVNb250aE5hbWVzKHRoaXMubG9jYWxlLCBGb3JtU3R5bGUuU3RhbmRhbG9uZSwgVHJhbnNsYXRpb25XaWR0aC5XaWRlKTtcbiAgcHVibGljIGRheU5hbWVzID0gZ2V0TG9jYWxlRGF5TmFtZXModGhpcy5sb2NhbGUsIEZvcm1TdHlsZS5TdGFuZGFsb25lLCBUcmFuc2xhdGlvbldpZHRoLkFiYnJldmlhdGVkKTtcblxuICBwdWJsaWMgbW9udGg6IG51bWJlciA9IC0xO1xuICBwdWJsaWMgeWVhcjogbnVtYmVyID0gLTE7XG4gIHB1YmxpYyBjYWxlbmRhckRhdGVzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgY2FsZW5kYXJZZWFyczogYW55W10gPSBbXTtcbiAgcHVibGljIHNob3dDYWxlbmRhclllYXJzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgYmxhbmtEYXlzOiBhbnlbXSA9IFtdO1xuICBwdWJsaWMgY2FsZW5kYXJZZWFyUGFnZSA9IDE7XG4gIHByaXZhdGUgeWVhcnNQZXJQYWdlID0gMzA7XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZSQ6IGFueSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBvblRvdWNoZWQkOiBhbnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgbGV0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICB0aGlzLm1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKTtcbiAgICB0aGlzLnllYXIgPSB0b2RheS5nZXRGdWxsWWVhcigpO1xuICAgIHRoaXMuY2FsZW5kYXJEYXRlcyA9IFt7IGRheTogdGhpcy52YWx1ZSwgdG9kYXk6IHRoaXMudmFsdWUsIHNlbGVjdGVkOiB0aGlzLnZhbHVlIH1dO1xuICAgIHRoaXMuY2FsZW5kYXJZZWFycyA9IFt7IHllYXI6IHRoaXMudmFsdWU/LmdldEZ1bGxZZWFyKCksIHRvZGF5OiB0aGlzLnZhbHVlLCBzZWxlY3RlZDogdGhpcy52YWx1ZSB9XTtcbiAgICBjb25zdCB5ZWFyc0FycmF5ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDE5NTA7IGkgPD0gdG9kYXkuZ2V0RnVsbFllYXIoKSArIDI7IGkrKykge1xuICAgICAgeWVhcnNBcnJheS5wdXNoKHsgeWVhcjogaSwgdG9kYXk6IHRoaXMuY29tcGFyZURhdGVzKHRvZGF5LCBudWxsLCBpKSwgc2VsZWN0ZWQ6IGkgPT0gdGhpcy52YWx1ZT8uZ2V0RnVsbFllYXIoKSB9KTtcbiAgICB9XG4gICAgdGhpcy5jYWxlbmRhclllYXJzID0geWVhcnNBcnJheTtcbiAgICB0aGlzLnNob3dDYWxlbmRhclllYXJzID0gdGhpcy5wYWdpbmF0ZSh0aGlzLmNhbGVuZGFyWWVhcnMsIDEpO1xuICAgIHRoaXMuY2FsY0RheXMoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTE9DQUxFX0lEKSBwdWJsaWMgbG9jYWxlOiBzdHJpbmcpIHsgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAob2JqKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUob2JqKTtcbiAgICAgIHRoaXMubW9udGggPSB0aGlzLnZhbHVlLmdldE1vbnRoKCk7XG4gICAgICB0aGlzLnllYXIgPSB0aGlzLnZhbHVlLmdldEZ1bGxZZWFyKCk7XG4gICAgfVxuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UkID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQkID0gZm47XG4gIH1cblxuICBwdWJsaWMgb25CbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vblRvdWNoZWQkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcbiAgICB9XG4gICAgdGhpcy5nZXREYXRlRnJvbUlucHV0KCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGF0ZVZhbHVlKGRhdGU6IGFueSk6IHZvaWQge1xuICAgIC8vIFRoaXMgc2hvdWxkIGJlIGluIFVUQ1xuICAgIGlmICghdGhpcy5vdXRPZlJhbmdlRGF0ZShkYXRlLmRheSkpIHtcbiAgICAgIGxldCBzZWxlY3RlZERhdGUgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRhdGUuZGF5LCAzLCAwLCAwLCAwKTtcbiAgICAgIHRoaXMudmFsdWUgPSBzZWxlY3RlZERhdGU7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgICBpZiAodGhpcy5vbkNoYW5nZSQpIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSQodGhpcy52YWx1ZSk7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZURheXMoKTtcbiAgICAgIGlmICh0aGlzLm9uVG91Y2hlZCQpIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQkKCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNhbGNEYXlzKCk7XG4gICAgICB0aGlzLnNob3dDYWxlbmRhciA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RZZWFyVmFsdWUoeWVhcjogYW55KTogdm9pZCB7XG4gICAgLy8gVGhpcyBzaG91bGQgYmUgaW4gVVRDXG4gICAgY29uc3QgdGVtcFllYXIgPSB0aGlzLnllYXI7XG4gICAgdGhpcy55ZWFyID0geWVhci55ZWFyO1xuICAgIGlmICghdGhpcy5vdXRPZlJhbmdlRGF0ZSh0aGlzLmNhbGVuZGFyRGF0ZXM/LmZpbmQoeCA9PiB4LnNlbGVjdGVkID09IHRydWUpID8/IHsgZGF5OiAxIH0pKSB7XG4gICAgICBsZXQgc2VsZWN0ZWREYXRlID0gbmV3IERhdGUoeWVhci55ZWFyLCB0aGlzLm1vbnRoID8/IDEsIHRoaXMuY2FsZW5kYXJEYXRlcz8uZmluZCh4ID0+IHguc2VsZWN0ZWQgPT0gdHJ1ZSkuZGF5ID8/IDEsIDMsIDAsIDAsIDApO1xuICAgICAgdGhpcy52YWx1ZSA9IHNlbGVjdGVkRGF0ZTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlJCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlJCh0aGlzLnZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlRGF5cygpO1xuICAgICAgaWYgKHRoaXMub25Ub3VjaGVkJCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2hvd1llYXJzID0gZmFsc2U7XG4gICAgICB0aGlzLnNob3dDYWxlbmRhciA9IHRydWU7XG4gICAgICB0aGlzLmNhbGNEYXlzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMueWVhciA9IHRlbXBZZWFyO1xuICAgICAgdGhpcy5zaG93WWVhcnMgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2hvd0NhbGVuZGFyID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcHJldmlvdXNNb250aCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5tb250aCAhPT0gMCkge1xuICAgICAgdGhpcy5tb250aCA9IHRoaXMubW9udGggLSAxO1xuICAgICAgdGhpcy5jYWxjRGF5cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vbnRoID0gMTE7XG4gICAgICB0aGlzLnllYXIgPSB0aGlzLnllYXIgLSAxO1xuICAgICAgdGhpcy5jYWxjRGF5cygpO1xuICAgIH1cbiAgICBpZiAodGhpcy5vblRvdWNoZWQkKSB7XG4gICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmV4dE1vbnRoKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm1vbnRoICE9PSAxMSkge1xuICAgICAgdGhpcy5tb250aCA9IHRoaXMubW9udGggKyAxO1xuICAgICAgdGhpcy5jYWxjRGF5cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vbnRoID0gMDtcbiAgICAgIHRoaXMueWVhciA9IHRoaXMueWVhciArIDE7XG4gICAgICB0aGlzLmNhbGNEYXlzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLm9uVG91Y2hlZCQpIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkJCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwcmV2aW91c1llYXIoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93Q2FsZW5kYXJZZWFycyA9IHRoaXMucGFnaW5hdGUoXG4gICAgICB0aGlzLmNhbGVuZGFyWWVhcnMsXG4gICAgICB0aGlzLmNhbGVuZGFyWWVhclBhZ2UgPiAxID8gLS10aGlzLmNhbGVuZGFyWWVhclBhZ2UgOiAxKTtcbiAgICB0aGlzLmNhbGNEYXlzKCk7XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkJCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQkKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5leHRZZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuc2hvd0NhbGVuZGFyWWVhcnMgPSB0aGlzLnBhZ2luYXRlKFxuICAgICAgdGhpcy5jYWxlbmRhclllYXJzLFxuICAgICAgdGhpcy5jYWxlbmRhclllYXJQYWdlIDw9IHRoaXMuY2FsZW5kYXJZZWFycy5sZW5ndGggLyB0aGlzLnllYXJzUGVyUGFnZVxuICAgICAgICA/ICsrdGhpcy5jYWxlbmRhclllYXJQYWdlXG4gICAgICAgIDogdGhpcy5jYWxlbmRhclllYXJQYWdlKTtcbiAgICB0aGlzLmNhbGNEYXlzKCk7XG4gICAgaWYgKHRoaXMub25Ub3VjaGVkJCkge1xuICAgICAgdGhpcy5vblRvdWNoZWQkKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb21wYXJlRGF0ZXMoZGF0ZTE6IERhdGUgfCB1bmRlZmluZWQgfCBudWxsLCBkYXk6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHllYXI6IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICBpZiAoIWRhdGUxKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh5ZWFyID8/IHRoaXMueWVhciwgdGhpcy5tb250aCwgZGF5ID8/IHRoaXMudmFsdWU/LmdldERheSgpKTtcbiAgICByZXR1cm4gZGF0ZTEudG9EYXRlU3RyaW5nKCkgPT09IGQudG9EYXRlU3RyaW5nKCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBjYWxjRGF5cygpOiB2b2lkIHtcbiAgICBjb25zdCBkYXlzSW5Nb250aCA9IG5ldyBEYXRlKHRoaXMueWVhciwgdGhpcy5tb250aCArIDEsIDApLmdldERhdGUoKTtcbiAgICAvLyBmaW5kIHdoZXJlIHRvIHN0YXJ0IGNhbGVuZGFyIGRheSBvZiB3ZWVrXG4gICAgY29uc3QgZGF5T2ZXZWVrID0gbmV3IERhdGUodGhpcy55ZWFyLCB0aGlzLm1vbnRoKS5nZXREYXkoKTtcbiAgICBjb25zdCBibGFua2RheXNBcnJheSA9IG5ldyBBcnJheTxudW1iZXI+KCk7XG4gICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gZGF5T2ZXZWVrOyBpKyspIHtcbiAgICAgIC8vIGNoZWNrIGlmIG1vbnRoIGlzIEZlYnJ1YXJ5XG4gICAgICBibGFua2RheXNBcnJheS5wdXNoKHRoaXMubW9udGggIT0gMiA/ICgzMiAtIGkpIDogKDI5IC0gaSkpO1xuICAgICAgYmxhbmtkYXlzQXJyYXkucmV2ZXJzZSgpLnNvcnQoKTtcbiAgICB9XG4gICAgY29uc3QgZGF5c0FycmF5ID0gW107XG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IGRheXNJbk1vbnRoOyBpKyspIHtcbiAgICAgIGRheXNBcnJheS5wdXNoKHsgZGF5OiBpLCB0b2RheTogdGhpcy5jb21wYXJlRGF0ZXModG9kYXksIGksIG51bGwpLCBzZWxlY3RlZDogdGhpcy5jb21wYXJlRGF0ZXModGhpcy52YWx1ZSA/PyB0b2RheSwgaSwgbnVsbCkgfSk7XG4gICAgfVxuICAgIGNvbnN0IHllYXJzQXJyYXkgPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMTk1MDsgaSA8PSB0b2RheS5nZXRGdWxsWWVhcigpICsgMjsgaSsrKSB7XG4gICAgICB5ZWFyc0FycmF5LnB1c2goeyB5ZWFyOiBpLCB0b2RheTogdGhpcy5jb21wYXJlRGF0ZXModG9kYXksIG51bGwsIGkpLCBzZWxlY3RlZDogaSA9PSB0aGlzLnllYXIgfSk7XG4gICAgfVxuICAgIHRoaXMuY2FsZW5kYXJZZWFycyA9IHllYXJzQXJyYXk7XG4gICAgdGhpcy5ibGFua0RheXMgPSBibGFua2RheXNBcnJheTtcbiAgICB0aGlzLmNhbGVuZGFyRGF0ZXMgPSBkYXlzQXJyYXk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURheXMoKTogdm9pZCB7XG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIHRoaXMuY2FsZW5kYXJEYXRlcy5mb3JFYWNoKGQgPT4ge1xuICAgICAgZC50b2RheSA9IHRoaXMuY29tcGFyZURhdGVzKHRvZGF5LCBkLCB0aGlzLnllYXIpO1xuICAgICAgZC5zZWxlY3RlZCA9IHRoaXMuY29tcGFyZURhdGVzKHRoaXMudmFsdWUsIGQsIHRoaXMueWVhcik7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHBhZ2luYXRlKGFycmF5OiBhbnlbXSwgcGFnZV9udW1iZXI6IG51bWJlcik6IGFueVtdIHtcbiAgICByZXR1cm4gYXJyYXkuc2xpY2UoKHBhZ2VfbnVtYmVyIC0gMSkgKiB0aGlzLnllYXJzUGVyUGFnZSwgcGFnZV9udW1iZXIgKiB0aGlzLnllYXJzUGVyUGFnZSk7XG4gIH1cblxuICBwcml2YXRlIGdldERhdGVGcm9tSW5wdXQoKSB7XG4gICAgaWYgKHRoaXMuZGF0ZUlucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlICE9PSAnJyAmJiAhdGhpcy5pbmxpbmUpIHtcbiAgICAgIHZhciBkYXRlUGFydHMgPSB0aGlzLmRhdGVJbnB1dD8ubmF0aXZlRWxlbWVudC52YWx1ZS5zcGxpdChcIi9cIik7XG4gICAgICBsZXQgZGF0ZUluR3JGb3JtYXQgPSBuZXcgRGF0ZSgrZGF0ZVBhcnRzWzJdLCBkYXRlUGFydHNbMV0gLSAxLCArZGF0ZVBhcnRzWzBdLCAzLCAwLCAwKTtcbiAgICAgIGlmIChkYXRlSW5HckZvcm1hdC50b1N0cmluZygpICE9PSAnSW52YWxpZCBEYXRlJykge1xuICAgICAgICB0aGlzLndyaXRlVmFsdWUoZGF0ZUluR3JGb3JtYXQpXG4gICAgICAgIHRoaXMuY2FsY0RheXMoKTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGRhdGVJbkdyRm9ybWF0KTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm9uQ2hhbmdlJCkge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlJCh0aGlzLnZhbHVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMudXBkYXRlRGF5cygpO1xuICAgICAgaWYgKHRoaXMub25Ub3VjaGVkJCkge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCQoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuWWVhcnMoKSB7XG4gICAgdGhpcy5zaG93WWVhcnMgPSAhdGhpcy5zaG93WWVhcnM7XG4gICAgdGhpcy5jYWxlbmRhclllYXJQYWdlID0gTWF0aC5jZWlsKHRoaXMuY2FsZW5kYXJZZWFycy5tYXAoeCA9PiB4LnllYXIpLmluZGV4T2YodGhpcy55ZWFyKSAvIHRoaXMueWVhcnNQZXJQYWdlKTtcbiAgICB0aGlzLnNob3dDYWxlbmRhclllYXJzID0gdGhpcy5wYWdpbmF0ZSh0aGlzLmNhbGVuZGFyWWVhcnMsIHRoaXMuY2FsZW5kYXJZZWFyUGFnZSAhPT0gMCA/IHRoaXMuY2FsZW5kYXJZZWFyUGFnZSA6IDEpO1xuICAgIHRoaXMuY2FsY0RheXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuQ2FsZW5kYXIoKSB7XG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSAhdGhpcy5zaG93Q2FsZW5kYXI7XG4gICAgdGhpcy5jYWxjRGF5cygpO1xuICB9XG5cbiAgcHVibGljIGNsb3NlQ2FsZW5kYXIoKSB7XG4gICAgdGhpcy5zaG93Q2FsZW5kYXIgPSBmYWxzZTtcbiAgICB0aGlzLmdldERhdGVGcm9tSW5wdXQoKTtcbiAgfVxuXG4gIG91dE9mUmFuZ2VEYXRlKGRhdGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGxldCBvdXRPZlJhbmdlOiBib29sZWFuID0gZmFsc2U7XG4gICAgaWYgKHRoaXMubWluRGF0ZSB8fCB0aGlzLm1heERhdGUpIHtcbiAgICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh0aGlzLnllYXIsIHRoaXMubW9udGgsIGRhdGUuZGF5KTtcbiAgICAgIGNvbnN0IGRhdGVJbk1pbGxpcyA9IGQuZ2V0VGltZSgpO1xuICAgICAgaWYgKHRoaXMubWluRGF0ZSkge1xuICAgICAgICBsZXQgbWluRGF0ZTogbnVtYmVyID0gdGhpcy5taW5EYXRlLmdldFRpbWUoKTtcbiAgICAgICAgaWYgKGRhdGVJbk1pbGxpcyA8IG1pbkRhdGUgJiYgdGhpcy5taW5EYXRlLnRvRGF0ZVN0cmluZygpICE9PSBkLnRvRGF0ZVN0cmluZygpKSB7XG4gICAgICAgICAgb3V0T2ZSYW5nZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLm1heERhdGUpIHtcbiAgICAgICAgbGV0IG1heERhdGU6IG51bWJlciA9IHRoaXMubWF4RGF0ZS5nZXRUaW1lKCk7XG4gICAgICAgIGlmIChkYXRlSW5NaWxsaXMgPiBtYXhEYXRlICYmIHRoaXMubWF4RGF0ZS50b0RhdGVTdHJpbmcoKSAhPT0gZC50b0RhdGVTdHJpbmcoKSkge1xuICAgICAgICAgIG91dE9mUmFuZ2UgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBvdXRPZlJhbmdlO1xuICB9XG59IiwiPGRpdiBjbGFzcz1cImZsZXhcIlxuICAgICBbbmdDbGFzc109XCJ7J3JlbGF0aXZlJzogIWlubGluZX1cIlxuICAgICAoY2xpY2tPdXRzaWRlKT1cImNsb3NlQ2FsZW5kYXIoKVwiPlxuXG4gIDxpbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAqbmdJZj1cIiFpbmxpbmVcIlxuICAgICAgICAgI2RhdGVJbnB1dFxuICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgIG5hbWU9XCJkYXRlSW5wdXRcIlxuICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxuICAgICAgICAgaWQ9XCJkYXRlSW5wdXRcIlxuICAgICAgICAgKGZvY3VzKT1cInNob3dDYWxlbmRhciA9IGZhbHNlXCJcbiAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSB8IGRhdGU6IGRpc3BsYXlGb3JtYXRcIlxuICAgICAgICAgY2xhc3M9XCJkZXRhcGlja2VyLWlucHV0XCJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsnY3Vyc29yLW5vdC1hbGxvd2VkJzogZGlzYWJsZWR9XCJcbiAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkaXNhYmxlZCA/ICcnIDogcGxhY2Vob2xkZXJcIj5cblxuICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICpuZ0lmPVwiIWlubGluZVwiXG4gICAgICAgICAgY2xhc3M9XCJkYXRlcGlja2VyLWJ1dHRvblwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnY3Vyc29yLW5vdC1hbGxvd2VkJzogZGlzYWJsZWR9XCI+XG4gICAgPGkgY2xhc3M9XCJtcy1JY29uIG1zLUljb24tLURhdGVUaW1lMlwiPjwvaT5cbiAgPC9idXR0b24+XG5cbiAgPGRpdiAqbmdJZj1cInNob3dDYWxlbmRhciB8fCBpbmxpbmVcIlxuICAgICAgIFtuZ0NsYXNzXT1cInsnYWJzb2x1dGUnOiAhaW5saW5lfVwiXG4gICAgICAgY2xhc3M9XCJkYXRlcGlja2VyLWJhY2tncm91bmRcIlxuICAgICAgIHN0eWxlPVwiaGVpZ2h0OjE4cmVtO21pbi13aWR0aDoxNnJlbTtcIlxuICAgICAgIG5hbWU9XCJjYWxlbmRhclwiPlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWJ0bi13cmFwcGVyXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuWWVhcnMoKVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZXBpY2tlci1zZWxlY3RlZC1tb250aFwiPlxuICAgICAgICAgICAge3ttb250aE5hbWVzW21vbnRoXX19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZXBpY2tlci1zZWxlY3RlZC15ZWFyXCI+XG4gICAgICAgICAgICB7e3llYXJ9fTwvc3Bhbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCIhc2hvd1llYXJzOyBlbHNlIHNob3dZZWFyc1BpY2tlclRtcGxcIj5cbiAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGVwaWNrZXItbmF2LWJ0blwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpb3VzTW9udGgoKTtcIj5cbiAgICAgICAgICA8c3ZnIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgZD1cIk0xNSAxOWwtNy03IDctN1wiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZGF0ZXBpY2tlci1uYXYtYnRuXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dE1vbnRoKClcIj5cbiAgICAgICAgICA8c3ZnIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgZD1cIk05IDVsNyA3LTcgN1wiIC8+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctdGVtcGxhdGUgI3Nob3dZZWFyc1BpY2tlclRtcGw+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZGF0ZXBpY2tlci1uYXYtYnRuXCJcbiAgICAgICAgICAgICAgICAgIChjbGljayk9XCJwcmV2aW91c1llYXIoKTtcIj5cbiAgICAgICAgICAgIDxzdmcgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCI+XG4gICAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICBkPVwiTTE1IDE5bC03LTcgNy03XCIgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImRhdGVwaWNrZXItbmF2LWJ0blwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwibmV4dFllYXIoKVwiPlxuICAgICAgICAgICAgPHN2ZyBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgIHZpZXdCb3g9XCIwIDAgMjQgMjRcIlxuICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgPHBhdGggc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMlwiXG4gICAgICAgICAgICAgICAgICAgIGQ9XCJNOSA1bDcgNy03IDdcIiAvPlxuICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLXdyYXBwZXJcIlxuICAgICAgICAgKm5nSWY9XCIhc2hvd1llYXJzOyBlbHNlIHNob3dDYWxZZWFyc1RtcGxcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheSBvZiBkYXlOYW1lc1wiXG4gICAgICAgICAgIGNsYXNzPVwiZGF0ZXBpY2tlci1kYXktbmFtZVwiXG4gICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDE0LjI4JVwiPnt7ZGF5fX08L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy10ZW1wbGF0ZSAjc2hvd0NhbFllYXJzVG1wbD5cbiAgICAgIDxkaXYgY2xhc3M9XCJkYXRlcGlja2VyLWNvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB5ZWFyIG9mIHNob3dDYWxlbmRhclllYXJzXCJcbiAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxOC4yOCVcIlxuICAgICAgICAgICAgIGNsYXNzPVwicHgtMSBtYi0xXCI+XG4gICAgICAgICAgPGRpdiAoY2xpY2spPVwic2VsZWN0WWVhclZhbHVlKHllYXIpXCJcbiAgICAgICAgICAgICAgIGNsYXNzPVwiZGF0ZXBpY2tlci15ZWFyXCJcbiAgICAgICAgICAgICAgIFtjbGFzc109XCJ5ZWFyLnNlbGVjdGVkICA/ICdzZWxlY3RlZCcgOiAnbm90LXNlbGVjdGVkJ1wiPlxuICAgICAgICAgICAge3t5ZWFyLnllYXJ9fTwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZGF0ZXBpY2tlci1jb250ZW50LXdyYXBwZXJcIlxuICAgICAgICAgKm5nSWY9XCIhc2hvd1llYXJzXCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBibGFua2RheSBvZiBibGFua0RheXNcIlxuICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAxNC4yOCVcIlxuICAgICAgICAgICBjbGFzcz1cImRhdGVwaWNrZXItYmxhbmstZGF5c1wiPnt7YmxhbmtkYXl9fTwvZGl2PlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF0ZSBvZiBjYWxlbmRhckRhdGVzO1wiXG4gICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDE0LjI4JVwiXG4gICAgICAgICAgIGNsYXNzPVwicHgtMSBtYi0xXCI+XG4gICAgICAgIDxkaXYgKGNsaWNrKT1cInNlbGVjdERhdGVWYWx1ZShkYXRlKVwiXG4gICAgICAgICAgICAgY2xhc3M9XCJkYXRlcGlja2VyLWRheXNcIlxuICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsnb3V0LW9mLXJhbmdlJzogb3V0T2ZSYW5nZURhdGUoZGF0ZSksJ3NlbGVjdGVkJzogZGF0ZS5zZWxlY3RlZCwgJ25vdC1zZWxlY3RlZCc6IWRhdGUuc2VsZWN0ZWQgfVwiPlxuICAgICAgICAgIHt7ZGF0ZS5kYXl9fTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG48L2Rpdj4iXX0=
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "../../directives/click-outside.directive";
|
|
5
|
+
export class DropDownMenuComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.options = [];
|
|
8
|
+
// tslint:disable-next-line:no-input-rename
|
|
9
|
+
this.selectedValue = null;
|
|
10
|
+
this.multiple = false;
|
|
11
|
+
this.placeholder = 'Παρακαλώ επιλέξτε...';
|
|
12
|
+
this.selectedOption$ = null;
|
|
13
|
+
this.selectedChange = new EventEmitter();
|
|
14
|
+
this.selectedChanged = new EventEmitter();
|
|
15
|
+
this.expanded$ = false;
|
|
16
|
+
}
|
|
17
|
+
get selectedOption() {
|
|
18
|
+
return this.selectedOption$;
|
|
19
|
+
}
|
|
20
|
+
set selectedOption(option) {
|
|
21
|
+
this.selectedOption$ = option;
|
|
22
|
+
this.selectedValue = option ? option.value : null;
|
|
23
|
+
this.expanded = false;
|
|
24
|
+
}
|
|
25
|
+
get expanded() {
|
|
26
|
+
return this.expanded$;
|
|
27
|
+
}
|
|
28
|
+
set expanded(value) {
|
|
29
|
+
this.expanded$ = value;
|
|
30
|
+
}
|
|
31
|
+
ngOnChanges(changes) {
|
|
32
|
+
if (this.options && this.options.length > 0 && this.selectedValue !== null && this.selectedValue !== undefined) {
|
|
33
|
+
this.selectedOption$ = this.options.filter((o) => o.value === this.selectedValue)[0];
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
ngOnInit() { }
|
|
37
|
+
isSelected(option) {
|
|
38
|
+
return option != null && this.selectedValue != null && option.value === this.selectedValue;
|
|
39
|
+
}
|
|
40
|
+
onClickOutside($event) {
|
|
41
|
+
this.expanded = false;
|
|
42
|
+
}
|
|
43
|
+
selectOption(option) {
|
|
44
|
+
this.selectedOption = option;
|
|
45
|
+
this.selectedChange.emit(option.value);
|
|
46
|
+
this.selectedChanged.emit(option.value);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
DropDownMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DropDownMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
50
|
+
DropDownMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: DropDownMenuComponent, selector: "lib-drop-down-menu", inputs: { options: "options", selectedValue: ["selected", "selectedValue"], multiple: "multiple", placeholder: "placeholder" }, outputs: { selectedChange: "selectedChange", selectedChanged: "selectedChanged" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\n <button\n type=\"button\"\n (click)=\"expanded = !expanded\"\n class=\"dropdown-button\"\n aria-haspopup=\"listbox\"\n aria-expanded=\"true\"\n aria-labelledby=\"listbox-label\"\n >\n <span class=\"dropdown-selected-text\">\n {{ selectedOption?.text || placeholder }}\n </span>\n <span class=\"dropdown-button-icon\">\n <!-- Heroicon name: solid/selector -->\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </span>\n </button>\n <ul\n *ngIf=\"expanded && options && options.length > 0\"\n class=\"dropdown-ul\"\n tabindex=\"-1\"\n role=\"listbox\"\n aria-labelledby=\"listbox-label\"\n aria-activedescendant=\"listbox-option-3\"\n >\n <ng-container *ngFor=\"let option of options\">\n <li\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\n (click)=\"selectOption(option)\"\n id=\"listbox-option-0\"\n role=\"option\"\n >\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\n {{ option.text }}\n </span>\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\n <!-- Heroicon name: solid/check -->\n <svg\n class=\"dropdown-li-selected-indicator\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </span>\n </li>\n </ng-container>\n </ul>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }] });
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: DropDownMenuComponent, decorators: [{
|
|
52
|
+
type: Component,
|
|
53
|
+
args: [{ selector: 'lib-drop-down-menu', template: "<div class=\"dropdown-container\" (clickOutside)=\"onClickOutside($event)\">\n <button\n type=\"button\"\n (click)=\"expanded = !expanded\"\n class=\"dropdown-button\"\n aria-haspopup=\"listbox\"\n aria-expanded=\"true\"\n aria-labelledby=\"listbox-label\"\n >\n <span class=\"dropdown-selected-text\">\n {{ selectedOption?.text || placeholder }}\n </span>\n <span class=\"dropdown-button-icon\">\n <!-- Heroicon name: solid/selector -->\n <svg class=\"dropdown-arrow\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 20 20\" fill=\"currentColor\" aria-hidden=\"true\">\n <path\n fill-rule=\"evenodd\"\n d=\"M10 3a1 1 0 01.707.293l3 3a1 1 0 01-1.414 1.414L10 5.414 7.707 7.707a1 1 0 01-1.414-1.414l3-3A1 1 0 0110 3zm-3.707 9.293a1 1 0 011.414 0L10 14.586l2.293-2.293a1 1 0 011.414 1.414l-3 3a1 1 0 01-1.414 0l-3-3a1 1 0 010-1.414z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </span>\n </button>\n <ul\n *ngIf=\"expanded && options && options.length > 0\"\n class=\"dropdown-ul\"\n tabindex=\"-1\"\n role=\"listbox\"\n aria-labelledby=\"listbox-label\"\n aria-activedescendant=\"listbox-option-3\"\n >\n <ng-container *ngFor=\"let option of options\">\n <li\n [class]=\"isSelected(option) ? 'dropdown-li-selected' : 'dropdown-li'\"\n (click)=\"selectOption(option)\"\n id=\"listbox-option-0\"\n role=\"option\"\n >\n <span [class]=\"isSelected(option) ? 'dropdown-li-selected-text' : 'dropdown-li-text'\">\n {{ option.text }}\n </span>\n <span *ngIf=\"isSelected(option)\" class=\"dropdown-li-selected-indicator-container\">\n <!-- Heroicon name: solid/check -->\n <svg\n class=\"dropdown-li-selected-indicator\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 20 20\"\n fill=\"currentColor\"\n aria-hidden=\"true\"\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clip-rule=\"evenodd\"\n />\n </svg>\n </span>\n </li>\n </ng-container>\n </ul>\n</div>\n" }]
|
|
54
|
+
}], ctorParameters: function () { return []; }, propDecorators: { options: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], selectedValue: [{
|
|
57
|
+
type: Input,
|
|
58
|
+
args: ['selected']
|
|
59
|
+
}], multiple: [{
|
|
60
|
+
type: Input
|
|
61
|
+
}], placeholder: [{
|
|
62
|
+
type: Input
|
|
63
|
+
}], selectedChange: [{
|
|
64
|
+
type: Output
|
|
65
|
+
}], selectedChanged: [{
|
|
66
|
+
type: Output
|
|
67
|
+
}] } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcC1kb3duLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2Ryb3AtZG93bi1tZW51L2Ryb3AtZG93bi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9kcm9wLWRvd24tbWVudS9kcm9wLWRvd24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7QUFRekcsTUFBTSxPQUFPLHFCQUFxQjtJQTJCaEM7UUExQlMsWUFBTyxHQUFpQixFQUFFLENBQUM7UUFDcEMsMkNBQTJDO1FBQ3hCLGtCQUFhLEdBQWUsSUFBSSxDQUFDO1FBQzNDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZ0JBQVcsR0FBVyxzQkFBc0IsQ0FBQztRQUU5QyxvQkFBZSxHQUFzQixJQUFJLENBQUM7UUFVeEMsbUJBQWMsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUM1RCxvQkFBZSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBRS9ELGNBQVMsR0FBRyxLQUFLLENBQUM7SUFPWCxDQUFDO0lBbkJoQixJQUFXLGNBQWM7UUFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFXLGNBQWMsQ0FBQyxNQUF5QjtRQUNqRCxJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQztRQUM5QixJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFNRCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFXLFFBQVEsQ0FBQyxLQUFjO1FBQ2hDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFHRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsYUFBYSxLQUFLLFNBQVMsRUFBRTtZQUM5RyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN0RjtJQUNILENBQUM7SUFFRCxRQUFRLEtBQVUsQ0FBQztJQUVaLFVBQVUsQ0FBQyxNQUFrQjtRQUNsQyxPQUFPLE1BQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzdGLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBVztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRU0sWUFBWSxDQUFDLE1BQWtCO1FBQ3BDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs7a0hBakRVLHFCQUFxQjtzR0FBckIscUJBQXFCLGtTQ1JsQyx3eEVBNkRBOzJGRHJEYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBRUUsb0JBQW9COzBFQUlyQixPQUFPO3NCQUFmLEtBQUs7Z0JBRWEsYUFBYTtzQkFBL0IsS0FBSzt1QkFBQyxVQUFVO2dCQUNSLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFZSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lbnVPcHRpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGliLWRyb3AtZG93bi1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3AtZG93bi1tZW51LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcERvd25NZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBvcHRpb25zOiBNZW51T3B0aW9uW10gPSBbXTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NlbGVjdGVkJykgc2VsZWN0ZWRWYWx1ZTogYW55IHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIG11bHRpcGxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSAnzqDOsc+BzrHOus6xzrvPjiDOtc+AzrnOu86tzr7PhM61Li4uJztcblxuICBwcml2YXRlIHNlbGVjdGVkT3B0aW9uJDogTWVudU9wdGlvbiB8IG51bGwgPSBudWxsO1xuICBwdWJsaWMgZ2V0IHNlbGVjdGVkT3B0aW9uKCk6IE1lbnVPcHRpb24gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiQ7XG4gIH1cbiAgcHVibGljIHNldCBzZWxlY3RlZE9wdGlvbihvcHRpb246IE1lbnVPcHRpb24gfCBudWxsKSB7XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvbiQgPSBvcHRpb247XG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gb3B0aW9uID8gb3B0aW9uLnZhbHVlIDogbnVsbDtcbiAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gIH1cblxuICBAT3V0cHV0KCkgc2VsZWN0ZWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBzZWxlY3RlZENoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgcHJpdmF0ZSBleHBhbmRlZCQgPSBmYWxzZTtcbiAgcHVibGljIGdldCBleHBhbmRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5leHBhbmRlZCQ7XG4gIH1cbiAgcHVibGljIHNldCBleHBhbmRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZXhwYW5kZWQkID0gdmFsdWU7XG4gIH1cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5vcHRpb25zICYmIHRoaXMub3B0aW9ucy5sZW5ndGggPiAwICYmIHRoaXMuc2VsZWN0ZWRWYWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnNlbGVjdGVkVmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbiQgPSB0aGlzLm9wdGlvbnMuZmlsdGVyKChvKSA9PiBvLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkVmFsdWUpWzBdO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBwdWJsaWMgaXNTZWxlY3RlZChvcHRpb246IE1lbnVPcHRpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gb3B0aW9uICE9IG51bGwgJiYgdGhpcy5zZWxlY3RlZFZhbHVlICE9IG51bGwgJiYgb3B0aW9uLnZhbHVlID09PSB0aGlzLnNlbGVjdGVkVmFsdWU7XG4gIH1cblxuICBwdWJsaWMgb25DbGlja091dHNpZGUoJGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0T3B0aW9uKG9wdGlvbjogTWVudU9wdGlvbik6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvcHRpb247XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KG9wdGlvbi52YWx1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZENoYW5nZWQuZW1pdChvcHRpb24udmFsdWUpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZHJvcGRvd24tY29udGFpbmVyXCIgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgkZXZlbnQpXCI+XG4gIDxidXR0b25cbiAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAoY2xpY2spPVwiZXhwYW5kZWQgPSAhZXhwYW5kZWRcIlxuICAgIGNsYXNzPVwiZHJvcGRvd24tYnV0dG9uXCJcbiAgICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gICAgYXJpYS1leHBhbmRlZD1cInRydWVcIlxuICAgIGFyaWEtbGFiZWxsZWRieT1cImxpc3Rib3gtbGFiZWxcIlxuICA+XG4gICAgPHNwYW4gY2xhc3M9XCJkcm9wZG93bi1zZWxlY3RlZC10ZXh0XCI+XG4gICAgICB7eyBzZWxlY3RlZE9wdGlvbj8udGV4dCB8fCBwbGFjZWhvbGRlciB9fVxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImRyb3Bkb3duLWJ1dHRvbi1pY29uXCI+XG4gICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IHNvbGlkL3NlbGVjdG9yIC0tPlxuICAgICAgPHN2ZyBjbGFzcz1cImRyb3Bkb3duLWFycm93XCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgIDxwYXRoXG4gICAgICAgICAgZmlsbC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgICAgZD1cIk0xMCAzYTEgMSAwIDAxLjcwNy4yOTNsMyAzYTEgMSAwIDAxLTEuNDE0IDEuNDE0TDEwIDUuNDE0IDcuNzA3IDcuNzA3YTEgMSAwIDAxLTEuNDE0LTEuNDE0bDMtM0ExIDEgMCAwMTEwIDN6bS0zLjcwNyA5LjI5M2ExIDEgMCAwMTEuNDE0IDBMMTAgMTQuNTg2bDIuMjkzLTIuMjkzYTEgMSAwIDAxMS40MTQgMS40MTRsLTMgM2ExIDEgMCAwMS0xLjQxNCAwbC0zLTNhMSAxIDAgMDEwLTEuNDE0elwiXG4gICAgICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICA8L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8dWxcbiAgICAqbmdJZj1cImV4cGFuZGVkICYmIG9wdGlvbnMgJiYgb3B0aW9ucy5sZW5ndGggPiAwXCJcbiAgICBjbGFzcz1cImRyb3Bkb3duLXVsXCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICByb2xlPVwibGlzdGJveFwiXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwibGlzdGJveC1sYWJlbFwiXG4gICAgYXJpYS1hY3RpdmVkZXNjZW5kYW50PVwibGlzdGJveC1vcHRpb24tM1wiXG4gID5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiPlxuICAgICAgPGxpXG4gICAgICAgIFtjbGFzc109XCJpc1NlbGVjdGVkKG9wdGlvbikgPyAnZHJvcGRvd24tbGktc2VsZWN0ZWQnIDogJ2Ryb3Bkb3duLWxpJ1wiXG4gICAgICAgIChjbGljayk9XCJzZWxlY3RPcHRpb24ob3B0aW9uKVwiXG4gICAgICAgIGlkPVwibGlzdGJveC1vcHRpb24tMFwiXG4gICAgICAgIHJvbGU9XCJvcHRpb25cIlxuICAgICAgPlxuICAgICAgICA8c3BhbiBbY2xhc3NdPVwiaXNTZWxlY3RlZChvcHRpb24pID8gJ2Ryb3Bkb3duLWxpLXNlbGVjdGVkLXRleHQnIDogJ2Ryb3Bkb3duLWxpLXRleHQnXCI+XG4gICAgICAgICAge3sgb3B0aW9uLnRleHQgfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImlzU2VsZWN0ZWQob3B0aW9uKVwiIGNsYXNzPVwiZHJvcGRvd24tbGktc2VsZWN0ZWQtaW5kaWNhdG9yLWNvbnRhaW5lclwiPlxuICAgICAgICAgIDwhLS0gSGVyb2ljb24gbmFtZTogc29saWQvY2hlY2sgLS0+XG4gICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgY2xhc3M9XCJkcm9wZG93bi1saS1zZWxlY3RlZC1pbmRpY2F0b3JcIlxuICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcbiAgICAgICAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBmaWxsLXJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgICAgICAgZD1cIk0xNi43MDcgNS4yOTNhMSAxIDAgMDEwIDEuNDE0bC04IDhhMSAxIDAgMDEtMS40MTQgMGwtNC00YTEgMSAwIDAxMS40MTQtMS40MTRMOCAxMi41ODZsNy4yOTMtNy4yOTNhMSAxIDAgMDExLjQxNCAwelwiXG4gICAgICAgICAgICAgIGNsaXAtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class KpiTileComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.title = undefined;
|
|
7
|
+
this.busy = false;
|
|
8
|
+
this.kpi = undefined;
|
|
9
|
+
this.hideBtn = false;
|
|
10
|
+
// tslint:disable-next-line:no-output-rename
|
|
11
|
+
this.tileAction = new EventEmitter();
|
|
12
|
+
}
|
|
13
|
+
ngOnInit() {
|
|
14
|
+
}
|
|
15
|
+
emitTileAction($event) {
|
|
16
|
+
$event.preventDefault();
|
|
17
|
+
$event.stopPropagation();
|
|
18
|
+
this.tileAction.emit($event);
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
KpiTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: KpiTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
KpiTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: KpiTileComponent, selector: "lib-kpi-tile", inputs: { title: "title", busy: "busy", kpi: "kpi", hideBtn: "hideBtn" }, outputs: { tileAction: "tile-action" }, ngImport: i0, template: "<div class=\"card\"\n [ngClass]=\"{'card-deck-busy' : busy }\">\n <div class=\"card-body\">\n <div class=\"kpi-tile-title-container\">\n <a href=\"#\"\n class=\"kpi-tile-action\"\n (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\n </div>\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\n <div class=\"card-footer\">\n <div class=\"text-xs\">\n <a href=\"#\"\n class=\"kpi-tile-action\"\n [ngClass]=\"{'invisible': hideBtn}\"\n (click)=\"emitTileAction($event)\">\u03A0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B1</a>\n </div>\n </div>\n </div>\n</div>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: KpiTileComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'lib-kpi-tile', template: "<div class=\"card\"\n [ngClass]=\"{'card-deck-busy' : busy }\">\n <div class=\"card-body\">\n <div class=\"kpi-tile-title-container\">\n <a href=\"#\"\n class=\"kpi-tile-action\"\n (click)=\"emitTileAction($event)\">{{title || '-'}}</a>\n </div>\n <p class=\"kpi-tile-value\">{{kpi || '-'}}</p>\n <div class=\"card-footer\">\n <div class=\"text-xs\">\n <a href=\"#\"\n class=\"kpi-tile-action\"\n [ngClass]=\"{'invisible': hideBtn}\"\n (click)=\"emitTileAction($event)\">\u03A0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B1</a>\n </div>\n </div>\n </div>\n</div>" }]
|
|
27
|
+
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
28
|
+
type: Input
|
|
29
|
+
}], busy: [{
|
|
30
|
+
type: Input
|
|
31
|
+
}], kpi: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], hideBtn: [{
|
|
34
|
+
type: Input
|
|
35
|
+
}], tileAction: [{
|
|
36
|
+
type: Output,
|
|
37
|
+
args: ['tile-action']
|
|
38
|
+
}] } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3BpLXRpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2twaS10aWxlL2twaS10aWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9rcGktdGlsZS9rcGktdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNL0UsTUFBTSxPQUFPLGdCQUFnQjtJQVEzQjtRQU5TLFVBQUssR0FBdUIsU0FBUyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDYixRQUFHLEdBQW9CLFNBQVMsQ0FBQztRQUNqQyxZQUFPLEdBQXdCLEtBQUssQ0FBQztRQUM5Qyw0Q0FBNEM7UUFDckIsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBQy9ELENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBVztRQUMvQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NkdBbEJVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLHNLQ043QiwycEJBa0JNOzJGRFpPLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxjQUFjOzBFQUtmLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFaUIsVUFBVTtzQkFBaEMsTUFBTTt1QkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWIta3BpLXRpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4va3BpLXRpbGUuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEtwaVRpbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHRpdGxlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGJ1c3kgPSBmYWxzZTtcbiAgQElucHV0KCkga3BpOiBhbnkgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGhpZGVCdG46IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1yZW5hbWVcbiAgQE91dHB1dCgndGlsZS1hY3Rpb24nKSB0aWxlQWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIGVtaXRUaWxlQWN0aW9uKCRldmVudDogYW55KTogYm9vbGVhbiB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudGlsZUFjdGlvbi5lbWl0KCRldmVudCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCJcbiAgICAgW25nQ2xhc3NdPVwieydjYXJkLWRlY2stYnVzeScgOiBidXN5IH1cIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJrcGktdGlsZS10aXRsZS1jb250YWluZXJcIj5cbiAgICAgIDxhIGhyZWY9XCIjXCJcbiAgICAgICAgIGNsYXNzPVwia3BpLXRpbGUtYWN0aW9uXCJcbiAgICAgICAgIChjbGljayk9XCJlbWl0VGlsZUFjdGlvbigkZXZlbnQpXCI+e3t0aXRsZSB8fCAnLSd9fTwvYT5cbiAgICA8L2Rpdj5cbiAgICA8cCBjbGFzcz1cImtwaS10aWxlLXZhbHVlXCI+e3trcGkgfHwgJy0nfX08L3A+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC14c1wiPlxuICAgICAgICA8YSBocmVmPVwiI1wiXG4gICAgICAgICAgIGNsYXNzPVwia3BpLXRpbGUtYWN0aW9uXCJcbiAgICAgICAgICAgW25nQ2xhc3NdPVwieydpbnZpc2libGUnOiBoaWRlQnRufVwiXG4gICAgICAgICAgIChjbGljayk9XCJlbWl0VGlsZUFjdGlvbigkZXZlbnQpXCI+zqDOtc+BzrnPg8+Dz4zPhM61z4HOsTwvYT5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Component, Inject } from '@angular/core';
|
|
2
|
+
import { APP_LANGUAGES } from '../../tokens';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "../../directives/click-outside.directive";
|
|
6
|
+
export class LanguageSelectionComponent {
|
|
7
|
+
constructor(langsService) {
|
|
8
|
+
this.langsService = langsService;
|
|
9
|
+
this.menuExpanded = false;
|
|
10
|
+
}
|
|
11
|
+
ngOnInit() {
|
|
12
|
+
}
|
|
13
|
+
selectLang(option) {
|
|
14
|
+
if (this.langsService?.setSelected) {
|
|
15
|
+
this.langsService.setSelected(option.value);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
onClickOutside($event) {
|
|
19
|
+
this.menuExpanded = false;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
LanguageSelectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LanguageSelectionComponent, deps: [{ token: APP_LANGUAGES }], target: i0.ɵɵFactoryTarget.Component });
|
|
23
|
+
LanguageSelectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: LanguageSelectionComponent, selector: "lib-language-selection", ngImport: i0, template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\n <button class=\"text-blue-300 hover:text-blue-400\" (click)=\"menuExpanded = !menuExpanded\">\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\n <span>{{langsService?.selected || langsService?.default}}</span>\n </button>\n\n <div\n [class]=\"menuExpanded ? 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none':'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\n <div class=\"py-1\" role=\"none\">\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\n {{lang.description}}\n </a>\n </ng-container>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ClickOutsideDirective, selector: "[clickOutside]", inputs: ["clickOutsideEnabled", "attachOutsideOnClick", "delayClickOutsideInit", "emitOnBlur", "exclude", "excludeBeforeClick", "clickOutsideEvents"], outputs: ["clickOutside"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
|
|
24
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LanguageSelectionComponent, decorators: [{
|
|
25
|
+
type: Component,
|
|
26
|
+
args: [{ selector: 'lib-language-selection', template: "<div class=\"relative\" (clickOutside)=\"onClickOutside($event)\">\n <button class=\"text-blue-300 hover:text-blue-400\" (click)=\"menuExpanded = !menuExpanded\">\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--Globe\"></i>\n <span>{{langsService?.selected || langsService?.default}}</span>\n </button>\n\n <div\n [class]=\"menuExpanded ? 'transition ease-out duration-200 origin-top-right z-30 absolute right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none':'hidden transition ease-in duration-75 origin-top-right z-30 right-0 mt-2 w-56 rounded-sm shadow-lg bg-white ring-1 ring-black ring-opacity-5 focus:outline-none'\" role=\"menu\" aria-orientation=\"vertical\" aria-labelledby=\"menu-button\" tabindex=\"-1\">\n <div class=\"py-1\" role=\"none\">\n <ng-container *ngFor=\"let lang of langsService?.options | async\">\n <a (click)=\"selectLang(lang)\" *ngIf=\"lang.value != langsService?.selected\" class=\"nav-link-profile\" role=\"menuitem\" tabindex=\"-1\" id=\"menu-item-0\">\n <i class=\"text-xs mr-1 ms-Icon ms-Icon--GlobeFavorite\"></i>\n {{lang.description}}\n </a>\n </ng-container>\n </div>\n </div>\n</div>\n" }]
|
|
27
|
+
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
28
|
+
type: Inject,
|
|
29
|
+
args: [APP_LANGUAGES]
|
|
30
|
+
}] }]; } });
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc2VsZWN0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9sYW5ndWFnZS1zZWxlY3Rpb24vbGFuZ3VhZ2Utc2VsZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9sYW5ndWFnZS1zZWxlY3Rpb24vbGFuZ3VhZ2Utc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7QUFPN0MsTUFBTSxPQUFPLDBCQUEwQjtJQUdyQyxZQUEwQyxZQUE4QztRQUE5QyxpQkFBWSxHQUFaLFlBQVksQ0FBa0M7UUFEakYsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFDZ0UsQ0FBQztJQUU3RixRQUFRO0lBQ1IsQ0FBQztJQUVNLFVBQVUsQ0FBQyxNQUFrQjtRQUNsQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QztJQUNILENBQUM7SUFFTSxjQUFjLENBQUMsTUFBVztRQUMvQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDOzt1SEFoQlUsMEJBQTBCLGtCQUdqQixhQUFhOzJHQUh0QiwwQkFBMEIsOERDVHZDLDRzQ0FrQkE7MkZEVGEsMEJBQTBCO2tCQUp0QyxTQUFTOytCQUNFLHdCQUF3Qjs7MEJBTXJCLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1lbnVPcHRpb24gfSBmcm9tICcuLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFQUF9MQU5HVUFHRVMgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xuaW1wb3J0IHsgSUFwcExhbmd1YWdlc1NlcnZpY2UgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1sYW5ndWFnZS1zZWxlY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbGFuZ3VhZ2Utc2VsZWN0aW9uLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZVNlbGVjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgcHVibGljIG1lbnVFeHBhbmRlZCA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFQUF9MQU5HVUFHRVMpIHB1YmxpYyBsYW5nc1NlcnZpY2U6IElBcHBMYW5ndWFnZXNTZXJ2aWNlIHwgdW5kZWZpbmVkKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RMYW5nKG9wdGlvbjogTWVudU9wdGlvbik6IHZvaWQge1xuICAgIGlmICh0aGlzLmxhbmdzU2VydmljZT8uc2V0U2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMubGFuZ3NTZXJ2aWNlLnNldFNlbGVjdGVkKG9wdGlvbi52YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2xpY2tPdXRzaWRlKCRldmVudDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5tZW51RXhwYW5kZWQgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aXZlXCIgKGNsaWNrT3V0c2lkZSk9XCJvbkNsaWNrT3V0c2lkZSgkZXZlbnQpXCI+XG4gIDxidXR0b24gY2xhc3M9XCJ0ZXh0LWJsdWUtMzAwIGhvdmVyOnRleHQtYmx1ZS00MDBcIiAoY2xpY2spPVwibWVudUV4cGFuZGVkID0gIW1lbnVFeHBhbmRlZFwiPlxuICAgIDxpIGNsYXNzPVwidGV4dC14cyBtci0xIG1zLUljb24gbXMtSWNvbi0tR2xvYmVcIj48L2k+XG4gICAgPHNwYW4+e3tsYW5nc1NlcnZpY2U/LnNlbGVjdGVkIHx8IGxhbmdzU2VydmljZT8uZGVmYXVsdH19PC9zcGFuPlxuICA8L2J1dHRvbj5cblxuICA8ZGl2XG4gICAgW2NsYXNzXT1cIm1lbnVFeHBhbmRlZCA/ICd0cmFuc2l0aW9uIGVhc2Utb3V0IGR1cmF0aW9uLTIwMCBvcmlnaW4tdG9wLXJpZ2h0IHotMzAgYWJzb2x1dGUgcmlnaHQtMCBtdC0yIHctNTYgcm91bmRlZC1zbSBzaGFkb3ctbGcgYmctd2hpdGUgcmluZy0xIHJpbmctYmxhY2sgcmluZy1vcGFjaXR5LTUgZm9jdXM6b3V0bGluZS1ub25lJzonaGlkZGVuIHRyYW5zaXRpb24gZWFzZS1pbiBkdXJhdGlvbi03NSBvcmlnaW4tdG9wLXJpZ2h0IHotMzAgcmlnaHQtMCBtdC0yIHctNTYgcm91bmRlZC1zbSBzaGFkb3ctbGcgYmctd2hpdGUgcmluZy0xIHJpbmctYmxhY2sgcmluZy1vcGFjaXR5LTUgZm9jdXM6b3V0bGluZS1ub25lJ1wiIHJvbGU9XCJtZW51XCIgYXJpYS1vcmllbnRhdGlvbj1cInZlcnRpY2FsXCIgYXJpYS1sYWJlbGxlZGJ5PVwibWVudS1idXR0b25cIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgPGRpdiBjbGFzcz1cInB5LTFcIiByb2xlPVwibm9uZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbGFuZyBvZiBsYW5nc1NlcnZpY2U/Lm9wdGlvbnMgfCBhc3luY1wiPlxuICAgICAgICA8YSAoY2xpY2spPVwic2VsZWN0TGFuZyhsYW5nKVwiICpuZ0lmPVwibGFuZy52YWx1ZSAhPSBsYW5nc1NlcnZpY2U/LnNlbGVjdGVkXCIgY2xhc3M9XCJuYXYtbGluay1wcm9maWxlXCIgcm9sZT1cIm1lbnVpdGVtXCIgdGFiaW5kZXg9XCItMVwiIGlkPVwibWVudS1pdGVtLTBcIj5cbiAgICAgICAgICA8aSBjbGFzcz1cInRleHQteHMgbXItMSBtcy1JY29uIG1zLUljb24tLUdsb2JlRmF2b3JpdGVcIj48L2k+XG4gICAgICAgICAge3tsYW5nLmRlc2NyaXB0aW9ufX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -8,9 +8,9 @@ export class ListColumnComponent {
|
|
|
8
8
|
this.template = null;
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
|
-
ListColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
ListColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11
|
+
ListColumnComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
+
ListColumnComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListColumnComponent, selector: "lib-list-column", inputs: { title: "title", fullWidth: ["full-width", "fullWidth"] }, queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListColumnComponent, decorators: [{
|
|
14
14
|
type: Component,
|
|
15
15
|
args: [{ selector: 'lib-list-column', template: '<ng-content></ng-content>' }]
|
|
16
16
|
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
22
22
|
type: ContentChild,
|
|
23
23
|
args: [TemplateRef]
|
|
24
24
|
}] } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWNvbHVtbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHcEYsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QjtRQUpTLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQ3JDLDJDQUEyQztRQUN0QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ1osYUFBUSxHQUFlLElBQUksQ0FBQztJQUN2QyxDQUFDOztnSEFMTixtQkFBbUI7b0dBQW5CLG1CQUFtQixpS0FJaEIsV0FBVyxnREFMd0IsMkJBQTJCOzJGQUNqRSxtQkFBbUI7a0JBRC9CLFNBQVM7bUJBQUMsRUFBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFFLDJCQUEyQixFQUFDOzBFQUVwRSxLQUFLO3NCQUFiLEtBQUs7Z0JBRWUsU0FBUztzQkFBN0IsS0FBSzt1QkFBQyxZQUFZO2dCQUNRLFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtzZWxlY3RvcjogJ2xpYi1saXN0LWNvbHVtbicsIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pid9KVxuZXhwb3J0IGNsYXNzIExpc3RDb2x1bW5Db21wb25lbnQge1xuICBASW5wdXQoKSB0aXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdmdWxsLXdpZHRoJykgZnVsbFdpZHRoID0gZmFsc2U7XG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlOiBhbnkgfCBudWxsID0gbnVsbDtcbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
|