@energycap/components 0.40.2-rxjs-7-upgrade.20241219-1425 → 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
@@ -0,0 +1,67 @@
|
|
1
|
+
import { Component, Input } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
import * as i1 from "./avatar.service";
|
4
|
+
export class AvatarComponent {
|
5
|
+
constructor(el, renderer, avatarService) {
|
6
|
+
this.el = el;
|
7
|
+
this.renderer = renderer;
|
8
|
+
this.avatarService = avatarService;
|
9
|
+
/** Color map base on the first let of the label */
|
10
|
+
this.colors = {
|
11
|
+
abcde01: 'red',
|
12
|
+
fghij23: 'orange',
|
13
|
+
klmn15: 'yellow',
|
14
|
+
opqr67: 'green',
|
15
|
+
stuv8: 'blue',
|
16
|
+
wxyz9: 'purple'
|
17
|
+
};
|
18
|
+
/** Label is defaulted to HI in the rare case the user does not have a first name, last name, email or username */
|
19
|
+
this.label = 'HI';
|
20
|
+
/** Track the current CSS class so we can remove it if the user changes before setting the next one */
|
21
|
+
this.currentCSSClass = '';
|
22
|
+
}
|
23
|
+
ngOnChanges(changes) {
|
24
|
+
if (!changes.user.firstChange && !this.user) {
|
25
|
+
console.error(`AvatarComponent expected a value for the [user] input but got ${this.user} instead.`);
|
26
|
+
}
|
27
|
+
this.updateLabel();
|
28
|
+
this.updateColor();
|
29
|
+
}
|
30
|
+
/**
|
31
|
+
* Update the Avatar label
|
32
|
+
*
|
33
|
+
*/
|
34
|
+
updateLabel() {
|
35
|
+
if (this.user) {
|
36
|
+
this.label = this.avatarService.getAvatarLabels(this.user).abbreviation;
|
37
|
+
}
|
38
|
+
}
|
39
|
+
/**
|
40
|
+
* Sets the color of the Avatar based on the first letter of the label. If the label is HI or is not
|
41
|
+
* a letter, default to gray.
|
42
|
+
*/
|
43
|
+
updateColor() {
|
44
|
+
if (this.currentCSSClass) {
|
45
|
+
this.renderer.removeClass(this.el.nativeElement, this.currentCSSClass);
|
46
|
+
}
|
47
|
+
let color = 'gray';
|
48
|
+
if (this.label !== 'HI' && this.label) {
|
49
|
+
for (let key in this.colors) {
|
50
|
+
if (key.includes(this.label[0].toLowerCase())) {
|
51
|
+
color = this.colors[key];
|
52
|
+
}
|
53
|
+
}
|
54
|
+
}
|
55
|
+
this.currentCSSClass = `avatar-${color}`;
|
56
|
+
this.renderer.addClass(this.el.nativeElement, this.currentCSSClass);
|
57
|
+
}
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i1.AvatarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: AvatarComponent, selector: "ec-avatar", inputs: { user: "user" }, usesOnChanges: true, ngImport: i0, template: '{{label}}', isInline: true, styles: [":host{display:flex;width:2.25rem;height:2.25rem;align-items:center;justify-content:center;font-size:1rem;line-height:1.25rem;border-radius:50%;color:var(--ec-color-primary-light);text-transform:uppercase}:host.avatar-red{background-color:var(--ec-avatar-background-color-red, var(--ec-color-red-5));color:var(--ec-avatar-color-red, var(--ec-color-primary-light))}:host.avatar-orange{background-color:var(--ec-avatar-background-color-orange, var(--ec-color-orange-5));color:var(--ec-avatar-color-orange, var(--ec-color-primary-light))}:host.avatar-yellow{background-color:var(--ec-avatar-background-color-yellow, var(--ec-color-yellow-5));color:var(--ec-avatar-color-yellow, var(--ec-color-secondary-dark))}:host.avatar-green{background-color:var(--ec-avatar-background-color-green, var(--ec-color-green-5));color:var(--ec-avatar-color-green, var(--ec-color-primary-light))}:host.avatar-blue{background-color:var(--ec-avatar-background-color-blue, var(--ec-color-blue-5));color:var(--ec-avatar-color-blue, var(--ec-color-primary-light))}:host.avatar-purple{background-color:var(--ec-avatar-background-color-purple, var(--ec-color-purple-5));color:var(--ec-avatar-color-purple, var(--ec-color-primary-light))}:host.avatar-gray{background-color:var(--ec-avatar-background-color-gray, var(--ec-color-gray-3));color:var(--ec-avatar-color-gray, var(--ec-color-primary-light))}\n"] }); }
|
60
|
+
}
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarComponent, decorators: [{
|
62
|
+
type: Component,
|
63
|
+
args: [{ selector: 'ec-avatar', template: '{{label}}', styles: [":host{display:flex;width:2.25rem;height:2.25rem;align-items:center;justify-content:center;font-size:1rem;line-height:1.25rem;border-radius:50%;color:var(--ec-color-primary-light);text-transform:uppercase}:host.avatar-red{background-color:var(--ec-avatar-background-color-red, var(--ec-color-red-5));color:var(--ec-avatar-color-red, var(--ec-color-primary-light))}:host.avatar-orange{background-color:var(--ec-avatar-background-color-orange, var(--ec-color-orange-5));color:var(--ec-avatar-color-orange, var(--ec-color-primary-light))}:host.avatar-yellow{background-color:var(--ec-avatar-background-color-yellow, var(--ec-color-yellow-5));color:var(--ec-avatar-color-yellow, var(--ec-color-secondary-dark))}:host.avatar-green{background-color:var(--ec-avatar-background-color-green, var(--ec-color-green-5));color:var(--ec-avatar-color-green, var(--ec-color-primary-light))}:host.avatar-blue{background-color:var(--ec-avatar-background-color-blue, var(--ec-color-blue-5));color:var(--ec-avatar-color-blue, var(--ec-color-primary-light))}:host.avatar-purple{background-color:var(--ec-avatar-background-color-purple, var(--ec-color-purple-5));color:var(--ec-avatar-color-purple, var(--ec-color-primary-light))}:host.avatar-gray{background-color:var(--ec-avatar-background-color-gray, var(--ec-color-gray-3));color:var(--ec-avatar-color-gray, var(--ec-color-primary-light))}\n"] }]
|
64
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i1.AvatarService }]; }, propDecorators: { user: [{
|
65
|
+
type: Input
|
66
|
+
}] } });
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9kaXNwbGF5L2F2YXRhci9hdmF0YXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUF1QyxNQUFNLGVBQWUsQ0FBQzs7O0FBZWxHLE1BQU0sT0FBTyxlQUFlO0lBb0IxQixZQUFvQixFQUFjLEVBQVUsUUFBbUIsRUFBVSxhQUE0QjtRQUFqRixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBbEJyRyxtREFBbUQ7UUFDM0MsV0FBTSxHQUE0QjtZQUN4QyxPQUFPLEVBQUUsS0FBSztZQUNkLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLE1BQU0sRUFBRSxPQUFPO1lBQ2YsS0FBSyxFQUFFLE1BQU07WUFDYixLQUFLLEVBQUUsUUFBUTtTQUNoQixDQUFBO1FBSUQsa0hBQWtIO1FBQzNHLFVBQUssR0FBRyxJQUFJLENBQUM7UUFFcEIsc0dBQXNHO1FBQzlGLG9CQUFlLEdBQUcsRUFBRSxDQUFDO0lBRTJFLENBQUM7SUFFekcsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDM0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxpRUFBaUUsSUFBSSxDQUFDLElBQUksV0FBVyxDQUFDLENBQUM7U0FDdEc7UUFFRCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbkIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7O09BR0c7SUFDSyxXQUFXO1FBQ2pCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRTtZQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLFlBQVksQ0FBQztTQUN6RTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxXQUFXO1FBQ2pCLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDeEU7UUFFRCxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUM7UUFDbkIsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ3JDLEtBQUssSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDM0IsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRTtvQkFDN0MsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQzFCO2FBQ0Y7U0FDRjtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsVUFBVSxLQUFLLEVBQUUsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdEUsQ0FBQzsrR0E1RFUsZUFBZTttR0FBZixlQUFlLGdHQUhoQixXQUFXOzs0RkFHVixlQUFlO2tCQUwzQixTQUFTOytCQUNFLFdBQVcsWUFDWCxXQUFXO3FKQWVaLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcywgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEF2YXRhclNlcnZpY2UgfSBmcm9tICcuL2F2YXRhci5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQXZhdGFyVXNlciB7XHJcbiAgZmlyc3ROYW1lPzogc3RyaW5nO1xyXG4gIGxhc3ROYW1lPzogc3RyaW5nO1xyXG4gIGVtYWlsPzogc3RyaW5nO1xyXG4gIHVzZXJuYW1lPzogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWF2YXRhcicsXHJcbiAgdGVtcGxhdGU6ICd7e2xhYmVsfX0nLFxyXG4gIHN0eWxlVXJsczogWycuL2F2YXRhci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdmF0YXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG5cclxuICAvKiogQ29sb3IgbWFwIGJhc2Ugb24gdGhlIGZpcnN0IGxldCBvZiB0aGUgbGFiZWwgKi9cclxuICBwcml2YXRlIGNvbG9yczogeyBbazogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICBhYmNkZTAxOiAncmVkJyxcclxuICAgIGZnaGlqMjM6ICdvcmFuZ2UnLFxyXG4gICAga2xtbjE1OiAneWVsbG93JyxcclxuICAgIG9wcXI2NzogJ2dyZWVuJyxcclxuICAgIHN0dXY4OiAnYmx1ZScsXHJcbiAgICB3eHl6OTogJ3B1cnBsZSdcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHVzZXIhOiBBdmF0YXJVc2VyO1xyXG5cclxuICAvKiogTGFiZWwgaXMgZGVmYXVsdGVkIHRvIEhJIGluIHRoZSByYXJlIGNhc2UgdGhlIHVzZXIgZG9lcyBub3QgaGF2ZSBhIGZpcnN0IG5hbWUsIGxhc3QgbmFtZSwgZW1haWwgb3IgdXNlcm5hbWUgKi9cclxuICBwdWJsaWMgbGFiZWwgPSAnSEknO1xyXG5cclxuICAvKiogVHJhY2sgdGhlIGN1cnJlbnQgQ1NTIGNsYXNzIHNvIHdlIGNhbiByZW1vdmUgaXQgaWYgdGhlIHVzZXIgY2hhbmdlcyBiZWZvcmUgc2V0dGluZyB0aGUgbmV4dCBvbmUgKi9cclxuICBwcml2YXRlIGN1cnJlbnRDU1NDbGFzcyA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgYXZhdGFyU2VydmljZTogQXZhdGFyU2VydmljZSkge31cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgaWYgKCFjaGFuZ2VzLnVzZXIuZmlyc3RDaGFuZ2UgJiYgIXRoaXMudXNlcikge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGBBdmF0YXJDb21wb25lbnQgZXhwZWN0ZWQgYSB2YWx1ZSBmb3IgdGhlIFt1c2VyXSBpbnB1dCBidXQgZ290ICR7dGhpcy51c2VyfSBpbnN0ZWFkLmApO1xyXG4gICAgfSBcclxuICAgICAgXHJcbiAgICB0aGlzLnVwZGF0ZUxhYmVsKCk7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbG9yKCk7ICAgIFxyXG4gIH1cclxuXHJcbiAgLyoqIFxyXG4gICAqIFVwZGF0ZSB0aGUgQXZhdGFyIGxhYmVsIFxyXG4gICAqIFxyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlTGFiZWwoKSB7XHJcbiAgICBpZiAodGhpcy51c2VyKSB7XHJcbiAgICAgIHRoaXMubGFiZWwgPSB0aGlzLmF2YXRhclNlcnZpY2UuZ2V0QXZhdGFyTGFiZWxzKHRoaXMudXNlcikuYWJicmV2aWF0aW9uO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFxyXG4gICAqIFNldHMgdGhlIGNvbG9yIG9mIHRoZSBBdmF0YXIgYmFzZWQgb24gdGhlIGZpcnN0IGxldHRlciBvZiB0aGUgbGFiZWwuIElmIHRoZSBsYWJlbCBpcyBISSBvciBpcyBub3RcclxuICAgKiBhIGxldHRlciwgZGVmYXVsdCB0byBncmF5LlxyXG4gICAqL1xyXG4gIHByaXZhdGUgdXBkYXRlQ29sb3IoKSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50Q1NTQ2xhc3MpIHtcclxuICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY3VycmVudENTU0NsYXNzKTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgY29sb3IgPSAnZ3JheSc7XHJcbiAgICBpZiAodGhpcy5sYWJlbCAhPT0gJ0hJJyAmJiB0aGlzLmxhYmVsKSB7XHJcbiAgICAgIGZvciAobGV0IGtleSBpbiB0aGlzLmNvbG9ycykge1xyXG4gICAgICAgIGlmIChrZXkuaW5jbHVkZXModGhpcy5sYWJlbFswXS50b0xvd2VyQ2FzZSgpKSkge1xyXG4gICAgICAgICAgY29sb3IgPSB0aGlzLmNvbG9yc1trZXldO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50Q1NTQ2xhc3MgPSBgYXZhdGFyLSR7Y29sb3J9YDtcclxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCB0aGlzLmN1cnJlbnRDU1NDbGFzcyk7XHJcbiAgfVxyXG59Il19
|
@@ -1,64 +1,64 @@
|
|
1
|
-
import { Injectable } from '@angular/core';
|
2
|
-
import * as i0 from "@angular/core";
|
3
|
-
export class AvatarService {
|
4
|
-
/**
|
5
|
-
* Return the full and abbreviated labels based on the users first name, email, or username. If the user has a first or last name use
|
6
|
-
* either a combination of the first and last name, or the first two characters of the name that is defined. If the user does
|
7
|
-
* not have a first or last name, trying using the first two characters of the email, or the first two characters of the
|
8
|
-
* username as a last ditch effort.
|
9
|
-
* @param user
|
10
|
-
* @returns
|
11
|
-
*/
|
12
|
-
getAvatarLabels(user) {
|
13
|
-
let full = undefined;
|
14
|
-
let abbreviation = 'HI';
|
15
|
-
let trimmedUser = this.trimUser(user);
|
16
|
-
if (trimmedUser.firstName || trimmedUser.lastName) {
|
17
|
-
if (trimmedUser.firstName) {
|
18
|
-
abbreviation = trimmedUser.firstName.slice(0, 1);
|
19
|
-
full = trimmedUser.firstName;
|
20
|
-
if (trimmedUser.lastName) {
|
21
|
-
full += ` ${trimmedUser.lastName}`;
|
22
|
-
}
|
23
|
-
}
|
24
|
-
else {
|
25
|
-
abbreviation = trimmedUser.lastName.slice(0, 1);
|
26
|
-
full = trimmedUser.lastName;
|
27
|
-
}
|
28
|
-
}
|
29
|
-
else if (trimmedUser.email) {
|
30
|
-
abbreviation = trimmedUser.email.slice(0, 1);
|
31
|
-
full = trimmedUser.email;
|
32
|
-
}
|
33
|
-
else if (trimmedUser.username) {
|
34
|
-
abbreviation = trimmedUser.username.slice(0, 1);
|
35
|
-
full = trimmedUser.username;
|
36
|
-
}
|
37
|
-
return {
|
38
|
-
abbreviation: abbreviation,
|
39
|
-
full: full
|
40
|
-
};
|
41
|
-
}
|
42
|
-
/**
|
43
|
-
* Return a new user object that has all of the properties of the existing user
|
44
|
-
* with any null, undefined, or whitespace values removed
|
45
|
-
*/
|
46
|
-
trimUser(user) {
|
47
|
-
let trimmedUser = {
|
48
|
-
email: (user.email || '').trim(),
|
49
|
-
firstName: (user.firstName || '').trim(),
|
50
|
-
lastName: (user.lastName || '').trim(),
|
51
|
-
username: (user.username || '').trim()
|
52
|
-
};
|
53
|
-
return trimmedUser;
|
54
|
-
}
|
55
|
-
}
|
56
|
-
|
57
|
-
|
58
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
59
|
-
type: Injectable,
|
60
|
-
args: [{
|
61
|
-
providedIn: 'root'
|
62
|
-
}]
|
63
|
-
}] });
|
64
|
-
//# sourceMappingURL=data:application/json;base64,
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class AvatarService {
|
4
|
+
/**
|
5
|
+
* Return the full and abbreviated labels based on the users first name, email, or username. If the user has a first or last name use
|
6
|
+
* either a combination of the first and last name, or the first two characters of the name that is defined. If the user does
|
7
|
+
* not have a first or last name, trying using the first two characters of the email, or the first two characters of the
|
8
|
+
* username as a last ditch effort.
|
9
|
+
* @param user
|
10
|
+
* @returns
|
11
|
+
*/
|
12
|
+
getAvatarLabels(user) {
|
13
|
+
let full = undefined;
|
14
|
+
let abbreviation = 'HI';
|
15
|
+
let trimmedUser = this.trimUser(user);
|
16
|
+
if (trimmedUser.firstName || trimmedUser.lastName) {
|
17
|
+
if (trimmedUser.firstName) {
|
18
|
+
abbreviation = trimmedUser.firstName.slice(0, 1);
|
19
|
+
full = trimmedUser.firstName;
|
20
|
+
if (trimmedUser.lastName) {
|
21
|
+
full += ` ${trimmedUser.lastName}`;
|
22
|
+
}
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
abbreviation = trimmedUser.lastName.slice(0, 1);
|
26
|
+
full = trimmedUser.lastName;
|
27
|
+
}
|
28
|
+
}
|
29
|
+
else if (trimmedUser.email) {
|
30
|
+
abbreviation = trimmedUser.email.slice(0, 1);
|
31
|
+
full = trimmedUser.email;
|
32
|
+
}
|
33
|
+
else if (trimmedUser.username) {
|
34
|
+
abbreviation = trimmedUser.username.slice(0, 1);
|
35
|
+
full = trimmedUser.username;
|
36
|
+
}
|
37
|
+
return {
|
38
|
+
abbreviation: abbreviation,
|
39
|
+
full: full
|
40
|
+
};
|
41
|
+
}
|
42
|
+
/**
|
43
|
+
* Return a new user object that has all of the properties of the existing user
|
44
|
+
* with any null, undefined, or whitespace values removed
|
45
|
+
*/
|
46
|
+
trimUser(user) {
|
47
|
+
let trimmedUser = {
|
48
|
+
email: (user.email || '').trim(),
|
49
|
+
firstName: (user.firstName || '').trim(),
|
50
|
+
lastName: (user.lastName || '').trim(),
|
51
|
+
username: (user.username || '').trim()
|
52
|
+
};
|
53
|
+
return trimmedUser;
|
54
|
+
}
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
56
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarService, providedIn: 'root' }); }
|
57
|
+
}
|
58
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AvatarService, decorators: [{
|
59
|
+
type: Injectable,
|
60
|
+
args: [{
|
61
|
+
providedIn: 'root'
|
62
|
+
}]
|
63
|
+
}] });
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvZGlzcGxheS9hdmF0YXIvYXZhdGFyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFXM0MsTUFBTSxPQUFPLGFBQWE7SUFFeEI7Ozs7Ozs7T0FPRztJQUNJLGVBQWUsQ0FBQyxJQUFnQjtRQUNyQyxJQUFJLElBQUksR0FBdUIsU0FBUyxDQUFDO1FBQ3pDLElBQUksWUFBWSxHQUFXLElBQUksQ0FBQztRQUVoQyxJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksV0FBVyxDQUFDLFNBQVMsSUFBSSxXQUFXLENBQUMsUUFBUSxFQUFFO1lBQ2pELElBQUksV0FBVyxDQUFDLFNBQVMsRUFBRTtnQkFDekIsWUFBWSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDakQsSUFBSSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUM7Z0JBRTdCLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRTtvQkFDeEIsSUFBSSxJQUFJLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO2lCQUNwQzthQUNGO2lCQUNJO2dCQUNILFlBQVksR0FBRyxXQUFXLENBQUMsUUFBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pELElBQUksR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO2FBQzdCO1NBQ0Y7YUFDSSxJQUFJLFdBQVcsQ0FBQyxLQUFLLEVBQUU7WUFDMUIsWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM3QyxJQUFJLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBQztTQUMxQjthQUNJLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRTtZQUM3QixZQUFZLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ2hELElBQUksR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDO1NBQzdCO1FBRUQsT0FBTztZQUNMLFlBQVksRUFBRSxZQUFZO1lBQzFCLElBQUksRUFBRSxJQUFJO1NBQ1gsQ0FBQTtJQUNILENBQUM7SUFFRDs7O09BR0c7SUFDSyxRQUFRLENBQUMsSUFBZ0I7UUFDL0IsSUFBSSxXQUFXLEdBQWU7WUFDNUIsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDaEMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDeEMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7WUFDdEMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUU7U0FDdkMsQ0FBQTtRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7K0dBeERVLGFBQWE7bUhBQWIsYUFBYSxjQUZaLE1BQU07OzRGQUVQLGFBQWE7a0JBSHpCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBdmF0YXJVc2VyIH0gZnJvbSAnLi9hdmF0YXIuY29tcG9uZW50JztcclxuXHJcbmV4cG9ydCB0eXBlIEF2YXRhckxhYmVscyA9IHtcclxuICBhYmJyZXZpYXRpb246IHN0cmluZztcclxuICBmdWxsOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF2YXRhclNlcnZpY2Uge1xyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gdGhlIGZ1bGwgYW5kIGFiYnJldmlhdGVkIGxhYmVscyBiYXNlZCBvbiB0aGUgdXNlcnMgZmlyc3QgbmFtZSwgZW1haWwsIG9yIHVzZXJuYW1lLiBJZiB0aGUgdXNlciBoYXMgYSBmaXJzdCBvciBsYXN0IG5hbWUgdXNlIFxyXG4gICAqIGVpdGhlciBhIGNvbWJpbmF0aW9uIG9mIHRoZSBmaXJzdCBhbmQgbGFzdCBuYW1lLCBvciB0aGUgZmlyc3QgdHdvIGNoYXJhY3RlcnMgb2YgdGhlIG5hbWUgdGhhdCBpcyBkZWZpbmVkLiBJZiB0aGUgdXNlciBkb2VzXHJcbiAgICogbm90IGhhdmUgYSBmaXJzdCBvciBsYXN0IG5hbWUsIHRyeWluZyB1c2luZyB0aGUgZmlyc3QgdHdvIGNoYXJhY3RlcnMgb2YgdGhlIGVtYWlsLCBvciB0aGUgZmlyc3QgdHdvIGNoYXJhY3RlcnMgb2YgdGhlIFxyXG4gICAqIHVzZXJuYW1lIGFzIGEgbGFzdCBkaXRjaCBlZmZvcnQuXHJcbiAgICogQHBhcmFtIHVzZXIgXHJcbiAgICogQHJldHVybnMgXHJcbiAgICovXHJcbiAgcHVibGljIGdldEF2YXRhckxhYmVscyh1c2VyOiBBdmF0YXJVc2VyKTogQXZhdGFyTGFiZWxzIHtcclxuICAgIGxldCBmdWxsOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XHJcbiAgICBsZXQgYWJicmV2aWF0aW9uOiBzdHJpbmcgPSAnSEknO1xyXG5cclxuICAgIGxldCB0cmltbWVkVXNlciA9IHRoaXMudHJpbVVzZXIodXNlcik7XHJcbiAgICBpZiAodHJpbW1lZFVzZXIuZmlyc3ROYW1lIHx8IHRyaW1tZWRVc2VyLmxhc3ROYW1lKSB7XHJcbiAgICAgIGlmICh0cmltbWVkVXNlci5maXJzdE5hbWUpIHtcclxuICAgICAgICBhYmJyZXZpYXRpb24gPSB0cmltbWVkVXNlci5maXJzdE5hbWUuc2xpY2UoMCwgMSk7XHJcbiAgICAgICAgZnVsbCA9IHRyaW1tZWRVc2VyLmZpcnN0TmFtZTtcclxuXHJcbiAgICAgICAgaWYgKHRyaW1tZWRVc2VyLmxhc3ROYW1lKSB7XHJcbiAgICAgICAgICBmdWxsICs9IGAgJHt0cmltbWVkVXNlci5sYXN0TmFtZX1gO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICBhYmJyZXZpYXRpb24gPSB0cmltbWVkVXNlci5sYXN0TmFtZSEuc2xpY2UoMCwgMSk7XHJcbiAgICAgICAgZnVsbCA9IHRyaW1tZWRVc2VyLmxhc3ROYW1lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0cmltbWVkVXNlci5lbWFpbCkge1xyXG4gICAgICBhYmJyZXZpYXRpb24gPSB0cmltbWVkVXNlci5lbWFpbC5zbGljZSgwLCAxKTtcclxuICAgICAgZnVsbCA9IHRyaW1tZWRVc2VyLmVtYWlsO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodHJpbW1lZFVzZXIudXNlcm5hbWUpIHtcclxuICAgICAgYWJicmV2aWF0aW9uID0gdHJpbW1lZFVzZXIudXNlcm5hbWUuc2xpY2UoMCwgMSk7XHJcbiAgICAgIGZ1bGwgPSB0cmltbWVkVXNlci51c2VybmFtZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBhYmJyZXZpYXRpb246IGFiYnJldmlhdGlvbixcclxuICAgICAgZnVsbDogZnVsbFxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFxyXG4gICAqIFJldHVybiBhIG5ldyB1c2VyIG9iamVjdCB0aGF0IGhhcyBhbGwgb2YgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGV4aXN0aW5nIHVzZXJcclxuICAgKiB3aXRoIGFueSBudWxsLCB1bmRlZmluZWQsIG9yIHdoaXRlc3BhY2UgdmFsdWVzIHJlbW92ZWRcclxuICAgKi9cclxuICBwcml2YXRlIHRyaW1Vc2VyKHVzZXI6IEF2YXRhclVzZXIpOiBBdmF0YXJVc2VyIHtcclxuICAgIGxldCB0cmltbWVkVXNlcjogQXZhdGFyVXNlciA9IHtcclxuICAgICAgZW1haWw6ICh1c2VyLmVtYWlsIHx8ICcnKS50cmltKCksXHJcbiAgICAgIGZpcnN0TmFtZTogKHVzZXIuZmlyc3ROYW1lIHx8ICcnKS50cmltKCksXHJcbiAgICAgIGxhc3ROYW1lOiAodXNlci5sYXN0TmFtZSB8fCAnJykudHJpbSgpLFxyXG4gICAgICB1c2VybmFtZTogKHVzZXIudXNlcm5hbWUgfHwgJycpLnRyaW0oKVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRyaW1tZWRVc2VyO1xyXG4gIH1cclxufVxyXG4iXX0=
|