@dereekb/dbx-web 10.2.0 → 11.0.1
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/calendar/esm2022/lib/calendar.base.component.mjs +27 -30
- package/calendar/esm2022/lib/calendar.component.mjs +21 -24
- package/calendar/esm2022/lib/calendar.module.mjs +9 -9
- package/calendar/esm2022/lib/calendar.store.mjs +89 -89
- package/calendar/fesm2022/dereekb-dbx-web-calendar.mjs +137 -141
- package/calendar/fesm2022/dereekb-dbx-web-calendar.mjs.map +1 -1
- package/calendar/lib/calendar.base.component.d.ts +0 -1
- package/calendar/lib/calendar.component.d.ts +1 -2
- package/calendar/package.json +1 -1
- package/esm2022/calendar/lib/calendar.base.component.mjs +27 -30
- package/esm2022/calendar/lib/calendar.component.mjs +21 -24
- package/esm2022/calendar/lib/calendar.module.mjs +9 -9
- package/esm2022/calendar/lib/calendar.store.mjs +89 -89
- package/esm2022/lib/action/action.confirm.directive.mjs +8 -15
- package/esm2022/lib/action/action.module.mjs +4 -4
- package/esm2022/lib/action/key.trigger.directive.mjs +7 -11
- package/esm2022/lib/action/snackbar/action.snackbar.component.mjs +40 -48
- package/esm2022/lib/action/snackbar/action.snackbar.directive.mjs +10 -14
- package/esm2022/lib/action/snackbar/action.snackbar.module.mjs +4 -4
- package/esm2022/lib/action/snackbar/action.snackbar.service.mjs +14 -21
- package/esm2022/lib/action/transition/action.transition.module.mjs +4 -4
- package/esm2022/lib/action/transition/transition.safety.dialog.component.mjs +11 -14
- package/esm2022/lib/action/transition/transition.safety.directive.mjs +15 -20
- package/esm2022/lib/button/button.component.mjs +10 -9
- package/esm2022/lib/button/button.module.mjs +4 -4
- package/esm2022/lib/button/button.spacer.component.mjs +3 -3
- package/esm2022/lib/button/icon/icon.button.component.mjs +4 -4
- package/esm2022/lib/button/icon/icon.button.module.mjs +6 -6
- package/esm2022/lib/button/progress/bar.button.component.mjs +4 -7
- package/esm2022/lib/button/progress/base.progress.button.directive.mjs +45 -53
- package/esm2022/lib/button/progress/button.progress.module.mjs +4 -4
- package/esm2022/lib/button/progress/spinner.button.component.mjs +15 -17
- package/esm2022/lib/dbx-web.module.mjs +4 -4
- package/esm2022/lib/error/default.error.widget.component.mjs +4 -4
- package/esm2022/lib/error/error.action.directive.mjs +7 -14
- package/esm2022/lib/error/error.component.mjs +57 -62
- package/esm2022/lib/error/error.details.component.mjs +5 -4
- package/esm2022/lib/error/error.loading.directive.mjs +6 -12
- package/esm2022/lib/error/error.module.mjs +5 -5
- package/esm2022/lib/error/error.popover.component.mjs +4 -4
- package/esm2022/lib/error/error.snackbar.action.directive.mjs +8 -12
- package/esm2022/lib/error/error.snackbar.component.mjs +16 -22
- package/esm2022/lib/error/error.snackbar.service.mjs +12 -15
- package/esm2022/lib/error/error.view.component.mjs +12 -7
- package/esm2022/lib/error/error.widget.component.mjs +33 -36
- package/esm2022/lib/error/error.widget.directive.mjs +6 -11
- package/esm2022/lib/error/error.widget.service.mjs +4 -4
- package/esm2022/lib/extension/download/text/download.text.component.mjs +79 -82
- package/esm2022/lib/extension/download/text/download.text.module.mjs +6 -6
- package/esm2022/lib/extension/model/model.module.mjs +11 -11
- package/esm2022/lib/extension/model/model.state.service.mjs +6 -9
- package/esm2022/lib/extension/model/model.tracker.service.mjs +11 -13
- package/esm2022/lib/extension/model/model.tracker.view.storage.mjs +13 -13
- package/esm2022/lib/extension/model/model.types.service.mjs +34 -36
- package/esm2022/lib/extension/model/state/effects/tracker.effects.mjs +13 -17
- package/esm2022/lib/extension/structure/structure.body.directive.mjs +4 -4
- package/esm2022/lib/extension/structure/structure.module.mjs +6 -6
- package/esm2022/lib/extension/structure/structure.structure.directive.mjs +8 -10
- package/esm2022/lib/extension/widget/widget.component.mjs +22 -25
- package/esm2022/lib/extension/widget/widget.directive.mjs +6 -11
- package/esm2022/lib/extension/widget/widget.list.component.mjs +17 -20
- package/esm2022/lib/extension/widget/widget.module.mjs +6 -6
- package/esm2022/lib/extension/widget/widget.service.mjs +4 -6
- package/esm2022/lib/interaction/dialog/abstract.dialog.directive.mjs +8 -21
- package/esm2022/lib/interaction/dialog/dialog.action.directive.mjs +11 -10
- package/esm2022/lib/interaction/dialog/dialog.content.close.component.mjs +6 -8
- package/esm2022/lib/interaction/dialog/dialog.content.component.mjs +4 -6
- package/esm2022/lib/interaction/dialog/dialog.content.footer.component.mjs +7 -9
- package/esm2022/lib/interaction/dialog/dialog.module.mjs +4 -4
- package/esm2022/lib/interaction/filter/filter.module.mjs +6 -6
- package/esm2022/lib/interaction/filter/filter.partial.list.component.mjs +4 -4
- package/esm2022/lib/interaction/filter/filter.partial.menu.component.mjs +6 -9
- package/esm2022/lib/interaction/filter/filter.partial.mjs +24 -27
- package/esm2022/lib/interaction/filter/filter.popover.button.component.mjs +7 -8
- package/esm2022/lib/interaction/filter/filter.popover.button.directive.mjs +7 -10
- package/esm2022/lib/interaction/filter/filter.popover.component.mjs +52 -57
- package/esm2022/lib/interaction/filter/filter.preset.directive.mjs +90 -0
- package/esm2022/lib/interaction/filter/filter.preset.list.component.mjs +6 -6
- package/esm2022/lib/interaction/filter/filter.preset.menu.component.mjs +8 -11
- package/esm2022/lib/interaction/filter/filter.wrapper.component.mjs +15 -15
- package/esm2022/lib/interaction/interaction.module.mjs +4 -4
- package/esm2022/lib/interaction/popover/abstract.popover.directive.mjs +6 -9
- package/esm2022/lib/interaction/popover/abstract.popover.ref.directive.mjs +8 -10
- package/esm2022/lib/interaction/popover/popover.action.directive.mjs +11 -10
- package/esm2022/lib/interaction/popover/popover.close.component.mjs +9 -12
- package/esm2022/lib/interaction/popover/popover.component.mjs +27 -27
- package/esm2022/lib/interaction/popover/popover.content.component.mjs +8 -10
- package/esm2022/lib/interaction/popover/popover.content.module.mjs +4 -4
- package/esm2022/lib/interaction/popover/popover.controls.directive.mjs +9 -11
- package/esm2022/lib/interaction/popover/popover.coordinator.component.mjs +14 -17
- package/esm2022/lib/interaction/popover/popover.coordinator.service.mjs +5 -7
- package/esm2022/lib/interaction/popover/popover.header.component.mjs +15 -15
- package/esm2022/lib/interaction/popover/popover.module.mjs +4 -4
- package/esm2022/lib/interaction/popover/popover.scroll.content.component.mjs +7 -10
- package/esm2022/lib/interaction/popover/popover.service.mjs +8 -11
- package/esm2022/lib/interaction/popup/abstract.popup.directive.mjs +6 -9
- package/esm2022/lib/interaction/popup/popup.component.mjs +25 -24
- package/esm2022/lib/interaction/popup/popup.content.component.mjs +9 -12
- package/esm2022/lib/interaction/popup/popup.controls.buttons.component.mjs +17 -20
- package/esm2022/lib/interaction/popup/popup.controls.component.mjs +5 -4
- package/esm2022/lib/interaction/popup/popup.coordinator.component.mjs +13 -17
- package/esm2022/lib/interaction/popup/popup.coordinator.service.mjs +5 -7
- package/esm2022/lib/interaction/popup/popup.module.mjs +4 -4
- package/esm2022/lib/interaction/popup/popup.position.strategy.mjs +3 -2
- package/esm2022/lib/interaction/popup/popup.service.mjs +8 -11
- package/esm2022/lib/interaction/prompt/prompt.box.component.mjs +5 -7
- package/esm2022/lib/interaction/prompt/prompt.button.confirm.directive.mjs +12 -20
- package/esm2022/lib/interaction/prompt/prompt.component.mjs +6 -4
- package/esm2022/lib/interaction/prompt/prompt.confirm.component.mjs +6 -8
- package/esm2022/lib/interaction/prompt/prompt.confirm.dialog.component.mjs +4 -4
- package/esm2022/lib/interaction/prompt/prompt.confirm.directive.mjs +12 -15
- package/esm2022/lib/interaction/prompt/prompt.module.mjs +4 -4
- package/esm2022/lib/interaction/prompt/prompt.page.component.mjs +4 -4
- package/esm2022/lib/keypress/keydown.listener.directive.mjs +6 -7
- package/esm2022/lib/keypress/keypress.module.mjs +4 -4
- package/esm2022/lib/layout/bar/bar.directive.mjs +4 -3
- package/esm2022/lib/layout/bar/bar.header.component.mjs +7 -4
- package/esm2022/lib/layout/bar/bar.layout.module.mjs +4 -4
- package/esm2022/lib/layout/bar/pagebar.component.mjs +4 -3
- package/esm2022/lib/layout/block/block.layout.module.mjs +4 -4
- package/esm2022/lib/layout/block/two.block.component.mjs +9 -10
- package/esm2022/lib/layout/card/card.box.component.mjs +6 -4
- package/esm2022/lib/layout/card/card.box.container.component.mjs +4 -4
- package/esm2022/lib/layout/card/card.box.layout.module.mjs +4 -4
- package/esm2022/lib/layout/column/column.layout.module.mjs +4 -4
- package/esm2022/lib/layout/column/one/one.column.component.mjs +10 -14
- package/esm2022/lib/layout/column/one/one.column.module.mjs +4 -4
- package/esm2022/lib/layout/column/two/two.column.back.directive.mjs +7 -11
- package/esm2022/lib/layout/column/two/two.column.component.mjs +17 -21
- package/esm2022/lib/layout/column/two/two.column.context.directive.mjs +7 -10
- package/esm2022/lib/layout/column/two/two.column.full.left.directive.mjs +7 -10
- package/esm2022/lib/layout/column/two/two.column.head.component.mjs +6 -4
- package/esm2022/lib/layout/column/two/two.column.module.mjs +4 -4
- package/esm2022/lib/layout/column/two/two.column.right.component.mjs +15 -19
- package/esm2022/lib/layout/column/two/two.column.sref.directive.mjs +6 -9
- package/esm2022/lib/layout/column/two/two.column.sref.showright.directive.mjs +10 -15
- package/esm2022/lib/layout/column/two/two.column.store.mjs +81 -81
- package/esm2022/lib/layout/compact/compact.directive.mjs +7 -10
- package/esm2022/lib/layout/compact/compact.layout.module.mjs +4 -4
- package/esm2022/lib/layout/compact/compact.store.mjs +6 -6
- package/esm2022/lib/layout/content/content.border.directive.mjs +4 -6
- package/esm2022/lib/layout/content/content.box.directive.mjs +5 -7
- package/esm2022/lib/layout/content/content.container.directive.mjs +6 -8
- package/esm2022/lib/layout/content/content.directive.mjs +3 -3
- package/esm2022/lib/layout/content/content.elevate.directive.mjs +4 -6
- package/esm2022/lib/layout/content/content.layout.module.mjs +5 -5
- package/esm2022/lib/layout/content/content.page.directive.mjs +3 -3
- package/esm2022/lib/layout/content/content.pit.directive.mjs +4 -3
- package/esm2022/lib/layout/flag/flag.component.mjs +5 -7
- package/esm2022/lib/layout/flag/flag.layout.module.mjs +4 -4
- package/esm2022/lib/layout/flag/flag.prompt.component.mjs +6 -7
- package/esm2022/lib/layout/flex/flex.group.directive.mjs +14 -15
- package/esm2022/lib/layout/flex/flex.layout.module.mjs +4 -4
- package/esm2022/lib/layout/flex/flex.size.directive.mjs +4 -6
- package/esm2022/lib/layout/item/item.icon.component.mjs +6 -4
- package/esm2022/lib/layout/item/item.layout.module.mjs +4 -4
- package/esm2022/lib/layout/layout.module.mjs +4 -4
- package/esm2022/lib/layout/list/list.component.mjs +102 -103
- package/esm2022/lib/layout/list/list.content.empty.component.mjs +4 -4
- package/esm2022/lib/layout/list/list.directive.mjs +14 -15
- package/esm2022/lib/layout/list/list.grid.view.component.mjs +27 -39
- package/esm2022/lib/layout/list/list.grid.view.directive.mjs +3 -3
- package/esm2022/lib/layout/list/list.layout.module.mjs +5 -5
- package/esm2022/lib/layout/list/list.view.directive.mjs +11 -12
- package/esm2022/lib/layout/list/list.view.meta.icon.component.mjs +9 -19
- package/esm2022/lib/layout/list/list.view.selection.directive.mjs +4 -7
- package/esm2022/lib/layout/list/list.view.value.component.mjs +36 -43
- package/esm2022/lib/layout/list/list.view.value.directive.mjs +11 -17
- package/esm2022/lib/layout/list/list.view.value.group.title.directive.mjs +57 -59
- package/esm2022/lib/layout/list/list.view.value.item.directive.mjs +6 -11
- package/esm2022/lib/layout/list/list.view.value.modifier.directive.mjs +15 -19
- package/esm2022/lib/layout/list/list.view.value.modifier.ripple.directive.mjs +14 -17
- package/esm2022/lib/layout/list/list.view.value.modifier.selection.directive.mjs +13 -16
- package/esm2022/lib/layout/list/list.view.value.selection.component.mjs +20 -29
- package/esm2022/lib/layout/list/list.wrapper.mjs +3 -1
- package/esm2022/lib/layout/section/section.component.mjs +5 -8
- package/esm2022/lib/layout/section/section.header.component.mjs +12 -7
- package/esm2022/lib/layout/section/section.intro.component.mjs +7 -8
- package/esm2022/lib/layout/section/section.layout.module.mjs +4 -4
- package/esm2022/lib/layout/section/section.page.component.mjs +6 -9
- package/esm2022/lib/layout/section/subsection.component.mjs +4 -4
- package/esm2022/lib/layout/step/step.component.mjs +7 -3
- package/esm2022/lib/layout/step/step.layout.module.mjs +4 -4
- package/esm2022/lib/layout/style/spacer.directive.mjs +3 -3
- package/esm2022/lib/layout/style/style.body.directive.mjs +14 -15
- package/esm2022/lib/layout/style/style.color.directive.mjs +4 -6
- package/esm2022/lib/layout/style/style.directive.mjs +15 -13
- package/esm2022/lib/layout/style/style.layout.module.mjs +4 -4
- package/esm2022/lib/layout/style/style.service.mjs +19 -27
- package/esm2022/lib/layout/style/style.set.directive.mjs +15 -16
- package/esm2022/lib/layout/text/address.component.mjs +5 -4
- package/esm2022/lib/layout/text/compat/form.description.component.mjs +19 -0
- package/esm2022/lib/layout/text/compat/hint.component.mjs +19 -0
- package/esm2022/lib/layout/text/compat/index.mjs +10 -0
- package/esm2022/lib/layout/text/compat/label.component.mjs +19 -0
- package/esm2022/lib/layout/text/compat/note.component.mjs +19 -0
- package/esm2022/lib/layout/text/compat/notice.component.mjs +19 -0
- package/esm2022/lib/layout/text/compat/ok.component.mjs +19 -0
- package/esm2022/lib/layout/text/compat/success.component.mjs +19 -0
- package/esm2022/lib/layout/text/compat/text.compat.module.mjs +32 -0
- package/esm2022/lib/layout/text/compat/warn.component.mjs +19 -0
- package/esm2022/lib/layout/text/detail.block.component.mjs +6 -4
- package/esm2022/lib/layout/text/detail.block.header.component.mjs +6 -4
- package/esm2022/lib/layout/text/icon.spacer.component.mjs +3 -3
- package/esm2022/lib/layout/text/index.mjs +2 -9
- package/esm2022/lib/layout/text/label.block.component.mjs +7 -7
- package/esm2022/lib/layout/text/linkify.component.mjs +20 -23
- package/esm2022/lib/layout/text/text.chip.directive.mjs +5 -3
- package/esm2022/lib/layout/text/text.chips.component.mjs +6 -4
- package/esm2022/lib/layout/text/text.module.mjs +5 -13
- package/esm2022/lib/loading/basic-loading.component.mjs +33 -33
- package/esm2022/lib/loading/loading-progress.component.mjs +11 -10
- package/esm2022/lib/loading/loading.action.directive.mjs +8 -14
- package/esm2022/lib/loading/loading.component.mjs +33 -27
- package/esm2022/lib/loading/loading.module.mjs +4 -4
- package/esm2022/lib/router/layout/anchor/anchor.component.mjs +14 -17
- package/esm2022/lib/router/layout/anchor/anchor.content.component.mjs +14 -19
- package/esm2022/lib/router/layout/anchor/anchor.icon.component.mjs +5 -4
- package/esm2022/lib/router/layout/anchor/anchor.link.component.mjs +5 -4
- package/esm2022/lib/router/layout/anchor/anchor.module.mjs +4 -4
- package/esm2022/lib/router/layout/anchor/anchor.segue.directive.mjs +13 -16
- package/esm2022/lib/router/layout/anchorlist/anchorlist.component.mjs +8 -10
- package/esm2022/lib/router/layout/anchorlist/anchorlist.module.mjs +4 -4
- package/esm2022/lib/router/layout/layout.module.mjs +4 -4
- package/esm2022/lib/router/layout/list/list.module.mjs +4 -4
- package/esm2022/lib/router/layout/list/router.list.directive.mjs +16 -19
- package/esm2022/lib/router/layout/navbar/navbar.component.mjs +65 -70
- package/esm2022/lib/router/layout/navbar/navbar.module.mjs +6 -6
- package/esm2022/lib/router/layout/sidenav/sidenav.button.component.mjs +13 -16
- package/esm2022/lib/router/layout/sidenav/sidenav.component.mjs +54 -57
- package/esm2022/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.mjs +10 -14
- package/esm2022/lib/router/layout/sidenav/sidenav.module.mjs +4 -4
- package/esm2022/lib/router/layout/sidenav/sidenav.page.component.mjs +13 -14
- package/esm2022/lib/router/layout/sidenav/sidenav.pagebar.component.mjs +5 -4
- package/esm2022/lib/router/provider/ngrouter/anchor.component.mjs +3 -3
- package/esm2022/lib/router/provider/ngrouter/angular.router.module.mjs +4 -4
- package/esm2022/lib/router/provider/uirouter/anchor.component.mjs +5 -8
- package/esm2022/lib/router/provider/uirouter/uirouter.router.module.mjs +4 -4
- package/esm2022/lib/screen/screen.module.mjs +4 -4
- package/esm2022/lib/screen/screen.service.mjs +19 -12
- package/esm2022/mapbox/lib/mapbox.change.service.mjs +15 -18
- package/esm2022/mapbox/lib/mapbox.injection.component.mjs +10 -14
- package/esm2022/mapbox/lib/mapbox.injection.store.mjs +8 -8
- package/esm2022/mapbox/lib/mapbox.injection.store.provide.mjs +8 -13
- package/esm2022/mapbox/lib/mapbox.layout.component.mjs +47 -46
- package/esm2022/mapbox/lib/mapbox.layout.drawer.component.mjs +9 -12
- package/esm2022/mapbox/lib/mapbox.layout.resize.sync.directive.mjs +17 -23
- package/esm2022/mapbox/lib/mapbox.marker.component.mjs +13 -17
- package/esm2022/mapbox/lib/mapbox.markers.component.mjs +14 -16
- package/esm2022/mapbox/lib/mapbox.menu.component.mjs +14 -21
- package/esm2022/mapbox/lib/mapbox.module.mjs +6 -6
- package/esm2022/mapbox/lib/mapbox.service.mjs +10 -10
- package/esm2022/mapbox/lib/mapbox.store.map.directive.mjs +9 -22
- package/esm2022/mapbox/lib/mapbox.store.mjs +395 -399
- package/esm2022/mapbox/lib/mapbox.store.provide.mjs +8 -13
- package/esm2022/table/lib/date/date.table.column.header.component.mjs +8 -8
- package/esm2022/table/lib/date/daterange.table.cell.input.component.mjs +37 -43
- package/esm2022/table/lib/date/table.date.module.mjs +6 -6
- package/esm2022/table/lib/table.cell.action.component.mjs +10 -13
- package/esm2022/table/lib/table.cell.input.component.mjs +10 -13
- package/esm2022/table/lib/table.cell.summaryend.component.mjs +10 -13
- package/esm2022/table/lib/table.cell.summarystart.component.mjs +10 -13
- package/esm2022/table/lib/table.column.directive.mjs +8 -11
- package/esm2022/table/lib/table.column.footer.component.mjs +13 -16
- package/esm2022/table/lib/table.column.header.component.mjs +13 -16
- package/esm2022/table/lib/table.component.mjs +35 -38
- package/esm2022/table/lib/table.directive.mjs +6 -9
- package/esm2022/table/lib/table.item.action.component.mjs +13 -16
- package/esm2022/table/lib/table.item.cell.component.mjs +7 -10
- package/esm2022/table/lib/table.item.directive.mjs +8 -11
- package/esm2022/table/lib/table.item.header.component.mjs +5 -8
- package/esm2022/table/lib/table.module.mjs +6 -6
- package/esm2022/table/lib/table.store.mjs +36 -36
- package/fesm2022/dereekb-dbx-web-calendar.mjs +137 -141
- package/fesm2022/dereekb-dbx-web-calendar.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web-mapbox.mjs +552 -594
- package/fesm2022/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web-table.mjs +197 -232
- package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web.mjs +2251 -2468
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/lib/action/action.confirm.directive.d.ts +1 -3
- package/lib/action/key.trigger.directive.d.ts +1 -2
- package/lib/action/snackbar/action.snackbar.component.d.ts +4 -5
- package/lib/action/snackbar/action.snackbar.directive.d.ts +2 -3
- package/lib/action/snackbar/action.snackbar.service.d.ts +1 -2
- package/lib/action/transition/transition.safety.directive.d.ts +1 -2
- package/lib/button/progress/base.progress.button.directive.d.ts +7 -8
- package/lib/error/error.action.directive.d.ts +2 -3
- package/lib/error/error.component.d.ts +2 -3
- package/lib/error/error.loading.directive.d.ts +1 -2
- package/lib/error/error.snackbar.action.directive.d.ts +1 -2
- package/lib/error/error.snackbar.component.d.ts +2 -3
- package/lib/error/error.snackbar.service.d.ts +0 -1
- package/lib/error/error.widget.component.d.ts +0 -1
- package/lib/error/error.widget.directive.d.ts +0 -1
- package/lib/extension/download/text/download.text.component.d.ts +3 -6
- package/lib/extension/model/model.module.d.ts +3 -3
- package/lib/extension/model/model.state.service.d.ts +1 -3
- package/lib/extension/model/model.tracker.service.d.ts +1 -3
- package/lib/extension/model/model.tracker.view.storage.d.ts +5 -3
- package/lib/extension/model/model.types.service.d.ts +2 -3
- package/lib/extension/model/state/effects/tracker.effects.d.ts +0 -3
- package/lib/extension/structure/structure.structure.directive.d.ts +1 -2
- package/lib/extension/widget/widget.component.d.ts +0 -1
- package/lib/extension/widget/widget.directive.d.ts +0 -1
- package/lib/interaction/dialog/abstract.dialog.directive.d.ts +3 -5
- package/lib/interaction/dialog/dialog.action.directive.d.ts +3 -3
- package/lib/interaction/filter/filter.partial.d.ts +1 -2
- package/lib/interaction/filter/filter.popover.button.directive.d.ts +0 -2
- package/lib/interaction/filter/filter.popover.component.d.ts +0 -2
- package/lib/interaction/filter/{filter.preset.d.ts → filter.preset.directive.d.ts} +5 -6
- package/lib/interaction/filter/filter.preset.list.component.d.ts +2 -2
- package/lib/interaction/filter/filter.preset.menu.component.d.ts +2 -2
- package/lib/interaction/filter/filter.wrapper.component.d.ts +3 -3
- package/lib/interaction/popover/abstract.popover.directive.d.ts +0 -1
- package/lib/interaction/popover/popover.action.directive.d.ts +3 -3
- package/lib/interaction/popover/popover.close.component.d.ts +1 -2
- package/lib/interaction/popover/popover.component.d.ts +6 -7
- package/lib/interaction/popover/popover.controls.directive.d.ts +3 -2
- package/lib/interaction/popover/popover.coordinator.component.d.ts +3 -5
- package/lib/interaction/popover/popover.header.component.d.ts +5 -3
- package/lib/interaction/popover/popover.scroll.content.component.d.ts +0 -1
- package/lib/interaction/popover/popover.service.d.ts +0 -2
- package/lib/interaction/popup/abstract.popup.directive.d.ts +0 -1
- package/lib/interaction/popup/popup.component.d.ts +3 -5
- package/lib/interaction/popup/popup.content.component.d.ts +1 -3
- package/lib/interaction/popup/popup.controls.buttons.component.d.ts +1 -3
- package/lib/interaction/popup/popup.coordinator.component.d.ts +2 -5
- package/lib/interaction/popup/popup.service.d.ts +0 -2
- package/lib/interaction/prompt/prompt.button.confirm.directive.d.ts +3 -4
- package/lib/interaction/prompt/prompt.confirm.component.d.ts +2 -2
- package/lib/interaction/prompt/prompt.confirm.directive.d.ts +1 -3
- package/lib/layout/column/one/one.column.component.d.ts +1 -1
- package/lib/layout/column/two/two.column.back.directive.d.ts +0 -1
- package/lib/layout/column/two/two.column.component.d.ts +4 -4
- package/lib/layout/column/two/two.column.context.directive.d.ts +0 -1
- package/lib/layout/column/two/two.column.full.left.directive.d.ts +0 -2
- package/lib/layout/column/two/two.column.right.component.d.ts +1 -2
- package/lib/layout/column/two/two.column.sref.directive.d.ts +0 -2
- package/lib/layout/column/two/two.column.sref.showright.directive.d.ts +1 -3
- package/lib/layout/compact/compact.directive.d.ts +1 -2
- package/lib/layout/flex/flex.group.directive.d.ts +2 -3
- package/lib/layout/list/list.component.d.ts +3 -4
- package/lib/layout/list/list.directive.d.ts +4 -5
- package/lib/layout/list/list.grid.view.component.d.ts +3 -5
- package/lib/layout/list/list.view.directive.d.ts +1 -1
- package/lib/layout/list/list.view.meta.icon.component.d.ts +3 -2
- package/lib/layout/list/list.view.selection.directive.d.ts +1 -1
- package/lib/layout/list/list.view.value.component.d.ts +4 -5
- package/lib/layout/list/list.view.value.directive.d.ts +3 -4
- package/lib/layout/list/list.view.value.group.title.directive.d.ts +7 -3
- package/lib/layout/list/list.view.value.item.directive.d.ts +0 -1
- package/lib/layout/list/list.view.value.modifier.directive.d.ts +0 -1
- package/lib/layout/list/list.view.value.selection.component.d.ts +3 -4
- package/lib/layout/section/section.intro.component.d.ts +1 -1
- package/lib/layout/style/style.body.directive.d.ts +4 -4
- package/lib/layout/style/style.directive.d.ts +4 -5
- package/lib/layout/style/style.service.d.ts +4 -5
- package/lib/layout/style/style.set.directive.d.ts +3 -3
- package/lib/layout/text/compat/index.d.ts +9 -0
- package/lib/layout/text/compat/text.compat.module.d.ts +21 -0
- package/lib/layout/text/index.d.ts +1 -8
- package/lib/layout/text/linkify.component.d.ts +0 -2
- package/lib/layout/text/text.module.d.ts +9 -17
- package/lib/loading/loading.action.directive.d.ts +3 -4
- package/lib/loading/loading.component.d.ts +0 -1
- package/lib/router/layout/anchor/anchor.component.d.ts +0 -2
- package/lib/router/layout/anchor/anchor.content.component.d.ts +3 -4
- package/lib/router/layout/anchor/anchor.segue.directive.d.ts +0 -1
- package/lib/router/layout/navbar/navbar.component.d.ts +2 -4
- package/lib/router/layout/sidenav/sidenav.button.component.d.ts +0 -1
- package/lib/router/layout/sidenav/sidenav.component.d.ts +2 -4
- package/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.d.ts +2 -3
- package/lib/router/layout/sidenav/sidenav.page.component.d.ts +0 -1
- package/lib/screen/screen.service.d.ts +1 -2
- package/mapbox/esm2022/lib/mapbox.change.service.mjs +15 -18
- package/mapbox/esm2022/lib/mapbox.injection.component.mjs +10 -14
- package/mapbox/esm2022/lib/mapbox.injection.store.mjs +8 -8
- package/mapbox/esm2022/lib/mapbox.injection.store.provide.mjs +8 -13
- package/mapbox/esm2022/lib/mapbox.layout.component.mjs +47 -46
- package/mapbox/esm2022/lib/mapbox.layout.drawer.component.mjs +9 -12
- package/mapbox/esm2022/lib/mapbox.layout.resize.sync.directive.mjs +17 -23
- package/mapbox/esm2022/lib/mapbox.marker.component.mjs +13 -17
- package/mapbox/esm2022/lib/mapbox.markers.component.mjs +14 -16
- package/mapbox/esm2022/lib/mapbox.menu.component.mjs +14 -21
- package/mapbox/esm2022/lib/mapbox.module.mjs +6 -6
- package/mapbox/esm2022/lib/mapbox.service.mjs +10 -10
- package/mapbox/esm2022/lib/mapbox.store.map.directive.mjs +9 -22
- package/mapbox/esm2022/lib/mapbox.store.mjs +395 -399
- package/mapbox/esm2022/lib/mapbox.store.provide.mjs +8 -13
- package/mapbox/fesm2022/dereekb-dbx-web-mapbox.mjs +552 -594
- package/mapbox/fesm2022/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/mapbox/lib/mapbox.change.service.d.ts +0 -1
- package/mapbox/lib/mapbox.injection.component.d.ts +0 -3
- package/mapbox/lib/mapbox.injection.store.provide.d.ts +1 -2
- package/mapbox/lib/mapbox.layout.component.d.ts +10 -11
- package/mapbox/lib/mapbox.layout.drawer.component.d.ts +0 -1
- package/mapbox/lib/mapbox.layout.resize.sync.directive.d.ts +3 -4
- package/mapbox/lib/mapbox.marker.component.d.ts +2 -4
- package/mapbox/lib/mapbox.menu.component.d.ts +4 -5
- package/mapbox/lib/mapbox.service.d.ts +1 -2
- package/mapbox/lib/mapbox.store.d.ts +1 -2
- package/mapbox/lib/mapbox.store.map.directive.d.ts +2 -3
- package/mapbox/lib/mapbox.store.provide.d.ts +1 -2
- package/mapbox/package.json +1 -1
- package/package.json +1 -1
- package/table/esm2022/lib/date/date.table.column.header.component.mjs +8 -8
- package/table/esm2022/lib/date/daterange.table.cell.input.component.mjs +37 -43
- package/table/esm2022/lib/date/table.date.module.mjs +6 -6
- package/table/esm2022/lib/table.cell.action.component.mjs +10 -13
- package/table/esm2022/lib/table.cell.input.component.mjs +10 -13
- package/table/esm2022/lib/table.cell.summaryend.component.mjs +10 -13
- package/table/esm2022/lib/table.cell.summarystart.component.mjs +10 -13
- package/table/esm2022/lib/table.column.directive.mjs +8 -11
- package/table/esm2022/lib/table.column.footer.component.mjs +13 -16
- package/table/esm2022/lib/table.column.header.component.mjs +13 -16
- package/table/esm2022/lib/table.component.mjs +35 -38
- package/table/esm2022/lib/table.directive.mjs +6 -9
- package/table/esm2022/lib/table.item.action.component.mjs +13 -16
- package/table/esm2022/lib/table.item.cell.component.mjs +7 -10
- package/table/esm2022/lib/table.item.directive.mjs +8 -11
- package/table/esm2022/lib/table.item.header.component.mjs +5 -8
- package/table/esm2022/lib/table.module.mjs +6 -6
- package/table/esm2022/lib/table.store.mjs +36 -36
- package/table/fesm2022/dereekb-dbx-web-table.mjs +197 -232
- package/table/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
- package/table/lib/date/daterange.table.cell.input.component.d.ts +3 -6
- package/table/lib/table.cell.action.component.d.ts +1 -2
- package/table/lib/table.cell.input.component.d.ts +1 -2
- package/table/lib/table.cell.summaryend.component.d.ts +1 -2
- package/table/lib/table.cell.summarystart.component.d.ts +1 -2
- package/table/lib/table.column.directive.d.ts +1 -2
- package/table/lib/table.component.d.ts +0 -1
- package/table/lib/table.directive.d.ts +0 -1
- package/table/lib/table.item.directive.d.ts +0 -1
- package/table/package.json +1 -1
- package/esm2022/lib/interaction/filter/filter.preset.mjs +0 -94
- package/esm2022/lib/layout/text/form.description.component.mjs +0 -19
- package/esm2022/lib/layout/text/hint.component.mjs +0 -19
- package/esm2022/lib/layout/text/label.component.mjs +0 -19
- package/esm2022/lib/layout/text/note.component.mjs +0 -19
- package/esm2022/lib/layout/text/notice.component.mjs +0 -19
- package/esm2022/lib/layout/text/ok.component.mjs +0 -19
- package/esm2022/lib/layout/text/success.component.mjs +0 -19
- package/esm2022/lib/layout/text/warn.component.mjs +0 -19
- /package/lib/layout/text/{form.description.component.d.ts → compat/form.description.component.d.ts} +0 -0
- /package/lib/layout/text/{hint.component.d.ts → compat/hint.component.d.ts} +0 -0
- /package/lib/layout/text/{label.component.d.ts → compat/label.component.d.ts} +0 -0
- /package/lib/layout/text/{note.component.d.ts → compat/note.component.d.ts} +0 -0
- /package/lib/layout/text/{notice.component.d.ts → compat/notice.component.d.ts} +0 -0
- /package/lib/layout/text/{ok.component.d.ts → compat/ok.component.d.ts} +0 -0
- /package/lib/layout/text/{success.component.d.ts → compat/success.component.d.ts} +0 -0
- /package/lib/layout/text/{warn.component.d.ts → compat/warn.component.d.ts} +0 -0
|
@@ -56,96 +56,96 @@ export class DbxCalendarStore extends ComponentStore {
|
|
|
56
56
|
dateTappedTwice: false,
|
|
57
57
|
events: []
|
|
58
58
|
});
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}))));
|
|
66
|
-
});
|
|
67
|
-
this.tapNext = this.effect((input) => {
|
|
68
|
-
return input.pipe(switchMap(() => this.visibleDateRange$.pipe(first(), tap(({ end, isMaxDateVisible }) => {
|
|
69
|
-
if (!isMaxDateVisible) {
|
|
70
|
-
this.tapDay(addDays(end, 1));
|
|
71
|
-
}
|
|
72
|
-
}))));
|
|
73
|
-
});
|
|
74
|
-
this.tapPrevious = this.effect((input) => {
|
|
75
|
-
return input.pipe(switchMap(() => this.visibleDateRange$.pipe(first(), tap(({ start, isMinDateVisible }) => {
|
|
76
|
-
if (!isMinDateVisible) {
|
|
77
|
-
this.tapDay(addDays(start, -1));
|
|
78
|
-
}
|
|
79
|
-
}))));
|
|
80
|
-
});
|
|
81
|
-
this.tapLastPage = this.effect((input) => {
|
|
82
|
-
return input.pipe(switchMap(() => this.maxNavigationDate$.pipe(first(), tap((x) => {
|
|
83
|
-
if (x) {
|
|
84
|
-
this.tapDay(x);
|
|
85
|
-
}
|
|
86
|
-
}))));
|
|
87
|
-
});
|
|
88
|
-
// MARK: Accessors
|
|
89
|
-
this.showTodayButton$ = this.state$.pipe(map((x) => x.showTodayButton), distinctUntilChanged(), shareReplay(1));
|
|
90
|
-
this.date$ = this.state$.pipe(map((x) => x.date));
|
|
91
|
-
this.dateTappedTwice$ = this.state$.pipe(map((x) => x.dateTappedTwice));
|
|
92
|
-
this.events$ = this.state$.pipe(map((x) => x.events));
|
|
93
|
-
// TODO: Filter to be events that will only be displayed based on the current calendar.
|
|
94
|
-
this.visibleEvents$ = this.state$.pipe(map((x) => x.events), shareReplay(1));
|
|
95
|
-
this.eventsForDateState$ = this.state$.pipe(distinctUntilDateOrTypeOrEventsChanged, map((state) => ({
|
|
96
|
-
date: state.date,
|
|
97
|
-
events: state.events.filter((x) => isSameDay(x.start, state.date) || (x.end && isBefore(x.start, state.date) && isAfter(x.end, state.date))),
|
|
98
|
-
dateTappedTwice: state.dateTappedTwice
|
|
99
|
-
})), shareReplay(1));
|
|
100
|
-
this.eventsForDate$ = this.eventsForDateState$.pipe(map((state) => state.events));
|
|
101
|
-
this.visibleDateRange$ = this.state$.pipe(
|
|
102
|
-
// If the date or type changes, check again.
|
|
103
|
-
distinctUntilChanged((a, b) => a?.date === b?.date && a?.type === b?.type), map(visibleDateRangeForCalendarState), distinctUntilChanged((a, b) => {
|
|
104
|
-
if (a.type === b.type) {
|
|
105
|
-
return isSameDay(a.start, b.start);
|
|
59
|
+
}
|
|
60
|
+
// MARK: Effects
|
|
61
|
+
tapFirstPage = this.effect((input) => {
|
|
62
|
+
return input.pipe(switchMap(() => this.minNavigationDate$.pipe(first(), tap((x) => {
|
|
63
|
+
if (x) {
|
|
64
|
+
this.tapDay(x);
|
|
106
65
|
}
|
|
107
|
-
|
|
108
|
-
|
|
66
|
+
}))));
|
|
67
|
+
});
|
|
68
|
+
tapNext = this.effect((input) => {
|
|
69
|
+
return input.pipe(switchMap(() => this.visibleDateRange$.pipe(first(), tap(({ end, isMaxDateVisible }) => {
|
|
70
|
+
if (!isMaxDateVisible) {
|
|
71
|
+
this.tapDay(addDays(end, 1));
|
|
109
72
|
}
|
|
110
|
-
})
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
})
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
73
|
+
}))));
|
|
74
|
+
});
|
|
75
|
+
tapPrevious = this.effect((input) => {
|
|
76
|
+
return input.pipe(switchMap(() => this.visibleDateRange$.pipe(first(), tap(({ start, isMinDateVisible }) => {
|
|
77
|
+
if (!isMinDateVisible) {
|
|
78
|
+
this.tapDay(addDays(start, -1));
|
|
79
|
+
}
|
|
80
|
+
}))));
|
|
81
|
+
});
|
|
82
|
+
tapLastPage = this.effect((input) => {
|
|
83
|
+
return input.pipe(switchMap(() => this.maxNavigationDate$.pipe(first(), tap((x) => {
|
|
84
|
+
if (x) {
|
|
85
|
+
this.tapDay(x);
|
|
86
|
+
}
|
|
87
|
+
}))));
|
|
88
|
+
});
|
|
89
|
+
// MARK: Accessors
|
|
90
|
+
showTodayButton$ = this.state$.pipe(map((x) => x.showTodayButton), distinctUntilChanged(), shareReplay(1));
|
|
91
|
+
date$ = this.state$.pipe(map((x) => x.date));
|
|
92
|
+
dateTappedTwice$ = this.state$.pipe(map((x) => x.dateTappedTwice));
|
|
93
|
+
events$ = this.state$.pipe(map((x) => x.events));
|
|
94
|
+
// TODO: Filter to be events that will only be displayed based on the current calendar.
|
|
95
|
+
visibleEvents$ = this.state$.pipe(map((x) => x.events), shareReplay(1));
|
|
96
|
+
eventsForDateState$ = this.state$.pipe(distinctUntilDateOrTypeOrEventsChanged, map((state) => ({
|
|
97
|
+
date: state.date,
|
|
98
|
+
events: state.events.filter((x) => isSameDay(x.start, state.date) || (x.end && isBefore(x.start, state.date) && isAfter(x.end, state.date))),
|
|
99
|
+
dateTappedTwice: state.dateTappedTwice
|
|
100
|
+
})), shareReplay(1));
|
|
101
|
+
eventsForDate$ = this.eventsForDateState$.pipe(map((state) => state.events));
|
|
102
|
+
visibleDateRange$ = this.state$.pipe(
|
|
103
|
+
// If the date or type changes, check again.
|
|
104
|
+
distinctUntilChanged((a, b) => a?.date === b?.date && a?.type === b?.type), map(visibleDateRangeForCalendarState), distinctUntilChanged((a, b) => {
|
|
105
|
+
if (a.type === b.type) {
|
|
106
|
+
return isSameDay(a.start, b.start);
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
return false; // Type changed, date range changed.
|
|
110
|
+
}
|
|
111
|
+
}), shareReplay(1));
|
|
112
|
+
isLookingAtToday$ = this.visibleDateRange$.pipe(map((x) => isDateInDateRange(new Date(), x)), distinctUntilChanged(), shareReplay(1));
|
|
113
|
+
isLookingAtMinimumDate$ = this.visibleDateRange$.pipe(map((x) => x.isMinDateVisible), distinctUntilChanged(), shareReplay(1));
|
|
114
|
+
isLookingAtMaximumDate$ = this.visibleDateRange$.pipe(map((x) => x.isMaxDateVisible), distinctUntilChanged(), shareReplay(1));
|
|
115
|
+
hasMultiplePages$ = combineLatest([this.isLookingAtMinimumDate$, this.isLookingAtMaximumDate$]).pipe(map(invertDecision(reduceBooleansWithAndFn(true))), distinctUntilChanged(), shareReplay(1));
|
|
116
|
+
displayType$ = this.state$.pipe(map((x) => x.type), distinctUntilChanged((a, b) => a === b), shareReplay(1));
|
|
117
|
+
navigationRangeLimit$ = this.state$.pipe(map((x) => x.navigationRangeLimit), distinctUntilChanged(isSameDateRange), shareReplay(1));
|
|
118
|
+
minNavigationDate$ = this.navigationRangeLimit$.pipe(map((x) => x?.start), distinctUntilChanged(isSameDateDay), shareReplay(1));
|
|
119
|
+
maxNavigationDate$ = this.navigationRangeLimit$.pipe(map((x) => x?.end), distinctUntilChanged(isSameDateDay), shareReplay(1));
|
|
120
|
+
isTodayInNavigationRangeLimit$ = this.navigationRangeLimit$.pipe(map((x) => isDateInDateRange(new Date(), x ?? {})), distinctUntilChanged(), shareReplay(1));
|
|
121
|
+
canJumpToToday$ = combineLatest([this.isLookingAtToday$, this.isTodayInNavigationRangeLimit$]).pipe(map(([isLookingAtToday, isTodayInNavigationRangeLimit]) => !isLookingAtToday && isTodayInNavigationRangeLimit), distinctUntilChanged(), shareReplay(1));
|
|
122
|
+
canShowPageButtons$ = this.state$.pipe(map((x) => x.showPageButtons && x.navigationRangeLimit && isFullDateRange(x.navigationRangeLimit)), distinctUntilChanged(), shareReplay(1));
|
|
123
|
+
showPageButtons$ = combineLatest([this.canShowPageButtons$, this.isLookingAtMinimumDate$, this.isLookingAtMaximumDate$]).pipe(map(([canShowPageButtons, isLookingAtMinimumDate, isLookingAtMaximumDate]) => {
|
|
124
|
+
return canShowPageButtons && !(isLookingAtMinimumDate && isLookingAtMaximumDate);
|
|
125
|
+
}), distinctUntilChanged(), shareReplay(1));
|
|
126
|
+
// MARK: State Changes
|
|
127
|
+
/**
|
|
128
|
+
* Tap a day.
|
|
129
|
+
*
|
|
130
|
+
* - If the same day is presented, dateTappedTwice is flipped.
|
|
131
|
+
*/
|
|
132
|
+
tapDay = this.updater((state, date) => updateCalendarStateWithTappedDate(state, date));
|
|
133
|
+
/**
|
|
134
|
+
* Set all events on the calendar.
|
|
135
|
+
*/
|
|
136
|
+
setEvents = this.updater((state, events) => ({ ...state, events }));
|
|
137
|
+
/**
|
|
138
|
+
* Set all events on the calendar.
|
|
139
|
+
*/
|
|
140
|
+
setDisplayType = this.updater((state, type) => ({ ...state, type }));
|
|
141
|
+
/**
|
|
142
|
+
* Sets the navigation limit.
|
|
143
|
+
*/
|
|
144
|
+
setNavigationRangeLimit = this.updater((state, navigationRangeLimit) => updateCalendarStateWithNavigationRangeLimit(state, navigationRangeLimit));
|
|
145
|
+
setShowTodayButton = this.updater((state, showTodayButton) => ({ ...state, showTodayButton: showTodayButton != null ? showTodayButton : true }));
|
|
146
|
+
setShowPageButtons = this.updater((state, showPageButtons) => ({ ...state, showPageButtons: showPageButtons != null ? showPageButtons : false }));
|
|
147
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxCalendarStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
148
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxCalendarStore });
|
|
149
149
|
}
|
|
150
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxCalendarStore, decorators: [{
|
|
151
151
|
type: Injectable
|
|
@@ -171,4 +171,4 @@ export function updateCalendarStateWithNavigationRangeLimit(state, navigationRan
|
|
|
171
171
|
return { ...state, navigationRangeLimit };
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQWEsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUFFLGNBQWMsRUFBUyx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzSixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRWhILE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0Isc0NBQWUsQ0FBQTtJQUNmLG9DQUFhLENBQUE7SUFDYixrQ0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFJOUI7QUFnREQsTUFBTSxVQUFVLGdDQUFnQyxDQUFDLGFBQTRCO0lBQzNFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDO0lBQzNELElBQUksS0FBVyxDQUFDO0lBQ2hCLElBQUksR0FBUyxD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RTtZQUN0RixLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLFNBQVMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzNHO0tBQ0Y7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxNQUFNLFVBQVUsMkNBQTJDLENBQUMsS0FBb0IsRUFBRSxvQkFBK0M7SUFDL0gsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztJQUV2QixvREFBb0Q7SUFDcEQsSUFBSSxvQkFBb0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxFQUFFO1FBQzFFLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDLElBQUksRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3JFLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLENBQUM7S0FDOUQ7U0FBTTtRQUNMLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxDQUFDO0tBQzNDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsYW1wRGF0ZVRvRGF0ZVJhbmdlLCBEYXRlUmFuZ2UsIGlzRGF0ZUluRGF0ZVJhbmdlLCBpc0Z1bGxEYXRlUmFuZ2UsIGlzU2FtZURhdGVEYXksIGlzU2FtZURhdGVSYW5nZSB9IGZyb20gJ0BkZXJlZWtiL2RhdGUnO1xuaW1wb3J0IHsgaW52ZXJ0RGVjaXNpb24sIE1heWJlLCByZWR1Y2VCb29sZWFuc1dpdGhBbmRGbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50U3RvcmUgfSBmcm9tICdAbmdyeC9jb21wb25lbnQtc3RvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJFdmVudCB9IGZyb20gJ2FuZ3VsYXItY2FsZW5kYXInO1xuaW1wb3J0IHsgZGlmZmVyZW5jZUluRGF5cywgYWRkRGF5cywgZW5kT2ZEYXksIGVuZE9mTW9udGgsIGVuZE9mV2VlaywgaXNTYW1lRGF5LCBzdGFydE9mRGF5LCBzdGFydE9mTW9udGgsIHN0YXJ0T2ZXZWVrLCBpc0JlZm9yZSwgaXNBZnRlciB9IGZyb20gJ2RhdGUtZm5zJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaXJzdCwgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwLCB0YXAsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGVudW0gQ2FsZW5kYXJEaXNwbGF5VHlwZSB7XG4gIE1PTlRIID0gJ21vbnRoJyxcbiAgV0VFSyA9ICd3ZWVrJyxcbiAgREFZID0gJ2RheSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDYWxlbmRhclZpZXdEYXRlUmFuZ2Uge1xuICB0eXBlOiBDYWxlbmRhckRpc3BsYXlUeXBlO1xuICBzdGFydDogRGF0ZTtcbiAgZW5kOiBEYXRlO1xuICBkaXN0YW5jZTogbnVtYmVyO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIG1pbiBuYXZpZ2F0aW9uIGRhdGUgaXMgY3VycmVudGx5IHZpc2libGUuIFRoaXMgaW1wbGllcyB0aGF0IHdlJ3JlIGF0IHRoZSBtaW5pbXVtIGRhdGUuXG4gICAqL1xuICBpc01pbkRhdGVWaXNpYmxlOiBib29sZWFuO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdGhlIG1heGltdW0gbmF2aWdhdGlvbiBkYXRlIGlzIHZpc2libGUuIFRoaXMgaW1wbGllcyB0aGF0IHdlJ3JlIGF0IHRoZSBtYXhpbXVtIGRhdGUuXG4gICAqL1xuICBpc01heERhdGVWaXNpYmxlOiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyU3RhdGU8VCA9IGFueT4ge1xuICAvKipcbiAgICogQ2FsZW5kYXIgZGlzcGxheSBtb2RlXG4gICAqL1xuICByZWFkb25seSB0eXBlOiBDYWxlbmRhckRpc3BsYXlUeXBlO1xuICAvKipcbiAgICogV2hldGhlciBvciBub3QgdG8gc2hvdyB0aGUgdG9kYXkgYnV0dG9uLiBEZWZhdWx0cyB0byB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd1RvZGF5QnV0dG9uPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIERhdGUgdGhhdCBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRhdGU6IERhdGU7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgZGF5IHdhcyB0YXBwZWQvc2V0IHR3aWNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0ZVRhcHBlZFR3aWNlOiBib29sZWFuO1xuICAvKipcbiAgICogU2V0IG9mIGNhbGVuZGFyIGV2ZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IGV2ZW50czogQ2FsZW5kYXJFdmVudDxUPltdO1xuICAvKipcbiAgICogT3B0aW9uYWwgbmF2aWdhdGlvbiByYW5nZSBsaW1pdGF0aW9uIHRoYXQgbGltaXRzIHdoaWNoIGRhdGVzIGNhbiBiZSBuYXZpZ2F0ZWQgdG8uXG4gICAqL1xuICByZWFkb25seSBuYXZpZ2F0aW9uUmFuZ2VMaW1pdD86IE1heWJlPFBhcnRpYWw8RGF0ZVJhbmdlPj47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBkaXNwbGF5IHRoZSBwYWdlIGJ1dHRvbnMgd2hlbiBhcHBsaWNhYmxlLiBDYW4gb25seSBiZSBkaXNwbGF5ZWQgd2hlbiBhIG5hdmlnYXRpb25SYW5nZUxpbWl0IGlzIHNldC5cbiAgICovXG4gIHJlYWRvbmx5IHNob3dQYWdlQnV0dG9ucz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2aXNpYmxlRGF0ZVJhbmdlRm9yQ2FsZW5kYXJTdGF0ZShjYWxlbmRhclN0YXRlOiBDYWxlbmRhclN0YXRlKTogQ2FsZW5kYXJWaWV3RGF0ZVJhbmdlIHtcbiAgY29uc3QgeyBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCwgdHlwZSwgZGF0ZSB9ID0gY2FsZW5kYXJTdGF0ZTtcbiAgbGV0IHN0YXJ0OiBEYXRlO1xuICBsZXQgZW5kOiBEYXRlO1xuICBsZXQgZGlzdGFuY2U6IG51bWJlcjtcblxuICBzd2l0Y2ggKHR5cGUpIHtcbiAgICBjYXNlIENhbGVuZGFyRGlzcGxheVR5cGUuTU9OVEg6XG4gICAgICBzdGFydCA9IHN0YXJ0T2ZEYXkoc3RhcnRPZldlZWsoc3RhcnRPZk1vbnRoKGRhdGUpLCB7IHdlZWtTdGFydHNPbjogMCB9KSk7XG4gICAgICBlbmQgPSBlbmRPZldlZWsoZW5kT2ZNb250aChkYXRlKSk7XG4gICAgICBkaXN0YW5jZSA9IGRpZmZlcmVuY2VJbkRheXMoZW5kLCBzdGFydCkgKyAxO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBDYWxlbmRhckRpc3BsYXlUeXBlLldFRUs6XG4gICAgICBzdGFydCA9IHN0YXJ0T2ZXZWVrKGRhdGUpO1xuICAgICAgZW5kID0gZW5kT2ZXZWVrKHN0YXJ0KTtcbiAgICAgIGRpc3RhbmNlID0gNzsgLy8gNyBkYXlzIGluIGEgd2Vlay5cbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgQ2FsZW5kYXJEaXNwbGF5VHlwZS5EQVk6XG4gICAgICBzdGFydCA9IHN0YXJ0T2ZEYXkoZGF0ZSk7XG4gICAgICBlbmQgPSBlbmRPZkRheShkYXRlKTtcbiAgICAgIGRpc3RhbmNlID0gMTtcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgY29uc3QgaXNNaW5EYXRlVmlzaWJsZTogYm9vbGVhbiA9IG5hdmlnYXRpb25SYW5nZUxpbWl0Py5zdGFydCAhPSBudWxsID8gIWlzQWZ0ZXIoc3RhcnQsIG5hdmlnYXRpb25SYW5nZUxpbWl0LnN0YXJ0KSA6IGZhbHNlO1xuICBjb25zdCBpc01heERhdGVWaXNpYmxlOiBib29sZWFuID0gbmF2aWdhdGlvblJhbmdlTGltaXQ/LmVuZCAhPSBudWxsID8gIWlzQmVmb3JlKGVuZCwgbmF2aWdhdGlvblJhbmdlTGltaXQuZW5kKSA6IGZhbHNlO1xuXG4gIC8vIFRPRE86IENvbnNpZGVyIGNoYW5naW5nIG1pbi9tYXggZGF0ZSB2aXNpYmxlIGxvZ2ljYWwgdXRpbGl0eSB0byBiZSBmdWxseSB3aXRoaW4gdGhlIGN1cnJlbnQgbW9udGggb3Igbm90LFxuICAvLyBub3QganVzdCB2aXNpYmxlLCBzaW5jZSBpdCBjYW4gY2hhbmdlIHRvIGEgbG9ja2VkIG91dCBjYWxlbmRhciBhbmQgZG9lc24ndCBmZWVsIGFzIFVJIGZyaWVuZGx5LlxuXG4gIHJldHVybiB7XG4gICAgdHlwZSxcbiAgICBzdGFydCxcbiAgICBlbmQsXG4gICAgZGlzdGFuY2UsXG4gICAgaXNNaW5EYXRlVmlzaWJsZSxcbiAgICBpc01heERhdGVWaXNpYmxlXG4gIH07XG59XG5cbmNvbnN0IGRpc3RpbmN0VW50aWxEYXRlT3JUeXBlT3JFdmVudHNDaGFuZ2VkID0gZGlzdGluY3RVbnRpbENoYW5nZWQ8Q2FsZW5kYXJTdGF0ZT4oKGEsIGIpID0+IGE/LmRhdGUgPT09IGI/LmRhdGUgJiYgYT8udHlwZSA9PT0gYj8udHlwZSAmJiBhPy5ldmVudHMgPT09IGI/LmV2ZW50cyk7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEYnhDYWxlbmRhclN0b3JlPFQgPSBhbnk+IGV4dGVuZHMgQ29tcG9uZW50U3RvcmU8Q2FsZW5kYXJTdGF0ZTxUPj4ge1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcih7XG4gICAgICB0eXBlOiBDYWxlbmRhckRpc3BsYXlUeXBlLk1PTlRILFxuICAgICAgc2hvd1RvZGF5QnV0dG9uOiB0cnVlLFxuICAgICAgZGF0ZTogbmV3IERhdGUoKSxcbiAgICAgIGRhdGVUYXBwZWRUd2ljZTogZmFsc2UsXG4gICAgICBldmVudHM6IFtdXG4gICAgfSk7XG4gIH1cblxuICAvLyBNQVJLOiBFZmZlY3RzXG4gIHJlYWRvbmx5IHRhcEZpcnN0UGFnZSA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTx2b2lkPikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgIHRoaXMubWluTmF2aWdhdGlvbkRhdGUkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHgpID0+IHtcbiAgICAgICAgICAgIGlmICh4KSB7XG4gICAgICAgICAgICAgIHRoaXMudGFwRGF5KHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICByZWFkb25seSB0YXBOZXh0ID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgdGhpcy52aXNpYmxlRGF0ZVJhbmdlJC5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKCh7IGVuZCwgaXNNYXhEYXRlVmlzaWJsZSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTWF4RGF0ZVZpc2libGUpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoYWRkRGF5cyhlbmQsIDEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgdGFwUHJldmlvdXMgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHsgc3RhcnQsIGlzTWluRGF0ZVZpc2libGUgfSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpc01pbkRhdGVWaXNpYmxlKSB7XG4gICAgICAgICAgICAgIHRoaXMudGFwRGF5KGFkZERheXMoc3RhcnQsIC0xKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHRhcExhc3RQYWdlID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgdGhpcy5tYXhOYXZpZ2F0aW9uRGF0ZSQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeCkgPT4ge1xuICAgICAgICAgICAgaWYgKHgpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xuXG4gIC8vIE1BUks6IEFjY2Vzc29yc1xuXG4gIHJlYWRvbmx5IHNob3dUb2RheUJ1dHRvbiQgPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5zaG93VG9kYXlCdXR0b24pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkYXRlJCA9IHRoaXMuc3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4LmRhdGUpKTtcbiAgcmVhZG9ubHkgZGF0ZVRhcHBlZFR3aWNlJCA9IHRoaXMuc3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4LmRhdGVUYXBwZWRUd2ljZSkpO1xuXG4gIHJlYWRvbmx5IGV2ZW50cyQgPSB0aGlzLnN0YXRlJC5waXBlKG1hcCgoeCkgPT4geC5ldmVudHMpKTtcblxuICAvLyBUT0RPOiBGaWx0ZXIgdG8gYmUgZXZlbnRzIHRoYXQgd2lsbCBvbmx5IGJlIGRpc3BsYXllZCBiYXNlZCBvbiB0aGUgY3VycmVudCBjYWxlbmRhci5cbiAgcmVhZG9ubHkgdmlzaWJsZUV2ZW50cyQgPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5ldmVudHMpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZXZlbnRzRm9yRGF0ZVN0YXRlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgZGlzdGluY3RVbnRpbERhdGVPclR5cGVPckV2ZW50c0NoYW5nZWQsXG4gICAgbWFwKChzdGF0ZSkgPT4gKHtcbiAgICAgIGRhdGU6IHN0YXRlLmRhdGUsXG4gICAgICBldmVudHM6IHN0YXRlLmV2ZW50cy5maWx0ZXIoKHgpID0+IGlzU2FtZURheSh4LnN0YXJ0LCBzdGF0ZS5kYXRlKSB8fCAoeC5lbmQgJiYgaXNCZWZvcmUoeC5zdGFydCwgc3RhdGUuZGF0ZSkgJiYgaXNBZnRlcih4LmVuZCwgc3RhdGUuZGF0ZSkpKSxcbiAgICAgIGRhdGVUYXBwZWRUd2ljZTogc3RhdGUuZGF0ZVRhcHBlZFR3aWNlXG4gICAgfSkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZXZlbnRzRm9yRGF0ZSQgPSB0aGlzLmV2ZW50c0ZvckRhdGVTdGF0ZSQucGlwZShtYXAoKHN0YXRlKSA9PiBzdGF0ZS5ldmVudHMpKTtcblxuICByZWFkb25seSB2aXNpYmxlRGF0ZVJhbmdlJDogT2JzZXJ2YWJsZTxDYWxlbmRhclZpZXdEYXRlUmFuZ2U+ID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICAvLyBJZiB0aGUgZGF0ZSBvciB0eXBlIGNoYW5nZXMsIGNoZWNrIGFnYWluLlxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhPy5kYXRlID09PSBiPy5kYXRlICYmIGE/LnR5cGUgPT09IGI/LnR5cGUpLFxuICAgIG1hcCh2aXNpYmxlRGF0ZVJhbmdlRm9yQ2FsZW5kYXJTdGF0ZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IHtcbiAgICAgIGlmIChhLnR5cGUgPT09IGIudHlwZSkge1xuICAgICAgICByZXR1cm4gaXNTYW1lRGF5KGEuc3RhcnQsIGIuc3RhcnQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBUeXBlIGNoYW5nZWQsIGRhdGUgcmFuZ2UgY2hhbmdlZC5cbiAgICAgIH1cbiAgICB9KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzTG9va2luZ0F0VG9kYXkkID0gdGhpcy52aXNpYmxlRGF0ZVJhbmdlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4gaXNEYXRlSW5EYXRlUmFuZ2UobmV3IERhdGUoKSwgeCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpc0xvb2tpbmdBdE1pbmltdW1EYXRlJCA9IHRoaXMudmlzaWJsZURhdGVSYW5nZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHguaXNNaW5EYXRlVmlzaWJsZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzTG9va2luZ0F0TWF4aW11bURhdGUkID0gdGhpcy52aXNpYmxlRGF0ZVJhbmdlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5pc01heERhdGVWaXNpYmxlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaGFzTXVsdGlwbGVQYWdlcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlzTG9va2luZ0F0TWluaW11bURhdGUkLCB0aGlzLmlzTG9va2luZ0F0TWF4aW11bURhdGUkXSkucGlwZShtYXAoaW52ZXJ0RGVjaXNpb24ocmVkdWNlQm9vbGVhbnNXaXRoQW5kRm4odHJ1ZSkpKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlUeXBlJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnR5cGUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiBhID09PSBiKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG5hdmlnYXRpb25SYW5nZUxpbWl0JCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Lm5hdmlnYXRpb25SYW5nZUxpbWl0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc1NhbWVEYXRlUmFuZ2UpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbWluTmF2aWdhdGlvbkRhdGUkOiBPYnNlcnZhYmxlPE1heWJlPERhdGU+PiA9IHRoaXMubmF2aWdhdGlvblJhbmdlTGltaXQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4Py5zdGFydCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoaXNTYW1lRGF0ZURheSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBtYXhOYXZpZ2F0aW9uRGF0ZSQ6IE9ic2VydmFibGU8TWF5YmU8RGF0ZT4+ID0gdGhpcy5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LmVuZCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoaXNTYW1lRGF0ZURheSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBpc1RvZGF5SW5OYXZpZ2F0aW9uUmFuZ2VMaW1pdCQgPSB0aGlzLm5hdmlnYXRpb25SYW5nZUxpbWl0JC5waXBlKFxuICAgIG1hcCgoeCkgPT4gaXNEYXRlSW5EYXRlUmFuZ2UobmV3IERhdGUoKSwgeCA/PyB7fSkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBjYW5KdW1wVG9Ub2RheSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmlzTG9va2luZ0F0VG9kYXkkLCB0aGlzLmlzVG9kYXlJbk5hdmlnYXRpb25SYW5nZUxpbWl0JF0pLnBpcGUoXG4gICAgbWFwKChbaXNMb29raW5nQXRUb2RheSwgaXNUb2RheUluTmF2aWdhdGlvblJhbmdlTGltaXRdKSA9PiAhaXNMb29raW5nQXRUb2RheSAmJiBpc1RvZGF5SW5OYXZpZ2F0aW9uUmFuZ2VMaW1pdCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGNhblNob3dQYWdlQnV0dG9ucyQgPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5zaG93UGFnZUJ1dHRvbnMgJiYgeC5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCAmJiBpc0Z1bGxEYXRlUmFuZ2UoeC5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCkpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzaG93UGFnZUJ1dHRvbnMkID0gY29tYmluZUxhdGVzdChbdGhpcy5jYW5TaG93UGFnZUJ1dHRvbnMkLCB0aGlzLmlzTG9va2luZ0F0TWluaW11bURhdGUkLCB0aGlzLmlzTG9va2luZ0F0TWF4aW11bURhdGUkXSkucGlwZShcbiAgICBtYXAoKFtjYW5TaG93UGFnZUJ1dHRvbnMsIGlzTG9va2luZ0F0TWluaW11bURhdGUsIGlzTG9va2luZ0F0TWF4aW11bURhdGVdKSA9PiB7XG4gICAgICByZXR1cm4gY2FuU2hvd1BhZ2VCdXR0b25zICYmICEoaXNMb29raW5nQXRNaW5pbXVtRGF0ZSAmJiBpc0xvb2tpbmdBdE1heGltdW1EYXRlKTtcbiAgICB9KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgLy8gTUFSSzogU3RhdGUgQ2hhbmdlc1xuICAvKipcbiAgICogVGFwIGEgZGF5LlxuICAgKlxuICAgKiAtIElmIHRoZSBzYW1lIGRheSBpcyBwcmVzZW50ZWQsIGRhdGVUYXBwZWRUd2ljZSBpcyBmbGlwcGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgdGFwRGF5ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZGF0ZTogRGF0ZSkgPT4gdXBkYXRlQ2FsZW5kYXJTdGF0ZVdpdGhUYXBwZWREYXRlKHN0YXRlLCBkYXRlKSk7XG5cbiAgLyoqXG4gICAqIFNldCBhbGwgZXZlbnRzIG9uIHRoZSBjYWxlbmRhci5cbiAgICovXG4gIHJlYWRvbmx5IHNldEV2ZW50cyA9IHRoaXMudXBkYXRlcigoc3RhdGUsIGV2ZW50czogQ2FsZW5kYXJFdmVudDxUPltdKSA9PiAoeyAuLi5zdGF0ZSwgZXZlbnRzIH0pKTtcblxuICAvKipcbiAgICogU2V0IGFsbCBldmVudHMgb24gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RGlzcGxheVR5cGUgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCB0eXBlOiBDYWxlbmRhckRpc3BsYXlUeXBlKSA9PiAoeyAuLi5zdGF0ZSwgdHlwZSB9KSk7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIG5hdmlnYXRpb24gbGltaXQuXG4gICAqL1xuICByZWFkb25seSBzZXROYXZpZ2F0aW9uUmFuZ2VMaW1pdCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0OiBNYXliZTxQYXJ0aWFsPERhdGVSYW5nZT4+KSA9PiB1cGRhdGVDYWxlbmRhclN0YXRlV2l0aE5hdmlnYXRpb25SYW5nZUxpbWl0KHN0YXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCkpO1xuXG4gIHJlYWRvbmx5IHNldFNob3dUb2RheUJ1dHRvbiA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHNob3dUb2RheUJ1dHRvbjogTWF5YmU8Ym9vbGVhbj4pID0+ICh7IC4uLnN0YXRlLCBzaG93VG9kYXlCdXR0b246IHNob3dUb2RheUJ1dHRvbiAhPSBudWxsID8gc2hvd1RvZGF5QnV0dG9uIDogdHJ1ZSB9KSk7XG4gIHJlYWRvbmx5IHNldFNob3dQYWdlQnV0dG9ucyA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHNob3dQYWdlQnV0dG9uczogTWF5YmU8Ym9vbGVhbj4pID0+ICh7IC4uLnN0YXRlLCBzaG93UGFnZUJ1dHRvbnM6IHNob3dQYWdlQnV0dG9ucyAhPSBudWxsID8gc2hvd1BhZ2VCdXR0b25zIDogZmFsc2UgfSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FsZW5kYXJTdGF0ZVdpdGhUYXBwZWREYXRlKHN0YXRlOiBDYWxlbmRhclN0YXRlLCBkYXRlOiBEYXRlKSB7XG4gIC8vIG9ubHkgdXBkYXRlIHRoZSBkYXRlIGlmIGl0IGlzIGRpZmZlcmVudFxuICBpZiAoIWlzU2FtZURhdGVEYXkoc3RhdGUuZGF0ZSwgZGF0ZSkpIHtcbiAgICAvLyBPbmx5IHVwZGF0ZSB0aGUgZGF0ZSBpZiBpdCBpcyB3aXRoaW4gdGhlIGRhdGUgcmFuZ2VcbiAgICBpZiAoIXN0YXRlLm5hdmlnYXRpb25SYW5nZUxpbWl0IHx8IGlzRGF0ZUluRGF0ZVJhbmdlKGRhdGUsIHN0YXRlLm5hdmlnYXRpb25SYW5nZUxpbWl0KSkge1xuICAgICAgc3RhdGUgPSB7IC4uLnN0YXRlLCBkYXRlLCBkYXRlVGFwcGVkVHdpY2U6IGlzU2FtZURheShkYXRlLCBzdGF0ZS5kYXRlKSA/ICFzdGF0ZS5kYXRlVGFwcGVkVHdpY2UgOiBmYWxzZSB9O1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdGF0ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVwZGF0ZUNhbGVuZGFyU3RhdGVXaXRoTmF2aWdhdGlvblJhbmdlTGltaXQoc3RhdGU6IENhbGVuZGFyU3RhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0OiBNYXliZTxQYXJ0aWFsPERhdGVSYW5nZT4+KSB7XG4gIGNvbnN0IHsgZGF0ZSB9ID0gc3RhdGU7XG5cbiAgLy8gY2FwIHRoZSBkYXRlIGlmIGl0IGRvZXNuJ3QgZmFsbCB3aXRoaW4gdGhlIHJhbmdlLlxuICBpZiAobmF2aWdhdGlvblJhbmdlTGltaXQgJiYgIWlzRGF0ZUluRGF0ZVJhbmdlKGRhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0KSkge1xuICAgIGNvbnN0IGNsYW1wZWREYXRlID0gY2xhbXBEYXRlVG9EYXRlUmFuZ2UoZGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQpO1xuICAgIHJldHVybiB7IC4uLnN0YXRlLCBkYXRlOiBjbGFtcGVkRGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyAuLi5zdGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQgfTtcbiAgfVxufVxuIl19
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtd2ViL2NhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXIuc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQWEsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEksT0FBTyxFQUFFLGNBQWMsRUFBUyx1QkFBdUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzSixPQUFPLEVBQWMsb0JBQW9CLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRWhILE1BQU0sQ0FBTixJQUFZLG1CQUlYO0FBSkQsV0FBWSxtQkFBbUI7SUFDN0Isc0NBQWUsQ0FBQTtJQUNmLG9DQUFhLENBQUE7SUFDYixrQ0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUpXLG1CQUFtQixLQUFuQixtQkFBbUIsUUFJOUI7QUFnREQsTUFBTSxVQUFVLGdDQUFnQyxDQUFDLGFBQTRCO0lBQzNFLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsYUFBYSxDQUFDO0lBQzNELElBQUksS0FBVyxDQUFDO0lBQ2hCLElBQUksR0FBUyxD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QUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDM0c7S0FDRjtJQUVELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSwyQ0FBMkMsQ0FBQyxLQUFvQixFQUFFLG9CQUErQztJQUMvSCxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsS0FBSyxDQUFDO0lBRXZCLG9EQUFvRDtJQUNwRCxJQUFJLG9CQUFvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLEVBQUU7UUFDMUUsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLENBQUM7UUFDckUsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQztLQUM5RDtTQUFNO1FBQ0wsT0FBTyxFQUFFLEdBQUcsS0FBSyxFQUFFLG9CQUFvQixFQUFFLENBQUM7S0FDM0M7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xhbXBEYXRlVG9EYXRlUmFuZ2UsIERhdGVSYW5nZSwgaXNEYXRlSW5EYXRlUmFuZ2UsIGlzRnVsbERhdGVSYW5nZSwgaXNTYW1lRGF0ZURheSwgaXNTYW1lRGF0ZVJhbmdlIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5pbXBvcnQgeyBpbnZlcnREZWNpc2lvbiwgTWF5YmUsIHJlZHVjZUJvb2xlYW5zV2l0aEFuZEZuIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XG5pbXBvcnQgeyBDYWxlbmRhckV2ZW50IH0gZnJvbSAnYW5ndWxhci1jYWxlbmRhcic7XG5pbXBvcnQgeyBkaWZmZXJlbmNlSW5EYXlzLCBhZGREYXlzLCBlbmRPZkRheSwgZW5kT2ZNb250aCwgZW5kT2ZXZWVrLCBpc1NhbWVEYXksIHN0YXJ0T2ZEYXksIHN0YXJ0T2ZNb250aCwgc3RhcnRPZldlZWssIGlzQmVmb3JlLCBpc0FmdGVyIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpcnN0LCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRhcCwgY29tYmluZUxhdGVzdCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgZW51bSBDYWxlbmRhckRpc3BsYXlUeXBlIHtcbiAgTU9OVEggPSAnbW9udGgnLFxuICBXRUVLID0gJ3dlZWsnLFxuICBEQVkgPSAnZGF5J1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyVmlld0RhdGVSYW5nZSB7XG4gIHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGU7XG4gIHN0YXJ0OiBEYXRlO1xuICBlbmQ6IERhdGU7XG4gIGRpc3RhbmNlOiBudW1iZXI7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgbWluIG5hdmlnYXRpb24gZGF0ZSBpcyBjdXJyZW50bHkgdmlzaWJsZS4gVGhpcyBpbXBsaWVzIHRoYXQgd2UncmUgYXQgdGhlIG1pbmltdW0gZGF0ZS5cbiAgICovXG4gIGlzTWluRGF0ZVZpc2libGU6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgbWF4aW11bSBuYXZpZ2F0aW9uIGRhdGUgaXMgdmlzaWJsZS4gVGhpcyBpbXBsaWVzIHRoYXQgd2UncmUgYXQgdGhlIG1heGltdW0gZGF0ZS5cbiAgICovXG4gIGlzTWF4RGF0ZVZpc2libGU6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJTdGF0ZTxUID0gYW55PiB7XG4gIC8qKlxuICAgKiBDYWxlbmRhciBkaXNwbGF5IG1vZGVcbiAgICovXG4gIHJlYWRvbmx5IHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGU7XG4gIC8qKlxuICAgKiBXaGV0aGVyIG9yIG5vdCB0byBzaG93IHRoZSB0b2RheSBidXR0b24uIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICByZWFkb25seSBzaG93VG9kYXlCdXR0b24/OiBib29sZWFuO1xuICAvKipcbiAgICogRGF0ZSB0aGF0IGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGF0ZTogRGF0ZTtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRoZSBkYXkgd2FzIHRhcHBlZC9zZXQgdHdpY2UuXG4gICAqL1xuICByZWFkb25seSBkYXRlVGFwcGVkVHdpY2U6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTZXQgb2YgY2FsZW5kYXIgZXZlbnRzLlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRzOiBDYWxlbmRhckV2ZW50PFQ+W107XG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYXZpZ2F0aW9uIHJhbmdlIGxpbWl0YXRpb24gdGhhdCBsaW1pdHMgd2hpY2ggZGF0ZXMgY2FuIGJlIG5hdmlnYXRlZCB0by5cbiAgICovXG4gIHJlYWRvbmx5IG5hdmlnYXRpb25SYW5nZUxpbWl0PzogTWF5YmU8UGFydGlhbDxEYXRlUmFuZ2U+PjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgb3Igbm90IHRvIGRpc3BsYXkgdGhlIHBhZ2UgYnV0dG9ucyB3aGVuIGFwcGxpY2FibGUuIENhbiBvbmx5IGJlIGRpc3BsYXllZCB3aGVuIGEgbmF2aWdhdGlvblJhbmdlTGltaXQgaXMgc2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd1BhZ2VCdXR0b25zPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZpc2libGVEYXRlUmFuZ2VGb3JDYWxlbmRhclN0YXRlKGNhbGVuZGFyU3RhdGU6IENhbGVuZGFyU3RhdGUpOiBDYWxlbmRhclZpZXdEYXRlUmFuZ2Uge1xuICBjb25zdCB7IG5hdmlnYXRpb25SYW5nZUxpbWl0LCB0eXBlLCBkYXRlIH0gPSBjYWxlbmRhclN0YXRlO1xuICBsZXQgc3RhcnQ6IERhdGU7XG4gIGxldCBlbmQ6IERhdGU7XG4gIGxldCBkaXN0YW5jZTogbnVtYmVyO1xuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgQ2FsZW5kYXJEaXNwbGF5VHlwZS5NT05USDpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZkRheShzdGFydE9mV2VlayhzdGFydE9mTW9udGgoZGF0ZSksIHsgd2Vla1N0YXJ0c09uOiAwIH0pKTtcbiAgICAgIGVuZCA9IGVuZE9mV2VlayhlbmRPZk1vbnRoKGRhdGUpKTtcbiAgICAgIGRpc3RhbmNlID0gZGlmZmVyZW5jZUluRGF5cyhlbmQsIHN0YXJ0KSArIDE7XG4gICAgICBicmVhaztcbiAgICBjYXNlIENhbGVuZGFyRGlzcGxheVR5cGUuV0VFSzpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZldlZWsoZGF0ZSk7XG4gICAgICBlbmQgPSBlbmRPZldlZWsoc3RhcnQpO1xuICAgICAgZGlzdGFuY2UgPSA3OyAvLyA3IGRheXMgaW4gYSB3ZWVrLlxuICAgICAgYnJlYWs7XG4gICAgY2FzZSBDYWxlbmRhckRpc3BsYXlUeXBlLkRBWTpcbiAgICAgIHN0YXJ0ID0gc3RhcnRPZkRheShkYXRlKTtcbiAgICAgIGVuZCA9IGVuZE9mRGF5KGRhdGUpO1xuICAgICAgZGlzdGFuY2UgPSAxO1xuICAgICAgYnJlYWs7XG4gIH1cblxuICBjb25zdCBpc01pbkRhdGVWaXNpYmxlOiBib29sZWFuID0gbmF2aWdhdGlvblJhbmdlTGltaXQ/LnN0YXJ0ICE9IG51bGwgPyAhaXNBZnRlcihzdGFydCwgbmF2aWdhdGlvblJhbmdlTGltaXQuc3RhcnQpIDogZmFsc2U7XG4gIGNvbnN0IGlzTWF4RGF0ZVZpc2libGU6IGJvb2xlYW4gPSBuYXZpZ2F0aW9uUmFuZ2VMaW1pdD8uZW5kICE9IG51bGwgPyAhaXNCZWZvcmUoZW5kLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdC5lbmQpIDogZmFsc2U7XG5cbiAgLy8gVE9ETzogQ29uc2lkZXIgY2hhbmdpbmcgbWluL21heCBkYXRlIHZpc2libGUgbG9naWNhbCB1dGlsaXR5IHRvIGJlIGZ1bGx5IHdpdGhpbiB0aGUgY3VycmVudCBtb250aCBvciBub3QsXG4gIC8vIG5vdCBqdXN0IHZpc2libGUsIHNpbmNlIGl0IGNhbiBjaGFuZ2UgdG8gYSBsb2NrZWQgb3V0IGNhbGVuZGFyIGFuZCBkb2Vzbid0IGZlZWwgYXMgVUkgZnJpZW5kbHkuXG5cbiAgcmV0dXJuIHtcbiAgICB0eXBlLFxuICAgIHN0YXJ0LFxuICAgIGVuZCxcbiAgICBkaXN0YW5jZSxcbiAgICBpc01pbkRhdGVWaXNpYmxlLFxuICAgIGlzTWF4RGF0ZVZpc2libGVcbiAgfTtcbn1cblxuY29uc3QgZGlzdGluY3RVbnRpbERhdGVPclR5cGVPckV2ZW50c0NoYW5nZWQgPSBkaXN0aW5jdFVudGlsQ2hhbmdlZDxDYWxlbmRhclN0YXRlPigoYSwgYikgPT4gYT8uZGF0ZSA9PT0gYj8uZGF0ZSAmJiBhPy50eXBlID09PSBiPy50eXBlICYmIGE/LmV2ZW50cyA9PT0gYj8uZXZlbnRzKTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERieENhbGVuZGFyU3RvcmU8VCA9IGFueT4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxDYWxlbmRhclN0YXRlPFQ+PiB7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKHtcbiAgICAgIHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGUuTU9OVEgsXG4gICAgICBzaG93VG9kYXlCdXR0b246IHRydWUsXG4gICAgICBkYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgZGF0ZVRhcHBlZFR3aWNlOiBmYWxzZSxcbiAgICAgIGV2ZW50czogW11cbiAgICB9KTtcbiAgfVxuXG4gIC8vIE1BUks6IEVmZmVjdHNcbiAgcmVhZG9ubHkgdGFwRmlyc3RQYWdlID0gdGhpcy5lZmZlY3QoKGlucHV0OiBPYnNlcnZhYmxlPHZvaWQ+KSA9PiB7XG4gICAgcmV0dXJuIGlucHV0LnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT5cbiAgICAgICAgdGhpcy5taW5OYXZpZ2F0aW9uRGF0ZSQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeCkgPT4ge1xuICAgICAgICAgICAgaWYgKHgpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgKVxuICAgICk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHRhcE5leHQgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICB0YXAoKHsgZW5kLCBpc01heERhdGVWaXNpYmxlIH0pID0+IHtcbiAgICAgICAgICAgIGlmICghaXNNYXhEYXRlVmlzaWJsZSkge1xuICAgICAgICAgICAgICB0aGlzLnRhcERheShhZGREYXlzKGVuZCwgMSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICAgIClcbiAgICApO1xuICB9KTtcblxuICByZWFkb25seSB0YXBQcmV2aW91cyA9IHRoaXMuZWZmZWN0KChpbnB1dDogT2JzZXJ2YWJsZTx2b2lkPikgPT4ge1xuICAgIHJldHVybiBpbnB1dC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+XG4gICAgICAgIHRoaXMudmlzaWJsZURhdGVSYW5nZSQucGlwZShcbiAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgIHRhcCgoeyBzdGFydCwgaXNNaW5EYXRlVmlzaWJsZSB9KSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTWluRGF0ZVZpc2libGUpIHtcbiAgICAgICAgICAgICAgdGhpcy50YXBEYXkoYWRkRGF5cyhzdGFydCwgLTEpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgdGFwTGFzdFBhZ2UgPSB0aGlzLmVmZmVjdCgoaW5wdXQ6IE9ic2VydmFibGU8dm9pZD4pID0+IHtcbiAgICByZXR1cm4gaW5wdXQucGlwZShcbiAgICAgIHN3aXRjaE1hcCgoKSA9PlxuICAgICAgICB0aGlzLm1heE5hdmlnYXRpb25EYXRlJC5waXBlKFxuICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgdGFwKCh4KSA9PiB7XG4gICAgICAgICAgICBpZiAoeCkge1xuICAgICAgICAgICAgICB0aGlzLnRhcERheSh4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfSk7XG5cbiAgLy8gTUFSSzogQWNjZXNzb3JzXG5cbiAgcmVhZG9ubHkgc2hvd1RvZGF5QnV0dG9uJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnNob3dUb2RheUJ1dHRvbiksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRhdGUkID0gdGhpcy5zdGF0ZSQucGlwZShtYXAoKHgpID0+IHguZGF0ZSkpO1xuICByZWFkb25seSBkYXRlVGFwcGVkVHdpY2UkID0gdGhpcy5zdGF0ZSQucGlwZShtYXAoKHgpID0+IHguZGF0ZVRhcHBlZFR3aWNlKSk7XG5cbiAgcmVhZG9ubHkgZXZlbnRzJCA9IHRoaXMuc3RhdGUkLnBpcGUobWFwKCh4KSA9PiB4LmV2ZW50cykpO1xuXG4gIC8vIFRPRE86IEZpbHRlciB0byBiZSBldmVudHMgdGhhdCB3aWxsIG9ubHkgYmUgZGlzcGxheWVkIGJhc2VkIG9uIHRoZSBjdXJyZW50IGNhbGVuZGFyLlxuICByZWFkb25seSB2aXNpYmxlRXZlbnRzJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmV2ZW50cyksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBldmVudHNGb3JEYXRlU3RhdGUkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsRGF0ZU9yVHlwZU9yRXZlbnRzQ2hhbmdlZCxcbiAgICBtYXAoKHN0YXRlKSA9PiAoe1xuICAgICAgZGF0ZTogc3RhdGUuZGF0ZSxcbiAgICAgIGV2ZW50czogc3RhdGUuZXZlbnRzLmZpbHRlcigoeCkgPT4gaXNTYW1lRGF5KHguc3RhcnQsIHN0YXRlLmRhdGUpIHx8ICh4LmVuZCAmJiBpc0JlZm9yZSh4LnN0YXJ0LCBzdGF0ZS5kYXRlKSAmJiBpc0FmdGVyKHguZW5kLCBzdGF0ZS5kYXRlKSkpLFxuICAgICAgZGF0ZVRhcHBlZFR3aWNlOiBzdGF0ZS5kYXRlVGFwcGVkVHdpY2VcbiAgICB9KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBldmVudHNGb3JEYXRlJCA9IHRoaXMuZXZlbnRzRm9yRGF0ZVN0YXRlJC5waXBlKG1hcCgoc3RhdGUpID0+IHN0YXRlLmV2ZW50cykpO1xuXG4gIHJlYWRvbmx5IHZpc2libGVEYXRlUmFuZ2UkOiBPYnNlcnZhYmxlPENhbGVuZGFyVmlld0RhdGVSYW5nZT4gPSB0aGlzLnN0YXRlJC5waXBlKFxuICAgIC8vIElmIHRoZSBkYXRlIG9yIHR5cGUgY2hhbmdlcywgY2hlY2sgYWdhaW4uXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGE/LmRhdGUgPT09IGI/LmRhdGUgJiYgYT8udHlwZSA9PT0gYj8udHlwZSksXG4gICAgbWFwKHZpc2libGVEYXRlUmFuZ2VGb3JDYWxlbmRhclN0YXRlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgoYSwgYikgPT4ge1xuICAgICAgaWYgKGEudHlwZSA9PT0gYi50eXBlKSB7XG4gICAgICAgIHJldHVybiBpc1NhbWVEYXkoYS5zdGFydCwgYi5zdGFydCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7IC8vIFR5cGUgY2hhbmdlZCwgZGF0ZSByYW5nZSBjaGFuZ2VkLlxuICAgICAgfVxuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNMb29raW5nQXRUb2RheSQgPSB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBpc0RhdGVJbkRhdGVSYW5nZShuZXcgRGF0ZSgpLCB4KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzTG9va2luZ0F0TWluaW11bURhdGUkID0gdGhpcy52aXNpYmxlRGF0ZVJhbmdlJC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5pc01pbkRhdGVWaXNpYmxlKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgaXNMb29raW5nQXRNYXhpbXVtRGF0ZSQgPSB0aGlzLnZpc2libGVEYXRlUmFuZ2UkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LmlzTWF4RGF0ZVZpc2libGUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNNdWx0aXBsZVBhZ2VzJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNMb29raW5nQXRNaW5pbXVtRGF0ZSQsIHRoaXMuaXNMb29raW5nQXRNYXhpbXVtRGF0ZSRdKS5waXBlKG1hcChpbnZlcnREZWNpc2lvbihyZWR1Y2VCb29sZWFuc1dpdGhBbmRGbih0cnVlKSkpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgZGlzcGxheVR5cGUkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgudHlwZSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKGEsIGIpID0+IGEgPT09IGIpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgbmF2aWdhdGlvblJhbmdlTGltaXQkID0gdGhpcy5zdGF0ZSQucGlwZShcbiAgICBtYXAoKHgpID0+IHgubmF2aWdhdGlvblJhbmdlTGltaXQpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGlzU2FtZURhdGVSYW5nZSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBtaW5OYXZpZ2F0aW9uRGF0ZSQ6IE9ic2VydmFibGU8TWF5YmU8RGF0ZT4+ID0gdGhpcy5uYXZpZ2F0aW9uUmFuZ2VMaW1pdCQucGlwZShcbiAgICBtYXAoKHgpID0+IHg/LnN0YXJ0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc1NhbWVEYXRlRGF5KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IG1heE5hdmlnYXRpb25EYXRlJDogT2JzZXJ2YWJsZTxNYXliZTxEYXRlPj4gPSB0aGlzLm5hdmlnYXRpb25SYW5nZUxpbWl0JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geD8uZW5kKSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZChpc1NhbWVEYXRlRGF5KSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGlzVG9kYXlJbk5hdmlnYXRpb25SYW5nZUxpbWl0JCA9IHRoaXMubmF2aWdhdGlvblJhbmdlTGltaXQkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBpc0RhdGVJbkRhdGVSYW5nZShuZXcgRGF0ZSgpLCB4ID8/IHt9KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGNhbkp1bXBUb1RvZGF5JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuaXNMb29raW5nQXRUb2RheSQsIHRoaXMuaXNUb2RheUluTmF2aWdhdGlvblJhbmdlTGltaXQkXSkucGlwZShcbiAgICBtYXAoKFtpc0xvb2tpbmdBdFRvZGF5LCBpc1RvZGF5SW5OYXZpZ2F0aW9uUmFuZ2VMaW1pdF0pID0+ICFpc0xvb2tpbmdBdFRvZGF5ICYmIGlzVG9kYXlJbk5hdmlnYXRpb25SYW5nZUxpbWl0KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgY2FuU2hvd1BhZ2VCdXR0b25zJCA9IHRoaXMuc3RhdGUkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnNob3dQYWdlQnV0dG9ucyAmJiB4Lm5hdmlnYXRpb25SYW5nZUxpbWl0ICYmIGlzRnVsbERhdGVSYW5nZSh4Lm5hdmlnYXRpb25SYW5nZUxpbWl0KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNob3dQYWdlQnV0dG9ucyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmNhblNob3dQYWdlQnV0dG9ucyQsIHRoaXMuaXNMb29raW5nQXRNaW5pbXVtRGF0ZSQsIHRoaXMuaXNMb29raW5nQXRNYXhpbXVtRGF0ZSRdKS5waXBlKFxuICAgIG1hcCgoW2NhblNob3dQYWdlQnV0dG9ucywgaXNMb29raW5nQXRNaW5pbXVtRGF0ZSwgaXNMb29raW5nQXRNYXhpbXVtRGF0ZV0pID0+IHtcbiAgICAgIHJldHVybiBjYW5TaG93UGFnZUJ1dHRvbnMgJiYgIShpc0xvb2tpbmdBdE1pbmltdW1EYXRlICYmIGlzTG9va2luZ0F0TWF4aW11bURhdGUpO1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICAvLyBNQVJLOiBTdGF0ZSBDaGFuZ2VzXG4gIC8qKlxuICAgKiBUYXAgYSBkYXkuXG4gICAqXG4gICAqIC0gSWYgdGhlIHNhbWUgZGF5IGlzIHByZXNlbnRlZCwgZGF0ZVRhcHBlZFR3aWNlIGlzIGZsaXBwZWQuXG4gICAqL1xuICByZWFkb25seSB0YXBEYXkgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBkYXRlOiBEYXRlKSA9PiB1cGRhdGVDYWxlbmRhclN0YXRlV2l0aFRhcHBlZERhdGUoc3RhdGUsIGRhdGUpKTtcblxuICAvKipcbiAgICogU2V0IGFsbCBldmVudHMgb24gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgcmVhZG9ubHkgc2V0RXZlbnRzID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgZXZlbnRzOiBDYWxlbmRhckV2ZW50PFQ+W10pID0+ICh7IC4uLnN0YXRlLCBldmVudHMgfSkpO1xuXG4gIC8qKlxuICAgKiBTZXQgYWxsIGV2ZW50cyBvbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICByZWFkb25seSBzZXREaXNwbGF5VHlwZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHR5cGU6IENhbGVuZGFyRGlzcGxheVR5cGUpID0+ICh7IC4uLnN0YXRlLCB0eXBlIH0pKTtcblxuICAvKipcbiAgICogU2V0cyB0aGUgbmF2aWdhdGlvbiBsaW1pdC5cbiAgICovXG4gIHJlYWRvbmx5IHNldE5hdmlnYXRpb25SYW5nZUxpbWl0ID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQ6IE1heWJlPFBhcnRpYWw8RGF0ZVJhbmdlPj4pID0+IHVwZGF0ZUNhbGVuZGFyU3RhdGVXaXRoTmF2aWdhdGlvblJhbmdlTGltaXQoc3RhdGUsIG5hdmlnYXRpb25SYW5nZUxpbWl0KSk7XG5cbiAgcmVhZG9ubHkgc2V0U2hvd1RvZGF5QnV0dG9uID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgc2hvd1RvZGF5QnV0dG9uOiBNYXliZTxib29sZWFuPikgPT4gKHsgLi4uc3RhdGUsIHNob3dUb2RheUJ1dHRvbjogc2hvd1RvZGF5QnV0dG9uICE9IG51bGwgPyBzaG93VG9kYXlCdXR0b24gOiB0cnVlIH0pKTtcbiAgcmVhZG9ubHkgc2V0U2hvd1BhZ2VCdXR0b25zID0gdGhpcy51cGRhdGVyKChzdGF0ZSwgc2hvd1BhZ2VCdXR0b25zOiBNYXliZTxib29sZWFuPikgPT4gKHsgLi4uc3RhdGUsIHNob3dQYWdlQnV0dG9uczogc2hvd1BhZ2VCdXR0b25zICE9IG51bGwgPyBzaG93UGFnZUJ1dHRvbnMgOiBmYWxzZSB9KSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVDYWxlbmRhclN0YXRlV2l0aFRhcHBlZERhdGUoc3RhdGU6IENhbGVuZGFyU3RhdGUsIGRhdGU6IERhdGUpIHtcbiAgLy8gb25seSB1cGRhdGUgdGhlIGRhdGUgaWYgaXQgaXMgZGlmZmVyZW50XG4gIGlmICghaXNTYW1lRGF0ZURheShzdGF0ZS5kYXRlLCBkYXRlKSkge1xuICAgIC8vIE9ubHkgdXBkYXRlIHRoZSBkYXRlIGlmIGl0IGlzIHdpdGhpbiB0aGUgZGF0ZSByYW5nZVxuICAgIGlmICghc3RhdGUubmF2aWdhdGlvblJhbmdlTGltaXQgfHwgaXNEYXRlSW5EYXRlUmFuZ2UoZGF0ZSwgc3RhdGUubmF2aWdhdGlvblJhbmdlTGltaXQpKSB7XG4gICAgICBzdGF0ZSA9IHsgLi4uc3RhdGUsIGRhdGUsIGRhdGVUYXBwZWRUd2ljZTogaXNTYW1lRGF5KGRhdGUsIHN0YXRlLmRhdGUpID8gIXN0YXRlLmRhdGVUYXBwZWRUd2ljZSA6IGZhbHNlIH07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHN0YXRlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlQ2FsZW5kYXJTdGF0ZVdpdGhOYXZpZ2F0aW9uUmFuZ2VMaW1pdChzdGF0ZTogQ2FsZW5kYXJTdGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQ6IE1heWJlPFBhcnRpYWw8RGF0ZVJhbmdlPj4pIHtcbiAgY29uc3QgeyBkYXRlIH0gPSBzdGF0ZTtcblxuICAvLyBjYXAgdGhlIGRhdGUgaWYgaXQgZG9lc24ndCBmYWxsIHdpdGhpbiB0aGUgcmFuZ2UuXG4gIGlmIChuYXZpZ2F0aW9uUmFuZ2VMaW1pdCAmJiAhaXNEYXRlSW5EYXRlUmFuZ2UoZGF0ZSwgbmF2aWdhdGlvblJhbmdlTGltaXQpKSB7XG4gICAgY29uc3QgY2xhbXBlZERhdGUgPSBjbGFtcERhdGVUb0RhdGVSYW5nZShkYXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCk7XG4gICAgcmV0dXJuIHsgLi4uc3RhdGUsIGRhdGU6IGNsYW1wZWREYXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiB7IC4uLnN0YXRlLCBuYXZpZ2F0aW9uUmFuZ2VMaW1pdCB9O1xuICB9XG59XG4iXX0=
|
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
import { Directive,
|
|
2
|
-
import { MatDialog } from '@angular/material/dialog';
|
|
1
|
+
import { Directive, Input, inject } from '@angular/core';
|
|
3
2
|
import { AbstractPromptConfirmDirective } from '../interaction/prompt/prompt.confirm.directive';
|
|
4
3
|
import { SubscriptionObject } from '@dereekb/rxjs';
|
|
5
4
|
import { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@dereekb/dbx-core";
|
|
8
|
-
import * as i2 from "@angular/material/dialog";
|
|
9
6
|
/**
|
|
10
7
|
* Directive that when triggered shows a dialog to accept or reject.
|
|
11
8
|
*
|
|
@@ -13,11 +10,9 @@ import * as i2 from "@angular/material/dialog";
|
|
|
13
10
|
* For button usage, use an appPromptConfirmButton directive.
|
|
14
11
|
*/
|
|
15
12
|
export class DbxActionConfirmDirective extends AbstractPromptConfirmDirective {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this._sourceSubscription = new SubscriptionObject();
|
|
20
|
-
}
|
|
13
|
+
source = inject((DbxActionContextStoreSourceInstance), { host: true });
|
|
14
|
+
config;
|
|
15
|
+
_sourceSubscription = new SubscriptionObject();
|
|
21
16
|
ngOnInit() {
|
|
22
17
|
this._sourceSubscription.subscription = this.source.triggered$.subscribe(() => {
|
|
23
18
|
this.showDialog();
|
|
@@ -35,18 +30,16 @@ export class DbxActionConfirmDirective extends AbstractPromptConfirmDirective {
|
|
|
35
30
|
}
|
|
36
31
|
return result;
|
|
37
32
|
}
|
|
38
|
-
static
|
|
39
|
-
static
|
|
33
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionConfirmDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
34
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxActionConfirmDirective, selector: "[dbxActionConfirm]", inputs: { config: ["dbxActionConfirm", "config"] }, usesInheritance: true, ngImport: i0 });
|
|
40
35
|
}
|
|
41
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionConfirmDirective, decorators: [{
|
|
42
37
|
type: Directive,
|
|
43
38
|
args: [{
|
|
44
39
|
selector: '[dbxActionConfirm]'
|
|
45
40
|
}]
|
|
46
|
-
}],
|
|
47
|
-
type: Host
|
|
48
|
-
}] }, { type: i2.MatDialog }]; }, propDecorators: { config: [{
|
|
41
|
+
}], propDecorators: { config: [{
|
|
49
42
|
type: Input,
|
|
50
43
|
args: ['dbxActionConfirm']
|
|
51
44
|
}] } });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLmNvbmZpcm0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2FjdGlvbi9hY3Rpb24uY29uZmlybS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUVoRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBYXhFOzs7OztHQUtHO0FBSUgsTUFBTSxPQUFPLHlCQUFvRCxTQUFRLDhCQUE4QjtJQUM1RixNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsbUNBQXlDLENBQUEsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBRzNFLE1BQU0sQ0FBb0M7SUFFM0MsbUJBQW1CLEdBQUcsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO0lBRXZELFFBQVE7UUFDTixJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVrQixtQkFBbUIsQ0FBQyxNQUFlO1FBQ3BELElBQUksTUFBTSxFQUFFO1lBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUEwQixDQUFDLENBQUM7U0FDakU7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQy9CO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzt3R0ExQlUseUJBQXlCOzRGQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBSHJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7OEJBS1UsTUFBTTtzQkFEZCxLQUFLO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0UHJvbXB0Q29uZmlybURpcmVjdGl2ZSB9IGZyb20gJy4uL2ludGVyYWN0aW9uL3Byb21wdC9wcm9tcHQuY29uZmlybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4UHJvbXB0Q29uZmlybUNvbmZpZyB9IGZyb20gJy4uL2ludGVyYWN0aW9uL3Byb21wdC9wcm9tcHQuY29uZmlybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uT2JqZWN0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5cbi8qKlxuICogRGJ4QWN0aW9uQ29uZmlybURpcmVjdGl2ZSBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERieEFjdGlvbkNvbmZpcm1Db25maWc8VCA9IHVua25vd24+IGV4dGVuZHMgRGJ4UHJvbXB0Q29uZmlybUNvbmZpZyB7XG4gIC8qKlxuICAgKiBPcHRpb25hbGx5IHNldCB0aGUgcmVhZHlWYWx1ZSBwYXNzZWQgdG8gdGhlIGluc3RhbmNlLlxuICAgKi9cbiAgcmVhZHlWYWx1ZT86IFQ7XG59XG5cbi8qKlxuICogRGlyZWN0aXZlIHRoYXQgd2hlbiB0cmlnZ2VyZWQgc2hvd3MgYSBkaWFsb2cgdG8gYWNjZXB0IG9yIHJlamVjdC5cbiAqXG4gKiBUaGlzIG9ubHkgd29ya3MgdG8gcGFzcyBhIHJlYWR5IHZhbHVlIG9yIHJlamVjdCB0aHJvdWdoLCBub3QgdG8gd29yayB3aXRoIGEgYnV0dG9uLlxuICogRm9yIGJ1dHRvbiB1c2FnZSwgdXNlIGFuIGFwcFByb21wdENvbmZpcm1CdXR0b24gZGlyZWN0aXZlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uQ29uZmlybV0nXG59KVxuZXhwb3J0IGNsYXNzIERieEFjdGlvbkNvbmZpcm1EaXJlY3RpdmU8VCA9IHVua25vd24sIE8gPSB1bmtub3duPiBleHRlbmRzIEFic3RyYWN0UHJvbXB0Q29uZmlybURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgc291cmNlID0gaW5qZWN0KERieEFjdGlvbkNvbnRleHRTdG9yZVNvdXJjZUluc3RhbmNlPFQsIE8+LCB7IGhvc3Q6IHRydWUgfSk7XG5cbiAgQElucHV0KCdkYnhBY3Rpb25Db25maXJtJylcbiAgb3ZlcnJpZGUgY29uZmlnPzogTWF5YmU8RGJ4QWN0aW9uQ29uZmlybUNvbmZpZzxUPj47XG5cbiAgcHJpdmF0ZSBfc291cmNlU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbk9iamVjdCgpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX3NvdXJjZVN1YnNjcmlwdGlvbi5zdWJzY3JpcHRpb24gPSB0aGlzLnNvdXJjZS50cmlnZ2VyZWQkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLnNob3dEaWFsb2coKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3NvdXJjZVN1YnNjcmlwdGlvbi5kZXN0cm95KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgX2hhbmRsZURpYWxvZ1Jlc3VsdChyZXN1bHQ6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBpZiAocmVzdWx0KSB7XG4gICAgICB0aGlzLnNvdXJjZS5yZWFkeVZhbHVlKHRoaXMuY29uZmlnPy5yZWFkeVZhbHVlIGFzIHVua25vd24gYXMgVCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc291cmNlLnJlamVjdCh1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -11,9 +11,9 @@ import { DbxActionConfirmDirective } from './action.confirm.directive';
|
|
|
11
11
|
import { DbxPromptModule } from '../interaction/prompt/prompt.module';
|
|
12
12
|
import * as i0 from "@angular/core";
|
|
13
13
|
export class DbxActionModule {
|
|
14
|
-
static
|
|
15
|
-
static
|
|
16
|
-
static
|
|
14
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
15
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: DbxActionModule, declarations: [DbxActionKeyTriggerDirective, DbxActionConfirmDirective], imports: [CommonModule, DbxCoreActionModule, DbxButtonModule, MatSnackBarModule, MatDialogModule, MatButtonModule, DbxPromptModule], exports: [DbxCoreActionModule, DbxActionKeyTriggerDirective, DbxActionConfirmDirective] });
|
|
16
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionModule, imports: [CommonModule, DbxCoreActionModule, DbxButtonModule, MatSnackBarModule, MatDialogModule, MatButtonModule, DbxPromptModule, DbxCoreActionModule] });
|
|
17
17
|
}
|
|
18
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionModule, decorators: [{
|
|
19
19
|
type: NgModule,
|
|
@@ -23,4 +23,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
23
23
|
exports: [DbxCoreActionModule, DbxActionKeyTriggerDirective, DbxActionConfirmDirective]
|
|
24
24
|
}]
|
|
25
25
|
}] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC13ZWIvc3JjL2xpYi9hY3Rpb24vYWN0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCwwREFBMEQ7QUFDMUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdkUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDOztBQU90RSxNQUFNLE9BQU8sZUFBZTt3R0FBZixlQUFlO3lHQUFmLGVBQWUsaUJBSFgsNEJBQTRCLEVBQUUseUJBQXlCLGFBRDVELFlBQVksRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLGFBRXhILG1CQUFtQixFQUFFLDRCQUE0QixFQUFFLHlCQUF5Qjt5R0FFM0UsZUFBZSxZQUpoQixZQUFZLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUV4SCxtQkFBbUI7OzRGQUVsQixlQUFlO2tCQUwzQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxlQUFlLENBQUM7b0JBQ25JLFlBQVksRUFBRSxDQUFDLDRCQUE0QixFQUFFLHlCQUF5QixDQUFDO29CQUN2RSxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSw0QkFBNEIsRUFBRSx5QkFBeUIsQ0FBQztpQkFDeEYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgRGJ4QnV0dG9uTW9kdWxlIH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5tb2R1bGUnO1xuLy8gaW1wb3J0IHsgRGJ4RXJyb3JNb2R1bGUgfSBmcm9tICcuLi9lcnJvci9lcnJvci5tb2R1bGUnO1xuaW1wb3J0IHsgRGJ4QWN0aW9uS2V5VHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4va2V5LnRyaWdnZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IERieENvcmVBY3Rpb25Nb2R1bGUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBEYnhBY3Rpb25Db25maXJtRGlyZWN0aXZlIH0gZnJvbSAnLi9hY3Rpb24uY29uZmlybS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4UHJvbXB0TW9kdWxlIH0gZnJvbSAnLi4vaW50ZXJhY3Rpb24vcHJvbXB0L3Byb21wdC5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBEYnhDb3JlQWN0aW9uTW9kdWxlLCBEYnhCdXR0b25Nb2R1bGUsIE1hdFNuYWNrQmFyTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIE1hdEJ1dHRvbk1vZHVsZSwgRGJ4UHJvbXB0TW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbRGJ4QWN0aW9uS2V5VHJpZ2dlckRpcmVjdGl2ZSwgRGJ4QWN0aW9uQ29uZmlybURpcmVjdGl2ZV0sXG4gIGV4cG9ydHM6IFtEYnhDb3JlQWN0aW9uTW9kdWxlLCBEYnhBY3Rpb25LZXlUcmlnZ2VyRGlyZWN0aXZlLCBEYnhBY3Rpb25Db25maXJtRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhBY3Rpb25Nb2R1bGUge31cbiJdfQ==
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { Directive,
|
|
1
|
+
import { Directive, HostListener, Input, inject } from '@angular/core';
|
|
2
2
|
import { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "@dereekb/dbx-core";
|
|
5
4
|
const DEFAULT_ACTION_KEY_TRIGGER = 'enter';
|
|
6
5
|
/**
|
|
7
6
|
* Directive that triggers the action on a specific key up event.
|
|
@@ -9,9 +8,8 @@ const DEFAULT_ACTION_KEY_TRIGGER = 'enter';
|
|
|
9
8
|
* Events/Keys to respond to should be lowercase.
|
|
10
9
|
*/
|
|
11
10
|
export class DbxActionKeyTriggerDirective {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
11
|
+
source = inject((DbxActionContextStoreSourceInstance), { host: true });
|
|
12
|
+
inputKey;
|
|
15
13
|
get key() {
|
|
16
14
|
return this.inputKey || DEFAULT_ACTION_KEY_TRIGGER;
|
|
17
15
|
}
|
|
@@ -20,21 +18,19 @@ export class DbxActionKeyTriggerDirective {
|
|
|
20
18
|
this.source.trigger();
|
|
21
19
|
}
|
|
22
20
|
}
|
|
23
|
-
static
|
|
24
|
-
static
|
|
21
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionKeyTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
22
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: DbxActionKeyTriggerDirective, selector: "[dbxActionKeyTrigger]", inputs: { inputKey: ["dbxActionKeyTrigger", "inputKey"] }, host: { listeners: { "document:keyup": "onKeyupHandler($event)" } }, ngImport: i0 });
|
|
25
23
|
}
|
|
26
24
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DbxActionKeyTriggerDirective, decorators: [{
|
|
27
25
|
type: Directive,
|
|
28
26
|
args: [{
|
|
29
27
|
selector: '[dbxActionKeyTrigger]'
|
|
30
28
|
}]
|
|
31
|
-
}],
|
|
32
|
-
type: Host
|
|
33
|
-
}] }]; }, propDecorators: { inputKey: [{
|
|
29
|
+
}], propDecorators: { inputKey: [{
|
|
34
30
|
type: Input,
|
|
35
31
|
args: ['dbxActionKeyTrigger']
|
|
36
32
|
}], onKeyupHandler: [{
|
|
37
33
|
type: HostListener,
|
|
38
34
|
args: ['document:keyup', ['$event']]
|
|
39
35
|
}] } });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LnRyaWdnZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LXdlYi9zcmMvbGliL2FjdGlvbi9rZXkudHJpZ2dlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFeEUsTUFBTSwwQkFBMEIsR0FBRyxPQUFPLENBQUM7QUFFM0M7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyw0QkFBNEI7SUFDOUIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFBLG1DQUF5QyxDQUFBLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUdwRixRQUFRLENBQWdCO0lBRXhCLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLFFBQVEsSUFBSSwwQkFBMEIsQ0FBQztJQUNyRCxDQUFDO0lBR0QsY0FBYyxDQUFDLEtBQW9CO1FBQ2pDLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxLQUFLLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDckQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUN2QjtJQUNILENBQUM7d0dBZlUsNEJBQTRCOzRGQUE1Qiw0QkFBNEI7OzRGQUE1Qiw0QkFBNEI7a0JBSHhDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtpQkFDbEM7OEJBS0MsUUFBUTtzQkFEUCxLQUFLO3VCQUFDLHFCQUFxQjtnQkFRNUIsY0FBYztzQkFEYixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIElucHV0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBEYnhBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcblxuY29uc3QgREVGQVVMVF9BQ1RJT05fS0VZX1RSSUdHRVIgPSAnZW50ZXInO1xuXG4vKipcbiAqIERpcmVjdGl2ZSB0aGF0IHRyaWdnZXJzIHRoZSBhY3Rpb24gb24gYSBzcGVjaWZpYyBrZXkgdXAgZXZlbnQuXG4gKlxuICogRXZlbnRzL0tleXMgdG8gcmVzcG9uZCB0byBzaG91bGQgYmUgbG93ZXJjYXNlLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4QWN0aW9uS2V5VHJpZ2dlcl0nXG59KVxuZXhwb3J0IGNsYXNzIERieEFjdGlvbktleVRyaWdnZXJEaXJlY3RpdmU8VCA9IHVua25vd24sIE8gPSB1bmtub3duPiB7XG4gIHJlYWRvbmx5IHNvdXJjZSA9IGluamVjdChEYnhBY3Rpb25Db250ZXh0U3RvcmVTb3VyY2VJbnN0YW5jZTxULCBPPiwgeyBob3N0OiB0cnVlIH0pO1xuXG4gIEBJbnB1dCgnZGJ4QWN0aW9uS2V5VHJpZ2dlcicpXG4gIGlucHV0S2V5OiBNYXliZTxzdHJpbmc+O1xuXG4gIGdldCBrZXkoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5pbnB1dEtleSB8fCBERUZBVUxUX0FDVElPTl9LRVlfVFJJR0dFUjtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwJywgWyckZXZlbnQnXSlcbiAgb25LZXl1cEhhbmRsZXIoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQua2V5ICYmIGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSB0aGlzLmtleSkge1xuICAgICAgdGhpcy5zb3VyY2UudHJpZ2dlcigpO1xuICAgIH1cbiAgfVxufVxuIl19
|