@energycap/components 0.41.0 → 0.41.1-ECAP-27592-angular-17.20241219-1718
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/{esm2020 → esm2022}/energycap-components.mjs +4 -4
- package/{esm2020 → esm2022}/lib/components.module.mjs +418 -418
- package/{esm2020 → esm2022}/lib/controls/banner/banner.component.mjs +109 -109
- package/{esm2020 → esm2022}/lib/controls/button/button.component.mjs +106 -106
- package/{esm2020 → esm2022}/lib/controls/button/copy-button-base.directive.mjs +67 -67
- package/{esm2020 → esm2022}/lib/controls/button/copy-button.directive.mjs +28 -28
- package/{esm2020 → esm2022}/lib/controls/button/copy-table-button.directive.mjs +43 -43
- package/{esm2020 → esm2022}/lib/controls/calendar/calendar-item.component.mjs +59 -59
- package/{esm2020 → esm2022}/lib/controls/calendar/calendar.component.mjs +200 -200
- package/{esm2020 → esm2022}/lib/controls/calendar/calendar.types.mjs +3 -3
- package/{esm2020 → esm2022}/lib/controls/checkbox/checkbox.component.mjs +140 -140
- package/{esm2020 → esm2022}/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -38
- package/{esm2020 → esm2022}/lib/controls/combobox/combobox.component.mjs +879 -879
- package/{esm2020 → esm2022}/lib/controls/date-input/date-input.component.mjs +256 -256
- package/{esm2020 → esm2022}/lib/controls/dropdown/dropdown.component.mjs +243 -243
- package/{esm2020 → esm2022}/lib/controls/file-upload/file-upload.component.mjs +261 -261
- package/{esm2020 → esm2022}/lib/controls/form-control/form-control.component.mjs +104 -104
- package/{esm2020 → esm2022}/lib/controls/form-control-base.mjs +151 -151
- package/{esm2020 → esm2022}/lib/controls/form-control-label/form-control-label.component.mjs +136 -136
- package/{esm2020 → esm2022}/lib/controls/form-group/form-group.component.mjs +261 -261
- package/{esm2020 → esm2022}/lib/controls/help-popover/help-popover.component.mjs +31 -31
- package/{esm2020 → esm2022}/lib/controls/item-picker/item-picker.component.mjs +329 -329
- package/{esm2020 → esm2022}/lib/controls/link-button/link-button.component.mjs +11 -11
- package/{esm2020 → esm2022}/lib/controls/menu/menu.component.mjs +485 -485
- package/{esm2020 → esm2022}/lib/controls/navigation/link-item.mjs +1 -1
- package/{esm2020 → esm2022}/lib/controls/navigation/nav-group.mjs +38 -38
- package/{esm2020 → esm2022}/lib/controls/navigation/nav-item-active.directive.mjs +92 -92
- package/{esm2020 → esm2022}/lib/controls/navigation/nav-item.mjs +1 -1
- package/{esm2020 → esm2022}/lib/controls/numericbox/numericbox.component.mjs +372 -372
- package/{esm2020 → esm2022}/lib/controls/popover/popover.component.mjs +117 -117
- package/{esm2020 → esm2022}/lib/controls/radio-button/radio-button-option.mjs +2 -2
- package/{esm2020 → esm2022}/lib/controls/radio-button/radio-button.component.mjs +82 -82
- package/{esm2020 → esm2022}/lib/controls/select/select.component.mjs +88 -88
- package/{esm2020 → esm2022}/lib/controls/tabs/tabs.component.mjs +47 -47
- package/{esm2020 → esm2022}/lib/controls/textbox/textbox.component.mjs +155 -155
- package/{esm2020 → esm2022}/lib/core/cache.service.mjs +105 -105
- package/esm2022/lib/core/custom-validators.mjs +29 -0
- package/esm2022/lib/core/date-time-helper.mjs +220 -0
- package/{esm2020 → esm2022}/lib/core/error.service.mjs +61 -61
- package/{esm2020 → esm2022}/lib/core/router-helper.service.mjs +111 -111
- package/{esm2020 → esm2022}/lib/core/scroll.service.mjs +89 -89
- package/{esm2020 → esm2022}/lib/core/telemetry-tracker.service.mjs +16 -16
- package/{esm2020 → esm2022}/lib/core/telemetry.service.mjs +38 -38
- package/{esm2020 → esm2022}/lib/core/validation-message.service.mjs +185 -185
- package/{esm2020 → esm2022}/lib/core/validation-patterns.mjs +30 -30
- package/{esm2020 → esm2022}/lib/core/window.service.mjs +186 -186
- package/{esm2020 → esm2022}/lib/display/app-bar/app-bar.component.mjs +46 -46
- package/esm2022/lib/display/avatar/avatar.component.mjs +67 -0
- package/{esm2020 → esm2022}/lib/display/avatar/avatar.service.mjs +64 -64
- package/{esm2020 → esm2022}/lib/display/confirm/confirm.component.mjs +168 -168
- package/{esm2020 → esm2022}/lib/display/dialog/dialog-content.mjs +1 -1
- package/{esm2020 → esm2022}/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -63
- package/{esm2020 → esm2022}/lib/display/dialog/dialog-types.mjs +76 -76
- package/{esm2020 → esm2022}/lib/display/dialog/dialog.component.mjs +281 -281
- package/{esm2020 → esm2022}/lib/display/dialog/dialog.service.mjs +71 -71
- package/{esm2020 → esm2022}/lib/display/help/help-types.mjs +1 -1
- package/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-base.mjs +111 -111
- package/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-mocks.spec.mjs +53 -53
- package/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +61 -61
- package/{esm2020 → esm2022}/lib/display/item-display/item-display.component.mjs +81 -81
- package/{esm2020 → esm2022}/lib/display/json-display/json-display.component.mjs +47 -47
- package/{esm2020 → esm2022}/lib/display/resizable/resizable-base.mjs +120 -120
- package/{esm2020 → esm2022}/lib/display/resizable/resizable.component.mjs +52 -52
- package/{esm2020 → esm2022}/lib/display/spinner/spinner.component.mjs +12 -12
- package/{esm2020 → esm2022}/lib/display/splash/splash.component.mjs +42 -42
- package/{esm2020 → esm2022}/lib/display/splash/splash.service.mjs +35 -35
- package/{esm2020 → esm2022}/lib/display/table/resizable-column.component.mjs +20 -20
- package/{esm2020 → esm2022}/lib/display/table/resizable-table.directive.mjs +227 -227
- package/{esm2020 → esm2022}/lib/display/table/searchable-table.component.mjs +342 -342
- package/{esm2020 → esm2022}/lib/display/table/table-detail-row.component.mjs +19 -19
- package/{esm2020 → esm2022}/lib/display/table/table-locked-column.component.mjs +58 -58
- package/{esm2020 → esm2022}/lib/display/table/table-master-header-row.component.mjs +14 -14
- package/{esm2020 → esm2022}/lib/display/table/table-master-row.component.mjs +163 -163
- package/{esm2020 → esm2022}/lib/display/table/table-pagination.component.mjs +155 -155
- package/{esm2020 → esm2022}/lib/display/table/table-selectable-row.component.mjs +235 -235
- package/{esm2020 → esm2022}/lib/display/table/table.component.mjs +249 -249
- package/{esm2020 → esm2022}/lib/display/tags/tag.mjs +17 -17
- package/{esm2020 → esm2022}/lib/display/tags/tags.component.mjs +77 -77
- package/{esm2020 → esm2022}/lib/display/toast/toast/toast.component.mjs +77 -77
- package/{esm2020 → esm2022}/lib/display/toast/toast-types.mjs +7 -7
- package/{esm2020 → esm2022}/lib/display/toast/toast.service.mjs +35 -35
- package/{esm2020 → esm2022}/lib/display/toast/toaster/toaster.component.mjs +114 -114
- package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.component.mjs +28 -28
- package/{esm2020 → esm2022}/lib/display/tooltip/tooltip.service.mjs +78 -78
- package/{esm2020 → esm2022}/lib/display/tooltip-directive/tooltip.directive.mjs +173 -173
- package/{esm2020 → esm2022}/lib/display/tour/tour-types.mjs +33 -33
- package/{esm2020 → esm2022}/lib/display/tour/tour.component.mjs +398 -398
- package/{esm2020 → esm2022}/lib/display/tour/tour.service.mjs +75 -75
- package/{esm2020 → esm2022}/lib/display/tree/tree.component.mjs +135 -135
- package/{esm2020 → esm2022}/lib/display/view-overlay/view-overlay.component.mjs +58 -58
- package/{esm2020 → esm2022}/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -32
- package/{esm2020 → esm2022}/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -111
- package/esm2022/lib/shared/directives/popup/popup-container.directive.mjs +166 -0
- package/{esm2020 → esm2022}/lib/shared/display/pipes/date-display.pipe.mjs +50 -50
- package/{esm2020 → esm2022}/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -30
- package/{esm2020 → esm2022}/lib/shared/display/pipes/relative-date.pipe.mjs +62 -62
- package/{esm2020 → esm2022}/lib/shared/display/pipes/row-count.pipe.mjs +48 -48
- package/{esm2020 → esm2022}/lib/shared/display/pipes/time-display.pipe.mjs +41 -41
- package/esm2022/lib/shared/display.mjs +6 -0
- package/esm2022/lib/shared/form-group.helper.mjs +67 -0
- package/{esm2020 → esm2022}/lib/shared/json-helper.mjs +18 -18
- package/esm2022/lib/shared/lodash-helper.mjs +52 -0
- package/{esm2020 → esm2022}/lib/shared/page/page-base/page-base.component.mjs +387 -387
- package/{esm2020 → esm2022}/lib/shared/page/page-statuses.mjs +22 -22
- package/{esm2020 → esm2022}/lib/shared/page/page-title/page-title.component.mjs +23 -23
- package/{esm2020 → esm2022}/lib/shared/page/page-view/page-view.component.mjs +147 -147
- package/{esm2020 → esm2022}/lib/shared/testing/copy-button-base-test-injector-factory.spec.mjs +16 -16
- package/{esm2020 → esm2022}/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs +16 -16
- package/{esm2020 → esm2022}/lib/shared/testing/page-base-component-test-helper.spec.mjs +37 -37
- package/esm2022/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +98 -0
- package/{esm2020 → esm2022}/lib/shared/testing/public-mocks.spec.mjs +148 -148
- package/{esm2020 → esm2022}/lib/shared/testing/spy-factory.spec.mjs +39 -39
- package/{esm2020 → esm2022}/lib/shared/testing/translation-mocks.spec.mjs +56 -56
- package/{esm2020 → esm2022}/lib/shared/user-preference.service.mjs +17 -17
- package/{esm2020 → esm2022}/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -246
- package/{esm2020 → esm2022}/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -68
- package/{esm2020 → esm2022}/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -18
- package/{esm2020 → esm2022}/public-api.mjs +114 -114
- package/{fesm2020 → fesm2022}/energycap-components.mjs +11797 -11793
- package/fesm2022/energycap-components.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/components.module.d.ts +91 -91
- package/lib/controls/banner/banner.component.d.ts +50 -50
- package/lib/controls/button/button.component.d.ts +78 -78
- package/lib/controls/button/copy-button-base.directive.d.ts +20 -20
- package/lib/controls/button/copy-button.directive.d.ts +14 -14
- package/lib/controls/button/copy-table-button.directive.d.ts +19 -19
- package/lib/controls/calendar/calendar-item.component.d.ts +17 -17
- package/lib/controls/calendar/calendar.component.d.ts +54 -54
- package/lib/controls/calendar/calendar.types.d.ts +7 -7
- package/lib/controls/checkbox/checkbox.component.d.ts +65 -65
- package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +25 -25
- package/lib/controls/combobox/combobox.component.d.ts +418 -418
- package/lib/controls/date-input/date-input.component.d.ts +80 -80
- package/lib/controls/dropdown/dropdown.component.d.ts +161 -161
- package/lib/controls/file-upload/file-upload.component.d.ts +124 -124
- package/lib/controls/form-control/form-control.component.d.ts +30 -30
- package/lib/controls/form-control-base.d.ts +110 -110
- package/lib/controls/form-control-label/form-control-label.component.d.ts +73 -73
- package/lib/controls/form-group/form-group.component.d.ts +105 -105
- package/lib/controls/help-popover/help-popover.component.d.ts +11 -11
- package/lib/controls/item-picker/item-picker.component.d.ts +164 -164
- package/lib/controls/link-button/link-button.component.d.ts +5 -5
- package/lib/controls/menu/menu.component.d.ts +255 -255
- package/lib/controls/navigation/link-item.d.ts +32 -32
- package/lib/controls/navigation/nav-group.d.ts +18 -18
- package/lib/controls/navigation/nav-item-active.directive.d.ts +42 -42
- package/lib/controls/navigation/nav-item.d.ts +31 -31
- package/lib/controls/numericbox/numericbox.component.d.ts +148 -148
- package/lib/controls/popover/popover.component.d.ts +51 -51
- package/lib/controls/radio-button/radio-button-option.d.ts +19 -19
- package/lib/controls/radio-button/radio-button.component.d.ts +53 -53
- package/lib/controls/select/select.component.d.ts +44 -44
- package/lib/controls/tabs/tabs.component.d.ts +30 -30
- package/lib/controls/textbox/textbox.component.d.ts +107 -107
- package/lib/core/cache.service.d.ts +33 -33
- package/lib/core/custom-validators.d.ts +20 -20
- package/lib/core/date-time-helper.d.ts +101 -101
- package/lib/core/error.service.d.ts +20 -20
- package/lib/core/router-helper.service.d.ts +48 -48
- package/lib/core/scroll.service.d.ts +36 -36
- package/lib/core/telemetry-tracker.service.d.ts +13 -13
- package/lib/core/telemetry.service.d.ts +31 -31
- package/lib/core/validation-message.service.d.ts +26 -26
- package/lib/core/validation-patterns.d.ts +22 -22
- package/lib/core/window.service.d.ts +116 -116
- package/lib/display/app-bar/app-bar.component.d.ts +20 -20
- package/lib/display/avatar/avatar.component.d.ts +35 -35
- package/lib/display/avatar/avatar.service.d.ts +24 -24
- package/lib/display/confirm/confirm.component.d.ts +123 -123
- package/lib/display/dialog/dialog-content.d.ts +19 -19
- package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +32 -32
- package/lib/display/dialog/dialog-types.d.ts +130 -130
- package/lib/display/dialog/dialog.component.d.ts +120 -120
- package/lib/display/dialog/dialog.service.d.ts +48 -48
- package/lib/display/help/help-types.d.ts +33 -33
- package/lib/display/hierarchy/hierarchy-base.d.ts +97 -97
- package/lib/display/hierarchy/hierarchy-mocks.spec.d.ts +53 -53
- package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +34 -34
- package/lib/display/item-display/item-display.component.d.ts +43 -43
- package/lib/display/json-display/json-display.component.d.ts +16 -16
- package/lib/display/resizable/resizable-base.d.ts +67 -67
- package/lib/display/resizable/resizable.component.d.ts +31 -31
- package/lib/display/spinner/spinner.component.d.ts +5 -5
- package/lib/display/splash/splash.component.d.ts +16 -16
- package/lib/display/splash/splash.service.d.ts +22 -22
- package/lib/display/table/resizable-column.component.d.ts +10 -10
- package/lib/display/table/resizable-table.directive.d.ts +93 -93
- package/lib/display/table/searchable-table.component.d.ts +206 -206
- package/lib/display/table/table-detail-row.component.d.ts +8 -8
- package/lib/display/table/table-locked-column.component.d.ts +20 -20
- package/lib/display/table/table-master-header-row.component.d.ts +9 -9
- package/lib/display/table/table-master-row.component.d.ts +113 -113
- package/lib/display/table/table-pagination.component.d.ts +91 -91
- package/lib/display/table/table-selectable-row.component.d.ts +102 -102
- package/lib/display/table/table.component.d.ts +121 -121
- package/lib/display/tags/tag.d.ts +18 -18
- package/lib/display/tags/tags.component.d.ts +48 -48
- package/lib/display/toast/toast/toast.component.d.ts +23 -23
- package/lib/display/toast/toast-types.d.ts +24 -24
- package/lib/display/toast/toast.service.d.ts +20 -20
- package/lib/display/toast/toaster/toaster.component.d.ts +35 -35
- package/lib/display/tooltip/tooltip.component.d.ts +70 -70
- package/lib/display/tooltip/tooltip.service.d.ts +16 -16
- package/lib/display/tooltip-directive/tooltip.directive.d.ts +44 -44
- package/lib/display/tour/tour-types.d.ts +70 -70
- package/lib/display/tour/tour.component.d.ts +147 -147
- package/lib/display/tour/tour.service.d.ts +38 -38
- package/lib/display/tree/tree.component.d.ts +75 -75
- package/lib/display/view-overlay/view-overlay.component.d.ts +38 -38
- package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +14 -14
- package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +60 -60
- package/lib/shared/directives/popup/popup-container.directive.d.ts +101 -101
- package/lib/shared/display/pipes/date-display.pipe.d.ts +21 -21
- package/lib/shared/display/pipes/highlight-text.pipe.d.ts +9 -9
- package/lib/shared/display/pipes/relative-date.pipe.d.ts +36 -36
- package/lib/shared/display/pipes/row-count.pipe.d.ts +23 -23
- package/lib/shared/display/pipes/time-display.pipe.d.ts +18 -18
- package/lib/shared/display.d.ts +42 -42
- package/lib/shared/form-group.helper.d.ts +31 -31
- package/lib/shared/json-helper.d.ts +7 -7
- package/lib/shared/lodash-helper.d.ts +18 -18
- package/lib/shared/page/page-base/page-base.component.d.ts +259 -259
- package/lib/shared/page/page-statuses.d.ts +13 -13
- package/lib/shared/page/page-title/page-title.component.d.ts +9 -9
- package/lib/shared/page/page-view/page-view.component.d.ts +102 -102
- package/lib/shared/testing/copy-button-base-test-injector-factory.spec.d.ts +4 -4
- package/lib/shared/testing/hierarchy-base-test-injector-factory.spec.d.ts +4 -4
- package/lib/shared/testing/page-base-component-test-helper.spec.d.ts +30 -30
- package/lib/shared/testing/page-base-component-test-injector-factory.spec.d.ts +28 -28
- package/lib/shared/testing/public-mocks.spec.d.ts +90 -90
- package/lib/shared/testing/spy-factory.spec.d.ts +27 -27
- package/lib/shared/testing/translation-mocks.spec.d.ts +30 -30
- package/lib/shared/user-preference.service.d.ts +13 -13
- package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +134 -134
- package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +27 -27
- package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +10 -10
- package/package.json +12 -18
- package/public-api.d.ts +111 -111
- package/schematics/rxjs-7-upgrade/index.d.ts +3 -3
- package/schematics/rxjs-7-upgrade/index.js +67 -67
- package/schematics/rxjs-7-upgrade/schema.d.ts +4 -4
- package/schematics/rxjs-7-upgrade/schema.js +2 -2
- package/schematics/utilities/typescript.d.ts +7 -7
- package/schematics/utilities/typescript.js +41 -41
- package/schematics/utilities/workspace.d.ts +8 -8
- package/schematics/utilities/workspace.js +71 -71
- package/esm2020/lib/core/custom-validators.mjs +0 -29
- package/esm2020/lib/core/date-time-helper.mjs +0 -220
- package/esm2020/lib/display/avatar/avatar.component.mjs +0 -67
- package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +0 -163
- package/esm2020/lib/shared/display.mjs +0 -6
- package/esm2020/lib/shared/form-group.helper.mjs +0 -67
- package/esm2020/lib/shared/lodash-helper.mjs +0 -51
- package/esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs +0 -98
- package/fesm2015/energycap-components.mjs +0 -12211
- package/fesm2015/energycap-components.mjs.map +0 -1
- package/fesm2020/energycap-components.mjs.map +0 -1
package/{esm2020 → esm2022}/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs
RENAMED
@@ -1,61 +1,61 @@
|
|
1
|
-
import { Component, Input, Output } from '@angular/core';
|
2
|
-
import { Subject } from 'rxjs';
|
3
|
-
import { HierarchyBase } from '../hierarchy-base';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "../../../core/scroll.service";
|
6
|
-
import * as i2 from "@angular/common";
|
7
|
-
import * as i3 from "@angular/router";
|
8
|
-
import * as i4 from "../../../controls/navigation/nav-item-active.directive";
|
9
|
-
import * as i5 from "../../../controls/collapsible-toggle/collapsible-toggle.component";
|
10
|
-
export class HierarchyTreeComponent extends HierarchyBase {
|
11
|
-
constructor(scrollService, injector) {
|
12
|
-
super(injector);
|
13
|
-
this.scrollService = scrollService;
|
14
|
-
/** The value of the id attribute of the tree's root HTMLUListElement, suffixed with '_root' */
|
15
|
-
this.id = 'HierarchyTree';
|
16
|
-
/** Emits a HierarchyItem whenever one is selected by clicking */
|
17
|
-
this.itemSelected = new Subject();
|
18
|
-
/** The width of the spacing before a tree node, multipled by a HierarchyItem's level. Value is in pixels */
|
19
|
-
this.indent = 16;
|
20
|
-
/** The value of the id attribute of the tree's scroll container element, used to scroll a selected item into view. */
|
21
|
-
this.scrollContainerId = '';
|
22
|
-
}
|
23
|
-
ngOnInit() {
|
24
|
-
this.scrollContainerId = `${this.id}_root`;
|
25
|
-
}
|
26
|
-
/**
|
27
|
-
* Scroll to the item currently marked as is-selected. Wait a tick for the
|
28
|
-
* NavItemActiveDirective to update the selected class.
|
29
|
-
*/
|
30
|
-
scrollToSelectedItem() {
|
31
|
-
window.setTimeout(() => {
|
32
|
-
const linkSelector = `.item-wrapper.is-selected`;
|
33
|
-
this.scrollService.scrollToItem(`#${this.scrollContainerId}`, linkSelector);
|
34
|
-
});
|
35
|
-
}
|
36
|
-
/**
|
37
|
-
* When a HierarchyItem is selected, update the value of the activeUrl property with the value
|
38
|
-
* of that item's url property and emit the item to any subscribers.
|
39
|
-
*/
|
40
|
-
selectItem(item) {
|
41
|
-
this.itemSelected.next(item);
|
42
|
-
if (item.display === 'heading' && !item.hideToggle) {
|
43
|
-
this.toggleItemClicked(item, !item.expanded);
|
44
|
-
}
|
45
|
-
}
|
46
|
-
}
|
47
|
-
|
48
|
-
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
50
|
-
type: Component,
|
51
|
-
args: [{ selector: 'ec-hierarchy-tree', template: "<ul id=\"{{scrollContainerId}}\"\r\n class=\"flex-grow scroll-y py-1\">\r\n\r\n <li *ngIf=\"!hideRootNode && rootNode\">\r\n <div class=\"item-wrapper\"\r\n title=\"{{rootNode?.tooltip ?? rootNode?.label}}\"\r\n [ngClass]=\"{'is-heading': rootNode?.display === 'heading'}\"\r\n ecNavItemActive=\"is-selected\"\r\n [ecNavItemActiveUrl]=\"rootNode?.url\"\r\n [ecNavItemActiveExactMatch]='rootNode?.isActiveExactMatch'>\r\n <a id=\"rootNode_{{rootNode?.id}}_link\"\r\n class=\"item flex-grow d-flex align-items-center\"\r\n routerLink=\"{{rootNode?.url}}\"\r\n [queryParams]=\"rootNode?.queryParams\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: rootNode }\"></ng-container>\r\n </a>\r\n </div>\r\n </li>\r\n\r\n <ng-template #hierarchyView\r\n let-items>\r\n <li *ngFor=\"let item of items; index as index; first as isFirst\"\r\n [ngClass]=\"{'divider': item.display === 'divider'}\"\r\n id=\"treeItem_{{item.id}}\">\r\n <div class=\"item-wrapper\"\r\n title=\"{{item.tooltip ?? item.label}}\"\r\n [ngClass]=\"{'is-heading': item.display === 'heading'}\"\r\n ecNavItemActive=\"is-selected\"\r\n [ecNavItemActiveUrl]=\"item.url\"\r\n [ecNavItemActiveExactMatch]=\"item.isActiveExactMatch\"\r\n [ecNavItemActiveQueryParams]=\"item.queryParams\">\r\n\r\n <!-- This element provides the indentation for each level -->\r\n <span id=\"indent_{{item.id}}\"\r\n *ngIf=\"!item.noIndent\"\r\n class=\"d-block h-100\"\r\n [style.width.px]=\"(indent) * (item.level - 1) + (item.level * 4) + (item.hasChildren ? 0 : indent)\">\r\n </span>\r\n\r\n <!-- Toggle the button icon to be a spinner when item.status is pending -->\r\n <ec-collapsible-toggle id=\"toggle_{{item.id}}\"\r\n class=\"flex-shrink\"\r\n [style.width.px]=\"indent\"\r\n *ngIf=\"item.hasChildren && !item.hideToggle\"\r\n [hidden]=\"item.status === 'pending'\"\r\n [expanded]=\"item.expanded\"\r\n (expandedChange)=\"toggleItemClicked(item, $event)\">\r\n </ec-collapsible-toggle>\r\n\r\n <i class=\"ec-icon icon-loading my-1\"\r\n [hidden]=\"item.status !== 'pending'\"></i>\r\n\r\n <a id=\"treeItem_{{item.id}}_link\"\r\n class=\"item\"\r\n *ngIf=\"item.url\"\r\n (click)=\"selectItem(item)\"\r\n [routerLink]=\"item.url\"\r\n [queryParams]=\"item.queryParams\"\r\n [queryParamsHandling]=\"item.queryParamsHandling || ''\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: item }\"></ng-container>\r\n </a>\r\n <div id=\"treeItem_{{item.id}}_heading\"\r\n class=\"item\"\r\n *ngIf=\"!item.url\"\r\n (click)=\"selectItem(item)\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n\r\n <ul *ngIf=\"item.children.length > 0 && item.expanded\">\r\n <ng-container *ngTemplateOutlet=\"hierarchyView; context:{ $implicit: item.children }\"></ng-container>\r\n </ul>\r\n </li>\r\n </ng-template>\r\n\r\n <ng-container *ngTemplateOutlet=\"hierarchyView; context:{ $implicit: rootNode?.children }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #defaultItemTemplate\r\n let-item>\r\n <i class=\"ec-icon {{item.icon}} mx-1 flex-shrink\"\r\n [attr.title]=\"item.iconTooltip\"\r\n *ngIf=\"item.icon\"></i>\r\n <span class=\"mx-1 text-truncate\">{{item.label}}</span>\r\n</ng-template>", styles: [":host{display:block;font-size:var(--ec-menu-font-size, var(--ec-font-size-action));background-color:var(--ec-menu-background-color, var(--ec-background-color))}ul{padding:0;margin:0;list-style:none;overflow-x:hidden}ul li{white-space:nowrap;padding:0}ul li.divider{border-bottom:1px solid var(--ec-border-color);padding-bottom:.25rem;margin-bottom:.25rem}ul .item-wrapper{display:flex;align-items:center;padding:0 .25rem;margin:0 .25rem;height:1.75rem;border-radius:var(--ec-border-radius)}ul .item-wrapper.is-heading{cursor:pointer;color:var(--ec-color-hint-dark);text-transform:uppercase;font-weight:var(--ec-font-weight-bold);font-size:var(--ec-font-size-label)}ul .item-wrapper:hover{background-color:var(--ec-background-color-hover)}ul .item-wrapper.is-selected{font-weight:700}ul .item-wrapper a{text-decoration:none}ul .item{color:inherit;display:flex;align-items:center;flex:1 1;min-height:0;min-width:0}\n"] }]
|
52
|
-
}], ctorParameters: function () { return [{ type: i1.ScrollService }, { type: i0.Injector }]; }, propDecorators: { id: [{
|
53
|
-
type: Input
|
54
|
-
}], hideRootNode: [{
|
55
|
-
type: Input
|
56
|
-
}], customItemTemplate: [{
|
57
|
-
type: Input
|
58
|
-
}], itemSelected: [{
|
59
|
-
type: Output
|
60
|
-
}] } });
|
61
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2h5LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvaGllcmFyY2h5L2hpZXJhcmNoeS10cmVlL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2hpZXJhcmNoeS9oaWVyYXJjaHktdHJlZS9oaWVyYXJjaHktdHJlZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFZLEtBQUssRUFBVSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsYUFBYSxFQUFpQixNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBT2pFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBb0J2RCxZQUNVLGFBQTRCLEVBQ3BDLFFBQWtCO1FBQ2hCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZWLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBbkJ0QywrRkFBK0Y7UUFDL0UsT0FBRSxHQUFXLGVBQWUsQ0FBQztRQVE3QyxpRUFBaUU7UUFDaEQsaUJBQVksR0FBMkIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV0RSw0R0FBNEc7UUFDckcsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUVuQix1SEFBdUg7UUFDaEgsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO0lBS1QsQ0FBQztJQUVmLFFBQVE7UUFDYixJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLG9CQUFvQjtRQUN6QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNyQixNQUFNLFlBQVksR0FBRywyQkFBMkIsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxJQUFtQjtRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQzs7bUhBakRVLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHlOQ1ZuQyx3NkhBcUZjOzJGRDNFRCxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1COzJIQU9iLEVBQUU7c0JBQWpCLEtBQUs7Z0JBR1UsWUFBWTtzQkFBM0IsS0FBSztnQkFHVSxrQkFBa0I7c0JBQWpDLEtBQUs7Z0JBR1csWUFBWTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zY3JvbGwuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpZXJhcmNoeUJhc2UsIEhpZXJhcmNoeUl0ZW0gfSBmcm9tICcuLi9oaWVyYXJjaHktYmFzZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWhpZXJhcmNoeS10cmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGllcmFyY2h5LXRyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEhpZXJhcmNoeVRyZWVDb21wb25lbnQgZXh0ZW5kcyBIaWVyYXJjaHlCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaWQgYXR0cmlidXRlIG9mIHRoZSB0cmVlJ3Mgcm9vdCBIVE1MVUxpc3RFbGVtZW50LCBzdWZmaXhlZCB3aXRoICdfcm9vdCcgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaWQ6IHN0cmluZyA9ICdIaWVyYXJjaHlUcmVlJztcclxuXHJcbiAgLyoqIEhpZGUgdGhlIHJvb3Qgbm9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlUm9vdE5vZGU/OiBib29sZWFuO1xyXG5cclxuICAvKiogQ3VzdG9tIGl0ZW0gdGVtcGxhdGUgdG8gdXNlIGluIHBsYWNlIG9mIHRoZSBkZWZhdWx0IG9uZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21JdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKiogRW1pdHMgYSBIaWVyYXJjaHlJdGVtIHdoZW5ldmVyIG9uZSBpcyBzZWxlY3RlZCBieSBjbGlja2luZyAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgaXRlbVNlbGVjdGVkOiBTdWJqZWN0PEhpZXJhcmNoeUl0ZW0+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgLyoqIFRoZSB3aWR0aCBvZiB0aGUgc3BhY2luZyBiZWZvcmUgYSB0cmVlIG5vZGUsIG11bHRpcGxlZCBieSBhIEhpZXJhcmNoeUl0ZW0ncyBsZXZlbC4gVmFsdWUgaXMgaW4gcGl4ZWxzICovXHJcbiAgcHVibGljIGluZGVudCA9IDE2O1xyXG5cclxuICAvKiogVGhlIHZhbHVlIG9mIHRoZSBpZCBhdHRyaWJ1dGUgb2YgdGhlIHRyZWUncyBzY3JvbGwgY29udGFpbmVyIGVsZW1lbnQsIHVzZWQgdG8gc2Nyb2xsIGEgc2VsZWN0ZWQgaXRlbSBpbnRvIHZpZXcuICAqL1xyXG4gIHB1YmxpYyBzY3JvbGxDb250YWluZXJJZCA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2Nyb2xsU2VydmljZTogU2Nyb2xsU2VydmljZSxcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICApIHsgc3VwZXIoaW5qZWN0b3IpOyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVySWQgPSBgJHt0aGlzLmlkfV9yb290YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNjcm9sbCB0byB0aGUgaXRlbSBjdXJyZW50bHkgbWFya2VkIGFzIGlzLXNlbGVjdGVkLiBXYWl0IGEgdGljayBmb3IgdGhlXHJcbiAgICogTmF2SXRlbUFjdGl2ZURpcmVjdGl2ZSB0byB1cGRhdGUgdGhlIHNlbGVjdGVkIGNsYXNzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzY3JvbGxUb1NlbGVjdGVkSXRlbSgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgbGlua1NlbGVjdG9yID0gYC5pdGVtLXdyYXBwZXIuaXMtc2VsZWN0ZWRgO1xyXG4gICAgICB0aGlzLnNjcm9sbFNlcnZpY2Uuc2Nyb2xsVG9JdGVtKGAjJHt0aGlzLnNjcm9sbENvbnRhaW5lcklkfWAsIGxpbmtTZWxlY3Rvcik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gYSBIaWVyYXJjaHlJdGVtIGlzIHNlbGVjdGVkLCB1cGRhdGUgdGhlIHZhbHVlIG9mIHRoZSBhY3RpdmVVcmwgcHJvcGVydHkgd2l0aCB0aGUgdmFsdWVcclxuICAgKiBvZiB0aGF0IGl0ZW0ncyB1cmwgcHJvcGVydHkgYW5kIGVtaXQgdGhlIGl0ZW0gdG8gYW55IHN1YnNjcmliZXJzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZWxlY3RJdGVtKGl0ZW06IEhpZXJhcmNoeUl0ZW0pOiB2b2lkIHtcclxuICAgIHRoaXMuaXRlbVNlbGVjdGVkLm5leHQoaXRlbSk7XHJcbiAgICBpZiAoaXRlbS5kaXNwbGF5ID09PSAnaGVhZGluZycgJiYgIWl0ZW0uaGlkZVRvZ2dsZSkge1xyXG4gICAgICB0aGlzLnRvZ2dsZUl0ZW1DbGlja2VkKGl0ZW0sICFpdGVtLmV4cGFuZGVkKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHVsIGlkPVwie3tzY3JvbGxDb250YWluZXJJZH19XCJcclxuICAgIGNsYXNzPVwiZmxleC1ncm93IHNjcm9sbC15IHB5LTFcIj5cclxuXHJcbiAgPGxpICpuZ0lmPVwiIWhpZGVSb290Tm9kZSAmJiByb290Tm9kZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIml0ZW0td3JhcHBlclwiXHJcbiAgICAgICAgIHRpdGxlPVwie3tyb290Tm9kZT8udG9vbHRpcCA/PyByb290Tm9kZT8ubGFiZWx9fVwiXHJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaGVhZGluZyc6IHJvb3ROb2RlPy5kaXNwbGF5ID09PSAnaGVhZGluZyd9XCJcclxuICAgICAgICAgZWNOYXZJdGVtQWN0aXZlPVwiaXMtc2VsZWN0ZWRcIlxyXG4gICAgICAgICBbZWNOYXZJdGVtQWN0aXZlVXJsXT1cInJvb3ROb2RlPy51cmxcIlxyXG4gICAgICAgICBbZWNOYXZJdGVtQWN0aXZlRXhhY3RNYXRjaF09J3Jvb3ROb2RlPy5pc0FjdGl2ZUV4YWN0TWF0Y2gnPlxyXG4gICAgICA8YSBpZD1cInJvb3ROb2RlX3t7cm9vdE5vZGU/LmlkfX1fbGlua1wiXHJcbiAgICAgICAgIGNsYXNzPVwiaXRlbSBmbGV4LWdyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgIHJvdXRlckxpbms9XCJ7e3Jvb3ROb2RlPy51cmx9fVwiXHJcbiAgICAgICAgIFtxdWVyeVBhcmFtc109XCJyb290Tm9kZT8ucXVlcnlQYXJhbXNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tSXRlbVRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb290Tm9kZSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbGk+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjaGllcmFyY2h5Vmlld1xyXG4gICAgICAgICAgICAgICBsZXQtaXRlbXM+XHJcbiAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGluZGV4IGFzIGluZGV4OyBmaXJzdCBhcyBpc0ZpcnN0XCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2RpdmlkZXInOiBpdGVtLmRpc3BsYXkgPT09ICdkaXZpZGVyJ31cIlxyXG4gICAgICAgIGlkPVwidHJlZUl0ZW1fe3tpdGVtLmlkfX1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW0td3JhcHBlclwiXHJcbiAgICAgICAgICAgdGl0bGU9XCJ7e2l0ZW0udG9vbHRpcCA/PyBpdGVtLmxhYmVsfX1cIlxyXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaGVhZGluZyc6IGl0ZW0uZGlzcGxheSA9PT0gJ2hlYWRpbmcnfVwiXHJcbiAgICAgICAgICAgZWNOYXZJdGVtQWN0aXZlPVwiaXMtc2VsZWN0ZWRcIlxyXG4gICAgICAgICAgIFtlY05hdkl0ZW1BY3RpdmVVcmxdPVwiaXRlbS51cmxcIlxyXG4gICAgICAgICAgIFtlY05hdkl0ZW1BY3RpdmVFeGFjdE1hdGNoXT1cIml0ZW0uaXNBY3RpdmVFeGFjdE1hdGNoXCJcclxuICAgICAgICAgICBbZWNOYXZJdGVtQWN0aXZlUXVlcnlQYXJhbXNdPVwiaXRlbS5xdWVyeVBhcmFtc1wiPlxyXG5cclxuICAgICAgICA8IS0tIFRoaXMgZWxlbWVudCBwcm92aWRlcyB0aGUgaW5kZW50YXRpb24gZm9yIGVhY2ggbGV2ZWwgLS0+XHJcbiAgICAgICAgPHNwYW4gaWQ9XCJpbmRlbnRfe3tpdGVtLmlkfX1cIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWl0ZW0ubm9JbmRlbnRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZC1ibG9jayBoLTEwMFwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIihpbmRlbnQpICogKGl0ZW0ubGV2ZWwgLSAxKSArIChpdGVtLmxldmVsICogNCkgKyAoaXRlbS5oYXNDaGlsZHJlbiA/IDAgOiBpbmRlbnQpXCI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICA8IS0tIFRvZ2dsZSB0aGUgYnV0dG9uIGljb24gdG8gYmUgYSBzcGlubmVyIHdoZW4gaXRlbS5zdGF0dXMgaXMgcGVuZGluZyAtLT5cclxuICAgICAgICA8ZWMtY29sbGFwc2libGUtdG9nZ2xlIGlkPVwidG9nZ2xlX3t7aXRlbS5pZH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImluZGVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaGFzQ2hpbGRyZW4gJiYgIWl0ZW0uaGlkZVRvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uc3RhdHVzID09PSAncGVuZGluZydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4cGFuZGVkXT1cIml0ZW0uZXhwYW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGFuZGVkQ2hhbmdlKT1cInRvZ2dsZUl0ZW1DbGlja2VkKGl0ZW0sICRldmVudClcIj5cclxuICAgICAgICA8L2VjLWNvbGxhcHNpYmxlLXRvZ2dsZT5cclxuXHJcbiAgICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIGljb24tbG9hZGluZyBteS0xXCJcclxuICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uc3RhdHVzICE9PSAncGVuZGluZydcIj48L2k+XHJcblxyXG4gICAgICAgIDxhIGlkPVwidHJlZUl0ZW1fe3tpdGVtLmlkfX1fbGlua1wiXHJcbiAgICAgICAgICAgY2xhc3M9XCJpdGVtXCJcclxuICAgICAgICAgICAqbmdJZj1cIml0ZW0udXJsXCJcclxuICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiXHJcbiAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS51cmxcIlxyXG4gICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJpdGVtLnF1ZXJ5UGFyYW1zXCJcclxuICAgICAgICAgICBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCJpdGVtLnF1ZXJ5UGFyYW1zSGFuZGxpbmcgfHwgJydcIj5cclxuICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tSXRlbVRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPGRpdiBpZD1cInRyZWVJdGVtX3t7aXRlbS5pZH19X2hlYWRpbmdcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJpdGVtXCJcclxuICAgICAgICAgICAgICpuZ0lmPVwiIWl0ZW0udXJsXCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tSXRlbVRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPHVsICpuZ0lmPVwiaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwICYmIGl0ZW0uZXhwYW5kZWRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGllcmFyY2h5VmlldzsgY29udGV4dDp7ICRpbXBsaWNpdDogaXRlbS5jaGlsZHJlbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2xpPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoaWVyYXJjaHlWaWV3OyBjb250ZXh0OnsgJGltcGxpY2l0OiByb290Tm9kZT8uY2hpbGRyZW4gfVwiPjwvbmctY29udGFpbmVyPlxyXG48L3VsPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRlbXBsYXRlXHJcbiAgICAgICAgICAgICBsZXQtaXRlbT5cclxuICA8aSBjbGFzcz1cImVjLWljb24ge3tpdGVtLmljb259fSBteC0xIGZsZXgtc2hyaW5rXCJcclxuICAgICBbYXR0ci50aXRsZV09XCJpdGVtLmljb25Ub29sdGlwXCJcclxuICAgICAqbmdJZj1cIml0ZW0uaWNvblwiPjwvaT5cclxuICA8c3BhbiBjbGFzcz1cIm14LTEgdGV4dC10cnVuY2F0ZVwiPnt7aXRlbS5sYWJlbH19PC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
1
|
+
import { Component, Input, Output } from '@angular/core';
|
2
|
+
import { Subject } from 'rxjs';
|
3
|
+
import { HierarchyBase } from '../hierarchy-base';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "../../../core/scroll.service";
|
6
|
+
import * as i2 from "@angular/common";
|
7
|
+
import * as i3 from "@angular/router";
|
8
|
+
import * as i4 from "../../../controls/navigation/nav-item-active.directive";
|
9
|
+
import * as i5 from "../../../controls/collapsible-toggle/collapsible-toggle.component";
|
10
|
+
export class HierarchyTreeComponent extends HierarchyBase {
|
11
|
+
constructor(scrollService, injector) {
|
12
|
+
super(injector);
|
13
|
+
this.scrollService = scrollService;
|
14
|
+
/** The value of the id attribute of the tree's root HTMLUListElement, suffixed with '_root' */
|
15
|
+
this.id = 'HierarchyTree';
|
16
|
+
/** Emits a HierarchyItem whenever one is selected by clicking */
|
17
|
+
this.itemSelected = new Subject();
|
18
|
+
/** The width of the spacing before a tree node, multipled by a HierarchyItem's level. Value is in pixels */
|
19
|
+
this.indent = 16;
|
20
|
+
/** The value of the id attribute of the tree's scroll container element, used to scroll a selected item into view. */
|
21
|
+
this.scrollContainerId = '';
|
22
|
+
}
|
23
|
+
ngOnInit() {
|
24
|
+
this.scrollContainerId = `${this.id}_root`;
|
25
|
+
}
|
26
|
+
/**
|
27
|
+
* Scroll to the item currently marked as is-selected. Wait a tick for the
|
28
|
+
* NavItemActiveDirective to update the selected class.
|
29
|
+
*/
|
30
|
+
scrollToSelectedItem() {
|
31
|
+
window.setTimeout(() => {
|
32
|
+
const linkSelector = `.item-wrapper.is-selected`;
|
33
|
+
this.scrollService.scrollToItem(`#${this.scrollContainerId}`, linkSelector);
|
34
|
+
});
|
35
|
+
}
|
36
|
+
/**
|
37
|
+
* When a HierarchyItem is selected, update the value of the activeUrl property with the value
|
38
|
+
* of that item's url property and emit the item to any subscribers.
|
39
|
+
*/
|
40
|
+
selectItem(item) {
|
41
|
+
this.itemSelected.next(item);
|
42
|
+
if (item.display === 'heading' && !item.hideToggle) {
|
43
|
+
this.toggleItemClicked(item, !item.expanded);
|
44
|
+
}
|
45
|
+
}
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HierarchyTreeComponent, deps: [{ token: i1.ScrollService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: HierarchyTreeComponent, selector: "ec-hierarchy-tree", inputs: { id: "id", hideRootNode: "hideRootNode", customItemTemplate: "customItemTemplate" }, outputs: { itemSelected: "itemSelected" }, usesInheritance: true, ngImport: i0, template: "<ul id=\"{{scrollContainerId}}\"\r\n class=\"flex-grow scroll-y py-1\">\r\n\r\n <li *ngIf=\"!hideRootNode && rootNode\">\r\n <div class=\"item-wrapper\"\r\n title=\"{{rootNode?.tooltip ?? rootNode?.label}}\"\r\n [ngClass]=\"{'is-heading': rootNode?.display === 'heading'}\"\r\n ecNavItemActive=\"is-selected\"\r\n [ecNavItemActiveUrl]=\"rootNode?.url\"\r\n [ecNavItemActiveExactMatch]='rootNode?.isActiveExactMatch'>\r\n <a id=\"rootNode_{{rootNode?.id}}_link\"\r\n class=\"item flex-grow d-flex align-items-center\"\r\n routerLink=\"{{rootNode?.url}}\"\r\n [queryParams]=\"rootNode?.queryParams\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: rootNode }\"></ng-container>\r\n </a>\r\n </div>\r\n </li>\r\n\r\n <ng-template #hierarchyView\r\n let-items>\r\n <li *ngFor=\"let item of items; index as index; first as isFirst\"\r\n [ngClass]=\"{'divider': item.display === 'divider'}\"\r\n id=\"treeItem_{{item.id}}\">\r\n <div class=\"item-wrapper\"\r\n title=\"{{item.tooltip ?? item.label}}\"\r\n [ngClass]=\"{'is-heading': item.display === 'heading'}\"\r\n ecNavItemActive=\"is-selected\"\r\n [ecNavItemActiveUrl]=\"item.url\"\r\n [ecNavItemActiveExactMatch]=\"item.isActiveExactMatch\"\r\n [ecNavItemActiveQueryParams]=\"item.queryParams\">\r\n\r\n <!-- This element provides the indentation for each level -->\r\n <span id=\"indent_{{item.id}}\"\r\n *ngIf=\"!item.noIndent\"\r\n class=\"d-block h-100\"\r\n [style.width.px]=\"(indent) * (item.level - 1) + (item.level * 4) + (item.hasChildren ? 0 : indent)\">\r\n </span>\r\n\r\n <!-- Toggle the button icon to be a spinner when item.status is pending -->\r\n <ec-collapsible-toggle id=\"toggle_{{item.id}}\"\r\n class=\"flex-shrink\"\r\n [style.width.px]=\"indent\"\r\n *ngIf=\"item.hasChildren && !item.hideToggle\"\r\n [hidden]=\"item.status === 'pending'\"\r\n [expanded]=\"item.expanded\"\r\n (expandedChange)=\"toggleItemClicked(item, $event)\">\r\n </ec-collapsible-toggle>\r\n\r\n <i class=\"ec-icon icon-loading my-1\"\r\n [hidden]=\"item.status !== 'pending'\"></i>\r\n\r\n <a id=\"treeItem_{{item.id}}_link\"\r\n class=\"item\"\r\n *ngIf=\"item.url\"\r\n (click)=\"selectItem(item)\"\r\n [routerLink]=\"item.url\"\r\n [queryParams]=\"item.queryParams\"\r\n [queryParamsHandling]=\"item.queryParamsHandling || ''\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: item }\"></ng-container>\r\n </a>\r\n <div id=\"treeItem_{{item.id}}_heading\"\r\n class=\"item\"\r\n *ngIf=\"!item.url\"\r\n (click)=\"selectItem(item)\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n\r\n <ul *ngIf=\"item.children.length > 0 && item.expanded\">\r\n <ng-container *ngTemplateOutlet=\"hierarchyView; context:{ $implicit: item.children }\"></ng-container>\r\n </ul>\r\n </li>\r\n </ng-template>\r\n\r\n <ng-container *ngTemplateOutlet=\"hierarchyView; context:{ $implicit: rootNode?.children }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #defaultItemTemplate\r\n let-item>\r\n <i class=\"ec-icon {{item.icon}} mx-1 flex-shrink\"\r\n [attr.title]=\"item.iconTooltip\"\r\n *ngIf=\"item.icon\"></i>\r\n <span class=\"mx-1 text-truncate\">{{item.label}}</span>\r\n</ng-template>", styles: [":host{display:block;font-size:var(--ec-menu-font-size, var(--ec-font-size-action));background-color:var(--ec-menu-background-color, var(--ec-background-color))}ul{padding:0;margin:0;list-style:none;overflow-x:hidden}ul li{white-space:nowrap;padding:0}ul li.divider{border-bottom:1px solid var(--ec-border-color);padding-bottom:.25rem;margin-bottom:.25rem}ul .item-wrapper{display:flex;align-items:center;padding:0 .25rem;margin:0 .25rem;height:1.75rem;border-radius:var(--ec-border-radius)}ul .item-wrapper.is-heading{cursor:pointer;color:var(--ec-color-hint-dark);text-transform:uppercase;font-weight:var(--ec-font-weight-bold);font-size:var(--ec-font-size-label)}ul .item-wrapper:hover{background-color:var(--ec-background-color-hover)}ul .item-wrapper.is-selected{font-weight:700}ul .item-wrapper a{text-decoration:none}ul .item{color:inherit;display:flex;align-items:center;flex:1 1;min-height:0;min-width:0}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i4.NavItemActiveDirective, selector: "[ecNavItemActive]", inputs: ["ecNavItemActive", "ecNavItemActiveExactMatch", "ecNavItemActiveQueryParams", "ecNavItemActiveUrl"], outputs: ["routerLinkActivated"] }, { kind: "component", type: i5.CollapsibleToggleComponent, selector: "ec-collapsible-toggle", inputs: ["id", "expanded", "tabindex"], outputs: ["expandedChange"] }] }); }
|
48
|
+
}
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HierarchyTreeComponent, decorators: [{
|
50
|
+
type: Component,
|
51
|
+
args: [{ selector: 'ec-hierarchy-tree', template: "<ul id=\"{{scrollContainerId}}\"\r\n class=\"flex-grow scroll-y py-1\">\r\n\r\n <li *ngIf=\"!hideRootNode && rootNode\">\r\n <div class=\"item-wrapper\"\r\n title=\"{{rootNode?.tooltip ?? rootNode?.label}}\"\r\n [ngClass]=\"{'is-heading': rootNode?.display === 'heading'}\"\r\n ecNavItemActive=\"is-selected\"\r\n [ecNavItemActiveUrl]=\"rootNode?.url\"\r\n [ecNavItemActiveExactMatch]='rootNode?.isActiveExactMatch'>\r\n <a id=\"rootNode_{{rootNode?.id}}_link\"\r\n class=\"item flex-grow d-flex align-items-center\"\r\n routerLink=\"{{rootNode?.url}}\"\r\n [queryParams]=\"rootNode?.queryParams\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: rootNode }\"></ng-container>\r\n </a>\r\n </div>\r\n </li>\r\n\r\n <ng-template #hierarchyView\r\n let-items>\r\n <li *ngFor=\"let item of items; index as index; first as isFirst\"\r\n [ngClass]=\"{'divider': item.display === 'divider'}\"\r\n id=\"treeItem_{{item.id}}\">\r\n <div class=\"item-wrapper\"\r\n title=\"{{item.tooltip ?? item.label}}\"\r\n [ngClass]=\"{'is-heading': item.display === 'heading'}\"\r\n ecNavItemActive=\"is-selected\"\r\n [ecNavItemActiveUrl]=\"item.url\"\r\n [ecNavItemActiveExactMatch]=\"item.isActiveExactMatch\"\r\n [ecNavItemActiveQueryParams]=\"item.queryParams\">\r\n\r\n <!-- This element provides the indentation for each level -->\r\n <span id=\"indent_{{item.id}}\"\r\n *ngIf=\"!item.noIndent\"\r\n class=\"d-block h-100\"\r\n [style.width.px]=\"(indent) * (item.level - 1) + (item.level * 4) + (item.hasChildren ? 0 : indent)\">\r\n </span>\r\n\r\n <!-- Toggle the button icon to be a spinner when item.status is pending -->\r\n <ec-collapsible-toggle id=\"toggle_{{item.id}}\"\r\n class=\"flex-shrink\"\r\n [style.width.px]=\"indent\"\r\n *ngIf=\"item.hasChildren && !item.hideToggle\"\r\n [hidden]=\"item.status === 'pending'\"\r\n [expanded]=\"item.expanded\"\r\n (expandedChange)=\"toggleItemClicked(item, $event)\">\r\n </ec-collapsible-toggle>\r\n\r\n <i class=\"ec-icon icon-loading my-1\"\r\n [hidden]=\"item.status !== 'pending'\"></i>\r\n\r\n <a id=\"treeItem_{{item.id}}_link\"\r\n class=\"item\"\r\n *ngIf=\"item.url\"\r\n (click)=\"selectItem(item)\"\r\n [routerLink]=\"item.url\"\r\n [queryParams]=\"item.queryParams\"\r\n [queryParamsHandling]=\"item.queryParamsHandling || ''\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: item }\"></ng-container>\r\n </a>\r\n <div id=\"treeItem_{{item.id}}_heading\"\r\n class=\"item\"\r\n *ngIf=\"!item.url\"\r\n (click)=\"selectItem(item)\">\r\n <ng-container *ngTemplateOutlet=\"customItemTemplate || defaultItemTemplate; context: { $implicit: item }\"></ng-container>\r\n </div>\r\n </div>\r\n\r\n\r\n <ul *ngIf=\"item.children.length > 0 && item.expanded\">\r\n <ng-container *ngTemplateOutlet=\"hierarchyView; context:{ $implicit: item.children }\"></ng-container>\r\n </ul>\r\n </li>\r\n </ng-template>\r\n\r\n <ng-container *ngTemplateOutlet=\"hierarchyView; context:{ $implicit: rootNode?.children }\"></ng-container>\r\n</ul>\r\n\r\n<ng-template #defaultItemTemplate\r\n let-item>\r\n <i class=\"ec-icon {{item.icon}} mx-1 flex-shrink\"\r\n [attr.title]=\"item.iconTooltip\"\r\n *ngIf=\"item.icon\"></i>\r\n <span class=\"mx-1 text-truncate\">{{item.label}}</span>\r\n</ng-template>", styles: [":host{display:block;font-size:var(--ec-menu-font-size, var(--ec-font-size-action));background-color:var(--ec-menu-background-color, var(--ec-background-color))}ul{padding:0;margin:0;list-style:none;overflow-x:hidden}ul li{white-space:nowrap;padding:0}ul li.divider{border-bottom:1px solid var(--ec-border-color);padding-bottom:.25rem;margin-bottom:.25rem}ul .item-wrapper{display:flex;align-items:center;padding:0 .25rem;margin:0 .25rem;height:1.75rem;border-radius:var(--ec-border-radius)}ul .item-wrapper.is-heading{cursor:pointer;color:var(--ec-color-hint-dark);text-transform:uppercase;font-weight:var(--ec-font-weight-bold);font-size:var(--ec-font-size-label)}ul .item-wrapper:hover{background-color:var(--ec-background-color-hover)}ul .item-wrapper.is-selected{font-weight:700}ul .item-wrapper a{text-decoration:none}ul .item{color:inherit;display:flex;align-items:center;flex:1 1;min-height:0;min-width:0}\n"] }]
|
52
|
+
}], ctorParameters: function () { return [{ type: i1.ScrollService }, { type: i0.Injector }]; }, propDecorators: { id: [{
|
53
|
+
type: Input
|
54
|
+
}], hideRootNode: [{
|
55
|
+
type: Input
|
56
|
+
}], customItemTemplate: [{
|
57
|
+
type: Input
|
58
|
+
}], itemSelected: [{
|
59
|
+
type: Output
|
60
|
+
}] } });
|
61
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGllcmFyY2h5LXRyZWUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvaGllcmFyY2h5L2hpZXJhcmNoeS10cmVlL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2hpZXJhcmNoeS9oaWVyYXJjaHktdHJlZS9oaWVyYXJjaHktdHJlZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFZLEtBQUssRUFBVSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDeEYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixPQUFPLEVBQUUsYUFBYSxFQUFpQixNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBT2pFLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxhQUFhO0lBb0J2RCxZQUNVLGFBQTRCLEVBQ3BDLFFBQWtCO1FBQ2hCLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZWLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBbkJ0QywrRkFBK0Y7UUFDL0UsT0FBRSxHQUFXLGVBQWUsQ0FBQztRQVE3QyxpRUFBaUU7UUFDaEQsaUJBQVksR0FBMkIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV0RSw0R0FBNEc7UUFDckcsV0FBTSxHQUFHLEVBQUUsQ0FBQztRQUVuQix1SEFBdUg7UUFDaEgsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO0lBS1QsQ0FBQztJQUVmLFFBQVE7UUFDYixJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLG9CQUFvQjtRQUN6QixNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNyQixNQUFNLFlBQVksR0FBRywyQkFBMkIsQ0FBQztZQUNqRCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNJLFVBQVUsQ0FBQyxJQUFtQjtRQUNuQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3QixJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNsRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzlDO0lBQ0gsQ0FBQzsrR0FqRFUsc0JBQXNCO21HQUF0QixzQkFBc0IseU5DVm5DLHc2SEFxRmM7OzRGRDNFRCxzQkFBc0I7a0JBTGxDLFNBQVM7K0JBQ0UsbUJBQW1COzJIQU9iLEVBQUU7c0JBQWpCLEtBQUs7Z0JBR1UsWUFBWTtzQkFBM0IsS0FBSztnQkFHVSxrQkFBa0I7c0JBQWpDLEtBQUs7Z0JBR1csWUFBWTtzQkFBNUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBTY3JvbGxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zY3JvbGwuc2VydmljZSc7XHJcbmltcG9ydCB7IEhpZXJhcmNoeUJhc2UsIEhpZXJhcmNoeUl0ZW0gfSBmcm9tICcuLi9oaWVyYXJjaHktYmFzZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWhpZXJhcmNoeS10cmVlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGllcmFyY2h5LXRyZWUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hpZXJhcmNoeS10cmVlLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEhpZXJhcmNoeVRyZWVDb21wb25lbnQgZXh0ZW5kcyBIaWVyYXJjaHlCYXNlIGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaWQgYXR0cmlidXRlIG9mIHRoZSB0cmVlJ3Mgcm9vdCBIVE1MVUxpc3RFbGVtZW50LCBzdWZmaXhlZCB3aXRoICdfcm9vdCcgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaWQ6IHN0cmluZyA9ICdIaWVyYXJjaHlUcmVlJztcclxuXHJcbiAgLyoqIEhpZGUgdGhlIHJvb3Qgbm9kZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlUm9vdE5vZGU/OiBib29sZWFuO1xyXG5cclxuICAvKiogQ3VzdG9tIGl0ZW0gdGVtcGxhdGUgdG8gdXNlIGluIHBsYWNlIG9mIHRoZSBkZWZhdWx0IG9uZSAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21JdGVtVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG5cclxuICAvKiogRW1pdHMgYSBIaWVyYXJjaHlJdGVtIHdoZW5ldmVyIG9uZSBpcyBzZWxlY3RlZCBieSBjbGlja2luZyAqL1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgaXRlbVNlbGVjdGVkOiBTdWJqZWN0PEhpZXJhcmNoeUl0ZW0+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgLyoqIFRoZSB3aWR0aCBvZiB0aGUgc3BhY2luZyBiZWZvcmUgYSB0cmVlIG5vZGUsIG11bHRpcGxlZCBieSBhIEhpZXJhcmNoeUl0ZW0ncyBsZXZlbC4gVmFsdWUgaXMgaW4gcGl4ZWxzICovXHJcbiAgcHVibGljIGluZGVudCA9IDE2O1xyXG5cclxuICAvKiogVGhlIHZhbHVlIG9mIHRoZSBpZCBhdHRyaWJ1dGUgb2YgdGhlIHRyZWUncyBzY3JvbGwgY29udGFpbmVyIGVsZW1lbnQsIHVzZWQgdG8gc2Nyb2xsIGEgc2VsZWN0ZWQgaXRlbSBpbnRvIHZpZXcuICAqL1xyXG4gIHB1YmxpYyBzY3JvbGxDb250YWluZXJJZCA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgc2Nyb2xsU2VydmljZTogU2Nyb2xsU2VydmljZSxcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICApIHsgc3VwZXIoaW5qZWN0b3IpOyB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2Nyb2xsQ29udGFpbmVySWQgPSBgJHt0aGlzLmlkfV9yb290YDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNjcm9sbCB0byB0aGUgaXRlbSBjdXJyZW50bHkgbWFya2VkIGFzIGlzLXNlbGVjdGVkLiBXYWl0IGEgdGljayBmb3IgdGhlXHJcbiAgICogTmF2SXRlbUFjdGl2ZURpcmVjdGl2ZSB0byB1cGRhdGUgdGhlIHNlbGVjdGVkIGNsYXNzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzY3JvbGxUb1NlbGVjdGVkSXRlbSgpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgbGlua1NlbGVjdG9yID0gYC5pdGVtLXdyYXBwZXIuaXMtc2VsZWN0ZWRgO1xyXG4gICAgICB0aGlzLnNjcm9sbFNlcnZpY2Uuc2Nyb2xsVG9JdGVtKGAjJHt0aGlzLnNjcm9sbENvbnRhaW5lcklkfWAsIGxpbmtTZWxlY3Rvcik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFdoZW4gYSBIaWVyYXJjaHlJdGVtIGlzIHNlbGVjdGVkLCB1cGRhdGUgdGhlIHZhbHVlIG9mIHRoZSBhY3RpdmVVcmwgcHJvcGVydHkgd2l0aCB0aGUgdmFsdWVcclxuICAgKiBvZiB0aGF0IGl0ZW0ncyB1cmwgcHJvcGVydHkgYW5kIGVtaXQgdGhlIGl0ZW0gdG8gYW55IHN1YnNjcmliZXJzLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZWxlY3RJdGVtKGl0ZW06IEhpZXJhcmNoeUl0ZW0pOiB2b2lkIHtcclxuICAgIHRoaXMuaXRlbVNlbGVjdGVkLm5leHQoaXRlbSk7XHJcbiAgICBpZiAoaXRlbS5kaXNwbGF5ID09PSAnaGVhZGluZycgJiYgIWl0ZW0uaGlkZVRvZ2dsZSkge1xyXG4gICAgICB0aGlzLnRvZ2dsZUl0ZW1DbGlja2VkKGl0ZW0sICFpdGVtLmV4cGFuZGVkKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPHVsIGlkPVwie3tzY3JvbGxDb250YWluZXJJZH19XCJcclxuICAgIGNsYXNzPVwiZmxleC1ncm93IHNjcm9sbC15IHB5LTFcIj5cclxuXHJcbiAgPGxpICpuZ0lmPVwiIWhpZGVSb290Tm9kZSAmJiByb290Tm9kZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIml0ZW0td3JhcHBlclwiXHJcbiAgICAgICAgIHRpdGxlPVwie3tyb290Tm9kZT8udG9vbHRpcCA/PyByb290Tm9kZT8ubGFiZWx9fVwiXHJcbiAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaGVhZGluZyc6IHJvb3ROb2RlPy5kaXNwbGF5ID09PSAnaGVhZGluZyd9XCJcclxuICAgICAgICAgZWNOYXZJdGVtQWN0aXZlPVwiaXMtc2VsZWN0ZWRcIlxyXG4gICAgICAgICBbZWNOYXZJdGVtQWN0aXZlVXJsXT1cInJvb3ROb2RlPy51cmxcIlxyXG4gICAgICAgICBbZWNOYXZJdGVtQWN0aXZlRXhhY3RNYXRjaF09J3Jvb3ROb2RlPy5pc0FjdGl2ZUV4YWN0TWF0Y2gnPlxyXG4gICAgICA8YSBpZD1cInJvb3ROb2RlX3t7cm9vdE5vZGU/LmlkfX1fbGlua1wiXHJcbiAgICAgICAgIGNsYXNzPVwiaXRlbSBmbGV4LWdyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiXHJcbiAgICAgICAgIHJvdXRlckxpbms9XCJ7e3Jvb3ROb2RlPy51cmx9fVwiXHJcbiAgICAgICAgIFtxdWVyeVBhcmFtc109XCJyb290Tm9kZT8ucXVlcnlQYXJhbXNcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tSXRlbVRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiByb290Tm9kZSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvYT5cclxuICAgIDwvZGl2PlxyXG4gIDwvbGk+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjaGllcmFyY2h5Vmlld1xyXG4gICAgICAgICAgICAgICBsZXQtaXRlbXM+XHJcbiAgICA8bGkgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaXRlbXM7IGluZGV4IGFzIGluZGV4OyBmaXJzdCBhcyBpc0ZpcnN0XCJcclxuICAgICAgICBbbmdDbGFzc109XCJ7J2RpdmlkZXInOiBpdGVtLmRpc3BsYXkgPT09ICdkaXZpZGVyJ31cIlxyXG4gICAgICAgIGlkPVwidHJlZUl0ZW1fe3tpdGVtLmlkfX1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW0td3JhcHBlclwiXHJcbiAgICAgICAgICAgdGl0bGU9XCJ7e2l0ZW0udG9vbHRpcCA/PyBpdGVtLmxhYmVsfX1cIlxyXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cInsnaXMtaGVhZGluZyc6IGl0ZW0uZGlzcGxheSA9PT0gJ2hlYWRpbmcnfVwiXHJcbiAgICAgICAgICAgZWNOYXZJdGVtQWN0aXZlPVwiaXMtc2VsZWN0ZWRcIlxyXG4gICAgICAgICAgIFtlY05hdkl0ZW1BY3RpdmVVcmxdPVwiaXRlbS51cmxcIlxyXG4gICAgICAgICAgIFtlY05hdkl0ZW1BY3RpdmVFeGFjdE1hdGNoXT1cIml0ZW0uaXNBY3RpdmVFeGFjdE1hdGNoXCJcclxuICAgICAgICAgICBbZWNOYXZJdGVtQWN0aXZlUXVlcnlQYXJhbXNdPVwiaXRlbS5xdWVyeVBhcmFtc1wiPlxyXG5cclxuICAgICAgICA8IS0tIFRoaXMgZWxlbWVudCBwcm92aWRlcyB0aGUgaW5kZW50YXRpb24gZm9yIGVhY2ggbGV2ZWwgLS0+XHJcbiAgICAgICAgPHNwYW4gaWQ9XCJpbmRlbnRfe3tpdGVtLmlkfX1cIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiIWl0ZW0ubm9JbmRlbnRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZC1ibG9jayBoLTEwMFwiXHJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cIihpbmRlbnQpICogKGl0ZW0ubGV2ZWwgLSAxKSArIChpdGVtLmxldmVsICogNCkgKyAoaXRlbS5oYXNDaGlsZHJlbiA/IDAgOiBpbmRlbnQpXCI+XHJcbiAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICA8IS0tIFRvZ2dsZSB0aGUgYnV0dG9uIGljb24gdG8gYmUgYSBzcGlubmVyIHdoZW4gaXRlbS5zdGF0dXMgaXMgcGVuZGluZyAtLT5cclxuICAgICAgICA8ZWMtY29sbGFwc2libGUtdG9nZ2xlIGlkPVwidG9nZ2xlX3t7aXRlbS5pZH19XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImluZGVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaGFzQ2hpbGRyZW4gJiYgIWl0ZW0uaGlkZVRvZ2dsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uc3RhdHVzID09PSAncGVuZGluZydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2V4cGFuZGVkXT1cIml0ZW0uZXhwYW5kZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGV4cGFuZGVkQ2hhbmdlKT1cInRvZ2dsZUl0ZW1DbGlja2VkKGl0ZW0sICRldmVudClcIj5cclxuICAgICAgICA8L2VjLWNvbGxhcHNpYmxlLXRvZ2dsZT5cclxuXHJcbiAgICAgICAgPGkgY2xhc3M9XCJlYy1pY29uIGljb24tbG9hZGluZyBteS0xXCJcclxuICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uc3RhdHVzICE9PSAncGVuZGluZydcIj48L2k+XHJcblxyXG4gICAgICAgIDxhIGlkPVwidHJlZUl0ZW1fe3tpdGVtLmlkfX1fbGlua1wiXHJcbiAgICAgICAgICAgY2xhc3M9XCJpdGVtXCJcclxuICAgICAgICAgICAqbmdJZj1cIml0ZW0udXJsXCJcclxuICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0SXRlbShpdGVtKVwiXHJcbiAgICAgICAgICAgW3JvdXRlckxpbmtdPVwiaXRlbS51cmxcIlxyXG4gICAgICAgICAgIFtxdWVyeVBhcmFtc109XCJpdGVtLnF1ZXJ5UGFyYW1zXCJcclxuICAgICAgICAgICBbcXVlcnlQYXJhbXNIYW5kbGluZ109XCJpdGVtLnF1ZXJ5UGFyYW1zSGFuZGxpbmcgfHwgJydcIj5cclxuICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tSXRlbVRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPGRpdiBpZD1cInRyZWVJdGVtX3t7aXRlbS5pZH19X2hlYWRpbmdcIlxyXG4gICAgICAgICAgICAgY2xhc3M9XCJpdGVtXCJcclxuICAgICAgICAgICAgICpuZ0lmPVwiIWl0ZW0udXJsXCJcclxuICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJdGVtKGl0ZW0pXCI+XHJcbiAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tSXRlbVRlbXBsYXRlIHx8IGRlZmF1bHRJdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG5cclxuICAgICAgPHVsICpuZ0lmPVwiaXRlbS5jaGlsZHJlbi5sZW5ndGggPiAwICYmIGl0ZW0uZXhwYW5kZWRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaGllcmFyY2h5VmlldzsgY29udGV4dDp7ICRpbXBsaWNpdDogaXRlbS5jaGlsZHJlbiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2xpPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJoaWVyYXJjaHlWaWV3OyBjb250ZXh0OnsgJGltcGxpY2l0OiByb290Tm9kZT8uY2hpbGRyZW4gfVwiPjwvbmctY29udGFpbmVyPlxyXG48L3VsPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRlbXBsYXRlXHJcbiAgICAgICAgICAgICBsZXQtaXRlbT5cclxuICA8aSBjbGFzcz1cImVjLWljb24ge3tpdGVtLmljb259fSBteC0xIGZsZXgtc2hyaW5rXCJcclxuICAgICBbYXR0ci50aXRsZV09XCJpdGVtLmljb25Ub29sdGlwXCJcclxuICAgICAqbmdJZj1cIml0ZW0uaWNvblwiPjwvaT5cclxuICA8c3BhbiBjbGFzcz1cIm14LTEgdGV4dC10cnVuY2F0ZVwiPnt7aXRlbS5sYWJlbH19PC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
|
@@ -1,81 +1,81 @@
|
|
1
|
-
import { Component, Input, HostBinding } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
import * as i1 from "@angular/common";
|
4
|
-
import * as i2 from "@angular/router";
|
5
|
-
import * as i3 from "../../controls/help-popover/help-popover.component";
|
6
|
-
import * as i4 from "@ngx-translate/core";
|
7
|
-
export class ItemDisplayComponent {
|
8
|
-
constructor() {
|
9
|
-
/** The value of the host element's id attribute */
|
10
|
-
this.id = '';
|
11
|
-
this.internalValue = { value: '' };
|
12
|
-
/**
|
13
|
-
* Set link as an href or routerLink
|
14
|
-
*/
|
15
|
-
this.externalLink = false;
|
16
|
-
this.condensed = false;
|
17
|
-
/**
|
18
|
-
* The link target when url is provided. Defaults to _self (same window)
|
19
|
-
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a
|
20
|
-
*/
|
21
|
-
this.target = '_self';
|
22
|
-
}
|
23
|
-
set labelHelpPopover(labelHelpPopover) {
|
24
|
-
if (typeof labelHelpPopover === 'string') {
|
25
|
-
this._labelHelpPopover = { text: labelHelpPopover };
|
26
|
-
}
|
27
|
-
else {
|
28
|
-
this._labelHelpPopover = labelHelpPopover;
|
29
|
-
}
|
30
|
-
}
|
31
|
-
get labelHelpPopover() {
|
32
|
-
return this._labelHelpPopover;
|
33
|
-
}
|
34
|
-
set value(value) {
|
35
|
-
if (typeof value === 'string') {
|
36
|
-
this.internalValue = { value: value };
|
37
|
-
}
|
38
|
-
else if (value) {
|
39
|
-
this.internalValue = value;
|
40
|
-
}
|
41
|
-
else {
|
42
|
-
this.internalValue = { value: '' };
|
43
|
-
}
|
44
|
-
}
|
45
|
-
;
|
46
|
-
/**
|
47
|
-
* When provided, displays the value as a link
|
48
|
-
*/
|
49
|
-
set url(value) {
|
50
|
-
this.externalLink = (value?.startsWith('http')) ? true : false;
|
51
|
-
this._url = value;
|
52
|
-
}
|
53
|
-
;
|
54
|
-
get url() {
|
55
|
-
return this._url;
|
56
|
-
}
|
57
|
-
}
|
58
|
-
|
59
|
-
|
60
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
61
|
-
type: Component,
|
62
|
-
args: [{ selector: 'ec-item-display', template: "<div id=\"{{id}}_label_0\"\r\n class=\"text-caption-1 d-flex align-items-center\">\r\n <span>{{label | translate}}</span>\r\n <ec-help-popover *ngIf=\"labelHelpPopover\"\r\n class=\"mx-n1 my-n2\"\r\n [text]=\"labelHelpPopover.text\"\r\n [contentPosition]=\"labelHelpPopover?.contentPosition ?? 'top-left'\"\r\n [maxWidth]=\"labelHelpPopover?.maxWidth ?? '15rem'\">\r\n </ec-help-popover>\r\n</div>\r\n\r\n<div id=\"{{id}}_value_0\" class=\"{{condensed ? 'text-body-2' : 'text-display-1'}} {{internalValue.classnames}}\"\r\n [class.font-color-hint]=\"!internalValue.value && internalValue.noValueText\"\r\n title=\"{{internalValue.tooltip}}\">\r\n\r\n <ng-container *ngIf=\"url else content\">\r\n <a *ngIf=\"!externalLink\"\r\n id=\"{{id}}_link\"\r\n routerLink=\"{{url}}\"\r\n target=\"{{target}}\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </a>\r\n <a *ngIf=\"externalLink\"\r\n id=\"{{id}}_link\"\r\n href=\"{{url}}\"\r\n target=\"{{target}}\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </a>\r\n </ng-container>\r\n</div>\r\n\r\n\r\n<ng-template #content>\r\n <i *ngIf=\"internalValue?.icon\" class=\"ec-icon {{internalValue?.icon}}\"></i>\r\n <span>{{(internalValue?.value || internalValue?.noValueText) | translate}}</span>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n", styles: [":host{display:inline-block;margin-bottom:1rem;vertical-align:top}.ec-icon{font-size:1em;top:.125em;position:relative;margin-right:.25em}\n"] }]
|
63
|
-
}], propDecorators: { id: [{
|
64
|
-
type: HostBinding,
|
65
|
-
args: ['attr.id']
|
66
|
-
}, {
|
67
|
-
type: Input
|
68
|
-
}], label: [{
|
69
|
-
type: Input
|
70
|
-
}], labelHelpPopover: [{
|
71
|
-
type: Input
|
72
|
-
}], value: [{
|
73
|
-
type: Input
|
74
|
-
}], url: [{
|
75
|
-
type: Input
|
76
|
-
}], condensed: [{
|
77
|
-
type: Input
|
78
|
-
}], target: [{
|
79
|
-
type: Input
|
80
|
-
}] } });
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
import { Component, Input, HostBinding } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "@angular/common";
|
4
|
+
import * as i2 from "@angular/router";
|
5
|
+
import * as i3 from "../../controls/help-popover/help-popover.component";
|
6
|
+
import * as i4 from "@ngx-translate/core";
|
7
|
+
export class ItemDisplayComponent {
|
8
|
+
constructor() {
|
9
|
+
/** The value of the host element's id attribute */
|
10
|
+
this.id = '';
|
11
|
+
this.internalValue = { value: '' };
|
12
|
+
/**
|
13
|
+
* Set link as an href or routerLink
|
14
|
+
*/
|
15
|
+
this.externalLink = false;
|
16
|
+
this.condensed = false;
|
17
|
+
/**
|
18
|
+
* The link target when url is provided. Defaults to _self (same window)
|
19
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a
|
20
|
+
*/
|
21
|
+
this.target = '_self';
|
22
|
+
}
|
23
|
+
set labelHelpPopover(labelHelpPopover) {
|
24
|
+
if (typeof labelHelpPopover === 'string') {
|
25
|
+
this._labelHelpPopover = { text: labelHelpPopover };
|
26
|
+
}
|
27
|
+
else {
|
28
|
+
this._labelHelpPopover = labelHelpPopover;
|
29
|
+
}
|
30
|
+
}
|
31
|
+
get labelHelpPopover() {
|
32
|
+
return this._labelHelpPopover;
|
33
|
+
}
|
34
|
+
set value(value) {
|
35
|
+
if (typeof value === 'string') {
|
36
|
+
this.internalValue = { value: value };
|
37
|
+
}
|
38
|
+
else if (value) {
|
39
|
+
this.internalValue = value;
|
40
|
+
}
|
41
|
+
else {
|
42
|
+
this.internalValue = { value: '' };
|
43
|
+
}
|
44
|
+
}
|
45
|
+
;
|
46
|
+
/**
|
47
|
+
* When provided, displays the value as a link
|
48
|
+
*/
|
49
|
+
set url(value) {
|
50
|
+
this.externalLink = (value?.startsWith('http')) ? true : false;
|
51
|
+
this._url = value;
|
52
|
+
}
|
53
|
+
;
|
54
|
+
get url() {
|
55
|
+
return this._url;
|
56
|
+
}
|
57
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
58
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ItemDisplayComponent, selector: "ec-item-display", inputs: { id: "id", label: "label", labelHelpPopover: "labelHelpPopover", value: "value", url: "url", condensed: "condensed", target: "target" }, host: { properties: { "attr.id": "this.id" } }, ngImport: i0, template: "<div id=\"{{id}}_label_0\"\r\n class=\"text-caption-1 d-flex align-items-center\">\r\n <span>{{label | translate}}</span>\r\n <ec-help-popover *ngIf=\"labelHelpPopover\"\r\n class=\"mx-n1 my-n2\"\r\n [text]=\"labelHelpPopover.text\"\r\n [contentPosition]=\"labelHelpPopover?.contentPosition ?? 'top-left'\"\r\n [maxWidth]=\"labelHelpPopover?.maxWidth ?? '15rem'\">\r\n </ec-help-popover>\r\n</div>\r\n\r\n<div id=\"{{id}}_value_0\" class=\"{{condensed ? 'text-body-2' : 'text-display-1'}} {{internalValue.classnames}}\"\r\n [class.font-color-hint]=\"!internalValue.value && internalValue.noValueText\"\r\n title=\"{{internalValue.tooltip}}\">\r\n\r\n <ng-container *ngIf=\"url else content\">\r\n <a *ngIf=\"!externalLink\"\r\n id=\"{{id}}_link\"\r\n routerLink=\"{{url}}\"\r\n target=\"{{target}}\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </a>\r\n <a *ngIf=\"externalLink\"\r\n id=\"{{id}}_link\"\r\n href=\"{{url}}\"\r\n target=\"{{target}}\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </a>\r\n </ng-container>\r\n</div>\r\n\r\n\r\n<ng-template #content>\r\n <i *ngIf=\"internalValue?.icon\" class=\"ec-icon {{internalValue?.icon}}\"></i>\r\n <span>{{(internalValue?.value || internalValue?.noValueText) | translate}}</span>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n", styles: [":host{display:inline-block;margin-bottom:1rem;vertical-align:top}.ec-icon{font-size:1em;top:.125em;position:relative;margin-right:.25em}\n"], dependencies: [{ 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: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.HelpPopoverComponent, selector: "ec-help-popover", inputs: ["id", "text", "contentPosition", "maxWidth"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }] }); }
|
59
|
+
}
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ItemDisplayComponent, decorators: [{
|
61
|
+
type: Component,
|
62
|
+
args: [{ selector: 'ec-item-display', template: "<div id=\"{{id}}_label_0\"\r\n class=\"text-caption-1 d-flex align-items-center\">\r\n <span>{{label | translate}}</span>\r\n <ec-help-popover *ngIf=\"labelHelpPopover\"\r\n class=\"mx-n1 my-n2\"\r\n [text]=\"labelHelpPopover.text\"\r\n [contentPosition]=\"labelHelpPopover?.contentPosition ?? 'top-left'\"\r\n [maxWidth]=\"labelHelpPopover?.maxWidth ?? '15rem'\">\r\n </ec-help-popover>\r\n</div>\r\n\r\n<div id=\"{{id}}_value_0\" class=\"{{condensed ? 'text-body-2' : 'text-display-1'}} {{internalValue.classnames}}\"\r\n [class.font-color-hint]=\"!internalValue.value && internalValue.noValueText\"\r\n title=\"{{internalValue.tooltip}}\">\r\n\r\n <ng-container *ngIf=\"url else content\">\r\n <a *ngIf=\"!externalLink\"\r\n id=\"{{id}}_link\"\r\n routerLink=\"{{url}}\"\r\n target=\"{{target}}\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </a>\r\n <a *ngIf=\"externalLink\"\r\n id=\"{{id}}_link\"\r\n href=\"{{url}}\"\r\n target=\"{{target}}\">\r\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\r\n </a>\r\n </ng-container>\r\n</div>\r\n\r\n\r\n<ng-template #content>\r\n <i *ngIf=\"internalValue?.icon\" class=\"ec-icon {{internalValue?.icon}}\"></i>\r\n <span>{{(internalValue?.value || internalValue?.noValueText) | translate}}</span>\r\n <ng-content></ng-content>\r\n</ng-template>\r\n", styles: [":host{display:inline-block;margin-bottom:1rem;vertical-align:top}.ec-icon{font-size:1em;top:.125em;position:relative;margin-right:.25em}\n"] }]
|
63
|
+
}], propDecorators: { id: [{
|
64
|
+
type: HostBinding,
|
65
|
+
args: ['attr.id']
|
66
|
+
}, {
|
67
|
+
type: Input
|
68
|
+
}], label: [{
|
69
|
+
type: Input
|
70
|
+
}], labelHelpPopover: [{
|
71
|
+
type: Input
|
72
|
+
}], value: [{
|
73
|
+
type: Input
|
74
|
+
}], url: [{
|
75
|
+
type: Input
|
76
|
+
}], condensed: [{
|
77
|
+
type: Input
|
78
|
+
}], target: [{
|
79
|
+
type: Input
|
80
|
+
}] } });
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS1kaXNwbGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2l0ZW0tZGlzcGxheS9pdGVtLWRpc3BsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvaXRlbS1kaXNwbGF5L2l0ZW0tZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQXVCOUQsTUFBTSxPQUFPLG9CQUFvQjtJQUxqQztRQU9FLG1EQUFtRDtRQUVuQyxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBMEJ6QixrQkFBYSxHQUFpQixFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztRQWNqRDs7V0FFRztRQUNJLGlCQUFZLEdBQVksS0FBSyxDQUFDO1FBRXJCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFFbEM7OztXQUdHO1FBQ2EsV0FBTSxHQUFlLE9BQU8sQ0FBQztLQUM5QztJQS9DQyxJQUFhLGdCQUFnQixDQUFDLGdCQUF3RDtRQUNwRixJQUFHLE9BQU8sZ0JBQWdCLEtBQUssUUFBUSxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1NBQ3JEO2FBQU07WUFDTCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7U0FDM0M7SUFDSCxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDaEMsQ0FBQztJQUdELElBQWEsS0FBSyxDQUFDLEtBQXdDO1FBQ3pELElBQUcsT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1lBQzVCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBQyxLQUFLLEVBQUUsS0FBSyxFQUFDLENBQUM7U0FDckM7YUFBTSxJQUFJLEtBQUssRUFBRTtZQUNoQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQztTQUM1QjthQUFNO1lBQ0wsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFBQSxDQUFDO0lBR0Y7O09BRUc7SUFDSCxJQUFhLEdBQUcsQ0FBQyxLQUF5QjtRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMvRCxJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBQUEsQ0FBQztJQUNGLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDOytHQXpDVSxvQkFBb0I7bUdBQXBCLG9CQUFvQix5UEN2QmpDLG05Q0FxQ0E7OzRGRGRhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxpQkFBaUI7OEJBUVgsRUFBRTtzQkFEakIsV0FBVzt1QkFBQyxTQUFTOztzQkFDckIsS0FBSztnQkFFVSxLQUFLO3NCQUFwQixLQUFLO2dCQUdPLGdCQUFnQjtzQkFBNUIsS0FBSztnQkFZTyxLQUFLO3NCQUFqQixLQUFLO2dCQWNPLEdBQUc7c0JBQWYsS0FBSztnQkFjVSxTQUFTO3NCQUF4QixLQUFLO2dCQU1VLE1BQU07c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBIb3N0QmluZGluZyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBQb3BvdmVyQ29udGVudFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29udHJvbHMvcG9wb3Zlci9wb3BvdmVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExpbmtUYXJnZXQgfSBmcm9tICcuLi90YWdzL3RhZyc7XHJcblxyXG5leHBvcnQgdHlwZSBEaXNwbGF5VmFsdWUgPSB7XHJcbiAgdmFsdWU6c3RyaW5nLFxyXG4gIGNsYXNzbmFtZXM/OnN0cmluZyxcclxuICBpY29uPzpzdHJpbmcsXHJcbiAgbm9WYWx1ZVRleHQ/OnN0cmluZyxcclxuICB0b29sdGlwPzogc3RyaW5nXHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIEhlbHBQb3BvdmVyQ29uZmlnID0ge1xyXG4gIHRleHQ6IHN0cmluZztcclxuICBjb250ZW50UG9zaXRpb24/OiBQb3BvdmVyQ29udGVudFBvc2l0aW9uO1xyXG4gIG1heFdpZHRoPzogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWl0ZW0tZGlzcGxheScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2l0ZW0tZGlzcGxheS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vaXRlbS1kaXNwbGF5LmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEl0ZW1EaXNwbGF5Q29tcG9uZW50IHtcclxuXHJcbiAgLyoqIFRoZSB2YWx1ZSBvZiB0aGUgaG9zdCBlbGVtZW50J3MgaWQgYXR0cmlidXRlICovXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJylcclxuICBASW5wdXQoKSBwdWJsaWMgaWQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWwhOiBzdHJpbmc7XHJcblxyXG4gIHByaXZhdGUgX2xhYmVsSGVscFBvcG92ZXI/OiBIZWxwUG9wb3ZlckNvbmZpZztcclxuICBASW5wdXQoKSBzZXQgbGFiZWxIZWxwUG9wb3ZlcihsYWJlbEhlbHBQb3BvdmVyOiBzdHJpbmcgfCBIZWxwUG9wb3ZlckNvbmZpZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYodHlwZW9mIGxhYmVsSGVscFBvcG92ZXIgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHRoaXMuX2xhYmVsSGVscFBvcG92ZXIgPSB7IHRleHQ6IGxhYmVsSGVscFBvcG92ZXIgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX2xhYmVsSGVscFBvcG92ZXIgPSBsYWJlbEhlbHBQb3BvdmVyO1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXQgbGFiZWxIZWxwUG9wb3ZlcigpOiBIZWxwUG9wb3ZlckNvbmZpZyB8IHVuZGVmaW5lZCB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFiZWxIZWxwUG9wb3ZlcjtcclxuICB9XHJcblxyXG5cclxuICBASW5wdXQoKSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZyB8IERpc3BsYXlWYWx1ZSB8IHVuZGVmaW5lZCkge1xyXG4gICAgaWYodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xyXG4gICAgICB0aGlzLmludGVybmFsVmFsdWUgPSB7dmFsdWU6IHZhbHVlfTtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUpIHtcclxuICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlID0gdmFsdWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludGVybmFsVmFsdWUgPSB7dmFsdWU6ICcnfTtcclxuICAgIH1cclxuICB9O1xyXG4gIHB1YmxpYyBpbnRlcm5hbFZhbHVlOiBEaXNwbGF5VmFsdWUgPSB7dmFsdWU6ICcnfTtcclxuXHJcbiAgLyoqXHJcbiAgICogV2hlbiBwcm92aWRlZCwgZGlzcGxheXMgdGhlIHZhbHVlIGFzIGEgbGlua1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHNldCB1cmwodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5leHRlcm5hbExpbmsgPSAodmFsdWU/LnN0YXJ0c1dpdGgoJ2h0dHAnKSkgPyB0cnVlIDogZmFsc2U7XHJcbiAgICB0aGlzLl91cmwgPSB2YWx1ZTtcclxuICB9O1xyXG4gIGdldCB1cmwoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl91cmw7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3VybD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0IGxpbmsgYXMgYW4gaHJlZiBvciByb3V0ZXJMaW5rXHJcbiAgICovXHJcbiAgcHVibGljIGV4dGVybmFsTGluazogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgY29uZGVuc2VkID0gZmFsc2U7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBsaW5rIHRhcmdldCB3aGVuIHVybCBpcyBwcm92aWRlZC4gRGVmYXVsdHMgdG8gX3NlbGYgKHNhbWUgd2luZG93KVxyXG4gICAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRNTC9FbGVtZW50L2FcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgdGFyZ2V0OiBMaW5rVGFyZ2V0ID0gJ19zZWxmJztcclxufVxyXG4iLCI8ZGl2IGlkPVwie3tpZH19X2xhYmVsXzBcIlxyXG4gICAgIGNsYXNzPVwidGV4dC1jYXB0aW9uLTEgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gIDxzcGFuPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8ZWMtaGVscC1wb3BvdmVyICpuZ0lmPVwibGFiZWxIZWxwUG9wb3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm14LW4xIG15LW4yXCJcclxuICAgICAgICAgICAgICAgICAgIFt0ZXh0XT1cImxhYmVsSGVscFBvcG92ZXIudGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICBbY29udGVudFBvc2l0aW9uXT1cImxhYmVsSGVscFBvcG92ZXI/LmNvbnRlbnRQb3NpdGlvbiA/PyAndG9wLWxlZnQnXCJcclxuICAgICAgICAgICAgICAgICAgIFttYXhXaWR0aF09XCJsYWJlbEhlbHBQb3BvdmVyPy5tYXhXaWR0aCA/PyAnMTVyZW0nXCI+XHJcbiAgPC9lYy1oZWxwLXBvcG92ZXI+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBpZD1cInt7aWR9fV92YWx1ZV8wXCIgY2xhc3M9XCJ7e2NvbmRlbnNlZCA/ICd0ZXh0LWJvZHktMicgOiAndGV4dC1kaXNwbGF5LTEnfX0ge3tpbnRlcm5hbFZhbHVlLmNsYXNzbmFtZXN9fVwiXHJcbiAgICAgW2NsYXNzLmZvbnQtY29sb3ItaGludF09XCIhaW50ZXJuYWxWYWx1ZS52YWx1ZSAmJiBpbnRlcm5hbFZhbHVlLm5vVmFsdWVUZXh0XCJcclxuICAgICB0aXRsZT1cInt7aW50ZXJuYWxWYWx1ZS50b29sdGlwfX1cIj5cclxuXHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInVybCBlbHNlIGNvbnRlbnRcIj5cclxuICAgIDxhICpuZ0lmPVwiIWV4dGVybmFsTGlua1wiXHJcbiAgICAgICAgaWQ9XCJ7e2lkfX1fbGlua1wiXHJcbiAgICAgICAgcm91dGVyTGluaz1cInt7dXJsfX1cIlxyXG4gICAgICAgIHRhcmdldD1cInt7dGFyZ2V0fX1cIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNvbnRlbnRcIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvYT5cclxuICAgIDxhICpuZ0lmPVwiZXh0ZXJuYWxMaW5rXCJcclxuICAgICAgICBpZD1cInt7aWR9fV9saW5rXCJcclxuICAgICAgICBocmVmPVwie3t1cmx9fVwiXHJcbiAgICAgICAgdGFyZ2V0PVwie3t0YXJnZXR9fVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC9hPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcblxyXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XHJcbiAgPGkgKm5nSWY9XCJpbnRlcm5hbFZhbHVlPy5pY29uXCIgY2xhc3M9XCJlYy1pY29uIHt7aW50ZXJuYWxWYWx1ZT8uaWNvbn19XCI+PC9pPlxyXG4gIDxzcGFuPnt7KGludGVybmFsVmFsdWU/LnZhbHVlIHx8IGludGVybmFsVmFsdWU/Lm5vVmFsdWVUZXh0KSB8IHRyYW5zbGF0ZX19PC9zcGFuPlxyXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
|
@@ -1,47 +1,47 @@
|
|
1
|
-
import { Component, HostBinding, Input } from '@angular/core';
|
2
|
-
import { UntypedFormControl } from '@angular/forms';
|
3
|
-
import { JsonHelper } from '../../shared/json-helper';
|
4
|
-
import * as i0 from "@angular/core";
|
5
|
-
import * as i1 from "@ngx-translate/core";
|
6
|
-
import * as i2 from "@angular/common";
|
7
|
-
import * as i3 from "../../controls/button/button.component";
|
8
|
-
import * as i4 from "../../controls/button/copy-button.directive";
|
9
|
-
export class JsonDisplayComponent {
|
10
|
-
constructor(translate) {
|
11
|
-
this.translate = translate;
|
12
|
-
this.maxLength = 10000;
|
13
|
-
this.jsonDisplay = new UntypedFormControl('');
|
14
|
-
}
|
15
|
-
ngOnChanges() {
|
16
|
-
if (this.id) {
|
17
|
-
this.attrId = this.id;
|
18
|
-
}
|
19
|
-
if (this.jsonString) {
|
20
|
-
let display = this.jsonString;
|
21
|
-
let parsedJson = JsonHelper.tryParseJSON(this.jsonString);
|
22
|
-
if (parsedJson) {
|
23
|
-
display = JSON.stringify(parsedJson, null, 2);
|
24
|
-
}
|
25
|
-
if (display.length > this.maxLength) {
|
26
|
-
display = display.substr(0, this.maxLength) + `\r\n${this.translate.instant('MessageTooLong_Truncated_SC')}`;
|
27
|
-
}
|
28
|
-
this.jsonDisplay.patchValue(display);
|
29
|
-
}
|
30
|
-
}
|
31
|
-
}
|
32
|
-
|
33
|
-
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
35
|
-
type: Component,
|
36
|
-
args: [{ selector: 'ec-json-display', template: "<ec-button id=\"{{id}}_copy\"\r\n class=\"copy-button\"\r\n *ngIf=\"jsonDisplay.value\"\r\n type=\"icon\"\r\n icon=\"icon-copy\"\r\n [ecCopyButton]=\"jsonDisplay\">\r\n</ec-button>\r\n<pre><code>{{jsonDisplay.value}}</code></pre>", styles: [":host{display:block;position:relative;color:var(--ec-color-primary-light);background
|
37
|
-
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { id: [{
|
38
|
-
type: Input
|
39
|
-
}], attrId: [{
|
40
|
-
type: HostBinding,
|
41
|
-
args: ['attr.id']
|
42
|
-
}], jsonString: [{
|
43
|
-
type: Input
|
44
|
-
}], maxLength: [{
|
45
|
-
type: Input
|
46
|
-
}] } });
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
import { Component, HostBinding, Input } from '@angular/core';
|
2
|
+
import { UntypedFormControl } from '@angular/forms';
|
3
|
+
import { JsonHelper } from '../../shared/json-helper';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
import * as i1 from "@ngx-translate/core";
|
6
|
+
import * as i2 from "@angular/common";
|
7
|
+
import * as i3 from "../../controls/button/button.component";
|
8
|
+
import * as i4 from "../../controls/button/copy-button.directive";
|
9
|
+
export class JsonDisplayComponent {
|
10
|
+
constructor(translate) {
|
11
|
+
this.translate = translate;
|
12
|
+
this.maxLength = 10000;
|
13
|
+
this.jsonDisplay = new UntypedFormControl('');
|
14
|
+
}
|
15
|
+
ngOnChanges() {
|
16
|
+
if (this.id) {
|
17
|
+
this.attrId = this.id;
|
18
|
+
}
|
19
|
+
if (this.jsonString) {
|
20
|
+
let display = this.jsonString;
|
21
|
+
let parsedJson = JsonHelper.tryParseJSON(this.jsonString);
|
22
|
+
if (parsedJson) {
|
23
|
+
display = JSON.stringify(parsedJson, null, 2);
|
24
|
+
}
|
25
|
+
if (display.length > this.maxLength) {
|
26
|
+
display = display.substr(0, this.maxLength) + `\r\n${this.translate.instant('MessageTooLong_Truncated_SC')}`;
|
27
|
+
}
|
28
|
+
this.jsonDisplay.patchValue(display);
|
29
|
+
}
|
30
|
+
}
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JsonDisplayComponent, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: JsonDisplayComponent, selector: "ec-json-display", inputs: { id: "id", jsonString: "jsonString", maxLength: "maxLength" }, host: { properties: { "attr.id": "this.attrId" } }, usesOnChanges: true, ngImport: i0, template: "<ec-button id=\"{{id}}_copy\"\r\n class=\"copy-button\"\r\n *ngIf=\"jsonDisplay.value\"\r\n type=\"icon\"\r\n icon=\"icon-copy\"\r\n [ecCopyButton]=\"jsonDisplay\">\r\n</ec-button>\r\n<pre><code>{{jsonDisplay.value}}</code></pre>", styles: [":host{display:block;position:relative;color:var(--ec-color-primary-light);background:#354751;max-height:15rem;min-height:2.125rem;font-size:var(--ec-font-size-label);border-radius:var(--ec-border-radius-card);overflow-x:auto;overflow-y:auto;text-align:right}pre{margin-bottom:0;margin-top:-2rem;text-align:left}pre code{display:block;padding:.5rem}.copy-button{position:sticky;top:0}.copy-button ::ng-deep .ec-icon{color:var(--ec-color-secondary-light)!important}.copy-button ::ng-deep button:hover{background-color:transparent!important}.copy-button ::ng-deep button:hover .ec-icon{color:var(--ec-color-primary-light)!important}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.ButtonComponent, selector: "ec-button", inputs: ["id", "disabled", "icon", "label", "badge", "tabindex", "type", "pending", "pendingIcon", "customTemplate", "isSubmit", "autofocus"], outputs: ["clicked"] }, { kind: "directive", type: i4.CopyButtonDirective, selector: "[ecCopyButton]", inputs: ["ecCopyButton"] }] }); }
|
33
|
+
}
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JsonDisplayComponent, decorators: [{
|
35
|
+
type: Component,
|
36
|
+
args: [{ selector: 'ec-json-display', template: "<ec-button id=\"{{id}}_copy\"\r\n class=\"copy-button\"\r\n *ngIf=\"jsonDisplay.value\"\r\n type=\"icon\"\r\n icon=\"icon-copy\"\r\n [ecCopyButton]=\"jsonDisplay\">\r\n</ec-button>\r\n<pre><code>{{jsonDisplay.value}}</code></pre>", styles: [":host{display:block;position:relative;color:var(--ec-color-primary-light);background:#354751;max-height:15rem;min-height:2.125rem;font-size:var(--ec-font-size-label);border-radius:var(--ec-border-radius-card);overflow-x:auto;overflow-y:auto;text-align:right}pre{margin-bottom:0;margin-top:-2rem;text-align:left}pre code{display:block;padding:.5rem}.copy-button{position:sticky;top:0}.copy-button ::ng-deep .ec-icon{color:var(--ec-color-secondary-light)!important}.copy-button ::ng-deep button:hover{background-color:transparent!important}.copy-button ::ng-deep button:hover .ec-icon{color:var(--ec-color-primary-light)!important}\n"] }]
|
37
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; }, propDecorators: { id: [{
|
38
|
+
type: Input
|
39
|
+
}], attrId: [{
|
40
|
+
type: HostBinding,
|
41
|
+
args: ['attr.id']
|
42
|
+
}], jsonString: [{
|
43
|
+
type: Input
|
44
|
+
}], maxLength: [{
|
45
|
+
type: Input
|
46
|
+
}] } });
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbi1kaXNwbGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2pzb24tZGlzcGxheS9qc29uLWRpc3BsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tcG9uZW50cy9zcmMvbGliL2Rpc3BsYXkvanNvbi1kaXNwbGF5L2pzb24tZGlzcGxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7QUFPdEQsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixZQUFvQixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQUh0QyxjQUFTLEdBQVcsS0FBSyxDQUFDO1FBQzVCLGdCQUFXLEdBQUcsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVHLENBQUM7SUFFcEQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNYLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztTQUN2QjtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNuQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1lBRTlCLElBQUksVUFBVSxHQUF3QixVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUMvRSxJQUFJLFVBQVUsRUFBRTtnQkFDZCxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO2FBQy9DO1lBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUU7Z0JBQ25DLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFLENBQUM7YUFDOUc7WUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QztJQUNILENBQUM7K0dBN0JVLG9CQUFvQjttR0FBcEIsb0JBQW9CLHdNQ1ZqQyx5UkFPNkM7OzRGREdoQyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCO3VHQU1sQixFQUFFO3NCQUFWLEtBQUs7Z0JBQ2tCLE1BQU07c0JBQTdCLFdBQVc7dUJBQUMsU0FBUztnQkFDYixVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBKc29uSGVscGVyIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2pzb24taGVscGVyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtanNvbi1kaXNwbGF5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vanNvbi1kaXNwbGF5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9qc29uLWRpc3BsYXkuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSnNvbkRpc3BsYXlDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICBASW5wdXQoKSBpZD86IHN0cmluZztcclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBhdHRySWQ/OiBzdHJpbmc7XHJcbiAgQElucHV0KCkganNvblN0cmluZz86IHN0cmluZztcclxuICBASW5wdXQoKSBtYXhMZW5ndGg6IG51bWJlciA9IDEwMDAwO1xyXG4gIHB1YmxpYyBqc29uRGlzcGxheSA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgaWYgKHRoaXMuaWQpIHtcclxuICAgICAgdGhpcy5hdHRySWQgPSB0aGlzLmlkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmpzb25TdHJpbmcpIHtcclxuICAgICAgbGV0IGRpc3BsYXkgPSB0aGlzLmpzb25TdHJpbmc7XHJcblxyXG4gICAgICBsZXQgcGFyc2VkSnNvbjogdW5rbm93biB8IHVuZGVmaW5lZCA9IEpzb25IZWxwZXIudHJ5UGFyc2VKU09OKHRoaXMuanNvblN0cmluZyk7XHJcbiAgICAgIGlmIChwYXJzZWRKc29uKSB7XHJcbiAgICAgICAgZGlzcGxheSA9IEpTT04uc3RyaW5naWZ5KHBhcnNlZEpzb24sIG51bGwsIDIpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoZGlzcGxheS5sZW5ndGggPiB0aGlzLm1heExlbmd0aCkge1xyXG4gICAgICAgIGRpc3BsYXkgPSBkaXNwbGF5LnN1YnN0cigwLCB0aGlzLm1heExlbmd0aCkgKyBgXFxyXFxuJHt0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdNZXNzYWdlVG9vTG9uZ19UcnVuY2F0ZWRfU0MnKX1gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmpzb25EaXNwbGF5LnBhdGNoVmFsdWUoZGlzcGxheSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxlYy1idXR0b24gaWQ9XCJ7e2lkfX1fY29weVwiXHJcbiAgICAgICAgICAgY2xhc3M9XCJjb3B5LWJ1dHRvblwiXHJcbiAgICAgICAgICAgKm5nSWY9XCJqc29uRGlzcGxheS52YWx1ZVwiXHJcbiAgICAgICAgICAgdHlwZT1cImljb25cIlxyXG4gICAgICAgICAgIGljb249XCJpY29uLWNvcHlcIlxyXG4gICAgICAgICAgIFtlY0NvcHlCdXR0b25dPVwianNvbkRpc3BsYXlcIj5cclxuPC9lYy1idXR0b24+XHJcbjxwcmU+PGNvZGU+e3tqc29uRGlzcGxheS52YWx1ZX19PC9jb2RlPjwvcHJlPiJdfQ==
|