@sebgroup/green-angular 5.1.2 → 5.2.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/src/v-angular/account-number/account-number.module.mjs +18 -0
- package/esm2022/src/v-angular/account-number/account-number.pipe.mjs +54 -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 +387 -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/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 +10 -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 +387 -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-v-angular-account-number.mjs +76 -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 +585 -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 +6295 -2165
- package/fesm2022/sebgroup-green-angular-v-angular.mjs.map +1 -1
- package/package.json +51 -3
- package/src/v-angular/account-number/README.md +70 -0
- package/src/v-angular/account-number/account-number.module.d.ts +8 -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 +229 -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/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 +9 -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 +229 -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,408 @@
|
|
|
1
|
+
import { ChangeDetectorRef, ContentChild, Directive, ElementRef, EventEmitter, HostBinding, Inject, Input, Optional, Output, Self, TemplateRef, ViewChild, } from '@angular/core';
|
|
2
|
+
import { NgControl, Validators, } from '@angular/forms';
|
|
3
|
+
import { TRANSLOCO_SCOPE, TranslocoService, } from '@jsverse/transloco';
|
|
4
|
+
import { Observable, Subject } from 'rxjs';
|
|
5
|
+
import { takeUntil } from 'rxjs/operators';
|
|
6
|
+
import { getFormatDateMask, getLocaleDateMask, getLocaleDateString, setDateFormatCharacters, } from '../models/dates';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/forms";
|
|
9
|
+
import * as i2 from "@jsverse/transloco";
|
|
10
|
+
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
11
|
+
export class DateControlValueAccessorComponent {
|
|
12
|
+
/** Text shown before input has a written value. Default current date format by locale of transloco */
|
|
13
|
+
set placeholder(value) {
|
|
14
|
+
this._placeholder = value
|
|
15
|
+
? setDateFormatCharacters(value, this.dateCharacters)
|
|
16
|
+
: value;
|
|
17
|
+
this.defaultPlaceholder = value
|
|
18
|
+
? setDateFormatCharacters(value, this.dateCharacters)
|
|
19
|
+
: value;
|
|
20
|
+
}
|
|
21
|
+
get placeholder() {
|
|
22
|
+
return this._placeholder;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Settings for input mask for dates based on locale
|
|
26
|
+
* @see {@link getLocaleDateMask} use this tool to generate settings for `dateInputMask`
|
|
27
|
+
*/
|
|
28
|
+
set dateInputMask(dateMask) {
|
|
29
|
+
// Hide input field
|
|
30
|
+
this.showInputDateSrc.next(false);
|
|
31
|
+
this.cdr.detectChanges();
|
|
32
|
+
this._dateInputMask = dateMask;
|
|
33
|
+
// Show input field to reload input-mask settings upon update
|
|
34
|
+
setTimeout(() => {
|
|
35
|
+
this.showInputDateSrc.next(true);
|
|
36
|
+
this.cdr.detectChanges();
|
|
37
|
+
}, 200);
|
|
38
|
+
}
|
|
39
|
+
get dateInputMask() {
|
|
40
|
+
return this._dateInputMask;
|
|
41
|
+
}
|
|
42
|
+
/** Hides the input borders and displays current value as a text. */
|
|
43
|
+
set locked(value) {
|
|
44
|
+
this._locked = value;
|
|
45
|
+
this.cdr.detectChanges();
|
|
46
|
+
}
|
|
47
|
+
get locked() {
|
|
48
|
+
return this._locked;
|
|
49
|
+
}
|
|
50
|
+
/** Override the required flag of the component. */
|
|
51
|
+
set required(value) {
|
|
52
|
+
this._required = value;
|
|
53
|
+
}
|
|
54
|
+
/** Child input element is considered required and changes default label template accordingly. */
|
|
55
|
+
get required() {
|
|
56
|
+
// if required is set => return required
|
|
57
|
+
if (this._required !== undefined)
|
|
58
|
+
return this._required;
|
|
59
|
+
// if required can be determined from the control => return control.required
|
|
60
|
+
if (this.ngControl?.control?.validator) {
|
|
61
|
+
const validator = this.ngControl?.control?.validator({});
|
|
62
|
+
return validator && validator.required;
|
|
63
|
+
}
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
/** Override the invalid state of the component. */
|
|
67
|
+
set invalid(value) {
|
|
68
|
+
this._invalid = value;
|
|
69
|
+
}
|
|
70
|
+
/** The component has the invalid state, usually decorating the elements red and shows the first error. */
|
|
71
|
+
get invalid() {
|
|
72
|
+
if (this._invalid === true || this._invalid === false)
|
|
73
|
+
return this._invalid;
|
|
74
|
+
return (!!this.ngControl?.control?.invalid && this.ngControl?.control?.touched);
|
|
75
|
+
}
|
|
76
|
+
/** Override the valid state of the component. */
|
|
77
|
+
set valid(value) {
|
|
78
|
+
this._valid = value;
|
|
79
|
+
}
|
|
80
|
+
/** The component has the valid state, usually decorating the elements green. */
|
|
81
|
+
get valid() {
|
|
82
|
+
if (this._valid === true || this._valid === false)
|
|
83
|
+
return this._valid;
|
|
84
|
+
return !!this.ngControl?.control?.valid && this.ngControl?.control?.touched;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Creates a new BaseControlValueAccessorComponent.
|
|
88
|
+
* @param ngControl optional FormControl provided when component is used in a form, through dependency injection.
|
|
89
|
+
*/
|
|
90
|
+
constructor(ngControl, translocoScope, elementRef, cdr, _transloco) {
|
|
91
|
+
this.ngControl = ngControl;
|
|
92
|
+
this.translocoScope = translocoScope;
|
|
93
|
+
this.elementRef = elementRef;
|
|
94
|
+
this.cdr = cdr;
|
|
95
|
+
this._transloco = _transloco;
|
|
96
|
+
/* ATTRIBUTES */
|
|
97
|
+
/** Id of the host element and is accessible by the children, automatically generated if not provided. */
|
|
98
|
+
this.id = window.ngv?.nextId('datepicker');
|
|
99
|
+
/** Adds an icon before each error message. */
|
|
100
|
+
this.withErrorIcon = false;
|
|
101
|
+
/** If set to true, the browser will try to automatically set focus to the child input element. */
|
|
102
|
+
this.autofocus = false;
|
|
103
|
+
this._locked = undefined;
|
|
104
|
+
/* STATES */
|
|
105
|
+
this._required = undefined;
|
|
106
|
+
this._invalid = undefined;
|
|
107
|
+
this._valid = undefined;
|
|
108
|
+
/** The component has the focused state, updated by the child input element's focus state. */
|
|
109
|
+
this.focused = false;
|
|
110
|
+
/** The component has the disabled state, usually muting the colors and removes interaction. */
|
|
111
|
+
this.disabled = false;
|
|
112
|
+
/** Toggler for showing or hiding the input field */
|
|
113
|
+
this.showInputDateSrc = new Subject();
|
|
114
|
+
/* TRIGGERS */
|
|
115
|
+
/** Emits focus events triggered by the child elements. */
|
|
116
|
+
this.ngvFocus = new EventEmitter();
|
|
117
|
+
/** Emits focus events triggered by the child elements. */
|
|
118
|
+
this.ngvBlur = new EventEmitter();
|
|
119
|
+
/* VALUE HANDLERS */
|
|
120
|
+
/** @internal */
|
|
121
|
+
this.onChange = (_) => { }; // eslint-disable-line @typescript-eslint/no-empty-function
|
|
122
|
+
/** @internal */
|
|
123
|
+
this.onTouched = () => { }; // eslint-disable-line @typescript-eslint/no-empty-function
|
|
124
|
+
/** @internal */
|
|
125
|
+
this.onValidatorChange = () => null;
|
|
126
|
+
this._state = null;
|
|
127
|
+
/** @internal */
|
|
128
|
+
// warningIcon = faTriangleExclamation;
|
|
129
|
+
/* LIFE CYCLE VARIABLES */
|
|
130
|
+
this._onDestroy$ = new Subject();
|
|
131
|
+
if (this.ngControl) {
|
|
132
|
+
// Note: we provide the value accessor through here, instead of
|
|
133
|
+
// the `providers` to avoid running into a circular import.
|
|
134
|
+
this.ngControl.valueAccessor = this;
|
|
135
|
+
}
|
|
136
|
+
if (this.translocoScope)
|
|
137
|
+
this.scope = this.translocoScope.toString();
|
|
138
|
+
}
|
|
139
|
+
static parseDateLike(value) {
|
|
140
|
+
try {
|
|
141
|
+
// if value is type of string,
|
|
142
|
+
if (value && typeof value === 'string')
|
|
143
|
+
value = new Date(value);
|
|
144
|
+
switch (true) {
|
|
145
|
+
// remove instances where the value will not correctly be parsed to a date string
|
|
146
|
+
case value == null:
|
|
147
|
+
case value?.toString() === 'Invalid Date':
|
|
148
|
+
return null;
|
|
149
|
+
// if value-as-date is a valid date object, parse the value to YYYY-MM-DD format
|
|
150
|
+
case typeof value?.getMonth === 'function':
|
|
151
|
+
return new Intl.DateTimeFormat('sv-SE').format(value);
|
|
152
|
+
default:
|
|
153
|
+
return value;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
catch (_e) {
|
|
157
|
+
return;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
// eslint-disable-next-line @angular-eslint/contextual-lifecycle
|
|
161
|
+
ngOnInit() {
|
|
162
|
+
if (this.ngControl && this.ngControl.control) {
|
|
163
|
+
this.ngControl.control.setValidators(Validators.compose([this.ngControl.control.validator, this.validate]));
|
|
164
|
+
}
|
|
165
|
+
this._transloco.langChanges$.pipe(takeUntil(this._onDestroy$)).subscribe({
|
|
166
|
+
next: () => {
|
|
167
|
+
if (!this.locale && !this.dateFormat) {
|
|
168
|
+
return this.updatePlaceholderAndMask();
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
});
|
|
172
|
+
// if reset observable has been passed, subscribe after updates
|
|
173
|
+
this.reset?.pipe(takeUntil(this._onDestroy$)).subscribe({
|
|
174
|
+
next: () => {
|
|
175
|
+
// reset value of controller
|
|
176
|
+
this.updateValue('');
|
|
177
|
+
},
|
|
178
|
+
});
|
|
179
|
+
}
|
|
180
|
+
// eslint-disable-next-line @angular-eslint/contextual-lifecycle
|
|
181
|
+
ngAfterViewInit() {
|
|
182
|
+
// if default value is set, then don't alter it. Otherwise, use
|
|
183
|
+
// current value of controller after initiation as default value
|
|
184
|
+
this.defaultValue = this.defaultValue ?? this.ngControl?.value;
|
|
185
|
+
}
|
|
186
|
+
ngOnChanges(changes) {
|
|
187
|
+
if (changes.defaultValue?.currentValue) {
|
|
188
|
+
this.updateValue(changes.defaultValue.currentValue);
|
|
189
|
+
}
|
|
190
|
+
if (changes.locale?.currentValue &&
|
|
191
|
+
!this.dateFormat &&
|
|
192
|
+
!changes.dateFormat?.currentValue) {
|
|
193
|
+
this.updatePlaceholderAndMask();
|
|
194
|
+
}
|
|
195
|
+
if (changes.dateFormat?.currentValue) {
|
|
196
|
+
this.updateFormat();
|
|
197
|
+
}
|
|
198
|
+
if (changes.dateCharacters?.currentValue) {
|
|
199
|
+
if (this.dateFormat) {
|
|
200
|
+
this.updateFormat();
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
this.updatePlaceholderAndMask();
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
if (!!changes.dateLocale?.currentValue && !this.dateFormat) {
|
|
207
|
+
this.updatePlaceholderAndMask();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
ngOnDestroy() {
|
|
211
|
+
this._onDestroy$.next(true);
|
|
212
|
+
this._onDestroy$.complete();
|
|
213
|
+
}
|
|
214
|
+
/** @internal */
|
|
215
|
+
onFocus(event) {
|
|
216
|
+
event.stopPropagation
|
|
217
|
+
? event.stopPropagation()
|
|
218
|
+
: (event.cancelBubble = true);
|
|
219
|
+
this.focused = true;
|
|
220
|
+
this.ngvFocus.emit(event);
|
|
221
|
+
}
|
|
222
|
+
/** @internal */
|
|
223
|
+
onBlur(event) {
|
|
224
|
+
event.stopPropagation
|
|
225
|
+
? event.stopPropagation()
|
|
226
|
+
: (event.cancelBubble = true);
|
|
227
|
+
this.onTouched();
|
|
228
|
+
this.focused = false;
|
|
229
|
+
this.ngvBlur.emit(event);
|
|
230
|
+
}
|
|
231
|
+
detectChanges() {
|
|
232
|
+
this.cdr.detectChanges();
|
|
233
|
+
}
|
|
234
|
+
/** Sets the focus on the actual input element. */
|
|
235
|
+
setFocus() {
|
|
236
|
+
if (this.inputRef)
|
|
237
|
+
this.inputRef.nativeElement.focus();
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* @internal
|
|
241
|
+
* Update placeholder and input mask to match locale.
|
|
242
|
+
* Order if choice for locale:
|
|
243
|
+
* 1. dateLocale - Used for specifying which locale to be used for formatting date
|
|
244
|
+
* 2. locale - Unless dateLocale is not provided, use locale form current translation
|
|
245
|
+
* 3. transloco.getActiveLang - as last resort, get active language form trnasloco
|
|
246
|
+
* If locale is undefined, transloco.activeLang will be used instead.
|
|
247
|
+
*/
|
|
248
|
+
updatePlaceholderAndMask() {
|
|
249
|
+
const locale = this.dateLocale ?? this.locale ?? this._transloco.getActiveLang();
|
|
250
|
+
this._placeholder = this.defaultPlaceholder
|
|
251
|
+
? setDateFormatCharacters(this.defaultPlaceholder, this.dateCharacters)
|
|
252
|
+
: setDateFormatCharacters(getLocaleDateString(locale).toLowerCase(), this.dateCharacters);
|
|
253
|
+
this.dateInputMask = getLocaleDateMask(this.dateCharacters, locale);
|
|
254
|
+
}
|
|
255
|
+
updateFormat() {
|
|
256
|
+
if (this.dateFormat) {
|
|
257
|
+
this._placeholder = this.defaultPlaceholder
|
|
258
|
+
? setDateFormatCharacters(this.defaultPlaceholder, this.dateCharacters)
|
|
259
|
+
: setDateFormatCharacters(this.dateFormat.toLowerCase(), this.dateCharacters);
|
|
260
|
+
this.dateInputMask = getFormatDateMask(this.dateFormat, this.dateCharacters);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
// ----------------------------------------------------------------------------
|
|
264
|
+
// CONTROL VALUE ACCESSOR
|
|
265
|
+
// ----------------------------------------------------------------------------
|
|
266
|
+
/** Internal state/value that the native input element has. */
|
|
267
|
+
get state() {
|
|
268
|
+
return this._state;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Internal state/value that the native input element has.
|
|
272
|
+
*/
|
|
273
|
+
set state(value) {
|
|
274
|
+
this._state = value;
|
|
275
|
+
}
|
|
276
|
+
/** Writes a new value to the child input element. */
|
|
277
|
+
writeValue(value) {
|
|
278
|
+
this.state = value;
|
|
279
|
+
this.onChange(this.state);
|
|
280
|
+
}
|
|
281
|
+
/** Registers a callback function that is called when the child input element's value changes. */
|
|
282
|
+
registerOnChange(fn) {
|
|
283
|
+
this.onChange = (value) => {
|
|
284
|
+
// ensure emitted value is a string | null | undefined
|
|
285
|
+
const emitValue = DateControlValueAccessorComponent.parseDateLike(value);
|
|
286
|
+
fn(emitValue);
|
|
287
|
+
};
|
|
288
|
+
}
|
|
289
|
+
/** Registers a callback function that is called when the child input element triggers on blur. */
|
|
290
|
+
registerOnTouched(fn) {
|
|
291
|
+
this.onTouched = fn;
|
|
292
|
+
}
|
|
293
|
+
/** Function that is called by the forms API when the control status changes to or from 'DISABLED'. */
|
|
294
|
+
setDisabledState(isDisabled) {
|
|
295
|
+
this.disabled = isDisabled;
|
|
296
|
+
// if displayDisabledAsLocked is enabled - update locked state based on disabled state
|
|
297
|
+
if (this.displayDisabledAsLocked) {
|
|
298
|
+
this.locked = isDisabled;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
// ----------------------------------------------------------------------------
|
|
302
|
+
// VALIDATORS
|
|
303
|
+
// ----------------------------------------------------------------------------
|
|
304
|
+
/** Method that performs synchronous validation against the provided control. Used for internal validation. */
|
|
305
|
+
validate(_control) {
|
|
306
|
+
return null;
|
|
307
|
+
}
|
|
308
|
+
/** Registers a callback function to call when the validator inputs change. */
|
|
309
|
+
registerOnValidatorChange(fn) {
|
|
310
|
+
this.onValidatorChange = fn;
|
|
311
|
+
}
|
|
312
|
+
// ----------------------------------------------------------------------------
|
|
313
|
+
// HELPERS
|
|
314
|
+
// ----------------------------------------------------------------------------
|
|
315
|
+
/** Returns the first entry in an error object. */
|
|
316
|
+
get firstError() {
|
|
317
|
+
const errors = this.ngControl.errors;
|
|
318
|
+
if (!errors)
|
|
319
|
+
return null;
|
|
320
|
+
const code = Object.keys(errors)[0];
|
|
321
|
+
return { code, params: errors[code] };
|
|
322
|
+
}
|
|
323
|
+
updateValue(value = this.defaultValue) {
|
|
324
|
+
this.state = value;
|
|
325
|
+
this.onChange(this.state);
|
|
326
|
+
this.cdr.detectChanges();
|
|
327
|
+
}
|
|
328
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateControlValueAccessorComponent, deps: [{ token: i1.NgControl, optional: true, self: true }, { token: TRANSLOCO_SCOPE, optional: true }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.TranslocoService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
329
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: DateControlValueAccessorComponent, inputs: { id: "id", name: "name", label: "label", placeholder: "placeholder", dateCharacters: "dateCharacters", role: "role", value: "value", error: "error", errorList: "errorList", withErrorIcon: "withErrorIcon", description: "description", autofocus: "autofocus", defaultValue: "defaultValue", reset: "reset", optional: "optional", dateInputMask: "dateInputMask", locked: "locked", displayDisabledAsLocked: "displayDisabledAsLocked", required: "required", invalid: "invalid", valid: "valid", focused: "focused", disabled: "disabled", locale: "locale", dateFormat: "dateFormat", dateLocale: "dateLocale" }, outputs: { ngvFocus: "ngvFocus", ngvBlur: "ngvBlur" }, host: { properties: { "attr.id": "this.id" } }, queries: [{ propertyName: "labelContentTpl", first: true, predicate: ["labelTpl"], descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["input"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0 }); }
|
|
330
|
+
}
|
|
331
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DateControlValueAccessorComponent, decorators: [{
|
|
332
|
+
type: Directive
|
|
333
|
+
}], ctorParameters: () => [{ type: i1.NgControl, decorators: [{
|
|
334
|
+
type: Self
|
|
335
|
+
}, {
|
|
336
|
+
type: Optional
|
|
337
|
+
}] }, { type: undefined, decorators: [{
|
|
338
|
+
type: Optional
|
|
339
|
+
}, {
|
|
340
|
+
type: Inject,
|
|
341
|
+
args: [TRANSLOCO_SCOPE]
|
|
342
|
+
}] }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i2.TranslocoService }], propDecorators: { labelContentTpl: [{
|
|
343
|
+
type: ContentChild,
|
|
344
|
+
args: ['labelTpl', { read: TemplateRef }]
|
|
345
|
+
}], inputRef: [{
|
|
346
|
+
type: ViewChild,
|
|
347
|
+
args: ['input', { read: ElementRef }]
|
|
348
|
+
}], id: [{
|
|
349
|
+
type: HostBinding,
|
|
350
|
+
args: ['attr.id']
|
|
351
|
+
}, {
|
|
352
|
+
type: Input
|
|
353
|
+
}], name: [{
|
|
354
|
+
type: Input
|
|
355
|
+
}], label: [{
|
|
356
|
+
type: Input
|
|
357
|
+
}], placeholder: [{
|
|
358
|
+
type: Input
|
|
359
|
+
}], dateCharacters: [{
|
|
360
|
+
type: Input
|
|
361
|
+
}], role: [{
|
|
362
|
+
type: Input
|
|
363
|
+
}], value: [{
|
|
364
|
+
type: Input
|
|
365
|
+
}], error: [{
|
|
366
|
+
type: Input
|
|
367
|
+
}], errorList: [{
|
|
368
|
+
type: Input
|
|
369
|
+
}], withErrorIcon: [{
|
|
370
|
+
type: Input
|
|
371
|
+
}], description: [{
|
|
372
|
+
type: Input
|
|
373
|
+
}], autofocus: [{
|
|
374
|
+
type: Input
|
|
375
|
+
}], defaultValue: [{
|
|
376
|
+
type: Input
|
|
377
|
+
}], reset: [{
|
|
378
|
+
type: Input
|
|
379
|
+
}], optional: [{
|
|
380
|
+
type: Input
|
|
381
|
+
}], dateInputMask: [{
|
|
382
|
+
type: Input
|
|
383
|
+
}], locked: [{
|
|
384
|
+
type: Input
|
|
385
|
+
}], displayDisabledAsLocked: [{
|
|
386
|
+
type: Input
|
|
387
|
+
}], required: [{
|
|
388
|
+
type: Input
|
|
389
|
+
}], invalid: [{
|
|
390
|
+
type: Input
|
|
391
|
+
}], valid: [{
|
|
392
|
+
type: Input
|
|
393
|
+
}], focused: [{
|
|
394
|
+
type: Input
|
|
395
|
+
}], disabled: [{
|
|
396
|
+
type: Input
|
|
397
|
+
}], locale: [{
|
|
398
|
+
type: Input
|
|
399
|
+
}], dateFormat: [{
|
|
400
|
+
type: Input
|
|
401
|
+
}], dateLocale: [{
|
|
402
|
+
type: Input
|
|
403
|
+
}], ngvFocus: [{
|
|
404
|
+
type: Output
|
|
405
|
+
}], ngvBlur: [{
|
|
406
|
+
type: Output
|
|
407
|
+
}] } });
|
|
408
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvdi1hbmd1bGFyL2RhdGVwaWNrZXIvZGF0ZS1jb250cm9sLXZhbHVlLWFjY2Vzc29yL2RhdGUtY29udHJvbC12YWx1ZS1hY2Nlc3Nvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixZQUFZLEVBQ1osU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBSUwsUUFBUSxFQUNSLE1BQU0sRUFDTixJQUFJLEVBRUosV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBR0wsU0FBUyxFQUdULFVBQVUsR0FDWCxNQUFNLGdCQUFnQixDQUFBO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBRWYsZ0JBQWdCLEdBQ2pCLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUE7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFBO0FBSTFDLE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQix1QkFBdUIsR0FDeEIsTUFBTSxpQkFBaUIsQ0FBQTs7OztBQUd4QixrRUFBa0U7QUFDbEUsTUFBTSxPQUFnQixpQ0FBaUM7SUE4QnJELHNHQUFzRztJQUN0RyxJQUFhLFdBQVcsQ0FBQyxLQUF5QjtRQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUs7WUFDdkIsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ3JELENBQUMsQ0FBQyxLQUFLLENBQUE7UUFDVCxJQUFJ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c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE1BQU07c0JBQWQsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBUWEsUUFBUTtzQkFBMUIsTUFBTTtnQkFFWSxPQUFPO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbnRlbnRDaGlsZCxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTZWxmLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHtcbiAgQWJzdHJhY3RDb250cm9sLFxuICBDb250cm9sVmFsdWVBY2Nlc3NvcixcbiAgTmdDb250cm9sLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3IsXG4gIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHtcbiAgVFJBTlNMT0NPX1NDT1BFLFxuICBUcmFuc2xvY29TY29wZSxcbiAgVHJhbnNsb2NvU2VydmljZSxcbn0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJ1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHR5cGUgeyBJbnB1dG1hc2tPcHRpb25zIH0gZnJvbSAnQHNlYmdyb3VwL2dyZWVuLWFuZ3VsYXIvc3JjL3YtYW5ndWxhci9pbnB1dC1tYXNrJ1xuXG5pbXBvcnQge1xuICBEYXRlQ2hhcmFjdGVycyxcbiAgZ2V0Rm9ybWF0RGF0ZU1hc2ssXG4gIGdldExvY2FsZURhdGVNYXNrLFxuICBnZXRMb2NhbGVEYXRlU3RyaW5nLFxuICBzZXREYXRlRm9ybWF0Q2hhcmFjdGVycyxcbn0gZnJvbSAnLi4vbW9kZWxzL2RhdGVzJ1xuXG5ARGlyZWN0aXZlKCkgLy8gUmVxdWlyZWQgd2l0aCBBbmd1bGFyIGl2eSBjb21waWxlclxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9kaXJlY3RpdmUtY2xhc3Mtc3VmZml4XG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgRGF0ZUNvbnRyb2xWYWx1ZUFjY2Vzc29yQ29tcG9uZW50XG4gIGltcGxlbWVudHNcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIE9uSW5pdCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIENvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICAgIFZhbGlkYXRvclxue1xuICAvKiogQ3VzdG9tIHRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBjb250ZW50IG9mIHRoZSBsYWJlbC5cbiAgICogU3BlY2lmaWVkIGJ5IG5lc3RpbmcgYW4gYDxuZy10ZW1wbGF0ZSAjbGFiZWxUcGw+Q3VzdG9tIExhYmVsPC9uZy10ZW1wbGF0ZT5gLlxuICAgKi9cbiAgQENvbnRlbnRDaGlsZCgnbGFiZWxUcGwnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIGxhYmVsQ29udGVudFRwbD86IFRlbXBsYXRlUmVmPHVuZGVmaW5lZD5cblxuICAvKiogUmVmZXJlbmNlIHRvIHRoZSBuYXRpdmUgY2hpbGQgaW5wdXQgZWxlbWVudC4gKi9cbiAgQFZpZXdDaGlsZCgnaW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgaW5wdXRSZWY/OiBFbGVtZW50UmVmXG5cbiAgLyogQVRUUklCVVRFUyAqL1xuXG4gIC8qKiBJZCBvZiB0aGUgaG9zdCBlbGVtZW50IGFuZCBpcyBhY2Nlc3NpYmxlIGJ5IHRoZSBjaGlsZHJlbiwgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgaWYgbm90IHByb3ZpZGVkLiAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBASW5wdXQoKSBpZCA9ICh3aW5kb3cgYXMgYW55KS5uZ3Y/Lm5leHRJZChcbiAgICAnZGF0ZXBpY2tlcicsXG4gIClcbiAgLyoqIE5hbWUgb2YgdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQuICovXG4gIEBJbnB1dCgpIG5hbWU/OiBzdHJpbmdcbiAgLyoqIExhYmVsIG9mIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50IHVzaW5nIHRoZSBkZWZhdWx0IHRlbXBsYXRlLlxuICAgKiBDYW4gYmUgb3ZlcndyaXR0ZW4gYnkgc3BlY2lmeWluZyBhbiBgPG5nLXRlbXBsYXRlICNsYWJlbFRwbD5DdXN0b20gTGFiZWw8L25nLXRlbXBsYXRlPmAuXG4gICAqL1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZ1xuICAvKiogVGV4dCBzaG93biBiZWZvcmUgaW5wdXQgaGFzIGEgd3JpdHRlbiB2YWx1ZS4gRGVmYXVsdCBjdXJyZW50IGRhdGUgZm9ybWF0IGJ5IGxvY2FsZSBvZiB0cmFuc2xvY28gKi9cbiAgQElucHV0KCkgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlXG4gICAgICA/IHNldERhdGVGb3JtYXRDaGFyYWN0ZXJzKHZhbHVlLCB0aGlzLmRhdGVDaGFyYWN0ZXJzKVxuICAgICAgOiB2YWx1ZVxuICAgIHRoaXMuZGVmYXVsdFBsYWNlaG9sZGVyID0gdmFsdWVcbiAgICAgID8gc2V0RGF0ZUZvcm1hdENoYXJhY3RlcnModmFsdWUsIHRoaXMuZGF0ZUNoYXJhY3RlcnMpXG4gICAgICA6IHZhbHVlXG4gIH1cbiAgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlclxuICB9XG4gIHByaXZhdGUgX3BsYWNlaG9sZGVyOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgZGVmYXVsdFBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIC8qKiBXaGF0IGNoYXJhY3RlcnMgdG8gdXNlIGluIGRhdGUgcGxhY2Vob2xkZXIsIGUuZy4ge3llYXI6ICdZJywgbW9udGg6ICdNJywgZGF5OiAnRCd9ICovXG4gIEBJbnB1dCgpIGRhdGVDaGFyYWN0ZXJzPzogRGF0ZUNoYXJhY3RlcnNcbiAgLyoqIFJvbGUgb2YgdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQuIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FjY2Vzc2liaWxpdHkvQVJJQS9Sb2xlcyAqL1xuICBASW5wdXQoKSByb2xlPzogc3RyaW5nXG4gIC8qKiBWYWx1ZSBvZiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudC4gTW9zdGx5IHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCByYWRpbyBhbmQgY2hlY2tib3hlcy4gKi9cbiAgQElucHV0KCkgdmFsdWU6IGFueVxuICAvKiogQW4gZXJyb3Igc3RyaW5nIHRvIGJlIHNob3duIHVuZGVyIGludmFsaWQgaW5wdXRzLiBPdmVyd3JpdGVzIGFueSBmb3JtIGVycm9ycy4gKi9cbiAgQElucHV0KCkgZXJyb3I/OiBzdHJpbmdcbiAgLyoqIEEgbGlzdCBvZiBlcnJvcnMgc3RyaW5nIHRvIGJlIHNob3duIHVuZGVyIGludmFsaWQgaW5wdXRzLiBPdmVyd3JpdGVzIGFueSBmb3JtIGVycm9ycy4gKi9cbiAgQElucHV0KCkgZXJyb3JMaXN0Pzogc3RyaW5nW11cbiAgLyoqIEFkZHMgYW4gaWNvbiBiZWZvcmUgZWFjaCBlcnJvciBtZXNzYWdlLiAqL1xuICBASW5wdXQoKSB3aXRoRXJyb3JJY29uPzogYm9vbGVhbiA9IGZhbHNlXG4gIC8qKiBEZXNjcmlwdGlvbiBvZiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudC4gQm90aCB2aXNpYmx5IGFuZCBhcyBgYXJpYS1sYWJlbGAuICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgdGhlIGJyb3dzZXIgd2lsbCB0cnkgdG8gYXV0b21hdGljYWxseSBzZXQgZm9jdXMgdG8gdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQuICovXG4gIEBJbnB1dCgpIGF1dG9mb2N1cyA9IGZhbHNlXG4gIC8qKiBEZWZhdWx0IHZhbHVlIG9mIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50LiAqL1xuICBASW5wdXQoKSBkZWZhdWx0VmFsdWU/OiBhbnlcbiAgLyoqIElmIHBhc3NlZCwgdGhlIGNvbXBvbmVudCB3aWxsIGxpc3RlbiBmb3IgdXBkYXRlcyBhbmQgd2lsbCByZXNldCBpdHMgdmFsdWUuICovXG4gIEBJbnB1dCgpIHJlc2V0PzogT2JzZXJ2YWJsZTxhbnk+XG4gIC8qKiBBZGRzIChPcHRpb25hbCkgdG8gaW5wdXQgbGFiZWwuICovXG4gIEBJbnB1dCgpIG9wdGlvbmFsPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWRcbiAgLyoqXG4gICAqIFNldHRpbmdzIGZvciBpbnB1dCBtYXNrIGZvciBkYXRlcyBiYXNlZCBvbiBsb2NhbGVcbiAgICogQHNlZSB7QGxpbmsgZ2V0TG9jYWxlRGF0ZU1hc2t9IHVzZSB0aGlzIHRvb2wgdG8gZ2VuZXJhdGUgc2V0dGluZ3MgZm9yIGBkYXRlSW5wdXRNYXNrYFxuICAgKi9cbiAgQElucHV0KCkgc2V0IGRhdGVJbnB1dE1hc2soZGF0ZU1hc2s6IElucHV0bWFza09wdGlvbnM8RGF0ZT4pIHtcbiAgICAvLyBIaWRlIGlucHV0IGZpZWxkXG4gICAgdGhpcy5zaG93SW5wdXREYXRlU3JjLm5leHQoZmFsc2UpXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgdGhpcy5fZGF0ZUlucHV0TWFzayA9IGRhdGVNYXNrXG5cbiAgICAvLyBTaG93IGlucHV0IGZpZWxkIHRvIHJlbG9hZCBpbnB1dC1tYXNrIHNldHRpbmdzIHVwb24gdXBkYXRlXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dJbnB1dERhdGVTcmMubmV4dCh0cnVlKVxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpXG4gICAgfSwgMjAwKVxuICB9XG4gIGdldCBkYXRlSW5wdXRNYXNrKCk6IElucHV0bWFza09wdGlvbnM8RGF0ZT4ge1xuICAgIHJldHVybiB0aGlzLl9kYXRlSW5wdXRNYXNrXG4gIH1cbiAgcHJpdmF0ZSBfZGF0ZUlucHV0TWFzayE6IElucHV0bWFza09wdGlvbnM8RGF0ZT5cblxuICBwcml2YXRlIF9sb2NrZWQ6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gIC8qKiBIaWRlcyB0aGUgaW5wdXQgYm9yZGVycyBhbmQgZGlzcGxheXMgY3VycmVudCB2YWx1ZSBhcyBhIHRleHQuICovXG4gIEBJbnB1dCgpIHNldCBsb2NrZWQodmFsdWU6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5fbG9ja2VkID0gdmFsdWVcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuICBnZXQgbG9ja2VkKCk6IGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fbG9ja2VkXG4gIH1cbiAgLyoqIElmIHNldCB0byB0cnVlLCB1c2luZyBhIGNvbnRyb2xzIGRpc2FibGVkIHN0YXRlIHdpbGwgZGlzcGxheSBpbnB1dCBhcyBsb2NrZWQuICovXG4gIEBJbnB1dCgpIGRpc3BsYXlEaXNhYmxlZEFzTG9ja2VkPzogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWRcblxuICAvKiBTVEFURVMgKi9cblxuICBwcml2YXRlIF9yZXF1aXJlZDogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbiAgLyoqIE92ZXJyaWRlIHRoZSByZXF1aXJlZCBmbGFnIG9mIHRoZSBjb21wb25lbnQuICovXG4gIEBJbnB1dCgpIHNldCByZXF1aXJlZCh2YWx1ZTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9yZXF1aXJlZCA9IHZhbHVlXG4gIH1cbiAgLyoqIENoaWxkIGlucHV0IGVsZW1lbnQgaXMgY29uc2lkZXJlZCByZXF1aXJlZCBhbmQgY2hhbmdlcyBkZWZhdWx0IGxhYmVsIHRlbXBsYXRlIGFjY29yZGluZ2x5LiAqL1xuICBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB8IG51bGwgfCB1bmRlZmluZWQge1xuICAgIC8vIGlmIHJlcXVpcmVkIGlzIHNldCA9PiByZXR1cm4gcmVxdWlyZWRcbiAgICBpZiAodGhpcy5fcmVxdWlyZWQgIT09IHVuZGVmaW5lZCkgcmV0dXJuIHRoaXMuX3JlcXVpcmVkXG5cbiAgICAvLyBpZiByZXF1aXJlZCBjYW4gYmUgZGV0ZXJtaW5lZCBmcm9tIHRoZSBjb250cm9sID0+IHJldHVybiBjb250cm9sLnJlcXVpcmVkXG4gICAgaWYgKHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWxpZGF0b3IpIHtcbiAgICAgIGNvbnN0IHZhbGlkYXRvciA9IHRoaXMubmdDb250cm9sPy5jb250cm9sPy52YWxpZGF0b3IoXG4gICAgICAgIHt9IGFzIEFic3RyYWN0Q29udHJvbCxcbiAgICAgIClcbiAgICAgIHJldHVybiB2YWxpZGF0b3IgJiYgdmFsaWRhdG9yLnJlcXVpcmVkXG4gICAgfVxuXG4gICAgcmV0dXJuXG4gIH1cblxuICBwcml2YXRlIF9pbnZhbGlkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4gIC8qKiBPdmVycmlkZSB0aGUgaW52YWxpZCBzdGF0ZSBvZiB0aGUgY29tcG9uZW50LiAqL1xuICBASW5wdXQoKSBzZXQgaW52YWxpZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2ludmFsaWQgPSB2YWx1ZVxuICB9XG4gIC8qKiBUaGUgY29tcG9uZW50IGhhcyB0aGUgaW52YWxpZCBzdGF0ZSwgdXN1YWxseSBkZWNvcmF0aW5nIHRoZSBlbGVtZW50cyByZWQgYW5kIHNob3dzIHRoZSBmaXJzdCBlcnJvci4gKi9cbiAgZ2V0IGludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX2ludmFsaWQgPT09IHRydWUgfHwgdGhpcy5faW52YWxpZCA9PT0gZmFsc2UpIHJldHVybiB0aGlzLl9pbnZhbGlkXG4gICAgcmV0dXJuIChcbiAgICAgICEhdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LmludmFsaWQgJiYgdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnRvdWNoZWRcbiAgICApXG4gIH1cblxuICBwcml2YXRlIF92YWxpZDogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuICAvKiogT3ZlcnJpZGUgdGhlIHZhbGlkIHN0YXRlIG9mIHRoZSBjb21wb25lbnQuICovXG4gIEBJbnB1dCgpIHNldCB2YWxpZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX3ZhbGlkID0gdmFsdWVcbiAgfVxuICAvKiogVGhlIGNvbXBvbmVudCBoYXMgdGhlIHZhbGlkIHN0YXRlLCB1c3VhbGx5IGRlY29yYXRpbmcgdGhlIGVsZW1lbnRzIGdyZWVuLiAqL1xuICBnZXQgdmFsaWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuX3ZhbGlkID09PSB0cnVlIHx8IHRoaXMuX3ZhbGlkID09PSBmYWxzZSkgcmV0dXJuIHRoaXMuX3ZhbGlkXG4gICAgcmV0dXJuICEhdGhpcy5uZ0NvbnRyb2w/LmNvbnRyb2w/LnZhbGlkICYmIHRoaXMubmdDb250cm9sPy5jb250cm9sPy50b3VjaGVkXG4gIH1cblxuICAvKiogVGhlIGNvbXBvbmVudCBoYXMgdGhlIGZvY3VzZWQgc3RhdGUsIHVwZGF0ZWQgYnkgdGhlIGNoaWxkIGlucHV0IGVsZW1lbnQncyBmb2N1cyBzdGF0ZS4gKi9cbiAgQElucHV0KCkgZm9jdXNlZCA9IGZhbHNlXG4gIC8qKiBUaGUgY29tcG9uZW50IGhhcyB0aGUgZGlzYWJsZWQgc3RhdGUsIHVzdWFsbHkgbXV0aW5nIHRoZSBjb2xvcnMgYW5kIHJlbW92ZXMgaW50ZXJhY3Rpb24uICovXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2VcbiAgLyoqIExvY2FsZSBmb3IgdXNpbmcgY29ycmVjdCBsYW5ndWFnZSBpbiB0aGUgZGF0ZXBpY2tlci4gKi9cbiAgQElucHV0KCkgbG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgLyoqIERhdGUgZm9ybWF0IHVzZWQgZm9yIHBsYWNlaG9sZGVyIGFuZCBpbnB1dCBtYXNrLiBTaG91bGQgYmUgaW4gbG93ZXIgY2FzZSB7eWVhcjogJ3knLCBtb250aDogJ20nLCBkYXk6ICdkJ30gKi9cbiAgQElucHV0KCkgZGF0ZUZvcm1hdDogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIC8qKiBEYXRlIGxvY2FsZSB1c2VkIGZvciBwbGFjZWhvbGRlciBhbmQgaW5wdXQgbWFzay4gKi9cbiAgQElucHV0KCkgZGF0ZUxvY2FsZTogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgLyoqIFRvZ2dsZXIgZm9yIHNob3dpbmcgb3IgaGlkaW5nIHRoZSBpbnB1dCBmaWVsZCAqL1xuICBwcm90ZWN0ZWQgc2hvd0lucHV0RGF0ZVNyYyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KClcblxuICAvKiBUUklHR0VSUyAqL1xuXG4gIC8qKiBFbWl0cyBmb2N1cyBldmVudHMgdHJpZ2dlcmVkIGJ5IHRoZSBjaGlsZCBlbGVtZW50cy4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IG5ndkZvY3VzID0gbmV3IEV2ZW50RW1pdHRlcigpXG4gIC8qKiBFbWl0cyBmb2N1cyBldmVudHMgdHJpZ2dlcmVkIGJ5IHRoZSBjaGlsZCBlbGVtZW50cy4gKi9cbiAgQE91dHB1dCgpIHJlYWRvbmx5IG5ndkJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyKClcblxuICAvKiBWQUxVRSBIQU5ETEVSUyAqL1xuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBvbkNoYW5nZSA9IChfOiBhbnkpOiB2b2lkID0+IHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIG9uVG91Y2hlZCA9ICgpOiB2b2lkID0+IHt9IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWZ1bmN0aW9uXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHJvdGVjdGVkIG9uVmFsaWRhdG9yQ2hhbmdlOiAoKSA9PiB2b2lkID0gKCkgPT4gbnVsbFxuICBwcml2YXRlIF9zdGF0ZTogYW55ID0gbnVsbFxuXG4gIC8qIE9USEVSIFZBUklBQkxFUyAqL1xuICBzY29wZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgLy8gd2FybmluZ0ljb24gPSBmYVRyaWFuZ2xlRXhjbGFtYXRpb247XG5cbiAgLyogTElGRSBDWUNMRSBWQVJJQUJMRVMgKi9cbiAgcHJpdmF0ZSBfb25EZXN0cm95JCA9IG5ldyBTdWJqZWN0PHRydWU+KClcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIG5ldyBCYXNlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQuXG4gICAqIEBwYXJhbSBuZ0NvbnRyb2wgb3B0aW9uYWwgRm9ybUNvbnRyb2wgcHJvdmlkZWQgd2hlbiBjb21wb25lbnQgaXMgdXNlZCBpbiBhIGZvcm0sIHRocm91Z2ggZGVwZW5kZW5jeSBpbmplY3Rpb24uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHB1YmxpYyBuZ0NvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoVFJBTlNMT0NPX1NDT1BFKVxuICAgIHByb3RlY3RlZCB0cmFuc2xvY29TY29wZTogVHJhbnNsb2NvU2NvcGUsXG4gICAgcHJvdGVjdGVkIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJvdGVjdGVkIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBfdHJhbnNsb2NvOiBUcmFuc2xvY29TZXJ2aWNlLFxuICApIHtcbiAgICBpZiAodGhpcy5uZ0NvbnRyb2wpIHtcbiAgICAgIC8vIE5vdGU6IHdlIHByb3ZpZGUgdGhlIHZhbHVlIGFjY2Vzc29yIHRocm91Z2ggaGVyZSwgaW5zdGVhZCBvZlxuICAgICAgLy8gdGhlIGBwcm92aWRlcnNgIHRvIGF2b2lkIHJ1bm5pbmcgaW50byBhIGNpcmN1bGFyIGltcG9ydC5cbiAgICAgIHRoaXMubmdDb250cm9sLnZhbHVlQWNjZXNzb3IgPSB0aGlzXG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHJhbnNsb2NvU2NvcGUpIHRoaXMuc2NvcGUgPSB0aGlzLnRyYW5zbG9jb1Njb3BlLnRvU3RyaW5nKClcbiAgfVxuXG4gIHN0YXRpYyBwYXJzZURhdGVMaWtlKHZhbHVlOiBhbnkpOiBudWxsIHwgdW5kZWZpbmVkIHwgc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgLy8gaWYgdmFsdWUgaXMgdHlwZSBvZiBzdHJpbmcsXG4gICAgICBpZiAodmFsdWUgJiYgdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgdmFsdWUgPSBuZXcgRGF0ZSh2YWx1ZSlcbiAgICAgIHN3aXRjaCAodHJ1ZSkge1xuICAgICAgICAvLyByZW1vdmUgaW5zdGFuY2VzIHdoZXJlIHRoZSB2YWx1ZSB3aWxsIG5vdCBjb3JyZWN0bHkgYmUgcGFyc2VkIHRvIGEgZGF0ZSBzdHJpbmdcbiAgICAgICAgY2FzZSB2YWx1ZSA9PSBudWxsOlxuICAgICAgICBjYXNlIHZhbHVlPy50b1N0cmluZygpID09PSAnSW52YWxpZCBEYXRlJzpcbiAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAvLyBpZiB2YWx1ZS1hcy1kYXRlIGlzIGEgdmFsaWQgZGF0ZSBvYmplY3QsIHBhcnNlIHRoZSB2YWx1ZSB0byBZWVlZLU1NLUREIGZvcm1hdFxuICAgICAgICBjYXNlIHR5cGVvZiB2YWx1ZT8uZ2V0TW9udGggPT09ICdmdW5jdGlvbic6XG4gICAgICAgICAgcmV0dXJuIG5ldyBJbnRsLkRhdGVUaW1lRm9ybWF0KCdzdi1TRScpLmZvcm1hdCh2YWx1ZSlcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gdmFsdWUgYXMgc3RyaW5nXG4gICAgICB9XG4gICAgfSBjYXRjaCAoX2UpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29udGV4dHVhbC1saWZlY3ljbGVcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMubmdDb250cm9sICYmIHRoaXMubmdDb250cm9sLmNvbnRyb2wpIHtcbiAgICAgIHRoaXMubmdDb250cm9sLmNvbnRyb2wuc2V0VmFsaWRhdG9ycyhcbiAgICAgICAgVmFsaWRhdG9ycy5jb21wb3NlKFt0aGlzLm5nQ29udHJvbC5jb250cm9sLnZhbGlkYXRvciwgdGhpcy52YWxpZGF0ZV0pLFxuICAgICAgKVxuICAgIH1cblxuICAgIHRoaXMuX3RyYW5zbG9jby5sYW5nQ2hhbmdlcyQucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95JCkpLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5sb2NhbGUgJiYgIXRoaXMuZGF0ZUZvcm1hdCkge1xuICAgICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZVBsYWNlaG9sZGVyQW5kTWFzaygpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSlcblxuICAgIC8vIGlmIHJlc2V0IG9ic2VydmFibGUgaGFzIGJlZW4gcGFzc2VkLCBzdWJzY3JpYmUgYWZ0ZXIgdXBkYXRlc1xuICAgIHRoaXMucmVzZXQ/LnBpcGUodGFrZVVudGlsKHRoaXMuX29uRGVzdHJveSQpKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAvLyByZXNldCB2YWx1ZSBvZiBjb250cm9sbGVyXG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWUoJycpXG4gICAgICB9LFxuICAgIH0pXG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbnRleHR1YWwtbGlmZWN5Y2xlXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBpZiBkZWZhdWx0IHZhbHVlIGlzIHNldCwgdGhlbiBkb24ndCBhbHRlciBpdC4gT3RoZXJ3aXNlLCB1c2VcbiAgICAvLyBjdXJyZW50IHZhbHVlIG9mIGNvbnRyb2xsZXIgYWZ0ZXIgaW5pdGlhdGlvbiBhcyBkZWZhdWx0IHZhbHVlXG4gICAgdGhpcy5kZWZhdWx0VmFsdWUgPSB0aGlzLmRlZmF1bHRWYWx1ZSA/PyB0aGlzLm5nQ29udHJvbD8udmFsdWVcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5kZWZhdWx0VmFsdWU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZShjaGFuZ2VzLmRlZmF1bHRWYWx1ZS5jdXJyZW50VmFsdWUpXG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgY2hhbmdlcy5sb2NhbGU/LmN1cnJlbnRWYWx1ZSAmJlxuICAgICAgIXRoaXMuZGF0ZUZvcm1hdCAmJlxuICAgICAgIWNoYW5nZXMuZGF0ZUZvcm1hdD8uY3VycmVudFZhbHVlXG4gICAgKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBsYWNlaG9sZGVyQW5kTWFzaygpXG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0ZUZvcm1hdD8uY3VycmVudFZhbHVlKSB7XG4gICAgICB0aGlzLnVwZGF0ZUZvcm1hdCgpXG4gICAgfVxuXG4gICAgaWYgKGNoYW5nZXMuZGF0ZUNoYXJhY3RlcnM/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgaWYgKHRoaXMuZGF0ZUZvcm1hdCkge1xuICAgICAgICB0aGlzLnVwZGF0ZUZvcm1hdCgpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnVwZGF0ZVBsYWNlaG9sZGVyQW5kTWFzaygpXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCEhY2hhbmdlcy5kYXRlTG9jYWxlPy5jdXJyZW50VmFsdWUgJiYgIXRoaXMuZGF0ZUZvcm1hdCkge1xuICAgICAgdGhpcy51cGRhdGVQbGFjZWhvbGRlckFuZE1hc2soKVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX29uRGVzdHJveSQubmV4dCh0cnVlKVxuICAgIHRoaXMuX29uRGVzdHJveSQuY29tcGxldGUoKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbkZvY3VzKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvblxuICAgICAgPyBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgOiAoZXZlbnQuY2FuY2VsQnViYmxlID0gdHJ1ZSlcbiAgICB0aGlzLmZvY3VzZWQgPSB0cnVlXG4gICAgdGhpcy5uZ3ZGb2N1cy5lbWl0KGV2ZW50KVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbkJsdXIoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uXG4gICAgICA/IGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICA6IChldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlKVxuICAgIHRoaXMub25Ub3VjaGVkKClcbiAgICB0aGlzLmZvY3VzZWQgPSBmYWxzZVxuICAgIHRoaXMubmd2Qmx1ci5lbWl0KGV2ZW50KVxuICB9XG5cbiAgZGV0ZWN0Q2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKClcbiAgfVxuXG4gIC8qKiBTZXRzIHRoZSBmb2N1cyBvbiB0aGUgYWN0dWFsIGlucHV0IGVsZW1lbnQuICovXG4gIHNldEZvY3VzKCkge1xuICAgIGlmICh0aGlzLmlucHV0UmVmKSB0aGlzLmlucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVxuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBVcGRhdGUgcGxhY2Vob2xkZXIgIGFuZCBpbnB1dCBtYXNrIHRvIG1hdGNoIGxvY2FsZS5cbiAgICogT3JkZXIgaWYgY2hvaWNlIGZvciBsb2NhbGU6XG4gICAqIDEuIGRhdGVMb2NhbGUgLSBVc2VkIGZvciBzcGVjaWZ5aW5nIHdoaWNoIGxvY2FsZSB0byBiZSB1c2VkIGZvciBmb3JtYXR0aW5nIGRhdGVcbiAgICogMi4gbG9jYWxlIC0gVW5sZXNzIGRhdGVMb2NhbGUgaXMgbm90IHByb3ZpZGVkLCB1c2UgbG9jYWxlIGZvcm0gY3VycmVudCB0cmFuc2xhdGlvblxuICAgKiAzLiB0cmFuc2xvY28uZ2V0QWN0aXZlTGFuZyAtIGFzIGxhc3QgcmVzb3J0LCBnZXQgYWN0aXZlIGxhbmd1YWdlIGZvcm0gdHJuYXNsb2NvXG4gICAqIElmIGxvY2FsZSBpcyB1bmRlZmluZWQsIHRyYW5zbG9jby5hY3RpdmVMYW5nIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLlxuICAgKi9cbiAgdXBkYXRlUGxhY2Vob2xkZXJBbmRNYXNrKCkge1xuICAgIGNvbnN0IGxvY2FsZSA9XG4gICAgICB0aGlzLmRhdGVMb2NhbGUgPz8gdGhpcy5sb2NhbGUgPz8gdGhpcy5fdHJhbnNsb2NvLmdldEFjdGl2ZUxhbmcoKVxuXG4gICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB0aGlzLmRlZmF1bHRQbGFjZWhvbGRlclxuICAgICAgPyBzZXREYXRlRm9ybWF0Q2hhcmFjdGVycyh0aGlzLmRlZmF1bHRQbGFjZWhvbGRlciwgdGhpcy5kYXRlQ2hhcmFjdGVycylcbiAgICAgIDogc2V0RGF0ZUZvcm1hdENoYXJhY3RlcnMoXG4gICAgICAgICAgZ2V0TG9jYWxlRGF0ZVN0cmluZyhsb2NhbGUpLnRvTG93ZXJDYXNlKCksXG4gICAgICAgICAgdGhpcy5kYXRlQ2hhcmFjdGVycyxcbiAgICAgICAgKVxuICAgIHRoaXMuZGF0ZUlucHV0TWFzayA9IGdldExvY2FsZURhdGVNYXNrKHRoaXMuZGF0ZUNoYXJhY3RlcnMsIGxvY2FsZSlcbiAgfVxuXG4gIHVwZGF0ZUZvcm1hdCgpIHtcbiAgICBpZiAodGhpcy5kYXRlRm9ybWF0KSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHRoaXMuZGVmYXVsdFBsYWNlaG9sZGVyXG4gICAgICAgID8gc2V0RGF0ZUZvcm1hdENoYXJhY3RlcnModGhpcy5kZWZhdWx0UGxhY2Vob2xkZXIsIHRoaXMuZGF0ZUNoYXJhY3RlcnMpXG4gICAgICAgIDogc2V0RGF0ZUZvcm1hdENoYXJhY3RlcnMoXG4gICAgICAgICAgICB0aGlzLmRhdGVGb3JtYXQudG9Mb3dlckNhc2UoKSxcbiAgICAgICAgICAgIHRoaXMuZGF0ZUNoYXJhY3RlcnMsXG4gICAgICAgICAgKVxuICAgICAgdGhpcy5kYXRlSW5wdXRNYXNrID0gZ2V0Rm9ybWF0RGF0ZU1hc2soXG4gICAgICAgIHRoaXMuZGF0ZUZvcm1hdCxcbiAgICAgICAgdGhpcy5kYXRlQ2hhcmFjdGVycyxcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gIC8vIENPTlRST0wgVkFMVUUgQUNDRVNTT1JcbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG4gIC8qKiBJbnRlcm5hbCBzdGF0ZS92YWx1ZSB0aGF0IHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudCBoYXMuICovXG4gIGdldCBzdGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhdGVcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBzdGF0ZS92YWx1ZSB0aGF0IHRoZSBuYXRpdmUgaW5wdXQgZWxlbWVudCBoYXMuXG4gICAqL1xuICBzZXQgc3RhdGUodmFsdWUpIHtcbiAgICB0aGlzLl9zdGF0ZSA9IHZhbHVlXG4gIH1cblxuICAvKiogV3JpdGVzIGEgbmV3IHZhbHVlIHRvIHRoZSBjaGlsZCBpbnB1dCBlbGVtZW50LiAqL1xuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXRlID0gdmFsdWVcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMuc3RhdGUpXG4gIH1cblxuICAvKiogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudCdzIHZhbHVlIGNoYW5nZXMuICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9ICh2YWx1ZSkgPT4ge1xuICAgICAgLy8gZW5zdXJlIGVtaXR0ZWQgdmFsdWUgaXMgYSBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4gICAgICBjb25zdCBlbWl0VmFsdWUgPSBEYXRlQ29udHJvbFZhbHVlQWNjZXNzb3JDb21wb25lbnQucGFyc2VEYXRlTGlrZSh2YWx1ZSlcbiAgICAgIGZuKGVtaXRWYWx1ZSlcbiAgICB9XG4gIH1cblxuICAvKiogUmVnaXN0ZXJzIGEgY2FsbGJhY2sgZnVuY3Rpb24gdGhhdCBpcyBjYWxsZWQgd2hlbiB0aGUgY2hpbGQgaW5wdXQgZWxlbWVudCB0cmlnZ2VycyBvbiBibHVyLiAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm5cbiAgfVxuXG4gIC8qKiBGdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBieSB0aGUgZm9ybXMgQVBJIHdoZW4gdGhlIGNvbnRyb2wgc3RhdHVzIGNoYW5nZXMgdG8gb3IgZnJvbSAnRElTQUJMRUQnLiAqL1xuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZFxuXG4gICAgLy8gaWYgZGlzcGxheURpc2FibGVkQXNMb2NrZWQgaXMgZW5hYmxlZCAtIHVwZGF0ZSBsb2NrZWQgc3RhdGUgYmFzZWQgb24gZGlzYWJsZWQgc3RhdGVcbiAgICBpZiAodGhpcy5kaXNwbGF5RGlzYWJsZWRBc0xvY2tlZCkge1xuICAgICAgdGhpcy5sb2NrZWQgPSBpc0Rpc2FibGVkXG4gICAgfVxuICB9XG5cbiAgLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAvLyBWQUxJREFUT1JTXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuICAvKiogTWV0aG9kIHRoYXQgcGVyZm9ybXMgc3luY2hyb25vdXMgdmFsaWRhdGlvbiBhZ2FpbnN0IHRoZSBwcm92aWRlZCBjb250cm9sLiBVc2VkIGZvciBpbnRlcm5hbCB2YWxpZGF0aW9uLiAqL1xuICB2YWxpZGF0ZShfY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBbbmFtZTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgLyoqIFJlZ2lzdGVycyBhIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGNhbGwgd2hlbiB0aGUgdmFsaWRhdG9yIGlucHV0cyBjaGFuZ2UuICovXG4gIHJlZ2lzdGVyT25WYWxpZGF0b3JDaGFuZ2UoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlID0gZm5cbiAgfVxuXG4gIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAgLy8gSEVMUEVSU1xuICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbiAgLyoqIFJldHVybnMgdGhlIGZpcnN0IGVudHJ5IGluIGFuIGVycm9yIG9iamVjdC4gKi9cbiAgZ2V0IGZpcnN0RXJyb3IoKTogeyBjb2RlOiBzdHJpbmc7IHBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiB9IHwgbnVsbCB7XG4gICAgY29uc3QgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IHRoaXMubmdDb250cm9sLmVycm9yc1xuICAgIGlmICghZXJyb3JzKSByZXR1cm4gbnVsbFxuICAgIGNvbnN0IGNvZGUgPSBPYmplY3Qua2V5cyhlcnJvcnMpWzBdXG4gICAgcmV0dXJuIHsgY29kZSwgcGFyYW1zOiBlcnJvcnNbY29kZV0gfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZSh2YWx1ZSA9IHRoaXMuZGVmYXVsdFZhbHVlKSB7XG4gICAgdGhpcy5zdGF0ZSA9IHZhbHVlXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLnN0YXRlKVxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
;
|
|
2
|
+
(() => {
|
|
3
|
+
// Make sure there is an incremental ID each component can use
|
|
4
|
+
if (typeof window !== 'undefined' && !window.ngv) {
|
|
5
|
+
window.ngv = {
|
|
6
|
+
ids: { default: -1 },
|
|
7
|
+
nextId(namespace = 'default') {
|
|
8
|
+
let id = this.ids[namespace] || 0;
|
|
9
|
+
if (typeof this.ids[namespace] === 'number')
|
|
10
|
+
id++;
|
|
11
|
+
this.ids[namespace] = id;
|
|
12
|
+
return namespace === 'default'
|
|
13
|
+
? `nggv-${id}`
|
|
14
|
+
: `nggv-${namespace}-${id}`;
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
})();
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5nbG9iYWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy92LWFuZ3VsYXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmdsb2JhbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBY0EsQ0FBQztBQUFBLENBQUMsR0FBRyxFQUFFO0lBQ0wsOERBQThEO0lBQzlELElBQUksT0FBTyxNQUFNLEtBQUssV0FBVyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pELE1BQU0sQ0FBQyxHQUFHLEdBQUc7WUFDWCxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLEVBQUU7WUFDcEIsTUFBTSxDQUFDLFNBQVMsR0FBRyxTQUFTO2dCQUMxQixJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDakMsSUFBSSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEtBQUssUUFBUTtvQkFBRSxFQUFFLEVBQUUsQ0FBQTtnQkFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUE7Z0JBQ3hCLE9BQU8sU0FBUyxLQUFLLFNBQVM7b0JBQzVCLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtvQkFDZCxDQUFDLENBQUMsUUFBUSxTQUFTLElBQUksRUFBRSxFQUFFLENBQUE7WUFDL0IsQ0FBQztTQUNGLENBQUE7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8vIFdlIG11c3QgZm9yY2UgdHNjIHRvIGludGVycHJldCB0aGlzIGZpbGUgYXMgYSBtb2R1bGUsIHJlc29sdmVzXG4vLyBcIkF1Z21lbnRhdGlvbnMgZm9yIHRoZSBnbG9iYWwgc2NvcGUgY2FuIG9ubHkgYmUgZGlyZWN0bHkgbmVzdGVkIGluIGV4dGVybmFsIG1vZHVsZXMgb3IgYW1iaWVudCBtb2R1bGUgZGVjbGFyYXRpb25zLlwiXG5leHBvcnQge31cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAvKiogQ291bnRlciBmb3IgdW5pcXVlIGlkZW50aWZpZXJzICovXG4gICAgbmd2OiB7XG4gICAgICBpZHM6IHsgW25hbWVzcGFjZTogc3RyaW5nXTogbnVtYmVyOyBkZWZhdWx0OiBudW1iZXIgfVxuICAgICAgbmV4dElkOiAobmFtZXNwYWNlPzogc3RyaW5nKSA9PiBzdHJpbmdcbiAgICB9XG4gIH1cbn1cblxuOygoKSA9PiB7XG4gIC8vIE1ha2Ugc3VyZSB0aGVyZSBpcyBhbiBpbmNyZW1lbnRhbCBJRCBlYWNoIGNvbXBvbmVudCBjYW4gdXNlXG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJyAmJiAhd2luZG93Lm5ndikge1xuICAgIHdpbmRvdy5uZ3YgPSB7XG4gICAgICBpZHM6IHsgZGVmYXVsdDogLTEgfSxcbiAgICAgIG5leHRJZChuYW1lc3BhY2UgPSAnZGVmYXVsdCcpOiBzdHJpbmcge1xuICAgICAgICBsZXQgaWQgPSB0aGlzLmlkc1tuYW1lc3BhY2VdIHx8IDBcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmlkc1tuYW1lc3BhY2VdID09PSAnbnVtYmVyJykgaWQrK1xuICAgICAgICB0aGlzLmlkc1tuYW1lc3BhY2VdID0gaWRcbiAgICAgICAgcmV0dXJuIG5hbWVzcGFjZSA9PT0gJ2RlZmF1bHQnXG4gICAgICAgICAgPyBgbmdndi0ke2lkfWBcbiAgICAgICAgICA6IGBuZ2d2LSR7bmFtZXNwYWNlfS0ke2lkfWBcbiAgICAgIH0sXG4gICAgfVxuICB9XG59KSgpXG4iXX0=
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { formatDate } from '@angular/common';
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CalendarMonth {
|
|
5
|
+
constructor(date) {
|
|
6
|
+
this._date = date ? new Date(date) : new Date();
|
|
7
|
+
this._date.setDate(1);
|
|
8
|
+
this._date.setHours(0, 0, 0, 0);
|
|
9
|
+
this.year = this._date.getFullYear();
|
|
10
|
+
this.month = this._date.getMonth();
|
|
11
|
+
this.id = formatDate(this._date, 'yyyyMM', 'en');
|
|
12
|
+
}
|
|
13
|
+
/** Creates an instance based of input year and month. */
|
|
14
|
+
static fromObject(obj) {
|
|
15
|
+
const objectDate = new Date(obj.year, obj.month, 1);
|
|
16
|
+
return new CalendarMonth(objectDate);
|
|
17
|
+
}
|
|
18
|
+
/** Returns a Date representation for the instance. */
|
|
19
|
+
get date() {
|
|
20
|
+
return new Date(this._date);
|
|
21
|
+
}
|
|
22
|
+
/** Returns the string id representing the instance in form of 'yyyyMM'. */
|
|
23
|
+
valueOf() {
|
|
24
|
+
return this.id;
|
|
25
|
+
}
|
|
26
|
+
/** Returns a new instance for next month. */
|
|
27
|
+
nextMonth() {
|
|
28
|
+
const next = this.date;
|
|
29
|
+
next.setMonth(this.month + 1);
|
|
30
|
+
return new CalendarMonth(next);
|
|
31
|
+
}
|
|
32
|
+
/** Returns a new instance for previous month. */
|
|
33
|
+
previousMonth() {
|
|
34
|
+
const previous = this.date;
|
|
35
|
+
previous.setMonth(this.month - 1);
|
|
36
|
+
return new CalendarMonth(previous);
|
|
37
|
+
}
|
|
38
|
+
/** Returns a new instance for next year. */
|
|
39
|
+
nextYear() {
|
|
40
|
+
const nextYear = this.date;
|
|
41
|
+
nextYear.setFullYear(nextYear.getFullYear() + 1);
|
|
42
|
+
return new CalendarMonth(nextYear);
|
|
43
|
+
}
|
|
44
|
+
/** Returns a new instance for previous year. */
|
|
45
|
+
previousYear() {
|
|
46
|
+
const previousYear = this.date;
|
|
47
|
+
previousYear.setFullYear(previousYear.getFullYear() - 1);
|
|
48
|
+
return new CalendarMonth(previousYear);
|
|
49
|
+
}
|
|
50
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CalendarMonth, deps: [{ token: Date }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
51
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CalendarMonth }); }
|
|
52
|
+
}
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CalendarMonth, decorators: [{
|
|
54
|
+
type: Injectable
|
|
55
|
+
}], ctorParameters: () => [{ type: Date }] });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5tb2RlbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kYXRlcGlja2VyL2RhdGVwaWNrZXIubW9kZWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVcsTUFBTSxpQkFBaUIsQ0FBQTtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBOztBQTRCMUMsTUFBTSxPQUFPLGFBQWE7SUFNeEIsWUFBWSxJQUFXO1FBQ3JCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQTtRQUMvQyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2xDLElBQUksQ0FBQyxFQUFFLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFBO0lBQ2xELENBQUM7SUFFRCx5REFBeUQ7SUFDekQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFvQztRQUNwRCxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUE7UUFDbkQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUN0QyxDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRCwyRUFBMkU7SUFDM0UsT0FBTztRQUNMLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQTtJQUNoQixDQUFDO0lBRUQsNkNBQTZDO0lBQzdDLFNBQVM7UUFDUCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUM3QixPQUFPLElBQUksYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFFRCxpREFBaUQ7SUFDakQsYUFBYTtRQUNYLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDMUIsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFBO1FBQ2pDLE9BQU8sSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDcEMsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxRQUFRO1FBQ04sTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQTtRQUMxQixRQUFRLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUNoRCxPQUFPLElBQUksYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFBO0lBQ3BDLENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsWUFBWTtRQUNWLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUE7UUFDOUIsWUFBWSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUE7UUFDeEQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxZQUFZLENBQUMsQ0FBQTtJQUN4QyxDQUFDOytHQXpEVSxhQUFhO21IQUFiLGFBQWE7OzRGQUFiLGFBQWE7a0JBRHpCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtYXREYXRlLCBXZWVrRGF5IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5cbmV4cG9ydCB0eXBlIENhbGVuZGFyVHlwZSA9ICdub3JtYWwnIHwgJ2V4dGVuZGVkJ1xuXG5leHBvcnQgY29uc3QgZW51bSBNb250aCB7XG4gIEphbnVhcnksXG4gIEZlYnJ1YXJ5LFxuICBNYXJjaCxcbiAgQXByaWwsXG4gIE1heSxcbiAgSnVuZSxcbiAgSnVseSxcbiAgQXVndXN0LFxuICBTZXB0ZW1iZXIsXG4gIE9jdG9iZXIsXG4gIE5vdmVtYmVyLFxuICBEZWNlbWJlcixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaXNhYmxlRGF0ZUNvbmZpZyB7XG4gIGZyb21EYXRlPzogRGF0ZSB8IHVuZGVmaW5lZFxuICB0b0RhdGU/OiBEYXRlIHwgdW5kZWZpbmVkXG4gIGV4Y2x1ZGVEYXRlcz86IERhdGVbXSB8IHVuZGVmaW5lZFxuICBleGNsdWRlRGF5cz86IFdlZWtEYXlbXSB8IHVuZGVmaW5lZFxuICBjbG9zaW5nVGltZT86IERhdGUgfCB1bmRlZmluZWRcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENhbGVuZGFyTW9udGgge1xuICB5ZWFyOiBudW1iZXJcbiAgbW9udGg6IG51bWJlclxuICBpZDogc3RyaW5nXG4gIF9kYXRlOiBEYXRlXG5cbiAgY29uc3RydWN0b3IoZGF0ZT86IERhdGUpIHtcbiAgICB0aGlzLl9kYXRlID0gZGF0ZSA/IG5ldyBEYXRlKGRhdGUpIDogbmV3IERhdGUoKVxuICAgIHRoaXMuX2RhdGUuc2V0RGF0ZSgxKVxuICAgIHRoaXMuX2RhdGUuc2V0SG91cnMoMCwgMCwgMCwgMClcbiAgICB0aGlzLnllYXIgPSB0aGlzLl9kYXRlLmdldEZ1bGxZZWFyKClcbiAgICB0aGlzLm1vbnRoID0gdGhpcy5fZGF0ZS5nZXRNb250aCgpXG4gICAgdGhpcy5pZCA9IGZvcm1hdERhdGUodGhpcy5fZGF0ZSwgJ3l5eXlNTScsICdlbicpXG4gIH1cblxuICAvKiogQ3JlYXRlcyBhbiBpbnN0YW5jZSBiYXNlZCBvZiBpbnB1dCB5ZWFyIGFuZCBtb250aC4gKi9cbiAgc3RhdGljIGZyb21PYmplY3Qob2JqOiB7IHllYXI6IG51bWJlcjsgbW9udGg6IG51bWJlciB9KTogQ2FsZW5kYXJNb250aCB7XG4gICAgY29uc3Qgb2JqZWN0RGF0ZSA9IG5ldyBEYXRlKG9iai55ZWFyLCBvYmoubW9udGgsIDEpXG4gICAgcmV0dXJuIG5ldyBDYWxlbmRhck1vbnRoKG9iamVjdERhdGUpXG4gIH1cblxuICAvKiogUmV0dXJucyBhIERhdGUgcmVwcmVzZW50YXRpb24gZm9yIHRoZSBpbnN0YW5jZS4gKi9cbiAgZ2V0IGRhdGUoKTogRGF0ZSB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMuX2RhdGUpXG4gIH1cblxuICAvKiogUmV0dXJucyB0aGUgc3RyaW5nIGlkIHJlcHJlc2VudGluZyB0aGUgaW5zdGFuY2UgaW4gZm9ybSBvZiAneXl5eU1NJy4gKi9cbiAgdmFsdWVPZigpIHtcbiAgICByZXR1cm4gdGhpcy5pZFxuICB9XG5cbiAgLyoqIFJldHVybnMgYSBuZXcgaW5zdGFuY2UgZm9yIG5leHQgbW9udGguICovXG4gIG5leHRNb250aCgpOiBDYWxlbmRhck1vbnRoIHtcbiAgICBjb25zdCBuZXh0ID0gdGhpcy5kYXRlXG4gICAgbmV4dC5zZXRNb250aCh0aGlzLm1vbnRoICsgMSlcbiAgICByZXR1cm4gbmV3IENhbGVuZGFyTW9udGgobmV4dClcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIGZvciBwcmV2aW91cyBtb250aC4gKi9cbiAgcHJldmlvdXNNb250aCgpOiBDYWxlbmRhck1vbnRoIHtcbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuZGF0ZVxuICAgIHByZXZpb3VzLnNldE1vbnRoKHRoaXMubW9udGggLSAxKVxuICAgIHJldHVybiBuZXcgQ2FsZW5kYXJNb250aChwcmV2aW91cylcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIGEgbmV3IGluc3RhbmNlIGZvciBuZXh0IHllYXIuICovXG4gIG5leHRZZWFyKCk6IENhbGVuZGFyTW9udGgge1xuICAgIGNvbnN0IG5leHRZZWFyID0gdGhpcy5kYXRlXG4gICAgbmV4dFllYXIuc2V0RnVsbFllYXIobmV4dFllYXIuZ2V0RnVsbFllYXIoKSArIDEpXG4gICAgcmV0dXJuIG5ldyBDYWxlbmRhck1vbnRoKG5leHRZZWFyKVxuICB9XG5cbiAgLyoqIFJldHVybnMgYSBuZXcgaW5zdGFuY2UgZm9yIHByZXZpb3VzIHllYXIuICovXG4gIHByZXZpb3VzWWVhcigpOiBDYWxlbmRhck1vbnRoIHtcbiAgICBjb25zdCBwcmV2aW91c1llYXIgPSB0aGlzLmRhdGVcbiAgICBwcmV2aW91c1llYXIuc2V0RnVsbFllYXIocHJldmlvdXNZZWFyLmdldEZ1bGxZZWFyKCkgLSAxKVxuICAgIHJldHVybiBuZXcgQ2FsZW5kYXJNb250aChwcmV2aW91c1llYXIpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { TranslocoModule } from '@jsverse/transloco';
|
|
5
|
+
import { NggCoreWrapperModule } from '@sebgroup/green-angular/src/lib/shared';
|
|
6
|
+
import { NggvInputMaskModule } from '@sebgroup/green-angular/src/v-angular/input-mask';
|
|
7
|
+
import { CalendarControlComponent } from './components/calendar-control/calendar-control.component';
|
|
8
|
+
import { CalendarComponent } from './components/calendar/calendar.component';
|
|
9
|
+
import { DateInputComponent } from './components/date-input/date-input.component';
|
|
10
|
+
import { DatepickerComponent } from './components/datepicker/datepicker.component';
|
|
11
|
+
import { CalendarDateDirective } from './directives/calendar-date.directive';
|
|
12
|
+
import { DateThookPipe } from './pipes/date-thook.pipe';
|
|
13
|
+
import { IsDisabledPipe } from './pipes/is-disabled.pipe';
|
|
14
|
+
import { MatchesPipe } from './pipes/matches.pipe';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
export class NggvDatepickerModule {
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDatepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
18
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: NggvDatepickerModule, declarations: [CalendarComponent,
|
|
19
|
+
CalendarDateDirective,
|
|
20
|
+
IsDisabledPipe,
|
|
21
|
+
DateThookPipe,
|
|
22
|
+
CalendarControlComponent,
|
|
23
|
+
DatepickerComponent,
|
|
24
|
+
DateInputComponent,
|
|
25
|
+
MatchesPipe], imports: [CommonModule,
|
|
26
|
+
FormsModule,
|
|
27
|
+
ReactiveFormsModule,
|
|
28
|
+
TranslocoModule,
|
|
29
|
+
NggvInputMaskModule,
|
|
30
|
+
NggCoreWrapperModule], exports: [DateInputComponent, DatepickerComponent] }); }
|
|
31
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDatepickerModule, imports: [CommonModule,
|
|
32
|
+
FormsModule,
|
|
33
|
+
ReactiveFormsModule,
|
|
34
|
+
TranslocoModule,
|
|
35
|
+
NggvInputMaskModule,
|
|
36
|
+
NggCoreWrapperModule] }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NggvDatepickerModule, decorators: [{
|
|
39
|
+
type: NgModule,
|
|
40
|
+
args: [{
|
|
41
|
+
declarations: [
|
|
42
|
+
CalendarComponent,
|
|
43
|
+
CalendarDateDirective,
|
|
44
|
+
IsDisabledPipe,
|
|
45
|
+
DateThookPipe,
|
|
46
|
+
CalendarControlComponent,
|
|
47
|
+
DatepickerComponent,
|
|
48
|
+
DateInputComponent,
|
|
49
|
+
MatchesPipe,
|
|
50
|
+
],
|
|
51
|
+
imports: [
|
|
52
|
+
CommonModule,
|
|
53
|
+
FormsModule,
|
|
54
|
+
ReactiveFormsModule,
|
|
55
|
+
TranslocoModule,
|
|
56
|
+
NggvInputMaskModule,
|
|
57
|
+
NggCoreWrapperModule,
|
|
58
|
+
],
|
|
59
|
+
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
60
|
+
exports: [DateInputComponent, DatepickerComponent],
|
|
61
|
+
}]
|
|
62
|
+
}] });
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL3YtYW5ndWxhci9kYXRlcGlja2VyL2RhdGVwaWNrZXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQ2hFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFFcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0NBQXdDLENBQUE7QUFDN0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0RBQWtELENBQUE7QUFDdEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUE7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMENBQTBDLENBQUE7QUFDNUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOENBQThDLENBQUE7QUFDakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUE7QUFDbEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUE7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUE7O0FBd0JsRCxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQixpQkFwQjdCLGlCQUFpQjtZQUNqQixxQkFBcUI7WUFDckIsY0FBYztZQUNkLGFBQWE7WUFDYix3QkFBd0I7WUFDeEIsbUJBQW1CO1lBQ25CLGtCQUFrQjtZQUNsQixXQUFXLGFBR1gsWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixvQkFBb0IsYUFHWixrQkFBa0IsRUFBRSxtQkFBbUI7Z0hBRXRDLG9CQUFvQixZQVY3QixZQUFZO1lBQ1osV0FBVztZQUNYLG1CQUFtQjtZQUNuQixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLG9CQUFvQjs7NEZBS1gsb0JBQW9CO2tCQXRCaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLGNBQWM7d0JBQ2QsYUFBYTt3QkFDYix3QkFBd0I7d0JBQ3hCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQztvQkFDakMsT0FBTyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsbUJBQW1CLENBQUM7aUJBQ25EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHsgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSwgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJ1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3JtcydcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbydcblxuaW1wb3J0IHsgTmdnQ29yZVdyYXBwZXJNb2R1bGUgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvbGliL3NoYXJlZCdcbmltcG9ydCB7IE5nZ3ZJbnB1dE1hc2tNb2R1bGUgfSBmcm9tICdAc2ViZ3JvdXAvZ3JlZW4tYW5ndWxhci9zcmMvdi1hbmd1bGFyL2lucHV0LW1hc2snXG5pbXBvcnQgeyBDYWxlbmRhckNvbnRyb2xDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2FsZW5kYXItY29udHJvbC9jYWxlbmRhci1jb250cm9sLmNvbXBvbmVudCdcbmltcG9ydCB7IENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudCdcbmltcG9ydCB7IERhdGVJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50J1xuaW1wb3J0IHsgRGF0ZXBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50J1xuaW1wb3J0IHsgQ2FsZW5kYXJEYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2NhbGVuZGFyLWRhdGUuZGlyZWN0aXZlJ1xuaW1wb3J0IHsgRGF0ZVRob29rUGlwZSB9IGZyb20gJy4vcGlwZXMvZGF0ZS10aG9vay5waXBlJ1xuaW1wb3J0IHsgSXNEaXNhYmxlZFBpcGUgfSBmcm9tICcuL3BpcGVzL2lzLWRpc2FibGVkLnBpcGUnXG5pbXBvcnQgeyBNYXRjaGVzUGlwZSB9IGZyb20gJy4vcGlwZXMvbWF0Y2hlcy5waXBlJ1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBDYWxlbmRhckNvbXBvbmVudCxcbiAgICBDYWxlbmRhckRhdGVEaXJlY3RpdmUsXG4gICAgSXNEaXNhYmxlZFBpcGUsXG4gICAgRGF0ZVRob29rUGlwZSxcbiAgICBDYWxlbmRhckNvbnRyb2xDb21wb25lbnQsXG4gICAgRGF0ZXBpY2tlckNvbXBvbmVudCxcbiAgICBEYXRlSW5wdXRDb21wb25lbnQsXG4gICAgTWF0Y2hlc1BpcGUsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBUcmFuc2xvY29Nb2R1bGUsXG4gICAgTmdndklucHV0TWFza01vZHVsZSxcbiAgICBOZ2dDb3JlV3JhcHBlck1vZHVsZSxcbiAgXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICBleHBvcnRzOiBbRGF0ZUlucHV0Q29tcG9uZW50LCBEYXRlcGlja2VyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTmdndkRhdGVwaWNrZXJNb2R1bGUge31cbiJdfQ==
|