@sebgroup/green-angular 5.1.2 → 5.3.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/esm2022/lib/shared/core-control/core-control.directive.mjs +3 -3
- package/esm2022/src/lib/shared/core-control/core-control.directive.mjs +3 -3
- package/esm2022/src/v-angular/account-number/account-number.module.mjs +15 -0
- package/esm2022/src/v-angular/account-number/account-number.pipe.mjs +55 -0
- package/esm2022/src/v-angular/account-number/index.mjs +3 -0
- package/esm2022/src/v-angular/account-number/sebgroup-green-angular-src-v-angular-account-number.mjs +5 -0
- package/esm2022/src/v-angular/alert/alert.component.mjs +47 -0
- package/esm2022/src/v-angular/alert/alert.models.mjs +8 -0
- package/esm2022/src/v-angular/alert/alert.module.mjs +18 -0
- package/esm2022/src/v-angular/alert/index.mjs +4 -0
- package/esm2022/src/v-angular/alert/sebgroup-green-angular-src-v-angular-alert.mjs +5 -0
- package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +16 -6
- package/esm2022/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +9 -9
- package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.component.mjs +5 -5
- package/esm2022/src/v-angular/breadcrumbs/breadcrumbs.module.mjs +11 -11
- package/esm2022/src/v-angular/button/button.component.mjs +9 -9
- package/esm2022/src/v-angular/button/button.module.mjs +11 -11
- package/esm2022/src/v-angular/card/card.component.mjs +6 -6
- package/esm2022/src/v-angular/card/card.module.mjs +9 -9
- package/esm2022/src/v-angular/character-countdown/character-countdown.module.mjs +6 -6
- package/esm2022/src/v-angular/checkbox/checkbox.component.mjs +9 -7
- package/esm2022/src/v-angular/checkbox/checkbox.module.mjs +14 -12
- package/esm2022/src/v-angular/core/core.utils.mjs +35 -1
- package/esm2022/src/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
- package/esm2022/src/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
- package/esm2022/src/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
- package/esm2022/src/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
- package/esm2022/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
- package/esm2022/src/v-angular/datepicker/datepicker.globals.mjs +20 -0
- package/esm2022/src/v-angular/datepicker/datepicker.models.mjs +56 -0
- package/esm2022/src/v-angular/datepicker/datepicker.module.mjs +63 -0
- package/esm2022/src/v-angular/datepicker/datepicker.utils.mjs +196 -0
- package/esm2022/src/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
- package/esm2022/src/v-angular/datepicker/index.mjs +17 -0
- package/esm2022/src/v-angular/datepicker/models/dates.mjs +291 -0
- package/esm2022/src/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
- package/esm2022/src/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
- package/esm2022/src/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
- package/esm2022/src/v-angular/datepicker/sebgroup-green-angular-src-v-angular-datepicker.mjs +5 -0
- package/esm2022/src/v-angular/drag-drop/drag-drop.component.mjs +497 -0
- package/esm2022/src/v-angular/drag-drop/drag-drop.models.mjs +2 -0
- package/esm2022/src/v-angular/drag-drop/drag-drop.module.mjs +49 -0
- package/esm2022/src/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
- package/esm2022/src/v-angular/drag-drop/drag-drop.utils.mjs +76 -0
- package/esm2022/src/v-angular/drag-drop/index.mjs +5 -0
- package/esm2022/src/v-angular/drag-drop/sebgroup-green-angular-src-v-angular-drag-drop.mjs +5 -0
- package/esm2022/src/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +24 -9
- package/esm2022/src/v-angular/dropdown/dropdown.component.mjs +16 -9
- package/esm2022/src/v-angular/dropdown/dropdown.module.mjs +31 -15
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +8 -8
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +5 -5
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +17 -10
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead.directive.mjs +27 -20
- package/esm2022/src/v-angular/dropdown/typeahead/typeahead.module.mjs +21 -21
- package/esm2022/src/v-angular/external-link/external-link.directive.mjs +5 -5
- package/esm2022/src/v-angular/external-link/external-link.module.mjs +9 -9
- package/esm2022/src/v-angular/i18n/i18n.module.mjs +12 -12
- package/esm2022/src/v-angular/i18n/i18n.test.module.mjs +6 -6
- package/esm2022/src/v-angular/info-circle/info-circle.component.mjs +6 -6
- package/esm2022/src/v-angular/info-circle/info-circle.module.mjs +11 -11
- package/esm2022/src/v-angular/input/input.component.mjs +11 -15
- package/esm2022/src/v-angular/input/input.module.mjs +27 -22
- package/esm2022/src/v-angular/input-mask/input-mask.directive.mjs +6 -6
- package/esm2022/src/v-angular/input-mask/input-mask.module.mjs +10 -10
- package/esm2022/src/v-angular/modal/dialog/dialog.component.mjs +53 -31
- package/esm2022/src/v-angular/modal/fold-out/fold-out.component.mjs +116 -16
- package/esm2022/src/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
- package/esm2022/src/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
- package/esm2022/src/v-angular/modal/modal.module.mjs +38 -27
- package/esm2022/src/v-angular/modal/slide-out/slide-out.component.mjs +35 -12
- package/esm2022/src/v-angular/pagination/index.mjs +3 -0
- package/esm2022/src/v-angular/pagination/pagination.component.mjs +144 -0
- package/esm2022/src/v-angular/pagination/pagination.module.mjs +37 -0
- package/esm2022/src/v-angular/pagination/sebgroup-green-angular-src-v-angular-pagination.mjs +5 -0
- package/esm2022/src/v-angular/radio/radio.component.mjs +14 -12
- package/esm2022/src/v-angular/radio/radio.module.mjs +12 -11
- package/esm2022/src/v-angular/slug/slug.module.mjs +6 -6
- package/esm2022/src/v-angular/table/index.mjs +9 -0
- package/esm2022/src/v-angular/table/sebgroup-green-angular-src-v-angular-table.mjs +5 -0
- package/esm2022/src/v-angular/table/table.component.mjs +406 -0
- package/esm2022/src/v-angular/table/table.directive.mjs +110 -0
- package/esm2022/src/v-angular/table/table.models.mjs +2 -0
- package/esm2022/src/v-angular/table/table.module.mjs +40 -0
- package/esm2022/src/v-angular/table/table.tools.mjs +29 -0
- package/esm2022/src/v-angular/table/tr-thook.pipe.mjs +22 -0
- package/esm2022/src/v-angular/tabs/index.mjs +8 -0
- package/esm2022/src/v-angular/tabs/sebgroup-green-angular-src-v-angular-tabs.mjs +5 -0
- package/esm2022/src/v-angular/tabs/tab.directive.mjs +81 -0
- package/esm2022/src/v-angular/tabs/tabs.component.mjs +262 -0
- package/esm2022/src/v-angular/tabs/tabs.models.mjs +2 -0
- package/esm2022/src/v-angular/tabs/tabs.module.mjs +21 -0
- package/esm2022/src/v-angular/textarea/textarea.component.mjs +9 -7
- package/esm2022/src/v-angular/textarea/textarea.module.mjs +27 -13
- package/esm2022/src/v-angular/toast/index.mjs +8 -0
- package/esm2022/src/v-angular/toast/sebgroup-green-angular-src-v-angular-toast.mjs +5 -0
- package/esm2022/src/v-angular/toast/toast-message.service.mjs +63 -0
- package/esm2022/src/v-angular/toast/toast.component.mjs +70 -0
- package/esm2022/src/v-angular/toast/toast.models.mjs +8 -0
- package/esm2022/src/v-angular/toast/toast.module.mjs +21 -0
- package/esm2022/src/v-angular/tooltip/tooltip.directive.mjs +35 -15
- package/esm2022/src/v-angular/tooltip/tooltip.module.mjs +11 -11
- package/esm2022/src/v-angular/tooltip/tooltip.styles.mjs +60 -0
- package/esm2022/v-angular/account-number/account-number.module.mjs +15 -0
- package/esm2022/v-angular/account-number/account-number.pipe.mjs +55 -0
- package/esm2022/v-angular/account-number/index.mjs +3 -0
- package/esm2022/v-angular/alert/alert.component.mjs +47 -0
- package/esm2022/v-angular/alert/alert.models.mjs +8 -0
- package/esm2022/v-angular/alert/alert.module.mjs +18 -0
- package/esm2022/v-angular/alert/index.mjs +4 -0
- package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.component.mjs +16 -6
- package/esm2022/v-angular/base-control-value-accessor/base-control-value-accessor.module.mjs +9 -9
- package/esm2022/v-angular/breadcrumbs/breadcrumbs.component.mjs +5 -5
- package/esm2022/v-angular/breadcrumbs/breadcrumbs.module.mjs +11 -11
- package/esm2022/v-angular/button/button.component.mjs +9 -9
- package/esm2022/v-angular/button/button.module.mjs +11 -11
- package/esm2022/v-angular/card/card.component.mjs +6 -6
- package/esm2022/v-angular/card/card.module.mjs +9 -9
- package/esm2022/v-angular/character-countdown/character-countdown.module.mjs +6 -6
- package/esm2022/v-angular/checkbox/checkbox.component.mjs +9 -7
- package/esm2022/v-angular/checkbox/checkbox.module.mjs +14 -12
- package/esm2022/v-angular/datepicker/components/calendar/calendar.component.mjs +200 -0
- package/esm2022/v-angular/datepicker/components/calendar-control/calendar-control.component.mjs +115 -0
- package/esm2022/v-angular/datepicker/components/date-input/date-input.component.mjs +203 -0
- package/esm2022/v-angular/datepicker/components/datepicker/datepicker.component.mjs +135 -0
- package/esm2022/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.mjs +408 -0
- package/esm2022/v-angular/datepicker/datepicker.globals.mjs +20 -0
- package/esm2022/v-angular/datepicker/datepicker.models.mjs +56 -0
- package/esm2022/v-angular/datepicker/datepicker.module.mjs +63 -0
- package/esm2022/v-angular/datepicker/datepicker.utils.mjs +196 -0
- package/esm2022/v-angular/datepicker/directives/calendar-date.directive.mjs +47 -0
- package/esm2022/v-angular/datepicker/index.mjs +17 -0
- package/esm2022/v-angular/datepicker/models/dates.mjs +291 -0
- package/esm2022/v-angular/datepicker/pipes/date-thook.pipe.mjs +30 -0
- package/esm2022/v-angular/datepicker/pipes/is-disabled.pipe.mjs +37 -0
- package/esm2022/v-angular/datepicker/pipes/matches.pipe.mjs +17 -0
- package/esm2022/v-angular/drag-drop/drag-drop.component.mjs +497 -0
- package/esm2022/v-angular/drag-drop/drag-drop.models.mjs +2 -0
- package/esm2022/v-angular/drag-drop/drag-drop.module.mjs +49 -0
- package/esm2022/v-angular/drag-drop/drag-drop.pipes.mjs +70 -0
- package/esm2022/v-angular/drag-drop/drag-drop.utils.mjs +76 -0
- package/esm2022/v-angular/drag-drop/index.mjs +5 -0
- package/esm2022/v-angular/dropdown/dropdown-list/dropdown-list.component.mjs +24 -9
- package/esm2022/v-angular/dropdown/dropdown.component.mjs +16 -9
- package/esm2022/v-angular/dropdown/dropdown.module.mjs +31 -15
- package/esm2022/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.mjs +8 -8
- package/esm2022/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.mjs +5 -5
- package/esm2022/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.mjs +17 -10
- package/esm2022/v-angular/dropdown/typeahead/typeahead.directive.mjs +27 -20
- package/esm2022/v-angular/dropdown/typeahead/typeahead.module.mjs +21 -21
- package/esm2022/v-angular/external-link/external-link.directive.mjs +37 -0
- package/esm2022/v-angular/external-link/external-link.module.mjs +18 -0
- package/esm2022/v-angular/external-link/index.mjs +3 -0
- package/esm2022/v-angular/i18n/i18n.module.mjs +12 -12
- package/esm2022/v-angular/i18n/i18n.test.module.mjs +6 -6
- package/esm2022/v-angular/index.mjs +11 -1
- package/esm2022/v-angular/info-circle/info-circle.component.mjs +6 -6
- package/esm2022/v-angular/info-circle/info-circle.module.mjs +11 -11
- package/esm2022/v-angular/input/input.component.mjs +11 -15
- package/esm2022/v-angular/input/input.module.mjs +27 -22
- package/esm2022/v-angular/input-mask/input-mask.directive.mjs +6 -6
- package/esm2022/v-angular/input-mask/input-mask.module.mjs +10 -10
- package/esm2022/v-angular/modal/dialog/dialog.component.mjs +53 -31
- package/esm2022/v-angular/modal/fold-out/fold-out.component.mjs +116 -16
- package/esm2022/v-angular/modal/fold-out/fold-out.directive.mjs +5 -5
- package/esm2022/v-angular/modal/fold-out/keyboard-key.enum.mjs +9 -0
- package/esm2022/v-angular/modal/modal.module.mjs +38 -27
- package/esm2022/v-angular/modal/slide-out/slide-out.component.mjs +35 -12
- package/esm2022/v-angular/pagination/index.mjs +3 -0
- package/esm2022/v-angular/pagination/pagination.component.mjs +144 -0
- package/esm2022/v-angular/pagination/pagination.module.mjs +37 -0
- package/esm2022/v-angular/radio/radio.component.mjs +14 -12
- package/esm2022/v-angular/radio/radio.module.mjs +12 -11
- package/esm2022/v-angular/slug/index.mjs +3 -0
- package/esm2022/v-angular/slug/slug.module.mjs +18 -0
- package/esm2022/v-angular/slug/slug.pipe.mjs +27 -0
- package/esm2022/v-angular/table/index.mjs +9 -0
- package/esm2022/v-angular/table/table.component.mjs +406 -0
- package/esm2022/v-angular/table/table.directive.mjs +110 -0
- package/esm2022/v-angular/table/table.models.mjs +2 -0
- package/esm2022/v-angular/table/table.module.mjs +40 -0
- package/esm2022/v-angular/table/table.tools.mjs +29 -0
- package/esm2022/v-angular/table/tr-thook.pipe.mjs +22 -0
- package/esm2022/v-angular/tabs/index.mjs +8 -0
- package/esm2022/v-angular/tabs/tab.directive.mjs +81 -0
- package/esm2022/v-angular/tabs/tabs.component.mjs +262 -0
- package/esm2022/v-angular/tabs/tabs.models.mjs +2 -0
- package/esm2022/v-angular/tabs/tabs.module.mjs +21 -0
- package/esm2022/v-angular/textarea/textarea.component.mjs +9 -7
- package/esm2022/v-angular/textarea/textarea.module.mjs +27 -13
- package/esm2022/v-angular/toast/index.mjs +8 -0
- package/esm2022/v-angular/toast/toast-message.service.mjs +63 -0
- package/esm2022/v-angular/toast/toast.component.mjs +70 -0
- package/esm2022/v-angular/toast/toast.models.mjs +8 -0
- package/esm2022/v-angular/toast/toast.module.mjs +21 -0
- package/esm2022/v-angular/tooltip/tooltip.directive.mjs +35 -15
- package/esm2022/v-angular/tooltip/tooltip.module.mjs +11 -11
- package/esm2022/v-angular/tooltip/tooltip.styles.mjs +60 -0
- package/esm2022/v-angular/v-angular.module.mjs +104 -68
- package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs +2 -2
- package/fesm2022/sebgroup-green-angular-src-lib-shared.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs +74 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-account-number.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs +76 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-alert.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs +23 -13
- package/fesm2022/sebgroup-green-angular-src-v-angular-base-control-value-accessor.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs +14 -14
- package/fesm2022/sebgroup-green-angular-src-v-angular-breadcrumbs.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs +18 -18
- package/fesm2022/sebgroup-green-angular-src-v-angular-button.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs +13 -13
- package/fesm2022/sebgroup-green-angular-src-v-angular-card.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs +6 -6
- package/fesm2022/sebgroup-green-angular-src-v-angular-character-countdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs +21 -17
- package/fesm2022/sebgroup-green-angular-src-v-angular-checkbox.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs +34 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-core.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs +1759 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-datepicker.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs +687 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-drag-drop.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs +126 -74
- package/fesm2022/sebgroup-green-angular-src-v-angular-dropdown.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs +12 -12
- package/fesm2022/sebgroup-green-angular-src-v-angular-external-link.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs +17 -17
- package/fesm2022/sebgroup-green-angular-src-v-angular-i18n.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs +15 -15
- package/fesm2022/sebgroup-green-angular-src-v-angular-info-circle.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs +14 -14
- package/fesm2022/sebgroup-green-angular-src-v-angular-input-mask.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs +36 -35
- package/fesm2022/sebgroup-green-angular-src-v-angular-input.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs +246 -81
- package/fesm2022/sebgroup-green-angular-src-v-angular-modal.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs +185 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-pagination.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs +24 -21
- package/fesm2022/sebgroup-green-angular-src-v-angular-radio.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs +6 -6
- package/fesm2022/sebgroup-green-angular-src-v-angular-slug.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs +604 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-table.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs +367 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-tabs.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs +33 -18
- package/fesm2022/sebgroup-green-angular-src-v-angular-textarea.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs +166 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-toast.mjs.map +1 -0
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs +103 -24
- package/fesm2022/sebgroup-green-angular-src-v-angular-tooltip.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular-v-angular.mjs +6369 -2156
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
- package/fesm2022/sebgroup-green-angular.mjs +2 -2
- package/fesm2022/sebgroup-green-angular.mjs.map +1 -1
- package/lib/shared/core-control/core-control.directive.d.ts +1 -1
- package/package.json +51 -3
- package/src/lib/shared/core-control/core-control.directive.d.ts +1 -1
- package/src/v-angular/account-number/README.md +63 -0
- package/src/v-angular/account-number/account-number.module.d.ts +2 -0
- package/src/v-angular/account-number/account-number.pipe.d.ts +32 -0
- package/src/v-angular/account-number/index.d.ts +2 -0
- package/src/v-angular/alert/alert.component.d.ts +19 -0
- package/src/v-angular/alert/alert.models.d.ts +13 -0
- package/src/v-angular/alert/alert.module.d.ts +8 -0
- package/src/v-angular/alert/index.d.ts +3 -0
- package/src/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +10 -4
- package/src/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +4 -4
- package/src/v-angular/breadcrumbs/breadcrumbs.component.d.ts +4 -4
- package/src/v-angular/breadcrumbs/breadcrumbs.module.d.ts +4 -4
- package/src/v-angular/button/button.component.d.ts +5 -5
- package/src/v-angular/button/button.module.d.ts +4 -4
- package/src/v-angular/card/card.component.d.ts +3 -3
- package/src/v-angular/card/card.module.d.ts +4 -4
- package/src/v-angular/character-countdown/character-countdown.module.d.ts +4 -4
- package/src/v-angular/checkbox/checkbox.component.d.ts +6 -5
- package/src/v-angular/checkbox/checkbox.module.d.ts +5 -4
- package/src/v-angular/core/core.utils.d.ts +1 -0
- package/src/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
- package/src/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
- package/src/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
- package/src/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
- package/src/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
- package/src/v-angular/datepicker/datepicker.globals.d.ts +13 -0
- package/src/v-angular/datepicker/datepicker.models.d.ts +50 -0
- package/src/v-angular/datepicker/datepicker.module.d.ts +19 -0
- package/src/v-angular/datepicker/datepicker.utils.d.ts +39 -0
- package/src/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
- package/src/v-angular/datepicker/index.d.ts +13 -0
- package/src/v-angular/datepicker/models/dates.d.ts +15 -0
- package/src/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
- package/src/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
- package/src/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
- package/src/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
- package/src/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
- package/src/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
- package/src/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
- package/src/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
- package/src/v-angular/drag-drop/index.d.ts +4 -0
- package/src/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +11 -4
- package/src/v-angular/dropdown/dropdown.component.d.ts +10 -6
- package/src/v-angular/dropdown/dropdown.module.d.ts +8 -7
- package/src/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +6 -6
- package/src/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +3 -3
- package/src/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +8 -6
- package/src/v-angular/dropdown/typeahead/typeahead.directive.d.ts +14 -12
- package/src/v-angular/dropdown/typeahead/typeahead.module.d.ts +4 -4
- package/src/v-angular/external-link/external-link.directive.d.ts +3 -3
- package/src/v-angular/external-link/external-link.module.d.ts +4 -4
- package/src/v-angular/i18n/i18n.module.d.ts +7 -7
- package/src/v-angular/i18n/i18n.test.module.d.ts +4 -4
- package/src/v-angular/info-circle/info-circle.component.d.ts +4 -4
- package/src/v-angular/info-circle/info-circle.module.d.ts +4 -4
- package/src/v-angular/input/input.component.d.ts +5 -10
- package/src/v-angular/input/input.module.d.ts +5 -4
- package/src/v-angular/input-mask/input-mask.directive.d.ts +3 -3
- package/src/v-angular/input-mask/input-mask.module.d.ts +5 -5
- package/src/v-angular/modal/dialog/dialog.component.d.ts +16 -7
- package/src/v-angular/modal/fold-out/fold-out.component.d.ts +34 -11
- package/src/v-angular/modal/fold-out/fold-out.directive.d.ts +3 -3
- package/src/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
- package/src/v-angular/modal/modal.module.d.ts +4 -4
- package/src/v-angular/modal/slide-out/slide-out.component.d.ts +13 -6
- package/src/v-angular/pagination/index.d.ts +2 -0
- package/src/v-angular/pagination/pagination.component.d.ts +64 -0
- package/src/v-angular/pagination/pagination.module.d.ts +12 -0
- package/src/v-angular/radio/radio.component.d.ts +14 -13
- package/src/v-angular/radio/radio.module.d.ts +5 -4
- package/src/v-angular/slug/slug.module.d.ts +4 -4
- package/src/v-angular/table/index.d.ts +5 -0
- package/src/v-angular/table/table.component.d.ts +239 -0
- package/src/v-angular/table/table.directive.d.ts +36 -0
- package/src/v-angular/table/table.models.d.ts +62 -0
- package/src/v-angular/table/table.module.d.ts +12 -0
- package/src/v-angular/table/table.tools.d.ts +5 -0
- package/src/v-angular/table/tr-thook.pipe.d.ts +7 -0
- package/src/v-angular/tabs/index.d.ts +4 -0
- package/src/v-angular/tabs/tab.directive.d.ts +37 -0
- package/src/v-angular/tabs/tabs.component.d.ts +65 -0
- package/src/v-angular/tabs/tabs.models.d.ts +25 -0
- package/src/v-angular/tabs/tabs.module.d.ts +11 -0
- package/src/v-angular/textarea/textarea.component.d.ts +6 -5
- package/src/v-angular/textarea/textarea.module.d.ts +6 -4
- package/src/v-angular/toast/index.d.ts +4 -0
- package/src/v-angular/toast/toast-message.service.d.ts +17 -0
- package/src/v-angular/toast/toast.component.d.ts +22 -0
- package/src/v-angular/toast/toast.models.d.ts +15 -0
- package/src/v-angular/toast/toast.module.d.ts +10 -0
- package/src/v-angular/tooltip/tooltip.directive.d.ts +5 -3
- package/src/v-angular/tooltip/tooltip.module.d.ts +4 -4
- package/src/v-angular/tooltip/tooltip.styles.d.ts +11 -0
- package/v-angular/account-number/account-number.module.d.ts +2 -0
- package/v-angular/account-number/account-number.pipe.d.ts +32 -0
- package/v-angular/account-number/index.d.ts +2 -0
- package/v-angular/alert/alert.component.d.ts +19 -0
- package/v-angular/alert/alert.models.d.ts +13 -0
- package/v-angular/alert/alert.module.d.ts +8 -0
- package/v-angular/alert/index.d.ts +3 -0
- package/v-angular/base-control-value-accessor/base-control-value-accessor.component.d.ts +10 -4
- package/v-angular/base-control-value-accessor/base-control-value-accessor.module.d.ts +4 -4
- package/v-angular/breadcrumbs/breadcrumbs.component.d.ts +4 -4
- package/v-angular/breadcrumbs/breadcrumbs.module.d.ts +4 -4
- package/v-angular/button/button.component.d.ts +5 -5
- package/v-angular/button/button.module.d.ts +4 -4
- package/v-angular/card/card.component.d.ts +3 -3
- package/v-angular/card/card.module.d.ts +4 -4
- package/v-angular/character-countdown/character-countdown.module.d.ts +4 -4
- package/v-angular/checkbox/checkbox.component.d.ts +6 -5
- package/v-angular/checkbox/checkbox.module.d.ts +5 -4
- package/v-angular/datepicker/components/calendar/calendar.component.d.ts +36 -0
- package/v-angular/datepicker/components/calendar-control/calendar-control.component.d.ts +30 -0
- package/v-angular/datepicker/components/date-input/date-input.component.d.ts +102 -0
- package/v-angular/datepicker/components/datepicker/datepicker.component.d.ts +62 -0
- package/v-angular/datepicker/date-control-value-accessor/date-control-value-accessor.component.d.ts +165 -0
- package/v-angular/datepicker/datepicker.globals.d.ts +13 -0
- package/v-angular/datepicker/datepicker.models.d.ts +50 -0
- package/v-angular/datepicker/datepicker.module.d.ts +19 -0
- package/v-angular/datepicker/datepicker.utils.d.ts +39 -0
- package/v-angular/datepicker/directives/calendar-date.directive.d.ts +21 -0
- package/v-angular/datepicker/index.d.ts +13 -0
- package/v-angular/datepicker/models/dates.d.ts +15 -0
- package/v-angular/datepicker/pipes/date-thook.pipe.d.ts +8 -0
- package/v-angular/datepicker/pipes/is-disabled.pipe.d.ts +8 -0
- package/v-angular/datepicker/pipes/matches.pipe.d.ts +7 -0
- package/v-angular/drag-drop/drag-drop.component.d.ts +131 -0
- package/v-angular/drag-drop/drag-drop.models.d.ts +49 -0
- package/v-angular/drag-drop/drag-drop.module.d.ts +13 -0
- package/v-angular/drag-drop/drag-drop.pipes.d.ts +40 -0
- package/v-angular/drag-drop/drag-drop.utils.d.ts +33 -0
- package/v-angular/drag-drop/index.d.ts +4 -0
- package/v-angular/dropdown/dropdown-list/dropdown-list.component.d.ts +11 -4
- package/v-angular/dropdown/dropdown.component.d.ts +10 -6
- package/v-angular/dropdown/dropdown.module.d.ts +8 -7
- package/v-angular/dropdown/typeahead/typeahead-dropdown-list/typeahead-dropdown-list.component.d.ts +6 -6
- package/v-angular/dropdown/typeahead/typeahead-highlight/typeahead-highlight.component.d.ts +3 -3
- package/v-angular/dropdown/typeahead/typeahead-input/typeahead-input.component.d.ts +8 -6
- package/v-angular/dropdown/typeahead/typeahead.directive.d.ts +14 -12
- package/v-angular/dropdown/typeahead/typeahead.module.d.ts +4 -4
- package/v-angular/external-link/external-link.directive.d.ts +17 -0
- package/v-angular/external-link/external-link.module.d.ts +8 -0
- package/v-angular/external-link/index.d.ts +2 -0
- package/v-angular/i18n/i18n.module.d.ts +7 -7
- package/v-angular/i18n/i18n.test.module.d.ts +4 -4
- package/v-angular/index.d.ts +10 -0
- package/v-angular/info-circle/info-circle.component.d.ts +4 -4
- package/v-angular/info-circle/info-circle.module.d.ts +4 -4
- package/v-angular/input/input.component.d.ts +5 -10
- package/v-angular/input/input.module.d.ts +5 -4
- package/v-angular/input-mask/input-mask.directive.d.ts +3 -3
- package/v-angular/input-mask/input-mask.module.d.ts +5 -5
- package/v-angular/modal/dialog/dialog.component.d.ts +16 -7
- package/v-angular/modal/fold-out/fold-out.component.d.ts +34 -11
- package/v-angular/modal/fold-out/fold-out.directive.d.ts +3 -3
- package/v-angular/modal/fold-out/keyboard-key.enum.d.ts +7 -0
- package/v-angular/modal/modal.module.d.ts +4 -4
- package/v-angular/modal/slide-out/slide-out.component.d.ts +13 -6
- package/v-angular/pagination/index.d.ts +2 -0
- package/v-angular/pagination/pagination.component.d.ts +64 -0
- package/v-angular/pagination/pagination.module.d.ts +12 -0
- package/v-angular/radio/radio.component.d.ts +14 -13
- package/v-angular/radio/radio.module.d.ts +5 -4
- package/v-angular/slug/index.d.ts +2 -0
- package/v-angular/slug/slug.module.d.ts +8 -0
- package/v-angular/slug/slug.pipe.d.ts +12 -0
- package/v-angular/table/index.d.ts +5 -0
- package/v-angular/table/table.component.d.ts +239 -0
- package/v-angular/table/table.directive.d.ts +36 -0
- package/v-angular/table/table.models.d.ts +62 -0
- package/v-angular/table/table.module.d.ts +12 -0
- package/v-angular/table/table.tools.d.ts +5 -0
- package/v-angular/table/tr-thook.pipe.d.ts +7 -0
- package/v-angular/tabs/index.d.ts +4 -0
- package/v-angular/tabs/tab.directive.d.ts +37 -0
- package/v-angular/tabs/tabs.component.d.ts +65 -0
- package/v-angular/tabs/tabs.models.d.ts +25 -0
- package/v-angular/tabs/tabs.module.d.ts +11 -0
- package/v-angular/textarea/textarea.component.d.ts +6 -5
- package/v-angular/textarea/textarea.module.d.ts +6 -4
- package/v-angular/toast/index.d.ts +4 -0
- package/v-angular/toast/toast-message.service.d.ts +17 -0
- package/v-angular/toast/toast.component.d.ts +22 -0
- package/v-angular/toast/toast.models.d.ts +15 -0
- package/v-angular/toast/toast.module.d.ts +10 -0
- package/v-angular/tooltip/tooltip.directive.d.ts +5 -3
- package/v-angular/tooltip/tooltip.module.d.ts +4 -4
- package/v-angular/tooltip/tooltip.styles.d.ts +11 -0
- package/v-angular/v-angular.module.d.ts +27 -18
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLm1vZGVscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2RyYWctZHJvcC9kcmFnLWRyb3AubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXZlbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCdcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5cbmV4cG9ydCB0eXBlIFVwbG9hZFN0YXRlID1cbiAgfCAnbG9jYWwnXG4gIHwgJ3VwbG9hZGluZydcbiAgfCAnYWJvcnRlZCdcbiAgfCAndXBsb2FkZWQnXG4gIHwgJ3ZhbGlkYXRpbmcnXG4gIHwgJ2Vycm9yJ1xuICB8ICdkZWxldGVkJ1xuICB8ICdkb25lJ1xuXG5leHBvcnQgdHlwZSBTdGF0ZU1hcCA9IHsgW2tleSBpbiBVcGxvYWRTdGF0ZV06IHN0cmluZyB8IHN0cmluZ1tdIH1cblxuZXhwb3J0IGludGVyZmFjZSBMb2NhbEZpbGUge1xuICByYXc6IEZpbGUgfCB1bmRlZmluZWRcbiAgcHJvZ3Jlc3M6IG51bWJlclxuICB1cGxvYWRTdGF0ZTogVXBsb2FkU3RhdGVcbiAgdXBsb2FkUmVxdWVzdHM6IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFQSVN0YXR1c1JlYXNvbiB7XG4gIG9yaWdpbmF0b3JJZDogc3RyaW5nXG4gIHJlYXNvbjogc3RyaW5nXG4gIGFkZGl0aW9uYWxJbmZvcm1hdGlvbj86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFQSVN0YXR1c0Jhc2VQcm9wZXJ0aWVzIHtcbiAgaW50ZXJuYWxTdGF0dXNSZWFzb25Db2RlOiBzdHJpbmcgfCBudWxsXG4gIHN0YXR1c1JlYXNvbkluZm9ybWF0aW9uOiBBUElTdGF0dXNSZWFzb25bXSB8IG51bGxcbn1cblxuZXhwb3J0IHR5cGUgQVBJU3RhdHVzPFQgPSBBUElTdGF0dXNCYXNlUHJvcGVydGllcz4gPSBUICYge1xuICBpZDogc3RyaW5nXG4gIHN0YXR1czogc3RyaW5nXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVBJRmlsZUJhc2VQcm9wZXJ0aWVzIHtcbiAgcHJpbmNpcGFsOiBzdHJpbmdcbiAgdXBsb2FkRGF0ZTogc3RyaW5nXG4gIHJlZ2lzdHJhcklkOiBzdHJpbmdcbiAgcmVnaXN0cmFyTmFtZTogc3RyaW5nXG59XG5cbmV4cG9ydCB0eXBlIEFQSUZpbGU8XG4gIFQgPSBBUElGaWxlQmFzZVByb3BlcnRpZXMsXG4gIFUgPSBBUElTdGF0dXNCYXNlUHJvcGVydGllcyxcbj4gPSBBUElTdGF0dXM8VT4gJlxuICBUICYge1xuICAgIGlkOiBzdHJpbmdcbiAgICBmaWxlTmFtZTogc3RyaW5nXG4gIH1cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFN0YXRlQ2hhbmdlIGV4dGVuZHMgUGFydGlhbDxBUElTdGF0dXM+IHtcbiAgdXBsb2FkU3RhdGU6IFVwbG9hZFN0YXRlXG4gIGZpbGVOYW1lOiBzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGaWxlU2VydmljZTxcbiAgVCA9IEFQSUZpbGVCYXNlUHJvcGVydGllcyxcbiAgVSA9IEFQSVN0YXR1c0Jhc2VQcm9wZXJ0aWVzLFxuPiB7XG4gIHVwbG9hZEZpbGUoZmlsZTogRmlsZSk6IE9ic2VydmFibGU8SHR0cEV2ZW50PEFQSUZpbGU8VCwgVT4+PlxuXG4gIGZldGNoRmlsZXMoc3RhdHVzZXM/OiBzdHJpbmdbXSk6IE9ic2VydmFibGU8QXJyYXk8QVBJRmlsZTxULCBVPj4+XG5cbiAgZmV0Y2hTdGF0dXMoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8QVBJU3RhdHVzPFU+IHwgdW5kZWZpbmVkPlxuICAvKiogVXNlcyBmaWxlIGFzIHBhcmFtIHRvIGZldGNoIGZpbGUgc3RhdHVzLiAqL1xuICBmZXRjaFN0YXR1c0Zvcj8oZmlsZTogQVBJRmlsZTxULCBVPik6IE9ic2VydmFibGU8QVBJU3RhdHVzPFU+IHwgdW5kZWZpbmVkPlxuXG4gIHJlbW92ZUZpbGUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD5cbiAgLyoqIFVzZXMgZmlsZSBhcyBwYXJhbSB0byByZW1vdmUgZmlsZS4gKi9cbiAgcmVtb3ZlRmlsZUZvcj8oZmlsZTogQVBJRmlsZTxULCBVPik6IE9ic2VydmFibGU8dm9pZD5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { HttpClientModule } from '@angular/common/http';
|
|
3
|
+
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
|
4
|
+
import { TRANSLOCO_SCOPE, TranslocoModule } from '@jsverse/transloco';
|
|
5
|
+
import { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared';
|
|
6
|
+
import { NggvModalModule } from '@sebgroup/green-angular/src/v-angular/modal';
|
|
7
|
+
import { NggvDragDropComponent } from './drag-drop.component';
|
|
8
|
+
import { ValuePipe } from './drag-drop.pipes';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class NggvDragDropModule {
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDragDropModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
12
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvDragDropModule, declarations: [ValuePipe, NggvDragDropComponent], imports: [HttpClientModule,
|
|
13
|
+
TranslocoModule,
|
|
14
|
+
NggvModalModule,
|
|
15
|
+
NggCoreWrapperModule,
|
|
16
|
+
CommonModule], exports: [NggvDragDropComponent] }); }
|
|
17
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDragDropModule, providers: [
|
|
18
|
+
{
|
|
19
|
+
provide: TRANSLOCO_SCOPE,
|
|
20
|
+
useValue: 'dragDrop',
|
|
21
|
+
},
|
|
22
|
+
], imports: [HttpClientModule,
|
|
23
|
+
TranslocoModule,
|
|
24
|
+
NggvModalModule,
|
|
25
|
+
NggCoreWrapperModule,
|
|
26
|
+
CommonModule] }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDragDropModule, decorators: [{
|
|
29
|
+
type: NgModule,
|
|
30
|
+
args: [{
|
|
31
|
+
imports: [
|
|
32
|
+
HttpClientModule,
|
|
33
|
+
TranslocoModule,
|
|
34
|
+
NggvModalModule,
|
|
35
|
+
NggCoreWrapperModule,
|
|
36
|
+
CommonModule,
|
|
37
|
+
],
|
|
38
|
+
declarations: [ValuePipe, NggvDragDropComponent],
|
|
39
|
+
providers: [
|
|
40
|
+
{
|
|
41
|
+
provide: TRANSLOCO_SCOPE,
|
|
42
|
+
useValue: 'dragDrop',
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
exports: [NggvDragDropComponent],
|
|
46
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
47
|
+
}]
|
|
48
|
+
}] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2RyYWctZHJvcC9kcmFnLWRyb3AubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQTtBQUN2RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFckUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFBO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFBO0FBQzdELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTs7QUFvQjdDLE1BQU0sT0FBTyxrQkFBa0I7K0dBQWxCLGtCQUFrQjtnSEFBbEIsa0JBQWtCLGlCQVZkLFNBQVMsRUFBRSxxQkFBcUIsYUFON0MsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLFlBQVksYUFTSixxQkFBcUI7Z0hBR3BCLGtCQUFrQixhQVRsQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxlQUFlO2dCQUN4QixRQUFRLEVBQUUsVUFBVTthQUNyQjtTQUNGLFlBWkMsZ0JBQWdCO1lBQ2hCLGVBQWU7WUFDZixlQUFlO1lBQ2Ysb0JBQW9CO1lBQ3BCLFlBQVk7OzRGQVlILGtCQUFrQjtrQkFsQjlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixlQUFlO3dCQUNmLG9CQUFvQjt3QkFDcEIsWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxTQUFTLEVBQUUscUJBQXFCLENBQUM7b0JBQ2hELFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsZUFBZTs0QkFDeEIsUUFBUSxFQUFFLFVBQVU7eUJBQ3JCO3FCQUNGO29CQUNELE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnXG5pbXBvcnQgeyBDVVNUT01fRUxFTUVOVFNfU0NIRU1BLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBUUkFOU0xPQ09fU0NPUEUsIFRyYW5zbG9jb01vZHVsZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbydcblxuaW1wb3J0IHsgTmdnQ29yZVdyYXBwZXJNb2R1bGUgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvbGliL3NoYXJlZCdcbmltcG9ydCB7IE5nZ3ZNb2RhbE1vZHVsZSB9IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvbW9kYWwnXG5pbXBvcnQgeyBOZ2d2RHJhZ0Ryb3BDb21wb25lbnQgfSBmcm9tICcuL2RyYWctZHJvcC5jb21wb25lbnQnXG5pbXBvcnQgeyBWYWx1ZVBpcGUgfSBmcm9tICcuL2RyYWctZHJvcC5waXBlcydcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIEh0dHBDbGllbnRNb2R1bGUsXG4gICAgVHJhbnNsb2NvTW9kdWxlLFxuICAgIE5nZ3ZNb2RhbE1vZHVsZSxcbiAgICBOZ2dDb3JlV3JhcHBlck1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1ZhbHVlUGlwZSwgTmdndkRyYWdEcm9wQ29tcG9uZW50XSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogVFJBTlNMT0NPX1NDT1BFLFxuICAgICAgdXNlVmFsdWU6ICdkcmFnRHJvcCcsXG4gICAgfSxcbiAgXSxcbiAgZXhwb3J0czogW05nZ3ZEcmFnRHJvcENvbXBvbmVudF0sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndkRyYWdEcm9wTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { inject, KeyValueDiffers, Pipe, } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ValuePipe {
|
|
4
|
+
constructor(differs) {
|
|
5
|
+
this.differs = differs;
|
|
6
|
+
this.values = [];
|
|
7
|
+
}
|
|
8
|
+
transform(input) {
|
|
9
|
+
if (!input || (!(input instanceof Map) && typeof input !== 'object')) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
if (!this.differ) {
|
|
13
|
+
// make a differ for whatever type we've been passed in
|
|
14
|
+
this.differ = this.differs.find(input).create();
|
|
15
|
+
}
|
|
16
|
+
const differChanges = this.differ.diff(input);
|
|
17
|
+
if (differChanges) {
|
|
18
|
+
this.values = [];
|
|
19
|
+
differChanges.forEachItem((r) => {
|
|
20
|
+
this.values.push(r.currentValue);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
return this.values;
|
|
24
|
+
}
|
|
25
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePipe, deps: [{ token: i0.KeyValueDiffers }], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
26
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ValuePipe, name: "value", pure: false }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValuePipe, decorators: [{
|
|
29
|
+
type: Pipe,
|
|
30
|
+
args: [{ name: 'value', pure: false }]
|
|
31
|
+
}], ctorParameters: () => [{ type: i0.KeyValueDiffers }] });
|
|
32
|
+
/**
|
|
33
|
+
* Stand-alone version of existing value pipe.
|
|
34
|
+
*
|
|
35
|
+
* Impure flag needed due to keep track of changes in complex values (such as objects or arrays).
|
|
36
|
+
*/
|
|
37
|
+
export class ValueImpurePipe {
|
|
38
|
+
constructor() {
|
|
39
|
+
this.differs = inject(KeyValueDiffers);
|
|
40
|
+
this.values = [];
|
|
41
|
+
}
|
|
42
|
+
transform(input) {
|
|
43
|
+
if (!input || (!(input instanceof Map) && typeof input !== 'object')) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
if (!this.differ) {
|
|
47
|
+
// make a differ for whatever type we've been passed in
|
|
48
|
+
this.differ = this.differs.find(input).create();
|
|
49
|
+
}
|
|
50
|
+
const differChanges = this.differ.diff(input);
|
|
51
|
+
if (differChanges) {
|
|
52
|
+
this.values = [];
|
|
53
|
+
differChanges.forEachItem(({ currentValue }) => {
|
|
54
|
+
this.values.push(currentValue);
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
return this.values;
|
|
58
|
+
}
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValueImpurePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
60
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: ValueImpurePipe, isStandalone: true, name: "valueImpure", pure: false }); }
|
|
61
|
+
}
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ValueImpurePipe, decorators: [{
|
|
63
|
+
type: Pipe,
|
|
64
|
+
args: [{
|
|
65
|
+
name: 'valueImpure',
|
|
66
|
+
pure: false,
|
|
67
|
+
standalone: true,
|
|
68
|
+
}]
|
|
69
|
+
}] });
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLnBpcGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJhZy1kcm9wL2RyYWctZHJvcC5waXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUlOLGVBQWUsRUFDZixJQUFJLEdBRUwsTUFBTSxlQUFlLENBQUE7O0FBR3RCLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQTZCLE9BQXdCO1FBQXhCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBRzdDLFdBQU0sR0FBZSxFQUFFLENBQUE7SUFIeUIsQ0FBQztJQVl6RCxTQUFTLENBQ1AsS0FBZ0U7UUFFaEUsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFlBQVksR0FBRyxDQUFDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNyRSxPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2pCLHVEQUF1RDtZQUN2RCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFBO1FBQ2pELENBQUM7UUFFRCxNQUFNLGFBQWEsR0FBaUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2xFLEtBQVksQ0FDYixDQUFBO1FBRUQsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtZQUNoQixhQUFhLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBNkIsRUFBRSxFQUFFO2dCQUMxRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDbEMsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBO0lBQ3BCLENBQUM7K0dBcENVLFNBQVM7NkdBQVQsU0FBUzs7NEZBQVQsU0FBUztrQkFEckIsSUFBSTttQkFBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTs7QUF3Q3BDOzs7O0dBSUc7QUFNSCxNQUFNLE9BQU8sZUFBZTtJQUw1QjtRQU1tQixZQUFPLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFBO1FBRzFDLFdBQU0sR0FBZSxFQUFFLENBQUE7S0FtQ2hDO0lBMUJDLFNBQVMsQ0FDUCxLQUFnRTtRQUVoRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssWUFBWSxHQUFHLENBQUMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3JFLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDakIsdURBQXVEO1lBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUE7UUFDakQsQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFpQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDbEUsS0FBWSxDQUNiLENBQUE7UUFFRCxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFBO1lBQ2hCLGFBQWEsQ0FBQyxXQUFXLENBQ3ZCLENBQUMsRUFBRSxZQUFZLEVBQThCLEVBQUUsRUFBRTtnQkFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7WUFDaEMsQ0FBQyxDQUNGLENBQUE7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFBO0lBQ3BCLENBQUM7K0dBdENVLGVBQWU7NkdBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFMM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtvQkFDbkIsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgaW5qZWN0LFxuICBLZXlWYWx1ZUNoYW5nZVJlY29yZCxcbiAgS2V5VmFsdWVDaGFuZ2VzLFxuICBLZXlWYWx1ZURpZmZlcixcbiAgS2V5VmFsdWVEaWZmZXJzLFxuICBQaXBlLFxuICBQaXBlVHJhbnNmb3JtLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuXG5AUGlwZSh7IG5hbWU6ICd2YWx1ZScsIHB1cmU6IGZhbHNlIH0pXG5leHBvcnQgY2xhc3MgVmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGlmZmVyczogS2V5VmFsdWVEaWZmZXJzKSB7fVxuXG4gIHByaXZhdGUgZGlmZmVyITogS2V5VmFsdWVEaWZmZXI8YW55LCBhbnk+XG4gIHByaXZhdGUgdmFsdWVzOiBBcnJheTxhbnk+ID0gW11cblxuICB0cmFuc2Zvcm08SywgVj4oaW5wdXQ6IG51bGwpOiBudWxsXG4gIHRyYW5zZm9ybTxWPihpbnB1dDogeyBba2V5OiBzdHJpbmddOiBWIH0gfCBNYXA8c3RyaW5nLCBWPik6IEFycmF5PFY+XG4gIHRyYW5zZm9ybTxWPihcbiAgICBpbnB1dDogeyBba2V5OiBzdHJpbmddOiBWIH0gfCBNYXA8c3RyaW5nLCBWPiB8IG51bGwsXG4gICk6IEFycmF5PFY+IHwgbnVsbFxuICB0cmFuc2Zvcm08SywgVj4oaW5wdXQ6IE1hcDxLLCBWPik6IEFycmF5PFY+XG4gIHRyYW5zZm9ybTxLLCBWPihpbnB1dDogTWFwPEssIFY+IHwgbnVsbCk6IEFycmF5PFY+IHwgbnVsbFxuICB0cmFuc2Zvcm08SywgVj4oXG4gICAgaW5wdXQ6IG51bGwgfCB7IFtrZXk6IHN0cmluZ106IFY7IFtrZXk6IG51bWJlcl06IFYgfSB8IE1hcDxLLCBWPixcbiAgKTogQXJyYXk8Vj4gfCBudWxsIHtcbiAgICBpZiAoIWlucHV0IHx8ICghKGlucHV0IGluc3RhbmNlb2YgTWFwKSAmJiB0eXBlb2YgaW5wdXQgIT09ICdvYmplY3QnKSkge1xuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuZGlmZmVyKSB7XG4gICAgICAvLyBtYWtlIGEgZGlmZmVyIGZvciB3aGF0ZXZlciB0eXBlIHdlJ3ZlIGJlZW4gcGFzc2VkIGluXG4gICAgICB0aGlzLmRpZmZlciA9IHRoaXMuZGlmZmVycy5maW5kKGlucHV0KS5jcmVhdGUoKVxuICAgIH1cblxuICAgIGNvbnN0IGRpZmZlckNoYW5nZXM6IEtleVZhbHVlQ2hhbmdlczxLLCBWPiB8IG51bGwgPSB0aGlzLmRpZmZlci5kaWZmKFxuICAgICAgaW5wdXQgYXMgYW55LFxuICAgIClcblxuICAgIGlmIChkaWZmZXJDaGFuZ2VzKSB7XG4gICAgICB0aGlzLnZhbHVlcyA9IFtdXG4gICAgICBkaWZmZXJDaGFuZ2VzLmZvckVhY2hJdGVtKChyOiBLZXlWYWx1ZUNoYW5nZVJlY29yZDxLLCBWPikgPT4ge1xuICAgICAgICB0aGlzLnZhbHVlcy5wdXNoKHIuY3VycmVudFZhbHVlKVxuICAgICAgfSlcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWVzXG4gIH1cbn1cblxuLyoqXG4gKiBTdGFuZC1hbG9uZSB2ZXJzaW9uIG9mIGV4aXN0aW5nIHZhbHVlIHBpcGUuXG4gKlxuICogSW1wdXJlIGZsYWcgbmVlZGVkIGR1ZSB0byBrZWVwIHRyYWNrIG9mIGNoYW5nZXMgaW4gY29tcGxleCB2YWx1ZXMgKHN1Y2ggYXMgb2JqZWN0cyBvciBhcnJheXMpLlxuICovXG5AUGlwZSh7XG4gIG5hbWU6ICd2YWx1ZUltcHVyZScsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBWYWx1ZUltcHVyZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkaWZmZXJzID0gaW5qZWN0KEtleVZhbHVlRGlmZmVycylcblxuICBwcml2YXRlIGRpZmZlciE6IEtleVZhbHVlRGlmZmVyPGFueSwgYW55PlxuICBwcml2YXRlIHZhbHVlczogQXJyYXk8YW55PiA9IFtdXG5cbiAgdHJhbnNmb3JtPEssIFY+KGlucHV0OiBudWxsKTogbnVsbFxuICB0cmFuc2Zvcm08Vj4oaW5wdXQ6IHsgW2tleTogc3RyaW5nXTogViB9IHwgTWFwPHN0cmluZywgVj4pOiBBcnJheTxWPlxuICB0cmFuc2Zvcm08Vj4oXG4gICAgaW5wdXQ6IHsgW2tleTogc3RyaW5nXTogViB9IHwgTWFwPHN0cmluZywgVj4gfCBudWxsLFxuICApOiBBcnJheTxWPiB8IG51bGxcbiAgdHJhbnNmb3JtPEssIFY+KGlucHV0OiBNYXA8SywgVj4pOiBBcnJheTxWPlxuICB0cmFuc2Zvcm08SywgVj4oaW5wdXQ6IE1hcDxLLCBWPiB8IG51bGwpOiBBcnJheTxWPiB8IG51bGxcbiAgdHJhbnNmb3JtPEssIFY+KFxuICAgIGlucHV0OiBudWxsIHwgeyBba2V5OiBzdHJpbmddOiBWOyBba2V5OiBudW1iZXJdOiBWIH0gfCBNYXA8SywgVj4sXG4gICk6IEFycmF5PFY+IHwgbnVsbCB7XG4gICAgaWYgKCFpbnB1dCB8fCAoIShpbnB1dCBpbnN0YW5jZW9mIE1hcCkgJiYgdHlwZW9mIGlucHV0ICE9PSAnb2JqZWN0JykpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRpZmZlcikge1xuICAgICAgLy8gbWFrZSBhIGRpZmZlciBmb3Igd2hhdGV2ZXIgdHlwZSB3ZSd2ZSBiZWVuIHBhc3NlZCBpblxuICAgICAgdGhpcy5kaWZmZXIgPSB0aGlzLmRpZmZlcnMuZmluZChpbnB1dCkuY3JlYXRlKClcbiAgICB9XG5cbiAgICBjb25zdCBkaWZmZXJDaGFuZ2VzOiBLZXlWYWx1ZUNoYW5nZXM8SywgVj4gfCBudWxsID0gdGhpcy5kaWZmZXIuZGlmZihcbiAgICAgIGlucHV0IGFzIGFueSxcbiAgICApXG5cbiAgICBpZiAoZGlmZmVyQ2hhbmdlcykge1xuICAgICAgdGhpcy52YWx1ZXMgPSBbXVxuICAgICAgZGlmZmVyQ2hhbmdlcy5mb3JFYWNoSXRlbShcbiAgICAgICAgKHsgY3VycmVudFZhbHVlIH06IEtleVZhbHVlQ2hhbmdlUmVjb3JkPEssIFY+KSA9PiB7XG4gICAgICAgICAgdGhpcy52YWx1ZXMucHVzaChjdXJyZW50VmFsdWUpXG4gICAgICAgIH0sXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnZhbHVlc1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/* eslint-disable no-console */
|
|
2
|
+
import { throwError, timer } from 'rxjs';
|
|
3
|
+
import { finalize, mergeMap } from 'rxjs/operators';
|
|
4
|
+
/**
|
|
5
|
+
* Helper to extend the base file with {@link APIFile} defaults
|
|
6
|
+
* @param file file base that will be extended with {@link APIFile} defaults
|
|
7
|
+
* @param data extra data to override defaults
|
|
8
|
+
*/
|
|
9
|
+
export const extendFile = (file, ...data) => {
|
|
10
|
+
return Object.assign({
|
|
11
|
+
id: file ? btoa(file.name) : '',
|
|
12
|
+
fileName: file ? file.name : 'na',
|
|
13
|
+
status: '',
|
|
14
|
+
statusReasonInformation: null,
|
|
15
|
+
principal: '',
|
|
16
|
+
uploadDate: (file
|
|
17
|
+
? new Date(file.lastModified)
|
|
18
|
+
: new Date()).toISOString(),
|
|
19
|
+
registrarId: '',
|
|
20
|
+
registrarName: '',
|
|
21
|
+
progress: 0,
|
|
22
|
+
uploadState: 'local',
|
|
23
|
+
uploadRequests: undefined,
|
|
24
|
+
raw: file,
|
|
25
|
+
}, ...data);
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Checks if file matches allowed mime types
|
|
29
|
+
* @param type file mime type
|
|
30
|
+
* @param accept allowed mime types
|
|
31
|
+
*/
|
|
32
|
+
export const verifyAccept = (type, accept) => {
|
|
33
|
+
if (!accept)
|
|
34
|
+
return true;
|
|
35
|
+
const regex = new RegExp(accept.replace(/\*/g, '.*').replace(/\s*,\s*/g, '|'));
|
|
36
|
+
return regex.test(type);
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Determines if browser supports drag and drop
|
|
40
|
+
*/
|
|
41
|
+
export const isDragDropAvailable = () => {
|
|
42
|
+
const div = document.createElement('div');
|
|
43
|
+
return (('draggable' in div || ('ondragstart' in div && 'ondrop' in div)) &&
|
|
44
|
+
'FormData' in window &&
|
|
45
|
+
'FileReader' in window);
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Pick only specified keys from a given object
|
|
49
|
+
* @param keys keys to pick from a given object
|
|
50
|
+
* @param object to extract keys from
|
|
51
|
+
*/
|
|
52
|
+
export const pick = (object, ...keys) => {
|
|
53
|
+
const copy = {};
|
|
54
|
+
keys.forEach((key) => {
|
|
55
|
+
copy[key] = object[key];
|
|
56
|
+
});
|
|
57
|
+
return copy;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Will retry running the observable when an error occurs to a maximum limit, increasing delay between executions.
|
|
61
|
+
* @param options specifies number of retries, scaling duration and statuses to exclude
|
|
62
|
+
*/
|
|
63
|
+
export const retryStrategy = ({ maxRetryAttempts = 3, scalingDuration = 1000, excludedStatusCodes = [], } = {}) => (attempts) => {
|
|
64
|
+
return attempts.pipe(mergeMap((error, i) => {
|
|
65
|
+
const retryAttempt = i + 1;
|
|
66
|
+
// if maximum number of retries have been met
|
|
67
|
+
// or response is a status code we don't wish to retry, throw error
|
|
68
|
+
if (retryAttempt > maxRetryAttempts ||
|
|
69
|
+
excludedStatusCodes.find((e) => e === error.status)) {
|
|
70
|
+
return throwError(() => error);
|
|
71
|
+
}
|
|
72
|
+
console.warn(`Attempt ${retryAttempt}: retrying in ${retryAttempt * scalingDuration}ms`);
|
|
73
|
+
return timer(retryAttempt * scalingDuration);
|
|
74
|
+
}), finalize(() => console.warn(`Failed after ${maxRetryAttempts} retry attempts, standing down.`)));
|
|
75
|
+
};
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1kcm9wLnV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJhZy1kcm9wL2RyYWctZHJvcC51dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQkFBK0I7QUFDL0IsT0FBTyxFQUFjLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDcEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUluRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQ3hCLElBQXNCLEVBQ3RCLEdBQUcsSUFBc0QsRUFDcEMsRUFBRTtJQUN2QixPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQ2xCO1FBQ0UsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtRQUMvQixRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ2pDLE1BQU0sRUFBRSxFQUFFO1FBQ1YsdUJBQXVCLEVBQUUsSUFBSTtRQUM3QixTQUFTLEVBQUUsRUFBRTtRQUNiLFVBQVUsRUFBRSxDQUFDLElBQUk7WUFDZixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztZQUM3QixDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FDYixDQUFDLFdBQVcsRUFBRTtRQUNmLFdBQVcsRUFBRSxFQUFFO1FBQ2YsYUFBYSxFQUFFLEVBQUU7UUFDakIsUUFBUSxFQUFFLENBQUM7UUFDWCxXQUFXLEVBQUUsT0FBTztRQUNwQixjQUFjLEVBQUUsU0FBUztRQUN6QixHQUFHLEVBQUUsSUFBSTtLQUNhLEVBQ3hCLEdBQUcsSUFBSSxDQUNSLENBQUE7QUFDSCxDQUFDLENBQUE7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsSUFBWSxFQUFFLE1BQWUsRUFBRSxFQUFFO0lBQzVELElBQUksQ0FBQyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFDeEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQzlFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUN6QixDQUFDLENBQUE7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLEdBQUcsRUFBRTtJQUN0QyxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pDLE9BQU8sQ0FDTCxDQUFDLFdBQVcsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksR0FBRyxJQUFJLFFBQVEsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUNqRSxVQUFVLElBQUksTUFBTTtRQUNwQixZQUFZLElBQUksTUFBTSxDQUN2QixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLElBQUksR0FBRyxDQUNsQixNQUFTLEVBQ1QsR0FBRyxJQUFTLEVBQ0EsRUFBRTtJQUNkLE1BQU0sSUFBSSxHQUFRLEVBQUUsQ0FBQTtJQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDbkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN6QixDQUFDLENBQUMsQ0FBQTtJQUNGLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQyxDQUFBO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUN4QixDQUFDLEVBQ0MsZ0JBQWdCLEdBQUcsQ0FBQyxFQUNwQixlQUFlLEdBQUcsSUFBSSxFQUN0QixtQkFBbUIsR0FBRyxFQUFFLE1BS3RCLEVBQUUsRUFBRSxFQUFFLENBQ1YsQ0FBQyxRQUF5QixFQUFFLEVBQUU7SUFDNUIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUNsQixRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDcEIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMxQiw2Q0FBNkM7UUFDN0MsbUVBQW1FO1FBQ25FLElBQ0UsWUFBWSxHQUFHLGdCQUFnQjtZQUMvQixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQ25ELENBQUM7WUFDRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNoQyxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FDVixXQUFXLFlBQVksaUJBQWlCLFlBQVksR0FBRyxlQUFlLElBQUksQ0FDM0UsQ0FBQTtRQUNELE9BQU8sS0FBSyxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsQ0FBQTtJQUM5QyxDQUFDLENBQUMsRUFDRixRQUFRLENBQUMsR0FBRyxFQUFFLENBQ1osT0FBTyxDQUFDLElBQUksQ0FDVixnQkFBZ0IsZ0JBQWdCLGlDQUFpQyxDQUNsRSxDQUNGLENBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IsIHRpbWVyIH0gZnJvbSAncnhqcydcbmltcG9ydCB7IGZpbmFsaXplLCBtZXJnZU1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJ1xuXG5pbXBvcnQgeyBBUElGaWxlLCBMb2NhbEZpbGUgfSBmcm9tICcuL2RyYWctZHJvcC5tb2RlbHMnXG5cbi8qKlxuICogSGVscGVyIHRvIGV4dGVuZCB0aGUgYmFzZSBmaWxlIHdpdGgge0BsaW5rIEFQSUZpbGV9IGRlZmF1bHRzXG4gKiBAcGFyYW0gZmlsZSBmaWxlIGJhc2UgdGhhdCB3aWxsIGJlIGV4dGVuZGVkIHdpdGgge0BsaW5rIEFQSUZpbGV9IGRlZmF1bHRzXG4gKiBAcGFyYW0gZGF0YSBleHRyYSBkYXRhIHRvIG92ZXJyaWRlIGRlZmF1bHRzXG4gKi9cbmV4cG9ydCBjb25zdCBleHRlbmRGaWxlID0gKFxuICBmaWxlOiBGaWxlIHwgdW5kZWZpbmVkLFxuICAuLi5kYXRhOiBBcnJheTxQYXJ0aWFsPE9taXQ8TG9jYWxGaWxlLCAncmF3Jz4gJiBBUElGaWxlPj5cbik6IExvY2FsRmlsZSAmIEFQSUZpbGUgPT4ge1xuICByZXR1cm4gT2JqZWN0LmFzc2lnbihcbiAgICB7XG4gICAgICBpZDogZmlsZSA/IGJ0b2EoZmlsZS5uYW1lKSA6ICcnLFxuICAgICAgZmlsZU5hbWU6IGZpbGUgPyBmaWxlLm5hbWUgOiAnbmEnLFxuICAgICAgc3RhdHVzOiAnJyxcbiAgICAgIHN0YXR1c1JlYXNvbkluZm9ybWF0aW9uOiBudWxsLFxuICAgICAgcHJpbmNpcGFsOiAnJyxcbiAgICAgIHVwbG9hZERhdGU6IChmaWxlXG4gICAgICAgID8gbmV3IERhdGUoZmlsZS5sYXN0TW9kaWZpZWQpXG4gICAgICAgIDogbmV3IERhdGUoKVxuICAgICAgKS50b0lTT1N0cmluZygpLFxuICAgICAgcmVnaXN0cmFySWQ6ICcnLFxuICAgICAgcmVnaXN0cmFyTmFtZTogJycsXG4gICAgICBwcm9ncmVzczogMCxcbiAgICAgIHVwbG9hZFN0YXRlOiAnbG9jYWwnLFxuICAgICAgdXBsb2FkUmVxdWVzdHM6IHVuZGVmaW5lZCxcbiAgICAgIHJhdzogZmlsZSxcbiAgICB9IGFzIExvY2FsRmlsZSAmIEFQSUZpbGUsXG4gICAgLi4uZGF0YSxcbiAgKVxufVxuXG4vKipcbiAqIENoZWNrcyBpZiBmaWxlIG1hdGNoZXMgYWxsb3dlZCBtaW1lIHR5cGVzXG4gKiBAcGFyYW0gdHlwZSBmaWxlIG1pbWUgdHlwZVxuICogQHBhcmFtIGFjY2VwdCBhbGxvd2VkIG1pbWUgdHlwZXNcbiAqL1xuZXhwb3J0IGNvbnN0IHZlcmlmeUFjY2VwdCA9ICh0eXBlOiBzdHJpbmcsIGFjY2VwdD86IHN0cmluZykgPT4ge1xuICBpZiAoIWFjY2VwdCkgcmV0dXJuIHRydWVcbiAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGFjY2VwdC5yZXBsYWNlKC9cXCovZywgJy4qJykucmVwbGFjZSgvXFxzKixcXHMqL2csICd8JykpXG4gIHJldHVybiByZWdleC50ZXN0KHR5cGUpXG59XG5cbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBicm93c2VyIHN1cHBvcnRzIGRyYWcgYW5kIGRyb3BcbiAqL1xuZXhwb3J0IGNvbnN0IGlzRHJhZ0Ryb3BBdmFpbGFibGUgPSAoKSA9PiB7XG4gIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpXG4gIHJldHVybiAoXG4gICAgKCdkcmFnZ2FibGUnIGluIGRpdiB8fCAoJ29uZHJhZ3N0YXJ0JyBpbiBkaXYgJiYgJ29uZHJvcCcgaW4gZGl2KSkgJiZcbiAgICAnRm9ybURhdGEnIGluIHdpbmRvdyAmJlxuICAgICdGaWxlUmVhZGVyJyBpbiB3aW5kb3dcbiAgKVxufVxuXG4vKipcbiAqIFBpY2sgb25seSBzcGVjaWZpZWQga2V5cyBmcm9tIGEgZ2l2ZW4gb2JqZWN0XG4gKiBAcGFyYW0ga2V5cyBrZXlzIHRvIHBpY2sgZnJvbSBhIGdpdmVuIG9iamVjdFxuICogQHBhcmFtIG9iamVjdCB0byBleHRyYWN0IGtleXMgZnJvbVxuICovXG5leHBvcnQgY29uc3QgcGljayA9IDxULCBLIGV4dGVuZHMga2V5b2YgVD4oXG4gIG9iamVjdDogVCxcbiAgLi4ua2V5czogS1tdXG4pOiBQaWNrPFQsIEs+ID0+IHtcbiAgY29uc3QgY29weTogYW55ID0ge31cbiAga2V5cy5mb3JFYWNoKChrZXkpID0+IHtcbiAgICBjb3B5W2tleV0gPSBvYmplY3Rba2V5XVxuICB9KVxuICByZXR1cm4gY29weVxufVxuXG4vKipcbiAqIFdpbGwgcmV0cnkgcnVubmluZyB0aGUgb2JzZXJ2YWJsZSB3aGVuIGFuIGVycm9yIG9jY3VycyB0byBhIG1heGltdW0gbGltaXQsIGluY3JlYXNpbmcgZGVsYXkgYmV0d2VlbiBleGVjdXRpb25zLlxuICogQHBhcmFtIG9wdGlvbnMgc3BlY2lmaWVzIG51bWJlciBvZiByZXRyaWVzLCBzY2FsaW5nIGR1cmF0aW9uIGFuZCBzdGF0dXNlcyB0byBleGNsdWRlXG4gKi9cbmV4cG9ydCBjb25zdCByZXRyeVN0cmF0ZWd5ID1cbiAgKHtcbiAgICBtYXhSZXRyeUF0dGVtcHRzID0gMyxcbiAgICBzY2FsaW5nRHVyYXRpb24gPSAxMDAwLFxuICAgIGV4Y2x1ZGVkU3RhdHVzQ29kZXMgPSBbXSxcbiAgfToge1xuICAgIG1heFJldHJ5QXR0ZW1wdHM/OiBudW1iZXJcbiAgICBzY2FsaW5nRHVyYXRpb24/OiBudW1iZXJcbiAgICBleGNsdWRlZFN0YXR1c0NvZGVzPzogbnVtYmVyW11cbiAgfSA9IHt9KSA9PlxuICAoYXR0ZW1wdHM6IE9ic2VydmFibGU8YW55PikgPT4ge1xuICAgIHJldHVybiBhdHRlbXB0cy5waXBlKFxuICAgICAgbWVyZ2VNYXAoKGVycm9yLCBpKSA9PiB7XG4gICAgICAgIGNvbnN0IHJldHJ5QXR0ZW1wdCA9IGkgKyAxXG4gICAgICAgIC8vIGlmIG1heGltdW0gbnVtYmVyIG9mIHJldHJpZXMgaGF2ZSBiZWVuIG1ldFxuICAgICAgICAvLyBvciByZXNwb25zZSBpcyBhIHN0YXR1cyBjb2RlIHdlIGRvbid0IHdpc2ggdG8gcmV0cnksIHRocm93IGVycm9yXG4gICAgICAgIGlmIChcbiAgICAgICAgICByZXRyeUF0dGVtcHQgPiBtYXhSZXRyeUF0dGVtcHRzIHx8XG4gICAgICAgICAgZXhjbHVkZWRTdGF0dXNDb2Rlcy5maW5kKChlKSA9PiBlID09PSBlcnJvci5zdGF0dXMpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKVxuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgQXR0ZW1wdCAke3JldHJ5QXR0ZW1wdH06IHJldHJ5aW5nIGluICR7cmV0cnlBdHRlbXB0ICogc2NhbGluZ0R1cmF0aW9ufW1zYCxcbiAgICAgICAgKVxuICAgICAgICByZXR1cm4gdGltZXIocmV0cnlBdHRlbXB0ICogc2NhbGluZ0R1cmF0aW9uKVxuICAgICAgfSksXG4gICAgICBmaW5hbGl6ZSgoKSA9PlxuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYEZhaWxlZCBhZnRlciAke21heFJldHJ5QXR0ZW1wdHN9IHJldHJ5IGF0dGVtcHRzLCBzdGFuZGluZyBkb3duLmAsXG4gICAgICAgICksXG4gICAgICApLFxuICAgIClcbiAgfVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './drag-drop.component';
|
|
2
|
+
export * from './drag-drop.models';
|
|
3
|
+
export * from './drag-drop.module';
|
|
4
|
+
export * from './drag-drop.pipes';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kcmFnLWRyb3AvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQTtBQUNyQyxjQUFjLG9CQUFvQixDQUFBO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUE7QUFDbEMsY0FBYyxtQkFBbUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZHJhZy1kcm9wLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1kcm9wLm1vZGVscydcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1kcm9wLm1vZHVsZSdcbmV4cG9ydCAqIGZyb20gJy4vZHJhZy1kcm9wLnBpcGVzJ1xuIl19
|
|
@@ -8,7 +8,7 @@ import * as i1 from "@angular/common";
|
|
|
8
8
|
import * as i2 from "../typeahead/typeahead-highlight/typeahead-highlight.component";
|
|
9
9
|
import * as i3 from "@sebgroup/green-angular/src/v-angular/tooltip";
|
|
10
10
|
import * as i4 from "@jsverse/transloco";
|
|
11
|
-
export class
|
|
11
|
+
export class NggvDropdownListComponent {
|
|
12
12
|
set expanded(state) {
|
|
13
13
|
this.setExpanded(state);
|
|
14
14
|
}
|
|
@@ -23,6 +23,12 @@ export class NgvDropdownListComponent {
|
|
|
23
23
|
this.id = window.nggv?.nextId();
|
|
24
24
|
/** Special property used for selecting DOM elements during automated UI testing. */
|
|
25
25
|
this.thook = 'dropdown';
|
|
26
|
+
/**
|
|
27
|
+
* Used to control if "selectedValueChanged" only should emit distinct changes, or each time a value is selected
|
|
28
|
+
* When true, value is not emitted if there's no distinct change
|
|
29
|
+
* When false, value is emitted every time an option is selected
|
|
30
|
+
* */
|
|
31
|
+
this.onlyEmitDistinctChanges = true;
|
|
26
32
|
this.selectedValueChanged = new EventEmitter();
|
|
27
33
|
this.closed = new EventEmitter();
|
|
28
34
|
/** The current active option based on numeric index. */
|
|
@@ -54,9 +60,12 @@ export class NgvDropdownListComponent {
|
|
|
54
60
|
updateState(option, event) {
|
|
55
61
|
if (option.disabled)
|
|
56
62
|
return;
|
|
57
|
-
this.
|
|
58
|
-
|
|
59
|
-
|
|
63
|
+
if (!this.onlyEmitDistinctChanges ||
|
|
64
|
+
!this.dropdownUtils.deepEqual(this.selectedValue, option)) {
|
|
65
|
+
this.selectedValue = option;
|
|
66
|
+
this.state = option;
|
|
67
|
+
this.selectedValueChanged.emit(option);
|
|
68
|
+
}
|
|
60
69
|
this.setExpanded(false);
|
|
61
70
|
event.stopPropagation();
|
|
62
71
|
}
|
|
@@ -143,10 +152,12 @@ export class NgvDropdownListComponent {
|
|
|
143
152
|
const options = this.dropdownUtils.flattenOptions(this.options, !this.optionContentTpl);
|
|
144
153
|
let option;
|
|
145
154
|
switch (event.key) {
|
|
155
|
+
case 'Tab':
|
|
146
156
|
case 'Escape':
|
|
147
157
|
this.setExpanded(false);
|
|
148
158
|
this.closed.emit();
|
|
149
159
|
break;
|
|
160
|
+
case 'Space': // Select the currently chosen value
|
|
150
161
|
case 'Enter': // Select the currently chosen value
|
|
151
162
|
option = options[this.activeIndex];
|
|
152
163
|
this.updateState(option, event);
|
|
@@ -206,12 +217,12 @@ export class NgvDropdownListComponent {
|
|
|
206
217
|
}, 0);
|
|
207
218
|
}
|
|
208
219
|
}
|
|
209
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
210
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type:
|
|
220
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownListComponent, deps: [{ token: TRANSLOCO_SCOPE, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
221
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: NggvDropdownListComponent, selector: "nggv-dropdown-list", inputs: { expanded: "expanded", state: "state", scrollOffset: "scrollOffset", optionContentTpl: "optionContentTpl", groupLabelTpl: "groupLabelTpl", id: "id", thook: "thook", options: "options", textToHighlight: "textToHighlight", onlyEmitDistinctChanges: "onlyEmitDistinctChanges" }, outputs: { selectedValueChanged: "selectedValueChanged", closed: "closed" }, host: { listeners: { "document:keydown": "onKeyDown($event)", "document:keyup": "onKeyUp($event)" }, properties: { "attr.id": "this.id", "attr.data-thook": "this.thook" } }, viewQueries: [{ propertyName: "optionRefs", predicate: ["optionRefs"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <!-- group label template (default or custom) -->\n <ng-template\n *ngTemplateOutlet=\"listGroupTemplate; context: { $implicit: item }\"\n ></ng-template>\n\n <ul [attr.aria-disabled]=\"item.disabled\" class=\"gds-reset\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [nggvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding nggvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #listGroupTemplate let-item>\n <ng-container *ngIf=\"groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"groupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"basicGroupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <nggv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </nggv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n\n <ng-template #basicGroupLabelTpl let-item>\n <div class=\"nggv-group-label\">{{ t(item.label) }}</div>\n </ng-template>\n</ng-container>\n", styles: [":host{--gds-ref-pallet-base300: hsl(0, 0%, 87%);--gds-ref-pallet-base400: hsl(0, 0%, 81%);--gds-ref-pallet-base500: hsl(0, 0%, 68%);--sg-z-index-dropdown: ;--sg-z-index-popover: 1060;--sg-z-index-dropdown-backdrop: 990;--sg-z-index-dropdown: 2000;--sg-popover-background: #fff;--sg-popover-box-shadow: 0 .125rem .375rem rgba(0, 0, 0, .15);--text-primary-color: #333;position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));z-index:var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;max-height:500px;overflow-y:auto;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host ul[role=listbox] .group ul{list-style-type:none;padding:0}:host ul[role=listbox] .group:hover{color:inherit;background-color:inherit}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover{background-color:var(--gds-ref-pallet-base400)}:host .gds-dropdown__options__label:focus-visible,:host .gds-dropdown__options__label[aria-focus=true]{background-color:var(--gds-ref-pallet-base300)}:host .gds-dropdown__options__label:active{background-color:var(--gds-ref-pallet-base500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}:host li+.group{padding-top:0}:host .nggv-group-label{cursor:pointer;background-color:#e7e7e7;padding-inline:1rem;padding-block:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.NggvTypeaheadHighlightComponent, selector: "nggv-typeahead-highlight", inputs: ["textContent", "textToHighlight"] }, { kind: "directive", type: i3.NggvTooltipDirective, selector: "[nggvTooltip]", inputs: ["nggvTooltip", "thook", "placement", "shown", "offset", "resizeThrottle", "tooltipId", "maxWidth"], outputs: ["nggvShow", "nggvHide"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
|
|
211
222
|
}
|
|
212
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type:
|
|
223
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDropdownListComponent, decorators: [{
|
|
213
224
|
type: Component,
|
|
214
|
-
args: [{ selector: 'nggv-dropdown-list', template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <
|
|
225
|
+
args: [{ selector: 'nggv-dropdown-list', template: "<ng-container *transloco=\"let t; read: scope\">\n <ul\n class=\"gds-dropdown__options card options gds-reset\"\n [class.gds-dropdown__options-expanded]=\"expanded\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.data-thook]=\"thook + '-options'\"\n [attr.aria-labelledby]=\"id + '-label'\"\n [attr.aria-activedescendant]=\"\n state ? id + '-option-' + state?.key : undefined\n \"\n >\n <ng-container *ngFor=\"let item of options\">\n <!-- OPTION -->\n <ng-container *ngIf=\"!isGroup(item)\">\n <ng-template\n *ngTemplateOutlet=\"listItemTemplate; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n\n <!-- OPTION GROUP -->\n <li\n class=\"gds-dropdown__options__label group\"\n [attr.data-thook]=\"thook + '-option-group'\"\n *ngIf=\"isGroup(item)\"\n >\n <!-- group label template (default or custom) -->\n <ng-template\n *ngTemplateOutlet=\"listGroupTemplate; context: { $implicit: item }\"\n ></ng-template>\n\n <ul [attr.aria-disabled]=\"item.disabled\" class=\"gds-reset\">\n <ng-container *ngFor=\"let option of castGroup(item).options\">\n <ng-template\n *ngTemplateOutlet=\"\n listItemTemplate;\n context: { $implicit: option }\n \"\n ></ng-template>\n </ng-container>\n </ul>\n </li>\n </ng-container>\n </ul>\n\n <!-- TEMPLATE -->\n <ng-template #listItemTemplate let-option>\n <li\n #optionRefs\n *ngIf=\"!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n [nggvTooltip]=\"isOverflow(liElem) ? t(option.label) : undefined\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"\n basicOptionContentTpl;\n context: { $implicit: option }\n \"\n >\n </ng-template>\n </li>\n <!-- Checking overflow on custom templates do not work skip adding nggvToolTip if custom template is provided -->\n <li\n #optionRefs\n *ngIf=\"!!optionContentTpl\"\n tabindex=\"-1\"\n [id]=\"id + '-option-' + option.key\"\n class=\"gds-dropdown__options__label option\"\n role=\"option\"\n #liElem\n [attr.data-thook]=\"thook + '-option-' + option.key\"\n [attr.aria-disabled]=\"option.disabled\"\n [attr.aria-selected]=\"\n option.key === selectedValue?.key && !!selectedValue?.key\n \"\n [attr.aria-focus]=\"option.key === state?.key && !option.disabled\"\n (click)=\"updateState(option, $event)\"\n >\n <ng-template\n *ngTemplateOutlet=\"optionContentTpl; context: { $implicit: option }\"\n >\n </ng-template>\n </li>\n </ng-template>\n\n <ng-template #listGroupTemplate let-item>\n <ng-container *ngIf=\"groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"groupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n <ng-container *ngIf=\"!groupLabelTpl\">\n <ng-template\n *ngTemplateOutlet=\"basicGroupLabelTpl; context: { $implicit: item }\"\n ></ng-template>\n </ng-container>\n </ng-template>\n\n <ng-template #basicOptionContentTpl let-option>\n <nggv-typeahead-highlight\n *ngIf=\"!!textToHighlight\"\n [textToHighlight]=\"textToHighlight\"\n [textContent]=\"t(option.label)\"\n >\n </nggv-typeahead-highlight>\n <ng-container *ngIf=\"!textToHighlight\">\n {{ t(option.label) }}\n </ng-container>\n </ng-template>\n\n <ng-template #basicGroupLabelTpl let-item>\n <div class=\"nggv-group-label\">{{ t(item.label) }}</div>\n </ng-template>\n</ng-container>\n", styles: [":host{--gds-ref-pallet-base300: hsl(0, 0%, 87%);--gds-ref-pallet-base400: hsl(0, 0%, 81%);--gds-ref-pallet-base500: hsl(0, 0%, 68%);--sg-z-index-dropdown: ;--sg-z-index-popover: 1060;--sg-z-index-dropdown-backdrop: 990;--sg-z-index-dropdown: 2000;--sg-popover-background: #fff;--sg-popover-box-shadow: 0 .125rem .375rem rgba(0, 0, 0, .15);--text-primary-color: #333;position:absolute;bottom:0;transform:translateY(calc(100% + .5rem));z-index:var(--sg-z-index-dropdown)}:host .hidden{visibility:hidden;display:none}:host ul[role=menu] [role=menuitem]{padding:.75rem;cursor:pointer}:host ul[role=menu] [role=menuitem]:hover,:host ul[role=menu] [role=menuitem]:focus-visible{background-color:var(--gds-ref-pallet-base200)}:host ul[role=menu] [role=menuitem]:active{background-color:var(--gds-ref-pallet-base300)}:host ul[role=menu] [role=menuitem]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox]{--z-index: var(--sg-z-index-popover);background-color:var(--sg-popover-background);flex-direction:column;justify-content:flex-end;inset:auto;z-index:var(--z-index);box-shadow:var(--sg-popover-box-shadow);color:var(--text-primary-color);padding:0;max-height:500px;overflow-y:auto;border:solid var(--sg-border-width) var(--sg-border-color);--border-color: var(--text-primary-color);--sg-border-color: var(--text-primary-color);border-radius:var(--sg-border-radius)}:host ul[role=listbox] [role=option]{padding:.75rem 1rem;line-height:1.25;cursor:pointer}:host ul[role=listbox] [role=option]:hover,:host ul[role=listbox] [role=option]:focus-visible{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:active{background-color:var(--grey-400)}:host ul[role=listbox] [role=option]:focus{outline-color:#000;outline-offset:-.25rem}:host ul[role=listbox] [role=option].active.sg-highlighted,:host ul[role=listbox] [role=option][aria-selected=true]{background:var(--grey-1000);color:#fff}:host ul[role=listbox] .group ul{list-style-type:none;padding:0}:host ul[role=listbox] .group:hover{color:inherit;background-color:inherit}:host .sg-fieldset-container{overflow-y:auto}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option]{display:flex;width:100%}:host .sg-fieldset-container fieldset[role=listbox][aria-multiselectable=true] [role=option].active.sg-highlighted input[type=checkbox]~i{border-color:#007ac7!important;box-shadow:0 0 .25em .0625em #41b0ee;outline-color:transparent;outline-style:solid}:host .gds-dropdown__options{padding-left:0;margin-bottom:0;margin-top:0;display:flex;flex-direction:column;list-style:none;display:none}:host .gds-dropdown__options>li{padding-bottom:.5rem;padding-top:.5rem;border:0;display:block;position:relative}:host .gds-dropdown__options>li:before{font-weight:500;display:inline-block;left:0;position:absolute;text-align:center}:host .gds-dropdown__options-expanded{display:block}:host .gds-dropdown__options__label:hover{background-color:var(--gds-ref-pallet-base400)}:host .gds-dropdown__options__label:focus-visible,:host .gds-dropdown__options__label[aria-focus=true]{background-color:var(--gds-ref-pallet-base300)}:host .gds-dropdown__options__label:active{background-color:var(--gds-ref-pallet-base500)}:host .gds-dropdown__options__label:focus-visible{outline-color:#000;outline-offset:-.25rem}:host .gds-dropdown__options__label[aria-hidden=true]{display:none}:host .gds-dropdown__options__label[highlighted]{color:#fff}:host li+.group{padding-top:0}:host .nggv-group-label{cursor:pointer;background-color:#e7e7e7;padding-inline:1rem;padding-block:.5rem}\n"] }]
|
|
215
226
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
216
227
|
type: Optional
|
|
217
228
|
}, {
|
|
@@ -225,6 +236,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
225
236
|
type: Input
|
|
226
237
|
}], optionContentTpl: [{
|
|
227
238
|
type: Input
|
|
239
|
+
}], groupLabelTpl: [{
|
|
240
|
+
type: Input
|
|
228
241
|
}], optionRefs: [{
|
|
229
242
|
type: ViewChildren,
|
|
230
243
|
args: ['optionRefs']
|
|
@@ -242,6 +255,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
242
255
|
type: Input
|
|
243
256
|
}], textToHighlight: [{
|
|
244
257
|
type: Input
|
|
258
|
+
}], onlyEmitDistinctChanges: [{
|
|
259
|
+
type: Input
|
|
245
260
|
}], selectedValueChanged: [{
|
|
246
261
|
type: Output
|
|
247
262
|
}], closed: [{
|
|
@@ -253,4 +268,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
253
268
|
type: HostListener,
|
|
254
269
|
args: ['document:keyup', ['$event']]
|
|
255
270
|
}] } });
|
|
256
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kcm9wZG93bi9kcm9wZG93bi1saXN0L2Ryb3Bkb3duLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24tbGlzdC9kcm9wZG93bi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUlOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFBO0FBQzVDLE9BQU8sY0FBYyxNQUFNLDRCQUE0QixDQUFBO0FBRXZELE9BQU8sRUFDTCxhQUFhLEdBR2QsTUFBTSw0Q0FBNEMsQ0FBQTs7Ozs7O0FBT25ELE1BQU0sT0FBTyx3QkFBd0I7SUFDbkMsSUFBYSxRQUFRLENBQUMsS0FBYztRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDdkIsQ0FBQztJQXlDRCxZQUdZLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXpDMUMsdUVBQXVFO1FBQzlELGlCQUFZLEdBQUcsRUFBRSxDQUFBO1FBUzFCLHlHQUF5RztRQUN4RSxPQUFFLEdBQUksTUFBYyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQTtRQUVw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QVk7Z0JBS08sRUFBRTtzQkFBbEMsV0FBVzt1QkFBQyxTQUFTOztzQkFBRyxLQUFLO2dCQUdXLEtBQUs7c0JBQTdDLFdBQVc7dUJBQUMsaUJBQWlCOztzQkFBRyxLQUFLO2dCQUU3QixPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsZUFBZTtzQkFBdkIsS0FBSztnQkFFSSxvQkFBb0I7c0JBQTdCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQWlJUCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBbUI1QyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZHJlbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IFRSQU5TTE9DT19TQ09QRSwgVHJhbnNsb2NvU2NvcGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHNjcm9sbEludG9WaWV3IGZyb20gJ3Njcm9sbC1pbnRvLXZpZXctaWYtbmVlZGVkJ1xuXG5pbXBvcnQge1xuICBEcm9wZG93blV0aWxzLFxuICBPcHRpb24sXG4gIE9wdGlvbkJhc2UsXG59IGZyb20gJ0BzZWJncm91cC9ncmVlbi1hbmd1bGFyL3NyYy92LWFuZ3VsYXIvY29yZSdcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbmdndi1kcm9wZG93bi1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Ryb3Bkb3duLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kcm9wZG93bi1saXN0LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIE5ndkRyb3Bkb3duTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc2V0IGV4cGFuZGVkKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRFeHBhbmRlZChzdGF0ZSlcbiAgfVxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkXG4gIH1cbiAgQElucHV0KCkgc3RhdGU6IGFueVxuXG4gIC8qKiBUaGUgYWRkaXRpb25hbCBhbW91bnQgdG8gc2hvdyB3aGVuIG9wdGlvbiBpcyBzY3JvbGxlZCBpbnRvIHZpZXcuICovXG4gIEBJbnB1dCgpIHNjcm9sbE9mZnNldCA9IDI0XG5cbiAgQElucHV0KCkgb3B0aW9uQ29udGVudFRwbDogVGVtcGxhdGVSZWY8T3B0aW9uQmFzZTxhbnk+PiB8IHVuZGVmaW5lZFxuXG4gIC8qKiBAaW50ZXJuYWwgTGlzdCBvZiByZWZlcmVuY2VzIHRvIHRoZSBvcHRpb24gZWxlbWVudHMuICovXG4gIEBWaWV3Q2hpbGRyZW4oJ29wdGlvblJlZnMnKSBvcHRpb25SZWZzOlxuICAgIHwgUXVlcnlMaXN0PEVsZW1lbnRSZWY8SFRNTExJRWxlbWVudD4+XG4gICAgfCB1bmRlZmluZWRcblxuICAvKiogSWQgb2YgdGhlIGhvc3QgZWxlbWVudCBhbmQgaXMgYWNjZXNzaWJsZSBieSB0aGUgY2hpbGRyZW4sIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGlmIG5vdCBwcm92aWRlZC4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgQElucHV0KCkgaWQgPSAod2luZG93IGFzIGFueSkubmdndj8ubmV4dElkKClcblxuICAvKiogU3BlY2lhbCBwcm9wZXJ0eSB1c2VkIGZvciBzZWxlY3RpbmcgRE9NIGVsZW1lbnRzIGR1cmluZyBhdXRvbWF0ZWQgVUkgdGVzdGluZy4gKi9cbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmRhdGEtdGhvb2snKSBASW5wdXQoKSB0aG9vayA9ICdkcm9wZG93bidcblxuICBASW5wdXQoKSBvcHRpb25zITogYW55W11cblxuICBASW5wdXQoKSB0ZXh0VG9IaWdobGlnaHQ/OiBzdHJpbmdcblxuICBAT3V0cHV0KCkgc2VsZWN0ZWRWYWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKVxuXG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KClcblxuICAvKiogVGhlIGN1cnJlbnQgYWN0aXZlIG9wdGlvbiBiYXNlZCBvbiBudW1lcmljIGluZGV4LiAqL1xuICBwdWJsaWMgYWN0aXZlSW5kZXggPSAtMVxuXG4gIHNjb3BlOiBzdHJpbmcgfCB1bmRlZmluZWRcblxuICBwcml2YXRlIGRyb3Bkb3duVXRpbHM6IERyb3Bkb3duVXRpbHM8c3RyaW5nIHwgbnVsbCwgc3RyaW5nLCBhbnk+ID1cbiAgICBuZXcgRHJvcGRvd25VdGlsczxzdHJpbmcgfCBudWxsLCBzdHJpbmcsIGFueT4oKVxuICBwcml2YXRlIF9leHBhbmRlZCA9IGZhbHNlXG4gIHByaXZhdGUgY2xvc2VkJCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KClcbiAgcHVibGljIHNlbGVjdGVkVmFsdWU/OiBPcHRpb248c3RyaW5nLCBhbnk+XG5cbiAgLyoqIFN1YnNjcmliZSBpZiBkcm9wZG93biBleHBhbmRlZCB0byBsaXN0ZW4gdG8gY2xpY2sgb3V0c2lkZSB0byBjbG9zZSBkcm9wZG93bi4gKi9cbiAgcHJvdGVjdGVkIG9uQ2xpY2tTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChUUkFOU0xPQ09fU0NPUEUpXG4gICAgcHJvdGVjdGVkIHRyYW5zbG9jb1Njb3BlOiBUcmFuc2xvY29TY29wZSxcbiAgKSB7XG4gICAgaWYgKHRoaXMudHJhbnNsb2NvU2NvcGUpIHRoaXMuc2NvcGUgPSB0aGlzLnRyYW5zbG9jb1Njb3BlLnRvU3RyaW5nKClcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnN0YXRlKVxuICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMub3B0aW9ucy5maW5kSW5kZXgoXG4gICAgICAgIChvcHRpb24pID0+IG9wdGlvbi5rZXkgPT09IHRoaXMuc3RhdGUua2V5LFxuICAgICAgKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmICghIWNoYW5nZXMuc3RhdGUgJiYgIWNoYW5nZXMuc3RhdGUuZmlyc3RDaGFuZ2UpXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBjaGFuZ2VzLnN0YXRlLmN1cnJlbnRWYWx1ZVxuICAgIGlmICghIWNoYW5nZXMub3B0aW9ucz8uY3VycmVudFZhbHVlPy5sZW5ndGggJiYgdGhpcy5leHBhbmRlZClcbiAgICAgIHRoaXMucmVmcmVzaFNlbGVjdGVkT3B0aW9uKClcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgYXJndW1lbnQgaXMgYW4ge0BsaW5rIE9wdGlvbkdyb3VwfS5cbiAgICogQHBhcmFtIG9wdGlvbiB0aGUgb2JqZWN0IHRvIGNoZWNrLlxuICAgKi9cbiAgaXNHcm91cChvcHRpb246IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAnb3B0aW9ucycgaW4gb3B0aW9uXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHVwZGF0ZVN0YXRlKG9wdGlvbjogYW55LCBldmVudDogRXZlbnQpIHtcbiAgICBpZiAob3B0aW9uLmRpc2FibGVkKSByZXR1cm5cblxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IG9wdGlvblxuICAgIHRoaXMuc3RhdGUgPSBvcHRpb25cbiAgICB0aGlzLnNlbGVjdGVkVmFsdWVDaGFuZ2VkLmVtaXQob3B0aW9uKVxuICAgIHRoaXMuc2V0RXhwYW5kZWQoZmFsc2UpXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHNldEV4cGFuZGVkKGV4cGFuZGVkID0gdHJ1ZSkge1xuICAgIC8vIHVwZGF0ZSBleHBhbmRlZCBzdGF0ZVxuICAgIHRoaXMuX2V4cGFuZGVkID0gZXhwYW5kZWRcblxuICAgIGlmIChleHBhbmRlZCkgdGhpcy5yZWZyZXNoU2VsZWN0ZWRPcHRpb24oKVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5jbG9zZWQkLm5leHQodHJ1ZSlcbiAgICAgIHRoaXMub25DbGlja1N1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHJlZnJlc2hTZWxlY3RlZE9wdGlvbigpIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5kcm9wZG93blV0aWxzLmZsYXR0ZW5PcHRpb25zKFxuICAgICAgdGhpcy5vcHRpb25zLFxuICAgICAgIXRoaXMub3B0aW9uQ29udGVudFRwbCxcbiAgICApXG4gICAgdGhpcy5hY3RpdmVJbmRleCA9IHRoaXMuZ2V0QWN0aXZlSW5kZXgoKVxuICAgIHRoaXMuc3RhdGUgPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgdGhpcy5zY3JvbGxUb1Jlc3VsdCh0aGlzLnN0YXRlKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAcmV0dXJucyBUaGUgYWN0aXZlIGluZGV4IChudW1iZXIpIGlmIG9wdGlvbiBpcyBmb3VuZCwgLTEgb3RoZXJ3aXNlLlxuICAgKiAtIElmIGEgc2VsZWN0ZWRWYWx1ZSBleGlzdHMgdGhhdCdzIG5vdCBudWxsaXNoIGFuZCB0aGF0IG9wdGlvbnMgaXMgZm91bmQsIHJldHVybiB0aGF0IGluZGV4XG4gICAqIC0gRWxzZSwgcmV0dXJuIGZpcnN0IG5vbiBudWxsaXNoIGluZGV4XG4gICAqIC0gSWYgbm9uZSBvZiB0aGUgYWJvdmUgY3JpdGVyaWFzIGFyZSBtZXQsIC0xIGFyZSByZXR1cm5lZFxuICAgKi9cbiAgZ2V0QWN0aXZlSW5kZXgoKTogbnVtYmVyIHtcbiAgICBpZiAoISF0aGlzLnNlbGVjdGVkVmFsdWUgJiYgdGhpcy5zZWxlY3RlZFZhbHVlPy5rZXkgIT0gbnVsbCkge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRJbmRleCA9IHRoaXMuZHJvcGRvd25VdGlsc1xuICAgICAgICAuZmxhdHRlbk9wdGlvbnModGhpcy5vcHRpb25zLCAhdGhpcy5vcHRpb25Db250ZW50VHBsKVxuICAgICAgICAuZmluZEluZGV4KFxuICAgICAgICAgIChvcHRpb24pID0+XG4gICAgICAgICAgICBvcHRpb24ua2V5ICE9IG51bGwgJiYgb3B0aW9uLmtleSA9PT0gdGhpcy5zZWxlY3RlZFZhbHVlPy5rZXksXG4gICAgICAgIClcbiAgICAgIGlmIChzZWxlY3RlZEluZGV4ID4gLTEpIHJldHVybiBzZWxlY3RlZEluZGV4XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRyb3Bkb3duVXRpbHNcbiAgICAgIC5mbGF0dGVuT3B0aW9ucyh0aGlzLm9wdGlvbnMsICF0aGlzLm9wdGlvbkNvbnRlbnRUcGwpXG4gICAgICAuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5rZXkgIT0gbnVsbClcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogZXZhbHVhdGVzIHdldGhlciB0aGUgSFRNTCBlbGVtZW50IG92ZXJmbG93c1xuICAgKiBAcGFyYW0gZWxlbSBUaGUgSFRNTEVsZW1lbnQgdG8gZXZhbHVhdGVcbiAgICogKi9cbiAgaXNPdmVyZmxvdyhlbGVtOiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiBlbGVtLm9mZnNldFdpZHRoIDwgZWxlbS5zY3JvbGxXaWR0aFxuICB9XG5cbiAgLyoqXG4gICAqIFR5cGVjYXN0IGFueXRoaW5nIHRvIGFuIHtAbGluayBPcHRpb25Hcm91cH0uXG4gICAqIEBwYXJhbSBncm91cCB0aGUgb2JqZWN0IHRvIHR5cGVjYXN0LlxuICAgKi9cbiAgY2FzdEdyb3VwKGdyb3VwOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBncm91cFxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBEaXNhYmxlcyBkZWZhdWx0IGV2ZW50cy5cbiAgICogQHBhcmFtIGV2ZW50IGZpcmVkIGNvbnRhaW5pbmcgd2hpY2gga2V5IHdhcyBwcmVzc2VkLlxuICAgKi9cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdFbnRlcic6IC8vICBEaXNhYmxlIGZvcm0gc3VibWlzc2lvblxuICAgICAgY2FzZSAnQXJyb3dVcCc6IC8vIERpc2FibGUgc2Nyb2xsaW5nIHVwXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOiAvLyBEaXNhYmxlIHNjcm9sbGluZyBkb3duXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEVudGVyIHRvZ2dsZXMgdGhlIGRyb3Bkb3duLCBob21lLCBlbmQsIGFuZCwgYXJyb3dzIGNoYW5nZSB0aGUgaW5kZXguXG4gICAqIEBwYXJhbSBldmVudCBmaXJlZCBjb250YWluaW5nIHdoaWNoIGtleSB3YXMgcmVsZWFzZWQuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXl1cCcsIFsnJGV2ZW50J10pXG4gIG9uS2V5VXAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZXhwYW5kZWQpIHJldHVyblxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnMoXG4gICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICAhdGhpcy5vcHRpb25Db250ZW50VHBsLFxuICAgIClcbiAgICBsZXQgb3B0aW9uXG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSlcbiAgICAgICAgdGhpcy5jbG9zZWQuZW1pdCgpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdFbnRlcic6IC8vIFNlbGVjdCB0aGUgY3VycmVudGx5IGNob3NlbiB2YWx1ZVxuICAgICAgICBvcHRpb24gPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGUob3B0aW9uLCBldmVudClcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnSG9tZSc6IC8vIE1vdmUgdG8gdGhlIGZpcnN0IG9wdGlvblxuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gMFxuXG4gICAgICAgIG9wdGlvbiA9IG9wdGlvbnNbdGhpcy5hY3RpdmVJbmRleF1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IG9wdGlvblxuICAgICAgICB0aGlzLnNjcm9sbFRvUmVzdWx0KG9wdGlvbilcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnQXJyb3dVcCc6IC8vIE1vdmUgdXAgb25lIHN0ZXAgdG8gdGhlIHByZXZpb3VzIG9wdGlvblxuICAgICAgICBpZiAodGhpcy5hY3RpdmVJbmRleCA+IDApIHRoaXMuYWN0aXZlSW5kZXgtLVxuICAgICAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZUluZGV4ID09PSAwKSB0aGlzLmFjdGl2ZUluZGV4ID0gb3B0aW9ucy5sZW5ndGggLSAxXG5cbiAgICAgICAgb3B0aW9uID0gb3B0aW9uc1t0aGlzLmFjdGl2ZUluZGV4XVxuICAgICAgICB0aGlzLnN0YXRlID0gb3B0aW9uXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9SZXN1bHQob3B0aW9uKVxuICAgICAgICBicmVha1xuXG4gICAgICBjYXNlICdBcnJvd0Rvd24nOiAvLyBNb3ZlIGRvd24gb25lIHN0ZXAgdG8gdGhlIG5leHQgb3B0aW9uXG4gICAgICAgIGlmIChvcHRpb25zLmxlbmd0aCA+IHRoaXMuYWN0aXZlSW5kZXggKyAxKSB0aGlzLmFjdGl2ZUluZGV4KytcbiAgICAgICAgZWxzZSBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gb3B0aW9ucy5sZW5ndGggLSAxKSB0aGlzLmFjdGl2ZUluZGV4ID0gMFxuXG4gICAgICAgIG9wdGlvbiA9IG9wdGlvbnNbdGhpcy5hY3RpdmVJbmRleF1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IG9wdGlvblxuICAgICAgICB0aGlzLnNjcm9sbFRvUmVzdWx0KG9wdGlvbilcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnRW5kJzogLy8gTW92ZSB0byB0aGUgbGFzdCBvcHRpb25zXG4gICAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSBvcHRpb25zLmxlbmd0aCAtIDFcblxuICAgICAgICBvcHRpb24gPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgICAgIHRoaXMuc3RhdGUgPSBvcHRpb25cbiAgICAgICAgdGhpcy5zY3JvbGxUb1Jlc3VsdChvcHRpb24pXG4gICAgICAgIGJyZWFrXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgZm9jdXNlZCByZXN1bHQgaW50byB2aWV3IHdpdGggYSBzcGVjaWZpZWQgb2Zmc2V0LlxuICAgKiBAcGFyYW0ga2V5IHRoZSByZXN1bHQgaW5kZXggd2hpY2ggdG8gc2Nyb2xsIHRvLlxuICAgKi9cbiAgc2Nyb2xsVG9SZXN1bHQob3B0aW9uOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9uUmVmcyB8fCAhb3B0aW9uKSByZXR1cm5cbiAgICBjb25zdCBvcHRpb25SZWYgPSB0aGlzLm9wdGlvblJlZnMuZmluZChcbiAgICAgIChsaSkgPT4gbGkubmF0aXZlRWxlbWVudC5pZCA9PT0gdGhpcy5pZCArICctb3B0aW9uLScgKyBvcHRpb24ua2V5LFxuICAgIClcbiAgICBjb25zdCBvZmZzZXQgPSB0aGlzLnNjcm9sbE9mZnNldFxuICAgIGlmIChvcHRpb25SZWYpIHtcbiAgICAgIGxldCBkZWx0YSA9IHdpbmRvdy5zY3JvbGxZIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3BcblxuICAgICAgLy8gVGhlIGxpc3Qgc2VlbXMgbm90IHRvIGJlIHZpc2libGUgYXQgdGhlIHRpbWUgb2Ygc2Nyb2xsaW5nLCBidXQgdGhpcyBzZXRUaW1lb3V0IFwiaGFja1wiIG1ha2VzIGl0IHdvcmsuLi5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzY3JvbGxJbnRvVmlldyhvcHRpb25SZWYubmF0aXZlRWxlbWVudCwge1xuICAgICAgICAgIHNjcm9sbE1vZGU6ICdpZi1uZWVkZWQnLFxuICAgICAgICAgIGJsb2NrOiAnbmVhcmVzdCcsXG4gICAgICAgIH0pXG5cbiAgICAgICAgZGVsdGEgLT0gd2luZG93LnNjcm9sbFkgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcFxuICAgICAgICBpZiAoZGVsdGEpIHdpbmRvdy5zY3JvbGxCeSgwLCBkZWx0YSA+IDAgPyAtb2Zmc2V0IDogb2Zmc2V0KVxuICAgICAgfSwgMClcbiAgICB9XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0OyByZWFkOiBzY29wZVwiPlxuICA8dWxcbiAgICBjbGFzcz1cImdkcy1kcm9wZG93bl9fb3B0aW9ucyBjYXJkIG9wdGlvbnMgZ2RzLXJlc2V0XCJcbiAgICBbY2xhc3MuZ2RzLWRyb3Bkb3duX19vcHRpb25zLWV4cGFuZGVkXT1cImV4cGFuZGVkXCJcbiAgICByb2xlPVwibGlzdGJveFwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctb3B0aW9ucydcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJpZCArICctbGFiZWwnXCJcbiAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiXG4gICAgICBzdGF0ZSA/IGlkICsgJy1vcHRpb24tJyArIHN0YXRlPy5rZXkgOiB1bmRlZmluZWRcbiAgICBcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBvcHRpb25zXCI+XG4gICAgICA8IS0tIE9QVElPTiAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNHcm91cChpdGVtKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImxpc3RJdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIE9QVElPTiBHUk9VUCAtLT5cbiAgICAgIDxsaVxuICAgICAgICBjbGFzcz1cImdkcy1kcm9wZG93bl9fb3B0aW9uc19fbGFiZWwgZ3JvdXBcIlxuICAgICAgICBbYXR0ci5kYXRhLXRob29rXT1cInRob29rICsgJy1vcHRpb24tZ3JvdXAnXCJcbiAgICAgICAgKm5nSWY9XCJpc0dyb3VwKGl0ZW0pXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNkdi1saXN0X19sYWJlbFwiPnt7IHQoaXRlbS5sYWJlbCkgfX08L2Rpdj5cbiAgICAgICAgPHVsIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXRlbS5kaXNhYmxlZFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjYXN0R3JvdXAoaXRlbSkub3B0aW9uc1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgbGlzdEl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cblxuICA8IS0tIFRFTVBMQVRFIC0tPlxuICA8bmctdGVtcGxhdGUgI2xpc3RJdGVtVGVtcGxhdGUgbGV0LW9wdGlvbj5cbiAgICA8bGlcbiAgICAgICNvcHRpb25SZWZzXG4gICAgICAqbmdJZj1cIiFvcHRpb25Db250ZW50VHBsXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2lkXT1cImlkICsgJy1vcHRpb24tJyArIG9wdGlvbi5rZXlcIlxuICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIG9wdGlvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICNsaUVsZW1cbiAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIlxuICAgICAgICBvcHRpb24ua2V5ID09PSBzZWxlY3RlZFZhbHVlPy5rZXkgJiYgISFzZWxlY3RlZFZhbHVlPy5rZXlcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWZvY3VzXT1cIm9wdGlvbi5rZXkgPT09IHN0YXRlPy5rZXkgJiYgIW9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbbmdndlRvb2x0aXBdPVwiaXNPdmVyZmxvdyhsaUVsZW0pID8gdChvcHRpb24ubGFiZWwpIDogdW5kZWZpbmVkXCJcbiAgICAgIChjbGljayk9XCJ1cGRhdGVTdGF0ZShvcHRpb24sICRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGJhc2ljT3B0aW9uQ29udGVudFRwbDtcbiAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9saT5cbiAgICA8IS0tIENoZWNraW5nIG92ZXJmbG93IG9uIGN1c3RvbSB0ZW1wbGF0ZXMgZG8gbm90IHdvcmsgc2tpcCBhZGRpbmcgbmdndlRvb2xUaXAgaWYgY3VzdG9tIHRlbXBsYXRlIGlzIHByb3ZpZGVkIC0tPlxuICAgIDxsaVxuICAgICAgI29wdGlvblJlZnNcbiAgICAgICpuZ0lmPVwiISFvcHRpb25Db250ZW50VHBsXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2lkXT1cImlkICsgJy1vcHRpb24tJyArIG9wdGlvbi5rZXlcIlxuICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIG9wdGlvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICNsaUVsZW1cbiAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIlxuICAgICAgICBvcHRpb24ua2V5ID09PSBzZWxlY3RlZFZhbHVlPy5rZXkgJiYgISFzZWxlY3RlZFZhbHVlPy5rZXlcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWZvY3VzXT1cIm9wdGlvbi5rZXkgPT09IHN0YXRlPy5rZXkgJiYgIW9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwidXBkYXRlU3RhdGUob3B0aW9uLCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25Db250ZW50VHBsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cIlxuICAgICAgPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2xpPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjYmFzaWNPcHRpb25Db250ZW50VHBsIGxldC1vcHRpb24+XG4gICAgPG5nZ3YtdHlwZWFoZWFkLWhpZ2hsaWdodFxuICAgICAgKm5nSWY9XCIhIXRleHRUb0hpZ2hsaWdodFwiXG4gICAgICBbdGV4dFRvSGlnaGxpZ2h0XT1cInRleHRUb0hpZ2hsaWdodFwiXG4gICAgICBbdGV4dENvbnRlbnRdPVwidChvcHRpb24ubGFiZWwpXCJcbiAgICA+XG4gICAgPC9uZ2d2LXR5cGVhaGVhZC1oaWdobGlnaHQ+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiF0ZXh0VG9IaWdobGlnaHRcIj5cbiAgICAgIHt7IHQob3B0aW9uLmxhYmVsKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
271
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24tbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kcm9wZG93bi9kcm9wZG93bi1saXN0L2Ryb3Bkb3duLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZHJvcGRvd24vZHJvcGRvd24tbGlzdC9kcm9wZG93bi1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUlOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLG9CQUFvQixDQUFBO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQWdCLE1BQU0sTUFBTSxDQUFBO0FBQzVDLE9BQU8sY0FBYyxNQUFNLDRCQUE0QixDQUFBO0FBRXZELE9BQU8sRUFDTCxhQUFhLEdBR2QsTUFBTSw0Q0FBNEMsQ0FBQTs7Ozs7O0FBT25ELE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsSUFBYSxRQUFRLENBQUMsS0FBYztRQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3pCLENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUE7SUFDdkIsQ0FBQztJQWtERCxZQUdZLGNBQThCO1FBQTlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQWxEMUMsdUVBQXVFO1FBQzlELGlCQUFZLEdBQUcsRUFBRSxDQUFBO1FBVTFCLHlHQUF5RztRQUN4RSxPQUFFLEdBQUksTUFBYyxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQTtRQUVw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QkNoQ3RDLGlsSUE2SEE7OzRGRDdGYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0Usb0JBQW9COzswQkE2RDNCLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsZUFBZTt5Q0F6RFosUUFBUTtzQkFBcEIsS0FBSztnQkFNRyxLQUFLO3NCQUFiLEtBQUs7Z0JBR0csWUFBWTtzQkFBcEIsS0FBSztnQkFFRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFHc0IsVUFBVTtzQkFBckMsWUFBWTt1QkFBQyxZQUFZO2dCQUtPLEVBQUU7c0JBQWxDLFdBQVc7dUJBQUMsU0FBUzs7c0JBQUcsS0FBSztnQkFHVyxLQUFLO3NCQUE3QyxXQUFXO3VCQUFDLGlCQUFpQjs7c0JBQUcsS0FBSztnQkFHN0IsT0FBTztzQkFBZixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBT0csdUJBQXVCO3NCQUEvQixLQUFLO2dCQUVJLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFFRyxNQUFNO3NCQUFmLE1BQU07Z0JBdUlQLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFtQjVDLE9BQU87c0JBRE4sWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgVFJBTlNMT0NPX1NDT1BFLCBUcmFuc2xvY29TY29wZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbydcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnXG5pbXBvcnQgc2Nyb2xsSW50b1ZpZXcgZnJvbSAnc2Nyb2xsLWludG8tdmlldy1pZi1uZWVkZWQnXG5cbmltcG9ydCB7XG4gIERyb3Bkb3duVXRpbHMsXG4gIE9wdGlvbixcbiAgT3B0aW9uQmFzZSxcbn0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9jb3JlJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ2d2LWRyb3Bkb3duLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcGRvd24tbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Ryb3Bkb3duLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndkRyb3Bkb3duTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc2V0IGV4cGFuZGVkKHN0YXRlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRFeHBhbmRlZChzdGF0ZSlcbiAgfVxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2V4cGFuZGVkXG4gIH1cbiAgQElucHV0KCkgc3RhdGU6IGFueVxuXG4gIC8qKiBUaGUgYWRkaXRpb25hbCBhbW91bnQgdG8gc2hvdyB3aGVuIG9wdGlvbiBpcyBzY3JvbGxlZCBpbnRvIHZpZXcuICovXG4gIEBJbnB1dCgpIHNjcm9sbE9mZnNldCA9IDI0XG5cbiAgQElucHV0KCkgb3B0aW9uQ29udGVudFRwbDogVGVtcGxhdGVSZWY8T3B0aW9uQmFzZTxhbnk+PiB8IHVuZGVmaW5lZFxuICBASW5wdXQoKSBncm91cExhYmVsVHBsOiBUZW1wbGF0ZVJlZjxPcHRpb25CYXNlPGFueT4+IHwgdW5kZWZpbmVkXG5cbiAgLyoqIEBpbnRlcm5hbCBMaXN0IG9mIHJlZmVyZW5jZXMgdG8gdGhlIG9wdGlvbiBlbGVtZW50cy4gKi9cbiAgQFZpZXdDaGlsZHJlbignb3B0aW9uUmVmcycpIG9wdGlvblJlZnM6XG4gICAgfCBRdWVyeUxpc3Q8RWxlbWVudFJlZjxIVE1MTElFbGVtZW50Pj5cbiAgICB8IHVuZGVmaW5lZFxuXG4gIC8qKiBJZCBvZiB0aGUgaG9zdCBlbGVtZW50IGFuZCBpcyBhY2Nlc3NpYmxlIGJ5IHRoZSBjaGlsZHJlbiwgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHByb3ZpZGVkLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBASW5wdXQoKSBpZCA9ICh3aW5kb3cgYXMgYW55KS5uZ2d2Py5uZXh0SWQoKVxuXG4gIC8qKiBTcGVjaWFsIHByb3BlcnR5IHVzZWQgZm9yIHNlbGVjdGluZyBET00gZWxlbWVudHMgZHVyaW5nIGF1dG9tYXRlZCBVSSB0ZXN0aW5nLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS10aG9vaycpIEBJbnB1dCgpIHRob29rOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkID1cbiAgICAnZHJvcGRvd24nXG5cbiAgQElucHV0KCkgb3B0aW9ucyE6IGFueVtdXG5cbiAgQElucHV0KCkgdGV4dFRvSGlnaGxpZ2h0Pzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIFVzZWQgdG8gY29udHJvbCBpZiBcInNlbGVjdGVkVmFsdWVDaGFuZ2VkXCIgb25seSBzaG91bGQgZW1pdCBkaXN0aW5jdCBjaGFuZ2VzLCBvciBlYWNoIHRpbWUgYSB2YWx1ZSBpcyBzZWxlY3RlZFxuICAgKiBXaGVuIHRydWUsIHZhbHVlIGlzIG5vdCBlbWl0dGVkIGlmIHRoZXJlJ3Mgbm8gZGlzdGluY3QgY2hhbmdlXG4gICAqIFdoZW4gZmFsc2UsIHZhbHVlIGlzIGVtaXR0ZWQgZXZlcnkgdGltZSBhbiBvcHRpb24gaXMgc2VsZWN0ZWRcbiAgICogKi9cbiAgQElucHV0KCkgb25seUVtaXREaXN0aW5jdENoYW5nZXMgPSB0cnVlXG5cbiAgQE91dHB1dCgpIHNlbGVjdGVkVmFsdWVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KClcblxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpXG5cbiAgLyoqIFRoZSBjdXJyZW50IGFjdGl2ZSBvcHRpb24gYmFzZWQgb24gbnVtZXJpYyBpbmRleC4gKi9cbiAgcHVibGljIGFjdGl2ZUluZGV4ID0gLTFcblxuICBzY29wZTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgcHJpdmF0ZSBkcm9wZG93blV0aWxzOiBEcm9wZG93blV0aWxzPHN0cmluZyB8IG51bGwsIHN0cmluZywgYW55PiA9XG4gICAgbmV3IERyb3Bkb3duVXRpbHM8c3RyaW5nIHwgbnVsbCwgc3RyaW5nLCBhbnk+KClcbiAgcHJpdmF0ZSBfZXhwYW5kZWQgPSBmYWxzZVxuICBwcml2YXRlIGNsb3NlZCQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpXG4gIHB1YmxpYyBzZWxlY3RlZFZhbHVlPzogT3B0aW9uPHN0cmluZywgYW55PlxuXG4gIC8qKiBTdWJzY3JpYmUgaWYgZHJvcGRvd24gZXhwYW5kZWQgdG8gbGlzdGVuIHRvIGNsaWNrIG91dHNpZGUgdG8gY2xvc2UgZHJvcGRvd24uICovXG4gIHByb3RlY3RlZCBvbkNsaWNrU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWRcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMT0NPX1NDT1BFKVxuICAgIHByb3RlY3RlZCB0cmFuc2xvY29TY29wZTogVHJhbnNsb2NvU2NvcGUsXG4gICkge1xuICAgIGlmICh0aGlzLnRyYW5zbG9jb1Njb3BlKSB0aGlzLnNjb3BlID0gdGhpcy50cmFuc2xvY29TY29wZS50b1N0cmluZygpXG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zdGF0ZSlcbiAgICAgIHRoaXMuYWN0aXZlSW5kZXggPSB0aGlzLm9wdGlvbnMuZmluZEluZGV4KFxuICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24ua2V5ID09PSB0aGlzLnN0YXRlLmtleSxcbiAgICAgIClcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoISFjaGFuZ2VzLnN0YXRlICYmICFjaGFuZ2VzLnN0YXRlLmZpcnN0Q2hhbmdlKVxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gY2hhbmdlcy5zdGF0ZS5jdXJyZW50VmFsdWVcbiAgICBpZiAoISFjaGFuZ2VzLm9wdGlvbnM/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoICYmIHRoaXMuZXhwYW5kZWQpXG4gICAgICB0aGlzLnJlZnJlc2hTZWxlY3RlZE9wdGlvbigpXG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0cnVlIGlmIGFyZ3VtZW50IGlzIGFuIHtAbGluayBPcHRpb25Hcm91cH0uXG4gICAqIEBwYXJhbSBvcHRpb24gdGhlIG9iamVjdCB0byBjaGVjay5cbiAgICovXG4gIGlzR3JvdXAob3B0aW9uOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gJ29wdGlvbnMnIGluIG9wdGlvblxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICB1cGRhdGVTdGF0ZShvcHRpb246IGFueSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgaWYgKG9wdGlvbi5kaXNhYmxlZCkgcmV0dXJuXG5cbiAgICBpZiAoXG4gICAgICAhdGhpcy5vbmx5RW1pdERpc3RpbmN0Q2hhbmdlcyB8fFxuICAgICAgIXRoaXMuZHJvcGRvd25VdGlscy5kZWVwRXF1YWwodGhpcy5zZWxlY3RlZFZhbHVlLCBvcHRpb24pXG4gICAgKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBvcHRpb25cbiAgICAgIHRoaXMuc3RhdGUgPSBvcHRpb25cbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZUNoYW5nZWQuZW1pdChvcHRpb24pXG4gICAgfVxuXG4gICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSlcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgc2V0RXhwYW5kZWQoZXhwYW5kZWQgPSB0cnVlKSB7XG4gICAgLy8gdXBkYXRlIGV4cGFuZGVkIHN0YXRlXG4gICAgdGhpcy5fZXhwYW5kZWQgPSBleHBhbmRlZFxuXG4gICAgaWYgKGV4cGFuZGVkKSB0aGlzLnJlZnJlc2hTZWxlY3RlZE9wdGlvbigpXG4gICAgZWxzZSB7XG4gICAgICB0aGlzLmNsb3NlZCQubmV4dCh0cnVlKVxuICAgICAgdGhpcy5vbkNsaWNrU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgcmVmcmVzaFNlbGVjdGVkT3B0aW9uKCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmRyb3Bkb3duVXRpbHMuZmxhdHRlbk9wdGlvbnMoXG4gICAgICB0aGlzLm9wdGlvbnMsXG4gICAgICAhdGhpcy5vcHRpb25Db250ZW50VHBsLFxuICAgIClcbiAgICB0aGlzLmFjdGl2ZUluZGV4ID0gdGhpcy5nZXRBY3RpdmVJbmRleCgpXG4gICAgdGhpcy5zdGF0ZSA9IG9wdGlvbnNbdGhpcy5hY3RpdmVJbmRleF1cbiAgICB0aGlzLnNjcm9sbFRvUmVzdWx0KHRoaXMuc3RhdGUpXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIEByZXR1cm5zIFRoZSBhY3RpdmUgaW5kZXggKG51bWJlcikgaWYgb3B0aW9uIGlzIGZvdW5kLCAtMSBvdGhlcndpc2UuXG4gICAqIC0gSWYgYSBzZWxlY3RlZFZhbHVlIGV4aXN0cyB0aGF0J3Mgbm90IG51bGxpc2ggYW5kIHRoYXQgb3B0aW9ucyBpcyBmb3VuZCwgcmV0dXJuIHRoYXQgaW5kZXhcbiAgICogLSBFbHNlLCByZXR1cm4gZmlyc3Qgbm9uIG51bGxpc2ggaW5kZXhcbiAgICogLSBJZiBub25lIG9mIHRoZSBhYm92ZSBjcml0ZXJpYXMgYXJlIG1ldCwgLTEgYXJlIHJldHVybmVkXG4gICAqL1xuICBnZXRBY3RpdmVJbmRleCgpOiBudW1iZXIge1xuICAgIGlmICghIXRoaXMuc2VsZWN0ZWRWYWx1ZSAmJiB0aGlzLnNlbGVjdGVkVmFsdWU/LmtleSAhPSBudWxsKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZEluZGV4ID0gdGhpcy5kcm9wZG93blV0aWxzXG4gICAgICAgIC5mbGF0dGVuT3B0aW9ucyh0aGlzLm9wdGlvbnMsICF0aGlzLm9wdGlvbkNvbnRlbnRUcGwpXG4gICAgICAgIC5maW5kSW5kZXgoXG4gICAgICAgICAgKG9wdGlvbikgPT5cbiAgICAgICAgICAgIG9wdGlvbi5rZXkgIT0gbnVsbCAmJiBvcHRpb24ua2V5ID09PSB0aGlzLnNlbGVjdGVkVmFsdWU/LmtleSxcbiAgICAgICAgKVxuICAgICAgaWYgKHNlbGVjdGVkSW5kZXggPiAtMSkgcmV0dXJuIHNlbGVjdGVkSW5kZXhcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZHJvcGRvd25VdGlsc1xuICAgICAgLmZsYXR0ZW5PcHRpb25zKHRoaXMub3B0aW9ucywgIXRoaXMub3B0aW9uQ29udGVudFRwbClcbiAgICAgIC5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLmtleSAhPSBudWxsKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBldmFsdWF0ZXMgd2V0aGVyIHRoZSBIVE1MIGVsZW1lbnQgb3ZlcmZsb3dzXG4gICAqIEBwYXJhbSBlbGVtIFRoZSBIVE1MRWxlbWVudCB0byBldmFsdWF0ZVxuICAgKiAqL1xuICBpc092ZXJmbG93KGVsZW06IEhUTUxFbGVtZW50KSB7XG4gICAgcmV0dXJuIGVsZW0ub2Zmc2V0V2lkdGggPCBlbGVtLnNjcm9sbFdpZHRoXG4gIH1cblxuICAvKipcbiAgICogVHlwZWNhc3QgYW55dGhpbmcgdG8gYW4ge0BsaW5rIE9wdGlvbkdyb3VwfS5cbiAgICogQHBhcmFtIGdyb3VwIHRoZSBvYmplY3QgdG8gdHlwZWNhc3QuXG4gICAqL1xuICBjYXN0R3JvdXAoZ3JvdXA6IGFueSk6IGFueSB7XG4gICAgcmV0dXJuIGdyb3VwXG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqIERpc2FibGVzIGRlZmF1bHQgZXZlbnRzLlxuICAgKiBAcGFyYW0gZXZlbnQgZmlyZWQgY29udGFpbmluZyB3aGljaCBrZXkgd2FzIHByZXNzZWQuXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0VudGVyJzogLy8gIERpc2FibGUgZm9ybSBzdWJtaXNzaW9uXG4gICAgICBjYXNlICdBcnJvd1VwJzogLy8gRGlzYWJsZSBzY3JvbGxpbmcgdXBcbiAgICAgIGNhc2UgJ0Fycm93RG93bic6IC8vIERpc2FibGUgc2Nyb2xsaW5nIGRvd25cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gICAgcmV0dXJuIHRydWVcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICogRW50ZXIgdG9nZ2xlcyB0aGUgZHJvcGRvd24sIGhvbWUsIGVuZCwgYW5kLCBhcnJvd3MgY2hhbmdlIHRoZSBpbmRleC5cbiAgICogQHBhcmFtIGV2ZW50IGZpcmVkIGNvbnRhaW5pbmcgd2hpY2gga2V5IHdhcyByZWxlYXNlZC5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwJywgWyckZXZlbnQnXSlcbiAgb25LZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICghdGhpcy5leHBhbmRlZCkgcmV0dXJuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuZHJvcGRvd25VdGlscy5mbGF0dGVuT3B0aW9ucyhcbiAgICAgIHRoaXMub3B0aW9ucyxcbiAgICAgICF0aGlzLm9wdGlvbkNvbnRlbnRUcGwsXG4gICAgKVxuICAgIGxldCBvcHRpb25cblxuICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG4gICAgICBjYXNlICdUYWInOlxuICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSlcbiAgICAgICAgdGhpcy5jbG9zZWQuZW1pdCgpXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlICdTcGFjZSc6IC8vIFNlbGVjdCB0aGUgY3VycmVudGx5IGNob3NlbiB2YWx1ZVxuICAgICAgY2FzZSAnRW50ZXInOiAvLyBTZWxlY3QgdGhlIGN1cnJlbnRseSBjaG9zZW4gdmFsdWVcbiAgICAgICAgb3B0aW9uID0gb3B0aW9uc1t0aGlzLmFjdGl2ZUluZGV4XVxuICAgICAgICB0aGlzLnVwZGF0ZVN0YXRlKG9wdGlvbiwgZXZlbnQpXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ0hvbWUnOiAvLyBNb3ZlIHRvIHRoZSBmaXJzdCBvcHRpb25cbiAgICAgICAgdGhpcy5hY3RpdmVJbmRleCA9IDBcblxuICAgICAgICBvcHRpb24gPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgICAgIHRoaXMuc3RhdGUgPSBvcHRpb25cbiAgICAgICAgdGhpcy5zY3JvbGxUb1Jlc3VsdChvcHRpb24pXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ0Fycm93VXAnOiAvLyBNb3ZlIHVwIG9uZSBzdGVwIHRvIHRoZSBwcmV2aW91cyBvcHRpb25cbiAgICAgICAgaWYgKHRoaXMuYWN0aXZlSW5kZXggPiAwKSB0aGlzLmFjdGl2ZUluZGV4LS1cbiAgICAgICAgZWxzZSBpZiAodGhpcy5hY3RpdmVJbmRleCA9PT0gMCkgdGhpcy5hY3RpdmVJbmRleCA9IG9wdGlvbnMubGVuZ3RoIC0gMVxuXG4gICAgICAgIG9wdGlvbiA9IG9wdGlvbnNbdGhpcy5hY3RpdmVJbmRleF1cbiAgICAgICAgdGhpcy5zdGF0ZSA9IG9wdGlvblxuICAgICAgICB0aGlzLnNjcm9sbFRvUmVzdWx0KG9wdGlvbilcbiAgICAgICAgYnJlYWtcblxuICAgICAgY2FzZSAnQXJyb3dEb3duJzogLy8gTW92ZSBkb3duIG9uZSBzdGVwIHRvIHRoZSBuZXh0IG9wdGlvblxuICAgICAgICBpZiAob3B0aW9ucy5sZW5ndGggPiB0aGlzLmFjdGl2ZUluZGV4ICsgMSkgdGhpcy5hY3RpdmVJbmRleCsrXG4gICAgICAgIGVsc2UgaWYgKHRoaXMuYWN0aXZlSW5kZXggPT09IG9wdGlvbnMubGVuZ3RoIC0gMSkgdGhpcy5hY3RpdmVJbmRleCA9IDBcblxuICAgICAgICBvcHRpb24gPSBvcHRpb25zW3RoaXMuYWN0aXZlSW5kZXhdXG4gICAgICAgIHRoaXMuc3RhdGUgPSBvcHRpb25cbiAgICAgICAgdGhpcy5zY3JvbGxUb1Jlc3VsdChvcHRpb24pXG4gICAgICAgIGJyZWFrXG5cbiAgICAgIGNhc2UgJ0VuZCc6IC8vIE1vdmUgdG8gdGhlIGxhc3Qgb3B0aW9uc1xuICAgICAgICB0aGlzLmFjdGl2ZUluZGV4ID0gb3B0aW9ucy5sZW5ndGggLSAxXG5cbiAgICAgICAgb3B0aW9uID0gb3B0aW9uc1t0aGlzLmFjdGl2ZUluZGV4XVxuICAgICAgICB0aGlzLnN0YXRlID0gb3B0aW9uXG4gICAgICAgIHRoaXMuc2Nyb2xsVG9SZXN1bHQob3B0aW9uKVxuICAgICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIGZvY3VzZWQgcmVzdWx0IGludG8gdmlldyB3aXRoIGEgc3BlY2lmaWVkIG9mZnNldC5cbiAgICogQHBhcmFtIGtleSB0aGUgcmVzdWx0IGluZGV4IHdoaWNoIHRvIHNjcm9sbCB0by5cbiAgICovXG4gIHNjcm9sbFRvUmVzdWx0KG9wdGlvbjogYW55KSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvblJlZnMgfHwgIW9wdGlvbikgcmV0dXJuXG4gICAgY29uc3Qgb3B0aW9uUmVmID0gdGhpcy5vcHRpb25SZWZzLmZpbmQoXG4gICAgICAobGkpID0+IGxpLm5hdGl2ZUVsZW1lbnQuaWQgPT09IHRoaXMuaWQgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleSxcbiAgICApXG4gICAgY29uc3Qgb2Zmc2V0ID0gdGhpcy5zY3JvbGxPZmZzZXRcbiAgICBpZiAob3B0aW9uUmVmKSB7XG4gICAgICBsZXQgZGVsdGEgPSB3aW5kb3cuc2Nyb2xsWSB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wXG5cbiAgICAgIC8vIFRoZSBsaXN0IHNlZW1zIG5vdCB0byBiZSB2aXNpYmxlIGF0IHRoZSB0aW1lIG9mIHNjcm9sbGluZywgYnV0IHRoaXMgc2V0VGltZW91dCBcImhhY2tcIiBtYWtlcyBpdCB3b3JrLi4uXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgc2Nyb2xsSW50b1ZpZXcob3B0aW9uUmVmLm5hdGl2ZUVsZW1lbnQsIHtcbiAgICAgICAgICBzY3JvbGxNb2RlOiAnaWYtbmVlZGVkJyxcbiAgICAgICAgICBibG9jazogJ25lYXJlc3QnLFxuICAgICAgICB9KVxuXG4gICAgICAgIGRlbHRhIC09IHdpbmRvdy5zY3JvbGxZIHx8IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3BcbiAgICAgICAgaWYgKGRlbHRhKSB3aW5kb3cuc2Nyb2xsQnkoMCwgZGVsdGEgPiAwID8gLW9mZnNldCA6IG9mZnNldClcbiAgICAgIH0sIDApXG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcmVhZDogc2NvcGVcIj5cbiAgPHVsXG4gICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnMgY2FyZCBvcHRpb25zIGdkcy1yZXNldFwiXG4gICAgW2NsYXNzLmdkcy1kcm9wZG93bl9fb3B0aW9ucy1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgIHRhYmluZGV4PVwiLTFcIlxuICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbnMnXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaWQgKyAnLWxhYmVsJ1wiXG4gICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cIlxuICAgICAgc3RhdGUgPyBpZCArICctb3B0aW9uLScgKyBzdGF0ZT8ua2V5IDogdW5kZWZpbmVkXG4gICAgXCJcbiAgPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2Ygb3B0aW9uc1wiPlxuICAgICAgPCEtLSBPUFRJT04gLS0+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzR3JvdXAoaXRlbSlcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0SXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCJcbiAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBPUFRJT04gR1JPVVAgLS0+XG4gICAgICA8bGlcbiAgICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIGdyb3VwXCJcbiAgICAgICAgW2F0dHIuZGF0YS10aG9va109XCJ0aG9vayArICctb3B0aW9uLWdyb3VwJ1wiXG4gICAgICAgICpuZ0lmPVwiaXNHcm91cChpdGVtKVwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gZ3JvdXAgbGFiZWwgdGVtcGxhdGUgKGRlZmF1bHQgb3IgY3VzdG9tKSAtLT5cbiAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsaXN0R3JvdXBUZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiXG4gICAgICAgID48L25nLXRlbXBsYXRlPlxuXG4gICAgICAgIDx1bCBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIml0ZW0uZGlzYWJsZWRcIiBjbGFzcz1cImdkcy1yZXNldFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBjYXN0R3JvdXAoaXRlbSkub3B0aW9uc1wiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgbGlzdEl0ZW1UZW1wbGF0ZTtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cblxuICA8IS0tIFRFTVBMQVRFIC0tPlxuICA8bmctdGVtcGxhdGUgI2xpc3RJdGVtVGVtcGxhdGUgbGV0LW9wdGlvbj5cbiAgICA8bGlcbiAgICAgICNvcHRpb25SZWZzXG4gICAgICAqbmdJZj1cIiFvcHRpb25Db250ZW50VHBsXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2lkXT1cImlkICsgJy1vcHRpb24tJyArIG9wdGlvbi5rZXlcIlxuICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIG9wdGlvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICNsaUVsZW1cbiAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIlxuICAgICAgICBvcHRpb24ua2V5ID09PSBzZWxlY3RlZFZhbHVlPy5rZXkgJiYgISFzZWxlY3RlZFZhbHVlPy5rZXlcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWZvY3VzXT1cIm9wdGlvbi5rZXkgPT09IHN0YXRlPy5rZXkgJiYgIW9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbbmdndlRvb2x0aXBdPVwiaXNPdmVyZmxvdyhsaUVsZW0pID8gdChvcHRpb24ubGFiZWwpIDogdW5kZWZpbmVkXCJcbiAgICAgIChjbGljayk9XCJ1cGRhdGVTdGF0ZShvcHRpb24sICRldmVudClcIlxuICAgID5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgIGJhc2ljT3B0aW9uQ29udGVudFRwbDtcbiAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cbiAgICAgICAgXCJcbiAgICAgID5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9saT5cbiAgICA8IS0tIENoZWNraW5nIG92ZXJmbG93IG9uIGN1c3RvbSB0ZW1wbGF0ZXMgZG8gbm90IHdvcmsgc2tpcCBhZGRpbmcgbmdndlRvb2xUaXAgaWYgY3VzdG9tIHRlbXBsYXRlIGlzIHByb3ZpZGVkIC0tPlxuICAgIDxsaVxuICAgICAgI29wdGlvblJlZnNcbiAgICAgICpuZ0lmPVwiISFvcHRpb25Db250ZW50VHBsXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgW2lkXT1cImlkICsgJy1vcHRpb24tJyArIG9wdGlvbi5rZXlcIlxuICAgICAgY2xhc3M9XCJnZHMtZHJvcGRvd25fX29wdGlvbnNfX2xhYmVsIG9wdGlvblwiXG4gICAgICByb2xlPVwib3B0aW9uXCJcbiAgICAgICNsaUVsZW1cbiAgICAgIFthdHRyLmRhdGEtdGhvb2tdPVwidGhvb2sgKyAnLW9wdGlvbi0nICsgb3B0aW9uLmtleVwiXG4gICAgICBbYXR0ci5hcmlhLWRpc2FibGVkXT1cIm9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIlxuICAgICAgICBvcHRpb24ua2V5ID09PSBzZWxlY3RlZFZhbHVlPy5rZXkgJiYgISFzZWxlY3RlZFZhbHVlPy5rZXlcbiAgICAgIFwiXG4gICAgICBbYXR0ci5hcmlhLWZvY3VzXT1cIm9wdGlvbi5rZXkgPT09IHN0YXRlPy5rZXkgJiYgIW9wdGlvbi5kaXNhYmxlZFwiXG4gICAgICAoY2xpY2spPVwidXBkYXRlU3RhdGUob3B0aW9uLCAkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25Db250ZW50VHBsOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogb3B0aW9uIH1cIlxuICAgICAgPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2xpPlxuICA8L25nLXRlbXBsYXRlPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbGlzdEdyb3VwVGVtcGxhdGUgbGV0LWl0ZW0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImdyb3VwTGFiZWxUcGxcIj5cbiAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImdyb3VwTGFiZWxUcGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFncm91cExhYmVsVHBsXCI+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJiYXNpY0dyb3VwTGFiZWxUcGw7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICNiYXNpY09wdGlvbkNvbnRlbnRUcGwgbGV0LW9wdGlvbj5cbiAgICA8bmdndi10eXBlYWhlYWQtaGlnaGxpZ2h0XG4gICAgICAqbmdJZj1cIiEhdGV4dFRvSGlnaGxpZ2h0XCJcbiAgICAgIFt0ZXh0VG9IaWdobGlnaHRdPVwidGV4dFRvSGlnaGxpZ2h0XCJcbiAgICAgIFt0ZXh0Q29udGVudF09XCJ0KG9wdGlvbi5sYWJlbClcIlxuICAgID5cbiAgICA8L25nZ3YtdHlwZWFoZWFkLWhpZ2hsaWdodD5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXRleHRUb0hpZ2hsaWdodFwiPlxuICAgICAge3sgdChvcHRpb24ubGFiZWwpIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPG5nLXRlbXBsYXRlICNiYXNpY0dyb3VwTGFiZWxUcGwgbGV0LWl0ZW0+XG4gICAgPGRpdiBjbGFzcz1cIm5nZ3YtZ3JvdXAtbGFiZWxcIj57eyB0KGl0ZW0ubGFiZWwpIH19PC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|