@energycap/components 0.31.5 → 0.32.0
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/energycap-components.min.css +2 -2
- package/energycap-email.min.css +1 -1
- package/esm2020/energycap-components.mjs +5 -0
- package/esm2020/lib/components.module.mjs +386 -0
- package/esm2020/lib/controls/banner/banner.component.mjs +106 -0
- package/esm2020/lib/controls/button/button.component.mjs +106 -0
- package/esm2020/lib/controls/button/copy-button.directive.mjs +65 -0
- package/esm2020/lib/controls/checkbox/checkbox.component.mjs +139 -0
- package/esm2020/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +38 -0
- package/esm2020/lib/controls/combobox/combobox.component.mjs +841 -0
- package/esm2020/lib/controls/dropdown/dropdown.component.mjs +237 -0
- package/esm2020/lib/controls/file-upload/file-upload.component.mjs +169 -0
- package/esm2020/lib/controls/form-control/form-control.component.mjs +86 -0
- package/esm2020/lib/controls/form-control-base.mjs +143 -0
- package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +136 -0
- package/esm2020/lib/controls/form-group/form-group.component.mjs +252 -0
- package/esm2020/lib/controls/help-popover/help-popover.component.mjs +28 -0
- package/esm2020/lib/controls/item-picker/item-picker.component.mjs +233 -0
- package/esm2020/lib/controls/link-button/link-button.component.mjs +11 -0
- package/esm2020/lib/controls/menu/menu.component.mjs +443 -0
- package/{esm2015/lib/controls/navigation/link-item.js → esm2020/lib/controls/navigation/link-item.mjs} +0 -0
- package/{esm2015/lib/controls/navigation/nav-group.js → esm2020/lib/controls/navigation/nav-group.mjs} +0 -0
- package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +92 -0
- package/{esm2015/lib/controls/navigation/nav-item.js → esm2020/lib/controls/navigation/nav-item.mjs} +0 -0
- package/esm2020/lib/controls/numericbox/numericbox.component.mjs +371 -0
- package/esm2020/lib/controls/popover/popover.component.mjs +84 -0
- package/{esm2015/lib/controls/radio-button/radio-button-option.js → esm2020/lib/controls/radio-button/radio-button-option.mjs} +0 -0
- package/esm2020/lib/controls/radio-button/radio-button.component.mjs +81 -0
- package/esm2020/lib/controls/select/select.component.mjs +87 -0
- package/esm2020/lib/controls/tabs/tabs.component.mjs +47 -0
- package/esm2020/lib/controls/textbox/textbox.component.mjs +154 -0
- package/{esm2015/lib/core/cache.service.js → esm2020/lib/core/cache.service.mjs} +9 -8
- package/{esm2015/lib/core/custom-validators.js → esm2020/lib/core/custom-validators.mjs} +0 -0
- package/{esm2015/lib/core/date-time-helper.js → esm2020/lib/core/date-time-helper.mjs} +0 -0
- package/esm2020/lib/core/error.service.mjs +57 -0
- package/esm2020/lib/core/scroll.service.mjs +89 -0
- package/esm2020/lib/core/telemetry-tracker.service.mjs +16 -0
- package/esm2020/lib/core/telemetry.service.mjs +38 -0
- package/esm2020/lib/core/validation-message.service.mjs +181 -0
- package/{esm2015/lib/core/validation-patterns.js → esm2020/lib/core/validation-patterns.mjs} +0 -0
- package/esm2020/lib/core/window.service.mjs +182 -0
- package/esm2020/lib/display/app-bar/app-bar.component.mjs +46 -0
- package/esm2020/lib/display/avatar/avatar.component.mjs +67 -0
- package/{esm2015/lib/display/avatar/avatar.service.js → esm2020/lib/display/avatar/avatar.service.mjs} +9 -7
- package/esm2020/lib/display/confirm/confirm.component.mjs +131 -0
- package/{esm2015/lib/display/dialog/dialog-content.js → esm2020/lib/display/dialog/dialog-content.mjs} +0 -0
- package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +63 -0
- package/{esm2015/lib/display/dialog/dialog-types.js → esm2020/lib/display/dialog/dialog-types.mjs} +0 -0
- package/esm2020/lib/display/dialog/dialog.component.mjs +242 -0
- package/esm2020/lib/display/dialog/dialog.service.mjs +71 -0
- package/{esm2015/lib/display/help/help-types.js → esm2020/lib/display/help/help-types.mjs} +0 -0
- package/esm2020/lib/display/hierarchy/hierarchy-base.mjs +106 -0
- package/{esm2015/lib/display/hierarchy/hierarchy-mocks.spec.js → esm2020/lib/display/hierarchy/hierarchy-mocks.spec.mjs} +5 -9
- package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +59 -0
- package/esm2020/lib/display/item-display/item-display.component.mjs +67 -0
- package/esm2020/lib/display/json-display/json-display.component.mjs +47 -0
- package/esm2020/lib/display/resizable/resizable-base.mjs +120 -0
- package/esm2020/lib/display/resizable/resizable.component.mjs +57 -0
- package/esm2020/lib/display/spinner/spinner.component.mjs +12 -0
- package/esm2020/lib/display/splash/splash.component.mjs +42 -0
- package/esm2020/lib/display/splash/splash.service.mjs +35 -0
- package/esm2020/lib/display/table/resizable-column.component.mjs +20 -0
- package/esm2020/lib/display/table/resizable-table.directive.mjs +227 -0
- package/esm2020/lib/display/table/searchable-table.component.mjs +338 -0
- package/esm2020/lib/display/table/table-detail-row.component.mjs +27 -0
- package/esm2020/lib/display/table/table-locked-column.component.mjs +58 -0
- package/esm2020/lib/display/table/table-master-header-row.component.mjs +11 -0
- package/esm2020/lib/display/table/table-master-row.component.mjs +150 -0
- package/esm2020/lib/display/table/table-pagination.component.mjs +150 -0
- package/esm2020/lib/display/table/table-selectable-row.component.mjs +235 -0
- package/esm2020/lib/display/table/table.component.mjs +244 -0
- package/esm2020/lib/display/tags/tag.mjs +15 -0
- package/esm2020/lib/display/tags/tags.component.mjs +77 -0
- package/esm2020/lib/display/toast/toast/toast.component.mjs +77 -0
- package/{esm2015/lib/display/toast/toast-types.js → esm2020/lib/display/toast/toast-types.mjs} +0 -0
- package/esm2020/lib/display/toast/toast.service.mjs +35 -0
- package/esm2020/lib/display/toast/toaster/toaster.component.mjs +114 -0
- package/esm2020/lib/display/tooltip/tooltip.component.mjs +25 -0
- package/esm2020/lib/display/tooltip/tooltip.service.mjs +63 -0
- package/esm2020/lib/display/tree/tree.component.mjs +125 -0
- package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +58 -0
- package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +32 -0
- package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +111 -0
- package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +163 -0
- package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +50 -0
- package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +30 -0
- package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +48 -0
- package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +48 -0
- package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +41 -0
- package/{esm2015/lib/shared/display.js → esm2020/lib/shared/display.mjs} +0 -0
- package/esm2020/lib/shared/form-group.helper.mjs +67 -0
- package/{esm2015/lib/shared/json-helper.js → esm2020/lib/shared/json-helper.mjs} +0 -0
- package/{esm2015/lib/shared/lodash-helper.js → esm2020/lib/shared/lodash-helper.mjs} +0 -0
- package/esm2020/lib/shared/page/page-base/page-base.component.mjs +339 -0
- package/{esm2015/lib/shared/page/page-statuses.js → esm2020/lib/shared/page/page-statuses.mjs} +0 -0
- package/esm2020/lib/shared/page/page-title/page-title.component.mjs +23 -0
- package/esm2020/lib/shared/page/page-view/page-view.component.mjs +121 -0
- package/{esm2015/lib/shared/testing/hierarchy-base-test-injector-factory.spec.js → esm2020/lib/shared/testing/hierarchy-base-test-injector-factory.spec.mjs} +0 -0
- package/esm2020/lib/shared/testing/page-base-component-test-helper.spec.mjs +30 -0
- package/{esm2015/lib/shared/testing/page-base-component-test-injector-factory.spec.js → esm2020/lib/shared/testing/page-base-component-test-injector-factory.spec.mjs} +0 -0
- package/esm2020/lib/shared/testing/public-mocks.spec.mjs +132 -0
- package/{esm2015/lib/shared/testing/spy-factory.spec.js → esm2020/lib/shared/testing/spy-factory.spec.mjs} +0 -0
- package/{esm2015/lib/shared/testing/translation-mocks.spec.js → esm2020/lib/shared/testing/translation-mocks.spec.mjs} +0 -0
- package/esm2020/lib/shared/user-preference.service.mjs +17 -0
- package/esm2020/lib/shared/wizard/wizard-base/wizard-base.component.mjs +246 -0
- package/esm2020/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +68 -0
- package/esm2020/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +18 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/fesm2015/energycap-components.mjs +10090 -0
- package/fesm2015/energycap-components.mjs.map +1 -0
- package/fesm2020/energycap-components.mjs +9999 -0
- package/fesm2020/energycap-components.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/components.module.d.ts +72 -0
- package/lib/controls/banner/banner.component.d.ts +3 -0
- package/lib/controls/button/button.component.d.ts +3 -0
- package/lib/controls/button/copy-button.directive.d.ts +3 -0
- package/lib/controls/checkbox/checkbox.component.d.ts +3 -0
- package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +3 -0
- package/lib/controls/combobox/combobox.component.d.ts +5 -2
- package/lib/controls/dropdown/dropdown.component.d.ts +3 -0
- package/lib/controls/file-upload/file-upload.component.d.ts +5 -2
- package/lib/controls/form-control/form-control.component.d.ts +3 -0
- package/lib/controls/form-control-base.d.ts +3 -0
- package/lib/controls/form-control-label/form-control-label.component.d.ts +3 -0
- package/lib/controls/form-group/form-group.component.d.ts +6 -3
- package/lib/controls/help-popover/help-popover.component.d.ts +3 -0
- package/lib/controls/item-picker/item-picker.component.d.ts +5 -2
- package/lib/controls/link-button/link-button.component.d.ts +3 -0
- package/lib/controls/menu/menu.component.d.ts +3 -0
- package/lib/controls/navigation/nav-item-active.directive.d.ts +3 -0
- package/lib/controls/numericbox/numericbox.component.d.ts +5 -2
- package/lib/controls/popover/popover.component.d.ts +3 -0
- package/lib/controls/radio-button/radio-button.component.d.ts +3 -0
- package/lib/controls/select/select.component.d.ts +3 -0
- package/lib/controls/tabs/tabs.component.d.ts +3 -0
- package/lib/controls/textbox/textbox.component.d.ts +3 -0
- package/lib/core/cache.service.d.ts +3 -0
- package/lib/core/error.service.d.ts +3 -0
- package/lib/core/scroll.service.d.ts +3 -0
- package/lib/core/telemetry-tracker.service.d.ts +3 -0
- package/lib/core/telemetry.service.d.ts +3 -0
- package/lib/core/validation-message.service.d.ts +3 -0
- package/lib/core/window.service.d.ts +3 -0
- package/lib/display/app-bar/app-bar.component.d.ts +3 -0
- package/lib/display/avatar/avatar.component.d.ts +3 -0
- package/lib/display/avatar/avatar.service.d.ts +3 -0
- package/lib/display/confirm/confirm.component.d.ts +5 -2
- package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +3 -0
- package/lib/display/dialog/dialog.component.d.ts +3 -0
- package/lib/display/dialog/dialog.service.d.ts +3 -0
- package/lib/display/hierarchy/hierarchy-base.d.ts +3 -0
- package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +3 -0
- package/lib/display/item-display/item-display.component.d.ts +3 -0
- package/lib/display/json-display/json-display.component.d.ts +5 -2
- package/lib/display/resizable/resizable-base.d.ts +3 -0
- package/lib/display/resizable/resizable.component.d.ts +3 -0
- package/lib/display/spinner/spinner.component.d.ts +3 -0
- package/lib/display/splash/splash.component.d.ts +3 -0
- package/lib/display/splash/splash.service.d.ts +3 -0
- package/lib/display/table/resizable-column.component.d.ts +3 -0
- package/lib/display/table/resizable-table.directive.d.ts +3 -0
- package/lib/display/table/searchable-table.component.d.ts +6 -3
- package/lib/display/table/table-detail-row.component.d.ts +3 -0
- package/lib/display/table/table-locked-column.component.d.ts +3 -0
- package/lib/display/table/table-master-header-row.component.d.ts +3 -0
- package/lib/display/table/table-master-row.component.d.ts +3 -0
- package/lib/display/table/table-pagination.component.d.ts +3 -0
- package/lib/display/table/table-selectable-row.component.d.ts +5 -2
- package/lib/display/table/table.component.d.ts +3 -0
- package/lib/display/tags/tags.component.d.ts +3 -0
- package/lib/display/toast/toast/toast.component.d.ts +3 -0
- package/lib/display/toast/toast.service.d.ts +3 -0
- package/lib/display/toast/toaster/toaster.component.d.ts +3 -0
- package/lib/display/tooltip/tooltip.component.d.ts +3 -0
- package/lib/display/tooltip/tooltip.service.d.ts +3 -0
- package/lib/display/tree/tree.component.d.ts +3 -0
- package/lib/display/view-overlay/view-overlay.component.d.ts +3 -0
- package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +3 -0
- package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +3 -0
- package/lib/shared/directives/popup/popup-container.directive.d.ts +3 -0
- package/lib/shared/display/pipes/date-display.pipe.d.ts +3 -0
- package/lib/shared/display/pipes/highlight-text.pipe.d.ts +3 -0
- package/lib/shared/display/pipes/relative-date.pipe.d.ts +3 -0
- package/lib/shared/display/pipes/row-count.pipe.d.ts +3 -0
- package/lib/shared/display/pipes/time-display.pipe.d.ts +3 -0
- package/lib/shared/form-group.helper.d.ts +5 -2
- package/lib/shared/page/page-base/page-base.component.d.ts +5 -2
- package/lib/shared/page/page-title/page-title.component.d.ts +3 -0
- package/lib/shared/page/page-view/page-view.component.d.ts +3 -0
- package/lib/shared/testing/public-mocks.spec.d.ts +7 -0
- package/lib/shared/user-preference.service.d.ts +3 -0
- package/lib/shared/wizard/wizard-base/wizard-base.component.d.ts +3 -0
- package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +3 -0
- package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +3 -0
- package/package.json +27 -15
- package/src/styles/_functions.scss +6 -4
- package/src/styles/_icons.scss +1 -1
- package/src/styles/mixins/_control-base.scss +2 -2
- package/src/styles/mixins/_form-control-base.scss +3 -1
- package/src/styles/mixins/_spinner-base.scss +3 -1
- package/bundles/energycap-components.umd.js +0 -10646
- package/bundles/energycap-components.umd.js.map +0 -1
- package/bundles/energycap-components.umd.min.js +0 -17
- package/bundles/energycap-components.umd.min.js.map +0 -1
- package/energycap-components.d.ts +0 -7
- package/energycap-components.metadata.json +0 -1
- package/esm2015/energycap-components.js +0 -8
- package/esm2015/lib/components.module.js +0 -238
- package/esm2015/lib/controls/banner/banner.component.js +0 -94
- package/esm2015/lib/controls/button/button.component.js +0 -89
- package/esm2015/lib/controls/button/copy-button.directive.js +0 -63
- package/esm2015/lib/controls/checkbox/checkbox.component.js +0 -137
- package/esm2015/lib/controls/collapsible-toggle/collapsible-toggle.component.js +0 -35
- package/esm2015/lib/controls/combobox/combobox.component.js +0 -819
- package/esm2015/lib/controls/dropdown/dropdown.component.js +0 -207
- package/esm2015/lib/controls/file-upload/file-upload.component.js +0 -172
- package/esm2015/lib/controls/form-control/form-control.component.js +0 -65
- package/esm2015/lib/controls/form-control-base.js +0 -140
- package/esm2015/lib/controls/form-control-label/form-control-label.component.js +0 -139
- package/esm2015/lib/controls/form-group/form-group.component.js +0 -254
- package/esm2015/lib/controls/help-popover/help-popover.component.js +0 -22
- package/esm2015/lib/controls/item-picker/item-picker.component.js +0 -216
- package/esm2015/lib/controls/link-button/link-button.component.js +0 -12
- package/esm2015/lib/controls/menu/menu.component.js +0 -424
- package/esm2015/lib/controls/navigation/nav-item-active.directive.js +0 -86
- package/esm2015/lib/controls/numericbox/numericbox.component.js +0 -362
- package/esm2015/lib/controls/popover/popover.component.js +0 -85
- package/esm2015/lib/controls/radio-button/radio-button.component.js +0 -78
- package/esm2015/lib/controls/select/select.component.js +0 -89
- package/esm2015/lib/controls/tabs/tabs.component.js +0 -42
- package/esm2015/lib/controls/textbox/textbox.component.js +0 -149
- package/esm2015/lib/core/error.service.js +0 -56
- package/esm2015/lib/core/scroll.service.js +0 -88
- package/esm2015/lib/core/telemetry-tracker.service.js +0 -14
- package/esm2015/lib/core/telemetry.service.js +0 -40
- package/esm2015/lib/core/validation-message.service.js +0 -185
- package/esm2015/lib/core/window.service.js +0 -191
- package/esm2015/lib/display/app-bar/app-bar.component.js +0 -42
- package/esm2015/lib/display/avatar/avatar.component.js +0 -73
- package/esm2015/lib/display/confirm/confirm.component.js +0 -127
- package/esm2015/lib/display/dialog/dialog-group/dialog-group.component.js +0 -65
- package/esm2015/lib/display/dialog/dialog.component.js +0 -229
- package/esm2015/lib/display/dialog/dialog.service.js +0 -69
- package/esm2015/lib/display/hierarchy/hierarchy-base.js +0 -106
- package/esm2015/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.js +0 -58
- package/esm2015/lib/display/item-display/item-display.component.js +0 -57
- package/esm2015/lib/display/json-display/json-display.component.js +0 -44
- package/esm2015/lib/display/resizable/resizable-base.js +0 -119
- package/esm2015/lib/display/resizable/resizable.component.js +0 -57
- package/esm2015/lib/display/spinner/spinner.component.js +0 -12
- package/esm2015/lib/display/splash/splash.component.js +0 -45
- package/esm2015/lib/display/splash/splash.service.js +0 -34
- package/esm2015/lib/display/table/resizable-column.component.js +0 -23
- package/esm2015/lib/display/table/resizable-table.directive.js +0 -223
- package/esm2015/lib/display/table/searchable-table.component.js +0 -303
- package/esm2015/lib/display/table/table-detail-row.component.js +0 -21
- package/esm2015/lib/display/table/table-locked-column.component.js +0 -53
- package/esm2015/lib/display/table/table-master-header-row.component.js +0 -11
- package/esm2015/lib/display/table/table-master-row.component.js +0 -141
- package/esm2015/lib/display/table/table-pagination.component.js +0 -146
- package/esm2015/lib/display/table/table-selectable-row.component.js +0 -216
- package/esm2015/lib/display/table/table.component.js +0 -210
- package/esm2015/lib/display/tags/tag.js +0 -15
- package/esm2015/lib/display/tags/tags.component.js +0 -73
- package/esm2015/lib/display/toast/toast/toast.component.js +0 -70
- package/esm2015/lib/display/toast/toast.service.js +0 -34
- package/esm2015/lib/display/toast/toaster/toaster.component.js +0 -117
- package/esm2015/lib/display/tooltip/tooltip.component.js +0 -24
- package/esm2015/lib/display/tooltip/tooltip.service.js +0 -64
- package/esm2015/lib/display/tree/tree.component.js +0 -100
- package/esm2015/lib/display/view-overlay/view-overlay.component.js +0 -50
- package/esm2015/lib/shared/directives/click-area-for/click-area-for.directive.js +0 -25
- package/esm2015/lib/shared/directives/if-viewport-width/if-viewport-width.directive.js +0 -112
- package/esm2015/lib/shared/directives/popup/popup-container.directive.js +0 -160
- package/esm2015/lib/shared/display/pipes/date-display.pipe.js +0 -49
- package/esm2015/lib/shared/display/pipes/highlight-text.pipe.js +0 -26
- package/esm2015/lib/shared/display/pipes/relative-date.pipe.js +0 -49
- package/esm2015/lib/shared/display/pipes/row-count.pipe.js +0 -47
- package/esm2015/lib/shared/display/pipes/time-display.pipe.js +0 -40
- package/esm2015/lib/shared/form-group.helper.js +0 -65
- package/esm2015/lib/shared/page/page-base/page-base.component.js +0 -356
- package/esm2015/lib/shared/page/page-title/page-title.component.js +0 -19
- package/esm2015/lib/shared/page/page-view/page-view.component.js +0 -94
- package/esm2015/lib/shared/testing/page-base-component-test-helper.spec.js +0 -35
- package/esm2015/lib/shared/testing/public-mocks.spec.js +0 -126
- package/esm2015/lib/shared/user-preference.service.js +0 -15
- package/esm2015/lib/shared/wizard/wizard-base/wizard-base.component.js +0 -260
- package/esm2015/lib/shared/wizard/wizard-buttons/wizard-buttons.component.js +0 -54
- package/esm2015/lib/shared/wizard/wizard-progress/wizard-progress.component.js +0 -18
- package/fesm2015/energycap-components.js +0 -9638
- package/fesm2015/energycap-components.js.map +0 -1
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
import { Component, Input, HostBinding } from "@angular/core";
|
|
2
|
+
import { UntypedFormGroup, UntypedFormArray, UntypedFormControl } from "@angular/forms";
|
|
3
|
+
import { cloneDeep } from "lodash";
|
|
4
|
+
import { Subject } from "rxjs";
|
|
5
|
+
import { takeUntil } from "rxjs/operators";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../../core/validation-message.service";
|
|
8
|
+
import * as i2 from "@ngx-translate/core";
|
|
9
|
+
import * as i3 from "@angular/common";
|
|
10
|
+
/** Function to iterate over form controls and
|
|
11
|
+
* ensure they contain unique values. If any are duplicated all offending
|
|
12
|
+
* form controls will be marked as invalid
|
|
13
|
+
*
|
|
14
|
+
* @param valueProperty - the sub-property of the object represented by each form control
|
|
15
|
+
* it is dereferenced as formGroup.control.value[valueProperty].
|
|
16
|
+
* defaults to "value", which matches the form controls used to back comboboxes
|
|
17
|
+
* if explicitly null, this function assumes value is not a complex object and just extracts
|
|
18
|
+
* formGroup.control.value
|
|
19
|
+
*/
|
|
20
|
+
export const validateFormGroupValuesAreUnique = (fg, valueProperty = "value", subProperty) => {
|
|
21
|
+
let formControlValues = {};
|
|
22
|
+
// First get all of the values and if they have been found already,
|
|
23
|
+
// increment the number of times found
|
|
24
|
+
forEachFormControl(fg, (control) => {
|
|
25
|
+
let controlValue = getControlValue(control, valueProperty, subProperty);
|
|
26
|
+
if (controlValue !== null && controlValue !== '') {
|
|
27
|
+
if (typeof controlValue === 'string') {
|
|
28
|
+
controlValue = controlValue.toLowerCase();
|
|
29
|
+
}
|
|
30
|
+
if (formControlValues.hasOwnProperty(controlValue)) {
|
|
31
|
+
formControlValues[controlValue] = formControlValues[controlValue] + 1;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
formControlValues[controlValue] = 1;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
// Now go back over the controls and if their value was found more than once flag them as invalid
|
|
39
|
+
forEachFormControl(fg, (control) => {
|
|
40
|
+
let controlValue = getControlValue(control, valueProperty, subProperty);
|
|
41
|
+
// If the control value is null we will let any required validators handle them
|
|
42
|
+
if (controlValue !== null && controlValue !== '') {
|
|
43
|
+
if (typeof controlValue === 'string') {
|
|
44
|
+
controlValue = controlValue.toLowerCase();
|
|
45
|
+
}
|
|
46
|
+
if (formControlValues[controlValue] > 1) {
|
|
47
|
+
control.setErrors(Object.assign({ notUnique: true }, control.errors));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
// Get a copy of the existing form control errors, if any
|
|
51
|
+
let errors = cloneDeep(control.errors);
|
|
52
|
+
// If there are errors and previously had the notUnique error we want to remove
|
|
53
|
+
// that property
|
|
54
|
+
if (errors && errors.hasOwnProperty("notUnique")) {
|
|
55
|
+
delete errors.notUnique;
|
|
56
|
+
}
|
|
57
|
+
// If that was the only error in the object, set to null so validation passes
|
|
58
|
+
if (errors && Object.keys(errors).length === 0) {
|
|
59
|
+
errors = null;
|
|
60
|
+
}
|
|
61
|
+
control.setErrors(errors);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
};
|
|
66
|
+
/**
|
|
67
|
+
* Function to iterate over for controls and invoke the callback function when they are found.
|
|
68
|
+
* Recursively calls itself when it encounters sub form groups and iterates over form arrays.
|
|
69
|
+
* @param c
|
|
70
|
+
* @param callback
|
|
71
|
+
*/
|
|
72
|
+
export const forEachFormControl = (c, callback) => {
|
|
73
|
+
let controls = [];
|
|
74
|
+
// Normalize to an array for ease of processing
|
|
75
|
+
if (c instanceof UntypedFormControl) {
|
|
76
|
+
controls.push(c);
|
|
77
|
+
}
|
|
78
|
+
else if (c instanceof UntypedFormGroup) {
|
|
79
|
+
for (var key in c.controls) {
|
|
80
|
+
controls.push(c.controls[key]);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else if (c instanceof UntypedFormArray) {
|
|
84
|
+
controls = c.controls;
|
|
85
|
+
}
|
|
86
|
+
controls.forEach(control => {
|
|
87
|
+
if (control instanceof UntypedFormArray) {
|
|
88
|
+
control.controls.forEach(ctrl => {
|
|
89
|
+
if (ctrl instanceof UntypedFormGroup || ctrl instanceof UntypedFormArray) {
|
|
90
|
+
forEachFormControl(ctrl, callback);
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
callback(ctrl);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
else if (control instanceof UntypedFormGroup) {
|
|
98
|
+
forEachFormControl(control, callback);
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
callback(control);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Function to return the value if it is enabled and set
|
|
107
|
+
* @param control
|
|
108
|
+
*/
|
|
109
|
+
export const getControlValue = (control, valueProperty = "value", subProperty) => {
|
|
110
|
+
if (control.enabled && (control.value !== null && control.value !== undefined)) {
|
|
111
|
+
if (valueProperty === null) {
|
|
112
|
+
return control.value;
|
|
113
|
+
}
|
|
114
|
+
else if (subProperty) {
|
|
115
|
+
return control.value[valueProperty][subProperty];
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
return control.value[valueProperty];
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
return null;
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
export class FormGroupComponent {
|
|
126
|
+
constructor(validationMessageService, translateService) {
|
|
127
|
+
this.validationMessageService = validationMessageService;
|
|
128
|
+
this.translateService = translateService;
|
|
129
|
+
/**
|
|
130
|
+
* The form control label
|
|
131
|
+
*/
|
|
132
|
+
this.label = '';
|
|
133
|
+
/**
|
|
134
|
+
* The position of the form control label (top|bottom|left)
|
|
135
|
+
*/
|
|
136
|
+
this.labelPosition = "top";
|
|
137
|
+
/**An optional string to show if any of the underlying controls has an error. If falsy, one of the
|
|
138
|
+
* errors from the underlying controls will be used.
|
|
139
|
+
*/
|
|
140
|
+
this.overrideValidationError = "";
|
|
141
|
+
/**An optional flag to hide the validation messages.
|
|
142
|
+
*/
|
|
143
|
+
this.hideValidationMessage = false;
|
|
144
|
+
/**
|
|
145
|
+
* All current validation errors
|
|
146
|
+
*
|
|
147
|
+
* @type {string}
|
|
148
|
+
* @memberof FormControlBase
|
|
149
|
+
*/
|
|
150
|
+
this.validationErrors = "";
|
|
151
|
+
this.allControlsTouched = false;
|
|
152
|
+
this.componentDestroyed = new Subject();
|
|
153
|
+
}
|
|
154
|
+
async ngOnInit() {
|
|
155
|
+
// subscribe to statusChanges Observable to take any errors and translate them
|
|
156
|
+
if (this.formGroup) {
|
|
157
|
+
this.formGroup.statusChanges
|
|
158
|
+
.pipe(takeUntil(this.componentDestroyed))
|
|
159
|
+
.subscribe(() => {
|
|
160
|
+
this.translateValidationMessages(this.getErrors(this.formGroup));
|
|
161
|
+
});
|
|
162
|
+
// (re)set validation messages
|
|
163
|
+
this.translateValidationMessages(this.getErrors(this.formGroup));
|
|
164
|
+
}
|
|
165
|
+
if (this.id) {
|
|
166
|
+
this.attrId = this.id;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* Angular onDestroy lifecyle hook.
|
|
171
|
+
* Unsubscribe from any observables
|
|
172
|
+
*
|
|
173
|
+
* @see https://angular.io/guide/lifecycle-hooks
|
|
174
|
+
* @memberof FormControlBase
|
|
175
|
+
*/
|
|
176
|
+
ngOnDestroy() {
|
|
177
|
+
this.componentDestroyed.next();
|
|
178
|
+
this.componentDestroyed.unsubscribe();
|
|
179
|
+
}
|
|
180
|
+
getErrors(formGroup) {
|
|
181
|
+
formGroup.markAsUntouched();
|
|
182
|
+
let errors = null;
|
|
183
|
+
let allTouched = true;
|
|
184
|
+
let controlFound = false;
|
|
185
|
+
forEachFormControl(formGroup, (control) => {
|
|
186
|
+
errors = this.assignErrors(control, errors);
|
|
187
|
+
if (control.untouched) {
|
|
188
|
+
allTouched = false;
|
|
189
|
+
}
|
|
190
|
+
controlFound = true;
|
|
191
|
+
});
|
|
192
|
+
if (formGroup.errors) {
|
|
193
|
+
errors = Object.assign(errors || {}, formGroup.errors);
|
|
194
|
+
}
|
|
195
|
+
if (allTouched && controlFound) {
|
|
196
|
+
formGroup.markAsTouched();
|
|
197
|
+
}
|
|
198
|
+
return errors;
|
|
199
|
+
}
|
|
200
|
+
assignErrors(control, errors) {
|
|
201
|
+
if (control.errors) {
|
|
202
|
+
errors = Object.assign(errors || {}, control.errors);
|
|
203
|
+
}
|
|
204
|
+
return errors;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Function that subscribes to the formGroup's valueChanges Observable
|
|
208
|
+
* to take any erros and translate them
|
|
209
|
+
*
|
|
210
|
+
* @param {*} [data]
|
|
211
|
+
* @returns
|
|
212
|
+
* @memberof FormControlBase
|
|
213
|
+
*/
|
|
214
|
+
async translateValidationMessages(errors) {
|
|
215
|
+
if (errors) {
|
|
216
|
+
if (this.overrideValidationError) {
|
|
217
|
+
this.validationErrors = this.translateService.instant(this.overrideValidationError);
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
let messages = await this.validationMessageService.getErrorMessages(errors);
|
|
221
|
+
if (messages) {
|
|
222
|
+
this.validationErrors = messages.join('; ');
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
else {
|
|
227
|
+
this.validationErrors = '';
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
FormGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FormGroupComponent, deps: [{ token: i1.ValidationMessageService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
232
|
+
FormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: FormGroupComponent, selector: "ec-form-group", inputs: { id: "id", label: "label", formGroup: "formGroup", labelPosition: "labelPosition", overrideValidationError: "overrideValidationError", hideValidationMessage: "hideValidationMessage" }, host: { properties: { "attr.id": "this.attrId" } }, ngImport: i0, template: "<div class=\"control control-label-{{labelPosition}}\" [class.ec-untouched]=\"formGroup?.untouched\">\r\n <label *ngIf=\"label\" ngPreserveWhitespaces>\r\n\r\n <span id=\"{{id}}_label\">{{label | translate}}</span>\r\n\r\n <span *ngIf=\"!hideValidationMessage && validationErrors && formGroup?.touched && formGroup?.invalid\">{{validationErrors | translate}}</span>\r\n </label>\r\n <ng-content></ng-content>\r\n</div>", styles: [":root{--ec-font-size-icon: 1rem;--ec-color-icon: rgba(26, 26, 35, .66)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{color:var(--ec-color-primary-dark);font-family:var(--ec-font-family);font-size:var(--ec-font-size-body);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select{border-color:transparent;background-color:#1a1a231f;background-clip:border-box;background-image:none;color:var(--ec-color-primary-dark);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-background-color-caution);background-image:url('data:image/svg+xml;charset=utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"rgba(26, 26, 35, 0.66)\" d=\"M20.21 20.21h-8.42L10.95 0h10.1l-.84 20.21zm-8.42 3.37h8.42V32h-8.42z\"/></svg>');background-repeat:no-repeat;background-position:.25rem center;background-size:1rem,1rem;padding-left:1.5rem}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:not(:focus),:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:not(:focus){border-color:var(--ec-color-caution)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-background-color-caution)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-color-caution)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-color-secondary-dark);display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{border-color:var(--ec-border-color-legacy);background-color:var(--ec-background-color);background-image:url('data:image/svg+xml;charset=utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"%23ffe433\" d=\"M31.32 21.69l-.09.18-2.48 4.35c-.36.54-.77.62-1.25.27-.12 0-.2 0-.2-.09L19.53 22v9.37a1.26 1.26 0 0 1-.72.67h-5.26c-.59 0-.83-.3-.83-.89 0-.12.15-.21.15-.27V22l-8 4.71h-.12c-.42.66-.8.21-1.16-.27L1 21.82a.82.82 0 0 1 .35-1.26l.18-.1L9 16 .87 11.47v-.09c0-.36-.39-.74-.09-1.16l2.75-4.35v-.09c0-.42.82-.54 1.29-.36l8 4.62V.89c0-.59.18-.89.77-.89h5c.65 0 .91.3.91.89V10l7.94-4.53c.48-.29.72-.21 1.08.27l2.32 4.35v.09c.66.48.45.89-.08 1.25L23 16l7.91 4.53v.09c-.04.18.53.54.41 1.07z\"/></svg>');background-repeat:no-repeat;background-position:.25rem center;background-size:1rem,1rem;padding-left:1.5rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-color-interactive);box-shadow:0 0 0 .0625rem var(--ec-color-interactive);position:relative;z-index:1}.control-label-left{display:flex}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
233
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: FormGroupComponent, decorators: [{
|
|
234
|
+
type: Component,
|
|
235
|
+
args: [{ selector: 'ec-form-group', template: "<div class=\"control control-label-{{labelPosition}}\" [class.ec-untouched]=\"formGroup?.untouched\">\r\n <label *ngIf=\"label\" ngPreserveWhitespaces>\r\n\r\n <span id=\"{{id}}_label\">{{label | translate}}</span>\r\n\r\n <span *ngIf=\"!hideValidationMessage && validationErrors && formGroup?.touched && formGroup?.invalid\">{{validationErrors | translate}}</span>\r\n </label>\r\n <ng-content></ng-content>\r\n</div>", styles: [":root{--ec-font-size-icon: 1rem;--ec-color-icon: rgba(26, 26, 35, .66)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}:host{color:var(--ec-color-primary-dark);font-family:var(--ec-font-family);font-size:var(--ec-font-size-body);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select{border-color:transparent;background-color:#1a1a231f;background-clip:border-box;background-image:none;color:var(--ec-color-primary-dark);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-background-color-caution);background-image:url('data:image/svg+xml;charset=utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"rgba(26, 26, 35, 0.66)\" d=\"M20.21 20.21h-8.42L10.95 0h10.1l-.84 20.21zm-8.42 3.37h8.42V32h-8.42z\"/></svg>');background-repeat:no-repeat;background-position:.25rem center;background-size:1rem,1rem;padding-left:1.5rem}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:not(:focus),:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:not(:focus){border-color:var(--ec-color-caution)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-background-color-caution)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-color-caution)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-color-secondary-dark);display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{border-color:var(--ec-border-color-legacy);background-color:var(--ec-background-color);background-image:url('data:image/svg+xml;charset=utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 32 32\"><path fill=\"%23ffe433\" d=\"M31.32 21.69l-.09.18-2.48 4.35c-.36.54-.77.62-1.25.27-.12 0-.2 0-.2-.09L19.53 22v9.37a1.26 1.26 0 0 1-.72.67h-5.26c-.59 0-.83-.3-.83-.89 0-.12.15-.21.15-.27V22l-8 4.71h-.12c-.42.66-.8.21-1.16-.27L1 21.82a.82.82 0 0 1 .35-1.26l.18-.1L9 16 .87 11.47v-.09c0-.36-.39-.74-.09-1.16l2.75-4.35v-.09c0-.42.82-.54 1.29-.36l8 4.62V.89c0-.59.18-.89.77-.89h5c.65 0 .91.3.91.89V10l7.94-4.53c.48-.29.72-.21 1.08.27l2.32 4.35v.09c.66.48.45.89-.08 1.25L23 16l7.91 4.53v.09c-.04.18.53.54.41 1.07z\"/></svg>');background-repeat:no-repeat;background-position:.25rem center;background-size:1rem,1rem;padding-left:1.5rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-color-interactive);box-shadow:0 0 0 .0625rem var(--ec-color-interactive);position:relative;z-index:1}.control-label-left{display:flex}\n"] }]
|
|
236
|
+
}], ctorParameters: function () { return [{ type: i1.ValidationMessageService }, { type: i2.TranslateService }]; }, propDecorators: { id: [{
|
|
237
|
+
type: Input
|
|
238
|
+
}], attrId: [{
|
|
239
|
+
type: HostBinding,
|
|
240
|
+
args: ['attr.id']
|
|
241
|
+
}], label: [{
|
|
242
|
+
type: Input
|
|
243
|
+
}], formGroup: [{
|
|
244
|
+
type: Input
|
|
245
|
+
}], labelPosition: [{
|
|
246
|
+
type: Input
|
|
247
|
+
}], overrideValidationError: [{
|
|
248
|
+
type: Input
|
|
249
|
+
}], hideValidationMessage: [{
|
|
250
|
+
type: Input
|
|
251
|
+
}] } });
|
|
252
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBbUIsa0JBQWtCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFLM0M7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsQ0FBQyxFQUF1QyxFQUFFLGdCQUErQixPQUFPLEVBQUUsV0FBb0IsRUFBUSxFQUFFO0lBQzlKLElBQUksaUJBQWlCLEdBQTRCLEVBQUUsQ0FBQztJQUVwRCxtRUFBbUU7SUFDbkUsc0NBQXNDO0lBQ3RDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQXdCLEVBQUUsRUFBRTtRQUNsRCxJQUFJLFlBQVksR0FBUSxlQUFlLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUU3RSxJQUFJLFlBQVksS0FBSyxJQUFJLElBQUksWUFBWSxLQUFLLEVBQUUsRUFBRTtZQUNoRCxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEs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Z0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM3QzthQUNGO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDOzsrR0E5SVUsa0JBQWtCO21HQUFsQixrQkFBa0IsMlNDcEkvQiw2YUFRTTsyRkQ0SE8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWU7OElBU1QsRUFBRTtzQkFBakIsS0FBSztnQkFLeUIsTUFBTTtzQkFBcEMsV0FBVzt1QkFBQyxTQUFTO2dCQUtOLEtBQUs7c0JBQXBCLEtBQUs7Z0JBU1UsU0FBUztzQkFBeEIsS0FBSztnQkFLVSxhQUFhO3NCQUE1QixLQUFLO2dCQU1VLHVCQUF1QjtzQkFBdEMsS0FBSztnQkFJVSxxQkFBcUI7c0JBQXBDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1BcnJheSwgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sTGFiZWxQb3NpdGlvbiB9IGZyb20gXCIuLi9mb3JtLWNvbnRyb2wtYmFzZVwiO1xyXG5cclxuXHJcbi8qKiBGdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgZm9ybSBjb250cm9scyBhbmRcclxuICogIGVuc3VyZSB0aGV5IGNvbnRhaW4gdW5pcXVlIHZhbHVlcy4gIElmIGFueSBhcmUgZHVwbGljYXRlZCBhbGwgb2ZmZW5kaW5nXHJcbiAqICBmb3JtIGNvbnRyb2xzIHdpbGwgYmUgbWFya2VkIGFzIGludmFsaWRcclxuICpcclxuICogQHBhcmFtIHZhbHVlUHJvcGVydHkgLSB0aGUgc3ViLXByb3BlcnR5IG9mIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgZWFjaCBmb3JtIGNvbnRyb2xcclxuICogICAgICAgIGl0IGlzIGRlcmVmZXJlbmNlZCBhcyBmb3JtR3JvdXAuY29udHJvbC52YWx1ZVt2YWx1ZVByb3BlcnR5XS5cclxuICogICAgICAgIGRlZmF1bHRzIHRvIFwidmFsdWVcIiwgd2hpY2ggbWF0Y2hlcyB0aGUgZm9ybSBjb250cm9scyB1c2VkIHRvIGJhY2sgY29tYm9ib3hlc1xyXG4gKiAgICAgICAgaWYgZXhwbGljaXRseSBudWxsLCB0aGlzIGZ1bmN0aW9uIGFzc3VtZXMgdmFsdWUgaXMgbm90IGEgY29tcGxleCBvYmplY3QgYW5kIGp1c3QgZXh0cmFjdHNcclxuICogICAgICAgIGZvcm1Hcm91cC5jb250cm9sLnZhbHVlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgdmFsaWRhdGVGb3JtR3JvdXBWYWx1ZXNBcmVVbmlxdWUgPSAoZmc6IFVudHlwZWRGb3JtR3JvdXAgfCBVbnR5cGVkRm9ybUFycmF5LCB2YWx1ZVByb3BlcnR5OiBzdHJpbmcgfCBudWxsID0gXCJ2YWx1ZVwiLCBzdWJQcm9wZXJ0eT86IHN0cmluZyk6IHZvaWQgPT4ge1xyXG4gIGxldCBmb3JtQ29udHJvbFZhbHVlczoge1trZXk6IHN0cmluZ106IG51bWJlcn0gPSB7fTtcclxuXHJcbiAgLy8gRmlyc3QgZ2V0IGFsbCBvZiB0aGUgdmFsdWVzIGFuZCBpZiB0aGV5IGhhdmUgYmVlbiBmb3VuZCBhbHJlYWR5LFxyXG4gIC8vIGluY3JlbWVudCB0aGUgbnVtYmVyIG9mIHRpbWVzIGZvdW5kXHJcbiAgZm9yRWFjaEZvcm1Db250cm9sKGZnLCAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICBsZXQgY29udHJvbFZhbHVlOiBhbnkgPSBnZXRDb250cm9sVmFsdWUoY29udHJvbCwgdmFsdWVQcm9wZXJ0eSwgc3ViUHJvcGVydHkpO1xyXG5cclxuICAgIGlmIChjb250cm9sVmFsdWUgIT09IG51bGwgJiYgY29udHJvbFZhbHVlICE9PSAnJykge1xyXG4gICAgICBpZiAodHlwZW9mIGNvbnRyb2xWYWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBjb250cm9sVmFsdWUgPSBjb250cm9sVmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZm9ybUNvbnRyb2xWYWx1ZXMuaGFzT3duUHJvcGVydHkoY29udHJvbFZhbHVlKSkge1xyXG4gICAgICAgIGZvcm1Db250cm9sVmFsdWVzW2NvbnRyb2xWYWx1ZV0gPSBmb3JtQ29udHJvbFZhbHVlc1tjb250cm9sVmFsdWVdICsgMTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtQ29udHJvbFZhbHVlc1tjb250cm9sVmFsdWVdID0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvLyBOb3cgZ28gYmFjayBvdmVyIHRoZSBjb250cm9scyBhbmQgaWYgdGhlaXIgdmFsdWUgd2FzIGZvdW5kIG1vcmUgdGhhbiBvbmNlIGZsYWcgdGhlbSBhcyBpbnZhbGlkXHJcbiAgZm9yRWFjaEZvcm1Db250cm9sKGZnLCAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICBsZXQgY29udHJvbFZhbHVlOiBhbnkgPSBnZXRDb250cm9sVmFsdWUoY29udHJvbCwgdmFsdWVQcm9wZXJ0eSwgc3ViUHJvcGVydHkpO1xyXG5cclxuICAgIC8vIElmIHRoZSBjb250cm9sIHZhbHVlIGlzIG51bGwgd2Ugd2lsbCBsZXQgYW55IHJlcXVpcmVkIHZhbGlkYXRvcnMgaGFuZGxlIHRoZW1cclxuICAgIGlmIChjb250cm9sVmFsdWUgIT09IG51bGwgJiYgY29udHJvbFZhbHVlICE9PSAnJykge1xyXG4gICAgICBpZiAodHlwZW9mIGNvbnRyb2xWYWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBjb250cm9sVmFsdWUgPSBjb250cm9sVmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZm9ybUNvbnRyb2xWYWx1ZXNbY29udHJvbFZhbHVlXSA+IDEpIHtcclxuICAgICAgICBjb250cm9sLnNldEVycm9ycyhPYmplY3QuYXNzaWduKHsgbm90VW5pcXVlOiB0cnVlIH0sIGNvbnRyb2wuZXJyb3JzKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gR2V0IGEgY29weSBvZiB0aGUgZXhpc3RpbmcgZm9ybSBjb250cm9sIGVycm9ycywgaWYgYW55XHJcbiAgICAgICAgbGV0IGVycm9ycyA9IGNsb25lRGVlcChjb250cm9sLmVycm9ycyk7XHJcblxyXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBlcnJvcnMgYW5kIHByZXZpb3VzbHkgaGFkIHRoZSBub3RVbmlxdWUgZXJyb3Igd2Ugd2FudCB0byByZW1vdmVcclxuICAgICAgICAvLyB0aGF0IHByb3BlcnR5XHJcbiAgICAgICAgaWYgKGVycm9ycyAmJiBlcnJvcnMuaGFzT3duUHJvcGVydHkoXCJub3RVbmlxdWVcIikpIHtcclxuICAgICAgICAgIGRlbGV0ZSBlcnJvcnMubm90VW5pcXVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgdGhhdCB3YXMgdGhlIG9ubHkgZXJyb3IgaW4gdGhlIG9iamVjdCwgc2V0IHRvIG51bGwgc28gdmFsaWRhdGlvbiBwYXNzZXNcclxuICAgICAgICBpZiAoZXJyb3JzICYmIE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICBlcnJvcnMgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBmb3IgY29udHJvbHMgYW5kIGludm9rZSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiB0aGV5IGFyZSBmb3VuZC5cclxuICogUmVjdXJzaXZlbHkgY2FsbHMgaXRzZWxmIHdoZW4gaXQgZW5jb3VudGVycyBzdWIgZm9ybSBncm91cHMgYW5kIGl0ZXJhdGVzIG92ZXIgZm9ybSBhcnJheXMuXHJcbiAqIEBwYXJhbSBjXHJcbiAqIEBwYXJhbSBjYWxsYmFja1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGZvckVhY2hGb3JtQ29udHJvbCA9IChjOiBBYnN0cmFjdENvbnRyb2wsIGNhbGxiYWNrOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB2b2lkKTogdm9pZCA9PiB7XHJcbiAgbGV0IGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXSA9IFtdO1xyXG5cclxuICAvLyBOb3JtYWxpemUgdG8gYW4gYXJyYXkgZm9yIGVhc2Ugb2YgcHJvY2Vzc2luZ1xyXG4gIGlmIChjIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Db250cm9sKSB7XHJcbiAgICBjb250cm9scy5wdXNoKGMpO1xyXG4gIH0gZWxzZSBpZiAoYyBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcclxuICAgIGZvciAodmFyIGtleSBpbiBjLmNvbnRyb2xzKSB7XHJcbiAgICAgIGNvbnRyb2xzLnB1c2goYy5jb250cm9sc1trZXldKTtcclxuICAgIH1cclxuICB9IGVsc2UgaWYgKGMgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XHJcbiAgICBjb250cm9scyA9IGMuY29udHJvbHM7XHJcbiAgfVxyXG5cclxuICBjb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xyXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XHJcbiAgICAgIGNvbnRyb2wuY29udHJvbHMuZm9yRWFjaChjdHJsID0+IHtcclxuICAgICAgICBpZiAoY3RybCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXAgfHwgY3RybCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQXJyYXkpIHtcclxuICAgICAgICAgIGZvckVhY2hGb3JtQ29udHJvbChjdHJsLCBjYWxsYmFjayk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNhbGxiYWNrKGN0cmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwKSB7XHJcbiAgICAgIGZvckVhY2hGb3JtQ29udHJvbChjb250cm9sLGNhbGxiYWNrKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNhbGxiYWNrKGNvbnRyb2wpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRvIHJldHVybiB0aGUgdmFsdWUgaWYgaXQgaXMgZW5hYmxlZCBhbmQgc2V0XHJcbiAqIEBwYXJhbSBjb250cm9sXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0Q29udHJvbFZhbHVlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdmFsdWVQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCA9IFwidmFsdWVcIiwgc3ViUHJvcGVydHk/OiBzdHJpbmcpOiBhbnkgfCBudWxsID0+IHtcclxuICBpZiAoY29udHJvbC5lbmFibGVkICYmIChjb250cm9sLnZhbHVlICE9PSBudWxsICYmIGNvbnRyb2wudmFsdWUgIT09IHVuZGVmaW5lZCkpIHtcclxuICAgIGlmICh2YWx1ZVByb3BlcnR5ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBjb250cm9sLnZhbHVlO1xyXG4gICAgfSBlbHNlIGlmIChzdWJQcm9wZXJ0eSkge1xyXG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZVt2YWx1ZVByb3BlcnR5XVtzdWJQcm9wZXJ0eV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZVt2YWx1ZVByb3BlcnR5XTtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWZvcm0tZ3JvdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Hcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIElkXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlkPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBCaW5kIGlkIHRvIGhvc3QgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIHB1YmxpYyBhdHRySWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBmb3JtIGNvbnRyb2wgbGFiZWxcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBVSS1vcmllbnRlZCBmb3JtIG1vZGVsIHRoYXQgcmV0YWlucyB0aGUgc3RhdGVzIGFuZCB2YWx1ZXMgb2YgdGhlIEhUTUwgY29udHJvbHMgb24gc2NyZWVuLlxyXG4gICAqIENhbiBiZSBhIHtAbGluayBGb3JtQ29udHJvbH0gb3IgYSB7QGxpbmsgRm9ybUdyb3VwfVxyXG4gICAqXHJcbiAgICogQHR5cGUge0Zvcm1Hcm91cH1cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGZvcm1Hcm91cD86IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIC8qKlxyXG4gICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBmb3JtIGNvbnRyb2wgbGFiZWwgKHRvcHxib3R0b218bGVmdClcclxuICAgICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbFBvc2l0aW9uPzogQ29udHJvbExhYmVsUG9zaXRpb24gPSBcInRvcFwiO1xyXG5cclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgc3RyaW5nIHRvIHNob3cgaWYgYW55IG9mIHRoZSB1bmRlcmx5aW5nIGNvbnRyb2xzIGhhcyBhbiBlcnJvci4gSWYgZmFsc3ksIG9uZSBvZiB0aGVcclxuICAgKiBlcnJvcnMgZnJvbSB0aGUgdW5kZXJseWluZyBjb250cm9scyB3aWxsIGJlIHVzZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG92ZXJyaWRlVmFsaWRhdGlvbkVycm9yPzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgZmxhZyB0byBoaWRlIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlVmFsaWRhdGlvbk1lc3NhZ2U/OmJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBBbGwgY3VycmVudCB2YWxpZGF0aW9uIGVycm9yc1xyXG4gICAqXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRpb25FcnJvcnM6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHB1YmxpYyBhbGxDb250cm9sc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBjb21wb25lbnREZXN0cm95ZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlOiBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBzdWJzY3JpYmUgdG8gc3RhdHVzQ2hhbmdlcyBPYnNlcnZhYmxlIHRvIHRha2UgYW55IGVycm9ycyBhbmQgdHJhbnNsYXRlIHRoZW1cclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCkge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5zdGF0dXNDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlVmFsaWRhdGlvbk1lc3NhZ2VzKHRoaXMuZ2V0RXJyb3JzKHRoaXMuZm9ybUdyb3VwISkpXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAvLyAocmUpc2V0IHZhbGlkYXRpb24gbWVzc2FnZXNcclxuICAgICAgdGhpcy50cmFuc2xhdGVWYWxpZGF0aW9uTWVzc2FnZXModGhpcy5nZXRFcnJvcnModGhpcy5mb3JtR3JvdXApKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pZCkge1xyXG4gICAgICB0aGlzLmF0dHJJZCA9IHRoaXMuaWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbmd1bGFyIG9uRGVzdHJveSBsaWZlY3lsZSBob29rLlxyXG4gICAqIFVuc3Vic2NyaWJlIGZyb20gYW55IG9ic2VydmFibGVzXHJcbiAgICpcclxuICAgKiBAc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9saWZlY3ljbGUtaG9va3NcclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXJyb3JzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGZvcm1Hcm91cC5tYXJrQXNVbnRvdWNoZWQoKTtcclxuXHJcbiAgICBsZXQgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcbiAgICBsZXQgYWxsVG91Y2hlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBsZXQgY29udHJvbEZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgZm9yRWFjaEZvcm1Db250cm9sKGZvcm1Hcm91cCwgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICBlcnJvcnMgPSB0aGlzLmFzc2lnbkVycm9ycyhjb250cm9sLCBlcnJvcnMpO1xyXG4gICAgICBpZiAoY29udHJvbC51bnRvdWNoZWQpIHtcclxuICAgICAgICBhbGxUb3VjaGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgY29udHJvbEZvdW5kID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChmb3JtR3JvdXAuZXJyb3JzKSB7XHJcbiAgICAgIGVycm9ycyA9IE9iamVjdC5hc3NpZ24oZXJyb3JzIHx8IHt9LCBmb3JtR3JvdXAuZXJyb3JzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYWxsVG91Y2hlZCAmJiBjb250cm9sRm91bmQpIHtcclxuICAgICAgZm9ybUdyb3VwLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3NpZ25FcnJvcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgaWYgKGNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIGVycm9ycyA9IE9iamVjdC5hc3NpZ24oZXJyb3JzIHx8IHt9LCBjb250cm9sLmVycm9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9yc1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gdGhhdCBzdWJzY3JpYmVzIHRvIHRoZSBmb3JtR3JvdXAncyB2YWx1ZUNoYW5nZXMgT2JzZXJ2YWJsZVxyXG4gICAqIHRvIHRha2UgYW55IGVycm9zIGFuZCB0cmFuc2xhdGUgdGhlbVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBbZGF0YV1cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqIEBtZW1iZXJvZiBGb3JtQ29udHJvbEJhc2VcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKSB7XHJcbiAgICBpZiAoZXJyb3JzKSB7XHJcbiAgICAgIGlmKHRoaXMub3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3Ipe1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMub3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3IpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBtZXNzYWdlcyA9IGF3YWl0IHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLmdldEVycm9yTWVzc2FnZXMoZXJyb3JzKTtcclxuICAgICAgICBpZiAobWVzc2FnZXMpIHtcclxuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IG1lc3NhZ2VzLmpvaW4oJzsgJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSAnJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRyb2wgY29udHJvbC1sYWJlbC17e2xhYmVsUG9zaXRpb259fVwiIFtjbGFzcy5lYy11bnRvdWNoZWRdPVwiZm9ybUdyb3VwPy51bnRvdWNoZWRcIj5cclxuICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIG5nUHJlc2VydmVXaGl0ZXNwYWNlcz5cclxuXHJcbiAgICA8c3BhbiBpZD1cInt7aWR9fV9sYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuXHJcbiAgICA8c3BhbiAqbmdJZj1cIiFoaWRlVmFsaWRhdGlvbk1lc3NhZ2UgJiYgdmFsaWRhdGlvbkVycm9ycyAmJiBmb3JtR3JvdXA/LnRvdWNoZWQgJiYgZm9ybUdyb3VwPy5pbnZhbGlkXCI+e3t2YWxpZGF0aW9uRXJyb3JzIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Component, HostBinding, Input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "../popover/popover.component";
|
|
5
|
+
import * as i3 from "@ngx-translate/core";
|
|
6
|
+
export class HelpPopoverComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.id = '';
|
|
9
|
+
this.text = '';
|
|
10
|
+
this.contentPosition = 'top-left';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
HelpPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: HelpPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14
|
+
HelpPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: HelpPopoverComponent, selector: "ec-help-popover", inputs: { id: "id", text: "text", contentPosition: "contentPosition" }, host: { properties: { "attr.id": "this.id" } }, ngImport: i0, template: "<ec-popover id=\"{{id}}_popover\"\r\n icon=\"icon-help-circle\"\r\n [contentPosition]=\"contentPosition\"\r\n iconHoverClass=\"font-color-primary-light\">\r\n <div id=\"{{id}}_popoverContent\"\r\n class=\"help-popover-content text-body-1\"\r\n [class.is-right]=\"contentPosition == 'top-right' || contentPosition == 'bottom-right'\">\r\n <div *ngIf=\"text\"\r\n [innerHTML]=\"text | translate\"></div>\r\n <ng-content></ng-content>\r\n </div>\r\n</ec-popover>", styles: [".help-popover-content{background-color:#162f3b;color:var(--ec-color-primary-light);padding:.375rem .5rem .375rem 1.75rem;max-width:15rem}.help-popover-content.is-right{padding:.375rem 1.75rem .375rem .5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PopoverComponent, selector: "ec-popover", inputs: ["icon", "contentPosition", "iconHoverClass"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: HelpPopoverComponent, decorators: [{
|
|
16
|
+
type: Component,
|
|
17
|
+
args: [{ selector: 'ec-help-popover', template: "<ec-popover id=\"{{id}}_popover\"\r\n icon=\"icon-help-circle\"\r\n [contentPosition]=\"contentPosition\"\r\n iconHoverClass=\"font-color-primary-light\">\r\n <div id=\"{{id}}_popoverContent\"\r\n class=\"help-popover-content text-body-1\"\r\n [class.is-right]=\"contentPosition == 'top-right' || contentPosition == 'bottom-right'\">\r\n <div *ngIf=\"text\"\r\n [innerHTML]=\"text | translate\"></div>\r\n <ng-content></ng-content>\r\n </div>\r\n</ec-popover>", styles: [".help-popover-content{background-color:#162f3b;color:var(--ec-color-primary-light);padding:.375rem .5rem .375rem 1.75rem;max-width:15rem}.help-popover-content.is-right{padding:.375rem 1.75rem .375rem .5rem}\n"] }]
|
|
18
|
+
}], ctorParameters: function () { return []; }, propDecorators: { id: [{
|
|
19
|
+
type: Input
|
|
20
|
+
}, {
|
|
21
|
+
type: HostBinding,
|
|
22
|
+
args: ['attr.id']
|
|
23
|
+
}], text: [{
|
|
24
|
+
type: Input
|
|
25
|
+
}], contentPosition: [{
|
|
26
|
+
type: Input
|
|
27
|
+
}] } });
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9oZWxwLXBvcG92ZXIvaGVscC1wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9oZWxwLXBvcG92ZXIvaGVscC1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFROUQsTUFBTSxPQUFPLG9CQUFvQjtJQU0vQjtRQUppQyxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBQ3hDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsb0JBQWUsR0FBMkIsVUFBVSxDQUFDO0lBRTlDLENBQUM7O2lIQU5OLG9CQUFvQjtxR0FBcEIsb0JBQW9CLCtLQ1JqQywwZ0JBV2E7MkZESEEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGlCQUFpQjswRUFNTSxFQUFFO3NCQUFsQyxLQUFLOztzQkFBSSxXQUFXO3VCQUFDLFNBQVM7Z0JBQ3RCLElBQUk7c0JBQVosS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUG9wb3ZlckNvbnRlbnRQb3NpdGlvbiB9IGZyb20gJy4uL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdlYy1oZWxwLXBvcG92ZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWxwLXBvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2hlbHAtcG9wb3Zlci5jb21wb25lbnQuc2NzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWxwUG9wb3ZlckNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIGlkOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBjb250ZW50UG9zaXRpb246IFBvcG92ZXJDb250ZW50UG9zaXRpb24gPSAndG9wLWxlZnQnO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxufVxyXG4iLCI8ZWMtcG9wb3ZlciBpZD1cInt7aWR9fV9wb3BvdmVyXCJcclxuICAgICAgICAgICAgaWNvbj1cImljb24taGVscC1jaXJjbGVcIlxyXG4gICAgICAgICAgICBbY29udGVudFBvc2l0aW9uXT1cImNvbnRlbnRQb3NpdGlvblwiXHJcbiAgICAgICAgICAgIGljb25Ib3ZlckNsYXNzPVwiZm9udC1jb2xvci1wcmltYXJ5LWxpZ2h0XCI+XHJcbiAgPGRpdiBpZD1cInt7aWR9fV9wb3BvdmVyQ29udGVudFwiXHJcbiAgICAgICBjbGFzcz1cImhlbHAtcG9wb3Zlci1jb250ZW50IHRleHQtYm9keS0xXCJcclxuICAgICAgIFtjbGFzcy5pcy1yaWdodF09XCJjb250ZW50UG9zaXRpb24gPT0gJ3RvcC1yaWdodCcgfHwgY29udGVudFBvc2l0aW9uID09ICdib3R0b20tcmlnaHQnXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidGV4dFwiXHJcbiAgICAgICAgIFtpbm5lckhUTUxdPVwidGV4dCB8IHRyYW5zbGF0ZVwiPjwvZGl2PlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2VjLXBvcG92ZXI+Il19
|