@indice/ng-components 0.2.146 → 0.2.147
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 +1 -1
- package/{esm2015/indice-ng-components.js → esm2020/indice-ng-components.mjs} +0 -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 +96 -0
- package/esm2020/lib/controls/date-picker/date-picker.component.mjs +260 -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 +36 -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 +183 -0
- package/esm2020/lib/controls/nav-links-list/nav-links-list.component.mjs +42 -0
- package/esm2020/lib/controls/notifications-indicator/notifications-indicator.component.mjs +73 -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/esm2020/lib/controls/tabs/lib-tab-group.component.mjs +59 -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 +181 -0
- package/esm2020/lib/icons.mjs +34 -0
- package/esm2020/lib/layouts/shell/shell-footer/shell-footer.component.mjs +19 -0
- package/esm2020/lib/layouts/shell/shell-header/shell-header.component.mjs +131 -0
- package/esm2020/lib/layouts/shell/shell-layout/shell-layout.component.mjs +103 -0
- package/esm2020/lib/layouts/shell/shell-sidebar/shell-sidebar.component.mjs +47 -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/esm2020/lib/ng-components.module.mjs +245 -0
- 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/{esm2015/lib/services/component-loader/component-loader-options.class.js → esm2020/lib/services/component-loader/component-loader-options.class.mjs} +0 -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} +0 -0
- 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/{esm2015/lib/services/modal-service/modal-options.class.js → esm2020/lib/services/modal-service/modal-options.class.mjs} +4 -4
- 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} +0 -0
- package/{esm2015/lib/services/modal-service/modal.class.js → esm2020/lib/services/modal-service/modal.class.mjs} +4 -4
- package/{esm2015/lib/services/toaster.service.js → esm2020/lib/services/toaster.service.mjs} +4 -4
- package/esm2020/lib/tokens.mjs +7 -0
- package/{esm2015/lib/types.js → esm2020/lib/types.mjs} +1 -1
- package/esm2020/public-api.mjs +56 -0
- package/fesm2015/indice-ng-components.mjs +3629 -0
- package/fesm2015/indice-ng-components.mjs.map +1 -0
- package/fesm2020/indice-ng-components.mjs +3572 -0
- package/fesm2020/indice-ng-components.mjs.map +1 -0
- package/{indice-ng-components.d.ts → index.d.ts} +0 -0
- 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 +29 -0
- 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/tabs/lib-tab-group.component.d.ts +1 -1
- package/lib/controls/tabs/lib-tab.component.d.ts +4 -5
- 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/icons.d.ts +2 -0
- 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/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/ng-components.module.d.ts +28 -27
- 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/lib/tokens.d.ts +2 -0
- package/lib/types.d.ts +2 -0
- package/package.json +25 -12
- package/public-api.d.ts +2 -1
- package/bundles/indice-ng-components.umd.js +0 -4181
- package/bundles/indice-ng-components.umd.js.map +0 -1
- package/esm2015/lib/controls/collapsible-panel/collapsible-panel.component.js +0 -23
- package/esm2015/lib/controls/date-picker/date-picker.component.js +0 -269
- 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 -39
- 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 -186
- package/esm2015/lib/controls/nav-links-list/nav-links-list.component.js +0 -45
- package/esm2015/lib/controls/notifications-indicator/notifications-indicator.component.js +0 -76
- 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/tabs/lib-tab-group.component.js +0 -60
- package/esm2015/lib/controls/tabs/lib-tab.component.js +0 -57
- 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 -182
- package/esm2015/lib/icons.js +0 -32
- 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 -136
- package/esm2015/lib/layouts/shell/shell-layout/shell-layout.component.js +0 -108
- package/esm2015/lib/layouts/shell/shell-sidebar/shell-sidebar.component.js +0 -50
- 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/ng-components.module.js +0 -242
- 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.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-service.js +0 -220
- package/esm2015/lib/tokens.js +0 -6
- package/esm2015/public-api.js +0 -55
- package/fesm2015/indice-ng-components.js +0 -3600
- package/fesm2015/indice-ng-components.js.map +0 -1
|
@@ -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,36 @@
|
|
|
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
|
+
// tslint:disable-next-line:no-output-rename
|
|
10
|
+
this.tileAction = new EventEmitter();
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
}
|
|
14
|
+
emitTileAction($event) {
|
|
15
|
+
$event.preventDefault();
|
|
16
|
+
$event.stopPropagation();
|
|
17
|
+
this.tileAction.emit($event);
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
KpiTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: KpiTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
22
|
+
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" }, 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 (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"] }] });
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: KpiTileComponent, decorators: [{
|
|
24
|
+
type: Component,
|
|
25
|
+
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 (click)=\"emitTileAction($event)\">\u03A0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B1</a>\n </div>\n </div>\n </div>\n</div>" }]
|
|
26
|
+
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
27
|
+
type: Input
|
|
28
|
+
}], busy: [{
|
|
29
|
+
type: Input
|
|
30
|
+
}], kpi: [{
|
|
31
|
+
type: Input
|
|
32
|
+
}], tileAction: [{
|
|
33
|
+
type: Output,
|
|
34
|
+
args: ['tile-action']
|
|
35
|
+
}] } });
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia3BpLXRpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2twaS10aWxlL2twaS10aWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9rcGktdGlsZS9rcGktdGlsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFNL0UsTUFBTSxPQUFPLGdCQUFnQjtJQU8zQjtRQUxTLFVBQUssR0FBdUIsU0FBUyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDYixRQUFHLEdBQW9CLFNBQVMsQ0FBQztRQUMxQyw0Q0FBNEM7UUFDckIsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO0lBQy9ELENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBVztRQUMvQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsTUFBTSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7NkdBakJVLGdCQUFnQjtpR0FBaEIsZ0JBQWdCLGtKQ043QiwwbUJBaUJNOzJGRFhPLGdCQUFnQjtrQkFKNUIsU0FBUzsrQkFDRSxjQUFjOzBFQUtmLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csR0FBRztzQkFBWCxLQUFLO2dCQUVpQixVQUFVO3NCQUFoQyxNQUFNO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1rcGktdGlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9rcGktdGlsZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgS3BpVGlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xuICBASW5wdXQoKSBrcGk6IGFueSB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLW91dHB1dC1yZW5hbWVcbiAgQE91dHB1dCgndGlsZS1hY3Rpb24nKSB0aWxlQWN0aW9uOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIGVtaXRUaWxlQWN0aW9uKCRldmVudDogYW55KTogYm9vbGVhbiB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMudGlsZUFjdGlvbi5lbWl0KCRldmVudCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCJcbiAgICAgW25nQ2xhc3NdPVwieydjYXJkLWRlY2stYnVzeScgOiBidXN5IH1cIj5cbiAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgIDxkaXYgY2xhc3M9XCJrcGktdGlsZS10aXRsZS1jb250YWluZXJcIj5cbiAgICAgIDxhIGhyZWY9XCIjXCJcbiAgICAgICAgIGNsYXNzPVwia3BpLXRpbGUtYWN0aW9uXCJcbiAgICAgICAgIChjbGljayk9XCJlbWl0VGlsZUFjdGlvbigkZXZlbnQpXCI+e3t0aXRsZSB8fCAnLSd9fTwvYT5cbiAgICA8L2Rpdj5cbiAgICA8cCBjbGFzcz1cImtwaS10aWxlLXZhbHVlXCI+e3trcGkgfHwgJy0nfX08L3A+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC14c1wiPlxuICAgICAgICA8YSBocmVmPVwiI1wiXG4gICAgICAgICAgIGNsYXNzPVwia3BpLXRpbGUtYWN0aW9uXCJcbiAgICAgICAgICAgKGNsaWNrKT1cImVtaXRUaWxlQWN0aW9uKCRldmVudClcIj7OoM61z4HOuc+Dz4PPjM+EzrXPgc6xPC9hPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
@@ -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==
|
|
@@ -5,13 +5,13 @@ export class ListDetailsSectionComponent {
|
|
|
5
5
|
this.template = null;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
ListDetailsSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
ListDetailsSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8
|
+
ListDetailsSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListDetailsSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
ListDetailsSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListDetailsSectionComponent, selector: "lib-list-details-section", queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListDetailsSectionComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
12
|
args: [{ selector: 'lib-list-details-section', template: '<ng-content></ng-content>' }]
|
|
13
13
|
}], ctorParameters: function () { return []; }, propDecorators: { template: [{
|
|
14
14
|
type: ContentChild,
|
|
15
15
|
args: [TemplateRef]
|
|
16
16
|
}] } });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1kZXRhaWxzLXNlY3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmctY29tcG9uZW50cy9zcmMvbGliL2NvbnRyb2xzL2xpc3Qtdmlldy9saXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQWlCLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFHcEYsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QztRQUQyQixhQUFRLEdBQWUsSUFBSSxDQUFDO0lBRXZELENBQUM7O3dIQUhVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHNHQUN4QixXQUFXLGdEQUZrQywyQkFBMkI7MkZBQzNFLDJCQUEyQjtrQkFEdkMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSwwQkFBMEIsRUFBRSxRQUFRLEVBQUUsMkJBQTJCLEVBQUU7MEVBRTdELFFBQVE7c0JBQWxDLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ29udGVudENoaWxkLCBJbnB1dCwgT25Jbml0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHsgc2VsZWN0b3I6ICdsaWItbGlzdC1kZXRhaWxzLXNlY3Rpb24nLCB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nIH0pXG5leHBvcnQgY2xhc3MgTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50e1xuICBAQ29udGVudENoaWxkKFRlbXBsYXRlUmVmKSB0ZW1wbGF0ZTogYW55IHwgbnVsbCA9IG51bGw7XG4gIGNvbnN0cnVjdG9yKCkge1xuICB9XG59XG4iXX0=
|
|
@@ -5,13 +5,13 @@ export class ListTileComponent {
|
|
|
5
5
|
this.template = null;
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
ListTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
ListTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
8
|
+
ListTileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListTileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
ListTileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListTileComponent, selector: "lib-list-tile", queries: [{ propertyName: "template", first: true, predicate: TemplateRef, descendants: true }], ngImport: i0, template: '<ng-content></ng-content>', isInline: true });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListTileComponent, decorators: [{
|
|
11
11
|
type: Component,
|
|
12
12
|
args: [{ selector: 'lib-list-tile', template: '<ng-content></ng-content>' }]
|
|
13
13
|
}], ctorParameters: function () { return []; }, propDecorators: { template: [{
|
|
14
14
|
type: ContentChild,
|
|
15
15
|
args: [TemplateRef]
|
|
16
16
|
}] } });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC10aWxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC10aWxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBaUIsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUdwRixNQUFNLE9BQU8saUJBQWlCO0lBRTVCO1FBRDJCLGFBQVEsR0FBZSxJQUFJLENBQUM7SUFFdkQsQ0FBQzs7OEdBSFUsaUJBQWlCO2tHQUFqQixpQkFBaUIsMkZBQ2QsV0FBVyxnREFGdUIsMkJBQTJCOzJGQUNoRSxpQkFBaUI7a0JBRDdCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsZUFBZSxFQUFFLFFBQVEsRUFBRSwyQkFBMkIsRUFBRTswRUFFbEQsUUFBUTtzQkFBbEMsWUFBWTt1QkFBQyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoeyBzZWxlY3RvcjogJ2xpYi1saXN0LXRpbGUnLCB0ZW1wbGF0ZTogJzxuZy1jb250ZW50PjwvbmctY29udGVudD4nIH0pXG5leHBvcnQgY2xhc3MgTGlzdFRpbGVDb21wb25lbnR7XG4gIEBDb250ZW50Q2hpbGQoVGVtcGxhdGVSZWYpIHRlbXBsYXRlOiBhbnkgfCBudWxsID0gbnVsbDtcbiAgY29uc3RydWN0b3IoKSB7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
export class ListViewEmptyStateComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.title = 'Δεν βρέθηκαν εγγραφές.';
|
|
7
|
+
// tslint:disable-next-line:no-input-rename
|
|
8
|
+
this.subTitle = 'Παρακαλώ αλλάξτε τα κριτήρια αναζήτησης σας ή ξεκινήστε προσθέτοντας μια νέα εγγραφή';
|
|
9
|
+
// tslint:disable-next-line:no-input-rename
|
|
10
|
+
this.newItemLabel = 'Νέα εγγραφή';
|
|
11
|
+
}
|
|
12
|
+
ngOnInit() {
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
ListViewEmptyStateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewEmptyStateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
16
|
+
ListViewEmptyStateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: { title: "title", subTitle: ["sub-title", "subTitle"], newItemLabel: ["new-item-label", "newItemLabel"] }, ngImport: i0, template: "<div class=\"p-20\">\n <div class=\"text-center p-2\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\n </svg>\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\n <p class=\"mt-1 text-sm text-gray-500\">\n {{subTitle}}\n </p>\n <div class=\"mt-6\" *ngIf=\"false\">\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\n <!-- Heroicon name: solid/plus -->\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\n </svg>\n {{newItemLabel}}\n </button>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
17
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewEmptyStateComponent, decorators: [{
|
|
18
|
+
type: Component,
|
|
19
|
+
args: [{ selector: 'lib-list-view-empty-state', template: "<div class=\"p-20\">\n <div class=\"text-center p-2\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-auto h-12 w-12 text-gray-400\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4\" />\n </svg>\n <h3 class=\"mt-2 text-sm font-medium text-gray-900\">{{title}}</h3>\n <p class=\"mt-1 text-sm text-gray-500\">\n {{subTitle}}\n </p>\n <div class=\"mt-6\" *ngIf=\"false\">\n <button type=\"button\" class=\"inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white bg-gray-600 hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-offset-1 focus:ring-gray-500\">\n <!-- Heroicon name: solid/plus -->\n <svg class=\"-ml-1 mr-2 h-6 w-6\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" aria-hidden=\"true\">\n <path vector-effect=\"non-scaling-stroke\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M9 13h6m-3-3v6m-9 1V7a2 2 0 012-2h6l2 2h6a2 2 0 012 2v8a2 2 0 01-2 2H5a2 2 0 01-2-2z\" />\n </svg>\n {{newItemLabel}}\n </button>\n </div>\n </div>\n</div>\n" }]
|
|
20
|
+
}], ctorParameters: function () { return []; }, propDecorators: { title: [{
|
|
21
|
+
type: Input
|
|
22
|
+
}], subTitle: [{
|
|
23
|
+
type: Input,
|
|
24
|
+
args: ['sub-title']
|
|
25
|
+
}], newItemLabel: [{
|
|
26
|
+
type: Input,
|
|
27
|
+
args: ['new-item-label']
|
|
28
|
+
}] } });
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LWVtcHR5LXN0YXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LWVtcHR5LXN0YXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LWVtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7QUFNekQsTUFBTSxPQUFPLDJCQUEyQjtJQU90QztRQUxTLFVBQUssR0FBRyx3QkFBd0IsQ0FBQztRQUMxQywyQ0FBMkM7UUFDdkIsYUFBUSxHQUFHLHNGQUFzRixDQUFDO1FBQ3RILDJDQUEyQztRQUNsQixpQkFBWSxHQUFHLGFBQWEsQ0FBQztJQUN0QyxDQUFDO0lBRWpCLFFBQVE7SUFDUixDQUFDOzt3SEFWVSwyQkFBMkI7NEdBQTNCLDJCQUEyQixvTENOeEMsbzJDQW9CQTsyRkRkYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsMkJBQTJCOzBFQUs1QixLQUFLO3NCQUFiLEtBQUs7Z0JBRWMsUUFBUTtzQkFBM0IsS0FBSzt1QkFBQyxXQUFXO2dCQUVPLFlBQVk7c0JBQXBDLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1saXN0LXZpZXctZW1wdHktc3RhdGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC12aWV3LWVtcHR5LXN0YXRlLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBMaXN0Vmlld0VtcHR5U3RhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHRpdGxlID0gJ86UzrXOvSDOss+Bzq3OuM63zrrOsc69IM61zrPOs8+BzrHPhs6tz4IuJztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3N1Yi10aXRsZScpIHN1YlRpdGxlID0gJ86gzrHPgc6xzrrOsc67z44gzrHOu867zqzOvs+EzrUgz4TOsSDOus+BzrnPhM6uz4HOuc6xIM6xzr3Osc62zq7PhM63z4POt8+CIM+DzrHPgiDOriDOvs61zrrOuc69zq7Pg8+EzrUgz4DPgc6/z4POuM6tz4TOv869z4TOsc+CIM68zrnOsSDOvc6tzrEgzrXOs86zz4HOsc+Gzq4nO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgnbmV3LWl0ZW0tbGFiZWwnKSBuZXdJdGVtTGFiZWwgPSAnzp3Orc6xIM61zrPOs8+BzrHPhs6uJztcbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicC0yMFwiPlxuICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgcC0yXCI+XG4gICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgY2xhc3M9XCJteC1hdXRvIGgtMTIgdy0xMiB0ZXh0LWdyYXktNDAwXCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCI+XG4gICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIyXCIgZD1cIk00IDd2MTBjMCAyLjIxIDMuNTgyIDQgOCA0czgtMS43OSA4LTRWN000IDdjMCAyLjIxIDMuNTgyIDQgOCA0czgtMS43OSA4LTRNNCA3YzAtMi4yMSAzLjU4Mi00IDgtNHM4IDEuNzkgOCA0bTAgNWMwIDIuMjEtMy41ODIgNC04IDRzLTgtMS43OS04LTRcIiAvPlxuICAgIDwvc3ZnPlxuICAgIDxoMyBjbGFzcz1cIm10LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWdyYXktOTAwXCI+e3t0aXRsZX19PC9oMz5cbiAgICA8cCBjbGFzcz1cIm10LTEgdGV4dC1zbSB0ZXh0LWdyYXktNTAwXCI+XG4gICAgICB7e3N1YlRpdGxlfX1cbiAgICA8L3A+XG4gICAgPGRpdiBjbGFzcz1cIm10LTZcIiAqbmdJZj1cImZhbHNlXCI+XG4gICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBweC00IHB5LTIgYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBzaGFkb3ctc20gdGV4dC1zbSBmb250LW1lZGl1bSByb3VuZGVkLW1kIHRleHQtd2hpdGUgYmctZ3JheS02MDAgaG92ZXI6YmctZ3JheS03MDAgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLW9mZnNldC0xIGZvY3VzOnJpbmctZ3JheS01MDBcIj5cbiAgICAgICAgPCEtLSBIZXJvaWNvbiBuYW1lOiBzb2xpZC9wbHVzIC0tPlxuICAgICAgICA8c3ZnIGNsYXNzPVwiLW1sLTEgbXItMiBoLTYgdy02XCIgZmlsbD1cIm5vbmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgc3Ryb2tlPVwiY3VycmVudENvbG9yXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+XG4gICAgICAgICAgPHBhdGggdmVjdG9yLWVmZmVjdD1cIm5vbi1zY2FsaW5nLXN0cm9rZVwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjJcIiBkPVwiTTkgMTNoNm0tMy0zdjZtLTkgMVY3YTIgMiAwIDAxMi0yaDZsMiAyaDZhMiAyIDAgMDEyIDJ2OGEyIDIgMCAwMS0yIDJINWEyIDIgMCAwMS0yLTJ6XCIgLz5cbiAgICAgICAgPC9zdmc+XG4gICAgICAgIHt7bmV3SXRlbUxhYmVsfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { ListViewType } from '../../types';
|
|
3
|
+
import { ListTileComponent } from './list-tile.component';
|
|
4
|
+
import { ListColumnComponent } from './list-column.component';
|
|
5
|
+
import { ListDetailsSectionComponent } from './list-details-section.component';
|
|
6
|
+
import { Icons } from '../../icons';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "../pager/pager.component";
|
|
10
|
+
import * as i3 from "./list-view-empty-state.component";
|
|
11
|
+
import * as i4 from "../skeleton-loader/skeleton-loader.component";
|
|
12
|
+
export class ListViewComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
// BUSY STATE
|
|
15
|
+
this.busy = false;
|
|
16
|
+
this.expandIcon = Icons.Expand;
|
|
17
|
+
this.collapseIcon = Icons.Collapse;
|
|
18
|
+
// tslint:disable-next-line:no-input-rename
|
|
19
|
+
this.showPager = true;
|
|
20
|
+
// PAGING - pass through for pager component
|
|
21
|
+
this.count = null;
|
|
22
|
+
this.page = 1;
|
|
23
|
+
// tslint:disable-next-line:no-input-rename
|
|
24
|
+
this.pageSize = 20;
|
|
25
|
+
// tslint:disable-next-line:no-input-rename
|
|
26
|
+
this.pageSizeOptions = [];
|
|
27
|
+
this.pageChanged = new EventEmitter();
|
|
28
|
+
this.pageSizeChanged = new EventEmitter();
|
|
29
|
+
this.detailsOpened = new EventEmitter();
|
|
30
|
+
this.tableViewSupported = false;
|
|
31
|
+
this.multipleFullWidth = false;
|
|
32
|
+
this.fullWidthTHClass = 'list-view-th-full';
|
|
33
|
+
this.fullWidthTDClass = 'list-view-td-full';
|
|
34
|
+
this.tilesViewSupported = false;
|
|
35
|
+
this.detailsSectionSupported = false;
|
|
36
|
+
this.loaderItems = [];
|
|
37
|
+
// DETAILS SECTION
|
|
38
|
+
// Check if details section and button should be displayed according to the count of the value given
|
|
39
|
+
// tslint:disable-next-line:no-input-rename
|
|
40
|
+
this.detailsSectionPropertyCount = null;
|
|
41
|
+
// SORTING - pass through for pager component
|
|
42
|
+
// tslint:disable-next-line:no-input-rename
|
|
43
|
+
this.sortOptions = [];
|
|
44
|
+
this.sort = null;
|
|
45
|
+
// tslint:disable-next-line:no-input-rename
|
|
46
|
+
this.sortdir = '-';
|
|
47
|
+
this.sortChanged = new EventEmitter();
|
|
48
|
+
this.sortdirChanged = new EventEmitter();
|
|
49
|
+
this.view = ListViewType.Table;
|
|
50
|
+
// COLUMNS
|
|
51
|
+
this.columns = [];
|
|
52
|
+
this.tilesDeckClass = 'cards-deck-4';
|
|
53
|
+
// tslint:disable-next-line:no-input-rename
|
|
54
|
+
this.tilesCount = 4;
|
|
55
|
+
this.tileTemplate = null;
|
|
56
|
+
this.detailsTemplate = null;
|
|
57
|
+
for (let i = 0; i < 5; i++) {
|
|
58
|
+
this.loaderItems.push({});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
set cols(refs) {
|
|
62
|
+
this.columns = refs?.toArray();
|
|
63
|
+
if (this.columns && this.columns.length > 0) {
|
|
64
|
+
this.tableViewSupported = true;
|
|
65
|
+
}
|
|
66
|
+
this.multipleFullWidth = this.columns.filter(c => c.fullWidth).length > 1;
|
|
67
|
+
this.fullWidthTHClass = this.multipleFullWidth ? 'list-view-th-half' : 'list-view-th-full';
|
|
68
|
+
this.fullWidthTDClass = this.multipleFullWidth ? 'list-view-td-half' : 'list-view-td-full';
|
|
69
|
+
}
|
|
70
|
+
set tiles(ref) {
|
|
71
|
+
this.tileTemplate = ref;
|
|
72
|
+
if (this.tileTemplate) {
|
|
73
|
+
this.tilesViewSupported = true;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
set details(ref) {
|
|
77
|
+
this.detailsTemplate = ref;
|
|
78
|
+
if (this.detailsTemplate) {
|
|
79
|
+
this.detailsSectionSupported = true;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
ngOnChanges(changes) {
|
|
83
|
+
const tilesCountChange = changes['tiles-count'] || changes.tilesCount;
|
|
84
|
+
if (tilesCountChange) {
|
|
85
|
+
this.setTilesDeckClass(tilesCountChange.currentValue);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
// events
|
|
89
|
+
emitPageChanged($event) {
|
|
90
|
+
this.pageChanged.emit($event);
|
|
91
|
+
}
|
|
92
|
+
emitPageSizeChanged($event) {
|
|
93
|
+
this.pageSizeChanged.emit($event);
|
|
94
|
+
}
|
|
95
|
+
emitSortChanged($event) {
|
|
96
|
+
this.sortChanged.emit($event);
|
|
97
|
+
}
|
|
98
|
+
emitSortdirChanged($event) {
|
|
99
|
+
this.sortdirChanged.emit($event);
|
|
100
|
+
}
|
|
101
|
+
toggleDetails(item) {
|
|
102
|
+
item.detailsExpanded = !item.detailsExpanded;
|
|
103
|
+
this.detailsOpened.emit({ item, open: item.detailsExpanded });
|
|
104
|
+
}
|
|
105
|
+
// helpers
|
|
106
|
+
setTilesDeckClass(tiles) {
|
|
107
|
+
if (tiles >= 1 && tiles <= 4) {
|
|
108
|
+
this.tilesDeckClass =
|
|
109
|
+
this.view !== ListViewType.Gallery
|
|
110
|
+
? `cards-deck-${tiles}`
|
|
111
|
+
: this.items && this.items.length > 0
|
|
112
|
+
? `gallery-deck-${tiles}`
|
|
113
|
+
: 'gallery-deck';
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
this.tilesDeckClass =
|
|
117
|
+
this.view !== ListViewType.Gallery
|
|
118
|
+
? 'cards-deck-3'
|
|
119
|
+
: this.items && this.items.length > 0
|
|
120
|
+
? 'gallery-deck-3'
|
|
121
|
+
: 'gallery-deck';
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
ListViewComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
126
|
+
ListViewComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: ListViewComponent, selector: "lib-list-view", inputs: { busy: "busy", items: "items", showPager: ["show-pager", "showPager"], count: "count", page: "page", pageSize: ["page-size", "pageSize"], pageSizeOptions: ["page-size-options", "pageSizeOptions"], detailsSectionPropertyCount: ["details-section-property-count", "detailsSectionPropertyCount"], sortOptions: ["sort-options", "sortOptions"], sort: "sort", sortdir: ["sort-dir", "sortdir"], view: "view", tilesCount: ["tiles-count", "tilesCount"] }, outputs: { pageChanged: "pageChanged", pageSizeChanged: "pageSizeChanged", detailsOpened: "detailsOpened", sortChanged: "sortChanged", sortdirChanged: "sortdirChanged" }, queries: [{ propertyName: "tiles", first: true, predicate: ListTileComponent, descendants: true, read: ListTileComponent }, { propertyName: "details", first: true, predicate: ListDetailsSectionComponent, descendants: true, read: ListDetailsSectionComponent }, { propertyName: "cols", predicate: ListColumnComponent, read: ListColumnComponent }], usesOnChanges: true, ngImport: i0, template: "<div class=\"px-2\">\n\n <lib-pager *ngIf=\"showPager\"\n [page]=\"page\"\n [page-size]=\"pageSize\"\n [count]=\"count\"\n [sort-options]=\"sortOptions\"\n [sort]=\"sort\"\n [sort-dir]=\"sortdir\"\n [busy]=\"busy\"\n (pageChanged)=\"emitPageChanged($event)\"\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n (sortChanged)=\"emitSortChanged($event)\"\n (sortdirChanged)=\"emitSortdirChanged($event)\">\n </lib-pager>\n</div>\n\n<ng-container [ngSwitch]=\"view\">\n\n <ng-container *ngSwitchCase=\"'tiles'\">\n <div [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n\n </div>\n </ng-container>\n\n\n <!-- *ngSwitchCase=\"'gallery'\" -->\n <ng-container *ngSwitchCase=\"'gallery'\">\n <ul role=\"list\" [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n\n <!-- *ngSwitchCase=\"'table'\" -->\n <ng-container *ngSwitchDefault>\n\n <div class=\"list-view-container\">\n <div class=\"list-view-container-inner\">\n <table class=\"list-view-table\">\n <thead class=\"list-view-thead\">\n <tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <th class=\"list-view-th-details\"></th>\n </ng-container>\n <ng-container *ngFor=\"let col of columns\">\n <th scope=\"col\"\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\n {{col.title}}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody class=\"list-view-tbody\" *ngIf=\"busy\">\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button disabled\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n <tbody class=\"list-view-tbody\" *ngIf=\"!busy\">\n <ng-container *ngFor=\"let item of items;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button (click)=\"toggleDetails(item)\"\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <ng-template [ngTemplateOutlet]=\"col.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\n <div class=\"cards-deck-1\">\n <lib-list-view-empty-state></lib-list-view-empty-state>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-content></ng-content>\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: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.PagerComponent, selector: "lib-pager", inputs: ["busy", "count", "page", "page-size", "page-size-options", "sort-options", "sort", "sort-dir"], outputs: ["pageChanged", "pageSizeChanged", "sortChanged", "sortdirChanged"] }, { kind: "component", type: i3.ListViewEmptyStateComponent, selector: "lib-list-view-empty-state", inputs: ["title", "sub-title", "new-item-label"] }, { kind: "component", type: i4.SkeletonLoaderComponent, selector: "lib-skeleton-loader", inputs: ["count", "type"] }] });
|
|
127
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: ListViewComponent, decorators: [{
|
|
128
|
+
type: Component,
|
|
129
|
+
args: [{ selector: 'lib-list-view', template: "<div class=\"px-2\">\n\n <lib-pager *ngIf=\"showPager\"\n [page]=\"page\"\n [page-size]=\"pageSize\"\n [count]=\"count\"\n [sort-options]=\"sortOptions\"\n [sort]=\"sort\"\n [sort-dir]=\"sortdir\"\n [busy]=\"busy\"\n (pageChanged)=\"emitPageChanged($event)\"\n (pageSizeChanged)=\"emitPageSizeChanged($event)\"\n (sortChanged)=\"emitSortChanged($event)\"\n (sortdirChanged)=\"emitSortdirChanged($event)\">\n </lib-pager>\n</div>\n\n<ng-container [ngSwitch]=\"view\">\n\n <ng-container *ngSwitchCase=\"'tiles'\">\n <div [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n\n </div>\n </ng-container>\n\n\n <!-- *ngSwitchCase=\"'gallery'\" -->\n <ng-container *ngSwitchCase=\"'gallery'\">\n <ul role=\"list\" [class]=\"tilesDeckClass\">\n\n <lib-skeleton-loader *ngIf=\"busy\" [count]=\"5\" [type]=\"'tiles'\"></lib-skeleton-loader>\n\n <ng-container *ngIf=\"!busy && items && items.length > 0\">\n <ng-container *ngFor=\"let item of items\">\n <span *ngIf=\"!tileTemplate || !tileTemplate.template\">template missing..</span>\n <ng-template [ngTemplateOutlet]=\"tileTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </ng-container>\n </ng-container>\n </ul>\n </ng-container>\n\n <!-- *ngSwitchCase=\"'table'\" -->\n <ng-container *ngSwitchDefault>\n\n <div class=\"list-view-container\">\n <div class=\"list-view-container-inner\">\n <table class=\"list-view-table\">\n <thead class=\"list-view-thead\">\n <tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <th class=\"list-view-th-details\"></th>\n </ng-container>\n <ng-container *ngFor=\"let col of columns\">\n <th scope=\"col\"\n [class]=\"col.fullWidth ? fullWidthTHClass : 'list-view-th'\">\n {{col.title}}\n </th>\n </ng-container>\n </tr>\n </thead>\n <tbody class=\"list-view-tbody\" *ngIf=\"busy\">\n <ng-container *ngFor=\"let item of loaderItems;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button disabled\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <div class=\"w-full animate-pulse h-8 bg-gray-200 rounded\"></div>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n <tbody class=\"list-view-tbody\" *ngIf=\"!busy\">\n <ng-container *ngFor=\"let item of items;let i=index\">\n <tr class=\"list-view-tr\">\n <ng-container *ngIf=\"detailsSectionSupported\">\n <td class=\"list-view-td-details\"\n *ngIf=\"detailsSectionPropertyCount !== null ? item[detailsSectionPropertyCount] !== 0 : true; else hiddenDetailsButton\">\n <button (click)=\"toggleDetails(item)\"\n type=\"button\"\n class=\"expand-collapse-button\">\n <!-- Heroicon name: solid/plus -->\n <i [class]=\"item.detailsExpanded ? collapseIcon : expandIcon\"></i>\n </button>\n </td>\n <ng-template #hiddenDetailsButton>\n <td class=\"list-view-td-details\"></td>\n </ng-template>\n </ng-container>\n <td *ngFor=\"let col of columns\"\n [class]=\"col.fullWidth ? fullWidthTDClass : 'list-view-td'\">\n <ng-template [ngTemplateOutlet]=\"col.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n <ng-container *ngIf=\"detailsSectionSupported\">\n <tr *ngIf=\"item.detailsExpanded\">\n <td [colSpan]=\"columns.length + 1\"\n class=\"list-view-td bg-gray-100\">\n <ng-template [ngTemplateOutlet]=\"detailsTemplate.template\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!busy && items && items.length === 0\">\n <div class=\"cards-deck-1\">\n <lib-list-view-empty-state></lib-list-view-empty-state>\n </div>\n </ng-container>\n</ng-container>\n\n<ng-content></ng-content>\n" }]
|
|
130
|
+
}], ctorParameters: function () { return []; }, propDecorators: { busy: [{
|
|
131
|
+
type: Input
|
|
132
|
+
}], items: [{
|
|
133
|
+
type: Input
|
|
134
|
+
}], showPager: [{
|
|
135
|
+
type: Input,
|
|
136
|
+
args: ['show-pager']
|
|
137
|
+
}], count: [{
|
|
138
|
+
type: Input
|
|
139
|
+
}], page: [{
|
|
140
|
+
type: Input
|
|
141
|
+
}], pageSize: [{
|
|
142
|
+
type: Input,
|
|
143
|
+
args: ['page-size']
|
|
144
|
+
}], pageSizeOptions: [{
|
|
145
|
+
type: Input,
|
|
146
|
+
args: ['page-size-options']
|
|
147
|
+
}], pageChanged: [{
|
|
148
|
+
type: Output
|
|
149
|
+
}], pageSizeChanged: [{
|
|
150
|
+
type: Output
|
|
151
|
+
}], detailsOpened: [{
|
|
152
|
+
type: Output
|
|
153
|
+
}], detailsSectionPropertyCount: [{
|
|
154
|
+
type: Input,
|
|
155
|
+
args: ['details-section-property-count']
|
|
156
|
+
}], sortOptions: [{
|
|
157
|
+
type: Input,
|
|
158
|
+
args: ['sort-options']
|
|
159
|
+
}], sort: [{
|
|
160
|
+
type: Input
|
|
161
|
+
}], sortdir: [{
|
|
162
|
+
type: Input,
|
|
163
|
+
args: ['sort-dir']
|
|
164
|
+
}], sortChanged: [{
|
|
165
|
+
type: Output
|
|
166
|
+
}], sortdirChanged: [{
|
|
167
|
+
type: Output
|
|
168
|
+
}], view: [{
|
|
169
|
+
type: Input
|
|
170
|
+
}], cols: [{
|
|
171
|
+
type: ContentChildren,
|
|
172
|
+
args: [ListColumnComponent, { read: ListColumnComponent }]
|
|
173
|
+
}], tilesCount: [{
|
|
174
|
+
type: Input,
|
|
175
|
+
args: ['tiles-count']
|
|
176
|
+
}], tiles: [{
|
|
177
|
+
type: ContentChild,
|
|
178
|
+
args: [ListTileComponent, { read: ListTileComponent }]
|
|
179
|
+
}], details: [{
|
|
180
|
+
type: ContentChild,
|
|
181
|
+
args: [ListDetailsSectionComponent, { read: ListDetailsSectionComponent }]
|
|
182
|
+
}] } });
|
|
183
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9saXN0LXZpZXcvbGlzdC12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBdUMsTUFBTSxlQUFlLENBQUM7QUFDM0ksT0FBTyxFQUFjLFlBQVksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFNcEMsTUFBTSxPQUFPLGlCQUFpQjtJQWlGNUI7UUFoRkEsYUFBYTtRQUNKLFNBQUksR0FBRyxLQUFLLENBQUM7UUFDZixlQUFVLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMxQixpQkFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFHckMsMkNBQTJDO1FBQ3RCLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFFdEMsNENBQTRDO1FBQ25DLFVBQUssR0FBa0IsSUFBSSxDQUFDO1FBQzVCLFNBQUksR0FBRyxDQUFDLENBQUM7UUFDbEIsMkNBQTJDO1FBQ3ZCLGFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEMsMkNBQTJDO1FBQ2Ysb0JB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S0FBSztnQkFLRixJQUFJO3NCQURQLGVBQWU7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7Z0JBYTdDLFVBQVU7c0JBQS9CLEtBQUs7dUJBQUMsYUFBYTtnQkFJaEIsS0FBSztzQkFEUixZQUFZO3VCQUFDLGlCQUFpQixFQUFFLEVBQUUsSUFBSSxFQUFFLGlCQUFpQixFQUFFO2dCQVV4RCxPQUFPO3NCQURWLFlBQVk7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxJQUFJLEVBQUUsMkJBQTJCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgQ29udGVudENoaWxkcmVuLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZW51T3B0aW9uLCBMaXN0Vmlld1R5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBMaXN0VGlsZUNvbXBvbmVudCB9IGZyb20gJy4vbGlzdC10aWxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMaXN0Q29sdW1uQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LWNvbHVtbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9saXN0LWRldGFpbHMtc2VjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSWNvbnMgfSBmcm9tICcuLi8uLi9pY29ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1saXN0LXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC12aWV3LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBMaXN0Vmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIC8vIEJVU1kgU1RBVEVcbiAgQElucHV0KCkgYnVzeSA9IGZhbHNlO1xuICBwdWJsaWMgZXhwYW5kSWNvbiA9IEljb25zLkV4cGFuZDtcbiAgcHVibGljIGNvbGxhcHNlSWNvbiA9IEljb25zLkNvbGxhcHNlO1xuICAvLyBEQVRBIFNPVVJDRSFcbiAgQElucHV0KCkgaXRlbXM6IGFueVtdIHwgbnVsbCB8IHVuZGVmaW5lZDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3Nob3ctcGFnZXInKSBzaG93UGFnZXIgPSB0cnVlO1xuXG4gIC8vIFBBR0lORyAtIHBhc3MgdGhyb3VnaCBmb3IgcGFnZXIgY29tcG9uZW50XG4gIEBJbnB1dCgpIGNvdW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgcGFnZSA9IDE7XG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdwYWdlLXNpemUnKSBwYWdlU2l6ZSA9IDIwO1xuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8taW5wdXQtcmVuYW1lXG4gIEBJbnB1dCgncGFnZS1zaXplLW9wdGlvbnMnKSBwYWdlU2l6ZU9wdGlvbnM6IE1lbnVPcHRpb25bXSA9IFtdO1xuICBAT3V0cHV0KCkgcGFnZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBwYWdlU2l6ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG4gIEBPdXRwdXQoKSBkZXRhaWxzT3BlbmVkOiBFdmVudEVtaXR0ZXI8eyBpdGVtOiBhbnksIG9wZW46IGJvb2xlYW4gfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogYW55LCBvcGVuOiBib29sZWFuIH0+KCk7XG5cbiAgcHVibGljIHRhYmxlVmlld1N1cHBvcnRlZCA9IGZhbHNlO1xuICBwcml2YXRlIG11bHRpcGxlRnVsbFdpZHRoID0gZmFsc2U7XG4gIHB1YmxpYyBmdWxsV2lkdGhUSENsYXNzID0gJ2xpc3Qtdmlldy10aC1mdWxsJztcbiAgcHVibGljIGZ1bGxXaWR0aFREQ2xhc3MgPSAnbGlzdC12aWV3LXRkLWZ1bGwnO1xuICBwdWJsaWMgdGlsZXNWaWV3U3VwcG9ydGVkID0gZmFsc2U7XG4gIHB1YmxpYyBkZXRhaWxzU2VjdGlvblN1cHBvcnRlZCA9IGZhbHNlO1xuICBwdWJsaWMgbG9hZGVySXRlbXM6IGFueVtdID0gW107XG5cbiAgLy8gREVUQUlMUyBTRUNUSU9OXG4gIC8vIENoZWNrIGlmIGRldGFpbHMgc2VjdGlvbiBhbmQgYnV0dG9uIHNob3VsZCBiZSBkaXNwbGF5ZWQgYWNjb3JkaW5nIHRvIHRoZSBjb3VudCBvZiB0aGUgdmFsdWUgZ2l2ZW5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2RldGFpbHMtc2VjdGlvbi1wcm9wZXJ0eS1jb3VudCcpIGRldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cblxuICAvLyBTT1JUSU5HIC0gcGFzcyB0aHJvdWdoIGZvciBwYWdlciBjb21wb25lbnRcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NvcnQtb3B0aW9ucycpIHNvcnRPcHRpb25zOiBNZW51T3B0aW9uW10gPSBbXTtcbiAgICBASW5wdXQoKSBzb3J0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3NvcnQtZGlyJykgc29ydGRpcjogc3RyaW5nIHwgbnVsbCA9ICctJztcbiAgQE91dHB1dCgpIHNvcnRDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgc29ydGRpckNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgQElucHV0KCkgdmlldyA9IExpc3RWaWV3VHlwZS5UYWJsZTtcblxuICAvLyBDT0xVTU5TXG4gIHB1YmxpYyBjb2x1bW5zOiBhbnlbXSA9IFtdO1xuICBAQ29udGVudENoaWxkcmVuKExpc3RDb2x1bW5Db21wb25lbnQsIHsgcmVhZDogTGlzdENvbHVtbkNvbXBvbmVudCB9KVxuICBzZXQgY29scyhyZWZzOiBRdWVyeUxpc3Q8TGlzdENvbHVtbkNvbXBvbmVudD4pIHtcbiAgICB0aGlzLmNvbHVtbnMgPSByZWZzPy50b0FycmF5KCk7XG4gICAgaWYgKHRoaXMuY29sdW1ucyAmJiB0aGlzLmNvbHVtbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy50YWJsZVZpZXdTdXBwb3J0ZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLm11bHRpcGxlRnVsbFdpZHRoID0gdGhpcy5jb2x1bW5zLmZpbHRlcihjID0+IGMuZnVsbFdpZHRoKS5sZW5ndGggPiAxO1xuICAgIHRoaXMuZnVsbFdpZHRoVEhDbGFzcyA9IHRoaXMubXVsdGlwbGVGdWxsV2lkdGggPyAnbGlzdC12aWV3LXRoLWhhbGYnIDogJ2xpc3Qtdmlldy10aC1mdWxsJztcbiAgICB0aGlzLmZ1bGxXaWR0aFREQ2xhc3MgPSB0aGlzLm11bHRpcGxlRnVsbFdpZHRoID8gJ2xpc3Qtdmlldy10ZC1oYWxmJyA6ICdsaXN0LXZpZXctdGQtZnVsbCc7XG4gIH1cblxuICBwdWJsaWMgdGlsZXNEZWNrQ2xhc3MgPSAnY2FyZHMtZGVjay00JztcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ3RpbGVzLWNvdW50JykgdGlsZXNDb3VudCA9IDQ7XG5cbiAgcHVibGljIHRpbGVUZW1wbGF0ZTogYW55IHwgbnVsbCB8IHVuZGVmaW5lZCA9IG51bGw7XG4gIEBDb250ZW50Q2hpbGQoTGlzdFRpbGVDb21wb25lbnQsIHsgcmVhZDogTGlzdFRpbGVDb21wb25lbnQgfSlcbiAgc2V0IHRpbGVzKHJlZjogTGlzdFRpbGVDb21wb25lbnQpIHtcbiAgICB0aGlzLnRpbGVUZW1wbGF0ZSA9IHJlZjtcbiAgICBpZiAodGhpcy50aWxlVGVtcGxhdGUpIHtcbiAgICAgIHRoaXMudGlsZXNWaWV3U3VwcG9ydGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZGV0YWlsc1RlbXBsYXRlOiBhbnkgfCBudWxsIHwgdW5kZWZpbmVkID0gbnVsbDtcbiAgQENvbnRlbnRDaGlsZChMaXN0RGV0YWlsc1NlY3Rpb25Db21wb25lbnQsIHsgcmVhZDogTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50IH0pXG4gIHNldCBkZXRhaWxzKHJlZjogTGlzdERldGFpbHNTZWN0aW9uQ29tcG9uZW50KSB7XG4gICAgdGhpcy5kZXRhaWxzVGVtcGxhdGUgPSByZWY7XG4gICAgaWYgKHRoaXMuZGV0YWlsc1RlbXBsYXRlKSB7XG4gICAgICB0aGlzLmRldGFpbHNTZWN0aW9uU3VwcG9ydGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgICAgdGhpcy5sb2FkZXJJdGVtcy5wdXNoKHt9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgdGlsZXNDb3VudENoYW5nZSA9IGNoYW5nZXNbJ3RpbGVzLWNvdW50J10gfHwgY2hhbmdlcy50aWxlc0NvdW50O1xuICAgIGlmICh0aWxlc0NvdW50Q2hhbmdlKSB7XG4gICAgICB0aGlzLnNldFRpbGVzRGVja0NsYXNzKHRpbGVzQ291bnRDaGFuZ2UuY3VycmVudFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvLyBldmVudHNcbiAgcHVibGljIGVtaXRQYWdlQ2hhbmdlZCgkZXZlbnQ6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucGFnZUNoYW5nZWQuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIGVtaXRQYWdlU2l6ZUNoYW5nZWQoJGV2ZW50OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnBhZ2VTaXplQ2hhbmdlZC5lbWl0KCRldmVudCk7XG4gIH1cblxuICBwdWJsaWMgZW1pdFNvcnRDaGFuZ2VkKCRldmVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zb3J0Q2hhbmdlZC5lbWl0KCRldmVudCk7XG4gIH1cbiAgcHVibGljIGVtaXRTb3J0ZGlyQ2hhbmdlZCgkZXZlbnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc29ydGRpckNoYW5nZWQuZW1pdCgkZXZlbnQpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZURldGFpbHMoaXRlbTogYW55KTogdm9pZCB7XG4gICAgaXRlbS5kZXRhaWxzRXhwYW5kZWQgPSAhaXRlbS5kZXRhaWxzRXhwYW5kZWQ7XG4gICAgdGhpcy5kZXRhaWxzT3BlbmVkLmVtaXQoeyBpdGVtLCBvcGVuOiBpdGVtLmRldGFpbHNFeHBhbmRlZCB9KTtcbiAgfVxuXG4gIC8vIGhlbHBlcnNcbiAgcHJpdmF0ZSBzZXRUaWxlc0RlY2tDbGFzcyh0aWxlczogbnVtYmVyKTogdm9pZCB7XG4gICAgaWYgKHRpbGVzID49IDEgJiYgdGlsZXMgPD0gNCkge1xuICAgICAgdGhpcy50aWxlc0RlY2tDbGFzcyA9XG4gICAgICAgIHRoaXMudmlldyAhPT0gTGlzdFZpZXdUeXBlLkdhbGxlcnlcbiAgICAgICAgPyBgY2FyZHMtZGVjay0ke3RpbGVzfWBcbiAgICAgICAgOiB0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoID4gMFxuICAgICAgICAgID8gYGdhbGxlcnktZGVjay0ke3RpbGVzfWBcbiAgICAgICAgICA6ICdnYWxsZXJ5LWRlY2snO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnRpbGVzRGVja0NsYXNzID1cbiAgICAgICAgdGhpcy52aWV3ICE9PSBMaXN0Vmlld1R5cGUuR2FsbGVyeVxuICAgICAgICA/ICdjYXJkcy1kZWNrLTMnXG4gICAgICAgIDogdGhpcy5pdGVtcyAmJiB0aGlzLml0ZW1zLmxlbmd0aCA+IDBcbiAgICAgICAgICA/ICdnYWxsZXJ5LWRlY2stMydcbiAgICAgICAgICA6ICdnYWxsZXJ5LWRlY2snO1xuICAgIH1cbiAgfVxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicHgtMlwiPlxuXG4gIDxsaWItcGFnZXIgKm5nSWY9XCJzaG93UGFnZXJcIlxuICAgICAgICAgICAgIFtwYWdlXT1cInBhZ2VcIlxuICAgICAgICAgICAgIFtwYWdlLXNpemVdPVwicGFnZVNpemVcIlxuICAgICAgICAgICAgIFtjb3VudF09XCJjb3VudFwiXG4gICAgICAgICAgICAgW3NvcnQtb3B0aW9uc109XCJzb3J0T3B0aW9uc1wiXG4gICAgICAgICAgICAgW3NvcnRdPVwic29ydFwiXG4gICAgICAgICAgICAgW3NvcnQtZGlyXT1cInNvcnRkaXJcIlxuICAgICAgICAgICAgIFtidXN5XT1cImJ1c3lcIlxuICAgICAgICAgICAgIChwYWdlQ2hhbmdlZCk9XCJlbWl0UGFnZUNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgKHBhZ2VTaXplQ2hhbmdlZCk9XCJlbWl0UGFnZVNpemVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgICAgIChzb3J0Q2hhbmdlZCk9XCJlbWl0U29ydENoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgKHNvcnRkaXJDaGFuZ2VkKT1cImVtaXRTb3J0ZGlyQ2hhbmdlZCgkZXZlbnQpXCI+XG4gIDwvbGliLXBhZ2VyPlxuPC9kaXY+XG5cbjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInZpZXdcIj5cblxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGlsZXMnXCI+XG4gICAgPGRpdiBbY2xhc3NdPVwidGlsZXNEZWNrQ2xhc3NcIj5cblxuICAgICAgPGxpYi1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJidXN5XCIgW2NvdW50XT1cIjVcIiBbdHlwZV09XCIndGlsZXMnXCI+PC9saWItc2tlbGV0b24tbG9hZGVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdGlsZVRlbXBsYXRlIHx8ICF0aWxlVGVtcGxhdGUudGVtcGxhdGVcIj50ZW1wbGF0ZSBtaXNzaW5nLi48L3NwYW4+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpbGVUZW1wbGF0ZS50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuXG4gIDwhLS0gKm5nU3dpdGNoQ2FzZT1cIidnYWxsZXJ5J1wiIC0tPlxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZ2FsbGVyeSdcIj5cbiAgICA8dWwgcm9sZT1cImxpc3RcIiBbY2xhc3NdPVwidGlsZXNEZWNrQ2xhc3NcIj5cblxuICAgICAgPGxpYi1za2VsZXRvbi1sb2FkZXIgKm5nSWY9XCJidXN5XCIgW2NvdW50XT1cIjVcIiBbdHlwZV09XCIndGlsZXMnXCI+PC9saWItc2tlbGV0b24tbG9hZGVyPlxuXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWJ1c3kgJiYgaXRlbXMgJiYgaXRlbXMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGl0ZW1zXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhdGlsZVRlbXBsYXRlIHx8ICF0aWxlVGVtcGxhdGUudGVtcGxhdGVcIj50ZW1wbGF0ZSBtaXNzaW5nLi48L3NwYW4+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRpbGVUZW1wbGF0ZS50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8IS0tICpuZ1N3aXRjaENhc2U9XCIndGFibGUnXCIgLS0+XG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cblxuICAgIDxkaXYgY2xhc3M9XCJsaXN0LXZpZXctY29udGFpbmVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdC12aWV3LWNvbnRhaW5lci1pbm5lclwiPlxuICAgICAgICA8dGFibGUgY2xhc3M9XCJsaXN0LXZpZXctdGFibGVcIj5cbiAgICAgICAgICA8dGhlYWQgY2xhc3M9XCJsaXN0LXZpZXctdGhlYWRcIj5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNTZWN0aW9uU3VwcG9ydGVkXCI+XG4gICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwibGlzdC12aWV3LXRoLWRldGFpbHNcIj48L3RoPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIj5cbiAgICAgICAgICAgICAgICA8dGggc2NvcGU9XCJjb2xcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sLmZ1bGxXaWR0aCA/IGZ1bGxXaWR0aFRIQ2xhc3MgOiAnbGlzdC12aWV3LXRoJ1wiPlxuICAgICAgICAgICAgICAgICAge3tjb2wudGl0bGV9fVxuICAgICAgICAgICAgICAgIDwvdGg+XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICA8L3RoZWFkPlxuICAgICAgICAgIDx0Ym9keSBjbGFzcz1cImxpc3Qtdmlldy10Ym9keVwiICpuZ0lmPVwiYnVzeVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsb2FkZXJJdGVtcztsZXQgaT1pbmRleFwiPlxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJsaXN0LXZpZXctdHJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxpc3Qtdmlldy10ZC1kZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudCAhPT0gbnVsbCA/IGl0ZW1bZGV0YWlsc1NlY3Rpb25Qcm9wZXJ0eUNvdW50XSAhPT0gMCA6IHRydWU7IGVsc2UgaGlkZGVuRGV0YWlsc0J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIGRpc2FibGVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJleHBhbmQtY29sbGFwc2UtYnV0dG9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPCEtLSBIZXJvaWNvbiBuYW1lOiBzb2xpZC9wbHVzIC0tPlxuICAgICAgICAgICAgICAgICAgICAgIDxpIFtjbGFzc109XCJpdGVtLmRldGFpbHNFeHBhbmRlZCA/IGNvbGxhcHNlSWNvbiA6IGV4cGFuZEljb25cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjaGlkZGVuRGV0YWlsc0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPHRkIGNsYXNzPVwibGlzdC12aWV3LXRkLWRldGFpbHNcIj48L3RkPlxuICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8dGQgKm5nRm9yPVwibGV0IGNvbCBvZiBjb2x1bW5zXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cImNvbC5mdWxsV2lkdGggPyBmdWxsV2lkdGhURENsYXNzIDogJ2xpc3Qtdmlldy10ZCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBhbmltYXRlLXB1bHNlIGgtOCBiZy1ncmF5LTIwMCByb3VuZGVkXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRldGFpbHNTZWN0aW9uU3VwcG9ydGVkXCI+XG4gICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiaXRlbS5kZXRhaWxzRXhwYW5kZWRcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBbY29sU3Bhbl09XCJjb2x1bW5zLmxlbmd0aCArIDFcIlxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlzdC12aWV3LXRkIGJnLWdyYXktMTAwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJkZXRhaWxzVGVtcGxhdGUudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgICAgPHRib2R5IGNsYXNzPVwibGlzdC12aWV3LXRib2R5XCIgKm5nSWY9XCIhYnVzeVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBpdGVtcztsZXQgaT1pbmRleFwiPlxuICAgICAgICAgICAgICA8dHIgY2xhc3M9XCJsaXN0LXZpZXctdHJcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGV0YWlsc1NlY3Rpb25TdXBwb3J0ZWRcIj5cbiAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cImxpc3Qtdmlldy10ZC1kZXRhaWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImRldGFpbHNTZWN0aW9uUHJvcGVydHlDb3VudCAhPT0gbnVsbCA/IGl0ZW1bZGV0YWlsc1NlY3Rpb25Qcm9wZXJ0eUNvdW50XSAhPT0gMCA6IHRydWU7IGVsc2UgaGlkZGVuRGV0YWlsc0J1dHRvblwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJ0b2dnbGVEZXRhaWxzKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImV4cGFuZC1jb2xsYXBzZS1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8IS0tIEhlcm9pY29uIG5hbWU6IHNvbGlkL3BsdXMgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIml0ZW0uZGV0YWlsc0V4cGFuZGVkID8gY29sbGFwc2VJY29uIDogZXhwYW5kSWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNoaWRkZW5EZXRhaWxzQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJsaXN0LXZpZXctdGQtZGV0YWlsc1wiPjwvdGQ+XG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY29sIG9mIGNvbHVtbnNcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiY29sLmZ1bGxXaWR0aCA/IGZ1bGxXaWR0aFREQ2xhc3MgOiAnbGlzdC12aWV3LXRkJ1wiPlxuICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbC50ZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkZXRhaWxzU2VjdGlvblN1cHBvcnRlZFwiPlxuICAgICAgICAgICAgICAgIDx0ciAqbmdJZj1cIml0ZW0uZGV0YWlsc0V4cGFuZGVkXCI+XG4gICAgICAgICAgICAgICAgICA8dGQgW2NvbFNwYW5dPVwiY29sdW1ucy5sZW5ndGggKyAxXCJcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpc3Qtdmlldy10ZCBiZy1ncmF5LTEwMFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGV0YWlsc1RlbXBsYXRlLnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7ICRpbXBsaWNpdDogaXRlbSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYnVzeSAmJiBpdGVtcyAmJiBpdGVtcy5sZW5ndGggPT09IDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZHMtZGVjay0xXCI+XG4gICAgICA8bGliLWxpc3Qtdmlldy1lbXB0eS1zdGF0ZT48L2xpYi1saXN0LXZpZXctZW1wdHktc3RhdGU+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiJdfQ==
|