@dereekb/dbx-web 11.0.21 → 11.1.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/package.json +1 -1
- package/esm2022/lib/action/action.confirm.directive.mjs +1 -1
- package/esm2022/lib/action/key.trigger.directive.mjs +1 -1
- package/esm2022/lib/action/snackbar/action.snackbar.component.mjs +1 -1
- package/esm2022/lib/action/snackbar/action.snackbar.directive.mjs +1 -1
- package/esm2022/lib/action/snackbar/action.snackbar.mjs +1 -1
- package/esm2022/lib/button/button.component.mjs +1 -1
- package/esm2022/lib/button/progress/base.progress.button.directive.mjs +1 -1
- package/esm2022/lib/button/progress/button.progress.config.mjs +1 -1
- package/esm2022/lib/error/error.snackbar.service.mjs +1 -1
- package/esm2022/lib/error/error.view.component.mjs +1 -1
- package/esm2022/lib/error/error.widget.service.mjs +3 -3
- package/esm2022/lib/extension/download/text/download.text.component.mjs +1 -1
- package/esm2022/lib/extension/model/model.tracker.view.storage.mjs +1 -1
- package/esm2022/lib/extension/widget/widget.component.mjs +43 -10
- package/esm2022/lib/extension/widget/widget.mjs +1 -1
- package/esm2022/lib/extension/widget/widget.service.mjs +3 -3
- package/esm2022/lib/interaction/dialog/dialog.action.directive.mjs +1 -1
- package/esm2022/lib/interaction/dialog/dialog.content.footer.component.mjs +1 -1
- package/esm2022/lib/interaction/filter/filter.menu.mjs +1 -1
- package/esm2022/lib/interaction/filter/filter.popover.button.component.mjs +1 -1
- package/esm2022/lib/interaction/filter/filter.popover.component.mjs +1 -1
- package/esm2022/lib/interaction/popover/popover.action.directive.mjs +1 -1
- package/esm2022/lib/interaction/popover/popover.mjs +1 -1
- package/esm2022/lib/interaction/popup/popup.mjs +1 -1
- package/esm2022/lib/interaction/prompt/prompt.component.mjs +1 -1
- package/esm2022/lib/interaction/prompt/prompt.confirm.component.mjs +1 -1
- package/esm2022/lib/interaction/prompt/prompt.confirm.dialog.component.mjs +1 -1
- package/esm2022/lib/interaction/prompt/prompt.confirm.directive.mjs +1 -1
- package/esm2022/lib/interaction/prompt/prompt.confirm.mjs +1 -1
- package/esm2022/lib/keypress/keydown.listener.directive.mjs +1 -1
- package/esm2022/lib/layout/bar/bar.directive.mjs +1 -1
- package/esm2022/lib/layout/bar/bar.header.component.mjs +1 -1
- package/esm2022/lib/layout/bar/pagebar.component.mjs +1 -1
- package/esm2022/lib/layout/column/two/two.column.context.directive.mjs +1 -1
- package/esm2022/lib/layout/column/two/two.column.full.left.directive.mjs +1 -1
- package/esm2022/lib/layout/column/two/two.column.right.component.mjs +1 -1
- package/esm2022/lib/layout/column/two/two.column.sref.directive.mjs +1 -1
- package/esm2022/lib/layout/column/two/two.column.store.mjs +1 -1
- package/esm2022/lib/layout/compact/compact.mjs +1 -1
- package/esm2022/lib/layout/compact/compact.store.mjs +2 -1
- package/esm2022/lib/layout/content/content.pit.directive.mjs +1 -1
- package/esm2022/lib/layout/flex/flex.group.directive.mjs +1 -1
- package/esm2022/lib/layout/item/item.icon.component.mjs +1 -1
- package/esm2022/lib/layout/list/list.directive.mjs +1 -1
- package/esm2022/lib/layout/list/list.view.directive.mjs +1 -1
- package/esm2022/lib/layout/list/list.view.meta.icon.component.mjs +1 -1
- package/esm2022/lib/layout/list/list.view.mjs +1 -1
- package/esm2022/lib/layout/list/list.view.value.mjs +1 -1
- package/esm2022/lib/layout/list/list.view.value.selection.component.mjs +1 -1
- package/esm2022/lib/layout/list/list.wrapper.mjs +1 -1
- package/esm2022/lib/layout/section/section.header.component.mjs +1 -1
- package/esm2022/lib/layout/section/section.mjs +1 -1
- package/esm2022/lib/layout/style/style.color.directive.mjs +1 -1
- package/esm2022/lib/layout/style/style.mjs +1 -1
- package/esm2022/lib/layout/style/style.service.mjs +1 -1
- package/esm2022/lib/layout/style/style.set.directive.mjs +1 -1
- package/esm2022/lib/layout/text/detail.block.component.mjs +1 -1
- package/esm2022/lib/layout/text/detail.block.header.component.mjs +1 -1
- package/esm2022/lib/layout/text/label.block.component.mjs +1 -1
- package/esm2022/lib/layout/text/linkify.component.mjs +1 -1
- package/esm2022/lib/layout/text/text.chip.directive.mjs +1 -1
- package/esm2022/lib/layout/text/text.chips.component.mjs +1 -1
- package/esm2022/lib/loading/basic-loading.component.mjs +1 -1
- package/esm2022/lib/loading/loading-progress.component.mjs +1 -1
- package/esm2022/lib/loading/loading.component.mjs +1 -1
- package/esm2022/lib/router/layout/anchor/anchor.component.mjs +1 -1
- package/esm2022/lib/router/layout/anchor/anchor.content.component.mjs +1 -1
- package/esm2022/lib/router/layout/anchor/anchor.icon.component.mjs +1 -1
- package/esm2022/lib/router/layout/anchor/anchor.link.component.mjs +1 -1
- package/esm2022/lib/router/layout/anchorlist/anchorlist.component.mjs +1 -1
- package/esm2022/lib/router/layout/navbar/navbar.component.mjs +1 -1
- package/esm2022/lib/router/layout/sidenav/sidenav.button.component.mjs +1 -1
- package/esm2022/lib/router/layout/sidenav/sidenav.component.mjs +1 -1
- package/esm2022/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.mjs +3 -3
- package/esm2022/lib/router/layout/sidenav/sidenav.page.component.mjs +1 -1
- package/esm2022/lib/router/layout/sidenav/sidenav.pagebar.component.mjs +1 -1
- package/esm2022/mapbox/lib/mapbox.layout.component.mjs +1 -1
- package/esm2022/mapbox/lib/mapbox.marker.component.mjs +1 -1
- package/esm2022/mapbox/lib/mapbox.markers.component.mjs +1 -1
- package/esm2022/mapbox/lib/mapbox.rxjs.mjs +1 -1
- package/esm2022/mapbox/lib/mapbox.store.mjs +1 -1
- package/esm2022/table/lib/date/date.table.column.header.component.mjs +1 -1
- package/esm2022/table/lib/date/daterange.table.cell.input.component.mjs +1 -1
- package/esm2022/table/lib/table.column.directive.mjs +1 -1
- package/esm2022/table/lib/table.directive.mjs +1 -1
- package/esm2022/table/lib/table.item.cell.component.mjs +1 -1
- package/esm2022/table/lib/table.item.directive.mjs +1 -1
- package/esm2022/table/lib/table.mjs +1 -1
- package/esm2022/table/lib/table.store.mjs +1 -1
- package/fesm2022/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
- package/fesm2022/dereekb-dbx-web.mjs +44 -10
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/lib/action/action.confirm.directive.d.ts +1 -1
- package/lib/action/key.trigger.directive.d.ts +1 -1
- package/lib/action/snackbar/action.snackbar.component.d.ts +1 -1
- package/lib/action/snackbar/action.snackbar.d.ts +1 -1
- package/lib/action/snackbar/action.snackbar.directive.d.ts +1 -1
- package/lib/button/button.component.d.ts +1 -1
- package/lib/button/progress/base.progress.button.directive.d.ts +1 -1
- package/lib/button/progress/button.progress.config.d.ts +1 -1
- package/lib/error/error.snackbar.service.d.ts +1 -1
- package/lib/error/error.view.component.d.ts +1 -1
- package/lib/extension/download/text/download.text.component.d.ts +1 -1
- package/lib/extension/model/model.tracker.view.storage.d.ts +1 -1
- package/lib/extension/widget/widget.component.d.ts +6 -5
- package/lib/extension/widget/widget.d.ts +7 -1
- package/lib/interaction/dialog/dialog.action.directive.d.ts +1 -1
- package/lib/interaction/dialog/dialog.content.footer.component.d.ts +1 -1
- package/lib/interaction/filter/filter.menu.d.ts +1 -1
- package/lib/interaction/filter/filter.popover.button.component.d.ts +1 -1
- package/lib/interaction/filter/filter.popover.component.d.ts +1 -1
- package/lib/interaction/popover/popover.action.directive.d.ts +1 -1
- package/lib/interaction/popover/popover.d.ts +1 -1
- package/lib/interaction/popup/popup.d.ts +1 -1
- package/lib/interaction/prompt/prompt.component.d.ts +1 -1
- package/lib/interaction/prompt/prompt.confirm.component.d.ts +1 -1
- package/lib/interaction/prompt/prompt.confirm.d.ts +1 -1
- package/lib/interaction/prompt/prompt.confirm.dialog.component.d.ts +1 -1
- package/lib/interaction/prompt/prompt.confirm.directive.d.ts +1 -1
- package/lib/layout/bar/bar.directive.d.ts +1 -1
- package/lib/layout/bar/bar.header.component.d.ts +1 -1
- package/lib/layout/bar/pagebar.component.d.ts +1 -1
- package/lib/layout/column/two/two.column.context.directive.d.ts +1 -1
- package/lib/layout/column/two/two.column.full.left.directive.d.ts +1 -1
- package/lib/layout/column/two/two.column.right.component.d.ts +1 -1
- package/lib/layout/column/two/two.column.sref.directive.d.ts +1 -1
- package/lib/layout/column/two/two.column.store.d.ts +1 -1
- package/lib/layout/compact/compact.d.ts +1 -1
- package/lib/layout/content/content.pit.directive.d.ts +1 -1
- package/lib/layout/flex/flex.group.directive.d.ts +1 -1
- package/lib/layout/item/item.icon.component.d.ts +1 -1
- package/lib/layout/list/_list.scss +6 -0
- package/lib/layout/list/list.directive.d.ts +1 -1
- package/lib/layout/list/list.view.d.ts +1 -1
- package/lib/layout/list/list.view.directive.d.ts +1 -1
- package/lib/layout/list/list.view.meta.icon.component.d.ts +1 -1
- package/lib/layout/list/list.view.value.d.ts +1 -1
- package/lib/layout/list/list.view.value.selection.component.d.ts +1 -1
- package/lib/layout/list/list.wrapper.d.ts +1 -1
- package/lib/layout/section/section.d.ts +1 -1
- package/lib/layout/section/section.header.component.d.ts +1 -1
- package/lib/layout/style/style.color.directive.d.ts +1 -1
- package/lib/layout/style/style.d.ts +1 -1
- package/lib/layout/style/style.service.d.ts +1 -1
- package/lib/layout/style/style.set.directive.d.ts +1 -1
- package/lib/layout/text/detail.block.component.d.ts +1 -1
- package/lib/layout/text/detail.block.header.component.d.ts +1 -1
- package/lib/layout/text/label.block.component.d.ts +1 -1
- package/lib/layout/text/linkify.component.d.ts +1 -1
- package/lib/layout/text/text.chip.directive.d.ts +1 -1
- package/lib/layout/text/text.chips.component.d.ts +1 -1
- package/lib/loading/basic-loading.component.d.ts +1 -1
- package/lib/loading/loading-progress.component.d.ts +1 -1
- package/lib/loading/loading.component.d.ts +1 -1
- package/lib/router/layout/anchor/anchor.component.d.ts +1 -1
- package/lib/router/layout/anchor/anchor.content.component.d.ts +1 -1
- package/lib/router/layout/anchor/anchor.icon.component.d.ts +1 -1
- package/lib/router/layout/anchor/anchor.link.component.d.ts +1 -1
- package/lib/router/layout/anchorlist/anchorlist.component.d.ts +1 -1
- package/lib/router/layout/navbar/navbar.component.d.ts +1 -1
- package/lib/router/layout/sidenav/sidenav.button.component.d.ts +1 -1
- package/lib/router/layout/sidenav/sidenav.component.d.ts +1 -1
- package/lib/router/layout/sidenav/sidenav.page.component.d.ts +1 -1
- package/lib/router/layout/sidenav/sidenav.pagebar.component.d.ts +1 -1
- package/mapbox/esm2022/lib/mapbox.layout.component.mjs +1 -1
- package/mapbox/esm2022/lib/mapbox.marker.component.mjs +1 -1
- package/mapbox/esm2022/lib/mapbox.markers.component.mjs +1 -1
- package/mapbox/esm2022/lib/mapbox.rxjs.mjs +1 -1
- package/mapbox/esm2022/lib/mapbox.store.mjs +1 -1
- package/mapbox/fesm2022/dereekb-dbx-web-mapbox.mjs.map +1 -1
- package/mapbox/lib/mapbox.layout.component.d.ts +1 -1
- package/mapbox/lib/mapbox.marker.component.d.ts +1 -1
- package/mapbox/lib/mapbox.markers.component.d.ts +1 -1
- package/mapbox/lib/mapbox.rxjs.d.ts +1 -1
- package/mapbox/lib/mapbox.store.d.ts +16 -16
- package/mapbox/package.json +1 -1
- package/package.json +1 -1
- package/table/esm2022/lib/date/date.table.column.header.component.mjs +1 -1
- package/table/esm2022/lib/date/daterange.table.cell.input.component.mjs +1 -1
- package/table/esm2022/lib/table.column.directive.mjs +1 -1
- package/table/esm2022/lib/table.directive.mjs +1 -1
- package/table/esm2022/lib/table.item.cell.component.mjs +1 -1
- package/table/esm2022/lib/table.item.directive.mjs +1 -1
- package/table/esm2022/lib/table.mjs +1 -1
- package/table/esm2022/lib/table.store.mjs +1 -1
- package/table/fesm2022/dereekb-dbx-web-table.mjs.map +1 -1
- package/table/lib/date/date.table.column.header.component.d.ts +1 -1
- package/table/lib/date/daterange.table.cell.input.component.d.ts +1 -1
- package/table/lib/table.column.directive.d.ts +1 -1
- package/table/lib/table.d.ts +1 -1
- package/table/lib/table.directive.d.ts +1 -1
- package/table/lib/table.item.cell.component.d.ts +1 -1
- package/table/lib/table.item.directive.d.ts +1 -1
- package/table/lib/table.store.d.ts +1 -1
- package/table/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dereekb-dbx-web.mjs","sources":["../../../../packages/dbx-web/src/lib/layout/style/spacer.directive.ts","../../../../packages/dbx-web/src/lib/button/progress/button.progress.config.ts","../../../../packages/dbx-web/src/lib/button/progress/base.progress.button.directive.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.html","../../../../packages/dbx-web/src/lib/button/button.component.ts","../../../../packages/dbx-web/src/lib/button/button.spacer.component.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.html","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.default.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.generator.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.service.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.directive.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.component.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.module.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.html","../../../../packages/dbx-web/src/lib/button/progress/button.progress.module.ts","../../../../packages/dbx-web/src/lib/button/button.module.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/abstract.dialog.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.close.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.footer.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.ts","../../../../packages/dbx-web/src/lib/layout/style/style.service.ts","../../../../packages/dbx-web/src/lib/layout/style/style.set.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.body.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.ts","../../../../packages/dbx-web/src/lib/layout/style/style.color.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.position.strategy.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.store.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.directive.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.ts","../../../../packages/dbx-web/src/lib/keypress/keydown.listener.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.header.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.scroll.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.html","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.ref.directive.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.directive.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.component.ts","../../../../packages/dbx-web/src/lib/keypress/keypress.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.controls.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.close.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.directive.ts","../../../../packages/dbx-web/src/lib/router/provider/router.provider.config.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.component.html","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.list.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.icon.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.link.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.content.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.module.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.menu.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.html","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.segue.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/router.list.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/list.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.ts","../../../../packages/dbx-web/src/lib/screen/screen.service.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.html","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.component.html","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.html","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.button.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.pagebar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.page.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.directive.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.header.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/content/content.elevate.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.border.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.container.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.box.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.page.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.pit.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.layout.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/index.ts","../../../../packages/dbx-web/src/lib/router/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/angular.router.module.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/uirouter/uirouter.router.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.list.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.module.ts","../../../../packages/dbx-web/src/lib/layout/block/two.block.component.ts","../../../../packages/dbx-web/src/lib/layout/block/block.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.component.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.container.component.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.store.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.back.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.component.html","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.context.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.full.left.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.head.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.html","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.showright.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/column.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.prompt.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.group.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.size.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/item/item.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/item/item.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.content.empty.component.ts","../../../../packages/dbx-web/src/lib/error/error.widget.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/label.block.component.ts","../../../../packages/dbx-web/src/lib/error/default.error.widget.component.ts","../../../../packages/dbx-web/src/lib/error/error.widget.service.ts","../../../../packages/dbx-web/src/lib/error/error.widget.component.ts","../../../../packages/dbx-web/src/lib/error/error.details.component.ts","../../../../packages/dbx-web/src/lib/error/error.popover.component.ts","../../../../packages/dbx-web/src/lib/error/error.view.component.ts","../../../../packages/dbx-web/src/lib/error/error.view.component.html","../../../../packages/dbx-web/src/lib/error/error.component.ts","../../../../packages/dbx-web/src/lib/loading/loading-progress.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.html","../../../../packages/dbx-web/src/lib/loading/loading.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.html","../../../../packages/dbx-web/src/lib/layout/list/list.directive.ts","../../../../packages/dbx-web/src/lib/error/error.action.directive.ts","../../../../packages/dbx-web/src/lib/error/error.api.ts","../../../../packages/dbx-web/src/lib/error/error.loading.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/address.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.header.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.component.ts","../../../../packages/dbx-web/src/lib/layout/text/icon.spacer.component.ts","../../../../packages/dbx-web/src/lib/layout/text/linkify.component.ts","../../../../packages/dbx-web/src/lib/layout/text/text.chip.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/text.chips.component.ts","../../../../packages/dbx-web/src/lib/layout/text/text.module.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.component.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.component.html","../../../../packages/dbx-web/src/lib/error/error.snackbar.service.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.action.directive.ts","../../../../packages/dbx-web/src/lib/error/error.module.ts","../../../../packages/dbx-web/src/lib/error/state.ts","../../../../packages/dbx-web/src/lib/loading/loading.action.directive.ts","../../../../packages/dbx-web/src/lib/loading/loading.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.group.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.selection.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ripple.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.grid.view.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.group.title.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.meta.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.track.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.grid.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.item.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.wrapper.ts","../../../../packages/dbx-web/src/lib/layout/section/section.header.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.intro.component.ts","../../../../packages/dbx-web/src/lib/layout/section/subsection.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.page.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/step/step.component.ts","../../../../packages/dbx-web/src/lib/layout/step/step.component.html","../../../../packages/dbx-web/src/lib/layout/step/step.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/form.description.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/hint.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/label.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/note.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/notice.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/ok.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/success.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/warn.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/text.compat.module.ts","../../../../packages/dbx-web/src/lib/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.position.strategy.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/abstract.popup.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.buttons.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.service.ts","../../../../packages/dbx-web/src/lib/action/key.trigger.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.component.html","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.dialog.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.directive.ts","../../../../packages/dbx-web/src/lib/action/action.confirm.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.box.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.page.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.button.confirm.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.module.ts","../../../../packages/dbx-web/src/lib/action/action.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.module.ts","../../../../packages/dbx-web/src/lib/interaction/interaction.module.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.module.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.dialog.component.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.directive.ts","../../../../packages/dbx-web/src/lib/action/transition/action.transition.module.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/model.actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/model.module.config.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/index.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.view.storage.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.service.ts","../../../../packages/dbx-web/src/lib/extension/model/state/effects/tracker.effects.ts","../../../../packages/dbx-web/src/lib/extension/model/model.module.ts","../../../../packages/dbx-web/src/lib/extension/model/model.state.service.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.ts","../../../../packages/dbx-web/src/lib/extension/model/model.types.service.ts","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.component.ts","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.component.html","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.module.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.structure.directive.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.body.directive.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.module.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.service.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.directive.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.list.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.module.ts","../../../../packages/dbx-web/src/lib/extension/index.ts","../../../../packages/dbx-web/src/lib/util/cdk.ts","../../../../packages/dbx-web/src/lib/dbx-web.module.ts","../../../../packages/dbx-web/src/dereekb-dbx-web.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'dbx-spacer, [dbxSpacer]',\n host: {\n class: 'dbx-spacer'\n }\n})\nexport class DbxSpacerDirective {}\n","import { InjectionToken } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { Maybe } from '@dereekb/util';\nimport { DbxThemeColor } from '../../layout/style/style';\n\nexport interface DbxProgressButtonOptions {\n working?: boolean;\n text?: string;\n spinnerText?: string;\n buttonColor?: ThemePalette | DbxThemeColor;\n spinnerColor?: ThemePalette | DbxThemeColor;\n barColor?: ThemePalette | DbxThemeColor;\n raised?: boolean;\n stroked?: boolean;\n flat?: boolean;\n fab?: boolean;\n /**\n * Whether or not to render as an icon button.\n */\n iconOnly?: boolean;\n spinnerSize?: number;\n spinnerRatio?: number;\n mode?: ProgressSpinnerMode;\n value?: number;\n fullWidth?: boolean;\n disabled?: boolean;\n type?: string;\n customStyle?: { [key: string]: string };\n customClass?: string;\n /**\n * Custom spinner color. Overrides the normal spinner color if provided.\n */\n customSpinnerColor?: Maybe<string>;\n buttonIcon?: DbxProgressButtonIcon;\n id?: string;\n}\n\nexport interface DbxProgressButtonIcon {\n color?: ThemePalette | DbxThemeColor;\n fontIcon?: string;\n fontSet?: string;\n inline?: boolean;\n svgIcon?: string;\n customClass?: string;\n}\n\nexport interface DbxProgressButtonTargetedConfig extends DbxProgressButtonOptions {\n id?: string;\n}\n\nexport type DbxProgressButtonGlobalConfig = DbxProgressButtonTargetedConfig[];\n\nexport const DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG = new InjectionToken<DbxProgressButtonGlobalConfig>('DbxMatProgressButtonGlobalConfig');\n","import { ChangeDetectorRef, OnDestroy, OnInit, Directive, Input, Output, HostListener, EventEmitter, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { CssClass, Maybe } from '@dereekb/util';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Observable, shareReplay, map, BehaviorSubject, combineLatest, first, distinctUntilChanged } from 'rxjs';\nimport { DbxProgressButtonGlobalConfig, DbxProgressButtonOptions, DbxProgressButtonTargetedConfig, DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG } from './button.progress.config';\n\n@Directive()\nexport abstract class AbstractProgressButtonDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n readonly cdRef = inject(ChangeDetectorRef);\n private readonly globalConfig = inject<DbxProgressButtonGlobalConfig>(DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG, { optional: true }) ?? [];\n\n private _computedOptions: Maybe<DbxProgressButtonOptions> = undefined;\n\n private readonly _working = new BehaviorSubject<boolean>(false);\n private readonly _disabled = new BehaviorSubject<boolean>(false);\n\n private readonly _buttonId = new BehaviorSubject<Maybe<string>>(undefined);\n private readonly _options = new BehaviorSubject<Maybe<DbxProgressButtonOptions>>(undefined);\n\n readonly globalOptions$: Observable<Maybe<DbxProgressButtonOptions>> = this._buttonId.pipe(map((buttonId: Maybe<string>) => (buttonId ? this.globalConfig.find((config: DbxProgressButtonTargetedConfig) => config.id === buttonId) : undefined)));\n\n readonly options$: Observable<DbxProgressButtonOptions> = combineLatest([this._options, this.globalOptions$, this._working, this._disabled]).pipe(\n map(([options, globalConfig, working, disabled]) => {\n let completeOptions: Maybe<DbxProgressButtonOptions>;\n\n if (options || globalConfig) {\n completeOptions = {\n ...globalConfig,\n ...options,\n working: options?.working || working,\n disabled: options?.disabled || disabled\n };\n }\n\n return completeOptions;\n }),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly baseCssClasses$: Observable<[DbxProgressButtonOptions, CssClass[]]> = this.options$.pipe(\n map((x) => {\n const classes: CssClass[] = [x.customClass ?? ''];\n\n if (x.fullWidth) {\n classes.push('fullWidth');\n }\n\n if (x.disabled) {\n classes.push('disabled');\n }\n\n if (x.raised) {\n classes.push('mat-mdc-raised-button mdc-button--raised');\n }\n\n if (x.stroked) {\n classes.push('mat-mdc-outlined-button mdc-button--outlined');\n }\n\n if (x.flat) {\n classes.push('mat-mdc-unelevated-button mdc-button--unelevated');\n }\n\n return [x, classes] as [DbxProgressButtonOptions, CssClass[]];\n }),\n shareReplay(1)\n );\n\n @Output()\n readonly btnClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n ngOnInit(): void {\n this.sub = this.options$.subscribe((options) => {\n this._computedOptions = options;\n safeMarkForCheck(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._working.complete();\n this._disabled.complete();\n this._buttonId.complete();\n this._options.complete();\n }\n\n @HostListener('click', ['$event'])\n public handleClick(event: MouseEvent): void {\n this.options$.pipe(first()).subscribe((options) => {\n if (!options.disabled && !options.working) {\n this.btnClick.emit(event);\n event.stopImmediatePropagation();\n }\n });\n }\n\n get customSpinnerStyle() {\n const customSpinnerColor = (this._computedOptions as DbxProgressButtonOptions).customSpinnerColor;\n return customSpinnerColor ? { stroke: customSpinnerColor } : undefined;\n }\n\n @Input()\n get options(): DbxProgressButtonOptions {\n return this._computedOptions as DbxProgressButtonOptions;\n }\n\n set options(options: DbxProgressButtonOptions) {\n this._options.next(options);\n }\n\n @Input()\n set buttonId(buttonId: string) {\n this._buttonId.next(buttonId);\n }\n\n @Input()\n set working(working: boolean) {\n this._working.next(working);\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled.next(disabled);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewChild } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './base.progress.button.directive';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { spaceSeparatedCssClasses } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-spinner-button',\n templateUrl: './spinner.button.component.html',\n styleUrls: ['./spinner.button.component.scss', './shared.button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSpinnerButtonComponent extends AbstractProgressButtonDirective {\n @ViewChild('button', { static: true, read: ElementRef })\n readonly buttonRef!: ElementRef<HTMLElement>;\n\n readonly buttonCss$ = this.baseCssClasses$.pipe(\n map((x) => {\n const options = x[0];\n const classes = [...x[1]];\n\n if (options.iconOnly) {\n classes.push('mat-mdc-icon-button');\n }\n\n if (options.fab) {\n classes.push('mat-fab');\n }\n\n return spaceSeparatedCssClasses(classes);\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n get showText() {\n return !(this.options.fab || this.options.iconOnly);\n }\n\n calcSpinnerSize() {\n const options = this.options;\n const elem = this.buttonRef?.nativeElement;\n const height = elem.clientHeight;\n\n let size;\n\n if (options) {\n if (options.fab || options.iconOnly) {\n size = height;\n } else {\n size = options.spinnerSize;\n }\n }\n\n if (!size) {\n const minimumSpinnerSize = 18;\n const spinnerRatio = options.spinnerRatio ?? 0.33;\n const targetSpinnerSize = height * Math.min(1, spinnerRatio);\n size = Math.min(height, Math.max(minimumSpinnerSize, targetSpinnerSize));\n }\n\n return size;\n }\n}\n","<button class=\"dbx-base-button dbx-spinner-button\" #button mat-button [type]=\"options.type\" [color]=\"options.buttonColor\" [ngClass]=\"buttonCss$ | async\" [ngStyle]=\"options.customStyle!\" [disabled]=\"options.working || options.disabled\">\n <ng-container *ngIf=\"showText\">\n <ng-container *ngIf=\"options.buttonIcon\">\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!options.buttonIcon.fontSet\" [class.working]=\"options.working && !options.disabled\" [ngClass]=\"options.buttonIcon.customClass!\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <span class=\"button-text\" [class.working]=\"options.working && !options.disabled\">\n {{ options.text }}\n <ng-content></ng-content>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!showText && options.buttonIcon\">\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\" [inline]=\"options.fab && options.buttonIcon.inline!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <mat-spinner class=\"spinner\" *ngIf=\"options.working && !options.disabled\" [diameter]=\"calcSpinnerSize()\" [color]=\"options.spinnerColor!\" [mode]=\"options.mode!\" [value]=\"options.value!\" [ngStyle]=\"customSpinnerStyle!\" [ngClass]=\"{ 'dbx-spinner-custom': customSpinnerStyle! }\" [class.working]=\"options.working && !options.disabled\"></mat-spinner>\n</button>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { provideDbxButton, AbstractDbxButtonDirective } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxProgressButtonOptions } from './progress/button.progress.config';\nimport { DbxThemeColor } from '../layout/style/style';\n\nexport type DbxButtonType = 'basic' | 'raised' | 'stroked' | 'flat' | 'icon';\n\n/**\n * @deprecated use DbxButtonType instead.\n */\nexport enum DbxButtonDisplayType {\n RAISED = 'raised',\n STROKED = 'stroked',\n FLAT = 'flag',\n ICON_ONLY = 'icon'\n}\n\n/**\n * Complex button that supports loading states.\n */\n@Component({\n selector: 'dbx-button',\n template: `\n <dbx-spinner-button (btnClick)=\"clickButton()\" [options]=\"btnOptions\">\n <ng-content></ng-content>\n </dbx-spinner-button>\n `,\n providers: provideDbxButton(DbxButtonComponent),\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxButtonComponent extends AbstractDbxButtonDirective {\n @Input()\n type?: DbxButtonType;\n\n @Input()\n get basic(): boolean {\n return !this.type || this.type === 'basic';\n }\n\n set basic(basic: boolean) {\n if (basic) {\n this.type = 'basic';\n }\n }\n\n @Input()\n get raised(): boolean {\n return this.type === 'raised';\n }\n\n set raised(raised: boolean) {\n if (raised) {\n this.type = 'raised';\n }\n }\n\n @Input()\n get stroked(): boolean {\n return this.type === 'stroked';\n }\n\n set stroked(stroked: boolean) {\n if (stroked) {\n this.type = 'stroked';\n }\n }\n\n @Input()\n get flat(): boolean {\n return this.type === 'flat';\n }\n\n set flat(flat: boolean) {\n if (flat) {\n this.type = 'flat';\n }\n }\n\n @Input()\n get iconOnly(): boolean {\n return this.type === 'icon';\n }\n\n set iconOnly(iconOnly: boolean) {\n if (iconOnly) {\n this.type = 'icon';\n }\n }\n\n @Input()\n public color: ThemePalette | DbxThemeColor = undefined;\n\n @Input()\n public spinnerColor: ThemePalette | DbxThemeColor = undefined;\n\n @Input()\n public customButtonColor: Maybe<string>;\n\n @Input()\n public customTextColor: Maybe<string>;\n\n @Input()\n public customSpinnerColor: Maybe<string>;\n\n public get btnOptions(): DbxProgressButtonOptions {\n const buttonIcon = this.icon\n ? {\n fontIcon: this.icon\n }\n : undefined;\n\n const customStyle = {} as {\n [key: string]: string;\n };\n\n if (this.customButtonColor) {\n customStyle['background'] = this.customButtonColor;\n }\n\n if (this.customTextColor) {\n customStyle['color'] = this.customTextColor;\n }\n\n const customSpinnerColor: Maybe<string> = this.customSpinnerColor ?? this.customTextColor;\n const disabled = !this.working && this.disabled; // Only disabled if we're not working, in order to show the animation.\n\n const isIconOnlyButton = buttonIcon && !this.text;\n\n return {\n fab: false,\n working: this.working,\n buttonIcon,\n customStyle,\n customClass: 'dbx-button ' + (isIconOnlyButton ? 'dbx-button-no-text' : ''),\n text: this.text ?? '',\n buttonColor: this.color,\n barColor: 'accent',\n raised: this.raised,\n stroked: this.stroked,\n flat: this.flat,\n iconOnly: this.iconOnly,\n mode: 'indeterminate',\n spinnerColor: this.spinnerColor ?? this.color,\n customSpinnerColor,\n disabled\n };\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Button spacer directive.\n */\n@Directive({\n selector: 'dbx-button-spacer,[dbxButtonSpacer]',\n host: {\n class: 'dbx-button-spacer d-inline'\n }\n})\nexport class DbxButtonSpacerDirective {}\n","import { OnInit, Component, OnDestroy, AfterViewInit, inject } from '@angular/core';\nimport { filterMaybe, LoadingStateType } from '@dereekb/rxjs';\nimport { distinctUntilChanged, Observable, shareReplay, BehaviorSubject, switchMap, startWith, Subject, of, filter, map } from 'rxjs';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { MS_IN_SECOND, Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarActionConfig } from './action.snackbar';\nimport { DbxActionContextSourceReference, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\n\n/**\n * Component for a snackbar that contains an action.\n */\n@Component({\n templateUrl: './action.snackbar.component.html'\n})\nexport class DbxActionSnackbarComponent extends AbstractSubscriptionDirective implements OnInit, AfterViewInit, OnDestroy {\n readonly snackbarRef = inject(MatSnackBarRef<DbxActionSnackbarComponent>);\n readonly data = inject<DbxActionSnackbarDisplayConfig>(MAT_SNACK_BAR_DATA);\n\n private readonly _durationTimeout = new Subject<void>();\n private readonly _actionRef = new BehaviorSubject<Maybe<DbxActionContextSourceReference>>(this.data.action?.reference);\n\n readonly value$ = of(0); // value passed to the action.\n readonly sourceInstance$ = this._actionRef.pipe(\n filterMaybe(),\n map((x) => x?.sourceInstance)\n );\n readonly complete$ = this.sourceInstance$.pipe(\n switchMap((x) => x.isSuccess$),\n startWith(false),\n shareReplay(1)\n );\n readonly loadingStateType$ = this.sourceInstance$.pipe(\n switchMap((x) => x.loadingStateType$),\n startWith(LoadingStateType.IDLE),\n shareReplay(1)\n );\n readonly snackbarStatusClass$: Observable<string> = this.loadingStateType$.pipe(\n map((x) => {\n let classes = 'dbx-action-snackbar-';\n\n switch (x) {\n case LoadingStateType.ERROR:\n classes += 'error';\n break;\n case LoadingStateType.SUCCESS:\n classes += 'success';\n break;\n default:\n classes += 'idle';\n break;\n }\n\n return classes;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly button: Maybe<string> = this.data.action?.button ?? this.data.button;\n\n get action() {\n return this.data.action;\n }\n\n get hasAction(): boolean {\n return Boolean(this._actionRef.value);\n }\n\n get message(): Maybe<string> {\n return this.data.message;\n }\n\n get actionConfig(): Maybe<DbxActionSnackbarActionConfig> {\n return this.data.action;\n }\n\n ngOnInit(): void {\n // Subscribe and close if the duration is up and the action state is idle.\n this.sub = this._durationTimeout\n .pipe(\n switchMap(() => this.loadingStateType$),\n filter((x) => x === LoadingStateType.IDLE)\n )\n .subscribe(() => {\n this.dismiss();\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._actionRef.value?.destroy();\n this._actionRef.complete();\n this._durationTimeout.complete();\n }\n\n ngAfterViewInit(): void {\n // Responsible for hiding itself if it has an action.\n if (this.hasAction) {\n setTimeout(() => {\n this._durationTimeout.next();\n }, this.action?.duration ?? MS_IN_SECOND * 10);\n }\n }\n\n dismissAfterActionCompletes = (): void => {\n this.snackbarRef._dismissAfter(MS_IN_SECOND * 3);\n };\n\n dismiss = (): void => {\n this.snackbarRef.dismiss();\n };\n}\n","<div class=\"dbx-action-snackbar\" [ngClass]=\"(snackbarStatusClass$ | async)!\">\n <ng-container [ngSwitch]=\"complete$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <dbx-spacer></dbx-spacer>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n <ng-container *ngIf=\"hasAction\">\n <dbx-action [dbxActionValueStream]=\"value$\" [dbxActionSource]=\"sourceInstance$ | async\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n </ng-container>\n </ng-container>\n</div>\n","import { DbxActionSnackbarEventMakeConfig } from './action.snackbar.service';\n\nexport const DBX_ACTION_SNACKBAR_DEFAULTS: DbxActionSnackbarEventMakeConfig = {\n create: {\n loading: {\n message: 'Creating...'\n },\n success: {\n button: 'Ok',\n message: 'Created'\n },\n error: {\n button: 'X',\n message: 'Create Failed'\n }\n },\n save: {\n loading: {\n message: 'Saving...'\n },\n success: {\n button: 'Ok',\n message: 'Saved'\n },\n error: {\n button: 'X',\n message: 'Save Failed'\n }\n },\n merge: {\n loading: {\n message: 'Merging...'\n },\n success: {\n button: 'Ok',\n message: 'Merged'\n },\n error: {\n button: 'X',\n message: 'Merge Failed'\n }\n },\n delete: {\n loading: {\n message: 'Deleting...'\n },\n success: {\n button: 'Ok',\n message: 'Deleted'\n },\n error: {\n button: 'X',\n message: 'Delete Failed'\n }\n },\n cancel: {\n loading: {\n message: 'Cancelling...'\n },\n success: {\n button: 'Ok',\n message: 'Canceled'\n },\n error: {\n button: 'X',\n message: 'Cancel Failed'\n }\n },\n restore: {\n loading: {\n message: 'Restoring...'\n },\n success: {\n button: 'Ok',\n message: 'Restored'\n },\n error: {\n button: 'X',\n message: 'Restore Failed'\n }\n },\n refresh: {\n loading: {\n message: 'Refreshing...'\n },\n success: {\n button: 'Ok',\n message: 'Refreshed'\n },\n error: {\n button: 'X',\n message: 'Refresh Failed'\n }\n },\n do: {\n loading: {\n message: 'Doing...'\n },\n success: {\n button: 'Ok',\n message: 'Done'\n },\n error: {\n button: 'X',\n message: 'Failed'\n }\n }\n};\n","import { DbxActionContextSourceReference } from '@dereekb/dbx-core';\nimport { Milliseconds, Maybe, GetterOrValue, getValueFromGetter, Getter } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent } from './action.snackbar';\n\nexport interface DbxActionSnackbarGeneratorInput<T = unknown, O = unknown> {\n event: DbxActionSnackbarEvent<O>;\n undo?: Maybe<DbxActionSnackbarGeneratorUndoInput<T, O>>;\n}\n\nexport type DbxActionSnackbarGeneratorUndoInput<T = unknown, O = unknown> = Getter<DbxActionContextSourceReference<T, O>> | DbxActionSnackbarGeneratorUndoInputConfig<T, O>;\n\nexport interface DbxActionSnackbarGeneratorUndoInputConfig<T = unknown, O = unknown> {\n duration?: Milliseconds;\n getUndoAction: Getter<DbxActionContextSourceReference<T, O>>;\n}\n\nexport type DbxActionSnackbarDisplayConfigGeneratorFunction = <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\nexport interface DbxMakeActionSnackbarGeneratorConfiguration {\n idle?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n loading?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n success?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n error?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n}\n\nexport interface DbxMakeActionSnackbarGeneratorEventConfiguration extends Omit<DbxActionSnackbarDisplayConfig, 'action'> {\n /**\n * Sets the undo action text. If undefined, will default to 'undo'\n */\n undoButtonText?: string;\n}\n\n/**\n * Creates a DbxActionSnackbarDisplayConfigGeneratorFunction from the input config.\n *\n * @param config\n * @returns\n */\nexport function makeDbxActionSnackbarDisplayConfigGeneratorFunction(config: DbxMakeActionSnackbarGeneratorConfiguration): DbxActionSnackbarDisplayConfigGeneratorFunction {\n return <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => {\n const { event, undo: undoInput } = input;\n const type = event.type;\n const eventConfigGetterOrValue = config[type];\n const eventConfig = eventConfigGetterOrValue && getValueFromGetter(eventConfigGetterOrValue);\n\n let result: Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\n if (eventConfig) {\n const { undoButtonText } = eventConfig;\n result = {\n button: eventConfig.button,\n message: eventConfig.message,\n snackbar: eventConfig.snackbar\n };\n\n if (undoInput) {\n let reference: DbxActionContextSourceReference<T, O>;\n\n if (typeof undoInput === 'object') {\n reference = undoInput.getUndoAction();\n } else {\n reference = getValueFromGetter(undoInput);\n }\n\n if (!reference) {\n console.error('Expected action source reference was not provided to undo...');\n } else {\n result.action = {\n button: undoButtonText ?? 'Undo',\n reference\n };\n }\n }\n }\n\n return result;\n };\n}\n","import { DbxActionSnackbarComponent } from './action.snackbar.component';\nimport { DBX_ACTION_SNACKBAR_DEFAULTS } from './action.snackbar.default';\nimport { Injectable, InjectionToken, Type, inject } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { Milliseconds, Maybe, mergeObjects, MS_IN_SECOND } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarGeneratorInput, DbxMakeActionSnackbarGeneratorConfiguration, makeDbxActionSnackbarDisplayConfigGeneratorFunction } from './action.snackbar.generator';\n\nexport const DBX_ACTION_SNACKBAR_SERVICE_CONFIG = new InjectionToken('DbxActionSnackbarServiceConfig');\n\nexport const DEFAULT_SNACKBAR_DIRECTIVE_DURATION = MS_IN_SECOND * 4;\n\nexport interface DbxActionSnackbarEventMakeConfig {\n [key: string]: DbxMakeActionSnackbarGeneratorConfiguration;\n}\n\nexport interface DbxActionSnackbarServiceConfig<C = unknown> {\n readonly componentClass: Type<C>;\n readonly snackbar?: Pick<MatSnackBarConfig, 'horizontalPosition' | 'verticalPosition'>;\n readonly defaultDuration?: Milliseconds;\n readonly defaultUndoDuration?: Milliseconds;\n readonly eventTypeConfigs: DbxActionSnackbarEventMakeConfig;\n}\n\n/**\n * Used for managing/configuring the snackbar default values and pushing snackbar events.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxActionSnackbarService<C = DbxActionSnackbarComponent> {\n readonly matSnackBar = inject(MatSnackBar);\n\n readonly config: DbxActionSnackbarServiceConfig<C> = ((inputConfig) => {\n return {\n ...inputConfig,\n componentClass: inputConfig.componentClass ?? (DbxActionSnackbarComponent as unknown as Type<C>),\n defaultDuration: inputConfig.defaultDuration || DEFAULT_SNACKBAR_DIRECTIVE_DURATION,\n eventTypeConfigs: mergeObjects([DBX_ACTION_SNACKBAR_DEFAULTS, inputConfig.eventTypeConfigs]) as DbxActionSnackbarEventMakeConfig\n };\n })(inject<Partial<DbxActionSnackbarServiceConfig<C>>>(DBX_ACTION_SNACKBAR_SERVICE_CONFIG, { optional: true }) ?? {});\n\n get componentClass(): Type<C> {\n return this.config.componentClass;\n }\n\n get eventTypeConfigs(): DbxActionSnackbarEventMakeConfig {\n return this.config.eventTypeConfigs;\n }\n\n /**\n * Opens a new snackbar given the input configuration.\n *\n * @param config\n * @returns\n */\n openSnackbar<T = unknown, O = unknown>(config: DbxActionSnackbarDisplayConfig<T, O>): MatSnackBarRef<C> {\n const { snackbar: inputSnackbarConfig } = config;\n const { snackbar: defaultSnackbarConfig, defaultDuration } = this.config;\n\n const matSnackbarConfig: MatSnackBarConfig = {\n ...defaultSnackbarConfig,\n ...inputSnackbarConfig,\n data: config\n };\n\n const duration = config.action?.duration ?? matSnackbarConfig.duration ?? defaultDuration ?? DEFAULT_SNACKBAR_DIRECTIVE_DURATION;\n\n if (config.action) {\n // Set the duration on the action\n config.action = {\n ...config.action,\n duration\n };\n } else {\n // The snackbar does not close here. The duration is passed to the component and it will close it.\n matSnackbarConfig.duration = duration;\n }\n\n return this.matSnackBar.openFromComponent(this.componentClass, matSnackbarConfig);\n }\n\n generateDisplayConfig<T = unknown, O = unknown>(type: Maybe<DbxActionSnackbarType>, input: DbxActionSnackbarGeneratorInput<T, O>): Maybe<DbxActionSnackbarDisplayConfig<T, O>> {\n const configForType = this.eventTypeConfigs[type ?? 'none'];\n let result: Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\n if (configForType) {\n result = makeDbxActionSnackbarDisplayConfigGeneratorFunction(configForType)(input);\n }\n\n return result;\n }\n}\n","import { Directive, Input, OnInit, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarService } from './action.snackbar.service';\nimport { DbxActionSnackbarDisplayConfigGeneratorFunction, DbxActionSnackbarGeneratorInput, DbxActionSnackbarGeneratorUndoInput } from './action.snackbar.generator';\nimport { LoadingState, LoadingStateType, loadingStateType } from '@dereekb/rxjs';\n\n/**\n * Action directive that displays a snackbar when the action context hits a certain state.\n */\n@Directive({\n selector: '[dbxActionSnackbar]'\n})\nexport class DbxActionSnackbarDirective<T = unknown, O = unknown> extends AbstractSubscriptionDirective implements OnInit {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n readonly dbxActionSnackbarService = inject(DbxActionSnackbarService);\n\n private _snackbarFunction?: Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction>;\n\n @Input('dbxActionSnackbar')\n get snackbarFunction(): Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction> {\n return this._snackbarFunction;\n }\n\n set snackbarFunction(snackbarFunction: Maybe<'' | DbxActionSnackbarDisplayConfigGeneratorFunction>) {\n if (snackbarFunction) {\n this._snackbarFunction = snackbarFunction;\n }\n }\n\n @Input()\n dbxActionSnackbarDefault?: Maybe<DbxActionSnackbarType>;\n\n @Input()\n dbxActionSnackbarUndo?: DbxActionSnackbarGeneratorUndoInput<T, O>;\n\n ngOnInit(): void {\n this.sub = this.source\n .pipeStore((store) => store.loadingState$)\n .subscribe((loadingState: LoadingState<O>) => {\n const event: DbxActionSnackbarEvent<O> = { value: loadingState.value, error: loadingState.error, type: loadingStateType(loadingState) };\n\n const config = this.buildConfigurationForEvent(event);\n\n if (config) {\n this.showSnackbarForConfiguration(config, event);\n }\n });\n }\n\n protected buildConfigurationForEvent(event: DbxActionSnackbarEvent<O>): Maybe<DbxActionSnackbarDisplayConfig<T, O>> {\n const input: DbxActionSnackbarGeneratorInput<T, O> = {\n event,\n undo: event.type === LoadingStateType.SUCCESS ? this.dbxActionSnackbarUndo : undefined // only show undo on success.\n };\n\n return this.snackbarFunction ? this.snackbarFunction(input) : this.dbxActionSnackbarService.generateDisplayConfig(this.dbxActionSnackbarDefault, input);\n }\n\n protected showSnackbarForConfiguration(config: DbxActionSnackbarDisplayConfig<T, O>, event: DbxActionSnackbarEvent<O>) {\n this.dbxActionSnackbarService.openSnackbar(config);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractDbxButtonDirective, provideDbxButton } from '@dereekb/dbx-core';\n\n/**\n * Simple dbx-button that displays a button with an icon.\n */\n@Component({\n selector: 'dbx-icon-button',\n template: `\n <ng-container [ngSwitch]=\"buttonDisplayType\">\n <button *ngSwitchCase=\"'text_button'\" mat-button [disabled]=\"disabled\" (click)=\"clickButton()\">\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span>{{ text }}</span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchCase=\"'icon_button'\" mat-icon-button [disabled]=\"disabled\" (click)=\"clickButton()\">\n <mat-icon>{{ icon }}</mat-icon>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n </ng-container>\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: provideDbxButton(DbxIconButtonComponent),\n host: {\n class: 'dbx-icon-button'\n }\n})\nexport class DbxIconButtonComponent extends AbstractDbxButtonDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxIconButtonComponent } from './icon.button.component';\n\n@NgModule({\n imports: [\n //\n CommonModule,\n MatButtonModule,\n MatIconModule\n ],\n exports: [DbxIconButtonComponent],\n declarations: [DbxIconButtonComponent]\n})\nexport class DbxIconButtonModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './base.progress.button.directive';\nimport { map, shareReplay } from 'rxjs';\nimport { spaceSeparatedCssClasses } from '@dereekb/util';\nimport { distinctUntilItemsHaveDifferentValues } from '@dereekb/rxjs';\n\n@Component({\n selector: 'dbx-bar-button',\n templateUrl: './bar.button.component.html',\n styleUrls: ['./bar.button.component.scss', './shared.button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxBarButtonComponent extends AbstractProgressButtonDirective {\n readonly buttonCss$ = this.baseCssClasses$.pipe(\n distinctUntilItemsHaveDifferentValues((x) => x[1]),\n map((x) => spaceSeparatedCssClasses(x[1])),\n shareReplay(1)\n );\n}\n","<button class=\"dbx-base-button dbx-bar-button\" mat-button [type]=\"options.type\" [color]=\"options.buttonColor\" [ngClass]=\"buttonCss$ | async\" [ngStyle]=\"options.customStyle!\" [disabled]=\"options.working || options.disabled\">\n <ng-container *ngIf=\"options.buttonIcon\">\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!options.buttonIcon.fontSet\" [ngClass]=\"options.buttonIcon.customClass!\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\" [inline]=\"options.buttonIcon.inline!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <span>\n {{ options.text }}\n <ng-content></ng-content>\n </span>\n\n <mat-progress-bar class=\"bar\" *ngIf=\"options.working && !options.disabled\" [color]=\"options.barColor!\" [mode]=\"options.mode!\" [value]=\"options.value!\"></mat-progress-bar>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG, DbxProgressButtonGlobalConfig } from './button.progress.config';\nimport { DbxBarButtonComponent } from './bar.button.component';\nimport { DbxSpinnerButtonComponent } from './spinner.button.component';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatProgressBarModule, MatProgressSpinnerModule, MatRippleModule, MatIconModule],\n exports: [DbxSpinnerButtonComponent, DbxBarButtonComponent],\n declarations: [DbxSpinnerButtonComponent, DbxBarButtonComponent]\n})\nexport class DbxProgressButtonsModule {\n static forRoot(config?: DbxProgressButtonGlobalConfig): ModuleWithProviders<DbxProgressButtonsModule> {\n return {\n ngModule: DbxProgressButtonsModule,\n providers: [\n {\n provide: DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxButtonComponent } from './button.component';\nimport { DbxButtonSpacerDirective } from './button.spacer.component';\nimport { CommonModule } from '@angular/common';\nimport { DbxCoreButtonModule } from '@dereekb/dbx-core';\nimport { DbxProgressButtonsModule } from './progress/button.progress.module';\nimport { DbxIconButtonModule } from './icon/icon.button.module';\n\n@NgModule({\n imports: [CommonModule, DbxProgressButtonsModule],\n declarations: [DbxButtonComponent, DbxButtonSpacerDirective],\n exports: [DbxCoreButtonModule, DbxProgressButtonsModule, DbxIconButtonModule, DbxButtonComponent, DbxButtonSpacerDirective]\n})\nexport class DbxButtonModule {}\n","import { Directive, inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { AbstractTransitionWatcherDirective } from '@dereekb/dbx-core';\n\n/**\n * Abstract dialog component that closes when a transition is successful.\n */\n@Directive()\nexport abstract class AbstractDialogDirective<R = unknown, D = unknown, T = unknown> extends AbstractTransitionWatcherDirective {\n readonly data: D = inject(MAT_DIALOG_DATA, { optional: true });\n readonly dialogRef = inject(MatDialogRef<T, R>);\n\n protected updateForSuccessfulTransition(): void {\n this.close();\n }\n\n returnValue(value?: R) {\n this.close(value);\n }\n\n close(value?: R) {\n this.dialogRef.close(value);\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\n\n/**\n * Component used to show a close button at the top of a dialog, floating in a corner.\n */\n@Component({\n selector: 'dbx-dialog-content-close',\n template: `\n <button class=\"dbx-dialog-content-close-button\" mat-icon-button (click)=\"closeClicked()\"><mat-icon>close</mat-icon></button>\n `,\n host: {\n class: 'dbx-dialog-content-close',\n '[class.dbx-dialog-content-close-padding]': 'padded'\n }\n})\nexport class DbxDialogContentCloseComponent implements OnDestroy {\n @Input()\n padded = true;\n\n @Output()\n readonly close = new EventEmitter<void>();\n\n closeClicked() {\n this.close.emit(undefined);\n }\n\n ngOnDestroy(): void {\n this.close.complete();\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxDialogContentFooterConfig {\n buttonColor?: ThemePalette;\n closeText?: string;\n}\n\n/**\n * Component used to show a close button at the bottom of a dialog.\n */\n@Component({\n selector: 'dbx-dialog-content-footer',\n template: `\n <button mat-raised-button [color]=\"buttonColor\" (click)=\"closeClicked()\">{{ closeText }}</button>\n `,\n host: {\n class: 'dbx-dialog-content-footer'\n }\n})\nexport class DbxDialogContentFooterComponent implements OnDestroy {\n @Input()\n closeText = 'Close';\n\n @Input()\n buttonColor: ThemePalette = undefined;\n\n @Output()\n readonly close = new EventEmitter<void>();\n\n @Input()\n set config(config: Maybe<DbxDialogContentFooterConfig>) {\n this.closeText = config?.closeText ?? 'Close';\n this.buttonColor = config?.buttonColor ?? undefined;\n }\n\n closeClicked() {\n this.close.emit(undefined);\n }\n\n ngOnDestroy(): void {\n this.close.complete();\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nexport type DbxDialogContentContainerWidth = 'normal' | 'wide';\n\n/**\n * Component used to style a dialog.\n */\n@Directive({\n selector: 'dbx-dialog-content,[dbxDialogContent].dbx-dialog-content',\n host: {\n class: 'dbx-dialog-content',\n '[class]': `width + '-dialog-content'`\n }\n})\nexport class DbxDialogContentDirective {\n @Input()\n width = 'normal';\n}\n","import { first, Observable } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, Input, ElementRef, inject } from '@angular/core';\nimport { AbstractDbxActionValueOnTriggerDirective } from '@dereekb/dbx-core';\nimport { IsModifiedFunction } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nexport type DbxActionDialogFunction<T = unknown> = () => MatDialogRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a dialog, then watches that dialog for a value.\n */\n@Directive({\n exportAs: 'dbxActionDialog',\n selector: '[dbxActionDialog]'\n})\nexport class DbxActionDialogDirective<T = unknown> extends AbstractDbxActionValueOnTriggerDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n @Input('dbxActionDialog')\n fn?: DbxActionDialogFunction<T>;\n\n @Input()\n set dbxActionDialogModified(isModifiedFunction: Maybe<IsModifiedFunction>) {\n this.isModifiedFunction = isModifiedFunction;\n }\n\n constructor() {\n super();\n this.valueGetter = () => this._getDataFromDialog();\n }\n\n protected _getDataFromDialog(): Observable<Maybe<T>> {\n return this._makeDialogRef().afterClosed().pipe(first());\n }\n\n protected _makeDialogRef(): MatDialogRef<unknown, Maybe<T>> {\n if (!this.fn) {\n throw new Error('dbxActionDialog has no dialog function provided to it.');\n }\n\n return this.fn();\n }\n}\n","import { MatDialogConfig } from '@angular/material/dialog';\nimport { Maybe, cssClassesSet } from '@dereekb/util';\n\nexport type DbxDialogContentConfig = Omit<MatDialogConfig, 'viewContainerRef' | 'injector' | 'id' | 'data'>;\n\nexport function sanitizeDbxDialogContentConfig(input: Maybe<DbxDialogContentConfig>): DbxDialogContentConfig {\n const panelClass = input?.panelClass;\n\n return {\n ...input,\n panelClass: panelClass ? Array.from(cssClassesSet(input?.panelClass)) : undefined\n };\n}\n","import { Destroyable, Maybe } from '@dereekb/util';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, map, switchMap, shareReplay } from 'rxjs';\nimport { Injectable, InjectionToken, inject } from '@angular/core';\n\nexport const DBX_STYLE_DEFAULT_CONFIG_TOKEN = new InjectionToken('DbxStyleServiceDefaultConfig');\n\nexport interface DbxStyleConfig {\n /**\n * Root style name.\n */\n style: string;\n /**\n * Suffixes available to this configuration.\n */\n suffixes?: Set<string>;\n}\n\n/**\n * Used for managing styles within an app.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxStyleService implements Destroyable {\n private readonly _defaultConfig = new BehaviorSubject<Maybe<DbxStyleConfig>>(inject<DbxStyleConfig>(DBX_STYLE_DEFAULT_CONFIG_TOKEN));\n private readonly _config = new BehaviorSubject<Maybe<Observable<DbxStyleConfig>>>(undefined);\n private readonly _suffix = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly config$ = this._config.pipe(\n switchMap((x) => {\n if (x == null) {\n return this._defaultConfig;\n } else {\n return x;\n }\n }),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly suffix$ = this._suffix.pipe(distinctUntilChanged(), shareReplay(1));\n readonly style$ = this.getStyleWithConfig(this.config$);\n\n get suffix(): Maybe<string> {\n return this._suffix.value;\n }\n\n set suffix(suffix: Maybe<string>) {\n this._suffix.next(suffix);\n }\n\n getStyleWithConfig(configObs: Observable<DbxStyleConfig>): Observable<string> {\n return combineLatest([configObs, this.suffix$]).pipe(\n map(([config, suffix]) => {\n let style = config.style;\n\n if (suffix != null && config.suffixes) {\n const sanitizedSuffix = suffix[0] === '-' ? suffix?.slice(1) : suffix;\n\n if (config.suffixes.has(sanitizedSuffix)) {\n style = `${style}-${sanitizedSuffix}`;\n }\n }\n\n return style;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n toggleDarkSuffix(dark?: Maybe<boolean>) {\n const toggle: boolean = dark != null ? dark : this.suffix !== '-dark';\n\n if (toggle) {\n this.suffix = '-dark';\n } else {\n this.suffix = undefined;\n }\n }\n\n setDefaultConfig(defaultConfig: DbxStyleConfig) {\n this._defaultConfig.next(defaultConfig);\n }\n\n setConfig(config: Observable<DbxStyleConfig>) {\n this._config.next(config);\n }\n\n destroy(): void {\n this._defaultConfig.complete();\n this._config.complete();\n this._suffix.complete();\n }\n}\n","import { splitCommaSeparatedStringToSet, Maybe } from '@dereekb/util';\nimport { Observable, distinctUntilChanged, map, shareReplay, BehaviorSubject, delay, combineLatest } from 'rxjs';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, Input, OnDestroy, ChangeDetectorRef, OnInit, inject } from '@angular/core';\nimport { DbxStyleConfig, DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\n\n/**\n * Used to denote which app style to use for all children below this.\n *\n * Will update the parent DbxStyleService.\n */\n@Directive({\n selector: '[dbxSetStyle]',\n host: {\n class: 'dbx-style-root',\n '[class]': 'outputStyle'\n }\n})\nexport class DbxSetStyleDirective extends AbstractSubscriptionDirective implements OnDestroy, OnInit {\n private readonly _suffixes = new BehaviorSubject<Maybe<string>>(undefined);\n private readonly _style = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly styleService = inject(DbxStyleService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n readonly style$ = this._style.pipe(filterMaybe());\n readonly suffixes$ = this._suffixes.pipe(distinctUntilChanged(), map(splitCommaSeparatedStringToSet));\n\n readonly config$: Observable<DbxStyleConfig> = combineLatest([this.style$, this.suffixes$]).pipe(\n map(([style, suffixes]) => ({ style, suffixes })),\n shareReplay(1)\n );\n\n readonly outputStyle$ = this.styleService.getStyleWithConfig(this.config$);\n\n outputStyle = '';\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.styleService.setConfig(this.config$);\n this.sub = this.outputStyle$.pipe(delay(0)).subscribe((style) => {\n this.outputStyle = style;\n safeDetectChanges(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._suffixes.complete();\n this._style.complete();\n }\n\n @Input('dbxSetStyle')\n get style(): string {\n return this._style.value ?? '';\n }\n\n set style(style: string) {\n this._style.next(style);\n }\n\n @Input()\n get suffixes(): Maybe<string> {\n return this._suffixes.value;\n }\n\n set suffixes(suffixes: Maybe<string>) {\n this._suffixes.next(suffixes);\n }\n}\n","import { Directive, ChangeDetectorRef, inject } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\n\n/**\n * Used to retrieve the current app styling from the DbxStyleService.\n */\n@Directive({\n selector: 'dbx-style, [dbxStyle], .dbx-style',\n host: {\n '[class]': 'cssClass'\n }\n})\nexport class DbxStyleDirective extends AbstractSubscriptionDirective {\n private readonly _styleService = inject(DbxStyleService);\n private readonly _cdRef = inject(ChangeDetectorRef);\n\n cssClass = '';\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this._styleService.style$.pipe(delay(0)).subscribe((classes) => {\n this.cssClass = classes;\n safeDetectChanges(this._cdRef);\n });\n }\n}\n","import { Directive, ChangeDetectorRef, Renderer2, inject } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\n\n/**\n * Used to style the body document using the style provided by DbxStyleService.\n */\n@Directive({\n selector: '[dbxStyleBody]',\n host: {\n '[class]': 'style'\n }\n})\nexport class DbxStyleBodyDirective extends AbstractSubscriptionDirective {\n private readonly _renderer = inject(Renderer2);\n readonly styleService = inject(DbxStyleService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _currentStyle = '';\n\n ngOnInit(): void {\n this.sub = this.styleService.style$.pipe(delay(0)).subscribe((style) => {\n this._currentStyle && this._renderer.removeClass(document.body, this._currentStyle);\n style && this._renderer.addClass(document.body, style);\n this._currentStyle = style;\n safeDetectChanges(this.cdRef);\n });\n }\n}\n","import { CssClass, Maybe } from '@dereekb/util';\n\nexport type DbxThemeColorMain = 'primary' | 'accent' | 'warn';\nexport type DbxThemeColorExtra = 'notice' | 'ok' | 'success' | 'grey';\nexport type DbxThemeColorExtraSecondary = 'background' | 'disabled';\nexport type DbxThemeColorMainOrExtra = DbxThemeColorMain | DbxThemeColorExtra;\nexport type DbxThemeColor = DbxThemeColorMainOrExtra | DbxThemeColorExtraSecondary;\n\nexport const DBX_THEME_COLORS_MAIN: DbxThemeColorMain[] = ['primary', 'accent', 'warn'];\nexport const DBX_THEME_COLORS_EXTRA: DbxThemeColorExtra[] = ['notice', 'ok', 'success', 'grey'];\nexport const DBX_THEME_COLORS_EXTRA_SECONDARY: DbxThemeColorExtraSecondary[] = ['background', 'disabled'];\nexport const DBX_THEME_COLORS: DbxThemeColor[] = [...DBX_THEME_COLORS_MAIN, ...DBX_THEME_COLORS_EXTRA, ...DBX_THEME_COLORS_EXTRA_SECONDARY];\n\nexport function dbxColorBackground(color: Maybe<DbxThemeColor | ''>): CssClass {\n let cssClass = 'dbx-bg'; // background by default\n\n switch (color) {\n case 'primary':\n case 'accent':\n case 'warn':\n case 'notice':\n case 'ok':\n case 'success':\n case 'grey':\n case 'disabled':\n cssClass = `dbx-${color}-bg`;\n break;\n }\n\n return cssClass;\n}\n","import { Directive, Input } from '@angular/core';\nimport { DbxThemeColor, dbxColorBackground } from './style';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Used to apply a background style using a color.\n */\n@Directive({\n selector: '[dbxColor]',\n host: {\n '[class]': 'cssClass'\n }\n})\nexport class DbxColorDirective {\n cssClass = '';\n\n @Input()\n set dbxColor(dbxColor: Maybe<DbxThemeColor | ''>) {\n this.cssClass = dbxColorBackground(dbxColor);\n }\n}\n","import { DbxSetStyleDirective } from './style.set.directive';\nimport { DbxStyleDirective } from './style.directive';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxSpacerDirective } from './spacer.directive';\nimport { DbxStyleBodyDirective } from './style.body.directive';\nimport { DbxColorDirective } from './style.color.directive';\n\nconst declarations = [DbxColorDirective, DbxSpacerDirective, DbxStyleDirective, DbxSetStyleDirective, DbxStyleBodyDirective];\n\n@NgModule({\n imports: [CommonModule],\n declarations,\n exports: declarations\n})\nexport class DbxStyleLayoutModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxDialogContentDirective } from './dialog.content.component';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxActionDialogDirective } from './dialog.action.directive';\nimport { DbxDialogContentFooterComponent } from './dialog.content.footer.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxDialogContentCloseComponent } from './dialog.content.close.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, DbxStyleLayoutModule, MatButtonModule, MatIconModule],\n declarations: [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent],\n exports: [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent]\n})\nexport class DbxDialogInteractionModule {}\n","import { FlexibleConnectedPositionStrategy, HorizontalConnectionPos, Overlay, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ElementRef } from '@angular/core';\nimport { NgOverlayContainerConfiguration } from 'ng-overlay-container';\n\nexport interface PopoverPositionStrategyConfig {\n overlay: Overlay;\n elementRef: ElementRef;\n config: NgOverlayContainerConfiguration;\n}\n\nexport class PopoverPositionStrategy {\n static make(overlay: Overlay, elementRef: ElementRef, config: NgOverlayContainerConfiguration): FlexibleConnectedPositionStrategy {\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] = config.originX === 'end' ? ['end', 'start', 'center'] : config.originX === 'start' ? ['start', 'end', 'center'] : ['center', 'start', 'end'];\n\n const overlayX = originX;\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] = config.overlayY === 'bottom' ? ['bottom', 'top'] : ['top', 'bottom'];\n\n const [originY, originFallbackY] = [overlayFallbackY, overlayY];\n const { offsetX = 0, offsetY = 0 } = config;\n\n return overlay\n .position()\n .flexibleConnectedTo(elementRef)\n .withLockedPosition(true)\n .withPositions([\n {\n originX,\n originY,\n overlayX,\n overlayY,\n offsetY\n },\n {\n originX: origin2ndX,\n originY,\n overlayX: origin2ndX,\n overlayY,\n offsetY\n },\n {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin2ndX,\n originY: originFallbackY,\n overlayX: origin2ndX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin3rdX,\n originY,\n overlayX: origin3rdX,\n overlayY,\n offsetY\n },\n {\n originX: origin3rdX,\n originY: originFallbackY,\n overlayX: origin3rdX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }\n ])\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(offsetY);\n }\n}\n","import { Maybe } from '@dereekb/util';\nimport { isBoolean } from 'class-validator';\nimport { Observable, of, map } from 'rxjs';\n\nexport enum CompactMode {\n FULL = 'full',\n COMPACT = 'compact'\n}\n\nexport interface CompactModeOptions<T> {\n full?: T;\n compact?: T;\n}\n\nexport interface CompactModeDefaultOptions<T> extends CompactModeOptions<T> {\n defaultMode?: Maybe<CompactMode>;\n}\n\nexport type CompactModeOption = CompactMode | boolean;\n\nexport function compactModeFromInput(input: CompactMode | boolean): CompactMode {\n if (isBoolean(input)) {\n input = input ? CompactMode.COMPACT : CompactMode.FULL;\n }\n\n return input === CompactMode.COMPACT ? CompactMode.COMPACT : CompactMode.FULL;\n}\n\nexport function mapCompactModeObs<T>(mode$: Maybe<Observable<CompactMode>>, config: CompactModeDefaultOptions<T>): Observable<Maybe<T>> {\n const modeObs = mode$ ?? of(config.defaultMode ?? CompactMode.FULL);\n return modeObs.pipe(\n map((inputMode) => {\n const isCompact = (inputMode ?? config.defaultMode) === CompactMode.COMPACT;\n\n if (isCompact) {\n return config.compact;\n } else {\n return config.full;\n }\n })\n );\n}\n","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { map } from 'rxjs';\nimport { CompactMode, compactModeFromInput } from './compact';\n\nexport interface CompactContextState {\n mode: CompactMode;\n}\n\n@Injectable()\nexport class CompactContextStore extends ComponentStore<CompactContextState> {\n constructor() {\n super({ mode: CompactMode.FULL });\n }\n\n // MARK: Accessors\n readonly mode$ = this.state$.pipe(map((x) => x.mode));\n\n readonly setMode = this.updater((state, mode: CompactMode | boolean) => ({ mode: compactModeFromInput(mode) }));\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { CompactMode } from './compact';\nimport { CompactContextStore } from './compact.store';\n\n/**\n * CompactContextStore provider.\n */\n@Directive({\n selector: '[dbxCompact]',\n providers: [CompactContextStore],\n exportAs: 'compact'\n})\nexport class DbxCompactDirective {\n readonly compactContextStore = inject(CompactContextStore);\n readonly mode$ = this.compactContextStore.mode$;\n\n @Input('dbxCompact')\n set mode(mode: CompactMode | boolean) {\n this.compactContextStore.setMode(mode);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCompactDirective } from './compact.directive';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxCompactDirective],\n exports: [DbxCompactDirective]\n})\nexport class DbxCompactLayoutModule {}\n","import { Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopoverKey = string;\n\nexport abstract class DbxPopoverController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopoverKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popover to close.\n */\n abstract close(): void;\n /**\n * Closes the popover and returns the input value.\n */\n abstract return(value?: O): void;\n}\n","import { Input, OnDestroy, Output, EventEmitter, HostListener, Directive } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n@Directive({\n selector: '[dbxWindowKeyDownListener]'\n})\nexport class DbxWindowKeyDownListenerDirective implements OnDestroy {\n private _keysFilter?: Maybe<Set<string>>;\n\n @Input()\n appWindowKeyDownEnabled = true;\n\n @Output('dbxWindowKeyDownListener')\n keyPressed = new EventEmitter<KeyboardEvent>();\n\n @Input()\n set appWindowKeyDownFilter(filterOnKeys: string[]) {\n let filter: Maybe<Set<string>>;\n\n if (filterOnKeys) {\n filter = new Set(filterOnKeys);\n }\n\n this._keysFilter = filter;\n }\n\n ngOnDestroy(): void {\n this.keyPressed.complete();\n }\n\n @HostListener('window:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (this.appWindowKeyDownEnabled !== false) {\n if (!this._keysFilter || this._keysFilter.has(event.key)) {\n this.keyPressed.emit(event);\n }\n }\n }\n}\n","import { DbxPopoverKey, DbxPopoverController } from './popover';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverCoordinatorService implements OnDestroy {\n private _popovers = new BehaviorSubject<Map<DbxPopoverKey, DbxPopoverController>>(new Map());\n readonly popovers$ = this._popovers.asObservable();\n\n ngOnDestroy(): void {\n this._popovers.complete();\n }\n\n get popovers(): Map<DbxPopoverKey, DbxPopoverController> {\n return this._popovers.value;\n }\n\n public addPopover(popover: DbxPopoverController): void {\n const key = popover.key;\n\n if (key) {\n this.removePopover(key);\n this._popovers.value.set(key, popover);\n this._popovers.next(this.popovers);\n }\n }\n\n public removePopover(key: DbxPopoverKey, popover?: DbxPopoverController): void {\n if (key) {\n const existing = this.popovers.get(key);\n\n // Remove if there is one existing, and if popover is provided it is the same popover.\n if (existing && (!popover || popover === existing)) {\n existing.close();\n this._popovers.value.delete(key);\n this._popovers.next(this.popovers);\n }\n }\n }\n}\n","import { DbxPopoverController } from './popover';\nimport { Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { DbxPopoverCoordinatorService } from './popover.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Component({\n selector: 'dbx-popover-coordinator',\n template: `\n <ng-container *ngIf=\"show$ | async\">\n <ng-content></ng-content>\n </ng-container>\n `\n})\nexport class DbxPopoverCoordinatorComponent implements OnInit, OnDestroy {\n private readonly _service = inject(DbxPopoverCoordinatorService);\n private readonly _popover = inject(DbxPopoverController);\n\n readonly isPopoverForKey$ = this._service.popovers$.pipe(\n map((x) => x.get(this._popover.key) === this._popover),\n shareReplay(1)\n );\n readonly show$ = this.isPopoverForKey$.pipe(delay(0));\n\n constructor() {}\n\n ngOnInit(): void {\n this._service.addPopover(this._popover);\n }\n\n ngOnDestroy(): void {\n this._service.removePopover(this._popover.key, this._popover);\n }\n}\n","import { Component, Type, OnInit, OnDestroy, ElementRef, inject } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgPopoverCloseType, NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopoverPositionStrategy } from './popover.position.strategy';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { LockSet } from '@dereekb/rxjs';\nimport { CompactContextStore, CompactMode } from '../../layout/compact';\nimport { asPromise, Maybe, PromiseOrValue, SpaceSeparatedCssClasses } from '@dereekb/util';\nimport { DbxPopoverController, DbxPopoverKey } from './popover';\n\nexport abstract class DbxPopoverComponentController<O, I> extends DbxPopoverController<O, I> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopoverComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popover should exist at a time given a certain key.\n */\n key: DbxPopoverKey;\n /**\n * Origin element to position on.\n */\n origin: ElementRef;\n /**\n * Whether or not to close if a transition occurs.\n */\n closeOnTransition?: boolean;\n /**\n * Whether or not to dismiss when the escape button is pressed.\n *\n * False by default.\n */\n closeOnEscape?: boolean;\n /**\n * Component to inject into the popover.\n */\n componentClass: Type<T>;\n /**\n * Panel classes to add to the popover.\n */\n panelClass?: Maybe<SpaceSeparatedCssClasses>;\n /**\n * Data available to the popover.\n */\n data?: Maybe<I>;\n init?: (component: T, controller: DbxPopoverController<O, I>) => void;\n}\n\nexport interface FullDbxPopoverComponentConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T> {\n configuration: NgOverlayContainerConfiguration;\n}\n\n/**\n * Popover component.\n */\n@Component({\n template: `\n <dbx-popover-coordinator (dbxWindowKeyDownListener)=\"handleKeydown()\" [appWindowKeyDownFilter]=\"triggerCloseKeys\">\n <div dbxStyle class=\"dbx-popover-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popover-coordinator>\n `,\n providers: [\n {\n provide: DbxPopoverController,\n useExisting: DbxPopoverComponent\n },\n {\n provide: CompactContextStore\n }\n ],\n host: {\n '[class]': 'config.panelClass'\n }\n})\nexport class DbxPopoverComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopoverController<O, I>, OnInit, OnDestroy {\n private readonly popoverRef = inject(NgPopoverRef<FullDbxPopoverComponentConfig<O, I, T>, O>);\n private readonly compactContextState = inject(CompactContextStore);\n\n readonly lockSet = new LockSet();\n\n readonly contentConfig: DbxInjectionComponentConfig = {\n componentClass: this.config.componentClass,\n init: this.config.init ? (instance) => (this.config as Required<FullDbxPopoverComponentConfig<O, I, T>>).init(instance as T, this) : undefined\n };\n\n private _startedClosing = false;\n private readonly _closing = new Subject<void>();\n\n private _triggerCloseKeys: string[] = [];\n\n readonly isClosing$ = this._closing.pipe(\n first(),\n map(() => true),\n startWith(false),\n shareReplay(1)\n );\n\n readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n getClosingValueFn?: (value: Maybe<I>, closeType: NgPopoverCloseType) => PromiseOrValue<O | undefined>;\n\n constructor() {\n super();\n\n // Override Close to properly signal to listeners when a close is occuring.\n const originalClose = this.popoverRef.close;\n this.popoverRef.close = (x) => {\n if (!this._startedClosing) {\n this.lockSet.lockForSeconds(1);\n this._startedClosing = true;\n this.close();\n originalClose.call(this.popoverRef, x);\n }\n };\n\n // Also intercept the _close function to capture backdropClose, etc.\n const original_close = (this.popoverRef as any)._close;\n (this.popoverRef as any)._close = (closeType: NgPopoverCloseType, inputValue: O | undefined) => {\n const closeWithValue = (value?: O | undefined) => {\n original_close.call(this.popoverRef, closeType, value);\n };\n\n if (closeType === 'close' || inputValue != null) {\n closeWithValue(inputValue);\n } else {\n // expected to be a backdrop close. Get the closing value then close.\n this._useClosingValue(closeType, (x) => closeWithValue(x));\n }\n };\n\n // eslint-disable-next-line\n const overlay = (this.popoverRef as any)._overlay as Overlay; // overlay is not publically accessible\n const elementRef = this.config.origin;\n const configuration = this.config.configuration;\n\n this.compactContextState.setMode(CompactMode.COMPACT);\n const position = PopoverPositionStrategy.make(overlay, elementRef, configuration);\n this.popoverRef.overlay.updatePositionStrategy(position);\n }\n\n get config(): FullDbxPopoverComponentConfig<O, I, T> {\n return this.popoverRef.data;\n }\n\n get panelClass(): Maybe<SpaceSeparatedCssClasses> {\n return this.config.panelClass;\n }\n\n get key(): DbxPopoverKey {\n return this.config.key;\n }\n\n get data(): Maybe<I> {\n return this.config.data;\n }\n\n get triggerCloseKeys(): string[] {\n return this._triggerCloseKeys;\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n if (this.config.closeOnEscape) {\n this._triggerCloseKeys = ['Escape'];\n }\n }\n\n override ngOnDestroy(): void {\n this.lockSet.destroyOnNextUnlock(() => {\n super.ngOnDestroy();\n this._closing.complete();\n });\n }\n\n protected updateForSuccessfulTransition(): void {\n if (this.config.closeOnTransition !== false) {\n this.close();\n }\n }\n\n // Popover Controls\n public close(): void {\n if (!this._startedClosing && this.getClosingValueFn != null) {\n this._useClosingValue('close', (x) => this.return(x));\n } else {\n this.return();\n }\n }\n\n public return(value?: O | undefined): void {\n this._closing.next();\n this.popoverRef.close(value);\n }\n\n private _useClosingValue(closeType: NgPopoverCloseType, useValue: (value?: O | undefined) => void) {\n if (this.getClosingValueFn != null) {\n asPromise(this.getClosingValueFn(this.data, closeType)).then(\n (x) => {\n useValue(x);\n },\n () => {\n useValue();\n }\n );\n } else {\n useValue();\n }\n }\n\n // Keypresses\n handleKeydown() {\n this.close();\n }\n}\n","import { DbxPopoverComponent, DbxPopoverComponentConfig, FullDbxPopoverComponentConfig } from './popover.component';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport type DbxPopoverConfigSizing = Pick<NgOverlayContainerConfiguration, 'originX' | 'originY' | 'height' | 'width' | 'minHeight' | 'minWidth' | 'isResizable'>;\n\nexport interface DbxPopoverConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T>, DbxPopoverConfigSizing {\n injector?: Injector;\n}\n\n/**\n * Used for displaying a popover.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverService {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _overlayContainerService: NgOverlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n\n open<O, I, T>(config: DbxPopoverConfig<O, I, T>): NgPopoverRef<DbxPopoverComponentConfig<O, I, T>, O> {\n const service = config.injector ? new NgOverlayContainerService(this._overlay, config.injector) : this._overlayContainerService;\n\n const configuration: NgOverlayContainerConfiguration = {\n panelClass: 'dbx-popover-container',\n originX: config.originX ?? 'start',\n originY: config.originY ?? 'top',\n // TODO: Resize height/width.\n minHeight: config.minHeight,\n minWidth: config.minWidth,\n height: config.height ?? '500px',\n width: config.width ?? '400px',\n hasBackdrop: true,\n isDraggable: false,\n isResizable: config.isResizable ?? false,\n disableBackdropClose: false\n };\n\n return service.open<FullDbxPopoverComponentConfig<O, I, T>, O>({\n content: DbxPopoverComponent,\n data: {\n ...config,\n configuration\n },\n configuration\n });\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxPopoverComponent } from './popover.component';\n\n/**\n * Abstract popover directive.\n */\n@Directive()\nexport abstract class AbstractPopoverDirective<O = unknown, I = unknown, T = unknown> {\n readonly popover = inject(DbxPopoverComponent<O, I, T>);\n\n close(): void {\n this.popover.close();\n }\n\n returnAndClose(value: O): void {\n this.popover.return(value);\n }\n}\n","import { BehaviorSubject, throttleTime } from 'rxjs';\nimport { OnDestroy, Component } from '@angular/core';\nimport { ResizedEvent } from 'angular-resize-event';\n\n/**\n * Popover content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-content',\n template: `\n <div class=\"d-block dbx-popover-content\" (resized)=\"onResized($event)\" [style.--popoverh]=\"height$ | async\">\n <ng-content select=\"[controls]\"></ng-content>\n <div class=\"dbx-popover-content-container\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxPopoverContentComponent implements OnDestroy {\n private readonly _height = new BehaviorSubject<string>('');\n readonly height$ = this._height.asObservable().pipe(throttleTime(100, undefined, { leading: true, trailing: true }));\n\n hasControls = false;\n hasHeader = false;\n\n onResized(event: ResizedEvent): void {\n this._height.next(`${event.newRect.height}px`);\n }\n\n ngOnDestroy(): void {\n this._height.complete();\n }\n}\n","import { Component, Input, OnInit, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Component used to format a header for a popover.\n */\n@Component({\n selector: 'dbx-popover-header',\n template: `\n <div class=\"dbx-popover-header\">\n <div class=\"dbx-popover-header-content\">\n <h3>\n <mat-icon *ngIf=\"icon\" class=\"dbx-icon-spacer\">{{ icon }}</mat-icon>\n {{ header }}\n </h3>\n <span class=\"spacer\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n <mat-divider></mat-divider>\n `\n})\nexport class DbxPopoverHeaderComponent implements OnInit {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasHeader = true;\n }\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover scrollable content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-scroll-content',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'd-block dbx-popover-scroll-content',\n '[class]': 'sizingClasses'\n }\n})\nexport class DbxPopoverScrollContentComponent {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent);\n\n get sizingClasses(): string {\n const hasHeader = this.hasHeader;\n const hasControls = this.hasControls;\n\n const classes: string[] = [];\n\n if (hasHeader && hasControls) {\n classes.push('popover-has-controls-and-header');\n } else if (hasHeader) {\n classes.push('popover-has-header');\n } else if (hasControls) {\n classes.push('popover-has-controls');\n }\n\n return classes.join(' ');\n }\n\n get hasHeader(): boolean {\n return this.appPopoverContentComponent.hasHeader;\n }\n\n get hasControls(): boolean {\n return this.appPopoverContentComponent.hasControls;\n }\n}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, ElementRef, Type, OnInit, OnDestroy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Observable, BehaviorSubject, map, skip, first, defaultIfEmpty } from 'rxjs';\nimport { AbstractPopoverDirective } from '../popover/abstract.popover.directive';\nimport { DbxPopoverConfigSizing, DbxPopoverService } from '../popover/popover.service';\nimport { FilterSource, FilterSourceConnector, PresetFilterSource, filterMaybe, SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxPopoverKey } from '../popover/popover';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxFilterComponentParams<F extends object = object, P extends string = string, CF extends FilterSource<F> = FilterSource<F>, PF extends PresetFilterSource<F, P> = PresetFilterSource<F, P>> extends DbxPopoverConfigSizing {\n /**\n * Custom icon\n *\n * Defaults to \"filter_list\"\n */\n icon?: string;\n /**\n * Custom header text\n *\n * Defaults to \"Filter\"\n */\n header?: string;\n /**\n * Custom customize button text. If not defined, defaults to \"Customize\"\n */\n customizeButtonText?: string;\n /**\n * Custom close button text. If not defined, defaults to \"Close\"\n */\n closeButtonText?: string;\n /**\n * Whether or not to show the close button. Defaults to the value of !closeOnFilterChange\n */\n showCloseButton?: Maybe<boolean>;\n /**\n * Custom filter component to initialize.\n */\n customFilterComponentClass?: Type<CF>;\n /**\n * Preset filter component to initialize.\n */\n presetFilterComponentClass?: Type<PF>;\n /**\n * DbxInjectionComponentConfig for the custom filter component to initialize.\n */\n customFilterComponentConfig?: DbxInjectionComponentConfig<CF>;\n /**\n * DbxInjectionComponentConfig for the preset filter component to initialize.\n */\n presetFilterComponentConfig?: DbxInjectionComponentConfig<PF>;\n /**\n * The connector to use.\n */\n connector: FilterSourceConnector<F>;\n /**\n * (Optional) Inital filter to pass to the filter source.\n */\n initialFilterObs?: Observable<F>;\n /**\n * (Optional) Whether or not to close the component if the filter changes.\n *\n * True by default.\n */\n closeOnFilterChange?: boolean;\n}\n\nexport interface DbxFilterPopoverComponentParams<F extends object = object> extends DbxFilterComponentParams<F> {\n /**\n * Origin to add the popover to.\n */\n origin: ElementRef;\n}\n\nexport const DEFAULT_FILTER_POPOVER_KEY = 'filter';\n\n@Component({\n templateUrl: './filter.popover.component.html'\n})\nexport class DbxFilterPopoverComponent<F extends object> extends AbstractPopoverDirective<unknown, DbxFilterComponentParams<F>> implements OnInit, OnDestroy {\n private _closeOnChangeSub = new SubscriptionObject();\n\n readonly showCloseButton = this.config.showCloseButton ?? !(this.config.closeOnFilterChange ?? true);\n readonly closeButtonText = this.config.closeButtonText ?? 'Close';\n readonly customizeButtonText = this.config.customizeButtonText ?? 'Customize';\n\n /**\n * Whether or not to display buttons to toggle between custom and preset filters.\n */\n readonly showSwitchButtons = Boolean(this.config.customFilterComponentClass && this.config.presetFilterComponentClass);\n\n private _showPreset = new BehaviorSubject<boolean>(false);\n readonly showPreset$ = this._showPreset.asObservable();\n\n readonly config$: Observable<DbxInjectionComponentConfig<FilterSource<F>>> = this._showPreset.pipe(\n map((showPreset) => {\n const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;\n let componentClass: Type<FilterSource<F>>;\n let baseConfig: Maybe<DbxInjectionComponentConfig<FilterSource<F>>>;\n\n if (showPreset) {\n componentClass = (presetFilterComponentConfig?.componentClass ?? presetFilterComponentClass) as Type<FilterSource<F>>;\n baseConfig = presetFilterComponentConfig;\n } else {\n componentClass = (customFilterComponentConfig?.componentClass ?? customFilterComponentClass) as Type<FilterSource<F>>;\n baseConfig = customFilterComponentConfig;\n }\n\n const config: DbxInjectionComponentConfig<FilterSource<F>> = {\n ...baseConfig,\n componentClass,\n init: (filterSource) => {\n connector.connectWithSource(filterSource);\n\n if (initialFilterObs && filterSource.initWithFilter) {\n filterSource.initWithFilter(initialFilterObs);\n }\n\n if (closeOnFilterChange !== false) {\n this._closeOnChangeSub.subscription = filterSource.filter$.pipe(skip(1), filterMaybe(), first(), defaultIfEmpty(undefined)).subscribe(() => {\n this.close();\n });\n }\n\n // run the next init if provided\n baseConfig?.init?.(filterSource);\n }\n };\n\n return config;\n })\n );\n\n static openPopover<F extends object>(popupService: DbxPopoverService, { width, height, isResizable, origin, header, icon, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig, connector, initialFilterObs, closeOnFilterChange, customizeButtonText, showCloseButton, closeButtonText }: DbxFilterPopoverComponentParams<F>, popoverKey?: DbxPopoverKey): NgPopoverRef {\n return popupService.open({\n key: popoverKey ?? DEFAULT_FILTER_POPOVER_KEY,\n origin,\n componentClass: DbxFilterPopoverComponent,\n width,\n height,\n isResizable,\n data: {\n header,\n icon,\n customizeButtonText,\n showCloseButton,\n closeButtonText,\n customFilterComponentClass,\n presetFilterComponentClass,\n customFilterComponentConfig,\n presetFilterComponentConfig,\n connector,\n initialFilterObs,\n closeOnFilterChange\n } as DbxFilterComponentParams<F>\n });\n }\n\n get config(): DbxFilterComponentParams<F> {\n return this.popover.data as DbxFilterComponentParams<F>;\n }\n\n get icon() {\n return this.config.icon ?? 'filter_list';\n }\n\n get header() {\n return this.config.header ?? 'Filter';\n }\n\n ngOnInit(): void {\n let showPreset = false;\n const { customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;\n\n if (customFilterComponentClass || customFilterComponentConfig) {\n showPreset = false;\n }\n\n if (presetFilterComponentClass || presetFilterComponentConfig) {\n showPreset = true;\n }\n\n if (!(customFilterComponentClass || customFilterComponentConfig) && !(presetFilterComponentClass || presetFilterComponentConfig)) {\n throw new Error('Requires a preset or custom class provided for DbxFilterPopover.');\n }\n\n this._showPreset.next(showPreset);\n }\n\n ngOnDestroy(): void {\n this._closeOnChangeSub.destroy();\n this._showPreset.complete();\n }\n\n showPresets() {\n this._showPreset.next(true);\n }\n\n showCustom() {\n this._showPreset.next(false);\n }\n}\n","<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">{{ customizeButtonText }}</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n <ng-container *ngIf=\"showCloseButton\">\n <dbx-button-spacer *ngIf=\"showSwitchButtons\"></dbx-button-spacer>\n <button mat-stroked-button color=\"accent\" (click)=\"close()\">{{ closeButtonText }}</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n","import { OnDestroy, Directive, EventEmitter, Output, ElementRef } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { NgPopoverCloseEvent, NgPopoverRef } from 'ng-overlay-container';\n\n/**\n * Abstract class for showing and handling a popover ref.\n */\n@Directive()\nexport abstract class AbstractPopoverRefDirective<T = unknown, R = unknown> extends AbstractSubscriptionDirective {\n private _popoverRef?: NgPopoverRef<T, R>;\n\n showPopover(origin?: ElementRef): void {\n if (!this._popoverRef) {\n this._showPopoverRef(origin);\n }\n }\n\n private _showPopoverRef(origin?: ElementRef): void {\n this._popoverRef = this._makePopoverRef(origin);\n this._afterOpened(this._popoverRef);\n this.sub = this._popoverRef.afterClosed$.subscribe((x) => {\n this._afterClosed(x);\n this._popoverRef = undefined;\n });\n }\n\n protected abstract _makePopoverRef(origin?: ElementRef): NgPopoverRef<T, R>;\n\n protected _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n // Do nothing. Override in parent type\n }\n\n protected _afterClosed(value: NgPopoverCloseEvent<R>): void {\n // Do nothing. Override in parent type\n }\n}\n\n/**\n * {@link AbstractPopoverRefDirective} extension that includes open/closed events.\n */\n@Directive()\nexport abstract class AbstractPopoverRefWithEventsDirective<T = unknown, R = unknown> extends AbstractPopoverRefDirective<T, R> implements OnDestroy {\n @Output()\n readonly popoverOpened = new EventEmitter<NgPopoverRef<T, R>>();\n\n @Output()\n readonly popoverClosed = new EventEmitter<NgPopoverCloseEvent<R>>();\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.popoverClosed.complete();\n this.popoverOpened.complete();\n }\n\n protected override _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n this.popoverOpened.next(popoverRef);\n }\n\n protected override _afterClosed(event: NgPopoverCloseEvent<R>): void {\n this.popoverClosed.next(event);\n }\n}\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { DbxFilterPopoverComponent, DbxFilterComponentParams } from './filter.popover.component';\nimport { AbstractPopoverRefDirective } from '../popover/abstract.popover.ref.directive';\nimport { FilterSource, PresetFilterSource } from '@dereekb/rxjs';\n\nexport type DbxFilterButtonConfig<F extends object> = DbxFilterComponentParams<F>;\nexport type DbxFilterButtonConfigWithCustomFilter<F extends object, CF extends FilterSource<F> = FilterSource<F>> = Omit<DbxFilterComponentParams<F, any, CF, any>, 'presetFilter' | 'presetFilterComponentConfig'>;\nexport type DbxFilterButtonConfigWithPresetFilter<F extends object, PF extends PresetFilterSource<F, any> = PresetFilterSource<F, any>> = Omit<DbxFilterComponentParams<F, any, any, PF>, 'customFilter' | 'customFilterComponentConfig'>;\n\n@Directive()\nexport abstract class AbstractFilterPopoverButtonDirective<F extends object> extends AbstractPopoverRefDirective<unknown, unknown> {\n private readonly popupService = inject(DbxPopoverService);\n\n @Input()\n config?: DbxFilterComponentParams<F, any, any, any>;\n\n protected override _makePopoverRef(origin?: ElementRef): NgPopoverRef<unknown, unknown> {\n const config = this.config;\n\n if (!config) {\n throw new Error('Missing filterButtonConfig.');\n } else if (!origin) {\n throw new Error('Missing origin.');\n }\n\n return DbxFilterPopoverComponent.openPopover(this.popupService, {\n origin,\n ...config\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { AbstractFilterPopoverButtonDirective } from './filter.popover.button.directive';\nimport { DbxButtonDisplayContent } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\nconst DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT: DbxButtonDisplayContent = {\n icon: 'filter_list'\n};\n\n@Component({\n selector: 'dbx-filter-popover-button',\n template: `\n <dbx-icon-button #button (buttonClick)=\"showFilterPopover()\" [buttonDisplay]=\"buttonDisplay\" [disabled]=\"disabled\"></dbx-icon-button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxFilterPopoverButtonComponent<F extends object = object> extends AbstractFilterPopoverButtonDirective<F> {\n private _buttonDisplay: DbxButtonDisplayContent = DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT;\n\n @Input()\n disabled?: Maybe<boolean>;\n\n @Input()\n get buttonDisplay(): DbxButtonDisplayContent {\n return this._buttonDisplay;\n }\n\n set buttonDisplay(buttonDisplay: Maybe<DbxButtonDisplayContent>) {\n if (!buttonDisplay) {\n buttonDisplay = DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT;\n }\n\n this._buttonDisplay = buttonDisplay;\n }\n\n @ViewChild('button', { read: ElementRef, static: false })\n buttonElement!: ElementRef;\n\n showFilterPopover(): void {\n const origin = this.buttonElement.nativeElement;\n this.showPopover(origin);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxWindowKeyDownListenerDirective } from './keydown.listener.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxWindowKeyDownListenerDirective],\n exports: [DbxWindowKeyDownListenerDirective]\n})\nexport class DbxKeypressModule {}\n","import { Directive, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover Controls\n */\n@Directive({\n selector: 'dbx-popover-controls,[dbxPopoverControls],.dbx-popover-controls',\n host: {\n class: 'd-block dbx-popover-controls'\n }\n})\nexport class DbxPopoverControlsDirective {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasControls = true;\n }\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { DbxPopoverComponent } from './popover.component';\n\n/**\n * Pre-configured close icon button for use within popover header.\n */\n@Component({\n selector: 'dbx-popover-close-button',\n template: `\n <button mat-icon-button (click)=\"dbxPopoverComponent.close()\"><mat-icon>close</mat-icon></button>\n `\n})\nexport class DbxPopoverCloseButtonComponent {\n readonly dbxPopoverComponent = inject(DbxPopoverComponent);\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { DbxPopoverControlsDirective } from './popover.controls.directive';\nimport { DbxPopoverHeaderComponent } from './popover.header.component';\nimport { DbxPopoverScrollContentComponent } from './popover.scroll.content.component';\nimport { DbxKeypressModule } from '../../keypress';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxPopoverCloseButtonComponent } from './popover.close.component';\n\nconst declarations = [DbxPopoverContentComponent, DbxPopoverControlsDirective, DbxPopoverHeaderComponent, DbxPopoverCloseButtonComponent, DbxPopoverScrollContentComponent];\n\n/**\n * Contains all popover content components, allowing other sibling dbx-web modules to use the directives without referencing the full popover module.\n */\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, MatDividerModule, DbxKeypressModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule, AngularResizeEventModule],\n declarations,\n exports: declarations\n})\nexport class DbxPopoverInteractionContentModule {}\n","import { first, Observable, map } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, Input, ElementRef, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractDbxActionValueOnTriggerDirective } from '@dereekb/dbx-core';\nimport { IsModifiedFunction } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxActionPopoverFunctionParams {\n origin: ElementRef;\n}\n\nexport type DbxActionPopoverFunction<T = unknown> = (params: DbxActionPopoverFunctionParams) => NgPopoverRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a popover, then watches that popover for a value.\n */\n@Directive({\n exportAs: 'dbxActionPopover',\n selector: '[dbxActionPopover]'\n})\nexport class DbxActionPopoverDirective<T = unknown> extends AbstractDbxActionValueOnTriggerDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n @Input('dbxActionPopover')\n fn?: DbxActionPopoverFunction<T>;\n\n @Input()\n set dbxActionPopoverModified(isModifiedFunction: Maybe<IsModifiedFunction>) {\n this.isModifiedFunction = isModifiedFunction;\n }\n\n constructor() {\n super();\n this.valueGetter = () => this._getDataFromPopover();\n }\n\n protected _getDataFromPopover(): Observable<Maybe<T>> {\n return this._makePopoverRef().afterClosed$.pipe(\n first(),\n map((x) => x.data)\n );\n }\n\n protected _makePopoverRef(): NgPopoverRef<unknown, Maybe<T>> {\n const origin = this.elementRef;\n\n if (!this.fn) {\n throw new Error('popoverAction has no function provided to it yet.');\n }\n\n return this.fn({\n origin\n });\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbxPopoverComponent } from './popover.component';\nimport { DbxKeypressModule } from '../../keypress';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxPopoverInteractionContentModule } from './popover.content.module';\nimport { DbxActionPopoverDirective } from './popover.action.directive';\n\nconst declarations = [DbxPopoverComponent, DbxPopoverCoordinatorComponent, DbxActionPopoverDirective];\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, MatDividerModule, DbxKeypressModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule, AngularResizeEventModule, DbxPopoverInteractionContentModule],\n declarations,\n exports: [...declarations, DbxPopoverInteractionContentModule]\n})\nexport class DbxPopoverInteractionModule {}\n","import { Component, Input, inject } from '@angular/core';\nimport { AbstractDbxActionHandlerDirective, FilterSourceDirective, provideActionStoreSource } from '@dereekb/dbx-core';\nimport { of } from 'rxjs';\n\n/**\n * Action component used to simplify creating a filter form.\n *\n * Provides a DbxAction and configures the action to set the filter on a FilterSourceDirective when triggered.\n */\n@Component({\n selector: 'dbx-filter-wrapper',\n templateUrl: './filter.wrapper.component.html',\n providers: [provideActionStoreSource(null)]\n})\nexport class DbxFilterWrapperComponent<F = unknown> extends AbstractDbxActionHandlerDirective<F> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n @Input()\n showButtons = true;\n\n @Input()\n applyRaised = true;\n\n @Input()\n applyIcon = 'filter_list';\n\n @Input()\n applyText = 'Filter';\n\n constructor() {\n super();\n\n // configure handler function\n this._dbxActionHandlerInstance.handlerFunction = (filter: F) => {\n this.filterSourceDirective.setFilter(filter);\n return of(true);\n };\n }\n\n applyFilter(): void {\n this.source.setIsModified(true); // Force setting modified.\n this.source.trigger();\n }\n\n resetFilter(): void {\n this.filterSourceDirective.resetFilter();\n }\n}\n","<div class=\"dbx-filter-wrapper\">\n <div class=\"dbx-filter-wrapper-content\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"showButtons\" fxLayout=\"row\">\n <dbx-button dbxActionButton [raised]=\"applyRaised\" [text]=\"applyText\" [icon]=\"applyIcon\"></dbx-button>\n <div class=\"spacer\"></div>\n <button mat-icon-button (click)=\"resetFilter()\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n","import { shareReplay, BehaviorSubject, map, Observable, combineLatest, distinctUntilChanged, startWith } from 'rxjs';\nimport { Directive, EventEmitter, Input, OnDestroy, Output, inject } from '@angular/core';\nimport { ClickableFilterPreset, ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset, ClickableFilterPresetOrPartialPreset, isClickableFilterPreset } from '@dereekb/dbx-core';\nimport { getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\nimport { FilterWithPreset } from '@dereekb/rxjs';\n\n/**\n * Displays a button and menu for filtering presets.\n */\n@Directive()\nexport abstract class AbstractDbxPresetFilterMenuDirective<F extends FilterWithPreset> implements OnDestroy {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n @Output()\n readonly presetSelected = new EventEmitter<ClickableFilterPresetOrPartialPreset<F>>();\n\n private _presets = new BehaviorSubject<ClickableFilterPresetOrPartialPreset<F>[]>([]);\n\n readonly selected$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n readonly presetsWithPresetStringOnly$: Observable<ClickableFilterPreset<F>[]> = this._presets.pipe(map((x) => x.filter((y) => Boolean((y as ClickableFilterPreset<F>).preset)) as ClickableFilterPreset<F>[]));\n\n readonly selectedPresetString$: Observable<Maybe<string>> = this.selected$.pipe(\n map((selectedFilter) => (selectedFilter ? selectedFilter.preset : undefined)),\n distinctUntilChanged()\n );\n\n readonly presetAnchorsPairs$: Observable<['preset' | 'partialPreset', ClickableFilterPresetOrPartialPreset<F>, ClickableAnchorLink][]> = combineLatest([this._presets, this.selected$, this.selectedPresetString$]).pipe(\n map(([presets, currentFilterValue, selectedPresetString]) => {\n return presets.map((x) => {\n let selected: boolean;\n let type: 'preset' | 'partialPreset';\n\n if (isClickableFilterPreset(x)) {\n selected = x.preset === selectedPresetString;\n type = 'preset';\n } else {\n selected = x.isActive(currentFilterValue);\n type = 'partialPreset';\n }\n\n return [\n type,\n x,\n {\n ...x,\n selected,\n onClick: () => {\n this.selectPreset(x);\n }\n }\n ] as [typeof type, ClickableFilterPresetOrPartialPreset<F>, ClickableAnchorLink];\n });\n }),\n shareReplay(1)\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = this.presetAnchorsPairs$.pipe(\n map((x) => x.map((x) => x[2])),\n shareReplay(1)\n );\n\n readonly firstSelectedAnchorPair$ = this.presetAnchorsPairs$.pipe(\n map((presets) => {\n const firstSelected = presets.find((x) => x[2].selected);\n return firstSelected ? firstSelected : undefined;\n }),\n shareReplay(1)\n );\n\n readonly selectedPreset$: Observable<Maybe<ClickableFilterPreset<F>>> = this.presetAnchorsPairs$.pipe(\n map((presets) => {\n const firstSelected = presets.filter((x) => x[0] === 'preset').find((x) => x[2].selected);\n return firstSelected ? (firstSelected[1] as ClickableFilterPreset<F>) : undefined;\n }),\n shareReplay(1)\n );\n\n @Input()\n get presets(): ClickableFilterPresetOrPartialPreset<F>[] {\n return this._presets.value;\n }\n\n set presets(presets: ClickableFilterPresetOrPartialPreset<F>[]) {\n this._presets.next(presets);\n }\n\n selectPreset(preset: ClickableFilterPresetOrPartialPreset<F>) {\n const presetString = (preset as ClickableFilterPreset<F>).preset;\n const presetValue = (preset as ClickableFilterPreset<F>).presetValue || (preset as ClickablePartialFilterPreset<F>).partialPresetValue;\n\n if (presetValue == null || (typeof presetValue !== 'function' && objectHasNoKeys(presetValue))) {\n // set and then reset if the value is null or empty\n this.filterSourceDirective.setFilter((presetValue ?? {}) as F);\n this.filterSourceDirective.resetFilter();\n } else {\n let filter = getValueFromGetter(presetValue) as F;\n\n if (filter.preset !== presetString) {\n filter = {\n ...filter,\n preset: presetString\n };\n }\n\n this.filterSourceDirective.setFilter(filter);\n }\n\n this.presetSelected.next(preset);\n }\n\n ngOnDestroy(): void {\n this._presets.complete();\n this.presetSelected.complete();\n }\n}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\nexport abstract class DbxRouterWebProviderConfig {\n /**\n * Component used by the Anchor component to render a SegueRef link.\n */\n abstract anchorSegueRefComponent: DbxInjectionComponentConfig;\n}\n","import { skipFirstMaybe } from '@dereekb/rxjs';\nimport { Input, Component, TemplateRef, ViewChild, OnDestroy, HostListener, inject } from '@angular/core';\nimport { AbstractDbxAnchorDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { map, distinctUntilChanged, shareReplay, BehaviorSubject } from 'rxjs';\nimport { DbxRouterWebProviderConfig } from '../../provider/router.provider.config';\n\n/**\n * Component that renders an anchor element depending on the input.\n */\n@Component({\n selector: 'dbx-anchor, [dbx-anchor]',\n templateUrl: './anchor.component.html',\n host: {\n class: 'd-inline dbx-anchor',\n 'dbx-anchor-block': 'block'\n }\n})\nexport class DbxAnchorComponent extends AbstractDbxAnchorDirective implements OnDestroy {\n private readonly dbNgxRouterWebProviderConfig = inject(DbxRouterWebProviderConfig);\n\n private _templateRef = new BehaviorSubject<Maybe<TemplateRef<unknown>>>(undefined);\n readonly templateRef$ = this._templateRef.pipe(skipFirstMaybe(), shareReplay(1));\n\n @Input()\n public block?: boolean;\n\n @ViewChild('content', { read: TemplateRef })\n get templateRef(): Maybe<TemplateRef<unknown>> {\n return this._templateRef.value;\n }\n\n set templateRef(templateRef: Maybe<TemplateRef<unknown>>) {\n this._templateRef.next(templateRef);\n }\n\n readonly url$ = this.anchor$.pipe(\n map((x) => x?.url),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly target$ = this.anchor$.pipe(\n map((x) => x?.target),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly selectedClass$ = this.selected$.pipe(\n map((selected) => (selected ? 'dbx-anchor-selected' : '')),\n shareReplay(1)\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._templateRef.complete();\n }\n\n get srefAnchorConfig(): DbxInjectionComponentConfig {\n return this.dbNgxRouterWebProviderConfig.anchorSegueRefComponent;\n }\n\n clickAnchor(event?: Maybe<MouseEvent>): void {\n this.anchor?.onClick?.(event);\n }\n\n @HostListener('mouseenter')\n onMouseEnter(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('enter', event);\n }\n\n @HostListener('mouseleave')\n onMouseLeave(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('leave', event);\n }\n}\n","<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"(selectedClass$ | async) || ''\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { OnDestroy, Input, Component } from '@angular/core';\nimport { BehaviorSubject, map, shareReplay, distinctUntilChanged, Observable } from 'rxjs';\nimport { ClickableAnchorLinkTree, ExpandedClickableAnchorLinkTree, expandClickableAnchorLinkTrees } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxAnchorListExpandedAnchor extends ExpandedClickableAnchorLinkTree {\n classes: string;\n}\n\n/**\n * Component that displays a list of ClickableAnchorLink values within a MatNavList.\n */\n@Component({\n selector: 'dbx-anchor-list',\n templateUrl: './anchorlist.component.html'\n})\nexport class DbxAnchorListComponent implements OnDestroy {\n private _anchors = new BehaviorSubject<ClickableAnchorLinkTree[]>([]);\n\n readonly expandedAnchors$: Observable<DbxAnchorListExpandedAnchor[]> = this._anchors.pipe(\n distinctUntilChanged(),\n map((x) =>\n expandClickableAnchorLinkTrees(x).map((y) => {\n (y as DbxAnchorListExpandedAnchor).classes = `${y.depth > 0 ? `dbx-anchor-list-child` : 'dbx-anchor-list-root'} dbx-anchor-list-depth-${y.depth}`;\n return y as DbxAnchorListExpandedAnchor;\n })\n ),\n shareReplay(1)\n );\n\n @Input()\n set anchors(anchors: Maybe<ClickableAnchorLinkTree[]>) {\n this._anchors.next(anchors ?? []);\n }\n\n ngOnDestroy(): void {\n this._anchors.complete();\n }\n}\n","<mat-nav-list class=\"dbx-anchor-list\">\n <ng-container *ngFor=\"let expanded of expandedAnchors$ | async; let last = last\">\n <dbx-anchor [anchor]=\"expanded.value\" [ngClass]=\"expanded.classes\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\">\n <mat-icon matListItemIcon *ngIf=\"expanded.value.icon\">{{ expanded.value.icon }}</mat-icon>\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div matListItemTitle>{{ expanded.value.title }}</div>\n <div matListItemLine class=\"dbx-small\" *ngIf=\"expanded.value.hint\">{{ expanded.value.hint }}</div>\n <dbx-injection *ngIf=\"expanded.value.content\" [config]=\"expanded.value.content\"></dbx-injection>\n </a>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </dbx-anchor>\n </ng-container>\n</mat-nav-list>\n","import { Component } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\n\n@Component({\n selector: 'dbx-preset-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchors$ | async\"></dbx-anchor-list>\n `\n})\nexport class DbxPresetFilterListComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {}\n","import { Component, Input } from '@angular/core';\nimport { ClickableIconAnchorLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Component that displays an anchor and a mat-button.\n */\n@Component({\n selector: 'dbx-anchor-icon',\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-icon-button>\n <mat-icon>{{ anchor?.icon }}</mat-icon>\n </button>\n </dbx-anchor>\n `\n})\nexport class DbxAnchorIconComponent {\n @Input()\n anchor: Maybe<ClickableIconAnchorLink>;\n}\n","import { Component, Input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Pre-styled text that can link to either a website or a ref using a dbx-anchor.\n */\n@Component({\n selector: 'dbx-link',\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <ng-content></ng-content>\n </dbx-anchor>\n `,\n host: {\n class: 'd-inline dbx-link'\n }\n})\nexport class DbxAnchorLinkComponent {\n @Input()\n anchor?: Maybe<ClickableAnchor>;\n\n @Input()\n set ref(ref: Maybe<string>) {\n if (ref) {\n this.anchor = {\n ref\n };\n }\n }\n\n @Input()\n set href(href: Maybe<string>) {\n if (href) {\n this.anchor = {\n url: href\n };\n }\n }\n}\n","import { BehaviorSubject, combineLatest, map, Observable, of, shareReplay } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { ClickableAnchor, ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Component that displays an anchor and a span with the title.\n */\n@Component({\n selector: 'dbx-anchor-content',\n template: `\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"icon$ | async\">{{ icon$ | async }}</mat-icon>\n <span *ngIf=\"title$ | async\">{{ title$ | async }}</span>\n `,\n host: {\n class: 'dbx-anchor-content'\n }\n})\nexport class DbxAnchorContentComponent implements OnDestroy {\n readonly parent = inject(DbxAnchorComponent, { optional: true });\n\n private readonly _inputAnchor = new BehaviorSubject<Maybe<Partial<ClickableAnchorLink>>>(undefined);\n private readonly _parentAnchor: Observable<Maybe<ClickableAnchor | ClickableAnchorLink>> = this.parent ? this.parent.anchor$ : of(undefined);\n\n readonly anchor$: Observable<Maybe<Partial<ClickableAnchorLink>>> = combineLatest([this._inputAnchor, this._parentAnchor]).pipe(\n map(([input, parent]) => input ?? parent),\n shareReplay(1)\n );\n\n readonly icon$ = this.anchor$.pipe(map((x) => x?.icon));\n readonly title$ = this.anchor$.pipe(map((x) => x?.title));\n\n @Input()\n set anchor(anchor: Maybe<Partial<ClickableAnchorLink>>) {\n this._inputAnchor.next(anchor);\n }\n\n ngOnDestroy(): void {\n this._inputAnchor.complete();\n }\n}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { NgModule } from '@angular/core';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { CommonModule } from '@angular/common';\nimport { DbxAnchorIconComponent } from './anchor.icon.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxAnchorLinkComponent } from './anchor.link.component';\nimport { DbxAnchorContentComponent } from './anchor.content.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxInjectionComponentModule],\n declarations: [DbxAnchorComponent, DbxAnchorIconComponent, DbxAnchorLinkComponent, DbxAnchorContentComponent],\n exports: [DbxAnchorComponent, DbxAnchorIconComponent, DbxAnchorLinkComponent, DbxAnchorContentComponent]\n})\nexport class DbxRouterAnchorModule {}\n","import { MatListModule } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxAnchorListComponent } from './anchorlist.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, DbxInjectionComponentModule, MatTabsModule, MatButtonModule, MatIconModule, MatListModule, MatMenuModule, DbxRouterAnchorModule],\n declarations: [DbxAnchorListComponent],\n exports: [DbxAnchorListComponent]\n})\nexport class DbxRouterAnchorListModule {}\n","import { ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { combineLatest, distinctUntilChanged, map, Observable, shareReplay, switchMap } from 'rxjs';\n\n/**\n * Configuration for the preset filter menus\n */\nexport interface DbxPresetFilterMenuConfig {\n /**\n * The text to display for the unknown selection.\n */\n unknownSelectionText?: string;\n /**\n * The icon to use for the filter, or false if no icon should be shown.\n */\n filterIcon?: Maybe<string> | false;\n /**\n * Whether or not to use the preset's icon if one is defined. If filterIcon is false, the icon will only appear when an item is selected.\n */\n usePresetIcon?: boolean;\n}\n\nexport function dbxPresetFilterMenuButtonTextObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'title'>>>>, defaultText = 'Filter') {\n return combineLatest([config$, selection$]).pipe(\n map(([config, preset]) => preset?.title ?? config.unknownSelectionText ?? defaultText),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n\nexport function dbxPresetFilterMenuButtonIconObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'icon'>>>>, defaultIcon = 'arrow_drop_down') {\n return config$.pipe(\n switchMap((config) => {\n const filterIcon = config.filterIcon === false ? '' : config.filterIcon || defaultIcon;\n\n return selection$.pipe(\n map((preset) => {\n let icon: Maybe<string>;\n\n if (config.filterIcon === false) {\n if (config.usePresetIcon) {\n icon = preset?.icon;\n }\n } else if (config.usePresetIcon) {\n icon = preset?.icon ?? filterIcon;\n } else {\n icon = filterIcon;\n }\n\n return icon;\n })\n );\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Component, Input } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\n\n/**\n * Displays a button and menu for filtering presets.\n */\n@Component({\n selector: 'dbx-preset-filter-menu',\n templateUrl: './filter.preset.menu.component.html'\n})\nexport class DbxPresetFilterMenuComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {\n private _config = new BehaviorSubject<DbxPresetFilterMenuConfig>({});\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this._config, this.selectedPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this._config, this.selectedPreset$);\n\n @Input()\n get config(): DbxPresetFilterMenuConfig {\n return this._config.value;\n }\n\n set config(config: DbxPresetFilterMenuConfig) {\n this._config.next(config);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._config.complete();\n }\n}\n","<button mat-button [matMenuTriggerFor]=\"menu\" class=\"dbx-preset-filter-menu-button\" aria-label=\"open filter\">\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"buttonIcon$ | async\">{{ buttonIcon$ | async }}</mat-icon>\n <span>{{ buttonText$ | async }}</span>\n</button>\n<mat-menu #menu class=\"dbx-preset-filter-menu\">\n <dbx-anchor *ngFor=\"let anchor of presetAnchors$ | async\" [anchor]=\"anchor\">\n <button mat-menu-item [ngClass]=\"anchor.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"anchor.icon\">{{ anchor.icon }}</mat-icon>\n {{ anchor.title }}\n </button>\n </dbx-anchor>\n</mat-menu>\n","import { Directive, inject } from '@angular/core';\nimport { DbxInjectionTemplateConfig } from '@dereekb/dbx-core';\nimport { Observable, distinctUntilChanged, shareReplay, map } from 'rxjs';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Abstract implementation\n */\n@Directive()\nexport abstract class AbstractDbxSegueAnchorDirective {\n readonly parent = inject(DbxAnchorComponent);\n\n readonly target$ = this.parent.target$;\n\n readonly ref$ = this.parent.anchor$.pipe(\n map((x) => x?.ref),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly refParams$ = this.parent.anchor$.pipe(\n map((x) => x?.refParams),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly refOptions$ = this.parent.anchor$.pipe(\n map((x) => x?.refOptions),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly template$: Observable<DbxInjectionTemplateConfig> = this.parent.templateRef$.pipe(\n distinctUntilChanged(),\n map((templateRef) => ({\n templateRef\n })),\n shareReplay(1)\n );\n\n get anchor() {\n return this.parent.anchor;\n }\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { ArrayOrValue, modifier, Modifier, ModifierFunction, ModifierMap } from '@dereekb/util';\nimport { Observable } from 'rxjs';\nimport { DbxValueListItem } from './list.view.value';\n\n// MARK: ValueListView\nexport abstract class DbxValueListItemModifier<T = unknown, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n abstract readonly modifiers$: Observable<ModifierMap<I>>;\n\n abstract addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n abstract removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n}\n\nexport function provideDbxValueListViewModifier<V extends DbxValueListItemModifier>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxValueListItemModifier,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n\n// MARK: Utility\nexport type ListItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> = Modifier<I>;\n\nexport function listItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>>(key: string, modify: ModifierFunction<I>): ListItemModifier<T, I> {\n return modifier(key, modify);\n}\n","import { BehaviorSubject, map, Observable, shareReplay, combineLatest } from 'rxjs';\nimport { Directive, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { DbxValueListItem } from './list.view.value';\nimport { addModifiers, ArrayOrValue, combineMaps, Maybe, Modifier, ModifierMap, removeModifiers } from '@dereekb/util';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxValueListItemModifier, provideDbxValueListViewModifier } from './list.view.value.modifier';\n\n/**\n * DbxValueListViewModifier implementation\n */\n@Directive({\n selector: '[dbxListItemModifier]',\n providers: provideDbxValueListViewModifier(DbxValueListItemModifierDirective)\n})\nexport class DbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListItemModifier<T, I>, OnDestroy {\n private _modifiers = new BehaviorSubject<Maybe<ModifierMap<I>>>(undefined);\n private _inputModifiers = new BehaviorSubject<Maybe<ArrayOrValue<Modifier<I>>>>(undefined);\n\n readonly modifiers$ = combineLatest([this._modifiers, this._inputModifiers]).pipe(\n map(([modifiers, inputModifiers]) => {\n return combineMaps(modifiers, inputModifiers ? addModifiers(inputModifiers) : undefined);\n }),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._modifiers.complete();\n }\n\n // MARK: Modifiers\n addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._modifiers.next(addModifiers(modifiers, this._modifiers.value));\n }\n\n removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._modifiers.next(removeModifiers(modifiers, this._modifiers.value));\n }\n\n // MARK: Input Modifiers\n @Input('dbxListItemModifier')\n set inputModifiers(inputModifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._inputModifiers.next(inputModifiers);\n }\n}\n\n/**\n * Abstract directive used for managing modifyers for a DbxValueListView.\n */\n@Directive()\nexport abstract class AbstractDbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements OnInit, OnDestroy {\n readonly dbxValueListItemModifier = inject(DbxValueListItemModifier<T, I>);\n\n abstract readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<I>>>>;\n\n private _linkedModifiers: Maybe<ArrayOrValue<Modifier<I>>>;\n private _modifiersSub = new SubscriptionObject();\n\n ngOnInit(): void {\n this._modifiersSub.subscription = this.modifiers$.subscribe((modifiers) => {\n this._linkModifiers(modifiers);\n });\n }\n\n ngOnDestroy(): void {\n this._unlinkModifiers();\n }\n\n private _linkModifiers(modifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._unlinkModifiers();\n\n if (modifiers) {\n this.dbxValueListItemModifier.addModifiers(modifiers);\n this._linkedModifiers = modifiers;\n }\n }\n\n private _unlinkModifiers() {\n if (this._linkedModifiers) {\n this.dbxValueListItemModifier.removeModifiers(this._linkedModifiers);\n this._linkedModifiers = undefined;\n }\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { DbxValueListItem } from '../../../layout/list/list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from '../../../layout/list/list.view.value.modifier.directive';\n\nexport type AnchorForValueFunction<T> = (value: T, item: DbxValueListItem<T>) => Maybe<ClickableAnchor>;\n\nexport const DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY = 'router_anchor';\n\n@Directive({\n selector: '[dbxListItemAnchorModifier]'\n})\nexport class DbxListItemAnchorModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _anchorForItem = new BehaviorSubject<Maybe<AnchorForValueFunction<T>>>(undefined);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._anchorForItem.pipe(\n map((anchorForItem) => {\n let modifiers: Maybe<Modifier<DbxValueListItem<T>>>;\n\n if (anchorForItem) {\n modifiers = {\n key: DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.anchor = anchorForItem(x.itemValue, x);\n }\n };\n }\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._anchorForItem.complete();\n }\n\n @Input('dbxListItemAnchorModifier')\n set anchorForItem(anchorForItem: Maybe<AnchorForValueFunction<T>>) {\n this._anchorForItem.next(anchorForItem);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxListItemAnchorModifierDirective } from './router.list.directive';\n\n@NgModule({\n imports: [],\n declarations: [DbxListItemAnchorModifierDirective],\n exports: [DbxListItemAnchorModifierDirective]\n})\nexport class DbxRouterListModule {}\n","/**\n * Set of screen media width types. Their pixel sizes correspond with the DbxScreenMediaService's configuration.\n *\n * Values:\n * - micro: Screen is considered mobile.\n * - small: Screen is consider small, but larger than mobile.\n * - tablet: Screen is considered tablet size.\n * - large: Screen is considered large than a tablet, but not full size.\n * - full: Screen is greater than large.\n */\nexport type ScreenMediaWidthType = 'micro' | 'small' | 'tablet' | 'large' | 'full';\n\nexport const SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP = {\n micro: 0,\n small: 1,\n tablet: 2,\n large: 3,\n full: 4\n};\n\n/**\n * Describes the current screen's vertical space.\n *\n * Values:\n * - tiny: Screen height is tiny, potentially the size of the navigation alone.\n * - normal: Screen has a normal height.\n */\nexport type ScreenMediaHeightType = 'tiny' | 'normal';\n\n/**\n * Compares the breakpoint with the current width and determines if it is \"active\" or not.\n *\n * The current is considered active if it is bigger or equal to the breakpoint.\n *\n * @param current\n * @param breakpoint\n */\nexport function screenMediaWidthTypeIsActive(current: ScreenMediaWidthType, breakpoint: ScreenMediaWidthType) {\n return compareScreenMediaWidthTypes(current, breakpoint, (a, b) => a >= b);\n}\n\nexport function compareScreenMediaWidthTypes(a: ScreenMediaWidthType, b: ScreenMediaWidthType, compare: (a: number, b: number) => boolean) {\n return compare(SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[a], SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[b]);\n}\n","import { Destroyable } from '@dereekb/util';\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport { ObservableOrValue, asObservable, initialize } from '@dereekb/rxjs';\nimport { Subject, map, shareReplay, distinctUntilChanged, throttleTime, Observable, combineLatest } from 'rxjs';\nimport { ScreenMediaWidthType, ScreenMediaHeightType, screenMediaWidthTypeIsActive } from './screen';\nimport { Inject, Injectable, inject } from '@angular/core';\n\n/**\n * ScreenMediaService configuration.\n */\nexport abstract class DbxScreenMediaServiceConfig {\n /**\n * The maximum size of a micro screen. Any size bigger than this is considered a small screen or larger.\n */\n abstract microScreenWidthMax: number;\n /**\n * The maximum size of a small screen. Any size bigger than this is considered a tablet screen or larger.\n */\n abstract smallScreenWidthMax: number;\n /**\n * The maximum size of a tablet screen. Any size bigger than this is considered a large screen or larger.\n */\n abstract tabletScreenWidthMax: number;\n /**\n * The maximum size of a large screen. Any size bigger than this is considered full.\n */\n abstract largeScreenWidthMax: number;\n /**\n * The maximum size of a tiny screen. Any size bigger than this is considered normal.\n */\n abstract tinyScreenHeightMax: number;\n}\n\nexport const DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG: DbxScreenMediaServiceConfig = {\n microScreenWidthMax: 360,\n smallScreenWidthMax: 520,\n tabletScreenWidthMax: 786,\n largeScreenWidthMax: 1280,\n tinyScreenHeightMax: 280\n};\n\n/**\n * Service that emits the current view type based on the configuration.\n */\n@Injectable()\nexport class DbxScreenMediaService implements Destroyable {\n private readonly _media = inject(MediaMatcher);\n\n private _microQuery: MediaQueryList;\n private _smallQuery: MediaQueryList;\n private _tabletQuery: MediaQueryList;\n private _largeQuery: MediaQueryList;\n\n private _tinyHeightQuery: MediaQueryList;\n\n private _updateWidth = new Subject<void>();\n private _updateHeight = new Subject<void>();\n\n readonly widthType$: Observable<ScreenMediaWidthType> = this._updateWidth.pipe(\n initialize(() => this._updateWidth.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readWidthType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly heightType$: Observable<ScreenMediaHeightType> = this._updateWidth.pipe(\n initialize(() => this._updateHeight.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readHeightType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n constructor(@Inject(DbxScreenMediaServiceConfig) config: DbxScreenMediaServiceConfig) {\n const { microScreenWidthMax, smallScreenWidthMax, tabletScreenWidthMax, largeScreenWidthMax } = config;\n\n this._microQuery = this._media.matchMedia(`screen and (max-width:${microScreenWidthMax}px)`);\n this._smallQuery = this._media.matchMedia(`screen and (max-width:${smallScreenWidthMax}px)`);\n this._tabletQuery = this._media.matchMedia(`screen and (max-width:${tabletScreenWidthMax}px)`);\n this._largeQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n this._tinyHeightQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n const widthHandler: (ev: MediaQueryListEvent) => void = () => this._updateWidth.next();\n const heightHandler: (ev: MediaQueryListEvent) => void = () => this._updateHeight.next();\n\n this._microQuery.onchange = widthHandler;\n this._smallQuery.onchange = widthHandler;\n this._tabletQuery.onchange = widthHandler;\n this._largeQuery.onchange = widthHandler;\n this._tinyHeightQuery.onchange = heightHandler;\n }\n\n destroy(): void {\n this._microQuery.onchange = null;\n this._smallQuery.onchange = null;\n this._tabletQuery.onchange = null;\n this._largeQuery.onchange = null;\n this._updateWidth.complete();\n this._updateHeight.complete();\n }\n\n /**\n * Returns an observable that detects whether or no the current width is greater or equal to the given breakpoint.\n *\n * @param inputBreakpoint\n * @returns\n */\n isBreakpointActive(inputBreakpoint: ObservableOrValue<ScreenMediaWidthType>): Observable<boolean> {\n return combineLatest([this.widthType$, asObservable(inputBreakpoint)]).pipe(\n map(([current, breakpoint]) => screenMediaWidthTypeIsActive(current, breakpoint)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n private _readWidthType(): ScreenMediaWidthType {\n let width: ScreenMediaWidthType;\n\n if (this._microQuery.matches) {\n width = 'micro';\n } else if (this._smallQuery.matches) {\n width = 'small';\n } else if (this._tabletQuery.matches) {\n width = 'tablet';\n } else if (this._largeQuery.matches) {\n width = 'large';\n } else {\n width = 'full';\n }\n\n return width;\n }\n\n private _readHeightType(): ScreenMediaHeightType {\n if (this._tinyHeightQuery) {\n return 'tiny';\n } else {\n return 'normal';\n }\n }\n}\n","import { Observable, BehaviorSubject, combineLatest, map, shareReplay, distinctUntilChanged, switchMap } from 'rxjs';\nimport { ScreenMediaWidthType } from './../../../screen/screen';\nimport { DbxScreenMediaService } from '../../../screen/screen.service';\nimport { applyBestFit, findNext, Maybe } from '@dereekb/util';\nimport { Input, Component, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, TrackByFunction, inject } from '@angular/core';\nimport { ClickableAnchorLinkSegueRef, DbxRouterService, AbstractTransitionDirective, tapDetectChanges, DbxButtonDisplayContent } from '@dereekb/dbx-core';\nimport { HorizontalConnectionPos } from '@angular/cdk/overlay';\n\ninterface NavAnchorLink {\n selected: boolean;\n anchor: ClickableAnchorLinkSegueRef;\n}\n\nexport type NavBarContentAlign = 'center' | 'left' | 'right';\nexport type NavbarMode = 'bar' | 'button' | 'icon';\nexport type NavbarButtonMode = 'menu' | 'rotate';\n\n/**\n * Component that displays a navbar.\n */\n@Component({\n selector: 'dbx-navbar',\n templateUrl: './navbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-navbar'\n }\n})\nexport class DbxNavbarComponent extends AbstractTransitionDirective implements OnDestroy {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n private readonly _dbxRouterService = inject(DbxRouterService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n /**\n * Whether or not to show the dropwdown caret for a menu\n */\n @Input()\n showMenuCaret = false;\n\n @Input()\n navAlign: HorizontalConnectionPos = 'center';\n\n private _icon = new BehaviorSubject<Maybe<string>>(undefined);\n private _defaultIcon = new BehaviorSubject<Maybe<string>>('menu');\n private _defaultText = new BehaviorSubject<Maybe<string>>(undefined);\n\n private _inputMode = new BehaviorSubject<Maybe<NavbarMode>>(undefined);\n private _buttonMode = new BehaviorSubject<NavbarButtonMode>('menu');\n private _breakpoint = new BehaviorSubject<ScreenMediaWidthType>('large');\n private _anchors = new BehaviorSubject<ClickableAnchorLinkSegueRef[]>([]);\n\n readonly isBreakpointActive$ = this._dbxScreenMediaService.isBreakpointActive(this._breakpoint);\n\n readonly mode$ = combineLatest([this._inputMode, this.isBreakpointActive$]).pipe(\n map(([inputMode, breakpointActive]) => {\n return breakpointActive ? inputMode ?? 'bar' : 'button';\n }),\n distinctUntilChanged(),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n\n readonly anchors$: Observable<NavAnchorLink[]> = combineLatest([this._anchors, this.initAndUpdateOnTransitionSuccess$]).pipe(\n map(([anchors]) => {\n const results = anchors.map((anchor) => {\n const selected = this._dbxRouterService.isActive(anchor);\n\n return {\n selected,\n anchor\n };\n });\n\n return applyBestFit(\n results,\n (x) => x.selected,\n (a, b) => this._dbxRouterService.comparePrecision(a.anchor, b.anchor),\n (nonBestFit) => ({ ...nonBestFit, selected: false })\n );\n }),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n\n readonly buttonMode$ = this._buttonMode.pipe(distinctUntilChanged(), shareReplay(1));\n\n readonly selectedAnchor$: Observable<Maybe<NavAnchorLink>> = this.anchors$.pipe(map((x) => x.find((y) => y.selected)));\n readonly nextRotateAnchor$: Observable<Maybe<NavAnchorLink>> = this.anchors$.pipe(map((x) => findNext(x, (y) => y.selected) || x[0]));\n\n readonly hasNoAnchors$ = this.anchors$.pipe(\n map((x) => x.length === 0),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonNavAnchor$ = this.buttonMode$.pipe(\n switchMap((x) => (x === 'menu' ? this.selectedAnchor$ : this.nextRotateAnchor$)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonDisplay$: Observable<DbxButtonDisplayContent> = combineLatest([this._defaultIcon, this._icon, this._defaultText, this.buttonNavAnchor$, this.mode$]).pipe(\n map(([defaultIcon, icon, defaultText, selectedAnchor, mode]) => {\n let content: DbxButtonDisplayContent;\n\n if (icon) {\n content = { icon, text: defaultText };\n } else if (selectedAnchor) {\n content = { icon: selectedAnchor.anchor.icon ?? defaultIcon, text: selectedAnchor.anchor.title };\n } else {\n content = { icon: defaultIcon ?? 'menu', text: defaultText };\n }\n\n if (mode === 'icon') {\n return { icon: content.icon };\n } else {\n return content;\n }\n }),\n shareReplay(1)\n );\n\n readonly trackByFunction: TrackByFunction<NavAnchorLink> = (index: number, item: NavAnchorLink) => item.anchor;\n\n // TODO: potentially make the caret depending on the current button display.\n\n ngOnDestroy(): void {\n this._icon.complete();\n this._defaultIcon.complete();\n this._defaultText.complete();\n this._inputMode.complete();\n this._buttonMode.complete();\n this._breakpoint.complete();\n this._anchors.complete();\n }\n\n // MARK: Accessors\n @Input()\n public set icon(icon: Maybe<string>) {\n this._icon.next(icon);\n }\n\n @Input()\n public set defaultIcon(defaultIcon: Maybe<string>) {\n this._defaultIcon.next(defaultIcon);\n }\n\n @Input()\n public set defaultText(defaultText: Maybe<string>) {\n this._defaultText.next(defaultText);\n }\n\n @Input()\n public set anchors(anchors: Maybe<ClickableAnchorLinkSegueRef[]>) {\n this._anchors.next(anchors ?? []);\n }\n\n @Input()\n public set buttonMode(mode: Maybe<NavbarButtonMode>) {\n this._buttonMode.next(mode ?? 'menu');\n }\n\n @Input()\n public set mode(mode: Maybe<NavbarMode>) {\n this._inputMode.next(mode);\n }\n\n @Input()\n public set breakpoint(breakpoint: ScreenMediaWidthType) {\n this._breakpoint.next(breakpoint);\n }\n}\n","<ng-container [ngSwitch]=\"mode$ | async\">\n <!-- Button -->\n <ng-container *ngSwitchDefault>\n <ng-container [ngSwitch]=\"buttonMode$ | async\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchors$ | async\">\n <mat-icon *ngIf=\"showMenuCaret\">arrow_drop_down</mat-icon>\n </dbx-icon-button>\n <mat-menu #menu>\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"x.anchor.icon\">{{ x.anchor.icon }}</mat-icon>\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n </mat-menu>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rotate'\">\n <dbx-anchor [anchor]=\"(nextRotateAnchor$ | async)?.anchor\">\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [disabled]=\"hasNoAnchors$ | async\"></dbx-icon-button>\n </dbx-anchor>\n </ng-container>\n </ng-container>\n </ng-container>\n <!-- Bar -->\n <ng-container *ngSwitchCase=\"'bar'\">\n <nav mat-tab-nav-bar [tabPanel]=\"tabPanel\" [attr.mat-align-tabs]=\"navAlign\">\n <dbx-anchor *ngFor=\"let x of anchors$ | async; trackBy: trackByFunction\" [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n </nav>\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n </ng-container>\n</ng-container>\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxNavbarComponent } from './navbar.component';\nimport { DbxIconButtonModule } from '../../../button';\nimport { UIRouterModule } from '@uirouter/angular';\n\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxIconButtonModule,\n MatTabsModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n UIRouterModule,\n DbxRouterAnchorModule\n ],\n declarations: [DbxNavbarComponent],\n exports: [DbxNavbarComponent]\n})\nexport class DbxRouterNavbarModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxScreenMediaService, DbxScreenMediaServiceConfig, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG } from './screen.service';\n\n@NgModule()\nexport class DbxScreenModule {\n static forRoot(config: DbxScreenMediaServiceConfig = DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG): ModuleWithProviders<DbxScreenModule> {\n return {\n ngModule: DbxScreenModule,\n providers: [\n {\n provide: DbxScreenMediaServiceConfig,\n useValue: config\n },\n DbxScreenMediaService\n ]\n };\n }\n}\n","export enum SideNavDisplayMode {\n NONE = 'none',\n MOBILE = 'mobile',\n ICON = 'icon',\n FULL = 'full'\n}\n","import { OnDestroy, OnInit, Component, Input, ViewChild, inject } from '@angular/core';\nimport { MatDrawerMode, MatSidenav } from '@angular/material/sidenav';\nimport { DbxScreenMediaService } from '../../../screen';\nimport { AbstractTransitionWatcherDirective, ClickableAnchorLinkTree } from '@dereekb/dbx-core';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { distinctUntilChanged, map, shareReplay, Observable, first } from 'rxjs';\nimport { SideNavDisplayMode } from './sidenav';\n\nexport interface DbxSidenavSidebarState {\n mode: SideNavDisplayMode;\n drawer: MatDrawerMode;\n open?: boolean;\n}\n\n/**\n * Navigation component that sits at the side of an app.\n */\n@Component({\n selector: 'dbx-sidenav',\n exportAs: 'sidenav',\n templateUrl: './sidenav.component.html'\n})\nexport class DbxSidenavComponent extends AbstractTransitionWatcherDirective implements OnInit, OnDestroy {\n private _screenMediaService = inject(DbxScreenMediaService);\n\n @Input()\n anchors?: Maybe<ClickableAnchorLinkTree[]>;\n\n @ViewChild(MatSidenav, { static: true })\n readonly sidenav!: MatSidenav;\n\n readonly mode$: Observable<SideNavDisplayMode> = this._screenMediaService.widthType$.pipe(\n distinctUntilChanged(),\n map((width) => {\n let mode!: SideNavDisplayMode;\n\n switch (width) {\n case 'micro':\n case 'small':\n mode = SideNavDisplayMode.MOBILE;\n break;\n case 'tablet':\n mode = SideNavDisplayMode.ICON;\n break;\n case 'large':\n case 'full':\n mode = SideNavDisplayMode.FULL;\n break;\n }\n\n return mode;\n }),\n shareReplay(1)\n );\n\n readonly disableBackdrop$: Observable<boolean> = this.mode$.pipe(\n map((x) => x !== SideNavDisplayMode.MOBILE),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly sizeClass$: Observable<string> = this.mode$.pipe(\n map((mode) => `dbx-sidenav-${mode}`),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly state$: Observable<DbxSidenavSidebarState> = this.mode$.pipe(\n map((mode) => {\n let drawer!: MatDrawerMode;\n let open!: boolean;\n\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n drawer = 'over';\n open = false;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n drawer = 'side';\n open = true;\n break;\n }\n\n return {\n mode,\n drawer,\n open\n };\n }),\n shareReplay(1)\n );\n\n readonly drawer$: Observable<MatDrawerMode> = this.state$.pipe(\n map((x) => x.drawer),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n private _watcherSub = new SubscriptionObject();\n private _stateSub = new SubscriptionObject();\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n this._stateSub.subscription = this.state$.subscribe((state) => {\n if (state.open != null) {\n this._toggleNav(state.open, true);\n }\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._watcherSub.destroy();\n this._stateSub.destroy();\n }\n\n protected updateForSuccessfulTransition(): void {\n this.closeNav();\n }\n\n closeNav(): void {\n this.toggleNav(false);\n }\n\n toggleNav(open?: boolean): void {\n this._toggleNav(open);\n }\n\n private _toggleNav(toggleOpen = !this.sidenav.opened, forced = false): void {\n this.state$.pipe(first()).subscribe(({ mode }) => {\n this.ngZone.run(() => {\n let open: Maybe<boolean>;\n\n if (!forced) {\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n open = toggleOpen;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n // Do nothing. Should be always open.\n break;\n }\n } else {\n open = toggleOpen;\n }\n\n if (open != null) {\n if (open) {\n this.sidenav.open();\n } else {\n this.sidenav.close();\n }\n }\n });\n });\n }\n}\n","<mat-sidenav-container class=\"dbx-sidenav\" [ngClass]=\"(sizeClass$ | async) ?? ''\">\n <mat-sidenav class=\"dbx-sidenav-nav\" [disableClose]=\"disableBackdrop$ | async\" [mode]=\"(drawer$ | async)!\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-anchor-list class=\"dbx-sidenav-anchor-list\" [anchors]=\"anchors\"></dbx-anchor-list>\n <span class=\"spacer\"></span>\n <ng-content select=\"[bottom]\"></ng-content>\n <div class=\"dbx-sidenav-nav-end\"></div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n@Component({\n selector: 'dbx-pagebar',\n templateUrl: './pagebar.component.html'\n})\nexport class DbxPagebarComponent {\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","<mat-toolbar class=\"dbx-pagebar\" [ngClass]=\"color ? 'dbx-bar-' + color : ''\">\n <ng-content select=\"[left]\"></ng-content>\n <span class=\"spacer\"></span>\n <ng-content select=\"[right]\"></ng-content>\n</mat-toolbar>\n","import { Component, Input, inject } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\n\nexport const DEFAULT_DBX_SIDENAV_MENU_ICON = 'view_sidebar';\n\n/**\n * Button used to interface with a parent sidenav.\n */\n@Component({\n selector: 'dbx-sidenav-button',\n template: `\n <button class=\"dbx-sidenav-button\" mat-icon-button *ngIf=\"showMenuButton$ | async\" (click)=\"toggleNav()\" aria-label=\"open sidenav button\">\n <mat-icon>{{ sidenavMenuIcon }}</mat-icon>\n </button>\n `\n})\nexport class DbxSidenavButtonComponent {\n readonly parent = inject(DbxSidenavComponent);\n readonly mode$ = this.parent.mode$;\n readonly showMenuButton$ = this.mode$.pipe(map((x) => x === SideNavDisplayMode.MOBILE));\n\n private _sidenavMenuIcon: string = DEFAULT_DBX_SIDENAV_MENU_ICON;\n\n toggleNav() {\n this.parent.toggleNav();\n }\n\n @Input()\n get sidenavMenuIcon() {\n return this._sidenavMenuIcon;\n }\n\n set sidenavMenuIcon(sidenavMenuIcon: Maybe<string>) {\n this._sidenavMenuIcon = sidenavMenuIcon || DEFAULT_DBX_SIDENAV_MENU_ICON;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxPagebarComponent } from '../../../layout/bar/pagebar.component';\n\n/**\n * Pre-configured pagebar used with DbxSidenavComponent.\n */\n@Component({\n selector: 'dbx-sidenav-pagebar',\n template: `\n <dbx-pagebar class=\"dbx-sidenav-pagebar\" [color]=\"color\">\n <span left>\n <dbx-sidenav-button [sidenavMenuIcon]=\"sidenavMenuIcon\"></dbx-sidenav-button>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content left></ng-content>\n </span>\n <ng-content right></ng-content>\n </dbx-pagebar>\n `\n})\nexport class DbxSidenavPagebarComponent extends DbxPagebarComponent {\n @Input()\n sidenavMenuIcon: Maybe<string>;\n}\n","import { BehaviorSubject, switchMap, shareReplay, map, of } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from '../../../layout/bar/bar';\nimport { SideNavDisplayMode } from './sidenav';\n\n/**\n * Pre-configured page used with DbxSidenavComponent.\n *\n * Can optionally be configured to only show the pagebar while in mobile mode.\n */\n@Component({\n selector: 'dbx-sidenav-page',\n template: `\n <div [ngClass]=\"(hidePagebar$ | async) ? 'dbx-pagebar-hide' : ''\">\n <dbx-sidenav-pagebar [sidenavMenuIcon]=\"sidenavMenuIcon\" [color]=\"color\">\n <ng-content left select=\"[navLeft]\"></ng-content>\n <ng-content select=\"[navRight]\"></ng-content>\n </dbx-sidenav-pagebar>\n <div class=\"dbx-content-page dbx-sidenav-page-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxSidenavPageComponent implements OnDestroy {\n readonly parent = inject(DbxSidenavComponent);\n\n @Input()\n sidenavMenuIcon: Maybe<string>;\n\n @Input()\n color?: Maybe<DbxBarColor>;\n\n private _mobileOnly = new BehaviorSubject<boolean>(false);\n\n readonly hidePagebar$ = this._mobileOnly.pipe(\n switchMap((mobileOnly) => (mobileOnly ? this.parent.mode$.pipe(map((x) => x !== SideNavDisplayMode.MOBILE)) : of(false))),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._mobileOnly.complete();\n }\n\n @Input()\n get mobileOnly(): boolean {\n return this._mobileOnly.value;\n }\n\n set mobileOnly(mobileOnly: boolean) {\n this._mobileOnly.next(mobileOnly);\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n/**\n * Acts as a wrapper for content distributed along a bar.\n */\n@Directive({\n selector: 'dbx-bar,[dbxBar]',\n host: {\n class: 'dbx-bar',\n '[class]': 'color ? (\"dbx-\" + color + \"-bg\") : \"dbx-bg\"'\n }\n})\nexport class DbxBarDirective {\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n/**\n * Acts as a divider between content and centers a label within a background.\n */\n@Component({\n selector: 'dbx-bar-header',\n template: `\n <dbx-bar [color]=\"color\">\n <mat-icon class=\"button-spacer\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"text\">{{ text }}</span>\n <ng-content></ng-content>\n </dbx-bar>\n `,\n host: {\n class: 'dbx-bar-header dbx-hint'\n }\n})\nexport class DbxBarHeaderComponent {\n @Input()\n text?: Maybe<string>;\n\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","import { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxBarDirective } from './bar.directive';\nimport { DbxBarHeaderComponent } from './bar.header.component';\nimport { DbxPagebarComponent } from './pagebar.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, MatToolbarModule, MatIconModule],\n declarations: [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent],\n exports: [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent]\n})\nexport class DbxBarLayoutModule {}\n","import { Directive, Input } from '@angular/core';\n\n/**\n * Section used to elevate content in a pre-configured manner.\n */\n@Directive({\n selector: 'dbx-content-elevate,[dbxContentElevate]',\n host: {\n class: 'd-block',\n '[class.dbx-content-elevate]': 'elevate'\n }\n})\nexport class DbxContentElevateDirective {\n @Input()\n elevate = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content,[dbxContent]',\n host: {\n class: 'd-block dbx-content'\n }\n})\nexport class DbxContentDirective {}\n","import { Directive, Input } from '@angular/core';\nimport { DbxThemeColor } from '../style/style';\n\n/**\n * Section used to wrap content in a border with internal padding.\n */\n@Directive({\n selector: 'dbx-content-border,[dbxContentBorder]',\n host: {\n class: 'd-block dbx-content-border',\n '[class]': `\"dbx-content-border-\" + color`\n }\n})\nexport class DbxContentBorderDirective {\n @Input()\n color: DbxThemeColor = 'background';\n}\n","import { Input, Directive } from '@angular/core';\n\nexport type DbxContentContainerPadding = 'none' | 'min' | 'small' | 'normal';\n\nexport type DbxContentContainerWidth = 'small' | 'medium' | 'large' | 'wide' | 'full';\n\n/**\n * Component that limits the max-width of the content.\n */\n@Directive({\n selector: 'dbx-content-container,[dbxContentContainer],.dbx-content-container',\n host: {\n class: 'd-block dbx-content-container',\n '[class]': `\"container-\" + grow + \" container-padding-\" + padding + \" container-top-padding-\" + topPadding`\n }\n})\nexport class DbxContentContainerDirective {\n @Input()\n grow: DbxContentContainerWidth = 'wide';\n\n @Input()\n padding: DbxContentContainerPadding = 'normal';\n\n @Input()\n topPadding: DbxContentContainerPadding = 'none';\n}\n","import { Directive, Input } from '@angular/core';\n\n/**\n * Component used to wrap content in a box with optionally elevation.\n */\n@Directive({\n selector: 'dbx-content-box, [dbxContentBox]',\n host: {\n class: 'd-block dbx-content-box',\n '[class.dbx-content-elevate]': 'elevate',\n '[class.dbx-content-box-wide]': 'wide'\n }\n})\nexport class DbxContentBoxDirective {\n @Input()\n elevate = true;\n\n @Input()\n wide = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content-page,[dbxContentPage]',\n host: {\n class: 'd-block dbx-content-page'\n }\n})\nexport class DbxContentPageDirective {}\n","import { Directive, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Component used to wrap content in a pit with a label.\n */\n@Directive({\n selector: 'dbx-content-pit, [dbxContentPit]',\n host: {\n class: 'd-block dbx-content-pit',\n '[class.dbx-content-pit-scrollable]': 'scrollable'\n }\n})\nexport class DbxContentPitDirective {\n @Input()\n scrollable?: Maybe<boolean>;\n}\n","import { DbxContentElevateDirective } from './content.elevate.directive';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxContentDirective } from './content.directive';\nimport { DbxContentBorderDirective } from './content.border.directive';\nimport { DbxContentContainerDirective } from './content.container.directive';\nimport { DbxContentBoxDirective } from './content.box.directive';\nimport { DbxContentPageDirective } from './content.page.directive';\nimport { DbxContentPitDirective } from './content.pit.directive';\n\nconst declarations = [\n //\n DbxContentDirective,\n DbxContentContainerDirective,\n DbxContentBorderDirective,\n DbxContentElevateDirective,\n DbxContentBoxDirective,\n DbxContentPageDirective,\n DbxContentPitDirective\n];\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [CommonModule],\n declarations,\n exports: declarations\n})\nexport class DbxContentLayoutModule {}\n","import { OnDestroy, Input, Directive, inject } from '@angular/core';\nimport { AbstractIfDirective } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, asArray, filterMaybeValues } from '@dereekb/util';\nimport { shareReplay, BehaviorSubject, switchMap, distinctUntilChanged, map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\n\n/**\n * Structural directive that displays the content if the Sidenav has a specific sidenav size.\n */\n@Directive({\n selector: '[dbxIfSidenavDisplayMode]'\n})\nexport class DbxIfSidenavDisplayModeDirective extends AbstractIfDirective implements OnDestroy {\n private _sidenavModes = new BehaviorSubject<Set<SideNavDisplayMode>>(new Set([SideNavDisplayMode.NONE]));\n\n readonly dbxSidenavComponent = inject(DbxSidenavComponent);\n readonly show$ = this._sidenavModes.pipe(\n switchMap((modes) => {\n return this.dbxSidenavComponent.mode$.pipe(map((mode) => modes.has(mode)));\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Input('dbxIfSidenavDisplayMode')\n get modes() {\n return Array.from(this._sidenavModes.value);\n }\n\n set modes(modes: Maybe<ArrayOrValue<SideNavDisplayMode | string>>) {\n this._sidenavModes.next(new Set(filterMaybeValues(asArray(modes as SideNavDisplayMode))));\n }\n\n override ngOnDestroy(): void {\n this._sidenavModes.complete();\n }\n}\n","import { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatListModule } from '@angular/material/list';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { DbxRouterAnchorListModule } from '../anchorlist/anchorlist.module';\nimport { DbxSidenavPagebarComponent } from './sidenav.pagebar.component';\nimport { DbxSidenavPageComponent } from './sidenav.page.component';\nimport { DbxBarLayoutModule } from '../../../layout/bar/bar.layout.module';\nimport { DbxButtonModule } from '../../../button/button.module';\nimport { DbxContentLayoutModule } from './../../../layout/content/content.layout.module';\nimport { DbxSidenavButtonComponent } from './sidenav.button.component';\nimport { DbxIfSidenavDisplayModeDirective } from './sidenav.ifdisplaymode.directive';\n\nconst declarations = [DbxIfSidenavDisplayModeDirective, DbxSidenavComponent, DbxSidenavButtonComponent, DbxSidenavPagebarComponent, DbxSidenavPageComponent];\n\n@NgModule({\n imports: [CommonModule, DbxBarLayoutModule, DbxRouterAnchorModule, DbxRouterAnchorListModule, DbxButtonModule, DbxContentLayoutModule, MatToolbarModule, MatButtonModule, MatIconModule, MatSidenavModule, MatListModule, MatDividerModule, UIRouterModule],\n declarations,\n exports: declarations\n})\nexport class DbxRouterSidenavModule {}\n","export * from './sidenav.component';\nexport * from './sidenav.module';\nexport * from './sidenav.button.component';\nexport * from './sidenav.pagebar.component';\nexport * from './sidenav.page.component';\nexport * from './sidenav.ifdisplaymode.directive';\nexport * from './sidenav';\n// export * from './side.item.component';\n// export * from './side.title.component';\n// export * from './side.title.content.component';\n","import { NgModule } from '@angular/core';\nimport { DbxRouterAnchorModule } from './anchor/anchor.module';\nimport { DbxRouterAnchorListModule } from './anchorlist/anchorlist.module';\nimport { DbxRouterListModule } from './list/list.module';\nimport { DbxRouterNavbarModule } from './navbar/navbar.module';\nimport { DbxRouterSidenavModule } from './sidenav/sidenav.module';\n\n@NgModule({\n exports: [DbxRouterAnchorModule, DbxRouterAnchorListModule, DbxRouterListModule, DbxRouterNavbarModule, DbxRouterSidenavModule]\n})\nexport class DbxRouterLayoutModule {}\n","import { Component } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\n\n/**\n * SegueAnchor implementation for Angular Router.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbxAngularRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {}\n","<a class=\"dbx-anchor-a\" [attr.target]=\"target$ | async\">\n <dbx-injection></dbx-injection>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxAngularRouterSegueAnchorComponent } from './anchor.component';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, UIRouterModule, DbxInjectionComponentModule],\n declarations: [DbxAngularRouterSegueAnchorComponent],\n exports: [DbxAngularRouterSegueAnchorComponent]\n})\nexport class DbxWebAngularRouterModule {\n static forRoot(): ModuleWithProviders<DbxWebAngularRouterModule> {\n return {\n ngModule: DbxWebAngularRouterModule,\n providers: [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbxAngularRouterSegueAnchorComponent\n }\n } as DbxRouterWebProviderConfig\n }\n ]\n };\n }\n}\n","import { Observable, filter } from 'rxjs';\nimport { Component } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\nimport { TransitionOptions } from '@uirouter/core';\n\n/**\n * SegueAnchor implementation for UIRouter.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbxUIRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {\n readonly uiRef$ = this.ref$.pipe(filter((x) => typeof x === 'string')) as Observable<string | null>;\n readonly uiOptions$ = this.refOptions$ as Observable<TransitionOptions | null>;\n}\n","<a class=\"dbx-anchor-a dbx-anchor-sref\" [attr.target]=\"target$ | async\" [uiSref]=\"(uiRef$ | async) ?? ''\" [uiParams]=\"refParams$ | async\" [uiOptions]=\"(uiOptions$ | async) ?? {}\" uiSrefActive=\"dbx-anchor-active\" uiSrefActiveEq=\"dbx-anchor-active-eq\">\n <dbx-injection [template]=\"template$ | async\"></dbx-injection>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxUIRouterSegueAnchorComponent } from './anchor.component';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, UIRouterModule, DbxInjectionComponentModule],\n declarations: [DbxUIRouterSegueAnchorComponent],\n exports: [DbxUIRouterSegueAnchorComponent]\n})\nexport class DbxWebUIRouterModule {\n static forRoot(): ModuleWithProviders<DbxWebUIRouterModule> {\n return {\n ngModule: DbxWebUIRouterModule,\n providers: [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbxUIRouterSegueAnchorComponent\n }\n } as DbxRouterWebProviderConfig\n }\n ]\n };\n }\n}\n","import { shareReplay, BehaviorSubject, map, Observable, combineLatest, distinctUntilChanged, startWith, first } from 'rxjs';\nimport { Directive, Input, OnDestroy, inject } from '@angular/core';\nimport { ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset } from '@dereekb/dbx-core';\nimport { filterUndefinedValues, firstValue, getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\n\n/**\n * Displays a button and menu for filtering partialPresets.\n */\n@Directive()\nexport abstract class AbstractDbxPartialPresetFilterMenuDirective<F> implements OnDestroy {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n private _partialPresets = new BehaviorSubject<ClickablePartialFilterPreset<F>[]>([]);\n\n readonly filter$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n\n readonly selectedPartialPresets$: Observable<ClickablePartialFilterPreset<F>[]> = combineLatest([this._partialPresets, this.filter$]).pipe(\n map(([partialPresets, selectedFilter]) => {\n const selectedPresets: ClickablePartialFilterPreset<F>[] = partialPresets.filter((x) => x.isActive(selectedFilter));\n return selectedPresets;\n }),\n distinctUntilChanged()\n );\n\n readonly firstSelectedPartialPreset$: Observable<Maybe<ClickablePartialFilterPreset<F>>> = this.selectedPartialPresets$.pipe(\n map((selectedPartialPresets) => firstValue(selectedPartialPresets)),\n distinctUntilChanged()\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = combineLatest([this._partialPresets, this.firstSelectedPartialPreset$]).pipe(\n map(([partialPresets, firstSelectedPartialPreset]) => {\n return partialPresets.map((x) => {\n return {\n ...x,\n selected: x === firstSelectedPartialPreset,\n onClick: () => {\n this.selectPartialPreset(x);\n }\n };\n });\n }),\n shareReplay(1)\n );\n\n @Input()\n get partialPresets(): ClickablePartialFilterPreset<F>[] {\n return this._partialPresets.value;\n }\n\n set partialPresets(partialPresets: ClickablePartialFilterPreset<F>[]) {\n this._partialPresets.next(partialPresets);\n }\n\n selectPartialPreset(preset: ClickablePartialFilterPreset<F>) {\n const presetValue = preset.partialPresetValue;\n\n if (presetValue == null || (typeof presetValue !== 'function' && objectHasNoKeys(presetValue))) {\n // set and then reset if the value is null or empty\n this.filterSourceDirective.setFilter((presetValue ?? {}) as F);\n this.filterSourceDirective.resetFilter();\n } else {\n const filter = getValueFromGetter(preset.partialPresetValue) as Partial<F>;\n\n this.filter$.pipe(first()).subscribe((currentFilter) => {\n const nextFilter = { ...currentFilter, ...filterUndefinedValues({ ...currentFilter, ...filter }, true) } as F;\n this.filterSourceDirective.setFilter(nextFilter);\n });\n }\n }\n\n ngOnDestroy(): void {\n this._partialPresets.complete();\n }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Component, Input } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\n\n/**\n * Displays a button and menu for filtering partial preset values.\n */\n@Component({\n selector: 'dbx-partial-preset-filter-menu',\n templateUrl: './filter.preset.menu.component.html' // share the same template as the preset menu\n})\nexport class DbxPartialPresetFilterMenuComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {\n private _config = new BehaviorSubject<DbxPresetFilterMenuConfig>({});\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this._config, this.firstSelectedPartialPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this._config, this.firstSelectedPartialPreset$);\n\n @Input()\n get config(): DbxPresetFilterMenuConfig {\n return this._config.value;\n }\n\n set config(config: DbxPresetFilterMenuConfig) {\n this._config.next(config);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._config.complete();\n }\n}\n","import { Component } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\n\n@Component({\n selector: 'dbx-preset-partial-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchors$ | async\"></dbx-anchor-list>\n `\n})\nexport class DbxPartialPresetFilterListComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxFilterPopoverButtonComponent } from './filter.popover.button.component';\nimport { DbxPopoverInteractionModule } from '../popover/popover.module';\nimport { DbxFilterPopoverComponent } from './filter.popover.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxFilterWrapperComponent } from './filter.wrapper.component';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\nimport { DbxCoreFilterModule, DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPresetFilterListComponent } from './filter.preset.list.component';\nimport { DbxRouterAnchorListModule } from '../../router/layout/anchorlist/anchorlist.module';\nimport { DbxPresetFilterMenuComponent } from './filter.preset.menu.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxRouterAnchorModule } from '../../router';\nimport { DbxPartialPresetFilterMenuComponent } from './filter.partial.menu.component';\nimport { DbxPartialPresetFilterListComponent } from './filter.partial.list.component';\n\nconst declarations = [DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxFilterPopoverComponent, DbxFilterPopoverButtonComponent, DbxFilterWrapperComponent, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n DbxPopoverInteractionModule,\n DbxCoreFilterModule,\n DbxButtonModule,\n DbxRouterAnchorModule,\n DbxRouterAnchorListModule,\n DbxInjectionComponentModule,\n FlexLayoutModule,\n // Material\n MatMenuModule,\n MatIconModule,\n MatButtonModule\n ],\n declarations,\n exports: [...declarations, DbxCoreFilterModule]\n})\nexport class DbxFilterInteractionModule {}\n","import { ElementRef, Component, ViewChild, Input } from '@angular/core';\nimport { ResizedEvent } from 'angular-resize-event';\n\n/**\n * Wrapper of a block that is broken into two parts, with the bottom content's height\n * being set to 100% of the height minus the top's height.\n *\n * The block is made up of two divs, a top and a bottom. The top is assigned a static height, and the bottom is given the remainder.\n * The height is calculated from 100%.\n */\n@Component({\n selector: 'dbx-two-block',\n template: `\n <div #two class=\"dbx-two-block-content\">\n <div #top class=\"dbx-two-block-top\" (resized)=\"onResized($event)\">\n <ng-content select=\"[top]\"></ng-content>\n </div>\n <div #bottom class=\"dbx-two-block-bottom\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-two-block d-block',\n '[class]': '{ \"dbx-two-block-fixed-top\": fixedTop }'\n }\n})\nexport class DbxTwoBlocksComponent {\n /**\n * Whether or not the top bar should be fixed in place instead of scrolling with the bottom when content is too tall.\n */\n @Input()\n fixedTop = true;\n\n @ViewChild('two', { read: ElementRef, static: true })\n twoElement!: ElementRef;\n\n /*\n @ViewChild('top', { read: ElementRef, static: true })\n topElement!: ElementRef;\n\n @ViewChild('bottom', { read: ElementRef, static: true })\n bottomElement!: ElementRef;\n */\n\n onResized(event: ResizedEvent): void {\n const height = event.newRect.height;\n const element: HTMLElement = this.twoElement.nativeElement;\n element.style.setProperty('--dbx-two-block-top-height', `${height}px`);\n }\n}\n","import { DbxRouterAnchorModule } from '../../router';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxTwoBlocksComponent } from './two.block.component';\nimport { AngularResizeEventModule } from 'angular-resize-event';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, DbxRouterAnchorModule, AngularResizeEventModule],\n declarations: [DbxTwoBlocksComponent],\n exports: [DbxTwoBlocksComponent]\n})\nexport class DbxBlockLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Component that formats a card-box of content.\n */\n@Component({\n selector: 'dbx-card-box',\n template: `\n <div class=\"dbx-card-box\">\n <div class=\"dbx-section-header\">\n <div class=\"dbx-section-header-content\">\n <h4 class=\"dbx-section-header-content-title\">\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"header\" class=\"title-text\">{{ header }}</span>\n </h4>\n <span class=\"spacer\"></span>\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n </div>\n <div class=\"dbx-card-box-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxCardBoxComponent {\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n}\n","import { Component } from '@angular/core';\n\n/**\n * Component that wraps a card box and adds content padding.\n */\n@Component({\n selector: 'dbx-card-box-container',\n template: `\n <div class=\"dbx-card-box-container\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DbxCardBoxContainerComponent {}\n","import { MatIconModule } from '@angular/material/icon';\nimport { DbxCardBoxContainerComponent } from './card.box.container.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCardBoxComponent } from './card.box.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxCardBoxComponent, DbxCardBoxContainerComponent],\n exports: [DbxCardBoxComponent, DbxCardBoxContainerComponent]\n})\nexport class DbxCardBoxLayoutModule {}\n","import { Injectable, OnDestroy, Provider } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Subject, distinct, map } from 'rxjs';\nimport { SegueRef } from '@dereekb/dbx-core';\nimport { isMaybeNot, Maybe } from '@dereekb/util';\n\nexport interface TwoColumnsState {\n /**\n * Whether or not to reverse the sizing.\n */\n reverseSizing: boolean;\n /**\n * Whether or not the right side should be shown.\n */\n showRight: boolean;\n /**\n * Whether or not there is any registered right content currently.\n */\n hasRight: boolean;\n /**\n * Whether or not to allow the left to fill up the screen when no right is shown.\n */\n fullLeft: boolean;\n /**\n * Optional ref to use with TwoColumns that use an sref for the back button.\n */\n backRef?: Maybe<SegueRef>;\n /**\n * Size of the view's total width in pixels.\n */\n totalWidth?: Maybe<number>;\n /**\n * Minimum right side size allowed before hiding the left content.\n */\n minRightWidth: number;\n}\n\nexport const DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH = 320;\n\nconst INITIAL_STATE: TwoColumnsState = {\n reverseSizing: false,\n showRight: false,\n hasRight: false,\n fullLeft: false,\n minRightWidth: DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH\n};\n\n@Injectable()\nexport class TwoColumnsContextStore extends ComponentStore<TwoColumnsState> implements OnDestroy {\n private readonly _back = new Subject<void>();\n\n constructor() {\n super({ ...INITIAL_STATE });\n }\n\n // MARK: Accessors\n readonly hideLeft$ = this.state$.pipe(\n map((x) => {\n /**\n * The right side is less-than or equal to half the total width when resizing, so we can use the total width to guess the best case current scenario.\n */\n const expectedRightWidth = (x.totalWidth ?? 0) / 2;\n const hideLeft = x.showRight && expectedRightWidth < x.minRightWidth;\n return hideLeft;\n })\n );\n\n /**\n * Pipes the current state of reverseSizing.\n */\n readonly reverseSizing$ = this.state$.pipe(map((x) => x.reverseSizing));\n\n /**\n * Pipes the current state of showRight.\n */\n readonly hasRight$ = this.state$.pipe(map((x) => x.showRight));\n\n /**\n * Pipes the current state of showRight.\n */\n readonly currentShowRight$ = this.state$.pipe(map((x) => x.showRight));\n\n /**\n * Pipes the current state of showRight and hasRight\n */\n readonly showRight$ = this.state$.pipe(map((x) => x.hasRight && x.showRight));\n\n /**\n * Convenience function for the showRight compliment.\n */\n readonly hideRight$ = this.showRight$.pipe(map((x) => !x));\n\n /**\n * Pipes the current state of fullLeft.\n */\n readonly fullLeft$ = this.state$.pipe(map((x) => x.fullLeft));\n\n /**\n * Whether or not to show the full left.\n */\n readonly showFullLeft$ = this.state$.pipe(map((x) => !(x.hasRight && x.showRight) && x.fullLeft));\n\n /**\n * Pipes the current backRef value.\n */\n readonly backRef$ = this.state$.pipe(\n map((x) => x.backRef),\n distinct()\n );\n\n /**\n * Emits back events.\n */\n readonly back$ = this._back.asObservable();\n\n // MARK: State Changes\n /**\n * Completely resets the store.\n */\n readonly reset = this.updater(() => ({ ...INITIAL_STATE }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setReverseSizing = this.updater((state, reverseSizing: Maybe<boolean>) => (isMaybeNot(reverseSizing) ? state : { ...state, reverseSizing }));\n\n /**\n * Changes the state to have right content or not.\n */\n readonly setHasRight = this.updater((state, hasRight: Maybe<boolean>) => (isMaybeNot(hasRight) ? state : { ...state, hasRight }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setShowRight = this.updater((state, showRight: Maybe<boolean>) => (isMaybeNot(showRight) ? state : { ...state, showRight }));\n\n /**\n * Sets the full left. If undefined is passed, no change occurs.\n */\n readonly setFullLeft = this.updater((state, fullLeft: Maybe<boolean>) => (isMaybeNot(fullLeft) ? state : { ...state, fullLeft }));\n\n /**\n * Sets the new back ref.\n */\n readonly setBackRef = this.updater((state, backRef: Maybe<SegueRef>) => ({ ...state, backRef }));\n\n /**\n * Sets the new total width.\n */\n readonly setTotalWidth = this.updater((state, totalWidth: Maybe<number>) => ({ ...state, totalWidth }));\n\n /**\n * Sets the new min right width.\n */\n readonly setMinRightWidth = this.updater((state, minRightWidth: Maybe<number>) => ({ ...state, minRightWidth: minRightWidth ?? DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH }));\n\n /**\n * Emits a back event.\n */\n back(): void {\n this._back.next();\n }\n\n // MARK: Internal\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._back.complete();\n }\n}\n\nexport function provideTwoColumnsContext(): Provider[] {\n return [\n {\n provide: TwoColumnsContextStore,\n useClass: TwoColumnsContextStore\n }\n ];\n}\n","import { Directive, EventEmitter, Output, OnInit, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with an DbxTwoColumnComponent to help respond to a \"back\" function.\n */\n@Directive({\n selector: '[dbxTwoColumnBack]'\n})\nexport class DbxTwoColumnBackDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n @Output('dbxTwoColumnBack')\n public back = new EventEmitter();\n\n ngOnInit(): void {\n this.sub = this.twoColumnsContextStore.back$.subscribe(() => this.back.emit());\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","import { ChangeDetectorRef, OnDestroy, ChangeDetectionStrategy, OnInit, Component, Input, ElementRef, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { Observable, BehaviorSubject, combineLatest } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\n\nexport interface DbxTwoColumnViewState {\n showRight: boolean;\n showFullLeft: boolean;\n hideLeftColumn: boolean;\n reverseSizing: boolean;\n inSectionPage: boolean;\n}\n\n/**\n * Responsive component meant to split a left and right column.\n *\n * The left column is smaller than the right column, which contains the primary content.\n *\n * Requires a TwoColumnsContextStore to be provided.\n */\n@Component({\n selector: 'dbx-two-column',\n templateUrl: './two.column.component.html',\n exportAs: 'columns',\n host: {\n class: 'dbx-two-column',\n '[class]': \"{ 'right-shown': v.showRight, 'full-left': v.showFullLeft,'hide-left-column': v.hideLeftColumn, 'two-column-reverse-sizing': v.reverseSizing, 'dbx-section-page-two': v.inSectionPage }\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxTwoColumnComponent extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private readonly _elementRef = inject(ElementRef);\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _view: DbxTwoColumnViewState = { showRight: false, showFullLeft: true, hideLeftColumn: false, reverseSizing: false, inSectionPage: false };\n\n private readonly _inSectionPage = new BehaviorSubject<boolean>(false);\n\n readonly reverseSizing$ = this.twoColumnsContextStore.reverseSizing$;\n readonly hideLeftColumn$: Observable<boolean> = this.twoColumnsContextStore.hideLeft$;\n readonly showRight$: Observable<boolean> = this.twoColumnsContextStore.showRight$;\n readonly showFullLeft$: Observable<boolean> = this.twoColumnsContextStore.showFullLeft$;\n\n readonly hideRight$: Observable<boolean> = this.twoColumnsContextStore.hideRight$;\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.sub = combineLatest([this.showRight$, this.showFullLeft$, this.hideLeftColumn$, this.reverseSizing$, this._inSectionPage]).subscribe(([showRight, showFullLeft, hideLeftColumn, reverseSizing, inSectionPage]: [boolean, boolean, boolean, boolean, boolean]) => {\n this._view = {\n showRight,\n showFullLeft,\n hideLeftColumn,\n reverseSizing,\n inSectionPage\n };\n\n safeMarkForCheck(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._inSectionPage.complete();\n }\n\n get v(): DbxTwoColumnViewState {\n return this._view;\n }\n\n @Input()\n set reverseSizing(reverseSizing: boolean) {\n this.twoColumnsContextStore.setReverseSizing(reverseSizing);\n }\n\n @Input()\n set inSectionPage(inSectionPage: boolean) {\n this._inSectionPage.next(inSectionPage);\n }\n\n onResized(event: ResizedEvent): void {\n const totalWidth = (this._elementRef.nativeElement as HTMLElement).clientWidth;\n this.twoColumnsContextStore.setTotalWidth(totalWidth);\n }\n}\n","<dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height left-column\">\n <div *ngIf=\"!v.hideLeftColumn && v.reverseSizing\" (resized)=\"onResized($event)\"></div>\n <ng-content select=\"[left]\"></ng-content>\n</dbx-content-container>\n<dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height right-column\" *ngIf=\"v.showRight\">\n <div *ngIf=\"v.hideLeftColumn || !v.reverseSizing\" (resized)=\"onResized($event)\"></div>\n <ng-content select=\"[right]\"></ng-content>\n</dbx-content-container>\n","import { Input, OnDestroy, Directive, OnInit, inject } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\nimport { provideTwoColumnsContext, TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Provides a dbxTwoColumnContextStore\n */\n@Directive({\n selector: '[dbxTwoColumnContext]',\n providers: provideTwoColumnsContext()\n})\nexport class DbxTwoColumnContextDirective implements OnInit, OnDestroy {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n private _showRight = new BehaviorSubject<Maybe<boolean>>(undefined);\n\n ngOnInit(): void {\n this.twoColumnsContextStore.setShowRight(this._showRight);\n }\n\n ngOnDestroy(): void {\n this._showRight.complete();\n }\n\n @Input()\n set showRight(showRight: Maybe<boolean | ''>) {\n this._showRight.next(Boolean(showRight));\n }\n}\n","import { OnInit, Directive, Input, OnDestroy, inject } from '@angular/core';\nimport { isNotNullOrEmptyString, Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the full left to true.\n */\n@Directive({\n selector: '[dbxTwoColumnFullLeft]'\n})\nexport class DbxTwoColumnFullLeftDirective implements OnInit, OnDestroy {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n private _fullLeft = new BehaviorSubject<boolean>(true);\n\n @Input('dbxTwoColumnFullLeft')\n get fullLeft(): boolean {\n return this._fullLeft.value;\n }\n\n set fullLeft(fullLeft: Maybe<boolean | ''>) {\n if (isNotNullOrEmptyString(fullLeft)) {\n // only respond to boolean values\n this._fullLeft.next(Boolean(fullLeft));\n }\n }\n\n ngOnInit(): void {\n this._twoColumnsContextStore.setFullLeft(this._fullLeft);\n }\n\n ngOnDestroy(): void {\n this._fullLeft.complete();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Two Columns related component that sits at the top of the content bodies and wraps content.\n */\n@Component({\n selector: 'dbx-two-column-head',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-two-column-head',\n '[class.d-block]': 'block',\n '[class.full]': 'full'\n }\n})\nexport class DbxTwoColumnColumnHeadComponent {\n @Input()\n block?: boolean;\n\n @Input()\n full?: boolean;\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { asSegueRef, SegueRefOrSegueRefRouterLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the backRef of the TwoColumnsContextStore.\n */\n@Directive({\n selector: '[dbxTwoColumnSref]'\n})\nexport class DbxTwoColumnSrefDirective {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n @Input('dbxTwoColumnSref')\n public set ref(ref: Maybe<SegueRefOrSegueRefRouterLink | ''>) {\n const segueRef = ref ? asSegueRef(ref) : undefined;\n this._twoColumnsContextStore.setBackRef(segueRef);\n }\n}\n","import { AfterViewInit, OnDestroy, Component, Input, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, map } from 'rxjs';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Optional responsive component that wraps content on the right side and shows a navigation bar.\n *\n * When rendered it will trigger the context to show left.\n */\n@Component({\n selector: 'dbx-two-column-right',\n templateUrl: './two.column.right.component.html',\n host: {\n class: 'dbx-two-column-right d-block'\n }\n})\nexport class DbxTwoColumnRightComponent implements AfterViewInit, OnDestroy {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n @Input()\n full: boolean = false;\n\n @Input()\n header?: Maybe<string>;\n\n @Input()\n block?: boolean;\n\n private _showBack = new BehaviorSubject<boolean>(true);\n\n readonly ref$: Observable<Maybe<ClickableAnchor>> = this.twoColumnsContextStore.backRef$;\n\n readonly showBack$: Observable<boolean> = combineLatest([\n this._showBack,\n this.ref$.pipe(map((x) => !x)) // TODO: Is this correct? Show back if ref is not defined?\n ]).pipe(map(([a, b]: [boolean, boolean]) => a && b));\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.twoColumnsContextStore.setHasRight(true);\n });\n }\n\n ngOnDestroy(): void {\n this._showBack.complete();\n this.twoColumnsContextStore.setHasRight(false);\n }\n\n @Input()\n get showBack(): boolean {\n return this._showBack.value;\n }\n\n set showBack(showBack: boolean) {\n this._showBack.next(showBack);\n }\n\n /**\n * Minimum right-side width allowed in pixels.\n */\n @Input()\n set minRightWidth(minRightWidth: Maybe<number | ''>) {\n this.twoColumnsContextStore.setMinRightWidth(typeof minRightWidth === 'number' ? minRightWidth : undefined);\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","<dbx-two-column-head [block]=\"block\" [full]=\"full\">\n <!-- Back Buttons -->\n <ng-container *ngIf=\"showBack$ | async\">\n <button mat-icon-button class=\"back-button\" (click)=\"backClicked()\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"ref$ | async\">\n <dbx-anchor [anchor]=\"ref$ | async\">\n <button mat-icon-button class=\"back-button\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </dbx-anchor>\n </ng-container>\n <span *ngIf=\"header\" class=\"right-nav-title\">{{ header }}</span>\n <span class=\"right-nav-spacer\"></span>\n <span class=\"spacer\"></span>\n <ng-content select=\"[nav]\"></ng-content>\n</dbx-two-column-head>\n<div class=\"dbx-two-column-right-content\">\n <ng-content></ng-content>\n</div>\n","import { Directive, OnInit, OnDestroy, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxRouterService, isSegueRefActive } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { shareReplay, distinctUntilChanged, Subscription } from 'rxjs';\nimport { isNot } from '@dereekb/rxjs';\n\n/**\n * Used with a DbxTwoColumnComponent to control showing right when the current route is a child of the backRef.\n */\n@Directive({\n selector: '[dbxTwoColumnSrefShowRight]'\n})\nexport class DbxTwoColumnSrefShowRightDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n private readonly _dbxRouterService = inject(DbxRouterService);\n\n readonly showRight$ = this._twoColumnsContextStore.backRef$.pipe(\n // Only show right when the backRef is not exactly active\n isSegueRefActive({ dbxRouterService: this._dbxRouterService, activeExactly: true }),\n isNot(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n ngOnInit(): void {\n this.sub = this._twoColumnsContextStore.setShowRight(this.showRight$) as Subscription;\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxRouterAnchorModule } from '../../../router';\nimport { DbxContentLayoutModule } from '../../content';\nimport { DbxTwoColumnSrefDirective } from './two.column.sref.directive';\nimport { DbxTwoColumnComponent } from './two.column.component';\nimport { DbxTwoColumnColumnHeadComponent } from './two.column.head.component';\nimport { DbxTwoColumnRightComponent } from './two.column.right.component';\nimport { DbxTwoColumnBackDirective } from './two.column.back.directive';\nimport { DbxTwoColumnFullLeftDirective } from './two.column.full.left.directive';\nimport { DbxTwoColumnContextDirective } from './two.column.context.directive';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { DbxTwoColumnSrefShowRightDirective } from './two.column.sref.showright.directive';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxRouterAnchorModule, DbxContentLayoutModule, AngularResizeEventModule],\n declarations: [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadComponent, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective],\n exports: [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadComponent, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective]\n})\nexport class DbxTwoColumnLayoutModule {}\n","import { Component, Input, inject } from '@angular/core';\nimport { TwoColumnsContextStore } from '../two';\n\n/**\n * Pre-configured Two-columns view that only has a left view and shows full left.\n */\n@Component({\n selector: 'dbx-one-column',\n template: `\n <ng-container>\n <dbx-two-column [inSectionPage]=\"inSectionPage\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content left></ng-content>\n </dbx-two-column>\n </ng-container>\n `,\n exportAs: 'columns',\n providers: [TwoColumnsContextStore]\n})\nexport class DbxOneColumnComponent {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n constructor() {\n this.twoColumnsContextStore.setFullLeft(true);\n }\n\n @Input()\n inSectionPage = true;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from '../two';\nimport { DbxOneColumnComponent } from './one.column.component';\n\n@NgModule({\n imports: [CommonModule, DbxTwoColumnLayoutModule],\n declarations: [DbxOneColumnComponent],\n exports: [DbxOneColumnComponent]\n})\nexport class DbxOneColumnLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from './two';\nimport { DbxOneColumnLayoutModule } from './one';\n\n@NgModule({\n exports: [DbxOneColumnLayoutModule, DbxTwoColumnLayoutModule]\n})\nexport class DbxColumnLayoutModule {}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n/**\n * Toolbar-like component that wraps content. Generally sits at the top of a page.\n */\n@Component({\n selector: 'dbx-flag',\n template: `\n <div class=\"dbx-flag\">\n <mat-toolbar [color]=\"color\">\n <ng-content></ng-content>\n </mat-toolbar>\n </div>\n `\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbxFlagComponent {\n @Input()\n color: ThemePalette = 'accent';\n}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n/**\n * Pre-configured dbx-flag prompt to do something.\n */\n@Component({\n selector: 'dbx-flag-prompt',\n template: `\n <dbx-flag [color]=\"color\">\n <span class=\"dbx-flag-prompt\">{{ text }}</span>\n <span class=\"dbx-flag-spacer\"></span>\n <ng-content></ng-content>\n </dbx-flag>\n `\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbxFlagPromptComponent {\n @Input()\n color: ThemePalette = 'accent';\n\n @Input()\n text?: string;\n}\n","import { MatToolbarModule } from '@angular/material/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxFlagComponent } from './flag.component';\nimport { DbxFlagPromptComponent } from './flag.prompt.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, MatToolbarModule],\n declarations: [DbxFlagComponent, DbxFlagPromptComponent],\n exports: [DbxFlagComponent, DbxFlagPromptComponent]\n})\nexport class DbxFlagLayoutModule {}\n","import { ScreenMediaWidthType } from '../../screen/screen';\nimport { DbxScreenMediaService } from '../../screen/screen.service';\nimport { Directive, ChangeDetectorRef, Input, OnInit, OnDestroy, inject } from '@angular/core';\nimport { BehaviorSubject, map, shareReplay, distinctUntilChanged, delay } from 'rxjs';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Used to declare a dbxFlexGroup.\n */\n@Directive({\n selector: '[dbxFlexGroup]',\n host: {\n '[class.dbx-flex-group]': 'content',\n '[class.dbx-flex-group-break-to-column]': 'breakToColumn',\n '[class.dbx-flex-group-small]': 'small',\n '[class.dbx-flex-group-relative]': 'relative'\n }\n})\nexport class DbxFlexGroupDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n @Input()\n breakToColumn = false;\n\n @Input()\n content = true;\n\n @Input()\n relative = false;\n\n private _small = false;\n\n private readonly _breakpoint = new BehaviorSubject<ScreenMediaWidthType>('tablet');\n\n readonly isSmallScreen$ = this._dbxScreenMediaService.isBreakpointActive(this._breakpoint).pipe(\n map((x) => !x),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n get small(): boolean {\n return this._small;\n }\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.isSmallScreen$.pipe(delay(0)).subscribe((small) => {\n this._small = small;\n safeDetectChanges(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._breakpoint.complete();\n }\n\n @Input()\n set breakpoint(breakpoint: Maybe<ScreenMediaWidthType>) {\n this._breakpoint.next(breakpoint ?? 'tablet');\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { DbxFlexSize } from './flex';\n\n/**\n * Applies the proper dbx-flex size class based on the input.\n */\n@Directive({\n selector: '[dbxFlexSize]',\n host: {\n '[class]': '\"dbx-flex-\" + size'\n }\n})\nexport class DbxFlexSizeDirective {\n @Input('dbxFlexSize')\n size: DbxFlexSize = 1;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxFlexGroupDirective } from './flex.group.directive';\nimport { DbxFlexSizeDirective } from './flex.size.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxFlexGroupDirective, DbxFlexSizeDirective],\n exports: [DbxFlexGroupDirective, DbxFlexSizeDirective]\n})\nexport class DbxFlexLayoutModule {}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Section piece that puts an icon on the left, and arbitrary content on the right with a header.\n */\n@Component({\n selector: 'dbx-icon-item',\n template: `\n <div class=\"dbx-icon-item\">\n <div class=\"left\" *ngIf=\"icon\">\n <mat-icon>{{ icon }}</mat-icon>\n </div>\n <div class=\"right\">\n <h3 *ngIf=\"header\" class=\"dbx-icon-item-header\">{{ header }}</h3>\n <div class=\"right-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n `\n})\nexport class DbxIconItemComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxIconItemComponent } from './item.icon.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxIconItemComponent],\n exports: [DbxIconItemComponent]\n})\nexport class DbxItemLayoutModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Component that is centered for use within an empty list.\n */\n@Component({\n selector: 'dbx-list-empty-content',\n template: `\n <div class=\"dbx-list-empty-content\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DbxListEmptyContentComponent {}\n","import { Directive, inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\nimport { ReadableError, ReadableErrorWithCode } from '@dereekb/util';\n\n@Directive()\nexport abstract class AbstractDbxErrorWidgetComponent<T extends ReadableError = ReadableError> {\n readonly data = inject<ReadableErrorWithCode<T>>(DBX_INJECTION_COMPONENT_DATA);\n\n get code() {\n return this.data.code;\n }\n\n get message() {\n return this.data.message;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Combines a dbx-label and arbitrary content.\n */\n@Component({\n selector: 'dbx-label-block',\n template: `\n <span class=\"d-block dbx-label dbx-label-padded\">{{ header }}</span>\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-label-block'\n }\n})\nexport class DbxLabelBlockComponent {\n @Input()\n header?: Maybe<string>;\n}\n","import { Component } from '@angular/core';\nimport { ServerError, ServerErrorResponseData } from '@dereekb/util';\nimport { AbstractDbxErrorWidgetComponent } from './error.widget.directive';\n\n@Component({\n template: `\n <dbx-label-block header=\"Error Code\">{{ code }}</dbx-label-block>\n <dbx-label-block header=\"Error Message\">{{ message }}</dbx-label-block>\n <dbx-label-block header=\"Error Data\" *ngIf=\"serverErrorData\">\n <p class=\"dbx-json\">{{ serverErrorData | json }}</p>\n </dbx-label-block>\n `,\n host: {\n class: 'd-block dbx-error-default-error-widget dbx-content-container'\n }\n})\nexport class DbxErrorDefaultErrorWidgetComponent extends AbstractDbxErrorWidgetComponent {\n get serverErrorData(): ServerErrorResponseData | undefined {\n return (this.data as ServerError).data;\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeValues, mapIterable, StringErrorCode } from '@dereekb/util';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\n\nexport const DEFAULT_ERROR_WIDGET_CODE = 'DEFAULT_ERROR_WIDGET';\nexport const UNKNOWN_ERROR_WIDGET_CODE = 'UNKNOWN_ERROR_WIDGET';\n\nexport interface DbxErrorWidgetEntry {\n /**\n * Error code to respond to.\n */\n readonly code: StringErrorCode;\n /**\n * Error widget component class to use.\n *\n * @deprecated use `widgetComponentClass` instead.\n */\n readonly componentClass?: Maybe<Type<unknown>>;\n /**\n * In-line error widget component class to use.\n *\n * This changes how it appears in dbx-error.\n *\n * If not provided, dbx-error will display the default output.\n */\n readonly errorComponentClass?: Maybe<Type<unknown>>;\n /**\n * Custom popup error widget component class to use.\n *\n * This changes how it appears in the dbx-error-widget-view.\n *\n * If not provided, the widget will display the default entry.\n */\n readonly widgetComponentClass?: Maybe<Type<unknown>>;\n}\n\nexport type DbxErrorWidgetEntryWithPopupComponentClass = Omit<DbxErrorWidgetEntry, 'popupComponentClass'> & { popupComponentClass: Type<unknown> };\n\n/**\n * Service used to register error widgets.\n *\n * It has two default widgets:\n *\n * - default: used in cases where an error has been registered by its error code\n * - unknown: used in cases where an error has an error code that has not been registered\n *\n * By default the DbxErrorDefaultErrorWidgetComponent is registered to both the default and unknown error entries.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxErrorWidgetService {\n private _entries = new Map<StringErrorCode, DbxErrorWidgetEntry>();\n\n constructor() {\n const defaultEntry = { widgetComponentClass: DbxErrorDefaultErrorWidgetComponent };\n this.registerDefaultEntry(defaultEntry);\n this.registerUnknownEntry(defaultEntry);\n }\n\n registerDefaultEntry(entry: Omit<DbxErrorWidgetEntry, 'errorComponentClass' | 'code'>) {\n return this.register({\n ...entry,\n errorComponentClass: null, // errorComponentClass is not allowed nor used for the default entry\n code: DEFAULT_ERROR_WIDGET_CODE\n });\n }\n\n registerUnknownEntry(entry: Omit<DbxErrorWidgetEntry, 'errorComponentClass' | 'code'>) {\n return this.register({\n ...entry,\n errorComponentClass: null, // errorComponentClass is not allowed nor used for the unknown entry\n code: UNKNOWN_ERROR_WIDGET_CODE\n });\n }\n\n register(entry: DbxErrorWidgetEntry, override: boolean = true): boolean {\n if (override || !this._entries.has(entry.code)) {\n this._entries.set(entry.code, {\n ...entry,\n widgetComponentClass: entry.widgetComponentClass ?? entry.componentClass\n });\n return true;\n } else {\n return false;\n }\n }\n\n // MARK: Get\n getErrorWidgetIdentifiers(): StringErrorCode[] {\n return Array.from(this._entries.keys());\n }\n\n getDefaultErrorWidgetEntry(): Maybe<DbxErrorWidgetEntry> {\n return this.getErrorWidgetEntry(DEFAULT_ERROR_WIDGET_CODE);\n }\n\n getUnknownErrorWidgetEntry(): Maybe<DbxErrorWidgetEntry> {\n return this.getErrorWidgetEntry(UNKNOWN_ERROR_WIDGET_CODE);\n }\n\n getErrorWidgetEntry(code: StringErrorCode): Maybe<DbxErrorWidgetEntry> {\n return this._entries.get(code);\n }\n\n getErrorWidgetEntries(codes: Iterable<StringErrorCode>): DbxErrorWidgetEntry[] {\n return filterMaybeValues(mapIterable(codes ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { Observable, BehaviorSubject, map } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { Maybe, ReadableError, ReadableErrorWithCode } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorWidgetService } from './error.widget.service';\n\n/**\n * Used to display a corresponding error widget based on the input data.\n */\n@Component({\n selector: 'dbx-error-widget-view',\n template: `\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n `,\n host: {\n class: 'dbx-error-widget-view'\n }\n})\nexport class DbxErrorWidgetViewComponent implements OnDestroy {\n readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n\n private _errorWithCode = new BehaviorSubject<Maybe<ReadableErrorWithCode>>(undefined);\n\n readonly config$: Observable<Maybe<DbxInjectionComponentConfig>> = this._errorWithCode.pipe(\n map((error: Maybe<ReadableErrorWithCode>) => {\n let config: Maybe<DbxInjectionComponentConfig>;\n\n if (error != null) {\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code);\n\n if (entry != null) {\n const defaultEntry = this.dbxErrorWidgetService.getDefaultErrorWidgetEntry();\n const componentClass = entry.widgetComponentClass ?? defaultEntry?.widgetComponentClass;\n\n if (componentClass != null) {\n config = {\n componentClass,\n data: error\n };\n }\n } else {\n const unknownEntry = this.dbxErrorWidgetService.getUnknownErrorWidgetEntry();\n\n if (unknownEntry?.widgetComponentClass != null) {\n config = {\n componentClass: unknownEntry?.widgetComponentClass,\n data: error\n };\n }\n }\n }\n\n return config;\n })\n );\n\n ngOnDestroy(): void {\n this._errorWithCode.complete();\n }\n\n @Input()\n set error(error: Maybe<ReadableError>) {\n const config = error && error.code ? (error as ReadableErrorWithCode) : undefined;\n this._errorWithCode.next(config);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe, ReadableError } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-error-details',\n template: `\n <dbx-error-widget-view [error]=\"error\"></dbx-error-widget-view>\n `,\n host: {\n class: 'd-block dbx-error-details'\n }\n})\nexport class DbxErrorDetailsComponent {\n @Input()\n error?: Maybe<ReadableError>;\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { ReadableError } from '@dereekb/util';\nimport { AbstractPopoverDirective } from '../interaction/popover/abstract.popover.directive';\nimport { DbxPopoverKey } from '../interaction/popover/popover';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\n\nexport const DEFAULT_ERROR_POPOVER_KEY = 'error';\n\nexport interface DbxErrorPopoverConfig {\n origin: ElementRef;\n error: ReadableError;\n}\n\n@Component({\n template: `\n <dbx-popover-content class=\"dbx-error-popover\">\n <dbx-popover-header [header]=\"code\" icon=\"error\"></dbx-popover-header>\n <dbx-popover-scroll-content>\n <dbx-error-details [error]=\"error\"></dbx-error-details>\n </dbx-popover-scroll-content>\n </dbx-popover-content>\n `\n})\nexport class DbxErrorPopoverComponent extends AbstractPopoverDirective<void, ReadableError> {\n get error() {\n return this.popover.data as ReadableError;\n }\n\n get code() {\n return this.error.code;\n }\n\n static openPopover(popoverService: DbxPopoverService, { origin, error }: DbxErrorPopoverConfig, popoverKey?: DbxPopoverKey) {\n return popoverService.open({\n key: popoverKey ?? DEFAULT_ERROR_POPOVER_KEY,\n origin,\n isResizable: true,\n componentClass: DbxErrorPopoverComponent,\n data: error\n });\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxErrorViewButtonEvent {\n readonly origin: ElementRef;\n}\n\n/**\n * The basic error view.\n */\n@Component({\n selector: 'dbx-error-view',\n templateUrl: './error.view.component.html',\n host: {\n class: 'dbx-error dbx-warn dbx-b'\n }\n})\nexport class DbxErrorViewComponent implements OnDestroy {\n @Input()\n icon = 'error';\n\n @Input()\n message?: Maybe<string>;\n\n /**\n * Whether or not the error button is disabled.\n */\n @Input()\n buttonDisabled?: Maybe<boolean>;\n\n @Output()\n readonly buttonClick = new EventEmitter<DbxErrorViewButtonEvent>();\n\n @ViewChild('buttonPopoverOrigin', { read: ElementRef })\n buttonOrigin!: ElementRef;\n\n constructor() {}\n\n ngOnDestroy(): void {\n this.buttonClick.complete();\n }\n\n clickError() {\n if (!this.buttonDisabled) {\n this.buttonClick.emit({\n origin: this.buttonOrigin\n });\n }\n }\n}\n","<button class=\"dbx-error-button\" [disabled]=\"buttonDisabled\" #buttonPopoverOrigin mat-icon-button (click)=\"clickError()\">\n <mat-icon>{{ icon }}</mat-icon>\n</button>\n<span class=\"dbx-error-message\" *ngIf=\"message\">{{ message }}</span>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { Maybe, ErrorInput, toReadableError, ReadableError, isDefaultReadableError, Configurable } from '@dereekb/util';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { AbstractSubscriptionDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorViewButtonEvent } from './error.view.component';\nimport { DbxErrorWidgetService } from './error.widget.service';\nimport { NgPopoverRef } from 'ng-overlay-container';\n\ntype DbxReadableErrorComponentViewType = 'none' | 'default' | 'custom';\n\ninterface DbxReadableErrorComponentState {\n readonly viewType: DbxReadableErrorComponentViewType;\n readonly isDefaultError?: Maybe<boolean>;\n readonly message?: Maybe<string>;\n readonly rawError?: Maybe<ErrorInput>;\n readonly error?: Maybe<ReadableError>;\n readonly customView?: Maybe<DbxInjectionComponentConfig>;\n}\n\n/**\n * Root error component that displays content related to an error.\n */\n@Component({\n selector: 'dbx-error',\n template: `\n <ng-container [ngSwitch]=\"viewType\">\n <ng-container *ngSwitchCase=\"'default'\">\n <dbx-error-view icon=\"error\" [message]=\"message\" [buttonDisabled]=\"isDefaultError\" (buttonClick)=\"openErrorPopover($event)\"></dbx-error-view>\n </ng-container>\n <ng-container *ngSwitchCase=\"'custom'\">\n <dbx-injection [config]=\"customView\"></dbx-injection>\n </ng-container>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxReadableErrorComponent extends AbstractSubscriptionDirective {\n readonly popoverService = inject(DbxPopoverService);\n readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n @Output()\n readonly popoverOpen = new EventEmitter<NgPopoverRef>();\n\n private _state: DbxReadableErrorComponentState = {\n viewType: 'none'\n };\n\n private readonly _iconOnly = new BehaviorSubject<Maybe<boolean>>(undefined);\n private readonly _inputError = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n readonly state$ = combineLatest([this._inputError, this._iconOnly.pipe(distinctUntilChanged())]).pipe(\n map(([rawError, iconOnly]) => {\n let state: DbxReadableErrorComponentState;\n\n if (rawError != null) {\n const error = toReadableError(rawError);\n const isDefaultError = iconOnly ? false : isDefaultReadableError(error);\n\n state = {\n viewType: 'default',\n rawError,\n error,\n message: (error as ReadableError)?.message || 'An error occured.',\n isDefaultError\n };\n\n if (iconOnly) {\n delete (state as Configurable<DbxReadableErrorComponentState>).message; // remove the message when in icon-only mode\n } else if (error) {\n let customView: Maybe<DbxInjectionComponentConfig>;\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code);\n const componentClass = entry?.errorComponentClass;\n\n if (componentClass != null) {\n customView = {\n componentClass,\n data: error\n };\n }\n\n // apply custom view\n if (customView) {\n state = {\n ...state,\n viewType: 'custom',\n customView\n };\n }\n }\n } else {\n state = {\n viewType: 'none'\n };\n }\n\n return state;\n }),\n shareReplay(1)\n );\n\n ngOnInit(): void {\n this.sub = this.state$.subscribe((state) => {\n this._state = state;\n this.cdRef.markForCheck();\n });\n }\n\n protected get viewType() {\n return this._state.viewType;\n }\n\n protected get isDefaultError() {\n return this._state.isDefaultError;\n }\n\n protected get message(): Maybe<string> {\n return this._state.message;\n }\n\n protected get customView(): Maybe<DbxInjectionComponentConfig> {\n return this._state.customView;\n }\n\n @Input()\n get error() {\n return this._state.rawError;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._inputError.next(error);\n }\n\n @Input()\n get iconOnly() {\n return this._iconOnly.value;\n }\n\n set iconOnly(iconOnly: Maybe<boolean>) {\n this._iconOnly.next(iconOnly);\n }\n\n protected openErrorPopover(event: DbxErrorViewButtonEvent) {\n const error = this._state.error;\n\n if (error != null) {\n const popoverRef = DbxErrorPopoverComponent.openPopover(this.popoverService, {\n origin: event.origin,\n error\n });\n\n this.popoverOpen.next(popoverRef);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { Maybe } from '@dereekb/util';\nimport { DbxThemeColor } from '../layout/style/style';\n\nexport const DEFAULT_LOADING_PROGRESS_DIAMETER = 96;\n\n/**\n * Basic loading progress component.\n */\n@Component({\n selector: 'dbx-loading-progress',\n template: `\n <div class=\"loading-progress-view\">\n <ng-container [ngSwitch]=\"linear\">\n <mat-progress-bar *ngSwitchCase=\"true\" [mode]=\"bmode\" [color]=\"color\" [bufferValue]=\"bufferValue\" [value]=\"value\" style=\"margin: auto;\"></mat-progress-bar>\n <mat-progress-spinner *ngSwitchDefault [diameter]=\"diameter || 96\" [mode]=\"smode\" [color]=\"color\" [value]=\"value\" style=\"margin: auto;\"></mat-progress-spinner>\n </ng-container>\n <div *ngIf=\"text\" class=\"dbx-loading-progress-hint dbx-hint dbx-small\" [ngClass]=\"{ 'text-center': !linear }\">{{ text }}</div>\n </div>\n `\n})\nexport class DbxLoadingProgressComponent {\n private _diameter: number = DEFAULT_LOADING_PROGRESS_DIAMETER;\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n @Input()\n mode: ProgressBarMode | ProgressSpinnerMode = 'indeterminate';\n\n @Input()\n color: ThemePalette | DbxThemeColor = 'primary';\n\n @Input()\n value?: number;\n\n @Input()\n bufferValue: number = undefined as unknown as number; // mat-progress-bar typing prevents using undefined as a type\n\n @Input()\n get diameter(): number {\n return this._diameter;\n }\n\n set diameter(diameter: Maybe<number>) {\n this._diameter = diameter ?? DEFAULT_LOADING_PROGRESS_DIAMETER;\n }\n\n get bmode(): ProgressBarMode {\n return this.mode;\n }\n\n get smode(): ProgressSpinnerMode {\n return this.mode as ProgressSpinnerMode;\n }\n}\n","import { startWith, distinctUntilChanged, shareReplay, combineLatest, map, BehaviorSubject } from 'rxjs';\nimport { OnDestroy, Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ErrorInput, Maybe } from '@dereekb/util';\nimport { checkNgContentWrapperHasContent } from '@dereekb/dbx-core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { DbxThemeColor } from '../layout/style/style';\n\n/**\n * DbxBasicLoadingComponent loading state.\n */\nexport enum LoadingComponentState {\n NONE = -1,\n LOADING = 0,\n CONTENT = 1,\n ERROR = 2\n}\n\n/**\n * Basic loading component.\n */\n@Component({\n selector: 'dbx-basic-loading',\n templateUrl: './basic-loading.component.html'\n})\nexport class DbxBasicLoadingComponent implements OnDestroy {\n private _loading = new BehaviorSubject<Maybe<boolean>>(undefined);\n private _show = new BehaviorSubject<boolean>(true);\n private _error = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n private _customErrorContent = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n private _customLoadingContent = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n\n readonly state$ = combineLatest([this._loading, this._show, this._error]).pipe(\n map(([loading, show, error]) => {\n let state: LoadingComponentState;\n\n if (error) {\n state = LoadingComponentState.ERROR;\n } else if (loading == null) {\n // If loading has not yet been defined and no error has occured, we're waiting for some input on loading or error.\n state = LoadingComponentState.NONE;\n } else if (loading || !show) {\n state = LoadingComponentState.LOADING;\n } else {\n state = LoadingComponentState.CONTENT;\n }\n\n return state;\n }),\n distinctUntilChanged(),\n startWith(LoadingComponentState.NONE),\n shareReplay(1)\n );\n\n readonly error$ = this._error.asObservable();\n\n readonly hasNoCustomError$ = this._customErrorContent.pipe(map((x) => !checkNgContentWrapperHasContent(x)));\n readonly hasNoCustomLoading$ = this._customLoadingContent.pipe(map((x) => !checkNgContentWrapperHasContent(x)));\n\n @Input()\n diameter?: Maybe<number>;\n\n @Input()\n mode: ProgressBarMode | ProgressSpinnerMode = 'indeterminate';\n\n @Input()\n color: ThemePalette | DbxThemeColor = 'primary';\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n linear: Maybe<boolean> = false;\n\n ngOnDestroy() {\n this._error.complete();\n this._loading.complete();\n this._show.complete();\n this._customErrorContent.complete();\n this._customLoadingContent.complete();\n }\n\n @Input()\n get show(): boolean {\n return this._show.value;\n }\n\n set show(show: Maybe<boolean>) {\n this._show.next(show ?? true);\n }\n\n @Input()\n get loading(): Maybe<boolean> {\n return this._loading.value;\n }\n\n set loading(loading: Maybe<boolean>) {\n this._loading.next(loading);\n }\n\n @Input()\n get error(): Maybe<ErrorInput> {\n return this._error.value;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._error.next(error);\n }\n\n @ViewChild('customError')\n set customErrorContent(customErrorContent: Maybe<ElementRef>) {\n setTimeout(() => {\n this._customErrorContent.next(customErrorContent);\n }, 0);\n }\n\n @ViewChild('customLoading')\n set customLoadingContent(customLoadingContent: Maybe<ElementRef>) {\n setTimeout(() => {\n this._customLoadingContent.next(customLoadingContent);\n }, 0);\n }\n}\n","<ng-container [ngSwitch]=\"state$ | async\">\n <ng-container *ngSwitchCase=\"0\">\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <!-- Content -->\n <ng-content></ng-content>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loadingTemplate>\n <dbx-loading-progress *ngIf=\"hasNoCustomLoading$ | async\" [mode]=\"mode\" [color]=\"color\" [text]=\"text\" [linear]=\"linear\" [diameter]=\"diameter\"></dbx-loading-progress>\n <div #customLoading>\n <ng-content select=\"[loading]\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #errorTemplate>\n <dbx-error *ngIf=\"hasNoCustomError$ | async\" [error]=\"error$ | async\"></dbx-error>\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-content select=\"[errorAction]\"></ng-content>\n</ng-template>\n","import { BehaviorSubject, shareReplay, Observable, distinctUntilChanged, map, switchMap, combineLatest, of } from 'rxjs';\nimport { OnDestroy, Component, Input, ChangeDetectorRef, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { ErrorInput, Maybe } from '@dereekb/util';\nimport { tapSafeMarkForCheck } from '@dereekb/dbx-core';\nimport { DbxThemeColor } from '../layout/style/style';\n\nexport interface DbxLoadingComponentState {\n loading: boolean;\n error: Maybe<ErrorInput>;\n}\n\n/**\n * Loading View component that provides content sections for loading, error, and an error action.\n */\n@Component({\n selector: 'dbx-loading',\n template: `\n <dbx-basic-loading [show]=\"show\" [color]=\"color\" [text]=\"text\" [mode]=\"mode\" [linear]=\"linear\" [diameter]=\"diameter\" [error]=\"error$ | async\" [loading]=\"loading$ | async\">\n <ng-content loading select=\"[loading]\"></ng-content>\n <div class=\"dbx-loading-linear-done-padding\" *ngIf=\"linear && padding && !(loading$ | async)\"></div>\n <ng-content></ng-content>\n <ng-content error select=\"[error]\"></ng-content>\n <ng-content errorAction select=\"[errorAction]\"></ng-content>\n </dbx-basic-loading>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxLoadingComponent implements OnDestroy {\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _context = new BehaviorSubject<Maybe<LoadingContext>>(undefined);\n private _inputLoading = new BehaviorSubject<Maybe<boolean>>(true);\n private _inputError = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n readonly state$: Observable<DbxLoadingComponentState> = combineLatest([this._inputLoading, this._inputError, this._context.pipe(switchMap((x) => (x != null ? x.stream$ : of(undefined))))]).pipe(\n map(([inputLoading, inputError, loadingState]) => {\n if (loadingState) {\n return loadingState as DbxLoadingComponentState;\n } else {\n return {\n loading: inputLoading ?? false,\n error: inputError\n };\n }\n }),\n distinctUntilChanged((a, b) => a.loading === b.loading && a.error === b.error),\n tapSafeMarkForCheck(this.cdRef),\n shareReplay(1)\n );\n\n readonly loading$ = this.state$.pipe(\n map((x) => x.loading),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly error$ = this.state$.pipe(\n map((x) => x.error),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Input()\n show?: Maybe<boolean>;\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n mode: ProgressBarMode = 'indeterminate';\n\n @Input()\n color: ThemePalette | DbxThemeColor = 'primary';\n\n @Input()\n diameter?: Maybe<number>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n /**\n * Whether or not to add padding to the linear presentation when linear is complete. This prevents the linear bar from pushing content around.\n */\n @Input()\n padding?: Maybe<boolean>;\n\n ngOnDestroy() {\n this._context.complete();\n this._inputError.complete();\n this._inputLoading.complete();\n }\n\n @Input()\n get context(): Maybe<LoadingContext> {\n return this._context.value;\n }\n\n set context(context: Maybe<LoadingContext>) {\n this._context.next(context);\n }\n\n @Input()\n get loading(): Maybe<boolean> {\n return this._inputLoading.value;\n }\n\n set loading(loading: Maybe<boolean>) {\n this._inputLoading.next(loading ?? false);\n }\n\n @Input()\n get error(): Maybe<ErrorInput> {\n return this._inputError.value;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._inputError.next(error);\n }\n}\n","import { catchError, filter, exhaustMap, merge, map, Subject, switchMap, shareReplay, distinctUntilChanged, of, Observable, BehaviorSubject, first } from 'rxjs';\nimport { Component, Input, EventEmitter, Output, OnDestroy, ElementRef, HostListener, ChangeDetectorRef, Directive, inject } from '@angular/core';\nimport { DbxInjectionComponentConfig, tapDetectChanges } from '@dereekb/dbx-core';\nimport { SubscriptionObject, ListLoadingStateContextInstance, ListLoadingState, filterMaybe, isLoadingStateFinishedLoading, startWithBeginLoading } from '@dereekb/rxjs';\nimport { Maybe, Milliseconds } from '@dereekb/util';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\n\n/**\n * Direction the scroll was triggered moving.\n */\nexport type DbxListScrollDirectionTrigger = 'up' | 'down';\n\n/**\n * Used to trigger the loading of additional items.\n *\n * If an observable is returned it is used to throttle the loading of more items until it returns.\n */\nexport type DbxListLoadMoreHandler = () => Observable<void> | void;\n\n/**\n * DbxListComponent configuration.\n */\nexport interface DbxListConfig<T = unknown, V extends DbxListView<T> = DbxListView<T>> extends DbxInjectionComponentConfig<V> {\n /**\n * Whether or not to hide the list content when it is an empty list.\n */\n hideOnEmpty?: boolean;\n\n /**\n * Whether or not this list should scroll upward from the bottom, like a message list.\n */\n invertedList?: boolean;\n\n /**\n * Distance to scroll.\n */\n scrollDistance?: number;\n\n /**\n * Number of ms to throttle scrolling events.\n */\n throttle?: Milliseconds;\n\n /**\n * (Optional) onClick handler\n */\n onClick?: (value: T) => void;\n\n /**\n * (Optional) onSelection handler\n */\n onSelectionChange?: (selection: ListSelectionState<T>) => void;\n\n /**\n * (Optional) handler function to load more items.\n */\n loadMore?: DbxListLoadMoreHandler;\n\n /**\n * Default selection list value. If not defined, will default to 'view'.\n */\n defaultSelectionMode?: Maybe<DbxListSelectionMode>;\n}\n\n/**\n * Used to display a potentially infinitely scrollable list of content.\n *\n * This component is generally wrapped by another component that provides this one configuration.\n */\n@Component({\n selector: 'dbx-list',\n templateUrl: './list.component.html',\n host: {\n class: 'd-block dbx-list',\n '[class.dbx-list-padded]': 'padded'\n }\n})\nexport class DbxListComponent<T = unknown, V extends DbxListView<T> = DbxListView<T>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy {\n readonly cdRef = inject(ChangeDetectorRef);\n\n readonly DEFAULT_SCROLL_DISTANCE = 1.5;\n readonly DEFAULT_THROTTLE_SCROLL = 50;\n\n /**\n * Whether or not to add bottom padding to the list content.\n */\n @Input()\n padded = true;\n\n @Output()\n readonly contentScrolled = new EventEmitter<number>();\n\n private _content: Maybe<DbxListInternalContentDirective>;\n private _disabled = new BehaviorSubject<boolean>(false);\n private _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n\n private _loadMoreTrigger = new Subject<void>();\n private _scrollTrigger = new Subject<DbxListScrollDirectionTrigger>();\n private _config = new BehaviorSubject<Maybe<DbxListConfig<T, V>>>(undefined);\n\n private _loadMoreSub = new SubscriptionObject();\n private _onClickSub = new SubscriptionObject();\n private _disabledSub = new SubscriptionObject();\n private _selectionModeSub = new SubscriptionObject();\n private _onSelectionChangeSub = new SubscriptionObject();\n\n readonly context = new ListLoadingStateContextInstance<T, S>({ showLoadingOnNoValue: false });\n readonly isEmpty$ = this.context.isEmpty$;\n readonly isEmptyLoading$ = this.context.isEmptyLoading$;\n readonly isEmptyAndNotLoading$ = this.context.isEmptyAndNotLoading$;\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n readonly hideOnEmpty$: Observable<boolean> = this._config.pipe(\n filterMaybe(),\n map((x) => Boolean(x.hideOnEmpty)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly invertedList$: Observable<boolean> = this._config.pipe(\n filterMaybe(),\n map((x) => Boolean(x?.throttle)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly throttleScroll$: Observable<number> = this._config.pipe(\n map((x) => x?.throttle ?? this.DEFAULT_THROTTLE_SCROLL),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly scrollDistance$: Observable<number> = this._config.pipe(\n map((x) => x?.scrollDistance ?? this.DEFAULT_SCROLL_DISTANCE),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly scrollLoadMoreTrigger$ = this._config.pipe(\n switchMap((config) => {\n const loadNextDirection = config?.invertedList ? 'up' : 'down';\n return this._scrollTrigger.pipe(filter((x) => x === loadNextDirection));\n })\n );\n\n readonly loadMore$ = merge(this.scrollLoadMoreTrigger$, this._loadMoreTrigger);\n\n readonly injectedComponentConfig$: Observable<Maybe<DbxInjectionComponentConfig<V>>> = this._config.pipe(\n distinctUntilChanged(),\n map((config) => {\n let injectedComponentConfig: Maybe<DbxInjectionComponentConfig<V>>;\n\n if (config) {\n const { componentClass, init, onClick, onSelectionChange, loadMore, defaultSelectionMode = 'view' } = config;\n\n injectedComponentConfig = {\n componentClass: config.componentClass,\n injector: config.injector,\n init: (instance: V) => {\n // Synchronize disabled\n this._disabledSub.subscription = this.disabled$.subscribe((disabled) => instance.setDisabled(disabled));\n this._selectionModeSub.subscription = this.selectionMode$.subscribe((selectionMode) => instance.setSelectionMode(selectionMode ?? defaultSelectionMode));\n\n if (init) {\n init(instance);\n }\n\n instance.setListContext(this.context);\n\n if (loadMore) {\n this._loadMoreSub.subscription = this.loadMore$\n .pipe(\n // Throttle additional loading calls using exhaustMap until observable returns, if one is returned.\n exhaustMap(() => {\n const result = loadMore();\n let obs: Observable<void>;\n\n if (result) {\n obs = result.pipe(catchError(() => of()));\n } else {\n obs = of();\n }\n\n return obs;\n })\n )\n .subscribe();\n }\n\n if (onClick) {\n if (instance.clickValue) {\n this._onClickSub.subscription = instance.clickValue.subscribe(onClick);\n } else {\n console.error(`onClick() was passed to listConfig, but target class ${componentClass} has no clicked event emitter.`);\n }\n }\n\n if (onSelectionChange) {\n if (instance.selectionChange) {\n this._onSelectionChangeSub.subscription = instance.selectionChange.subscribe(onSelectionChange);\n } else {\n console.error(`onSelectionChange() was passed to listConfig, but target class ${componentClass} has no selectionChange event emitter.`);\n }\n }\n }\n };\n }\n\n return injectedComponentConfig;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly hideContent$: Observable<boolean> = this.context.stateChange$.pipe(\n switchMap(() =>\n this.context.state$.pipe(\n filter((x) => isLoadingStateFinishedLoading(x)),\n first(),\n startWithBeginLoading()\n )\n ),\n switchMap((state) => {\n if (state?.loading) {\n return of(true);\n } else {\n return this.hideOnEmpty$.pipe(\n switchMap((hide) => (hide === false ? of(false) : this.isEmpty$)),\n distinctUntilChanged(),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n }\n })\n );\n\n ngOnDestroy(): void {\n delete this._content; // remove parent-child relation.\n this._scrollTrigger.complete();\n this._loadMoreTrigger.complete();\n this._config.complete();\n this._disabled.complete();\n this._selectionMode.complete();\n\n this._onClickSub.destroy();\n this._loadMoreSub.destroy();\n this._onSelectionChangeSub.destroy();\n this._disabledSub.destroy();\n\n this.context.destroy();\n }\n\n @Input()\n get state$(): Observable<S> {\n return this.context.state$;\n }\n\n set state$(state$: Maybe<Observable<S>>) {\n this.context.setStateObs(state$);\n }\n\n @Input()\n set config(config: Maybe<DbxListConfig<T, V>>) {\n this._config.next(config);\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled.value;\n }\n\n set disabled(disabled: Maybe<boolean>) {\n this._disabled.next(disabled ?? false);\n }\n\n @Input()\n get selectionMode(): Maybe<DbxListSelectionMode> {\n return this._selectionMode.value;\n }\n\n set selectionMode(selectionMode: Maybe<DbxListSelectionMode>) {\n this._selectionMode.next(selectionMode);\n }\n\n getScrollPositionRelativeToBottom(): number {\n try {\n const element = this.nativeElement;\n\n // At max scroll, scrollHeight = scrollTop + clientHeight;\n const { scrollTop, scrollHeight, clientHeight } = element;\n return scrollHeight - (scrollTop + clientHeight);\n } catch (e) {\n return 0;\n }\n }\n\n jumpToBottom(): void {\n try {\n this.nativeElement.scrollTop = this.nativeElement.scrollHeight;\n } catch (err) {\n // do nothing.\n }\n }\n\n jumpToPositionRelativeToBottom(pos: number): void {\n try {\n const element = this.nativeElement;\n const { scrollHeight, clientHeight } = element;\n element.scrollTop = scrollHeight - (clientHeight + pos);\n } catch (err) {\n // do nothing.\n }\n }\n\n onScrollDown(): void {\n this._scrollTrigger.next('down');\n }\n\n onScrollUp(): void {\n this._scrollTrigger.next('up');\n }\n\n loadMore(): void {\n this._loadMoreTrigger.next();\n }\n\n // MARK: Internal\n get nativeElement() {\n return this.__content.elementRef.nativeElement;\n }\n\n get __content(): DbxListInternalContentDirective {\n return this._content as DbxListInternalContentDirective;\n }\n\n set __content(content: DbxListInternalContentDirective) {\n if (this._content == null) {\n this._content = content;\n } else {\n throw new Error('Attempted to set __content in list outside of initialization.');\n }\n }\n}\n\n/**\n * Used internally by DbxListComponent\n */\n@Directive({\n selector: '[dbxListInternalContent]',\n host: {\n class: 'd-block dbx-list-content',\n '[class.dbx-list-content-hidden]': 'hide'\n }\n})\nexport class DbxListInternalContentDirective {\n private readonly parent = inject(DbxListComponent);\n readonly elementRef = inject(ElementRef);\n\n @Input()\n hide: Maybe<boolean> = false;\n\n constructor() {\n this.parent.__content = this;\n }\n\n @HostListener('scroll', ['$event'])\n onScrollEvent($event: Event): void {\n const position = ($event.target as Element).scrollTop;\n this.parent.contentScrolled.emit(position);\n }\n}\n","<dbx-loading [context]=\"context\" [linear]=\"true\"></dbx-loading>\n<div dbxListInternalContent [hide]=\"hideContent$ | async\" infinite-scroll [infiniteScrollDistance]=\"(scrollDistance$ | async) ?? DEFAULT_SCROLL_DISTANCE\" [infiniteScrollUpDistance]=\"(scrollDistance$ | async) ?? DEFAULT_SCROLL_DISTANCE\" [infiniteScrollThrottle]=\"(throttleScroll$ | async) ?? DEFAULT_THROTTLE_SCROLL\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\" (scrolledUp)=\"onScrollUp()\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-injection [config]=\"injectedComponentConfig$ | async\"></dbx-injection>\n <ng-content select=\"[bottom]\"></ng-content>\n</div>\n<ng-content *ngIf=\"isEmptyAndNotLoading$ | async\" select=\"[empty]\"></ng-content>\n<ng-content *ngIf=\"isEmptyLoading$ | async\" select=\"[emptyLoading]\"></ng-content>\n","import { ListLoadingState, filterMaybe, ObservableOrValue, valueFromObservableOrValue } from '@dereekb/rxjs';\nimport { Observable, BehaviorSubject, map, shareReplay } from 'rxjs';\nimport { Output, EventEmitter, OnDestroy, Directive, Input } from '@angular/core';\nimport { DbxListConfig } from './list.component';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\nimport { Maybe } from '@dereekb/util';\nimport { DbxListViewWrapper } from './list.wrapper';\n\nexport const DEFAULT_STATIC_LIST_DIRECTIVE_TEMPLATE = `\n<dbx-list [config]=\"config\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n</dbx-list>\n`;\n\n// MARK: Wrapper\nexport const DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE = `\n<dbx-list [state$]=\"state$\" [config]=\"config$ | async\" [disabled]=\"disabled\" [selectionMode]=\"selectionMode\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n</dbx-list>\n`;\n\nexport type DbxListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListConfig<T, V>, 'onClick' | 'loadMore'>;\n\n@Directive()\nexport abstract class AbstractDbxListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxListWrapperConfig<T, V> = DbxListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy, DbxListViewWrapper<T, S> {\n private readonly _initialConfig = new BehaviorSubject<Maybe<ObservableOrValue<C>>>(undefined);\n\n readonly config$ = this._initialConfig.pipe(\n filterMaybe(),\n valueFromObservableOrValue(),\n map((x: C) => this._buildListConfig(x)),\n shareReplay(1)\n );\n\n @Input()\n disabled?: Maybe<boolean>;\n\n @Input()\n selectionMode?: Maybe<DbxListSelectionMode>;\n\n @Input()\n state$?: Maybe<Observable<S>>;\n\n @Output()\n readonly clickItem = new EventEmitter<T>();\n\n @Output()\n readonly loadMore = new EventEmitter<void>();\n\n constructor(initConfig: ObservableOrValue<C>) {\n this._initialConfig.next(initConfig);\n }\n\n ngOnDestroy(): void {\n this._initialConfig.complete();\n this.clickItem.complete();\n this.loadMore.complete();\n }\n\n protected _buildListConfig(config: C): DbxListConfig<T, V> {\n return {\n ...config,\n onClick: (x) => this.clickItem.emit(x),\n loadMore: () => this.loadMore.emit()\n };\n }\n}\n\n// MARK: Selection Wrapper\nexport type DbxSelectionListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListWrapperConfig<T, V>, 'onSelectionChange'>;\n\n@Directive()\nexport abstract class AbstractDbxSelectionListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxSelectionListWrapperConfig<T, V> = DbxSelectionListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> extends AbstractDbxListWrapperDirective<T, V, C, S> implements OnDestroy {\n @Output()\n selectionChange = new EventEmitter<ListSelectionState<T>>();\n\n override ngOnDestroy(): void {\n this.selectionChange.complete();\n }\n\n protected override _buildListConfig(config: C): DbxListConfig<T, V> {\n const result = super._buildListConfig(config);\n result.onSelectionChange = (x) => this.selectionChange.next(x);\n return result;\n }\n}\n","import { Directive, OnInit, inject } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxReadableErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to an ActionContext.\n */\n@Directive({\n selector: '[dbxActionError]'\n})\nexport class DbxActionErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly error = inject(DbxReadableErrorComponent, { host: true });\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n ngOnInit(): void {\n this.sub = this.source.error$.subscribe((error) => {\n this.error.error = error;\n });\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ReadableError, ServerError, ServerErrorResponse, UnauthorizedServerErrorResponse, build } from '@dereekb/util';\n\n/**\n * Converts the error response to a POJO.\n */\nexport function convertToPOJOServerErrorResponse(httpError: HttpErrorResponse | object): ServerError {\n const result: ServerErrorResponse | undefined = convertToServerErrorResponse(httpError);\n const pojo: ServerErrorResponse = build({\n base: Object.assign({}, result),\n build: (x) => {\n if (x.data) {\n try {\n const stringy = JSON.stringify(pojo.data);\n x.data = JSON.parse(stringy);\n } catch (e) {\n console.warn('convertToPOJOServerErrorResponse(): Non-serializable Error Data Detected. It is being removed.: ', pojo.data);\n x.data = undefined;\n }\n }\n }\n });\n\n return pojo;\n}\n\n/**\n * Converts an HTTP Error Response to a ServerErrorResponse type.\n *\n * @param error\n * @returns\n */\nexport function convertToServerErrorResponse(error: HttpErrorResponse | object): ServerErrorResponse | undefined {\n let result: ServerErrorResponse | undefined;\n\n if (error instanceof HttpErrorResponse) {\n const { status, error: data }: { status: number; error: ServerError } = error;\n\n const code = data.code;\n const message = data.message ?? error.statusText;\n\n switch (status) {\n case 401:\n result = new UnauthorizedServerErrorResponse({ message, data, code });\n break;\n default:\n result = new ServerErrorResponse({ code, status, data, message });\n break;\n }\n } else if (error) {\n result = new ServerErrorResponse({ message: (error as ReadableError).message, status: 0 });\n }\n\n return result;\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxReadableErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to a LoadingContext.\n *\n * The error from the context is given to the app error when available.\n */\n@Directive({\n selector: '[dbxLoadingError]'\n})\nexport class DbxLoadingErrorDirective extends AbstractSubscriptionDirective {\n readonly error = inject(DbxReadableErrorComponent, { host: true });\n\n /**\n * Sets a LoadingContext that is watched for the loading state.\n */\n @Input('dbxLoadingError')\n set context(context: LoadingContext) {\n let subscription;\n\n if (context) {\n subscription = context.stream$.subscribe((x) => {\n this.error.error = x.error;\n });\n }\n\n this.sub = subscription;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe, UnitedStatesAddressWithContact } from '@dereekb/util';\n\n// prettier-ignore\n@Component({\n selector: 'dbx-us-address',\n template: `\n <ng-container *ngIf=\"address\">\n <div *ngIf=\"address.name\" class=\"addr-name\">{{ address.name }}</div>\n <div *ngIf=\"address.phone\" class=\"addr-phone\">{{ address.phone }}</div>\n <div *ngIf=\"address.line1\" class=\"addr-line1\">{{ address.line1 }}</div>\n <div *ngIf=\"address.line2\" class=\"addr-line2\">{{ address.line2 }}</div>\n <div class=\"city-state-zip\">\n <span class=\"addr-city\">{{ address.city }}</span>\n <span *ngIf=\"address.state || address.zip\">, </span>\n <span class=\"addr-state\">{{ address.state }} </span>\n <span class=\"addr-zip\">{{ address.zip }}</span>\n </div>\n </ng-container>\n `,\n host: {\n class: 'dbx-us-address'\n }\n})\nexport class DbxUnitedStatesAddressComponent {\n @Input()\n address: Maybe<Partial<UnitedStatesAddressWithContact>>;\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-detail-block-header',\n template: `\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"header\" class=\"dbx-detail-block-header-label\">{{ header }}</span>\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-detail-block-header',\n '[class]': '{ \"dbx-detail-block-header-no-icon\": !icon }'\n }\n})\nexport class DbxDetailBlockHeaderComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Header and details offset with an icon.\n */\n@Component({\n selector: 'dbx-detail-block',\n template: `\n <dbx-detail-block-header [icon]=\"icon\" [header]=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </dbx-detail-block-header>\n <div class=\"dbx-detail-block-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-detail-block d-block'\n }\n})\nexport class DbxDetailBlockComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Icon spacer directive.\n */\n@Directive({\n selector: 'dbx-icon-spacer,[dbxIconSpacer]',\n host: {\n class: 'dbx-icon-spacer d-inline'\n }\n})\nexport class DbxIconSpacerDirective {}\n","import { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { BehaviorSubject, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport linkifyStr from 'linkify-string';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Used to \"linkify\" the input text.\n */\n@Component({\n selector: 'dbx-linkify',\n template: `\n <span [innerHTML]=\"linkifiedBody$ | async\"></span>\n `,\n host: {\n class: 'dbx-i dbx-linkify'\n }\n})\nexport class DbxLinkifyComponent implements OnDestroy {\n private readonly sanitizer = inject(DomSanitizer);\n\n private _text = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly linkifiedText$ = this._text.pipe(\n distinctUntilChanged(),\n map((x) =>\n x\n ? linkifyStr(x, {\n defaultProtocol: 'https',\n target: {\n url: '_blank'\n }\n })\n : undefined\n ),\n shareReplay(1)\n );\n\n readonly linkifiedBody$ = this.linkifiedText$.pipe(\n map((x) => {\n return x ? this.sanitizer.bypassSecurityTrustHtml(x) : undefined;\n }),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._text.complete();\n }\n\n @Input()\n get text(): Maybe<string> {\n return this._text.value;\n }\n\n set text(text: Maybe<string>) {\n this._text.next(text);\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n@Directive({\n selector: 'dbx-chip',\n host: {\n class: 'dbx-chip mat-standard-chip',\n '[class]': 'style'\n }\n})\nexport class DbxChipDirective {\n @Input()\n small?: Maybe<boolean>;\n\n @Input()\n block?: Maybe<boolean>;\n\n get style() {\n let style = this.small ? 'dbx-chip-small' : '';\n\n if (this.block) {\n style = style + ' dbx-chip-block';\n }\n\n return style;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport interface TextChip<T = unknown> {\n text: string;\n tooltip?: string;\n selected?: boolean;\n color?: 'primary' | 'accent' | 'warn' | undefined;\n data?: T;\n}\n\n@Component({\n selector: 'dbx-text-chips',\n template: `\n <mat-chip-listbox class=\"dbx-text-chips-listbox\" *ngIf=\"chips\">\n <mat-chip-option *ngFor=\"let chip of chips; trackBy: trackChipByText\" [selected]=\"chip.selected ?? defaultSelection\" [color]=\"chip.color\" [matTooltip]=\"chip.tooltip!\" matTooltipPosition=\"above\">\n {{ chip.text }}\n </mat-chip-option>\n </mat-chip-listbox>\n `\n})\nexport class DbxTextChipsComponent<T = unknown> {\n @Input()\n defaultSelection?: boolean;\n\n @Input()\n chips?: Maybe<TextChip<T>[]>;\n\n trackChipByText(index: number, chip: TextChip<T>) {\n return chip.text;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DbxUnitedStatesAddressComponent } from './address.component';\nimport { DbxDetailBlockComponent } from './detail.block.component';\nimport { DbxDetailBlockHeaderComponent } from './detail.block.header.component';\nimport { DbxIconSpacerDirective } from './icon.spacer.component';\nimport { DbxLabelBlockComponent } from './label.block.component';\nimport { DbxLinkifyComponent } from './linkify.component';\nimport { DbxChipDirective } from './text.chip.directive';\nimport { DbxTextChipsComponent } from './text.chips.component';\n\nconst declarations = [DbxUnitedStatesAddressComponent, DbxChipDirective, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxLabelBlockComponent, DbxLinkifyComponent, DbxTextChipsComponent, DbxIconSpacerDirective];\n\n@NgModule({\n imports: [CommonModule, MatChipsModule, MatTooltipModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxTextModule {}\n","import { Component, OnDestroy, inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { ErrorInput, MS_IN_MINUTE, TimerInstance, toggleTimerRunning } from '@dereekb/util';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { BehaviorSubject, from } from 'rxjs';\n\nexport type DbxErrorSnackbarConfig = Omit<MatSnackBarConfig<any>, 'data' | 'viewContainerRef'>;\n\nexport interface DbxErrorSnackbarData<T extends ErrorInput = ErrorInput> {\n /**\n * The error being passed to the error view.\n */\n readonly error: T;\n /**\n * Duration to show the error before closing while not interacting with the error view.\n *\n * While the error's info view is open the snackbar will not automatically be dismissed.\n */\n readonly duration?: number;\n}\n\n/**\n * A snackbar orientation for an error.\n */\n@Component({\n templateUrl: './error.snackbar.component.html'\n})\nexport class DbxErrorSnackbarComponent implements OnDestroy {\n readonly snackBarRef = inject(MatSnackBarRef<DbxErrorSnackbarComponent>);\n readonly data = inject<DbxErrorSnackbarData>(MAT_SNACK_BAR_DATA);\n\n private _allowAutoDismiss = Boolean(this.data.duration);\n\n private _popoverOpen = new BehaviorSubject<boolean>(false);\n private _autoDismissTimer = new TimerInstance(this.data.duration ?? MS_IN_MINUTE, this._allowAutoDismiss);\n\n private _popoverSub = new SubscriptionObject();\n private _popoverSyncSub = new SubscriptionObject(this._popoverOpen.subscribe((x) => toggleTimerRunning(this._autoDismissTimer, !x)));\n private _autoDismissSub = new SubscriptionObject(from(this._autoDismissTimer.promise).subscribe(() => this.dismiss()));\n\n get error() {\n return this.data.error;\n }\n\n ngOnInit(): void {\n if (!this._allowAutoDismiss) {\n this._popoverSyncSub.destroy();\n this._autoDismissSub.destroy();\n }\n }\n\n ngOnDestroy(): void {\n this._popoverOpen.complete();\n this._popoverSub.destroy();\n this._popoverSyncSub.destroy();\n this._autoDismissSub.destroy();\n this._autoDismissTimer.destroy();\n }\n\n static showErrorSnackbar(matSnackbar: MatSnackBar, error: ErrorInput, config?: DbxErrorSnackbarConfig) {\n matSnackbar.openFromComponent(DbxErrorSnackbarComponent, {\n ...config,\n duration: undefined, // do pass duration to matSnackbar. Component will handle it.\n panelClass: [...(config?.panelClass ?? []), 'dbx-error-snackbar'], // add the snackbar error class\n data: {\n error,\n duration: config?.duration\n }\n });\n }\n\n errorPopoverOpen(popover: NgPopoverRef) {\n this._popoverOpen.next(true);\n this._popoverSub.subscription = popover.afterClosed$.subscribe(() => {\n this._popoverOpen.next(false);\n });\n }\n\n dismiss() {\n return this.snackBarRef.dismiss();\n }\n}\n","<div class=\"dbx-error-snackbar-content\">\n <dbx-error [error]=\"error\" (popoverOpen)=\"errorPopoverOpen($event)\"></dbx-error>\n <div class=\"dbx-spacer\"></div>\n <button class=\"dbx-error-snackbar-content-button\" mat-icon-button aria-label=\"dismiss error\" (click)=\"dismiss()\">\n <mat-icon>close</mat-icon>\n </button>\n</div>\n","import { Injectable, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ErrorInput, Maybe } from '@dereekb/util';\nimport { DbxErrorSnackbarComponent, DbxErrorSnackbarConfig } from './error.snackbar.component';\n\n/**\n * Service used to show errors in the snackbar.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxErrorSnackbarService {\n readonly matSnackbar = inject(MatSnackBar);\n\n private _defaultConfig: DbxErrorSnackbarConfig = {\n politeness: 'polite',\n announcementMessage: 'An error has occurred',\n horizontalPosition: 'center',\n verticalPosition: 'bottom'\n };\n\n get defaultConfig() {\n return this._defaultConfig;\n }\n\n setDefaultConfig(defaultConfig: DbxErrorSnackbarConfig) {\n this._defaultConfig = defaultConfig;\n }\n\n showSnackbarError(error: ErrorInput, inputConfig?: Maybe<DbxErrorSnackbarConfig>) {\n const config = {\n ...inputConfig,\n ...this._defaultConfig\n };\n\n return DbxErrorSnackbarComponent.showErrorSnackbar(this.matSnackbar, error, config);\n }\n}\n","import { Directive, Input, OnInit, inject } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxErrorSnackbarService } from './error.snackbar.service';\nimport { Maybe, Milliseconds, toReadableError } from '@dereekb/util';\nimport { DbxErrorSnackbarConfig } from './error.snackbar.component';\nimport { filterMaybe } from '@dereekb/rxjs';\n\n/**\n * Context used for displaying an error from an ActionContext a snackbar when an ReadableErrorComponent\n */\n@Directive({\n selector: '[dbxActionSnackbarError]'\n})\nexport class DbxActionSnackbarErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly dbxErrorSnackbarService = inject(DbxErrorSnackbarService);\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n @Input('dbxActionSnackbarError')\n config?: Maybe<DbxErrorSnackbarConfig> | Milliseconds | '';\n\n ngOnInit(): void {\n this.sub = this.source.error$.pipe(filterMaybe()).subscribe((inputError) => {\n const error = toReadableError(inputError);\n const config = this.config ? (typeof this.config === 'number' ? { duration: this.config } : this.config) : undefined;\n this.dbxErrorSnackbarService.showSnackbarError(error, config);\n });\n }\n}\n","import { MatIconModule } from '@angular/material/icon';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DbxReadableErrorComponent } from './error.component';\nimport { DbxLoadingErrorDirective } from './error.loading.directive';\nimport { DbxActionErrorDirective } from './error.action.directive';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { DbxErrorDetailsComponent } from './error.details.component';\nimport { DbxPopoverInteractionContentModule } from '../interaction/popover/popover.content.module';\nimport { DbxErrorWidgetViewComponent } from './error.widget.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\nimport { DbxTextModule } from '../layout/text/text.module';\nimport { DbxErrorViewComponent } from './error.view.component';\nimport { DbxErrorSnackbarComponent } from './error.snackbar.component';\nimport { DbxActionSnackbarErrorDirective } from './error.snackbar.action.directive';\n\nconst declarations = [\n //\n DbxReadableErrorComponent,\n DbxLoadingErrorDirective,\n DbxActionErrorDirective,\n DbxActionSnackbarErrorDirective,\n DbxErrorViewComponent,\n DbxErrorSnackbarComponent,\n DbxErrorPopoverComponent,\n DbxErrorDetailsComponent,\n DbxErrorWidgetViewComponent,\n DbxErrorDefaultErrorWidgetComponent\n];\n\n@NgModule({\n imports: [CommonModule, DbxTextModule, DbxInjectionComponentModule, DbxPopoverInteractionContentModule, MatButtonModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxReadableErrorModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { convertToPOJOServerErrorResponse } from './error.api';\nimport { catchError, MonoTypeOperatorFunction, of } from 'rxjs';\nimport { ActionCreator, TypedAction } from '@ngrx/store/src/models';\nimport { ServerError } from '@dereekb/util';\n\nexport interface ServerErrorParams {\n error: ServerError;\n}\n\n/**\n * Converts the error response to ServerErrorParams.\n */\nexport function convertServerErrorParams(httpError: HttpErrorResponse | object): ServerErrorParams {\n const error: ServerError = convertToPOJOServerErrorResponse(httpError);\n return { error };\n}\n\n/**\n * Catches error server params and feeds them to an action that takes ServerErrorParams as a prop.\n */\nexport function catchErrorServerParams<E extends ServerErrorParams, T extends string>(action: ActionCreator<T, (props: E) => E & TypedAction<T>>, mapError: (error: ServerErrorParams) => E = (error) => error as E): MonoTypeOperatorFunction<E & TypedAction<T>> {\n return catchError((error: HttpErrorResponse | object) => {\n const serverErrorParams = convertServerErrorParams(error);\n const mappedError: E = mapError(serverErrorParams);\n const act = action(mappedError);\n return of(act);\n });\n}\n","import { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Directive, OnInit, OnDestroy, inject } from '@angular/core';\nimport { LoadingStateContextInstance } from '@dereekb/rxjs';\nimport { DbxLoadingComponent } from './loading.component';\n\n/**\n * Context used for linking a loadingComponent to an ActionContext by providing a LoadingContext.\n */\n@Directive({\n selector: '[dbxActionLoadingContext]'\n})\nexport class DbxActionLoadingContextDirective implements OnInit, OnDestroy {\n readonly loadingComponent = inject(DbxLoadingComponent, { host: true });\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n private _context = new LoadingStateContextInstance({ obs: this.source.loadingState$ });\n\n get context() {\n return this._context;\n }\n\n ngOnInit(): void {\n this.loadingComponent.context = this._context;\n }\n\n ngOnDestroy(): void {\n this._context.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxBasicLoadingComponent } from './basic-loading.component';\nimport { DbxLoadingProgressComponent } from './loading-progress.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { DbxLoadingComponent } from './loading.component';\nimport { DbxReadableErrorModule } from '../error';\nimport { DbxActionLoadingContextDirective } from './loading.action.directive';\n\nconst declarations = [DbxLoadingComponent, DbxBasicLoadingComponent, DbxLoadingProgressComponent, DbxActionLoadingContextDirective];\n\n@NgModule({\n imports: [CommonModule, DbxReadableErrorModule, MatProgressSpinnerModule, MatProgressBarModule],\n declarations,\n exports: [...declarations, MatProgressSpinnerModule, MatProgressBarModule]\n})\nexport class DbxLoadingModule {}\n","import { Observable } from 'rxjs';\nimport { ListLoadingState, ListLoadingStateContext } from '@dereekb/rxjs';\nimport { EventEmitter, forwardRef, Provider, TrackByFunction, Type } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport type DbxListSelectionMode = 'select' | 'view';\n\nexport interface ListSelectionStateItem<T> {\n disabled?: boolean;\n selected?: boolean;\n itemValue: T;\n}\n\nexport interface ListSelectionState<T> {\n items: ListSelectionStateItem<T>[];\n}\n\n/**\n * Interface for a view that renders the items of a DbxList.\n */\nexport abstract class DbxListView<T, S extends ListLoadingState<T> = ListLoadingState<T>> {\n /**\n * Current disabled state.\n */\n abstract readonly disabled$: Observable<boolean>;\n /**\n * (Optional) current selection mode.\n */\n abstract readonly selectionMode$?: Observable<Maybe<DbxListSelectionMode>>;\n /**\n * Values of the list view.\n */\n abstract readonly values$: Observable<T[]>;\n /**\n * Track by configuration.\n */\n abstract trackBy?: TrackByFunction<T>;\n /**\n * (Optional) clicked event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract clickValue?: EventEmitter<T>;\n /**\n * (Optional) selection changed event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract selectionChange?: EventEmitter<ListSelectionState<T>>;\n /**\n * Sets the models input loading state context for the view to render from.\n */\n abstract setListContext(state: ListLoadingStateContext<T, S>): void;\n /**\n * Sets the disabled state of the list view.\n */\n abstract setDisabled(disabled: boolean): void;\n /**\n * Sets the selection mode of the list view.\n */\n abstract setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void;\n}\n\n// eslint-disable-next-line\nexport function provideDbxListView<V extends DbxListView<any>>(sourceType: Type<V>): Provider[] {\n // use of any here is allowed as typings are not relevant for providers\n return [\n {\n provide: DbxListView,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { forwardRef, InjectionToken, Provider, StaticProvider, Type } from '@angular/core';\nimport { ClickableAnchor, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { map, Observable, of } from 'rxjs';\nimport { DecisionFunction, Maybe } from '@dereekb/util';\n\nexport const DBX_VALUE_LIST_VIEW_ITEM = new InjectionToken<unknown>('DbxValueListViewItem');\n\nexport interface DbxValueListItem<T, M = unknown> {\n itemValue: T;\n /**\n * Arbitrary meta details available to the meta component.\n */\n meta?: M;\n icon?: string;\n disabled?: boolean;\n rippleDisabled?: boolean;\n selected?: boolean;\n anchor?: Maybe<ClickableAnchor>;\n}\n\nexport type DbxValueListItemDecisionFunction<T> = DecisionFunction<DbxValueListItem<T>>;\n\n/**\n * Convenience function for mapping a DecisionFunction for a value to a DecisionFunction for a DbxValueListItem with the same value type.\n * @param decisionFunction\n * @returns\n */\nexport function dbxValueListItemDecisionFunction<T>(decisionFunction: DecisionFunction<T>): DbxValueListItemDecisionFunction<T> {\n return (item) => decisionFunction(item.itemValue);\n}\n\n/**\n * Special type used with values that contain all the items of DbxValueListItem internally.\n */\nexport type DbxValueAsListItem<T> = T & Omit<DbxValueListItem<DbxValueListItem<T>>, 'itemValue'>;\n\nexport interface AbstractDbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends DbxInjectionComponentConfig<V> {\n mapValuesToItemValues?(values: T[]): Observable<I[]>;\n metaConfig?: DbxInjectionComponentConfig<any>;\n}\n\nexport const DEFAULT_DBX_VALUE_LIST_CONFIG_MAP_VALUES = <T, I extends DbxValueListItem<T>>(itemValues: T[]) => of(itemValues.map((itemValue) => ({ itemValue })) as I[]);\n\nexport type DbxValueListItemConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> = I & {\n config: DbxInjectionComponentConfig<V>;\n metaConfig?: DbxInjectionComponentConfig<any>;\n};\n\nexport function mapValuesToValuesListItemConfigObs<T, I extends DbxValueListItem<T>, V = unknown>(listViewConfig: AbstractDbxValueListViewConfig<T, I, V>, itemValues: T[]): Observable<DbxValueListItemConfig<T, I, V>[]> {\n const makeObs = listViewConfig.mapValuesToItemValues ?? DEFAULT_DBX_VALUE_LIST_CONFIG_MAP_VALUES;\n return makeObs(itemValues).pipe(\n map((listItems: I[]) => {\n const listItemConfigs: DbxValueListItemConfig<T, I, V>[] = addConfigToValueListItems<T, I, V>(listViewConfig, listItems);\n return listItemConfigs;\n })\n );\n}\n\n/**\n * Adds config to the input value list items.\n *\n * @param listViewConfig\n * @param listItems\n * @returns\n */\nexport function addConfigToValueListItems<T, I extends DbxValueListItem<T>, V = unknown>(listViewConfig: AbstractDbxValueListViewConfig<T, I, V>, listItems: I[]): DbxValueListItemConfig<T, I, V>[] {\n const itemConfigs: DbxValueListItemConfig<T, I, V>[] = listItems.map((listItem: I) => {\n const anchor = listItem.anchor;\n\n listItem.disabled = listItem.disabled || anchor?.disabled;\n (listItem as DbxValueListItemConfig<T, I, V>).config = Object.assign({}, listViewConfig, {\n providers: [\n {\n provide: DBX_VALUE_LIST_VIEW_ITEM,\n useValue: listItem\n },\n ...(listViewConfig.providers ?? [])\n ] as StaticProvider[]\n });\n\n // only attach meta config if it is configured\n if (listViewConfig.metaConfig) {\n (listItem as DbxValueListItemConfig<T, I, V>).metaConfig = Object.assign({}, listViewConfig.metaConfig, {\n providers: [\n {\n provide: DBX_VALUE_LIST_VIEW_ITEM,\n useValue: listItem\n },\n ...(listViewConfig.metaConfig?.providers ?? [])\n ] as StaticProvider[]\n });\n }\n\n return listItem as DbxValueListItemConfig<T, I, V>;\n });\n\n return itemConfigs;\n}\n\n// MARK: ValueListView\nexport abstract class DbxValueListView<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n abstract readonly items$: Observable<I[]>;\n}\n\nexport function provideDbxValueListView<V extends DbxValueListView<unknown>>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxValueListView,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Maybe, maybeModifierMapToFunction, ModifierFunction } from '@dereekb/util';\nimport { OnDestroy, Input, Directive, inject } from '@angular/core';\nimport { filterMaybe, mapForEach } from '@dereekb/rxjs';\nimport { BehaviorSubject, distinctUntilChanged, shareReplay, combineLatest, switchMap, map, Observable, of } from 'rxjs';\nimport { DbxListView } from './list.view';\nimport { AbstractDbxValueListViewConfig, DbxValueListItem, DbxValueListItemConfig, DbxValueListView, mapValuesToValuesListItemConfigObs } from './list.view.value';\nimport { DbxValueListItemModifier } from './list.view.value.modifier';\n\n/**\n * Abstract list directive that takes in items and a AbstractDbxValueItemListViewConfig configuration.\n */\n@Directive()\nexport abstract class AbstractDbxValueListViewDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends AbstractDbxValueListViewConfig<T, I, V> = AbstractDbxValueListViewConfig<T, I, V>> implements DbxValueListView<T, I>, OnDestroy {\n readonly dbxListView = inject(DbxListView<T>);\n readonly dbxValueListViewModifier = inject(DbxValueListItemModifier<T, I>, { optional: true });\n\n private _config = new BehaviorSubject<Maybe<C>>(undefined);\n readonly config$ = this._config.pipe(filterMaybe(), distinctUntilChanged());\n\n readonly modifyFn$: Observable<Maybe<ModifierFunction<I>>> = this.dbxValueListViewModifier ? this.dbxValueListViewModifier.modifiers$.pipe(map(maybeModifierMapToFunction)) : of(undefined);\n\n readonly items$: Observable<DbxValueListItemConfig<T, I>[]> = combineLatest([this.config$, this.dbxListView.values$, this.modifyFn$]).pipe(\n switchMap(([listViewConfig, values, modifyFn]) => mapValuesToValuesListItemConfigObs<T, I, V>(listViewConfig, values).pipe(mapForEach(modifyFn)) as Observable<DbxValueListItemConfig<T, I>[]>),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._config.complete();\n }\n\n @Input()\n set config(config: Maybe<C>) {\n this._config.next(config);\n }\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.next(value);\n }\n}\n","import { CssClassesArray, Maybe, UniqueModel } from '@dereekb/util';\nimport { DbxValueListItem, DbxValueListItemConfig } from './list.view.value';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Provider, Type, forwardRef } from '@angular/core';\nimport { ObservableOrValue } from '@dereekb/rxjs';\n\n/**\n * A group of DbxValueListItem values, grouped by common data, name, and id.\n */\nexport interface DbxValueListItemGroup<G, T, I extends DbxValueListItem<T>, H = unknown, F = unknown> extends Omit<DbxValueListItem<any>, 'itemValue' | 'icon'>, Readonly<Required<UniqueModel>> {\n readonly data: G;\n readonly items: DbxValueListItemConfig<T, I>[];\n /**\n * (Optional) View configuration for the group's header.\n */\n readonly headerConfig?: Maybe<DbxInjectionComponentConfig<H>>;\n /**\n * (Optional) View configuration for the group's header.\n */\n readonly footerConfig?: Maybe<DbxInjectionComponentConfig<F>>;\n /**\n * Whether or not to show the group's items. Defaults to true.\n */\n readonly showGroupItems?: boolean;\n /**\n * Custom CSS classes to apply to all groups.\n */\n readonly cssClasses?: CssClassesArray;\n}\n\n/**\n * Function that generates an array of DbxValueListItemGroup values from a list of items.\n */\nexport type DbxValueListViewGroupValuesFunction<G, T, I extends DbxValueListItem<T>, H = unknown, F = unknown> = (items: DbxValueListItemConfig<T, I>[]) => ObservableOrValue<DbxValueListItemGroup<G, T, I, H, F>[]>;\n\nexport const defaultDbxValueListViewGroupValuesFunction = <T, I extends DbxValueListItem<T>>(items: DbxValueListItemConfig<T, I>[]) => {\n const data = {};\n const result: DbxValueListItemGroup<unknown, T, I> = {\n id: '_',\n data,\n items\n };\n\n return [result];\n};\n\n/**\n * Interface for a view that renders the items of a DbxList.\n */\nexport abstract class DbxValueListViewGroupDelegate<G, T, I extends DbxValueListItem<T> = DbxValueListItem<T>, H = unknown, F = unknown> {\n /**\n * Groups all input items into groups.\n */\n abstract readonly groupValues: DbxValueListViewGroupValuesFunction<G, T, I, H, F>;\n}\n\nexport function defaultDbxValueListViewGroupDelegate<T, I extends DbxValueListItem<T>>(): DbxValueListViewGroupDelegate<any, T, I> {\n const result = {\n groupValues: defaultDbxValueListViewGroupValuesFunction\n };\n\n return result;\n}\n\n// eslint-disable-next-line\nexport function provideDbxValueListViewGroupDelegate<D extends DbxValueListViewGroupDelegate<any, any, any, any>>(sourceType: Type<D>): Provider[] {\n // use of any here is allowed as typings are not relevant for providers\n return [\n {\n provide: DbxValueListViewGroupDelegate,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, TrackByFunction, inject } from '@angular/core';\nimport { shareReplay, map, Observable, BehaviorSubject, switchMap } from 'rxjs';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig, DbxValueListItemConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { AnchorType, anchorTypeForAnchor } from '@dereekb/dbx-core';\nimport { DbxListView } from './list.view';\nimport { Maybe, SpaceSeparatedCssClasses, spaceSeparatedCssClasses } from '@dereekb/util';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, defaultDbxValueListViewGroupDelegate } from './list.view.value.group';\nimport { asObservable } from '@dereekb/rxjs';\n\nexport interface DbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n emitAllClicks?: boolean;\n}\n\n/**\n * Renders a list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-view',\n template: `\n <dbx-list-view-content [items]=\"items$ | async\" [emitAllClicks]=\"emitAllClicks$ | async\"></dbx-list-view-content>\n `\n})\nexport class DbxValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListViewConfig<T, I, V> = DbxValueListViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {\n readonly emitAllClicks$ = this.config$.pipe(\n map((x) => x.emitAllClicks),\n shareReplay(1)\n );\n}\n\n/**\n * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-view-content',\n template: `\n <mat-nav-list [disabled]=\"disabled$ | async\">\n <ng-container *ngFor=\"let group of groups$ | async; trackBy: trackGroupByFunction\">\n <dbx-list-view-content-group [group]=\"group\"></dbx-list-view-content-group>\n </ng-container>\n </mat-nav-list>\n `,\n host: {\n class: 'dbx-list-view'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxListView = inject(DbxListView<T>);\n\n readonly _dbxListGroupDelegate: DbxValueListViewGroupDelegate<any, T, I> = inject<Maybe<DbxValueListViewGroupDelegate<any, T, I>>>(DbxValueListViewGroupDelegate, { optional: true }) ?? defaultDbxValueListViewGroupDelegate();\n\n private _items = new BehaviorSubject<Maybe<DbxValueListItemConfig<T, I>[]>>(undefined);\n\n readonly groups$: Observable<DbxValueListItemGroup<any, T, I>[]> = this._items.pipe(\n switchMap((items) => asObservable(this._dbxListGroupDelegate.groupValues(items ?? []))),\n shareReplay(1)\n );\n\n @Input()\n emitAllClicks?: Maybe<boolean>;\n\n readonly disabled$ = this.dbxListView.disabled$;\n\n readonly trackByFunction: TrackByFunction<DbxValueListItemConfig<T, I>>;\n readonly trackGroupByFunction: TrackByFunction<DbxValueListItemGroup<any, T, I>> = (_, v) => {\n return v.id; // track by the id\n };\n\n constructor() {\n const trackBy = this.dbxListView.trackBy;\n this.trackByFunction = trackBy ? (index: number, item: DbxValueListItemConfig<T, I>) => trackBy(index, item.itemValue) : () => undefined;\n }\n\n ngOnDestroy(): void {\n this._items.complete();\n }\n\n @Input()\n get items(): Maybe<DbxValueListItemConfig<T, I>[]> {\n return this._items.value;\n }\n\n set items(items: Maybe<DbxValueListItemConfig<T, I>[]>) {\n this._items.next(items);\n }\n\n onClickItem(item: I) {\n // do not emit clicks for disabled items.\n if (!item.disabled) {\n if (this.emitAllClicks || !item.anchor || anchorTypeForAnchor(item.anchor) === AnchorType.PLAIN) {\n // only emit clicks for items with no anchor, or plain anchors.\n this.onClickValue(item.itemValue);\n }\n }\n }\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.next(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return item.rippleDisabled || (!this.emitAllClicks && !item.anchor);\n }\n}\n\n/**\n * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-view-content-group',\n template: `\n <div class=\"dbx-list-view-group-content\">\n <div class=\"dbx-list-view-group-header\" *ngIf=\"headerConfig\">\n <dbx-injection [config]=\"headerConfig\"></dbx-injection>\n </div>\n <dbx-anchor *ngFor=\"let item of items; trackBy: trackByFunction\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\">\n <a mat-list-item class=\"dbx-list-view-item\" [disabled]=\"item.disabled\" [disableRipple]=\"rippleDisabledOnItem(item)\" (click)=\"onClickItem(item)\">\n <mat-icon matListItemIcon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n <span *ngIf=\"item.metaConfig\" matListItemMeta>\n <dbx-injection [config]=\"item.metaConfig\"></dbx-injection>\n </span>\n </a>\n </dbx-anchor>\n <div class=\"dbx-list-view-group-footer\" *ngIf=\"footerConfig\">\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-list-view-group',\n '[class]': 'cssClasses'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListViewContentGroupComponent<G, T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxValueListViewContentComponent = inject(DbxValueListViewContentComponent<T>);\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _group: Maybe<DbxValueListItemGroup<G, T, I>>;\n private _cssClasses: Maybe<SpaceSeparatedCssClasses>;\n\n get cssClasses() {\n return this._cssClasses;\n }\n\n get items(): Maybe<DbxValueListItemConfig<T, I>[]> {\n return this._group?.items;\n }\n\n get headerConfig() {\n return this._group?.headerConfig;\n }\n\n get footerConfig() {\n return this._group?.footerConfig;\n }\n\n readonly disabled$: Observable<boolean> = this.dbxValueListViewContentComponent.disabled$;\n readonly trackByFunction: TrackByFunction<DbxValueListItemConfig<T, I>> = this.dbxValueListViewContentComponent.trackByFunction;\n\n @Input()\n get group() {\n return this._group;\n }\n\n set group(group: Maybe<DbxValueListItemGroup<G, T, I>>) {\n this._group = group;\n this._cssClasses = spaceSeparatedCssClasses(group?.cssClasses);\n this.cdRef.markForCheck();\n }\n\n onClickItem(item: I) {\n this.dbxValueListViewContentComponent.onClickItem(item);\n }\n\n onClickValue(value: T) {\n this.dbxValueListViewContentComponent.onClickValue(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return this.dbxValueListViewContentComponent.rippleDisabledOnItem(item);\n }\n}\n","import { Observable, map, shareReplay, distinctUntilChanged, of } from 'rxjs';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { DbxListSelectionMode, ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { Maybe } from '@dereekb/util';\nimport { DbxValueListViewContentComponent } from './list.view.value.component';\n\nexport interface DbxSelectionValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n readonly multiple?: boolean;\n}\n\n/**\n * Renders a selection list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-selection-list-view',\n template: `\n <dbx-selection-list-view-content [selectionMode]=\"selectionMode$ | async\" [multiple]=\"multiple$ | async\" [items]=\"items$ | async\"></dbx-selection-list-view-content>\n `\n})\nexport class DbxSelectionValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewDirective<T, I, V, DbxSelectionValueListViewConfig<T, I, V>> {\n readonly selectionMode$: Observable<DbxListSelectionMode> = (this.dbxListView.selectionMode$ ?? of('select' as DbxListSelectionMode)).pipe(\n map((x) => x ?? 'select'),\n distinctUntilChanged()\n );\n readonly multiple$ = this.config$.pipe(\n map((x) => x.multiple ?? true),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n\n/**\n * Content view for a DbxSelectionValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-selection-list-view-content',\n template: `\n <ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"'view'\">\n <dbx-list-view-content [items]=\"items\"></dbx-list-view-content>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <mat-selection-list [disabled]=\"disabled$ | async\" [multiple]=\"multiple\" (selectionChange)=\"matSelectionChanged($event)\">\n <mat-list-option class=\"dbx-list-view-item\" *ngFor=\"let item of items; trackBy: trackByFunction\" [selected]=\"item.selected\" [disabled]=\"item.disabled\" [value]=\"item.itemValue\" (click)=\"onClickValue(item.itemValue)\">\n <mat-icon matListItemIcon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n </mat-list-option>\n </mat-selection-list>\n </ng-container>\n </ng-container>\n `,\n host: {\n class: 'dbx-list-view dbx-selection-list-view'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSelectionValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> {\n @Input()\n multiple?: Maybe<boolean>;\n\n @Input()\n selectionMode: Maybe<DbxListSelectionMode>;\n\n constructor() {\n super();\n if (!this.dbxListView.selectionChange) {\n throw new Error('Parent dbxListView to DbxSelectionValueListViewComponent has no selectionChange emitter.');\n }\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n (this.dbxListView.selectionChange as EventEmitter<ListSelectionState<T>>).next({\n // asserted in constructor\n items\n });\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from './list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\n\nexport const DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY = 'disable_ripple_anchor';\n\nexport const DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.rippleDisabled || !item.anchor || (!item.anchor.ref && !item.anchor.url && !item.anchor.onClick);\n};\n\n@Directive({\n selector: '[dbxListItemDisableRippleModifier]'\n})\nexport class DbxListItemDisableRippleModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _disableRippleForItem = new BehaviorSubject<DbxValueListItemDecisionFunction<T>>(DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._disableRippleForItem.pipe(\n map((disableRippleForItem) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n if (disableRippleForItem(x)) {\n x.rippleDisabled = true;\n }\n }\n };\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._disableRippleForItem.complete();\n }\n\n @Input('dbxListItemDisableRippleModifier')\n set disableRippleForItem(disableRippleForItem: Maybe<DbxValueListItemDecisionFunction<T>>) {\n this._disableRippleForItem.next(disableRippleForItem ?? DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION);\n }\n}\n","import { ChangeDetectionStrategy, Component, Directive, Input, OnDestroy, inject } from '@angular/core';\nimport { shareReplay, map, BehaviorSubject, combineLatest, of, Observable } from 'rxjs';\nimport { DbxValueListItem } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { Maybe, mergeObjects } from '@dereekb/util';\nimport { DbxValueListViewContentComponent, DbxValueListViewConfig } from './list.view.value.component';\n\nexport interface DbxValueListGridViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends DbxValueListViewConfig<T, I, V> {\n grid?: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>;\n}\n\n/**\n * Renders a grid view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-grid-view',\n template: `\n <dbx-list-grid-view-content [grid]=\"grid$ | async\" [items]=\"items$ | async\" [emitAllClicks]=\"emitAllClicks$ | async\"></dbx-list-grid-view-content>\n `\n})\nexport class DbxValueListGridViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListGridViewConfig<T, I, V> = DbxValueListGridViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {\n readonly grid$ = this.config$.pipe(map((x) => x.grid));\n readonly emitAllClicks$ = this.config$.pipe(\n map((x) => x.emitAllClicks),\n shareReplay(1)\n );\n}\n\nexport interface DbxValueListGridItemViewGridSizeConfig {\n /**\n * Gap size in %, px, vw, vh\n */\n gap: string;\n /**\n * Columns configuration.\n *\n * Example: repeat(auto-fill, minmax(200px, 1fr))\n */\n columns: string;\n}\n\nexport const DEFAULT_LIST_GRID_SIZE_CONFIG: DbxValueListGridItemViewGridSizeConfig = {\n columns: 'repeat(auto-fill, minmax(320px, 1fr))',\n gap: '8px'\n};\n\n/**\n * Optional parent directive used to control grid size.\n */\n@Directive({\n selector: '[dbxListGridSize]'\n})\nexport class DbxValueListGridSizeDirective implements OnDestroy {\n private _gridSize = new BehaviorSubject<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined);\n\n readonly gridSize$ = this._gridSize.asObservable();\n\n @Input('dbxListGridSize')\n get gridSize(): Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>> {\n return this._gridSize.value;\n }\n\n set gridSize(gridSize: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>) {\n if (gridSize) {\n this._gridSize.next(gridSize);\n }\n }\n\n ngOnDestroy(): void {\n this._gridSize.complete();\n }\n}\n\n/**\n * Content view for a DbxValueListGridView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-grid-view-content',\n template: `\n <div [gdGap]=\"gap$ | async\" [gdColumns]=\"columns$ | async\">\n <dbx-anchor *ngFor=\"let item of items; trackBy: trackByFunction\" matRipple [matRippleDisabled]=\"rippleDisabledOnItem(item)\" class=\"dbx-list-grid-view-item\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\" (click)=\"onClickItem(item)\">\n <div dbx-injection [config]=\"item.config\"></div>\n </dbx-anchor>\n </div>\n `,\n host: {\n class: 'dbx-list-grid-view'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListGridViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> implements OnDestroy {\n private readonly _gridSizeOverride = inject(DbxValueListGridSizeDirective, { optional: true });\n private readonly _defaultGrid = new BehaviorSubject<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined);\n\n readonly grid$: Observable<DbxValueListGridItemViewGridSizeConfig> = combineLatest([this._defaultGrid, this._gridSizeOverride?.gridSize$ ?? of(undefined)]).pipe(\n map(([defaultGrid, overrideGrid]) => {\n const grid = mergeObjects<DbxValueListGridItemViewGridSizeConfig>([DEFAULT_LIST_GRID_SIZE_CONFIG, defaultGrid, overrideGrid]);\n return grid as DbxValueListGridItemViewGridSizeConfig;\n }),\n shareReplay(1)\n );\n\n readonly gap$ = this.grid$.pipe(map((x) => x.gap));\n readonly columns$ = this.grid$.pipe(map((x) => x.columns));\n\n @Input()\n set grid(grid: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>) {\n this._defaultGrid.next(grid);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._defaultGrid.complete();\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from './list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\n\nexport const DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY = 'is_selected_item_modifier';\n\nexport const DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.selected ?? false;\n};\n\n@Directive({\n selector: '[dbxListItemIsSelectedModifier]'\n})\nexport class DbxListItemIsSelectedModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _listItemIsSelected = new BehaviorSubject<DbxValueListItemDecisionFunction<T>>(DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._listItemIsSelected.pipe(\n map((listItemIsSelected) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.selected = listItemIsSelected(x);\n }\n };\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._listItemIsSelected.complete();\n }\n\n @Input('dbxListItemIsSelectedModifier')\n set listItemIsSelected(listItemIsSelected: Maybe<DbxValueListItemDecisionFunction<T>>) {\n this._listItemIsSelected.next(listItemIsSelected ?? DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION);\n }\n}\n","import { Directive, Input, InjectionToken, Component, ChangeDetectionStrategy, StaticProvider, inject } from '@angular/core';\nimport { DbxValueListItem, DbxValueListItemConfig } from './list.view.value';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, DbxValueListViewGroupValuesFunction, provideDbxValueListViewGroupDelegate } from './list.view.value.group';\nimport { BehaviorSubject, map } from 'rxjs';\nimport { Building, Maybe, PrimativeKey, compareWithMappedValuesFunction, makeValuesGroupMap } from '@dereekb/util';\nimport { DbxListTitleGroupData, DbxListTitleGroupTitleDelegate } from './list.view.value.group.title';\n\nexport const DBX_LIST_TITLE_GROUP_DATA = new InjectionToken<unknown>('DbxListTitleGroupData');\n\n/**\n * Abstract DbxListTitleGroupHeaderComponent that already has the data injected.\n */\nexport abstract class AbstractDbxListTitleGroupHeaderComponent<O extends PrimativeKey, D extends DbxListTitleGroupData<O>> {\n readonly data = inject<D>(DBX_LIST_TITLE_GROUP_DATA);\n}\n\n/**\n * Delegate used to for grouping DbxValueListItemConfig<T, I> values.\n */\n@Directive({\n selector: '[dbxListTitleGroup]',\n providers: [provideDbxValueListViewGroupDelegate(DbxListTitleGroupDirective)]\n})\nexport class DbxListTitleGroupDirective<T, O extends PrimativeKey = PrimativeKey, D extends DbxListTitleGroupData<O> = DbxListTitleGroupData<O>, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListViewGroupDelegate<D, T, I> {\n private _delegate = new BehaviorSubject<Maybe<DbxListTitleGroupTitleDelegate<T, O, D, I>>>(undefined);\n\n readonly groupValues: DbxValueListViewGroupValuesFunction<D, T, I, unknown, unknown> = (items: DbxValueListItemConfig<T, I>[]) => {\n return this._delegate.pipe(\n map((delegate) => {\n let groups: DbxValueListItemGroup<D, T, I>[];\n\n if (delegate != null) {\n const groupsValuesMap = makeValuesGroupMap(items, delegate.groupValueForItem);\n const { sortGroupsByData, cssClasses: inputCssClasses } = delegate;\n const cssClassesForAllGroups = inputCssClasses ?? [];\n\n const componentClass = delegate.headerComponentClass ?? DbxListTitleGroupHeaderComponent;\n const { dataForGroupValue, footerComponentClass } = delegate;\n\n groups = Array.from(groupsValuesMap.entries()).map(([value, items]) => {\n const data = dataForGroupValue(value as O, items);\n (data as Building<D>).value = value as O;\n const cssClasses = data.cssClasses ? [...cssClassesForAllGroups, ...data.cssClasses] : cssClassesForAllGroups;\n\n const providers: StaticProvider[] = [\n {\n provide: DBX_LIST_TITLE_GROUP_DATA,\n useValue: data\n }\n ];\n\n const group: DbxValueListItemGroup<D, T, I> = {\n id: String(value),\n data,\n items,\n headerConfig: { componentClass, providers },\n footerConfig: footerComponentClass ? { componentClass: footerComponentClass, providers } : undefined,\n cssClasses\n };\n\n return group;\n });\n\n if (sortGroupsByData) {\n groups.sort(compareWithMappedValuesFunction((x) => x.data, sortGroupsByData));\n }\n } else {\n groups = [\n {\n id: '_',\n data: { value: null as any, title: '' } as D,\n items\n }\n ];\n }\n\n return groups;\n })\n );\n };\n\n ngOnDestroy(): void {\n this._delegate.complete();\n }\n\n @Input('dbxListTitleGroup')\n get delegate() {\n return this._delegate.value;\n }\n\n set delegate(delegate: Maybe<DbxListTitleGroupTitleDelegate<T, O, D, I>>) {\n this._delegate.next(delegate);\n }\n}\n\n/**\n *\n */\n@Component({\n selector: 'dbx-list-title-group-header',\n template: `\n <div class=\"dbx-list-item-padded dbx-list-two-line-item\" [ngClass]=\"{ 'dbx-list-two-line-item-with-icon': icon }\">\n <mat-icon class=\"item-icon\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <div class=\"item-left\">\n <div class=\"mat-subtitle-2\">{{ title }}</div>\n <div *ngIf=\"hint\" class=\"item-details\">{{ hint }}</div>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-list-title-group-header'\n }\n})\nexport class DbxListTitleGroupHeaderComponent<O extends PrimativeKey, D extends DbxListTitleGroupData<O>> extends AbstractDbxListTitleGroupHeaderComponent<O, D> {\n get icon() {\n return this.data.icon;\n }\n\n get title() {\n return this.data.title;\n }\n\n get hint() {\n return this.data.hint;\n }\n}\n","import { Component, InjectionToken, inject } from '@angular/core';\nimport { DBX_VALUE_LIST_VIEW_ITEM, DbxValueListItem } from './list.view.value';\nimport { Maybe } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\nexport const DBX_LIST_VIEW_DEFAULT_META_ICON = new InjectionToken<string>('DBX_LIST_VIEW_DEFAULT_META_ICON');\n\nexport interface DbxListViewMetaIconConfig {\n readonly icon?: Maybe<string>;\n}\n\n@Component({\n selector: 'dbx-list-view-meta-icon',\n template: `\n <mat-icon class=\"dbx-list-view-meta-icon\">{{ icon }}</mat-icon>\n `\n})\nexport class DbxListViewMetaIconComponent {\n readonly item = inject<DbxValueListItem<unknown, DbxListViewMetaIconConfig>>(DBX_VALUE_LIST_VIEW_ITEM, { optional: true });\n readonly defaultIcon = inject<Maybe<string>>(DBX_LIST_VIEW_DEFAULT_META_ICON, { optional: true });\n\n readonly icon: Maybe<string> = this.item?.meta?.icon ?? this.defaultIcon;\n\n static metaConfig(defaultIcon?: Maybe<string>): DbxInjectionComponentConfig<DbxListViewMetaIconConfig> {\n return {\n componentClass: DbxListViewMetaIconComponent,\n providers: [\n {\n provide: DBX_LIST_VIEW_DEFAULT_META_ICON,\n useValue: defaultIcon\n }\n ]\n };\n }\n}\n","import { MatRippleModule } from '@angular/material/core';\nimport { DbxRouterAnchorModule } from '../../router/layout/anchor/anchor.module';\nimport { DbxLoadingModule } from '../../loading/loading.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxListComponent, DbxListInternalContentDirective } from './list.component';\nimport { DbxListEmptyContentComponent } from './list.content.empty.component';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { DbxSelectionValueListViewContentComponent, DbxSelectionValueListViewComponent } from './list.view.value.selection.component';\nimport { DbxValueListViewContentComponent, DbxValueListViewComponent, DbxValueListViewContentGroupComponent } from './list.view.value.component';\nimport { DbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { DbxListItemDisableRippleModifierDirective } from './list.view.value.modifier.ripple.directive';\nimport { DbxValueListGridViewContentComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent } from './list.grid.view.component';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\nimport { DbxListItemIsSelectedModifierDirective } from './list.view.value.modifier.selection.directive';\nimport { DbxListTitleGroupDirective, DbxListTitleGroupHeaderComponent } from './list.view.value.group.title.directive';\nimport { DbxListViewMetaIconComponent } from './list.view.meta.icon.component';\n\nconst privateDeclarations = [DbxListInternalContentDirective];\n\nconst declarations = [\n // directives\n DbxListComponent,\n DbxListEmptyContentComponent,\n DbxValueListViewComponent,\n DbxValueListViewContentComponent,\n DbxValueListViewContentGroupComponent,\n DbxValueListGridSizeDirective,\n DbxValueListGridViewComponent,\n DbxValueListGridViewContentComponent,\n DbxListViewMetaIconComponent,\n DbxListTitleGroupDirective,\n DbxListTitleGroupHeaderComponent,\n DbxSelectionValueListViewComponent,\n DbxSelectionValueListViewContentComponent,\n DbxValueListItemModifierDirective,\n DbxListItemDisableRippleModifierDirective,\n DbxListItemIsSelectedModifierDirective\n];\n\n@NgModule({\n imports: [CommonModule, MatRippleModule, FlexLayoutModule, DbxLoadingModule, DbxRouterAnchorModule, InfiniteScrollModule, DbxInjectionComponentModule, MatListModule, MatIconModule],\n declarations: [...declarations, ...privateDeclarations],\n exports: declarations\n})\nexport class DbxListLayoutModule {}\n","import { TrackByFunction } from '@angular/core';\nimport { ModelKeyRef, UniqueModel } from '@dereekb/util';\n\nexport const TRACK_BY_MODEL_ID: TrackByFunction<UniqueModel> = (index, model) => model.id;\n\nexport function trackByUniqueIdentifier<T extends UniqueModel>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_ID;\n}\n\nexport const TRACK_BY_MODEL_KEY: TrackByFunction<ModelKeyRef> = (index, model) => model.key;\n\nexport function trackByModelKeyRef<T extends ModelKeyRef>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_KEY;\n}\n","import { ListLoadingStateContext, switchMapMaybeObs } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, of, shareReplay } from 'rxjs';\nimport { Directive, EventEmitter, Input, OnDestroy, Output, TrackByFunction } from '@angular/core';\nimport { DbxListSelectionMode, DbxListView } from './list.view';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Abstract DbxListView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListViewDirective<T> implements DbxListView<T>, OnDestroy {\n private readonly _disabled = new BehaviorSubject<boolean>(false);\n private readonly _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n private readonly _values$ = new BehaviorSubject<Maybe<Observable<T[]>>>(undefined);\n\n readonly trackBy?: TrackByFunction<T> | undefined;\n\n readonly values$ = this._values$.pipe(switchMapMaybeObs(), shareReplay(1));\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n @Output()\n readonly clickValue = new EventEmitter<T>();\n\n @Input()\n set valueArray(values: Maybe<T[]>) {\n this.setValues(values ? of(values) : undefined);\n }\n\n @Input()\n set values(values: Maybe<Observable<T[]>>) {\n this.setValues(values);\n }\n\n ngOnDestroy(): void {\n this._disabled.complete();\n this._selectionMode.complete();\n this._values$.complete();\n }\n\n onClickValue(value: T) {\n this.clickValue.emit(value);\n }\n\n setListContext(state: ListLoadingStateContext<T>): void {\n this.setValues(state.list$);\n }\n\n setValues(valuesObs: Maybe<Observable<T[]>>): void {\n this._values$.next(valuesObs);\n }\n\n setDisabled(disabled: boolean): void {\n this._disabled.next(disabled);\n }\n\n setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void {\n this._selectionMode.next(selectionMode);\n }\n}\n","import { Directive } from '@angular/core';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\n\nexport const DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE = '<dbx-list-grid-view [config]=\"config\"></dbx-list-grid-view>';\n\n/**\n * Abstract DbxListGridView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListGridViewDirective<T> extends AbstractDbxListViewDirective<T> {}\n","import { Directive, EventEmitter, Output } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\n\nexport const DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE = '<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>';\n\n// MARK: Selection List View\n/**\n * Abstract list view that has a pre-built-in selection change event for an Angular Material MatSelectionListChange.\n */\n@Directive()\nexport abstract class AbstractDbxSelectionListViewDirective<T> extends AbstractDbxListViewDirective<T> {\n @Output()\n readonly selectionChange = new EventEmitter<ListSelectionState<T>>();\n\n selectionChanged(selection: ListSelectionState<T>): void {\n this.selectionChange.emit(selection);\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n this.selectionChanged({ items });\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxValueListItem, DBX_VALUE_LIST_VIEW_ITEM } from './list.view.value';\n\n@Directive()\nexport abstract class AbstractDbxValueListViewItemComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly item = inject<I>(DBX_VALUE_LIST_VIEW_ITEM);\n\n get itemValue(): T {\n return this.item.itemValue;\n }\n}\n","import { Observable } from 'rxjs';\nimport { ListLoadingState } from '@dereekb/rxjs';\nimport { EventEmitter, forwardRef, Provider, Type } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Common interface for views that may wrap a DbxListView, and pass values through to it.\n */\nexport abstract class DbxListViewWrapper<T = unknown, S extends ListLoadingState<T> = ListLoadingState<T>> {\n state$?: Maybe<Observable<S>>;\n readonly loadMore?: EventEmitter<void>;\n}\n\nexport function provideDbxListViewWrapper<V extends DbxListViewWrapper>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxListViewWrapper,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxSectionHeaderConfig, DbxSectionHeaderHType } from './section';\n\n/**\n * Component used to style a section's header.\n */\n@Component({\n selector: 'dbx-section-header,.dbx-section-header',\n template: `\n <div class=\"dbx-section-header-content\">\n <ng-container *ngIf=\"showTitle\">\n <ng-container [ngSwitch]=\"h ?? 1\">\n <h1 *ngSwitchCase=\"1\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h5>\n </ng-container>\n <span class=\"spacer\"></span>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <p *ngIf=\"hint && !hintInline\" class=\"dbx-section-hint dbx-hint\">{{ hint }}</p>\n <ng-template #headerContentTitleTemplate>\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span class=\"title-text\">\n {{ header }}\n <span *ngIf=\"hint && hintInline\" class=\"dbx-section-hint-inline dbx-hint\">{{ hint }}</span>\n </span>\n </ng-template>\n `,\n host: {\n '[class.dbx-section-header-full-title]': 'onlyHeader',\n '[class.dbx-section-header-padded]': 'paddedHeader'\n }\n})\nexport class DbxSectionHeaderComponent {\n @Input()\n paddedHeader?: Maybe<boolean>;\n\n @Input()\n h?: Maybe<DbxSectionHeaderHType>;\n\n @Input()\n header?: Maybe<string>;\n\n @Input()\n onlyHeader?: Maybe<boolean> = false;\n\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n hint?: Maybe<string>;\n\n @Input()\n hintInline?: Maybe<boolean>;\n\n constructor() {}\n\n @Input()\n set headerConfig(headerConfig: Maybe<DbxSectionHeaderConfig>) {\n if (headerConfig) {\n if (headerConfig.h !== undefined) {\n this.h = headerConfig.h;\n }\n\n if (headerConfig.header !== undefined) {\n this.header = headerConfig.header;\n }\n\n if (headerConfig.onlyHeader !== undefined) {\n this.onlyHeader = headerConfig.onlyHeader;\n }\n\n if (headerConfig.icon !== undefined) {\n this.icon = headerConfig.icon;\n }\n\n if (headerConfig.hint !== undefined) {\n this.hint = headerConfig.hint;\n }\n\n if (headerConfig.hintInline !== undefined) {\n this.hintInline = headerConfig.hintInline;\n }\n }\n }\n\n get showTitle() {\n return Boolean(this.header || this.icon);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Component used to format content on a page within a section.\n */\n@Component({\n selector: 'dbx-section',\n template: `\n <div class=\"dbx-section-header\" [h]=\"h ?? 3\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-section',\n '[class]': `(elevate) ? 'dbx-section-elevate dbx-content-elevate' : ''`\n }\n})\nexport class DbxSectionComponent extends DbxSectionHeaderComponent {\n @Input()\n elevate = false;\n}\n","import { OnDestroy, Component, Input, EventEmitter, Output } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\n\n/**\n * Component used to format content that displays an intro until a button is pressed.\n */\n@Component({\n selector: 'dbx-intro-action-section',\n template: `\n <div class=\"dbx-intro-action-section\" [ngSwitch]=\"showIntro\">\n <div *ngSwitchCase=\"true\" class=\"dbx-intro-action-section-intro\">\n <p>{{ hint }}</p>\n <div>\n <ng-content select=\"[info]\"></ng-content>\n </div>\n <div>\n <button mat-raised-button color=\"accent\" (click)=\"actionClicked()\">{{ action }}</button>\n </div>\n </div>\n <ng-container *ngSwitchCase=\"false\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n `\n})\nexport class DbxIntroActionSectionComponent extends DbxSectionComponent implements OnDestroy {\n @Output()\n readonly showAction = new EventEmitter<void>();\n\n @Input()\n showIntro?: boolean;\n\n @Input()\n action?: string;\n\n ngOnDestroy() {\n this.showAction.complete();\n }\n\n actionClicked() {\n this.showAction.next();\n }\n}\n","import { Component } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\n\n/**\n * A subsection.\n */\n@Component({\n selector: 'dbx-subsection',\n template: `\n <div class=\"dbx-subsection\">\n <div class=\"dbx-section-header\" [h]=\"h ?? 4\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxSubSectionComponent extends DbxSectionComponent {}\n","import { Component, Input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Scroll locking modes.\n *\n * Types:\n * - all: The entire header + body is scrollable\n * - body: The header is locked while the body is scrollable\n * - locked: Overflow is locked and hidden\n */\nexport type DbxSectionPageScrollLockedMode = 'all' | 'body' | 'locked';\n\n/**\n * Component used to style a page that is made up of app sections.\n *\n * Should be used on pages that need a section page heading.\n *\n * Can be nested within eachother, retaining the proper fixed height.\n */\n@Component({\n selector: 'dbx-section-page',\n template: `\n <div class=\"dbx-section-header\" [h]=\"h ?? 2\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"true\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-page-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-content-page dbx-section-page',\n '[class]': '\"dbx-section-page-scroll-\" + scroll'\n }\n})\nexport class DbxSectionPageComponent extends DbxSectionHeaderComponent {\n @Input()\n scroll: DbxSectionPageScrollLockedMode = 'all';\n\n @Input()\n override hintInline = true;\n}\n","import { DbxRouterAnchorModule } from '../../router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxSectionComponent } from './section.component';\nimport { DbxSubSectionComponent } from './subsection.component';\nimport { DbxSectionPageComponent } from './section.page.component';\nimport { DbxIntroActionSectionComponent } from './section.intro.component';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\nconst declarations = [DbxSectionHeaderComponent, DbxSectionPageComponent, DbxSectionComponent, DbxSubSectionComponent, DbxIntroActionSectionComponent];\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [CommonModule, DbxRouterAnchorModule, MatButtonModule, MatRippleModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxSectionLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dbx-step',\n templateUrl: './step.component.html'\n // TODO: styleUrls: ['./step.scss']\n})\nexport class DbxStepComponent {\n @Input()\n done?: boolean;\n\n @Input()\n step?: number;\n\n @Input()\n text?: string;\n\n @Input()\n hint?: string;\n}\n","<div class=\"step-section\" [ngClass]=\"done ? 'done' : ''\">\n <div class=\"step-section-header\">\n <span class=\"step\">{{ step }}.</span>\n <mat-icon class=\"done-check\" *ngIf=\"done\">done</mat-icon>\n <span class=\"text\">{{ text }}</span>\n <p *ngIf=\"hint\" class=\"hint\">{{ hint }}</p>\n </div>\n <div class=\"step-section-content\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxStepComponent } from './step.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxStepComponent],\n exports: [DbxStepComponent]\n})\nexport class DbxStepLayoutModule {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-form-description',\n host: {\n class: 'dbx-form-description'\n }\n})\nexport class DbxFormDescriptionComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-hint',\n host: {\n class: 'dbx-hint'\n }\n})\nexport class DbxHintComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-label',\n host: {\n class: 'dbx-label'\n }\n})\nexport class DbxLabelComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-note',\n host: {\n class: 'dbx-note'\n }\n})\nexport class DbxNoteComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-notice',\n host: {\n class: 'dbx-notice'\n }\n})\nexport class DbxNoticeComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-ok',\n host: {\n class: 'dbx-ok'\n }\n})\nexport class DbxOkComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-success',\n host: {\n class: 'dbx-success'\n }\n})\nexport class DbxSuccessComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-warn',\n host: {\n class: 'dbx-warn'\n }\n})\nexport class DbxWarnComponent {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DbxFormDescriptionComponent } from './form.description.component';\nimport { DbxHintComponent } from './hint.component';\nimport { DbxLabelComponent } from './label.component';\nimport { DbxNoteComponent } from './note.component';\nimport { DbxNoticeComponent } from './notice.component';\nimport { DbxOkComponent } from './ok.component';\nimport { DbxSuccessComponent } from './success.component';\nimport { DbxWarnComponent } from './warn.component';\n\nconst declarations = [DbxNoteComponent, DbxNoticeComponent, DbxSuccessComponent, DbxWarnComponent, DbxHintComponent, DbxLabelComponent, DbxOkComponent, DbxFormDescriptionComponent];\n\n/**\n * Includes a number of deprecated text components.\n */\n@NgModule({\n imports: [CommonModule, MatChipsModule, MatTooltipModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxTextCompatModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxSectionLayoutModule } from './section/section.layout.module';\nimport { DbxListLayoutModule } from './list/list.layout.module';\nimport { DbxItemLayoutModule } from './item/item.layout.module';\nimport { DbxFlagLayoutModule } from './flag/flag.layout.module';\nimport { DbxContentLayoutModule } from './content/content.layout.module';\nimport { DbxColumnLayoutModule } from './column/column.layout.module';\nimport { DbxCardBoxLayoutModule } from './card/card.box.layout.module';\nimport { DbxBlockLayoutModule } from './block/block.layout.module';\nimport { DbxCompactLayoutModule } from './compact/compact.layout.module';\nimport { DbxStepLayoutModule } from './step/step.layout.module';\nimport { DbxBarLayoutModule } from './bar/bar.layout.module';\nimport { DbxTextModule } from './text/text.module';\nimport { DbxStyleLayoutModule } from './style/style.layout.module';\nimport { DbxFlexLayoutModule } from './flex/flex.layout.module';\n\n@NgModule({\n exports: [DbxBarLayoutModule, DbxBlockLayoutModule, DbxCardBoxLayoutModule, DbxColumnLayoutModule, DbxCompactLayoutModule, DbxContentLayoutModule, DbxFlagLayoutModule, DbxFlexLayoutModule, DbxItemLayoutModule, DbxListLayoutModule, DbxSectionLayoutModule, DbxStepLayoutModule, DbxStyleLayoutModule, DbxTextModule]\n})\nexport class DbxLayoutModule {}\n","import { GlobalPositionStrategy } from '@angular/cdk/overlay';\n\nexport type PopupPosition = 'center' | 'bottom_left' | 'bottom_right';\n\nexport interface PopupPositionOffset {\n x?: string;\n y?: string;\n}\n\nexport class PopupGlobalPositionStrategy extends GlobalPositionStrategy {\n private _position!: PopupPosition;\n private _offset: PopupPositionOffset = {};\n\n constructor(position: PopupPosition = 'bottom_right', offset?: PopupPositionOffset) {\n super();\n this.setPopupPosition(position, offset);\n }\n\n setPopupOffset(offset?: PopupPositionOffset): void {\n this.setPopupPosition(this._position, offset ?? {});\n }\n\n setPopupPosition(position: PopupPosition, offset?: PopupPositionOffset): void {\n this._resetPositions();\n this._position = position;\n\n if (offset) {\n this._offset = offset;\n }\n\n const offsetX = this._offset.x ?? '0';\n const offsetY = this._offset.y ?? '0';\n\n switch (position) {\n case 'center':\n this.centerHorizontally();\n this.centerVertically();\n break;\n case 'bottom_left':\n this.bottom(offsetY);\n this.left(offsetX);\n break;\n case 'bottom_right':\n this.bottom(offsetY);\n this.right(offsetX);\n break;\n }\n }\n\n private _resetPositions(): void {\n this.top();\n this.bottom();\n this.left();\n this.right();\n }\n}\n","import { Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopupKey = string;\n\nexport enum DbxPopupWindowState {\n NORMAL = 'normal',\n MINIMIZED = 'minimized',\n FULLSCREEN = 'fullscreen'\n}\n\nexport abstract class DbxPopupController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopupKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly windowState$: Observable<DbxPopupWindowState>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popup to close.\n */\n abstract close(): void;\n /**\n * Closes the popup and returns the input value.\n */\n abstract return(value?: O): void;\n abstract minimize(): void;\n abstract normalscreen(): void;\n abstract fullscreen(): void;\n}\n","import { DbxPopupKey, DbxPopupController } from './popup';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopupCoordinatorService implements OnDestroy {\n private _popups = new BehaviorSubject<Map<DbxPopupKey, DbxPopupController>>(new Map());\n\n readonly popups$ = this._popups.asObservable();\n\n ngOnDestroy(): void {\n this._popups.complete();\n }\n\n get popups(): Map<DbxPopupKey, DbxPopupController> {\n return this._popups.value;\n }\n\n public addPopup(popup: DbxPopupController): void {\n const key = popup.key;\n\n if (key) {\n this.removePopup(key);\n this._popups.value.set(key, popup);\n this._popups.next(this.popups);\n }\n }\n\n public removePopup(key: DbxPopupKey, popup?: DbxPopupController): void {\n if (key) {\n const existing = this.popups.get(key);\n\n // Remove if there is one existing, and if popup is provided it is the same popup.\n if (existing && (!popup || popup === existing)) {\n existing.close();\n this._popups.value.delete(key);\n this._popups.next(this.popups);\n }\n }\n }\n}\n","import { DbxPopupController } from './popup';\nimport { Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { DbxPopupCoordinatorService } from './popup.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Component({\n selector: 'dbx-popup-coordinator',\n template: `\n <ng-container *ngIf=\"show$ | async\">\n <ng-content></ng-content>\n </ng-container>\n `\n})\nexport class DbxPopupCoordinatorComponent implements OnInit, OnDestroy {\n private readonly _service = inject(DbxPopupCoordinatorService);\n private readonly _popup = inject(DbxPopupController);\n\n readonly isPopupForKey$ = this._service.popups$.pipe(\n map((x) => x.get(this._popup.key) === this._popup),\n shareReplay(1)\n );\n readonly show$ = this.isPopupForKey$.pipe(delay(0));\n\n ngOnInit(): void {\n this._service.addPopup(this._popup);\n }\n\n ngOnDestroy(): void {\n this._service.removePopup(this._popup.key, this._popup);\n }\n}\n","import { Component, Type, OnDestroy, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Maybe, PixelsString } from '@dereekb/util';\nimport { CompactMode, CompactContextStore } from '../../layout';\nimport { BehaviorSubject, Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopupGlobalPositionStrategy, PopupPosition, PopupPositionOffset } from './popup.position.strategy';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxPopupController, DbxPopupKey, DbxPopupWindowState } from './popup';\n\nexport const APP_POPUP_NORMAL_WIDTH = '700px';\nexport const APP_POPUP_MINIMIZED_WIDTH = '300px';\nexport const APP_POPUP_NORMAL_HEIGHT = 'auto';\n\nexport abstract class DbxPopupComponentController<O, I> extends DbxPopupController<O, I> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopupComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popup should exist at a time given a certain key.\n */\n key: DbxPopupKey;\n position?: PopupPosition;\n offset?: PopupPositionOffset;\n closeOnTransition?: boolean;\n componentClass: Type<T>;\n data?: I;\n isDraggable?: boolean;\n init?: (component: T, controller: DbxPopupController<O, I>) => void;\n width?: PixelsString;\n height?: PixelsString;\n}\n\n/**\n * Popup component.\n */\n@Component({\n template: `\n <dbx-popup-coordinator>\n <div class=\"dbx-popup-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popup-coordinator>\n `,\n providers: [\n {\n provide: DbxPopupController,\n useExisting: DbxPopupComponent\n },\n {\n provide: CompactContextStore\n }\n ]\n})\nexport class DbxPopupComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopupController<O, I>, OnDestroy {\n private popoverRef = inject(NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O>);\n private compactContextState = inject(CompactContextStore);\n\n private _position: PopupGlobalPositionStrategy;\n\n readonly contentConfig: DbxInjectionComponentConfig = {\n componentClass: this.config.componentClass,\n init: this.config.init ? (instance) => (this.config as Required<DbxPopupComponentConfig<O, I, T>>).init(instance as T, this) : undefined\n };\n\n private readonly closing = new Subject<void>();\n readonly isClosing$ = this.closing.pipe(\n first(),\n map(() => true),\n startWith(false),\n shareReplay(1)\n );\n readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n private readonly _windowState = new BehaviorSubject<DbxPopupWindowState>(DbxPopupWindowState.NORMAL);\n readonly windowState$ = this._windowState.asObservable();\n\n getClosingValueFn?: (value?: I) => Promise<O>;\n\n constructor() {\n super();\n this.compactContextState.setMode(CompactMode.COMPACT);\n this._position = new PopupGlobalPositionStrategy(this.config.position, this.config.offset);\n this.popoverRef.overlay.updatePositionStrategy(this._position);\n }\n\n get config(): DbxPopupComponentConfig<O, I, T> {\n return this.popoverRef.data;\n }\n\n get key(): DbxPopupKey {\n return this.config.key;\n }\n\n get data(): Maybe<I> {\n return this.config.data;\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.closing.complete();\n this._windowState.complete();\n }\n\n protected updateForSuccessfulTransition(): void {\n if (this.config.closeOnTransition !== false) {\n this.close();\n }\n }\n\n // Popup Controls\n public close(): void {\n this.closing.next();\n\n if (this.getClosingValueFn) {\n this.getClosingValueFn().then(\n (x) => {\n this.return(x);\n },\n () => {\n this.return();\n }\n );\n } else {\n this.return();\n }\n }\n\n public return(value?: O): void {\n this.closing.next();\n this.popoverRef.close(value);\n }\n\n public minimize(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize(APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.MINIMIZED);\n }\n\n public normalscreen(): void {\n this.popoverRef.isDraggable = this.config.isDraggable;\n this.popoverRef.resize(APP_POPUP_NORMAL_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.NORMAL);\n }\n\n public fullscreen(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize('100%', '100%');\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.FULLSCREEN);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxPopupComponent } from './popup.component';\n\n/**\n * Abstract popup directive.\n */\n@Directive()\nexport abstract class AbstractPopupDirective<O = unknown, I = unknown, T = unknown> {\n readonly popup = inject(DbxPopupComponent<O, I, T>);\n\n closePopup(): void {\n this.popup.close();\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\n\n/**\n * Popup content wrapper component.\n */\n@Component({\n selector: 'dbx-popup-content',\n template: `\n <ng-content select=\"[controls]\"></ng-content>\n <div *ngIf=\"showContent$ | async\" class=\"dbx-popup-content-container\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-popup-content'\n }\n})\nexport class DbxPopupContentComponent {\n private readonly appPopupController = inject(DbxPopupController);\n\n readonly showContent$ = this.appPopupController.windowState$.pipe(map((x) => x !== DbxPopupWindowState.MINIMIZED));\n}\n","import { Component, inject } from '@angular/core';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\n\n/**\n * Popup Control Buttons.\n */\n@Component({\n selector: 'dbx-popup-control-buttons',\n template: `\n <ng-container [ngSwitch]=\"isMinimized$ | async\">\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"false\" icon=\"minimize\" (buttonClick)=\"minimizeClicked()\"></dbx-button>\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"true\" icon=\"maximize\" (buttonClick)=\"maximizeClicked()\"></dbx-button>\n </ng-container>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-container [ngSwitch]=\"isFullscreen$ | async\">\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"false\" icon=\"open_in_full\" (buttonClick)=\"fullscreenClicked()\"></dbx-button>\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"true\" icon=\"close_fullscreen\" (buttonClick)=\"normalscreenClicked()\"></dbx-button>\n </ng-container>\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-button [flat]=\"true\" icon=\"close\" color=\"warn\" (buttonClick)=\"closeClicked()\"></dbx-button>\n `,\n host: {\n class: 'dbx-popup-control-buttons'\n }\n})\nexport class DbxPopupControlButtonsComponent {\n private readonly _appPopupController = inject(DbxPopupController);\n\n readonly isMinimized$ = this._appPopupController.windowState$.pipe(map((x) => x === DbxPopupWindowState.MINIMIZED));\n readonly isFullscreen$ = this._appPopupController.windowState$.pipe(map((x) => x === DbxPopupWindowState.FULLSCREEN));\n\n minimizeClicked(): void {\n this._appPopupController.minimize();\n }\n\n maximizeClicked(): void {\n this._appPopupController.normalscreen();\n }\n\n fullscreenClicked(): void {\n this._appPopupController.fullscreen();\n }\n\n normalscreenClicked(): void {\n this._appPopupController.normalscreen();\n }\n\n closeClicked(): void {\n this._appPopupController.close();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Popup Controls\n */\n@Component({\n selector: 'dbx-popup-controls',\n template: `\n <span class=\"dbx-popup-controls-header\">{{ header }}</span>\n <div class=\"spacer\"></div>\n <dbx-popup-control-buttons></dbx-popup-control-buttons>\n `,\n host: {\n class: 'dbx-popup-controls'\n }\n})\nexport class DbxPopupControlsComponent {\n @Input()\n header?: string;\n}\n","import { DbxPopupComponent, DbxPopupComponentConfig, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH } from './popup.component';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport interface DbxPopupConfig<O, I, T> extends DbxPopupComponentConfig<O, I, T> {\n injector?: Injector;\n}\n\n/**\n * Used for displaying a popup.\n */\n@Injectable()\nexport class DbxPopupService {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _overlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n\n open<O, I, T>(config: DbxPopupConfig<O, I, T>): NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O> {\n const service = config.injector ? new NgOverlayContainerService(this._overlay, config.injector) : this._overlayContainerService;\n const isDraggable = config.isDraggable ?? false;\n const position = config.position ?? 'bottom_right';\n\n return service.open<DbxPopupComponentConfig<O, I, T>, O>({\n content: DbxPopupComponent,\n data: {\n ...config,\n isDraggable,\n position\n },\n configuration: {\n width: config.width ?? APP_POPUP_NORMAL_WIDTH,\n height: config.height ?? APP_POPUP_NORMAL_HEIGHT,\n useGlobalPositionStrategy: true,\n hasBackdrop: false,\n isResizable: false,\n isDraggable\n }\n });\n }\n}\n","import { Directive, HostListener, Input, inject } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\n\nconst DEFAULT_ACTION_KEY_TRIGGER = 'enter';\n\n/**\n * Directive that triggers the action on a specific key up event.\n *\n * Events/Keys to respond to should be lowercase.\n */\n@Directive({\n selector: '[dbxActionKeyTrigger]'\n})\nexport class DbxActionKeyTriggerDirective<T = unknown, O = unknown> {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n @Input('dbxActionKeyTrigger')\n inputKey: Maybe<string>;\n\n get key(): string {\n return this.inputKey || DEFAULT_ACTION_KEY_TRIGGER;\n }\n\n @HostListener('document:keyup', ['$event'])\n onKeyupHandler(event: KeyboardEvent): void {\n if (event.key && event.key.toLowerCase() === this.key) {\n this.source.trigger();\n }\n }\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport abstract class DbxPromptConfirm {\n abstract showDialog(): Observable<Maybe<boolean>>;\n}\n\nexport function provideDbxPromptConfirm<S extends DbxPromptConfirm>(sourceType: Type<S>): Provider[] {\n return [\n {\n provide: DbxPromptConfirm,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Pre-configured prompt.\n */\n@Component({\n selector: 'dbx-prompt',\n template: `\n <div class=\"dbx-prompt\">\n <ng-content select=\"[hero]\"></ng-content>\n <dbx-subsection [header]=\"header\" [hint]=\"prompt\">\n <ng-content></ng-content>\n </dbx-subsection>\n </div>\n `\n})\nexport class DbxPromptComponent {\n @Input()\n header?: Maybe<string>;\n\n @Input()\n prompt?: Maybe<string>;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport enum DbxPromptConfirmTypes {\n /**\n * Dialog is for yes/no.\n */\n NORMAL = 'normal',\n /**\n * Dialog is for deleting something.\n */\n DELETE = 'delete'\n}\n\nexport interface DbxPromptConfirmConfig {\n type?: DbxPromptConfirmTypes;\n title?: string;\n prompt?: string;\n confirmText?: string;\n cancelText?: string;\n}\n\n/**\n * Displays a confirmation dialog.\n */\n@Component({\n selector: 'dbx-prompt-confirm',\n templateUrl: './prompt.confirm.component.html'\n})\nexport class DbxPromptConfirmComponent {\n private _config: DbxPromptConfirmConfig = {};\n\n @Output()\n readonly confirm = new EventEmitter<void>();\n\n @Output()\n readonly cancel = new EventEmitter<void>();\n\n @Input()\n get config(): DbxPromptConfirmConfig {\n return this._config;\n }\n\n set config(config: Maybe<DbxPromptConfirmConfig>) {\n this._config = config ?? {};\n }\n\n onConfirm(): void {\n this.confirm.emit();\n }\n\n onCancel(): void {\n this.cancel.emit();\n }\n}\n","<dbx-prompt [header]=\"config.title\" [prompt]=\"config.prompt\">\n <ng-content></ng-content>\n <button mat-stroked-button (click)=\"onConfirm()\">{{ config.confirmText || 'Confirm' }}</button>\n <dbx-button-spacer></dbx-button-spacer>\n <button mat-stroked-button color=\"warn\" (click)=\"onCancel()\">{{ config.cancelText || 'Cancel' }}</button>\n</dbx-prompt>\n","import { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, OnInit } from '@angular/core';\nimport { AbstractDialogDirective } from '../dialog/abstract.dialog.directive';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmTypes } from './prompt.confirm.component';\nimport { Maybe } from '@dereekb/util';\n\nexport const DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG = {\n title: 'Confirm?',\n type: DbxPromptConfirmTypes.NORMAL\n};\n\nexport interface DbxPromptConfirmDialogConfig extends DbxPromptConfirmConfig {\n component?: DbxInjectionComponentConfig;\n}\n\n@Component({\n template: `\n <dbx-dialog-content>\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <dbx-injection [config]=\"injectionConfig\"></dbx-injection>\n </dbx-prompt-confirm>\n </dbx-dialog-content>\n `\n})\nexport class DbxPromptConfirmDialogComponent extends AbstractDialogDirective<boolean, DbxPromptConfirmDialogConfig> implements OnInit {\n get config(): DbxPromptConfirmDialogConfig {\n return this.data;\n }\n\n get injectionConfig(): Maybe<DbxInjectionComponentConfig> {\n return this.data.component;\n }\n\n static openDialog(matDialog: MatDialog, config?: Maybe<DbxPromptConfirmDialogConfig>): MatDialogRef<DbxPromptConfirmDialogComponent, boolean> {\n const dialogRef = matDialog.open(DbxPromptConfirmDialogComponent, {\n data: config || DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG\n });\n return dialogRef;\n }\n\n confirm(): void {\n this.close(true);\n }\n\n cancel(): void {\n this.close(false);\n }\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Maybe } from '@dereekb/util';\nimport { Observable, from } from 'rxjs';\nimport { DbxPromptConfirm, provideDbxPromptConfirm } from './prompt.confirm';\nimport { DbxPromptConfirmConfig } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\n\n// MARK: Abstract\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n */\n@Directive()\nexport abstract class AbstractPromptConfirmDirective implements DbxPromptConfirm {\n protected readonly matDialog = inject(MatDialog);\n\n private _dialogRef?: MatDialogRef<DbxPromptConfirmDialogComponent, boolean>;\n private _dialogPromise?: Promise<boolean>;\n\n abstract config?: Maybe<DbxPromptConfirmConfig>;\n\n showDialog(): Observable<boolean> {\n if (!this._dialogPromise) {\n this._dialogPromise = new Promise<boolean>((resolve) => {\n this._dialogRef = DbxPromptConfirmDialogComponent.openDialog(this.matDialog, this.config);\n this._dialogRef.afterClosed().subscribe((result: Maybe<boolean>) => {\n this._dialogRef = undefined;\n this._dialogPromise = undefined;\n resolve(this._handleDialogResult(Boolean(result)));\n });\n });\n }\n\n return from(this._dialogPromise);\n }\n\n protected _handleDialogResult(result: boolean): boolean {\n return result;\n }\n}\n\n// MARK: Directive\n/**\n * Directive that shows a confirmation screen.\n */\n@Directive({\n selector: '[dbxPromptConfirm]',\n providers: provideDbxPromptConfirm(DbxPromptConfirmDirective)\n})\nexport class DbxPromptConfirmDirective extends AbstractPromptConfirmDirective {\n @Input('dbxPromptConfirm')\n override config?: Maybe<DbxPromptConfirmConfig>;\n}\n","import { Directive, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { AbstractPromptConfirmDirective } from '../interaction/prompt/prompt.confirm.directive';\nimport { DbxPromptConfirmConfig } from '../interaction/prompt/prompt.confirm.component';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * DbxActionConfirmDirective configuration.\n */\nexport interface DbxActionConfirmConfig<T = unknown> extends DbxPromptConfirmConfig {\n /**\n * Optionally set the readyValue passed to the instance.\n */\n readyValue?: T;\n}\n\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n *\n * This only works to pass a ready value or reject through, not to work with a button.\n * For button usage, use an appPromptConfirmButton directive.\n */\n@Directive({\n selector: '[dbxActionConfirm]'\n})\nexport class DbxActionConfirmDirective<T = unknown, O = unknown> extends AbstractPromptConfirmDirective implements OnInit, OnDestroy {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n @Input('dbxActionConfirm')\n override config?: Maybe<DbxActionConfirmConfig<T>>;\n\n private _sourceSubscription = new SubscriptionObject();\n\n ngOnInit(): void {\n this._sourceSubscription.subscription = this.source.triggered$.subscribe(() => {\n this.showDialog();\n });\n }\n\n ngOnDestroy(): void {\n this._sourceSubscription.destroy();\n }\n\n protected override _handleDialogResult(result: boolean): boolean {\n if (result) {\n this.source.readyValue(this.config?.readyValue as unknown as T);\n } else {\n this.source.reject(undefined);\n }\n\n return result;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-box',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'd-block dbx-prompt-box',\n '[class.elevated]': 'elevated'\n }\n})\nexport class DbxPromptBoxComponent {\n @Input()\n elevated = true;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-page',\n template: `\n <dbx-content-container grow=\"full\">\n <div class=\"dbx-prompt-page-content-wrap\">\n <ng-content></ng-content>\n </div>\n </dbx-content-container>\n `,\n host: {\n class: 'd-block dbx-prompt-page'\n }\n})\nexport class DbxPromptPageComponent {}\n","import { DbxButton, DbxButtonInterceptor } from '@dereekb/dbx-core';\nimport { Directive, OnInit, inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { DbxPromptConfirm } from './prompt.confirm';\n\n/**\n * Directive that binds together a confirm dialog with the button.\n */\n@Directive({\n selector: '[dbxPromptConfirmButton]'\n})\nexport class DbxPromptConfirmButtonDirective implements OnInit, DbxButtonInterceptor {\n readonly button = inject(DbxButton, { host: true });\n readonly prompt = inject(DbxPromptConfirm, { host: true });\n\n readonly interceptButtonClick: () => Observable<boolean> = () => {\n return this.prompt.showDialog().pipe(map((x) => Boolean(x)));\n };\n\n ngOnInit(): void {\n this.button.setButtonInterceptor(this);\n }\n}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from './../../button/button.module';\nimport { DbxPromptComponent } from './prompt.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxPromptBoxComponent } from './prompt.box.component';\nimport { DbxPromptPageComponent } from './prompt.page.component';\nimport { DbxTextModule } from '../../layout/text';\nimport { DbxSectionLayoutModule } from '../../layout/section/section.layout.module';\nimport { DbxContentLayoutModule } from '../../layout/content/content.layout.module';\nimport { DbxPromptConfirmComponent as DbxPromptConfirmComponent } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent as DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\nimport { DbxPromptConfirmDirective } from './prompt.confirm.directive';\nimport { DbxPromptConfirmButtonDirective } from './prompt.button.confirm.directive';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxDialogInteractionModule } from '../dialog/dialog.module';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, MatButtonModule, DbxTextModule, DbxButtonModule, DbxInjectionComponentModule, DbxDialogInteractionModule, DbxSectionLayoutModule, DbxContentLayoutModule],\n declarations: [DbxPromptComponent, DbxPromptBoxComponent, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective],\n exports: [DbxPromptComponent, DbxPromptBoxComponent, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDirective]\n})\nexport class DbxPromptModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { DbxButtonModule } from '../button/button.module';\n// import { DbxErrorModule } from '../error/error.module';\nimport { DbxActionKeyTriggerDirective } from './key.trigger.directive';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxActionConfirmDirective } from './action.confirm.directive';\nimport { DbxPromptModule } from '../interaction/prompt/prompt.module';\n\n@NgModule({\n imports: [CommonModule, DbxCoreActionModule, DbxButtonModule, MatSnackBarModule, MatDialogModule, MatButtonModule, DbxPromptModule],\n declarations: [DbxActionKeyTriggerDirective, DbxActionConfirmDirective],\n exports: [DbxCoreActionModule, DbxActionKeyTriggerDirective, DbxActionConfirmDirective]\n})\nexport class DbxActionModule {}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxPopupCoordinatorComponent } from './popup.coordinator.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopupService } from './popup.service';\nimport { DbxPopupContentComponent } from './popup.content.component';\nimport { DbxPopupComponent } from './popup.component';\nimport { DbxRouterAnchorModule } from '../../router';\nimport { DbxActionModule } from '../../action/action.module';\nimport { DbxPopupControlsComponent } from './popup.controls.component';\nimport { DbxPopupControlButtonsComponent } from './popup.controls.buttons.component';\nimport { DbxButtonModule } from '../../button/button.module';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxButtonModule, DbxRouterAnchorModule, DbxActionModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule],\n declarations: [DbxPopupComponent, DbxPopupCoordinatorComponent, DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent],\n exports: [DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent],\n providers: [DbxPopupService]\n})\nexport class DbxPopupInteractionModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxDialogInteractionModule } from './dialog/dialog.module';\nimport { DbxPromptModule } from './prompt/prompt.module';\nimport { DbxPopupInteractionModule } from './popup/popup.module';\nimport { DbxPopoverInteractionModule } from './popover/popover.module';\nimport { DbxFilterInteractionModule } from './filter/filter.module';\n\n@NgModule({\n exports: [DbxDialogInteractionModule, DbxFilterInteractionModule, DbxPromptModule, DbxPopoverInteractionModule, DbxPopupInteractionModule]\n})\nexport class DbxInteractionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPromptModule } from '../../interaction';\nimport { DbxActionSnackbarDirective } from './action.snackbar.directive';\nimport { DbxActionSnackbarComponent } from './action.snackbar.component';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\nconst declarations = [DbxActionSnackbarComponent, DbxActionSnackbarDirective];\n\n@NgModule({\n imports: [CommonModule, DbxStyleLayoutModule, DbxCoreActionModule, DbxPromptModule, DbxButtonModule],\n declarations,\n exports: declarations\n})\nexport class DbxActionSnackbarModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmTypes, AbstractDialogDirective } from '../../interaction';\n\nexport enum DbxActionTransitionSafetyDialogResult {\n SUCCESS,\n STAY,\n DISCARD,\n NONE\n}\n\n/**\n * Dialog that is shown/triggered as part of the DbxActionTransitionSafety\n */\n@Component({\n template: `\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <ng-container>\n <dbx-error dbxActionError></dbx-error>\n <dbx-button text=\"Save Changes\" dbxActionButton></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n </dbx-prompt-confirm>\n `\n})\nexport class DbxActionUIRouterTransitionSafetyDialogComponent extends AbstractDialogDirective implements OnInit {\n config: DbxPromptConfirmConfig = {\n type: DbxPromptConfirmTypes.NORMAL,\n title: 'Unsaved Changes',\n prompt: 'You have unsaved changes on this page.',\n confirmText: 'Stay',\n cancelText: 'Discard Changes'\n };\n\n confirm(): void {\n this.dialogRef.close(DbxActionTransitionSafetyDialogResult.STAY);\n }\n\n cancel(): void {\n this.dialogRef.close(DbxActionTransitionSafetyDialogResult.DISCARD);\n }\n}\n","import { Directive, OnInit, OnDestroy, Input, ViewContainerRef, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { HookResult, Transition, TransitionService } from '@uirouter/core';\nimport { Observable, of, race, delay, first, map, mergeMap, tap, firstValueFrom } from 'rxjs';\nimport { DbxActionContextStoreSourceInstance, canTriggerAction, isIdleActionState } from '@dereekb/dbx-core';\nimport { DbxActionTransitionSafetyDialogResult, DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\n\n/**\n * How to handle transitions.\n *\n * Values:\n * - none: Nothing occurs.\n * - dialog: Always show a dialog and act based on the result.\n * - auto: Try to auto-trigger if in a triggerable state. If it is modified but in a non-triggerable state, show a dialog. Should be used in conjuction with the auto-saver.\n */\nexport type DbxActionTransitionSafetyType = 'none' | 'dialog' | 'auto';\n\ntype DbxActionTransitionSafetyRaceResult = [boolean | undefined, HookResult | undefined];\n\n/**\n * Context used for preventing a transition from occuring if the action is not complete or is in a modified state.\n *\n * This can be configured to auto-trigger and wait, or show a dialog and wait for the user's feedback before doing anything.\n *\n * NOTE: This dialog only works for uirouter.\n */\n@Directive({\n selector: '[dbxActionTransitionSafety]'\n})\nexport class DbxActionTransitionSafetyDirective<T, O> implements OnInit, OnDestroy {\n protected readonly transitionService = inject(TransitionService);\n protected readonly viewContainerRef = inject(ViewContainerRef);\n protected readonly dialog = inject(MatDialog);\n\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>);\n\n @Input('dbxActionTransitionSafety')\n inputSafetyType?: DbxActionTransitionSafetyType;\n\n private _dialogRef?: MatDialogRef<DbxActionUIRouterTransitionSafetyDialogComponent, DbxActionTransitionSafetyDialogResult>;\n private stopWatchingTransition?: () => void;\n\n get safetyType(): DbxActionTransitionSafetyType {\n return this.inputSafetyType ?? 'dialog';\n }\n\n private get _destroyed(): boolean {\n return !this.stopWatchingTransition;\n }\n\n ngOnInit(): void {\n this.stopWatchingTransition = this.transitionService.onStart({}, (transition: Transition) => {\n return this._handleOnBeforeTransition(transition);\n }) as () => void;\n }\n\n ngOnDestroy(): void {\n if (this.stopWatchingTransition) {\n this.stopWatchingTransition();\n delete this.stopWatchingTransition;\n }\n\n this._closeDialog();\n }\n\n protected _handleOnBeforeTransition(transition: Transition): HookResult {\n return firstValueFrom(\n this.source.isModified$.pipe(\n first(),\n mergeMap((isModified) => {\n if (isModified) {\n return race([\n // Watch for success to occur. At that point, close everything.\n this.source.success$.pipe(\n first(),\n map(() => [true, undefined] as DbxActionTransitionSafetyRaceResult)\n ),\n this._handleIsModifiedState(transition).pipe(\n first(),\n map((x) => [undefined, x] as DbxActionTransitionSafetyRaceResult)\n )\n ]).pipe(\n map(([saveSuccess, handleResult]: DbxActionTransitionSafetyRaceResult) => {\n if (saveSuccess) {\n return true;\n } else {\n return handleResult;\n }\n }),\n tap(() => this._closeDialog()), // Close dialog if it is still open.\n delay(10) // Delay to allow dialog to close before transition.\n );\n } else {\n return of(true);\n }\n })\n )\n ).then((x) => x); // Resolve/Flatten potential promise result.\n }\n\n protected _handleIsModifiedState(transition: Transition): Observable<HookResult> {\n const safetyType = this.safetyType;\n let obs: Observable<HookResult>;\n\n // console.log('Safety type: ', safetyType);\n\n switch (safetyType) {\n case 'none':\n obs = of(true); // Do nothing.\n break;\n case 'auto':\n obs = this._autoTrigger(transition);\n break;\n default:\n case 'dialog':\n obs = this._showDialog(transition);\n break;\n }\n\n return obs;\n }\n\n private _autoTrigger(transition: Transition): Observable<HookResult> {\n return this.source.pipeStore((store) =>\n store.state$.pipe(\n delay(20), // Prevent racing with auto-trigger.\n first(),\n mergeMap((state) => {\n if (isIdleActionState(state.actionState)) {\n // If we're in an idle state, get ready to trigger it.\n if (canTriggerAction(state)) {\n store.trigger(); // Try and trigger it.\n }\n }\n\n // Watch for errors. If an error occurs, show the dialog.\n // Success will cause the race in _handleOnBeforeTransition() to trigger and close everything.\n return store.rejected$.pipe(\n first(),\n mergeMap(() => this._showDialog(transition))\n );\n })\n )\n );\n }\n\n private _showDialog(transition: Transition): Observable<HookResult> {\n if (this._destroyed) {\n return of(true);\n }\n\n if (!this._dialogRef) {\n this._dialogRef = this.dialog.open(DbxActionUIRouterTransitionSafetyDialogComponent, {\n viewContainerRef: this.viewContainerRef\n });\n }\n\n return this._dialogRef.afterClosed().pipe(\n first(),\n map((result: DbxActionTransitionSafetyDialogResult | undefined = DbxActionTransitionSafetyDialogResult.STAY) => {\n // Default to Stay if the user clicks outside.\n switch (result) {\n case DbxActionTransitionSafetyDialogResult.DISCARD:\n case DbxActionTransitionSafetyDialogResult.SUCCESS:\n case DbxActionTransitionSafetyDialogResult.NONE:\n return true;\n case DbxActionTransitionSafetyDialogResult.STAY:\n return false;\n }\n })\n );\n }\n\n private _closeDialog(): void {\n if (this._dialogRef) {\n this._dialogRef.close(DbxActionTransitionSafetyDialogResult.NONE);\n }\n\n this._dialogRef = undefined;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { DbxActionTransitionSafetyDirective as DbxActionUIRouterTransitionSafetyDirective } from './transition.safety.directive';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPromptModule } from './../../interaction';\nimport { DbxReadableErrorModule } from '../../error';\n\n/**\n * Provides the DbxActionUIRouterTransitionSafetyDirective.\n *\n * NOTE: Only works with UIRouter\n */\n@NgModule({\n imports: [CommonModule, DbxCoreActionModule, DbxPromptModule, DbxButtonModule, DbxReadableErrorModule],\n declarations: [DbxActionUIRouterTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent],\n exports: [DbxActionUIRouterTransitionSafetyDirective]\n})\nexport class DbxActionUIRouterTransitionModule {}\n","import { createAction } from '@ngrx/store';\n\nexport const dbxModelResetState = createAction('[App/Model] Reset State');\n","import { ModelKeyTypeNamePair, ModelKeyTypePair } from '@dereekb/util';\nimport { createAction, props } from '@ngrx/store';\n\nexport interface DbxModelObjectViewedParams {\n modelKeyTypeNamePair: ModelKeyTypeNamePair;\n context?: string;\n}\n\nexport interface DbxModelGoToObjectViewParams {\n modelKeyTypePair: ModelKeyTypePair;\n}\n\nexport const emitObjectViewEvent = createAction('[App/Model/Type] Object Viewed', props<DbxModelObjectViewedParams>());\n","import { createReducer, on } from '@ngrx/store';\n\nimport { DbxModelStateActions } from '../actions';\n\nexport interface DbxModelModuleStateConfiguration {}\n\nexport const stateFeatureKey = 'model.module.config';\n\nexport const initialState: DbxModelModuleStateConfiguration = {\n types: {}\n};\n\nexport const reducer = createReducer(\n initialState,\n on(DbxModelStateActions.dbxModelResetState, () => initialState)\n);\n","import { Action, combineReducers, createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromObjectModuleConfig from './model.module.config';\nimport { DbxModelModuleStateConfiguration } from './model.module.config';\n\nexport const featureKey = 'app.model';\n\nexport interface DbxModelState {\n [fromObjectModuleConfig.stateFeatureKey]: DbxModelModuleStateConfiguration;\n}\n\nexport interface State {\n [featureKey]: DbxModelState;\n}\n\nexport function reducers(state: DbxModelState | undefined, action: Action) {\n return combineReducers({\n [fromObjectModuleConfig.stateFeatureKey]: fromObjectModuleConfig.reducer\n })(state, action);\n}\n\n// MARK: Context\nexport const selectDbxModelFeature = createFeatureSelector<State, DbxModelState>(featureKey);\n\n// MARK: Module Config\nexport const selectDbxModelFeatureObjectModuleConfig = createSelector(selectDbxModelFeature, (state: DbxModelState) => state[fromObjectModuleConfig.stateFeatureKey]);\n","import { Injectable, InjectionToken, OnDestroy, inject } from '@angular/core';\nimport { unixTimeNumberForNow } from '@dereekb/date';\nimport { StorageAccessor } from '@dereekb/dbx-core';\nimport { encodeModelKeyTypePair, ModelRelationUtility, Maybe } from '@dereekb/util';\nimport { map, mergeMap, catchError, Observable, of, Subject, tap } from 'rxjs';\nimport { DbxModelViewTrackerEventSet, DbxModelViewTrackerEvent } from './model.tracker';\n\nexport const DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN = new InjectionToken('DbxModelViewTrackerStorageAccessor');\n\n/**\n * Used for managing DbxModelViewTrackerEvent storage.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelViewTrackerStorage implements OnDestroy {\n static readonly OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY = 'dbxModelViewTrackerEvents';\n static readonly DEFAULT_MAX_EVENTS = 100;\n\n readonly storageAccessor = inject<StorageAccessor<DbxModelViewTrackerEventSet>>(DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN);\n\n private _newEvent = new Subject<DbxModelViewTrackerEvent>();\n\n readonly newEvent$ = this._newEvent.asObservable();\n\n ngOnDestroy(): void {\n this._newEvent.complete();\n }\n\n protected get storageKey(): string {\n return DbxModelViewTrackerStorage.OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY;\n }\n\n protected get maxEventsToKeep(): number {\n return DbxModelViewTrackerStorage.DEFAULT_MAX_EVENTS;\n }\n\n addTrackerEvent(event: DbxModelViewTrackerEvent): Observable<void> {\n const storageKey = this.getStorageKeyForFolder(event.folder);\n return this._getEventSetForStorageKey(storageKey).pipe(\n mergeMap((set) => {\n const nextEvent: DbxModelViewTrackerEvent = {\n d: event.d ?? unixTimeNumberForNow(),\n c: event.c,\n m: event.m\n };\n\n const e = ModelRelationUtility.removeDuplicates(set.e, (x) => encodeModelKeyTypePair(x.m), [encodeModelKeyTypePair(nextEvent.m)]);\n e.push(nextEvent);\n e.sort((a, b) => (b.d ?? 0) - (a.d ?? 0));\n\n return this.storageAccessor\n .set(storageKey, {\n l: Math.max(set.l ?? 0, nextEvent.d as number),\n e: e.slice(0, this.maxEventsToKeep)\n })\n .pipe(tap(() => this._newEvent.next(nextEvent)));\n })\n );\n }\n\n getAllEvents(folder?: Maybe<string>): Observable<DbxModelViewTrackerEvent[]> {\n return this.getEventSet(folder).pipe(map((x) => x.e));\n }\n\n getEventSet(folder?: Maybe<string>): Observable<DbxModelViewTrackerEventSet> {\n const storageKey = this.getStorageKeyForFolder(folder);\n return this._getEventSetForStorageKey(storageKey);\n }\n\n private _getEventSetForStorageKey(storageKey: string): Observable<DbxModelViewTrackerEventSet> {\n return this.storageAccessor.get(storageKey).pipe(\n catchError((e) => {\n return of(undefined);\n }),\n map((result) => result ?? { e: [], l: 0 })\n );\n }\n\n getStorageKeyForFolder(folder?: Maybe<string>): string {\n const storageKey = `${this.storageKey}_${folder ?? 'default'}`;\n return storageKey;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Maybe, ModelKeyTypeNamePair } from '@dereekb/util';\nimport { first, Observable } from 'rxjs';\nimport { DbxModelViewTrackerEvent, DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelViewTrackerStorage } from './model.tracker.view.storage';\n\n/**\n * Service used for tracking/logging different kinds of events on objects.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelTrackerService {\n private readonly _viewTrackerStorage = inject(DbxModelViewTrackerStorage);\n\n private _defaultFolder: Maybe<string>;\n\n readonly newEvent$ = this._viewTrackerStorage.newEvent$;\n\n get defaultFolder(): Maybe<string> {\n return this._defaultFolder;\n }\n\n set defaultFolder(folder: Maybe<string>) {\n this._defaultFolder = folder ?? undefined;\n }\n\n // MARK: View\n trackViewedObject(modelKeyTypeNamePair: ModelKeyTypeNamePair, context?: string, folder: Maybe<string> = this._defaultFolder): void {\n this._viewTrackerStorage\n .addTrackerEvent({\n m: modelKeyTypeNamePair,\n c: context,\n folder\n })\n .pipe(first())\n .subscribe();\n }\n\n getAllViewEvents(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEvent[]> {\n return this._viewTrackerStorage.getAllEvents(folder);\n }\n\n getViewEventSet(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEventSet> {\n return this._viewTrackerStorage.getEventSet(folder);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\nimport { distinctUntilChanged, filter, map, tap } from 'rxjs';\nimport { onDbxAppAuth } from '@dereekb/dbx-core';\nimport { DbxModelTrackerService } from '../../model.tracker.service';\nimport { onDbxModel } from '..';\n\n/**\n * Used to pass Object Store events to the ObjectTracker.\n */\n@Injectable()\nexport class DbxModelTrackerEffects {\n private readonly actions$ = inject(Actions);\n private readonly dbxModelTrackerService = inject(DbxModelTrackerService);\n\n readonly trackModelViewed$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent),\n distinctUntilChanged((a, b) => a?.modelKeyTypeNamePair.key === b?.modelKeyTypeNamePair.key && a?.type === b?.type && a?.context === b?.context),\n tap((x) => {\n this.dbxModelTrackerService.trackViewedObject(x.modelKeyTypeNamePair, x.context);\n })\n ),\n { dispatch: false }\n );\n\n readonly changeTrackerFolderToMatchAuth$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxAppAuth.DbxAppAuthUserActions.setUserIdentifier),\n map((x) => x.id),\n filter((x) => Boolean(x)),\n distinctUntilChanged(),\n tap((accountId) => {\n this.dbxModelTrackerService.defaultFolder = accountId;\n })\n ),\n { dispatch: false }\n );\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule, SimpleStorageAccessorFactory, StorageAccessor } from '@dereekb/dbx-core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { DbxListLayoutModule } from '../../layout/list/list.layout.module';\nimport { DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelTrackerService } from './model.tracker.service';\nimport { DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN } from './model.tracker.view.storage';\nimport { fromDbxModel } from './state';\nimport { DbxModelTrackerEffects } from './state/effects/tracker.effects';\n\nexport function appObjectViewTrackerStorageAccessorFactory(storageAccessorFactory: SimpleStorageAccessorFactory): StorageAccessor<DbxModelViewTrackerEventSet> {\n const accessor = storageAccessorFactory.createStorageAccessor<DbxModelViewTrackerEventSet>({\n prefix: 'mtvs'\n });\n\n return accessor;\n}\n\n/**\n * Contains components related to displaying content related to models identified only by their model key.\n */\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxListLayoutModule,\n DbxInjectionComponentModule,\n EffectsModule.forFeature([DbxModelTrackerEffects]),\n StoreModule.forFeature(fromDbxModel.featureKey, fromDbxModel.reducers)\n ],\n declarations: [],\n exports: []\n})\nexport class DbxModelInfoModule {\n static forRoot(): ModuleWithProviders<DbxModelInfoModule> {\n return {\n ngModule: DbxModelInfoModule,\n providers: [\n DbxModelTrackerService,\n {\n provide: DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN,\n useFactory: appObjectViewTrackerStorageAccessorFactory,\n deps: [SimpleStorageAccessorFactory]\n }\n ]\n };\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { onDbxModel } from './state';\nimport { DbxModelObjectViewedParams } from './state/actions/model.actions';\nimport { DbxModelFullState } from './state/state';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelObjectStateService {\n readonly store = inject(Store<DbxModelFullState>);\n\n /**\n * Emit a model viewed event.\n */\n emitModelViewEvent({ modelKeyTypeNamePair, context }: DbxModelObjectViewedParams): void {\n this.store.dispatch(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent({ modelKeyTypeNamePair, context }));\n }\n}\n","import { UnixDateTimeNumber, Maybe, ModelKey, ModelKeyTypeNamePair } from '@dereekb/util';\n\n/**\n * Context in which a model was viewed.\n */\nexport type ModelViewContext = string;\n\nexport interface DbxModelViewTrackerEvent {\n /**\n * Event time\n */\n d?: UnixDateTimeNumber;\n /**\n * Context\n */\n c?: ModelViewContext;\n /**\n * Model info\n */\n m: ModelKeyTypeNamePair;\n folder?: Maybe<string>;\n}\n\nexport interface DbxModelViewTrackerEventSet {\n /**\n * The latest date/time number.\n */\n l: UnixDateTimeNumber;\n /**\n * List of events.\n */\n e: DbxModelViewTrackerEvent[];\n}\n\nexport function allDbxModelViewTrackerEventSetModelKeys(eventSet: DbxModelViewTrackerEventSet): ModelKey[] {\n return allDbxModelViewTrackerEventModelKeys(eventSet.e);\n}\n\nexport function allDbxModelViewTrackerEventModelKeys(events: DbxModelViewTrackerEvent[]): ModelKey[] {\n return events.map((y) => y.m.key);\n}\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { capitalCase } from 'change-case';\nimport { map, shareReplay, Observable, BehaviorSubject } from 'rxjs';\nimport { ArrayOrValue, Building, ModelTypeString, useIterableOrValue } from '@dereekb/util';\nimport { DbxModelTypeConfiguration, DbxModelTypeConfigurationMap } from './model.types';\n\nexport interface DbxModelTypeInfo extends Omit<DbxModelTypeConfiguration, 'srefFactory'> {\n /**\n * Whether or not a response is expected for segues\n * to a view for objects of this type.\n */\n canSegueToView: boolean;\n}\n\nexport interface DbxModelTypesMap<I extends DbxModelTypeInfo> {\n readonly [type: string]: I;\n}\n\nexport interface DbxModelIconsMap {\n readonly [type: string]: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelTypesService<I extends DbxModelTypeInfo = DbxModelTypeInfo> {\n static readonly DEFAULT_ICON = 'help_outline';\n\n readonly injector = inject(Injector);\n\n private readonly _configs = new BehaviorSubject<DbxModelTypeConfigurationMap>({});\n\n // MARK: Configuration\n addTypeConfigs(configs: ArrayOrValue<DbxModelTypeConfiguration>) {\n const types = {\n ...this._configs.value\n };\n\n useIterableOrValue(configs, (config) => {\n types[config.modelType] = config;\n });\n\n this._configs.next(types);\n }\n\n addTypeConfigsMap(configs: DbxModelTypeConfigurationMap) {\n const newConfig: DbxModelTypeConfigurationMap = {\n ...this._configs.value,\n ...configs\n };\n\n this._configs.next(newConfig);\n }\n\n // MARK: Accessors\n readonly typesMap$ = this._configs.pipe(\n map((types) => {\n const typesMap: Building<DbxModelTypesMap<I>> = {};\n\n Object.keys(types).forEach((type) => {\n const config = types[type];\n\n const label = config.label || capitalCase(type);\n const analyticsName = config.analyticsName || label;\n const sref = config.srefBuilder ? config.srefBuilder(this.injector) : config.sref;\n\n typesMap[type] = {\n ...config,\n sref,\n label,\n analyticsName,\n icon: config.icon ?? DbxModelTypesService.DEFAULT_ICON,\n canSegueToView: Boolean(sref)\n } as I;\n });\n\n return typesMap as DbxModelTypesMap<I>;\n }),\n shareReplay(1)\n );\n\n readonly iconMap$: Observable<DbxModelIconsMap> = this.typesMap$.pipe(\n map((types) => {\n const iconsMap: Building<DbxModelIconsMap> = {};\n\n Object.keys(types).forEach((type) => {\n iconsMap[type] = types[type].icon;\n });\n\n return iconsMap as DbxModelIconsMap;\n }),\n shareReplay(1)\n );\n\n iconForType(type: ModelTypeString): Observable<string> {\n return this.iconMap$.pipe(map((x) => x[type]));\n }\n}\n","import { Component, ElementRef, Input, ViewChild, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { WorkUsingObservable, LoadingState, filterMaybe, loadingStateContext, successResult, valueFromFinishedLoadingState } from '@dereekb/rxjs';\nimport { MS_IN_SECOND, Maybe } from '@dereekb/util';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, first, map, of, shareReplay, switchMap, tap } from 'rxjs';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { DownloadTextContent } from './download.text';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\n\n/**\n * DbxStructureDirective used specifically on the body of the app.\n */\n@Component({\n templateUrl: './download.text.component.html',\n selector: 'dbx-download-text-view'\n})\nexport class DbxDownloadTextViewComponent extends AbstractSubscriptionDirective {\n private readonly _clipboard = inject(Clipboard);\n private readonly _matSnackbar = inject(MatSnackBar);\n private readonly _sanitizer = inject(DomSanitizer);\n\n @Input()\n loadingText?: Maybe<string>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n @Input()\n showTitle: boolean = true;\n\n @Input()\n showPreview: boolean = true;\n\n private readonly _downloadButton = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n readonly downloadButton$ = this._downloadButton.asObservable();\n\n private readonly _contentLoadingState = new BehaviorSubject<Maybe<LoadingState<DownloadTextContent>>>(undefined);\n readonly contentLoadingState$ = this._contentLoadingState.pipe(filterMaybe(), shareReplay(1));\n\n readonly content$ = this._contentLoadingState.pipe(\n switchMap((x) => {\n if (x) {\n return this.contentLoadingState$.pipe(valueFromFinishedLoadingState());\n } else {\n return of(undefined);\n }\n })\n );\n\n readonly contentData$ = this.content$.pipe(map((x) => x?.content));\n\n readonly context = loadingStateContext({ obs: this.contentLoadingState$ });\n\n readonly fileName$ = this.content$.pipe(\n map((x) => x?.name ?? 'File'),\n shareReplay(1)\n );\n\n readonly fileUrl$: Observable<Maybe<SafeResourceUrl>> = this.content$.pipe(\n map((content) => {\n let fileUrl: Maybe<SafeResourceUrl> = undefined;\n\n if (content) {\n const blob = new Blob([content.content], { type: content.mimeType ?? 'application/octet-stream' });\n fileUrl = this._sanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(blob));\n }\n\n return fileUrl;\n }),\n shareReplay(1)\n );\n\n readonly downloadReady$ = combineLatest([this._downloadButton, this.fileName$, this.fileUrl$]).pipe(\n map(([button, name, url]) => Boolean(button && name && url)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Input()\n set content(content: Maybe<DownloadTextContent>) {\n this._contentLoadingState.next(content ? successResult(content) : undefined);\n }\n\n @Input()\n set contentState(contentState: Maybe<LoadingState<DownloadTextContent>>) {\n this._contentLoadingState.next(contentState);\n }\n\n @ViewChild('downloadButton', { read: ElementRef })\n set downloadButton(downloadButton: ElementRef) {\n this._downloadButton.next(downloadButton);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._downloadButton.complete();\n this._contentLoadingState.complete();\n }\n\n readonly handleCopyToClipboard: WorkUsingObservable = () => {\n return this.content$.pipe(\n first(),\n switchMap((downloadTextContent: Maybe<DownloadTextContent>) => {\n if (downloadTextContent) {\n return new Promise<boolean>((resolve, reject) => {\n const pending = this._clipboard.beginCopy(downloadTextContent.content);\n\n let secondsRemainingForCopy = 20; // attempt to copy for up to 20 seconds\n\n const attempt = () => {\n const copyIsFinished = pending.copy();\n\n if (!copyIsFinished && --secondsRemainingForCopy) {\n setTimeout(attempt, MS_IN_SECOND);\n } else {\n // Remember to destroy when you're done!\n pending.destroy();\n\n if (copyIsFinished) {\n resolve(true);\n } else {\n reject(false);\n }\n }\n };\n\n attempt();\n });\n } else {\n return of(false);\n }\n }),\n tap((success) => {\n if (success) {\n this._matSnackbar.open('Copied to clipboard', undefined, { duration: 3 * MS_IN_SECOND });\n } else {\n this._matSnackbar.open('Content failed to copy...', undefined, { duration: 3 * MS_IN_SECOND });\n }\n })\n );\n };\n}\n","<div class=\"dbx-download-text-view\">\n <dbx-loading [context]=\"context\" [linear]=\"linear\" [text]=\"loadingText\">\n <ng-container *ngTemplateOutlet=\"contentView\"></ng-container>\n </dbx-loading>\n</div>\n\n<!-- Template -->\n<ng-template #contentView>\n <div class=\"dbx-download-text-view-content\">\n <div *ngIf=\"showTitle\" class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileName$ | async }}</div>\n <div *ngIf=\"showPreview\" class=\"dbx-download-text-preview dbx-json dbx-content-pit dbx-content-pit-scrollable dbx-mb3\">{{ contentData$ | async }}</div>\n <div class=\"dbx-download-text-view-actions\">\n <dbx-button dbxAction dbxActionValue [raised]=\"true\" [dbxActionHandler]=\"handleCopyToClipboard\" icon=\"content_copy\" dbxActionButton text=\"Copy To Clipboard\"></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <a #downloadButton [href]=\"fileUrl$ | async\" [attr.download]=\"fileName$ | async\"><dbx-button icon=\"download\" text=\"Download\" [raised]=\"true\" [working]=\"!(downloadReady$ | async)\" [disabled]=\"!(downloadReady$ | async)\"></dbx-button></a>\n </div>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxDownloadTextViewComponent } from './download.text.component';\nimport { DbxButtonModule } from '../../../button/button.module';\nimport { DbxLoadingModule } from '../../../loading/loading.module';\nimport { DbxActionModule } from '../../../action/action.module';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\n\nconst declarations = [DbxDownloadTextViewComponent];\n\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxLoadingModule,\n DbxButtonModule,\n DbxActionModule,\n MatSnackBarModule\n ],\n declarations,\n exports: declarations\n})\nexport class DbxDownloadTextModule {}\n","import { ChangeDetectorRef, Directive, ElementRef, Injector, inject } from '@angular/core';\n\n/**\n * Used to reference a cdRef, injector, and element at the given element.\n *\n * Generally used for child views to reference a well-placed parent view.\n */\n@Directive({\n selector: '[dbxStructure]'\n})\nexport class DbxStructureDirective {\n readonly cdRef = inject(ChangeDetectorRef);\n readonly injector = inject(Injector);\n readonly element = inject(ElementRef);\n}\n","import { Directive } from '@angular/core';\nimport { DbxStructureDirective } from './structure.structure.directive';\n\n/**\n * DbxStructureDirective used specifically on the body of the app.\n */\n@Directive({\n selector: 'dbxBody,[dbxBody]',\n providers: [\n {\n provide: DbxStructureDirective,\n useExisting: DbxBodyDirective\n }\n ]\n})\nexport class DbxBodyDirective extends DbxStructureDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxStructureDirective } from './structure.structure.directive';\nimport { DbxBodyDirective } from './structure.body.directive';\n\nconst declarations = [DbxBodyDirective, DbxStructureDirective];\n\n@NgModule({\n imports: [\n //\n CommonModule\n ],\n declarations,\n exports: declarations\n})\nexport class DbxStructureModule {}\n","import { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeValues, mapIterable } from '@dereekb/util';\nimport { DbxWidgetType } from './widget';\n\nexport interface DbxWidgetEntry {\n /**\n * Widget type to respond to.\n */\n readonly type: DbxWidgetType;\n /**\n * Widget component class to use.\n */\n readonly componentClass: Type<unknown>;\n}\n\n/**\n * Service used to register widgets.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxWidgetService {\n private _entries = new Map<DbxWidgetType, DbxWidgetEntry>();\n\n /**\n * Used to register an entry. If an entry with the same type is already registered, this will override it by default.\n *\n * @param entry\n * @param override\n */\n register(entry: DbxWidgetEntry, override: boolean = true): boolean {\n if (override || !this._entries.has(entry.type)) {\n this._entries.set(entry.type, entry);\n return true;\n } else {\n return false;\n }\n }\n\n // MARK: Get\n getWidgetIdentifiers(): DbxWidgetType[] {\n return Array.from(this._entries.keys());\n }\n\n getWidgetEntry(type: DbxWidgetType): Maybe<DbxWidgetEntry> {\n return this._entries.get(type);\n }\n\n getWidgetEntries(types: Iterable<DbxWidgetType>): DbxWidgetEntry[] {\n return filterMaybeValues(mapIterable(types ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { Observable, BehaviorSubject, map } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxWidgetDataPair } from './widget';\nimport { DbxWidgetService } from './widget.service';\n\n/**\n * Used to display a corresponding widget based on the input data.\n */\n@Component({\n selector: 'dbx-widget-view',\n template: `\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n `,\n host: {\n class: 'dbx-widget-view'\n }\n})\nexport class DbxWidgetViewComponent implements OnDestroy {\n readonly dbxWidgetService = inject(DbxWidgetService);\n\n private _config = new BehaviorSubject<Maybe<DbxWidgetDataPair>>(undefined);\n\n readonly config$: Observable<Maybe<DbxInjectionComponentConfig>> = this._config.pipe(\n map((pair: Maybe<DbxWidgetDataPair>) => {\n let config: Maybe<DbxInjectionComponentConfig>;\n\n if (pair != null) {\n const entry = this.dbxWidgetService.getWidgetEntry(pair.type);\n\n if (entry) {\n config = {\n componentClass: entry.componentClass,\n data: pair.data\n };\n }\n }\n\n return config;\n })\n );\n\n ngOnDestroy(): void {\n this._config.complete();\n }\n\n @Input()\n set config(config: Maybe<DbxWidgetDataPair>) {\n this._config.next(config);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\n\n@Directive()\nexport abstract class AbstractDbxWidgetComponent<T> {\n readonly data = inject<T>(DBX_INJECTION_COMPONENT_DATA);\n}\n","import { Component } from '@angular/core';\nimport { of } from 'rxjs';\nimport { AbstractDbxListWrapperDirective, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, DbxValueListGridViewConfig, AbstractDbxValueListViewItemComponent, provideDbxListView, DbxValueAsListItem, AbstractDbxListGridViewDirective, DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE } from '../../layout/list';\nimport { DbxWidgetDataPair } from './widget';\n\nexport type DbxWidgetDataPairWithSelection = DbxValueAsListItem<DbxWidgetDataPair>;\n\n/**\n * Demo DbxSelectionListWrapperDirective\n */\n@Component({\n selector: 'dbx-widget-grid',\n template: DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE\n})\nexport class DbxWidgetListGridComponent extends AbstractDbxListWrapperDirective<DbxWidgetDataPair> {\n constructor() {\n super({\n componentClass: DbxWidgetListGridViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}\n\n@Component({\n selector: 'dbx-widget-grid-view',\n template: DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE,\n providers: provideDbxListView(DbxWidgetListGridViewComponent)\n})\nexport class DbxWidgetListGridViewComponent extends AbstractDbxListGridViewDirective<DbxWidgetDataPair> {\n readonly config: DbxValueListGridViewConfig<DbxWidgetDataPairWithSelection> = {\n grid: {\n // TODO: Make configurable.\n columns: 'repeat(auto-fill, minmax(120px, 1fr))',\n gap: '8px'\n },\n componentClass: DbxWidgetListGridViewItemComponent,\n mapValuesToItemValues: (x) => of(x.map((y) => ({ ...y, itemValue: y })))\n };\n}\n\n@Component({\n template: `\n <dbx-widget-view [config]=\"itemValue\"></dbx-widget-view>\n `\n})\nexport class DbxWidgetListGridViewItemComponent extends AbstractDbxValueListViewItemComponent<DbxWidgetDataPair> {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxListLayoutModule } from '../../layout/list/list.layout.module';\nimport { DbxWidgetViewComponent } from './widget.component';\nimport { DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent } from './widget.list.component';\n\n/**\n * Contains components related to displaying \"widgets\" for pieces of data.\n */\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxListLayoutModule,\n DbxInjectionComponentModule\n ],\n declarations: [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent],\n exports: [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent]\n})\nexport class DbxWidgetModule {}\n","// export * from './calendar'; // nothing to export\nexport * from './model';\nexport * from './download';\nexport * from './structure';\n// export * from './table'; // nothing to export\nexport * from './widget';\n","import { DestroyFunction } from '@dereekb/util';\n\n/**\n * Disables the \"contextmenu\" from popping up in the cdk-overlay-container.\n *\n * @param classes\n * @param onEvent\n * @returns\n */\nexport function disableRightClickInCdkBackdrop(classes: string = 'cdk-overlay-container', onEvent?: (event: MouseEvent) => void): DestroyFunction {\n const eventListener = function (this: Element, event: Event) {\n event.preventDefault();\n onEvent?.(event as MouseEvent);\n };\n\n const target = document.getElementsByClassName(classes).item(0);\n\n if (target) {\n target.addEventListener('contextmenu', eventListener);\n return () => target.removeEventListener('contextmenu', eventListener);\n } else {\n return () => {};\n }\n}\n","import { DbxLoadingModule } from './loading/loading.module';\nimport { NgModule } from '@angular/core';\nimport { DbxButtonModule } from './button';\nimport { DbxActionModule } from './action';\n\n@NgModule({\n exports: [DbxButtonModule, DbxActionModule, DbxLoadingModule]\n})\nexport class DbxWebModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4","i1.DbxSpinnerButtonComponent","i2.DbxSpacerDirective","i3","i4.DbxButtonComponent","i5.DbxButtonSpacerDirective","i1","i2","declarations","i1.DbxWindowKeyDownListenerDirective","i2.DbxStyleDirective","i4.DbxPopoverCoordinatorComponent","i2.DbxPopoverContentComponent","i3.DbxPopoverHeaderComponent","i4.DbxPopoverScrollContentComponent","i6","i7","i1.DbxIconButtonComponent","i3.DbxButtonComponent","i5","i6.DbxAnchorComponent","i1.DbxAnchorListComponent","i3.DbxAnchorComponent","i1.DbxAnchorComponent","i2.DbxAnchorComponent","i2.DbxIconButtonComponent","i2.DbxAnchorListComponent","i1.DbxPagebarComponent","i2.DbxButtonSpacerDirective","i3.DbxSidenavButtonComponent","i2.DbxSidenavPagebarComponent","i3.DbxBarDirective","i2.DbxContentContainerDirective","i4.DbxAnchorComponent","i5.DbxTwoColumnColumnHeadComponent","i1.DbxTwoColumnComponent","i1.DbxFlagComponent","i2.DbxLabelBlockComponent","i1.DbxErrorWidgetViewComponent","i1.DbxPopoverContentComponent","i2.DbxPopoverHeaderComponent","i3.DbxPopoverScrollContentComponent","i4.DbxErrorDetailsComponent","i3.DbxErrorViewComponent","i2.DbxReadableErrorComponent","i3.DbxLoadingProgressComponent","i2.DbxBasicLoadingComponent","i2.DbxLoadingComponent","i1.DbxDetailBlockHeaderComponent","i3.DbxReadableErrorComponent","i5.DbxValueListViewContentComponent","i1.DbxSectionHeaderComponent","i2.DbxPopupCoordinatorComponent","i2.DbxButtonComponent","i3.DbxButtonSpacerDirective","i1.DbxPopupControlButtonsComponent","i1.DbxSubSectionComponent","i3.DbxPromptComponent","i2.DbxDialogContentDirective","i3.DbxPromptConfirmComponent","i1.DbxContentContainerDirective","i1.DbxPromptConfirmComponent","i4.DbxButtonSpacerDirective","i5.DbxReadableErrorComponent","i6.DbxActionErrorDirective","DbxActionUIRouterTransitionSafetyDirective","DbxModelStateActions.dbxModelResetState","fromObjectModuleConfig.stateFeatureKey","fromObjectModuleConfig.reducer","onDbxModel.DbxModelStateModelActions.emitObjectViewEvent","fromDbxModel.featureKey","fromDbxModel.reducers","i1.DbxListComponent","i3.DbxValueListGridViewComponent","i4.DbxWidgetViewComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dereekb-dbx-web.mjs","sources":["../../../../packages/dbx-web/src/lib/layout/style/spacer.directive.ts","../../../../packages/dbx-web/src/lib/button/progress/button.progress.config.ts","../../../../packages/dbx-web/src/lib/button/progress/base.progress.button.directive.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.html","../../../../packages/dbx-web/src/lib/button/button.component.ts","../../../../packages/dbx-web/src/lib/button/button.spacer.component.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.html","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.default.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.generator.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.service.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.directive.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.component.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.module.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.html","../../../../packages/dbx-web/src/lib/button/progress/button.progress.module.ts","../../../../packages/dbx-web/src/lib/button/button.module.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/abstract.dialog.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.close.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.footer.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.ts","../../../../packages/dbx-web/src/lib/layout/style/style.service.ts","../../../../packages/dbx-web/src/lib/layout/style/style.set.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.body.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.ts","../../../../packages/dbx-web/src/lib/layout/style/style.color.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.position.strategy.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.store.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.directive.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.ts","../../../../packages/dbx-web/src/lib/keypress/keydown.listener.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.header.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.scroll.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.html","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.ref.directive.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.directive.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.component.ts","../../../../packages/dbx-web/src/lib/keypress/keypress.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.controls.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.close.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.directive.ts","../../../../packages/dbx-web/src/lib/router/provider/router.provider.config.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.component.html","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.list.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.icon.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.link.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.content.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.module.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.menu.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.html","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.segue.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/router.list.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/list.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.ts","../../../../packages/dbx-web/src/lib/screen/screen.service.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.html","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.component.html","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.html","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.button.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.pagebar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.page.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.directive.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.header.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/content/content.elevate.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.border.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.container.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.box.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.page.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.pit.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.layout.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/index.ts","../../../../packages/dbx-web/src/lib/router/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/angular.router.module.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/uirouter/uirouter.router.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.list.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.module.ts","../../../../packages/dbx-web/src/lib/layout/block/two.block.component.ts","../../../../packages/dbx-web/src/lib/layout/block/block.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.component.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.container.component.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.store.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.back.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.component.html","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.context.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.full.left.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.head.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.html","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.showright.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/column.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.prompt.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.group.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.size.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/item/item.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/item/item.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.content.empty.component.ts","../../../../packages/dbx-web/src/lib/error/error.widget.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/label.block.component.ts","../../../../packages/dbx-web/src/lib/error/default.error.widget.component.ts","../../../../packages/dbx-web/src/lib/error/error.widget.service.ts","../../../../packages/dbx-web/src/lib/error/error.widget.component.ts","../../../../packages/dbx-web/src/lib/error/error.details.component.ts","../../../../packages/dbx-web/src/lib/error/error.popover.component.ts","../../../../packages/dbx-web/src/lib/error/error.view.component.ts","../../../../packages/dbx-web/src/lib/error/error.view.component.html","../../../../packages/dbx-web/src/lib/error/error.component.ts","../../../../packages/dbx-web/src/lib/loading/loading-progress.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.html","../../../../packages/dbx-web/src/lib/loading/loading.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.html","../../../../packages/dbx-web/src/lib/layout/list/list.directive.ts","../../../../packages/dbx-web/src/lib/error/error.action.directive.ts","../../../../packages/dbx-web/src/lib/error/error.api.ts","../../../../packages/dbx-web/src/lib/error/error.loading.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/address.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.header.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.component.ts","../../../../packages/dbx-web/src/lib/layout/text/icon.spacer.component.ts","../../../../packages/dbx-web/src/lib/layout/text/linkify.component.ts","../../../../packages/dbx-web/src/lib/layout/text/text.chip.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/text.chips.component.ts","../../../../packages/dbx-web/src/lib/layout/text/text.module.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.component.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.component.html","../../../../packages/dbx-web/src/lib/error/error.snackbar.service.ts","../../../../packages/dbx-web/src/lib/error/error.snackbar.action.directive.ts","../../../../packages/dbx-web/src/lib/error/error.module.ts","../../../../packages/dbx-web/src/lib/error/state.ts","../../../../packages/dbx-web/src/lib/loading/loading.action.directive.ts","../../../../packages/dbx-web/src/lib/loading/loading.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.group.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.selection.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ripple.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.grid.view.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.group.title.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.meta.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.track.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.grid.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.item.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.wrapper.ts","../../../../packages/dbx-web/src/lib/layout/section/section.header.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.intro.component.ts","../../../../packages/dbx-web/src/lib/layout/section/subsection.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.page.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/step/step.component.ts","../../../../packages/dbx-web/src/lib/layout/step/step.component.html","../../../../packages/dbx-web/src/lib/layout/step/step.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/form.description.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/hint.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/label.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/note.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/notice.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/ok.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/success.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/warn.component.ts","../../../../packages/dbx-web/src/lib/layout/text/compat/text.compat.module.ts","../../../../packages/dbx-web/src/lib/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.position.strategy.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/abstract.popup.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.buttons.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.service.ts","../../../../packages/dbx-web/src/lib/action/key.trigger.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.component.html","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.dialog.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.directive.ts","../../../../packages/dbx-web/src/lib/action/action.confirm.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.box.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.page.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.button.confirm.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.module.ts","../../../../packages/dbx-web/src/lib/action/action.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.module.ts","../../../../packages/dbx-web/src/lib/interaction/interaction.module.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.module.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.dialog.component.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.directive.ts","../../../../packages/dbx-web/src/lib/action/transition/action.transition.module.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/model.actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/model.module.config.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/index.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.view.storage.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.service.ts","../../../../packages/dbx-web/src/lib/extension/model/state/effects/tracker.effects.ts","../../../../packages/dbx-web/src/lib/extension/model/model.module.ts","../../../../packages/dbx-web/src/lib/extension/model/model.state.service.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.ts","../../../../packages/dbx-web/src/lib/extension/model/model.types.service.ts","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.component.ts","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.component.html","../../../../packages/dbx-web/src/lib/extension/download/text/download.text.module.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.structure.directive.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.body.directive.ts","../../../../packages/dbx-web/src/lib/extension/structure/structure.module.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.service.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.directive.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.list.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.module.ts","../../../../packages/dbx-web/src/lib/extension/index.ts","../../../../packages/dbx-web/src/lib/util/cdk.ts","../../../../packages/dbx-web/src/lib/dbx-web.module.ts","../../../../packages/dbx-web/src/dereekb-dbx-web.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'dbx-spacer, [dbxSpacer]',\n host: {\n class: 'dbx-spacer'\n }\n})\nexport class DbxSpacerDirective {}\n","import { InjectionToken } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxThemeColor } from '../../layout/style/style';\n\nexport interface DbxProgressButtonOptions {\n working?: boolean;\n text?: string;\n spinnerText?: string;\n buttonColor?: ThemePalette | DbxThemeColor;\n spinnerColor?: ThemePalette | DbxThemeColor;\n barColor?: ThemePalette | DbxThemeColor;\n raised?: boolean;\n stroked?: boolean;\n flat?: boolean;\n fab?: boolean;\n /**\n * Whether or not to render as an icon button.\n */\n iconOnly?: boolean;\n spinnerSize?: number;\n spinnerRatio?: number;\n mode?: ProgressSpinnerMode;\n value?: number;\n fullWidth?: boolean;\n disabled?: boolean;\n type?: string;\n customStyle?: { [key: string]: string };\n customClass?: string;\n /**\n * Custom spinner color. Overrides the normal spinner color if provided.\n */\n customSpinnerColor?: Maybe<string>;\n buttonIcon?: DbxProgressButtonIcon;\n id?: string;\n}\n\nexport interface DbxProgressButtonIcon {\n color?: ThemePalette | DbxThemeColor;\n fontIcon?: string;\n fontSet?: string;\n inline?: boolean;\n svgIcon?: string;\n customClass?: string;\n}\n\nexport interface DbxProgressButtonTargetedConfig extends DbxProgressButtonOptions {\n id?: string;\n}\n\nexport type DbxProgressButtonGlobalConfig = DbxProgressButtonTargetedConfig[];\n\nexport const DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG = new InjectionToken<DbxProgressButtonGlobalConfig>('DbxMatProgressButtonGlobalConfig');\n","import { ChangeDetectorRef, OnDestroy, OnInit, Directive, Input, Output, HostListener, EventEmitter, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { CssClass, type Maybe } from '@dereekb/util';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Observable, shareReplay, map, BehaviorSubject, combineLatest, first, distinctUntilChanged } from 'rxjs';\nimport { DbxProgressButtonGlobalConfig, DbxProgressButtonOptions, DbxProgressButtonTargetedConfig, DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG } from './button.progress.config';\n\n@Directive()\nexport abstract class AbstractProgressButtonDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n readonly cdRef = inject(ChangeDetectorRef);\n private readonly globalConfig = inject<DbxProgressButtonGlobalConfig>(DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG, { optional: true }) ?? [];\n\n private _computedOptions: Maybe<DbxProgressButtonOptions> = undefined;\n\n private readonly _working = new BehaviorSubject<boolean>(false);\n private readonly _disabled = new BehaviorSubject<boolean>(false);\n\n private readonly _buttonId = new BehaviorSubject<Maybe<string>>(undefined);\n private readonly _options = new BehaviorSubject<Maybe<DbxProgressButtonOptions>>(undefined);\n\n readonly globalOptions$: Observable<Maybe<DbxProgressButtonOptions>> = this._buttonId.pipe(map((buttonId: Maybe<string>) => (buttonId ? this.globalConfig.find((config: DbxProgressButtonTargetedConfig) => config.id === buttonId) : undefined)));\n\n readonly options$: Observable<DbxProgressButtonOptions> = combineLatest([this._options, this.globalOptions$, this._working, this._disabled]).pipe(\n map(([options, globalConfig, working, disabled]) => {\n let completeOptions: Maybe<DbxProgressButtonOptions>;\n\n if (options || globalConfig) {\n completeOptions = {\n ...globalConfig,\n ...options,\n working: options?.working || working,\n disabled: options?.disabled || disabled\n };\n }\n\n return completeOptions;\n }),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly baseCssClasses$: Observable<[DbxProgressButtonOptions, CssClass[]]> = this.options$.pipe(\n map((x) => {\n const classes: CssClass[] = [x.customClass ?? ''];\n\n if (x.fullWidth) {\n classes.push('fullWidth');\n }\n\n if (x.disabled) {\n classes.push('disabled');\n }\n\n if (x.raised) {\n classes.push('mat-mdc-raised-button mdc-button--raised');\n }\n\n if (x.stroked) {\n classes.push('mat-mdc-outlined-button mdc-button--outlined');\n }\n\n if (x.flat) {\n classes.push('mat-mdc-unelevated-button mdc-button--unelevated');\n }\n\n return [x, classes] as [DbxProgressButtonOptions, CssClass[]];\n }),\n shareReplay(1)\n );\n\n @Output()\n readonly btnClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n ngOnInit(): void {\n this.sub = this.options$.subscribe((options) => {\n this._computedOptions = options;\n safeMarkForCheck(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._working.complete();\n this._disabled.complete();\n this._buttonId.complete();\n this._options.complete();\n }\n\n @HostListener('click', ['$event'])\n public handleClick(event: MouseEvent): void {\n this.options$.pipe(first()).subscribe((options) => {\n if (!options.disabled && !options.working) {\n this.btnClick.emit(event);\n event.stopImmediatePropagation();\n }\n });\n }\n\n get customSpinnerStyle() {\n const customSpinnerColor = (this._computedOptions as DbxProgressButtonOptions).customSpinnerColor;\n return customSpinnerColor ? { stroke: customSpinnerColor } : undefined;\n }\n\n @Input()\n get options(): DbxProgressButtonOptions {\n return this._computedOptions as DbxProgressButtonOptions;\n }\n\n set options(options: DbxProgressButtonOptions) {\n this._options.next(options);\n }\n\n @Input()\n set buttonId(buttonId: string) {\n this._buttonId.next(buttonId);\n }\n\n @Input()\n set working(working: boolean) {\n this._working.next(working);\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled.next(disabled);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewChild } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './base.progress.button.directive';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { spaceSeparatedCssClasses } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-spinner-button',\n templateUrl: './spinner.button.component.html',\n styleUrls: ['./spinner.button.component.scss', './shared.button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSpinnerButtonComponent extends AbstractProgressButtonDirective {\n @ViewChild('button', { static: true, read: ElementRef })\n readonly buttonRef!: ElementRef<HTMLElement>;\n\n readonly buttonCss$ = this.baseCssClasses$.pipe(\n map((x) => {\n const options = x[0];\n const classes = [...x[1]];\n\n if (options.iconOnly) {\n classes.push('mat-mdc-icon-button');\n }\n\n if (options.fab) {\n classes.push('mat-fab');\n }\n\n return spaceSeparatedCssClasses(classes);\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n get showText() {\n return !(this.options.fab || this.options.iconOnly);\n }\n\n calcSpinnerSize() {\n const options = this.options;\n const elem = this.buttonRef?.nativeElement;\n const height = elem.clientHeight;\n\n let size;\n\n if (options) {\n if (options.fab || options.iconOnly) {\n size = height;\n } else {\n size = options.spinnerSize;\n }\n }\n\n if (!size) {\n const minimumSpinnerSize = 18;\n const spinnerRatio = options.spinnerRatio ?? 0.33;\n const targetSpinnerSize = height * Math.min(1, spinnerRatio);\n size = Math.min(height, Math.max(minimumSpinnerSize, targetSpinnerSize));\n }\n\n return size;\n }\n}\n","<button class=\"dbx-base-button dbx-spinner-button\" #button mat-button [type]=\"options.type\" [color]=\"options.buttonColor\" [ngClass]=\"buttonCss$ | async\" [ngStyle]=\"options.customStyle!\" [disabled]=\"options.working || options.disabled\">\n <ng-container *ngIf=\"showText\">\n <ng-container *ngIf=\"options.buttonIcon\">\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!options.buttonIcon.fontSet\" [class.working]=\"options.working && !options.disabled\" [ngClass]=\"options.buttonIcon.customClass!\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <span class=\"button-text\" [class.working]=\"options.working && !options.disabled\">\n {{ options.text }}\n <ng-content></ng-content>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!showText && options.buttonIcon\">\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\" [inline]=\"options.fab && options.buttonIcon.inline!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <mat-spinner class=\"spinner\" *ngIf=\"options.working && !options.disabled\" [diameter]=\"calcSpinnerSize()\" [color]=\"options.spinnerColor!\" [mode]=\"options.mode!\" [value]=\"options.value!\" [ngStyle]=\"customSpinnerStyle!\" [ngClass]=\"{ 'dbx-spinner-custom': customSpinnerStyle! }\" [class.working]=\"options.working && !options.disabled\"></mat-spinner>\n</button>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { provideDbxButton, AbstractDbxButtonDirective } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxProgressButtonOptions } from './progress/button.progress.config';\nimport { DbxThemeColor } from '../layout/style/style';\n\nexport type DbxButtonType = 'basic' | 'raised' | 'stroked' | 'flat' | 'icon';\n\n/**\n * @deprecated use DbxButtonType instead.\n */\nexport enum DbxButtonDisplayType {\n RAISED = 'raised',\n STROKED = 'stroked',\n FLAT = 'flag',\n ICON_ONLY = 'icon'\n}\n\n/**\n * Complex button that supports loading states.\n */\n@Component({\n selector: 'dbx-button',\n template: `\n <dbx-spinner-button (btnClick)=\"clickButton()\" [options]=\"btnOptions\">\n <ng-content></ng-content>\n </dbx-spinner-button>\n `,\n providers: provideDbxButton(DbxButtonComponent),\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxButtonComponent extends AbstractDbxButtonDirective {\n @Input()\n type?: DbxButtonType;\n\n @Input()\n get basic(): boolean {\n return !this.type || this.type === 'basic';\n }\n\n set basic(basic: boolean) {\n if (basic) {\n this.type = 'basic';\n }\n }\n\n @Input()\n get raised(): boolean {\n return this.type === 'raised';\n }\n\n set raised(raised: boolean) {\n if (raised) {\n this.type = 'raised';\n }\n }\n\n @Input()\n get stroked(): boolean {\n return this.type === 'stroked';\n }\n\n set stroked(stroked: boolean) {\n if (stroked) {\n this.type = 'stroked';\n }\n }\n\n @Input()\n get flat(): boolean {\n return this.type === 'flat';\n }\n\n set flat(flat: boolean) {\n if (flat) {\n this.type = 'flat';\n }\n }\n\n @Input()\n get iconOnly(): boolean {\n return this.type === 'icon';\n }\n\n set iconOnly(iconOnly: boolean) {\n if (iconOnly) {\n this.type = 'icon';\n }\n }\n\n @Input()\n public color: ThemePalette | DbxThemeColor = undefined;\n\n @Input()\n public spinnerColor: ThemePalette | DbxThemeColor = undefined;\n\n @Input()\n public customButtonColor: Maybe<string>;\n\n @Input()\n public customTextColor: Maybe<string>;\n\n @Input()\n public customSpinnerColor: Maybe<string>;\n\n public get btnOptions(): DbxProgressButtonOptions {\n const buttonIcon = this.icon\n ? {\n fontIcon: this.icon\n }\n : undefined;\n\n const customStyle = {} as {\n [key: string]: string;\n };\n\n if (this.customButtonColor) {\n customStyle['background'] = this.customButtonColor;\n }\n\n if (this.customTextColor) {\n customStyle['color'] = this.customTextColor;\n }\n\n const customSpinnerColor: Maybe<string> = this.customSpinnerColor ?? this.customTextColor;\n const disabled = !this.working && this.disabled; // Only disabled if we're not working, in order to show the animation.\n\n const isIconOnlyButton = buttonIcon && !this.text;\n\n return {\n fab: false,\n working: this.working,\n buttonIcon,\n customStyle,\n customClass: 'dbx-button ' + (isIconOnlyButton ? 'dbx-button-no-text' : ''),\n text: this.text ?? '',\n buttonColor: this.color,\n barColor: 'accent',\n raised: this.raised,\n stroked: this.stroked,\n flat: this.flat,\n iconOnly: this.iconOnly,\n mode: 'indeterminate',\n spinnerColor: this.spinnerColor ?? this.color,\n customSpinnerColor,\n disabled\n };\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Button spacer directive.\n */\n@Directive({\n selector: 'dbx-button-spacer,[dbxButtonSpacer]',\n host: {\n class: 'dbx-button-spacer d-inline'\n }\n})\nexport class DbxButtonSpacerDirective {}\n","import { OnInit, Component, OnDestroy, AfterViewInit, inject } from '@angular/core';\nimport { filterMaybe, LoadingStateType } from '@dereekb/rxjs';\nimport { distinctUntilChanged, Observable, shareReplay, BehaviorSubject, switchMap, startWith, Subject, of, filter, map } from 'rxjs';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { MS_IN_SECOND, type Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarActionConfig } from './action.snackbar';\nimport { DbxActionContextSourceReference, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\n\n/**\n * Component for a snackbar that contains an action.\n */\n@Component({\n templateUrl: './action.snackbar.component.html'\n})\nexport class DbxActionSnackbarComponent extends AbstractSubscriptionDirective implements OnInit, AfterViewInit, OnDestroy {\n readonly snackbarRef = inject(MatSnackBarRef<DbxActionSnackbarComponent>);\n readonly data = inject<DbxActionSnackbarDisplayConfig>(MAT_SNACK_BAR_DATA);\n\n private readonly _durationTimeout = new Subject<void>();\n private readonly _actionRef = new BehaviorSubject<Maybe<DbxActionContextSourceReference>>(this.data.action?.reference);\n\n readonly value$ = of(0); // value passed to the action.\n readonly sourceInstance$ = this._actionRef.pipe(\n filterMaybe(),\n map((x) => x?.sourceInstance)\n );\n readonly complete$ = this.sourceInstance$.pipe(\n switchMap((x) => x.isSuccess$),\n startWith(false),\n shareReplay(1)\n );\n readonly loadingStateType$ = this.sourceInstance$.pipe(\n switchMap((x) => x.loadingStateType$),\n startWith(LoadingStateType.IDLE),\n shareReplay(1)\n );\n readonly snackbarStatusClass$: Observable<string> = this.loadingStateType$.pipe(\n map((x) => {\n let classes = 'dbx-action-snackbar-';\n\n switch (x) {\n case LoadingStateType.ERROR:\n classes += 'error';\n break;\n case LoadingStateType.SUCCESS:\n classes += 'success';\n break;\n default:\n classes += 'idle';\n break;\n }\n\n return classes;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly button: Maybe<string> = this.data.action?.button ?? this.data.button;\n\n get action() {\n return this.data.action;\n }\n\n get hasAction(): boolean {\n return Boolean(this._actionRef.value);\n }\n\n get message(): Maybe<string> {\n return this.data.message;\n }\n\n get actionConfig(): Maybe<DbxActionSnackbarActionConfig> {\n return this.data.action;\n }\n\n ngOnInit(): void {\n // Subscribe and close if the duration is up and the action state is idle.\n this.sub = this._durationTimeout\n .pipe(\n switchMap(() => this.loadingStateType$),\n filter((x) => x === LoadingStateType.IDLE)\n )\n .subscribe(() => {\n this.dismiss();\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._actionRef.value?.destroy();\n this._actionRef.complete();\n this._durationTimeout.complete();\n }\n\n ngAfterViewInit(): void {\n // Responsible for hiding itself if it has an action.\n if (this.hasAction) {\n setTimeout(() => {\n this._durationTimeout.next();\n }, this.action?.duration ?? MS_IN_SECOND * 10);\n }\n }\n\n dismissAfterActionCompletes = (): void => {\n this.snackbarRef._dismissAfter(MS_IN_SECOND * 3);\n };\n\n dismiss = (): void => {\n this.snackbarRef.dismiss();\n };\n}\n","<div class=\"dbx-action-snackbar\" [ngClass]=\"(snackbarStatusClass$ | async)!\">\n <ng-container [ngSwitch]=\"complete$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <dbx-spacer></dbx-spacer>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n <ng-container *ngIf=\"hasAction\">\n <dbx-action [dbxActionValueStream]=\"value$\" [dbxActionSource]=\"sourceInstance$ | async\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n </ng-container>\n </ng-container>\n</div>\n","import { DbxActionSnackbarEventMakeConfig } from './action.snackbar.service';\n\nexport const DBX_ACTION_SNACKBAR_DEFAULTS: DbxActionSnackbarEventMakeConfig = {\n create: {\n loading: {\n message: 'Creating...'\n },\n success: {\n button: 'Ok',\n message: 'Created'\n },\n error: {\n button: 'X',\n message: 'Create Failed'\n }\n },\n save: {\n loading: {\n message: 'Saving...'\n },\n success: {\n button: 'Ok',\n message: 'Saved'\n },\n error: {\n button: 'X',\n message: 'Save Failed'\n }\n },\n merge: {\n loading: {\n message: 'Merging...'\n },\n success: {\n button: 'Ok',\n message: 'Merged'\n },\n error: {\n button: 'X',\n message: 'Merge Failed'\n }\n },\n delete: {\n loading: {\n message: 'Deleting...'\n },\n success: {\n button: 'Ok',\n message: 'Deleted'\n },\n error: {\n button: 'X',\n message: 'Delete Failed'\n }\n },\n cancel: {\n loading: {\n message: 'Cancelling...'\n },\n success: {\n button: 'Ok',\n message: 'Canceled'\n },\n error: {\n button: 'X',\n message: 'Cancel Failed'\n }\n },\n restore: {\n loading: {\n message: 'Restoring...'\n },\n success: {\n button: 'Ok',\n message: 'Restored'\n },\n error: {\n button: 'X',\n message: 'Restore Failed'\n }\n },\n refresh: {\n loading: {\n message: 'Refreshing...'\n },\n success: {\n button: 'Ok',\n message: 'Refreshed'\n },\n error: {\n button: 'X',\n message: 'Refresh Failed'\n }\n },\n do: {\n loading: {\n message: 'Doing...'\n },\n success: {\n button: 'Ok',\n message: 'Done'\n },\n error: {\n button: 'X',\n message: 'Failed'\n }\n }\n};\n","import { DbxActionContextSourceReference } from '@dereekb/dbx-core';\nimport { Milliseconds, Maybe, GetterOrValue, getValueFromGetter, Getter } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent } from './action.snackbar';\n\nexport interface DbxActionSnackbarGeneratorInput<T = unknown, O = unknown> {\n event: DbxActionSnackbarEvent<O>;\n undo?: Maybe<DbxActionSnackbarGeneratorUndoInput<T, O>>;\n}\n\nexport type DbxActionSnackbarGeneratorUndoInput<T = unknown, O = unknown> = Getter<DbxActionContextSourceReference<T, O>> | DbxActionSnackbarGeneratorUndoInputConfig<T, O>;\n\nexport interface DbxActionSnackbarGeneratorUndoInputConfig<T = unknown, O = unknown> {\n duration?: Milliseconds;\n getUndoAction: Getter<DbxActionContextSourceReference<T, O>>;\n}\n\nexport type DbxActionSnackbarDisplayConfigGeneratorFunction = <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\nexport interface DbxMakeActionSnackbarGeneratorConfiguration {\n idle?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n loading?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n success?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n error?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n}\n\nexport interface DbxMakeActionSnackbarGeneratorEventConfiguration extends Omit<DbxActionSnackbarDisplayConfig, 'action'> {\n /**\n * Sets the undo action text. If undefined, will default to 'undo'\n */\n undoButtonText?: string;\n}\n\n/**\n * Creates a DbxActionSnackbarDisplayConfigGeneratorFunction from the input config.\n *\n * @param config\n * @returns\n */\nexport function makeDbxActionSnackbarDisplayConfigGeneratorFunction(config: DbxMakeActionSnackbarGeneratorConfiguration): DbxActionSnackbarDisplayConfigGeneratorFunction {\n return <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => {\n const { event, undo: undoInput } = input;\n const type = event.type;\n const eventConfigGetterOrValue = config[type];\n const eventConfig = eventConfigGetterOrValue && getValueFromGetter(eventConfigGetterOrValue);\n\n let result: Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\n if (eventConfig) {\n const { undoButtonText } = eventConfig;\n result = {\n button: eventConfig.button,\n message: eventConfig.message,\n snackbar: eventConfig.snackbar\n };\n\n if (undoInput) {\n let reference: DbxActionContextSourceReference<T, O>;\n\n if (typeof undoInput === 'object') {\n reference = undoInput.getUndoAction();\n } else {\n reference = getValueFromGetter(undoInput);\n }\n\n if (!reference) {\n console.error('Expected action source reference was not provided to undo...');\n } else {\n result.action = {\n button: undoButtonText ?? 'Undo',\n reference\n };\n }\n }\n }\n\n return result;\n };\n}\n","import { DbxActionSnackbarComponent } from './action.snackbar.component';\nimport { DBX_ACTION_SNACKBAR_DEFAULTS } from './action.snackbar.default';\nimport { Injectable, InjectionToken, Type, inject } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { Milliseconds, Maybe, mergeObjects, MS_IN_SECOND } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarGeneratorInput, DbxMakeActionSnackbarGeneratorConfiguration, makeDbxActionSnackbarDisplayConfigGeneratorFunction } from './action.snackbar.generator';\n\nexport const DBX_ACTION_SNACKBAR_SERVICE_CONFIG = new InjectionToken('DbxActionSnackbarServiceConfig');\n\nexport const DEFAULT_SNACKBAR_DIRECTIVE_DURATION = MS_IN_SECOND * 4;\n\nexport interface DbxActionSnackbarEventMakeConfig {\n [key: string]: DbxMakeActionSnackbarGeneratorConfiguration;\n}\n\nexport interface DbxActionSnackbarServiceConfig<C = unknown> {\n readonly componentClass: Type<C>;\n readonly snackbar?: Pick<MatSnackBarConfig, 'horizontalPosition' | 'verticalPosition'>;\n readonly defaultDuration?: Milliseconds;\n readonly defaultUndoDuration?: Milliseconds;\n readonly eventTypeConfigs: DbxActionSnackbarEventMakeConfig;\n}\n\n/**\n * Used for managing/configuring the snackbar default values and pushing snackbar events.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxActionSnackbarService<C = DbxActionSnackbarComponent> {\n readonly matSnackBar = inject(MatSnackBar);\n\n readonly config: DbxActionSnackbarServiceConfig<C> = ((inputConfig) => {\n return {\n ...inputConfig,\n componentClass: inputConfig.componentClass ?? (DbxActionSnackbarComponent as unknown as Type<C>),\n defaultDuration: inputConfig.defaultDuration || DEFAULT_SNACKBAR_DIRECTIVE_DURATION,\n eventTypeConfigs: mergeObjects([DBX_ACTION_SNACKBAR_DEFAULTS, inputConfig.eventTypeConfigs]) as DbxActionSnackbarEventMakeConfig\n };\n })(inject<Partial<DbxActionSnackbarServiceConfig<C>>>(DBX_ACTION_SNACKBAR_SERVICE_CONFIG, { optional: true }) ?? {});\n\n get componentClass(): Type<C> {\n return this.config.componentClass;\n }\n\n get eventTypeConfigs(): DbxActionSnackbarEventMakeConfig {\n return this.config.eventTypeConfigs;\n }\n\n /**\n * Opens a new snackbar given the input configuration.\n *\n * @param config\n * @returns\n */\n openSnackbar<T = unknown, O = unknown>(config: DbxActionSnackbarDisplayConfig<T, O>): MatSnackBarRef<C> {\n const { snackbar: inputSnackbarConfig } = config;\n const { snackbar: defaultSnackbarConfig, defaultDuration } = this.config;\n\n const matSnackbarConfig: MatSnackBarConfig = {\n ...defaultSnackbarConfig,\n ...inputSnackbarConfig,\n data: config\n };\n\n const duration = config.action?.duration ?? matSnackbarConfig.duration ?? defaultDuration ?? DEFAULT_SNACKBAR_DIRECTIVE_DURATION;\n\n if (config.action) {\n // Set the duration on the action\n config.action = {\n ...config.action,\n duration\n };\n } else {\n // The snackbar does not close here. The duration is passed to the component and it will close it.\n matSnackbarConfig.duration = duration;\n }\n\n return this.matSnackBar.openFromComponent(this.componentClass, matSnackbarConfig);\n }\n\n generateDisplayConfig<T = unknown, O = unknown>(type: Maybe<DbxActionSnackbarType>, input: DbxActionSnackbarGeneratorInput<T, O>): Maybe<DbxActionSnackbarDisplayConfig<T, O>> {\n const configForType = this.eventTypeConfigs[type ?? 'none'];\n let result: Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\n if (configForType) {\n result = makeDbxActionSnackbarDisplayConfigGeneratorFunction(configForType)(input);\n }\n\n return result;\n }\n}\n","import { Directive, Input, OnInit, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarService } from './action.snackbar.service';\nimport { DbxActionSnackbarDisplayConfigGeneratorFunction, DbxActionSnackbarGeneratorInput, DbxActionSnackbarGeneratorUndoInput } from './action.snackbar.generator';\nimport { LoadingState, LoadingStateType, loadingStateType } from '@dereekb/rxjs';\n\n/**\n * Action directive that displays a snackbar when the action context hits a certain state.\n */\n@Directive({\n selector: '[dbxActionSnackbar]'\n})\nexport class DbxActionSnackbarDirective<T = unknown, O = unknown> extends AbstractSubscriptionDirective implements OnInit {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n readonly dbxActionSnackbarService = inject(DbxActionSnackbarService);\n\n private _snackbarFunction?: Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction>;\n\n @Input('dbxActionSnackbar')\n get snackbarFunction(): Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction> {\n return this._snackbarFunction;\n }\n\n set snackbarFunction(snackbarFunction: Maybe<'' | DbxActionSnackbarDisplayConfigGeneratorFunction>) {\n if (snackbarFunction) {\n this._snackbarFunction = snackbarFunction;\n }\n }\n\n @Input()\n dbxActionSnackbarDefault?: Maybe<DbxActionSnackbarType>;\n\n @Input()\n dbxActionSnackbarUndo?: DbxActionSnackbarGeneratorUndoInput<T, O>;\n\n ngOnInit(): void {\n this.sub = this.source\n .pipeStore((store) => store.loadingState$)\n .subscribe((loadingState: LoadingState<O>) => {\n const event: DbxActionSnackbarEvent<O> = { value: loadingState.value, error: loadingState.error, type: loadingStateType(loadingState) };\n\n const config = this.buildConfigurationForEvent(event);\n\n if (config) {\n this.showSnackbarForConfiguration(config, event);\n }\n });\n }\n\n protected buildConfigurationForEvent(event: DbxActionSnackbarEvent<O>): Maybe<DbxActionSnackbarDisplayConfig<T, O>> {\n const input: DbxActionSnackbarGeneratorInput<T, O> = {\n event,\n undo: event.type === LoadingStateType.SUCCESS ? this.dbxActionSnackbarUndo : undefined // only show undo on success.\n };\n\n return this.snackbarFunction ? this.snackbarFunction(input) : this.dbxActionSnackbarService.generateDisplayConfig(this.dbxActionSnackbarDefault, input);\n }\n\n protected showSnackbarForConfiguration(config: DbxActionSnackbarDisplayConfig<T, O>, event: DbxActionSnackbarEvent<O>) {\n this.dbxActionSnackbarService.openSnackbar(config);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractDbxButtonDirective, provideDbxButton } from '@dereekb/dbx-core';\n\n/**\n * Simple dbx-button that displays a button with an icon.\n */\n@Component({\n selector: 'dbx-icon-button',\n template: `\n <ng-container [ngSwitch]=\"buttonDisplayType\">\n <button *ngSwitchCase=\"'text_button'\" mat-button [disabled]=\"disabled\" (click)=\"clickButton()\">\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span>{{ text }}</span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n <button *ngSwitchCase=\"'icon_button'\" mat-icon-button [disabled]=\"disabled\" (click)=\"clickButton()\">\n <mat-icon>{{ icon }}</mat-icon>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n </ng-container>\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: provideDbxButton(DbxIconButtonComponent),\n host: {\n class: 'dbx-icon-button'\n }\n})\nexport class DbxIconButtonComponent extends AbstractDbxButtonDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxIconButtonComponent } from './icon.button.component';\n\n@NgModule({\n imports: [\n //\n CommonModule,\n MatButtonModule,\n MatIconModule\n ],\n exports: [DbxIconButtonComponent],\n declarations: [DbxIconButtonComponent]\n})\nexport class DbxIconButtonModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './base.progress.button.directive';\nimport { map, shareReplay } from 'rxjs';\nimport { spaceSeparatedCssClasses } from '@dereekb/util';\nimport { distinctUntilItemsHaveDifferentValues } from '@dereekb/rxjs';\n\n@Component({\n selector: 'dbx-bar-button',\n templateUrl: './bar.button.component.html',\n styleUrls: ['./bar.button.component.scss', './shared.button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxBarButtonComponent extends AbstractProgressButtonDirective {\n readonly buttonCss$ = this.baseCssClasses$.pipe(\n distinctUntilItemsHaveDifferentValues((x) => x[1]),\n map((x) => spaceSeparatedCssClasses(x[1])),\n shareReplay(1)\n );\n}\n","<button class=\"dbx-base-button dbx-bar-button\" mat-button [type]=\"options.type\" [color]=\"options.buttonColor\" [ngClass]=\"buttonCss$ | async\" [ngStyle]=\"options.customStyle!\" [disabled]=\"options.working || options.disabled\">\n <ng-container *ngIf=\"options.buttonIcon\">\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!options.buttonIcon.fontSet\" [ngClass]=\"options.buttonIcon.customClass!\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\" [inline]=\"options.buttonIcon.inline!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <span>\n {{ options.text }}\n <ng-content></ng-content>\n </span>\n\n <mat-progress-bar class=\"bar\" *ngIf=\"options.working && !options.disabled\" [color]=\"options.barColor!\" [mode]=\"options.mode!\" [value]=\"options.value!\"></mat-progress-bar>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG, DbxProgressButtonGlobalConfig } from './button.progress.config';\nimport { DbxBarButtonComponent } from './bar.button.component';\nimport { DbxSpinnerButtonComponent } from './spinner.button.component';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatProgressBarModule, MatProgressSpinnerModule, MatRippleModule, MatIconModule],\n exports: [DbxSpinnerButtonComponent, DbxBarButtonComponent],\n declarations: [DbxSpinnerButtonComponent, DbxBarButtonComponent]\n})\nexport class DbxProgressButtonsModule {\n static forRoot(config?: DbxProgressButtonGlobalConfig): ModuleWithProviders<DbxProgressButtonsModule> {\n return {\n ngModule: DbxProgressButtonsModule,\n providers: [\n {\n provide: DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxButtonComponent } from './button.component';\nimport { DbxButtonSpacerDirective } from './button.spacer.component';\nimport { CommonModule } from '@angular/common';\nimport { DbxCoreButtonModule } from '@dereekb/dbx-core';\nimport { DbxProgressButtonsModule } from './progress/button.progress.module';\nimport { DbxIconButtonModule } from './icon/icon.button.module';\n\n@NgModule({\n imports: [CommonModule, DbxProgressButtonsModule],\n declarations: [DbxButtonComponent, DbxButtonSpacerDirective],\n exports: [DbxCoreButtonModule, DbxProgressButtonsModule, DbxIconButtonModule, DbxButtonComponent, DbxButtonSpacerDirective]\n})\nexport class DbxButtonModule {}\n","import { Directive, inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { AbstractTransitionWatcherDirective } from '@dereekb/dbx-core';\n\n/**\n * Abstract dialog component that closes when a transition is successful.\n */\n@Directive()\nexport abstract class AbstractDialogDirective<R = unknown, D = unknown, T = unknown> extends AbstractTransitionWatcherDirective {\n readonly data: D = inject(MAT_DIALOG_DATA, { optional: true });\n readonly dialogRef = inject(MatDialogRef<T, R>);\n\n protected updateForSuccessfulTransition(): void {\n this.close();\n }\n\n returnValue(value?: R) {\n this.close(value);\n }\n\n close(value?: R) {\n this.dialogRef.close(value);\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\n\n/**\n * Component used to show a close button at the top of a dialog, floating in a corner.\n */\n@Component({\n selector: 'dbx-dialog-content-close',\n template: `\n <button class=\"dbx-dialog-content-close-button\" mat-icon-button (click)=\"closeClicked()\"><mat-icon>close</mat-icon></button>\n `,\n host: {\n class: 'dbx-dialog-content-close',\n '[class.dbx-dialog-content-close-padding]': 'padded'\n }\n})\nexport class DbxDialogContentCloseComponent implements OnDestroy {\n @Input()\n padded = true;\n\n @Output()\n readonly close = new EventEmitter<void>();\n\n closeClicked() {\n this.close.emit(undefined);\n }\n\n ngOnDestroy(): void {\n this.close.complete();\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxDialogContentFooterConfig {\n buttonColor?: ThemePalette;\n closeText?: string;\n}\n\n/**\n * Component used to show a close button at the bottom of a dialog.\n */\n@Component({\n selector: 'dbx-dialog-content-footer',\n template: `\n <button mat-raised-button [color]=\"buttonColor\" (click)=\"closeClicked()\">{{ closeText }}</button>\n `,\n host: {\n class: 'dbx-dialog-content-footer'\n }\n})\nexport class DbxDialogContentFooterComponent implements OnDestroy {\n @Input()\n closeText = 'Close';\n\n @Input()\n buttonColor: ThemePalette = undefined;\n\n @Output()\n readonly close = new EventEmitter<void>();\n\n @Input()\n set config(config: Maybe<DbxDialogContentFooterConfig>) {\n this.closeText = config?.closeText ?? 'Close';\n this.buttonColor = config?.buttonColor ?? undefined;\n }\n\n closeClicked() {\n this.close.emit(undefined);\n }\n\n ngOnDestroy(): void {\n this.close.complete();\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nexport type DbxDialogContentContainerWidth = 'normal' | 'wide';\n\n/**\n * Component used to style a dialog.\n */\n@Directive({\n selector: 'dbx-dialog-content,[dbxDialogContent].dbx-dialog-content',\n host: {\n class: 'dbx-dialog-content',\n '[class]': `width + '-dialog-content'`\n }\n})\nexport class DbxDialogContentDirective {\n @Input()\n width = 'normal';\n}\n","import { first, Observable } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, Input, ElementRef, inject } from '@angular/core';\nimport { AbstractDbxActionValueOnTriggerDirective } from '@dereekb/dbx-core';\nimport { IsModifiedFunction } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nexport type DbxActionDialogFunction<T = unknown> = () => MatDialogRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a dialog, then watches that dialog for a value.\n */\n@Directive({\n exportAs: 'dbxActionDialog',\n selector: '[dbxActionDialog]'\n})\nexport class DbxActionDialogDirective<T = unknown> extends AbstractDbxActionValueOnTriggerDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n @Input('dbxActionDialog')\n fn?: DbxActionDialogFunction<T>;\n\n @Input()\n set dbxActionDialogModified(isModifiedFunction: Maybe<IsModifiedFunction>) {\n this.isModifiedFunction = isModifiedFunction;\n }\n\n constructor() {\n super();\n this.valueGetter = () => this._getDataFromDialog();\n }\n\n protected _getDataFromDialog(): Observable<Maybe<T>> {\n return this._makeDialogRef().afterClosed().pipe(first());\n }\n\n protected _makeDialogRef(): MatDialogRef<unknown, Maybe<T>> {\n if (!this.fn) {\n throw new Error('dbxActionDialog has no dialog function provided to it.');\n }\n\n return this.fn();\n }\n}\n","import { MatDialogConfig } from '@angular/material/dialog';\nimport { Maybe, cssClassesSet } from '@dereekb/util';\n\nexport type DbxDialogContentConfig = Omit<MatDialogConfig, 'viewContainerRef' | 'injector' | 'id' | 'data'>;\n\nexport function sanitizeDbxDialogContentConfig(input: Maybe<DbxDialogContentConfig>): DbxDialogContentConfig {\n const panelClass = input?.panelClass;\n\n return {\n ...input,\n panelClass: panelClass ? Array.from(cssClassesSet(input?.panelClass)) : undefined\n };\n}\n","import { Destroyable, type Maybe } from '@dereekb/util';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, map, switchMap, shareReplay } from 'rxjs';\nimport { Injectable, InjectionToken, inject } from '@angular/core';\n\nexport const DBX_STYLE_DEFAULT_CONFIG_TOKEN = new InjectionToken('DbxStyleServiceDefaultConfig');\n\nexport interface DbxStyleConfig {\n /**\n * Root style name.\n */\n style: string;\n /**\n * Suffixes available to this configuration.\n */\n suffixes?: Set<string>;\n}\n\n/**\n * Used for managing styles within an app.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxStyleService implements Destroyable {\n private readonly _defaultConfig = new BehaviorSubject<Maybe<DbxStyleConfig>>(inject<DbxStyleConfig>(DBX_STYLE_DEFAULT_CONFIG_TOKEN));\n private readonly _config = new BehaviorSubject<Maybe<Observable<DbxStyleConfig>>>(undefined);\n private readonly _suffix = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly config$ = this._config.pipe(\n switchMap((x) => {\n if (x == null) {\n return this._defaultConfig;\n } else {\n return x;\n }\n }),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly suffix$ = this._suffix.pipe(distinctUntilChanged(), shareReplay(1));\n readonly style$ = this.getStyleWithConfig(this.config$);\n\n get suffix(): Maybe<string> {\n return this._suffix.value;\n }\n\n set suffix(suffix: Maybe<string>) {\n this._suffix.next(suffix);\n }\n\n getStyleWithConfig(configObs: Observable<DbxStyleConfig>): Observable<string> {\n return combineLatest([configObs, this.suffix$]).pipe(\n map(([config, suffix]) => {\n let style = config.style;\n\n if (suffix != null && config.suffixes) {\n const sanitizedSuffix = suffix[0] === '-' ? suffix?.slice(1) : suffix;\n\n if (config.suffixes.has(sanitizedSuffix)) {\n style = `${style}-${sanitizedSuffix}`;\n }\n }\n\n return style;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n toggleDarkSuffix(dark?: Maybe<boolean>) {\n const toggle: boolean = dark != null ? dark : this.suffix !== '-dark';\n\n if (toggle) {\n this.suffix = '-dark';\n } else {\n this.suffix = undefined;\n }\n }\n\n setDefaultConfig(defaultConfig: DbxStyleConfig) {\n this._defaultConfig.next(defaultConfig);\n }\n\n setConfig(config: Observable<DbxStyleConfig>) {\n this._config.next(config);\n }\n\n destroy(): void {\n this._defaultConfig.complete();\n this._config.complete();\n this._suffix.complete();\n }\n}\n","import { splitCommaSeparatedStringToSet, type Maybe } from '@dereekb/util';\nimport { Observable, distinctUntilChanged, map, shareReplay, BehaviorSubject, delay, combineLatest } from 'rxjs';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, Input, OnDestroy, ChangeDetectorRef, OnInit, inject } from '@angular/core';\nimport { DbxStyleConfig, DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\n\n/**\n * Used to denote which app style to use for all children below this.\n *\n * Will update the parent DbxStyleService.\n */\n@Directive({\n selector: '[dbxSetStyle]',\n host: {\n class: 'dbx-style-root',\n '[class]': 'outputStyle'\n }\n})\nexport class DbxSetStyleDirective extends AbstractSubscriptionDirective implements OnDestroy, OnInit {\n private readonly _suffixes = new BehaviorSubject<Maybe<string>>(undefined);\n private readonly _style = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly styleService = inject(DbxStyleService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n readonly style$ = this._style.pipe(filterMaybe());\n readonly suffixes$ = this._suffixes.pipe(distinctUntilChanged(), map(splitCommaSeparatedStringToSet));\n\n readonly config$: Observable<DbxStyleConfig> = combineLatest([this.style$, this.suffixes$]).pipe(\n map(([style, suffixes]) => ({ style, suffixes })),\n shareReplay(1)\n );\n\n readonly outputStyle$ = this.styleService.getStyleWithConfig(this.config$);\n\n outputStyle = '';\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.styleService.setConfig(this.config$);\n this.sub = this.outputStyle$.pipe(delay(0)).subscribe((style) => {\n this.outputStyle = style;\n safeDetectChanges(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._suffixes.complete();\n this._style.complete();\n }\n\n @Input('dbxSetStyle')\n get style(): string {\n return this._style.value ?? '';\n }\n\n set style(style: string) {\n this._style.next(style);\n }\n\n @Input()\n get suffixes(): Maybe<string> {\n return this._suffixes.value;\n }\n\n set suffixes(suffixes: Maybe<string>) {\n this._suffixes.next(suffixes);\n }\n}\n","import { Directive, ChangeDetectorRef, inject } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\n\n/**\n * Used to retrieve the current app styling from the DbxStyleService.\n */\n@Directive({\n selector: 'dbx-style, [dbxStyle], .dbx-style',\n host: {\n '[class]': 'cssClass'\n }\n})\nexport class DbxStyleDirective extends AbstractSubscriptionDirective {\n private readonly _styleService = inject(DbxStyleService);\n private readonly _cdRef = inject(ChangeDetectorRef);\n\n cssClass = '';\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this._styleService.style$.pipe(delay(0)).subscribe((classes) => {\n this.cssClass = classes;\n safeDetectChanges(this._cdRef);\n });\n }\n}\n","import { Directive, ChangeDetectorRef, Renderer2, inject } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\n\n/**\n * Used to style the body document using the style provided by DbxStyleService.\n */\n@Directive({\n selector: '[dbxStyleBody]',\n host: {\n '[class]': 'style'\n }\n})\nexport class DbxStyleBodyDirective extends AbstractSubscriptionDirective {\n private readonly _renderer = inject(Renderer2);\n readonly styleService = inject(DbxStyleService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _currentStyle = '';\n\n ngOnInit(): void {\n this.sub = this.styleService.style$.pipe(delay(0)).subscribe((style) => {\n this._currentStyle && this._renderer.removeClass(document.body, this._currentStyle);\n style && this._renderer.addClass(document.body, style);\n this._currentStyle = style;\n safeDetectChanges(this.cdRef);\n });\n }\n}\n","import { CssClass, type Maybe } from '@dereekb/util';\n\nexport type DbxThemeColorMain = 'primary' | 'accent' | 'warn';\nexport type DbxThemeColorExtra = 'notice' | 'ok' | 'success' | 'grey';\nexport type DbxThemeColorExtraSecondary = 'background' | 'disabled';\nexport type DbxThemeColorMainOrExtra = DbxThemeColorMain | DbxThemeColorExtra;\nexport type DbxThemeColor = DbxThemeColorMainOrExtra | DbxThemeColorExtraSecondary;\n\nexport const DBX_THEME_COLORS_MAIN: DbxThemeColorMain[] = ['primary', 'accent', 'warn'];\nexport const DBX_THEME_COLORS_EXTRA: DbxThemeColorExtra[] = ['notice', 'ok', 'success', 'grey'];\nexport const DBX_THEME_COLORS_EXTRA_SECONDARY: DbxThemeColorExtraSecondary[] = ['background', 'disabled'];\nexport const DBX_THEME_COLORS: DbxThemeColor[] = [...DBX_THEME_COLORS_MAIN, ...DBX_THEME_COLORS_EXTRA, ...DBX_THEME_COLORS_EXTRA_SECONDARY];\n\nexport function dbxColorBackground(color: Maybe<DbxThemeColor | ''>): CssClass {\n let cssClass = 'dbx-bg'; // background by default\n\n switch (color) {\n case 'primary':\n case 'accent':\n case 'warn':\n case 'notice':\n case 'ok':\n case 'success':\n case 'grey':\n case 'disabled':\n cssClass = `dbx-${color}-bg`;\n break;\n }\n\n return cssClass;\n}\n","import { Directive, Input } from '@angular/core';\nimport { DbxThemeColor, dbxColorBackground } from './style';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Used to apply a background style using a color.\n */\n@Directive({\n selector: '[dbxColor]',\n host: {\n '[class]': 'cssClass'\n }\n})\nexport class DbxColorDirective {\n cssClass = '';\n\n @Input()\n set dbxColor(dbxColor: Maybe<DbxThemeColor | ''>) {\n this.cssClass = dbxColorBackground(dbxColor);\n }\n}\n","import { DbxSetStyleDirective } from './style.set.directive';\nimport { DbxStyleDirective } from './style.directive';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxSpacerDirective } from './spacer.directive';\nimport { DbxStyleBodyDirective } from './style.body.directive';\nimport { DbxColorDirective } from './style.color.directive';\n\nconst declarations = [DbxColorDirective, DbxSpacerDirective, DbxStyleDirective, DbxSetStyleDirective, DbxStyleBodyDirective];\n\n@NgModule({\n imports: [CommonModule],\n declarations,\n exports: declarations\n})\nexport class DbxStyleLayoutModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxDialogContentDirective } from './dialog.content.component';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxActionDialogDirective } from './dialog.action.directive';\nimport { DbxDialogContentFooterComponent } from './dialog.content.footer.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxDialogContentCloseComponent } from './dialog.content.close.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, DbxStyleLayoutModule, MatButtonModule, MatIconModule],\n declarations: [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent],\n exports: [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent]\n})\nexport class DbxDialogInteractionModule {}\n","import { FlexibleConnectedPositionStrategy, HorizontalConnectionPos, Overlay, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ElementRef } from '@angular/core';\nimport { NgOverlayContainerConfiguration } from 'ng-overlay-container';\n\nexport interface PopoverPositionStrategyConfig {\n overlay: Overlay;\n elementRef: ElementRef;\n config: NgOverlayContainerConfiguration;\n}\n\nexport class PopoverPositionStrategy {\n static make(overlay: Overlay, elementRef: ElementRef, config: NgOverlayContainerConfiguration): FlexibleConnectedPositionStrategy {\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] = config.originX === 'end' ? ['end', 'start', 'center'] : config.originX === 'start' ? ['start', 'end', 'center'] : ['center', 'start', 'end'];\n\n const overlayX = originX;\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] = config.overlayY === 'bottom' ? ['bottom', 'top'] : ['top', 'bottom'];\n\n const [originY, originFallbackY] = [overlayFallbackY, overlayY];\n const { offsetX = 0, offsetY = 0 } = config;\n\n return overlay\n .position()\n .flexibleConnectedTo(elementRef)\n .withLockedPosition(true)\n .withPositions([\n {\n originX,\n originY,\n overlayX,\n overlayY,\n offsetY\n },\n {\n originX: origin2ndX,\n originY,\n overlayX: origin2ndX,\n overlayY,\n offsetY\n },\n {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin2ndX,\n originY: originFallbackY,\n overlayX: origin2ndX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin3rdX,\n originY,\n overlayX: origin3rdX,\n overlayY,\n offsetY\n },\n {\n originX: origin3rdX,\n originY: originFallbackY,\n overlayX: origin3rdX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }\n ])\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(offsetY);\n }\n}\n","import { type Maybe } from '@dereekb/util';\nimport { isBoolean } from 'class-validator';\nimport { Observable, of, map } from 'rxjs';\n\nexport enum CompactMode {\n FULL = 'full',\n COMPACT = 'compact'\n}\n\nexport interface CompactModeOptions<T> {\n full?: T;\n compact?: T;\n}\n\nexport interface CompactModeDefaultOptions<T> extends CompactModeOptions<T> {\n defaultMode?: Maybe<CompactMode>;\n}\n\nexport type CompactModeOption = CompactMode | boolean;\n\nexport function compactModeFromInput(input: CompactMode | boolean): CompactMode {\n if (isBoolean(input)) {\n input = input ? CompactMode.COMPACT : CompactMode.FULL;\n }\n\n return input === CompactMode.COMPACT ? CompactMode.COMPACT : CompactMode.FULL;\n}\n\nexport function mapCompactModeObs<T>(mode$: Maybe<Observable<CompactMode>>, config: CompactModeDefaultOptions<T>): Observable<Maybe<T>> {\n const modeObs = mode$ ?? of(config.defaultMode ?? CompactMode.FULL);\n return modeObs.pipe(\n map((inputMode) => {\n const isCompact = (inputMode ?? config.defaultMode) === CompactMode.COMPACT;\n\n if (isCompact) {\n return config.compact;\n } else {\n return config.full;\n }\n })\n );\n}\n","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { map } from 'rxjs';\nimport { CompactMode, compactModeFromInput } from './compact';\n\nexport interface CompactContextState {\n mode: CompactMode;\n}\n\n@Injectable()\nexport class CompactContextStore extends ComponentStore<CompactContextState> {\n constructor() {\n super({ mode: CompactMode.FULL });\n }\n\n // MARK: Accessors\n readonly mode$ = this.state$.pipe(map((x) => x.mode));\n\n // MARK: State Changes\n readonly setMode = this.updater((state, mode: CompactMode | boolean) => ({ mode: compactModeFromInput(mode) }));\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { CompactMode } from './compact';\nimport { CompactContextStore } from './compact.store';\n\n/**\n * CompactContextStore provider.\n */\n@Directive({\n selector: '[dbxCompact]',\n providers: [CompactContextStore],\n exportAs: 'compact'\n})\nexport class DbxCompactDirective {\n readonly compactContextStore = inject(CompactContextStore);\n readonly mode$ = this.compactContextStore.mode$;\n\n @Input('dbxCompact')\n set mode(mode: CompactMode | boolean) {\n this.compactContextStore.setMode(mode);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCompactDirective } from './compact.directive';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxCompactDirective],\n exports: [DbxCompactDirective]\n})\nexport class DbxCompactLayoutModule {}\n","import { type Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopoverKey = string;\n\nexport abstract class DbxPopoverController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopoverKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popover to close.\n */\n abstract close(): void;\n /**\n * Closes the popover and returns the input value.\n */\n abstract return(value?: O): void;\n}\n","import { Input, OnDestroy, Output, EventEmitter, HostListener, Directive } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n@Directive({\n selector: '[dbxWindowKeyDownListener]'\n})\nexport class DbxWindowKeyDownListenerDirective implements OnDestroy {\n private _keysFilter?: Maybe<Set<string>>;\n\n @Input()\n appWindowKeyDownEnabled = true;\n\n @Output('dbxWindowKeyDownListener')\n keyPressed = new EventEmitter<KeyboardEvent>();\n\n @Input()\n set appWindowKeyDownFilter(filterOnKeys: string[]) {\n let filter: Maybe<Set<string>>;\n\n if (filterOnKeys) {\n filter = new Set(filterOnKeys);\n }\n\n this._keysFilter = filter;\n }\n\n ngOnDestroy(): void {\n this.keyPressed.complete();\n }\n\n @HostListener('window:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (this.appWindowKeyDownEnabled !== false) {\n if (!this._keysFilter || this._keysFilter.has(event.key)) {\n this.keyPressed.emit(event);\n }\n }\n }\n}\n","import { DbxPopoverKey, DbxPopoverController } from './popover';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverCoordinatorService implements OnDestroy {\n private _popovers = new BehaviorSubject<Map<DbxPopoverKey, DbxPopoverController>>(new Map());\n readonly popovers$ = this._popovers.asObservable();\n\n ngOnDestroy(): void {\n this._popovers.complete();\n }\n\n get popovers(): Map<DbxPopoverKey, DbxPopoverController> {\n return this._popovers.value;\n }\n\n public addPopover(popover: DbxPopoverController): void {\n const key = popover.key;\n\n if (key) {\n this.removePopover(key);\n this._popovers.value.set(key, popover);\n this._popovers.next(this.popovers);\n }\n }\n\n public removePopover(key: DbxPopoverKey, popover?: DbxPopoverController): void {\n if (key) {\n const existing = this.popovers.get(key);\n\n // Remove if there is one existing, and if popover is provided it is the same popover.\n if (existing && (!popover || popover === existing)) {\n existing.close();\n this._popovers.value.delete(key);\n this._popovers.next(this.popovers);\n }\n }\n }\n}\n","import { DbxPopoverController } from './popover';\nimport { Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { DbxPopoverCoordinatorService } from './popover.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Component({\n selector: 'dbx-popover-coordinator',\n template: `\n <ng-container *ngIf=\"show$ | async\">\n <ng-content></ng-content>\n </ng-container>\n `\n})\nexport class DbxPopoverCoordinatorComponent implements OnInit, OnDestroy {\n private readonly _service = inject(DbxPopoverCoordinatorService);\n private readonly _popover = inject(DbxPopoverController);\n\n readonly isPopoverForKey$ = this._service.popovers$.pipe(\n map((x) => x.get(this._popover.key) === this._popover),\n shareReplay(1)\n );\n readonly show$ = this.isPopoverForKey$.pipe(delay(0));\n\n constructor() {}\n\n ngOnInit(): void {\n this._service.addPopover(this._popover);\n }\n\n ngOnDestroy(): void {\n this._service.removePopover(this._popover.key, this._popover);\n }\n}\n","import { Component, Type, OnInit, OnDestroy, ElementRef, inject } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgPopoverCloseType, NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopoverPositionStrategy } from './popover.position.strategy';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { LockSet } from '@dereekb/rxjs';\nimport { CompactContextStore, CompactMode } from '../../layout/compact';\nimport { asPromise, Maybe, PromiseOrValue, SpaceSeparatedCssClasses } from '@dereekb/util';\nimport { DbxPopoverController, DbxPopoverKey } from './popover';\n\nexport abstract class DbxPopoverComponentController<O, I> extends DbxPopoverController<O, I> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopoverComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popover should exist at a time given a certain key.\n */\n key: DbxPopoverKey;\n /**\n * Origin element to position on.\n */\n origin: ElementRef;\n /**\n * Whether or not to close if a transition occurs.\n */\n closeOnTransition?: boolean;\n /**\n * Whether or not to dismiss when the escape button is pressed.\n *\n * False by default.\n */\n closeOnEscape?: boolean;\n /**\n * Component to inject into the popover.\n */\n componentClass: Type<T>;\n /**\n * Panel classes to add to the popover.\n */\n panelClass?: Maybe<SpaceSeparatedCssClasses>;\n /**\n * Data available to the popover.\n */\n data?: Maybe<I>;\n init?: (component: T, controller: DbxPopoverController<O, I>) => void;\n}\n\nexport interface FullDbxPopoverComponentConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T> {\n configuration: NgOverlayContainerConfiguration;\n}\n\n/**\n * Popover component.\n */\n@Component({\n template: `\n <dbx-popover-coordinator (dbxWindowKeyDownListener)=\"handleKeydown()\" [appWindowKeyDownFilter]=\"triggerCloseKeys\">\n <div dbxStyle class=\"dbx-popover-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popover-coordinator>\n `,\n providers: [\n {\n provide: DbxPopoverController,\n useExisting: DbxPopoverComponent\n },\n {\n provide: CompactContextStore\n }\n ],\n host: {\n '[class]': 'config.panelClass'\n }\n})\nexport class DbxPopoverComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopoverController<O, I>, OnInit, OnDestroy {\n private readonly popoverRef = inject(NgPopoverRef<FullDbxPopoverComponentConfig<O, I, T>, O>);\n private readonly compactContextState = inject(CompactContextStore);\n\n readonly lockSet = new LockSet();\n\n readonly contentConfig: DbxInjectionComponentConfig = {\n componentClass: this.config.componentClass,\n init: this.config.init ? (instance) => (this.config as Required<FullDbxPopoverComponentConfig<O, I, T>>).init(instance as T, this) : undefined\n };\n\n private _startedClosing = false;\n private readonly _closing = new Subject<void>();\n\n private _triggerCloseKeys: string[] = [];\n\n readonly isClosing$ = this._closing.pipe(\n first(),\n map(() => true),\n startWith(false),\n shareReplay(1)\n );\n\n readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n getClosingValueFn?: (value: Maybe<I>, closeType: NgPopoverCloseType) => PromiseOrValue<O | undefined>;\n\n constructor() {\n super();\n\n // Override Close to properly signal to listeners when a close is occuring.\n const originalClose = this.popoverRef.close;\n this.popoverRef.close = (x) => {\n if (!this._startedClosing) {\n this.lockSet.lockForSeconds(1);\n this._startedClosing = true;\n this.close();\n originalClose.call(this.popoverRef, x);\n }\n };\n\n // Also intercept the _close function to capture backdropClose, etc.\n const original_close = (this.popoverRef as any)._close;\n (this.popoverRef as any)._close = (closeType: NgPopoverCloseType, inputValue: O | undefined) => {\n const closeWithValue = (value?: O | undefined) => {\n original_close.call(this.popoverRef, closeType, value);\n };\n\n if (closeType === 'close' || inputValue != null) {\n closeWithValue(inputValue);\n } else {\n // expected to be a backdrop close. Get the closing value then close.\n this._useClosingValue(closeType, (x) => closeWithValue(x));\n }\n };\n\n // eslint-disable-next-line\n const overlay = (this.popoverRef as any)._overlay as Overlay; // overlay is not publically accessible\n const elementRef = this.config.origin;\n const configuration = this.config.configuration;\n\n this.compactContextState.setMode(CompactMode.COMPACT);\n const position = PopoverPositionStrategy.make(overlay, elementRef, configuration);\n this.popoverRef.overlay.updatePositionStrategy(position);\n }\n\n get config(): FullDbxPopoverComponentConfig<O, I, T> {\n return this.popoverRef.data;\n }\n\n get panelClass(): Maybe<SpaceSeparatedCssClasses> {\n return this.config.panelClass;\n }\n\n get key(): DbxPopoverKey {\n return this.config.key;\n }\n\n get data(): Maybe<I> {\n return this.config.data;\n }\n\n get triggerCloseKeys(): string[] {\n return this._triggerCloseKeys;\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n if (this.config.closeOnEscape) {\n this._triggerCloseKeys = ['Escape'];\n }\n }\n\n override ngOnDestroy(): void {\n this.lockSet.destroyOnNextUnlock(() => {\n super.ngOnDestroy();\n this._closing.complete();\n });\n }\n\n protected updateForSuccessfulTransition(): void {\n if (this.config.closeOnTransition !== false) {\n this.close();\n }\n }\n\n // Popover Controls\n public close(): void {\n if (!this._startedClosing && this.getClosingValueFn != null) {\n this._useClosingValue('close', (x) => this.return(x));\n } else {\n this.return();\n }\n }\n\n public return(value?: O | undefined): void {\n this._closing.next();\n this.popoverRef.close(value);\n }\n\n private _useClosingValue(closeType: NgPopoverCloseType, useValue: (value?: O | undefined) => void) {\n if (this.getClosingValueFn != null) {\n asPromise(this.getClosingValueFn(this.data, closeType)).then(\n (x) => {\n useValue(x);\n },\n () => {\n useValue();\n }\n );\n } else {\n useValue();\n }\n }\n\n // Keypresses\n handleKeydown() {\n this.close();\n }\n}\n","import { DbxPopoverComponent, DbxPopoverComponentConfig, FullDbxPopoverComponentConfig } from './popover.component';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport type DbxPopoverConfigSizing = Pick<NgOverlayContainerConfiguration, 'originX' | 'originY' | 'height' | 'width' | 'minHeight' | 'minWidth' | 'isResizable'>;\n\nexport interface DbxPopoverConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T>, DbxPopoverConfigSizing {\n injector?: Injector;\n}\n\n/**\n * Used for displaying a popover.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverService {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _overlayContainerService: NgOverlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n\n open<O, I, T>(config: DbxPopoverConfig<O, I, T>): NgPopoverRef<DbxPopoverComponentConfig<O, I, T>, O> {\n const service = config.injector ? new NgOverlayContainerService(this._overlay, config.injector) : this._overlayContainerService;\n\n const configuration: NgOverlayContainerConfiguration = {\n panelClass: 'dbx-popover-container',\n originX: config.originX ?? 'start',\n originY: config.originY ?? 'top',\n // TODO: Resize height/width.\n minHeight: config.minHeight,\n minWidth: config.minWidth,\n height: config.height ?? '500px',\n width: config.width ?? '400px',\n hasBackdrop: true,\n isDraggable: false,\n isResizable: config.isResizable ?? false,\n disableBackdropClose: false\n };\n\n return service.open<FullDbxPopoverComponentConfig<O, I, T>, O>({\n content: DbxPopoverComponent,\n data: {\n ...config,\n configuration\n },\n configuration\n });\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxPopoverComponent } from './popover.component';\n\n/**\n * Abstract popover directive.\n */\n@Directive()\nexport abstract class AbstractPopoverDirective<O = unknown, I = unknown, T = unknown> {\n readonly popover = inject(DbxPopoverComponent<O, I, T>);\n\n close(): void {\n this.popover.close();\n }\n\n returnAndClose(value: O): void {\n this.popover.return(value);\n }\n}\n","import { BehaviorSubject, throttleTime } from 'rxjs';\nimport { OnDestroy, Component } from '@angular/core';\nimport { ResizedEvent } from 'angular-resize-event';\n\n/**\n * Popover content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-content',\n template: `\n <div class=\"d-block dbx-popover-content\" (resized)=\"onResized($event)\" [style.--popoverh]=\"height$ | async\">\n <ng-content select=\"[controls]\"></ng-content>\n <div class=\"dbx-popover-content-container\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxPopoverContentComponent implements OnDestroy {\n private readonly _height = new BehaviorSubject<string>('');\n readonly height$ = this._height.asObservable().pipe(throttleTime(100, undefined, { leading: true, trailing: true }));\n\n hasControls = false;\n hasHeader = false;\n\n onResized(event: ResizedEvent): void {\n this._height.next(`${event.newRect.height}px`);\n }\n\n ngOnDestroy(): void {\n this._height.complete();\n }\n}\n","import { Component, Input, OnInit, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Component used to format a header for a popover.\n */\n@Component({\n selector: 'dbx-popover-header',\n template: `\n <div class=\"dbx-popover-header\">\n <div class=\"dbx-popover-header-content\">\n <h3>\n <mat-icon *ngIf=\"icon\" class=\"dbx-icon-spacer\">{{ icon }}</mat-icon>\n {{ header }}\n </h3>\n <span class=\"spacer\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n <mat-divider></mat-divider>\n `\n})\nexport class DbxPopoverHeaderComponent implements OnInit {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasHeader = true;\n }\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover scrollable content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-scroll-content',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'd-block dbx-popover-scroll-content',\n '[class]': 'sizingClasses'\n }\n})\nexport class DbxPopoverScrollContentComponent {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent);\n\n get sizingClasses(): string {\n const hasHeader = this.hasHeader;\n const hasControls = this.hasControls;\n\n const classes: string[] = [];\n\n if (hasHeader && hasControls) {\n classes.push('popover-has-controls-and-header');\n } else if (hasHeader) {\n classes.push('popover-has-header');\n } else if (hasControls) {\n classes.push('popover-has-controls');\n }\n\n return classes.join(' ');\n }\n\n get hasHeader(): boolean {\n return this.appPopoverContentComponent.hasHeader;\n }\n\n get hasControls(): boolean {\n return this.appPopoverContentComponent.hasControls;\n }\n}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, ElementRef, Type, OnInit, OnDestroy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Observable, BehaviorSubject, map, skip, first, defaultIfEmpty } from 'rxjs';\nimport { AbstractPopoverDirective } from '../popover/abstract.popover.directive';\nimport { DbxPopoverConfigSizing, DbxPopoverService } from '../popover/popover.service';\nimport { FilterSource, FilterSourceConnector, PresetFilterSource, filterMaybe, SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxPopoverKey } from '../popover/popover';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxFilterComponentParams<F extends object = object, P extends string = string, CF extends FilterSource<F> = FilterSource<F>, PF extends PresetFilterSource<F, P> = PresetFilterSource<F, P>> extends DbxPopoverConfigSizing {\n /**\n * Custom icon\n *\n * Defaults to \"filter_list\"\n */\n icon?: string;\n /**\n * Custom header text\n *\n * Defaults to \"Filter\"\n */\n header?: string;\n /**\n * Custom customize button text. If not defined, defaults to \"Customize\"\n */\n customizeButtonText?: string;\n /**\n * Custom close button text. If not defined, defaults to \"Close\"\n */\n closeButtonText?: string;\n /**\n * Whether or not to show the close button. Defaults to the value of !closeOnFilterChange\n */\n showCloseButton?: Maybe<boolean>;\n /**\n * Custom filter component to initialize.\n */\n customFilterComponentClass?: Type<CF>;\n /**\n * Preset filter component to initialize.\n */\n presetFilterComponentClass?: Type<PF>;\n /**\n * DbxInjectionComponentConfig for the custom filter component to initialize.\n */\n customFilterComponentConfig?: DbxInjectionComponentConfig<CF>;\n /**\n * DbxInjectionComponentConfig for the preset filter component to initialize.\n */\n presetFilterComponentConfig?: DbxInjectionComponentConfig<PF>;\n /**\n * The connector to use.\n */\n connector: FilterSourceConnector<F>;\n /**\n * (Optional) Inital filter to pass to the filter source.\n */\n initialFilterObs?: Observable<F>;\n /**\n * (Optional) Whether or not to close the component if the filter changes.\n *\n * True by default.\n */\n closeOnFilterChange?: boolean;\n}\n\nexport interface DbxFilterPopoverComponentParams<F extends object = object> extends DbxFilterComponentParams<F> {\n /**\n * Origin to add the popover to.\n */\n origin: ElementRef;\n}\n\nexport const DEFAULT_FILTER_POPOVER_KEY = 'filter';\n\n@Component({\n templateUrl: './filter.popover.component.html'\n})\nexport class DbxFilterPopoverComponent<F extends object> extends AbstractPopoverDirective<unknown, DbxFilterComponentParams<F>> implements OnInit, OnDestroy {\n private _closeOnChangeSub = new SubscriptionObject();\n\n readonly showCloseButton = this.config.showCloseButton ?? !(this.config.closeOnFilterChange ?? true);\n readonly closeButtonText = this.config.closeButtonText ?? 'Close';\n readonly customizeButtonText = this.config.customizeButtonText ?? 'Customize';\n\n /**\n * Whether or not to display buttons to toggle between custom and preset filters.\n */\n readonly showSwitchButtons = Boolean(this.config.customFilterComponentClass && this.config.presetFilterComponentClass);\n\n private _showPreset = new BehaviorSubject<boolean>(false);\n readonly showPreset$ = this._showPreset.asObservable();\n\n readonly config$: Observable<DbxInjectionComponentConfig<FilterSource<F>>> = this._showPreset.pipe(\n map((showPreset) => {\n const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;\n let componentClass: Type<FilterSource<F>>;\n let baseConfig: Maybe<DbxInjectionComponentConfig<FilterSource<F>>>;\n\n if (showPreset) {\n componentClass = (presetFilterComponentConfig?.componentClass ?? presetFilterComponentClass) as Type<FilterSource<F>>;\n baseConfig = presetFilterComponentConfig;\n } else {\n componentClass = (customFilterComponentConfig?.componentClass ?? customFilterComponentClass) as Type<FilterSource<F>>;\n baseConfig = customFilterComponentConfig;\n }\n\n const config: DbxInjectionComponentConfig<FilterSource<F>> = {\n ...baseConfig,\n componentClass,\n init: (filterSource) => {\n connector.connectWithSource(filterSource);\n\n if (initialFilterObs && filterSource.initWithFilter) {\n filterSource.initWithFilter(initialFilterObs);\n }\n\n if (closeOnFilterChange !== false) {\n this._closeOnChangeSub.subscription = filterSource.filter$.pipe(skip(1), filterMaybe(), first(), defaultIfEmpty(undefined)).subscribe(() => {\n this.close();\n });\n }\n\n // run the next init if provided\n baseConfig?.init?.(filterSource);\n }\n };\n\n return config;\n })\n );\n\n static openPopover<F extends object>(popupService: DbxPopoverService, { width, height, isResizable, origin, header, icon, customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig, connector, initialFilterObs, closeOnFilterChange, customizeButtonText, showCloseButton, closeButtonText }: DbxFilterPopoverComponentParams<F>, popoverKey?: DbxPopoverKey): NgPopoverRef {\n return popupService.open({\n key: popoverKey ?? DEFAULT_FILTER_POPOVER_KEY,\n origin,\n componentClass: DbxFilterPopoverComponent,\n width,\n height,\n isResizable,\n data: {\n header,\n icon,\n customizeButtonText,\n showCloseButton,\n closeButtonText,\n customFilterComponentClass,\n presetFilterComponentClass,\n customFilterComponentConfig,\n presetFilterComponentConfig,\n connector,\n initialFilterObs,\n closeOnFilterChange\n } as DbxFilterComponentParams<F>\n });\n }\n\n get config(): DbxFilterComponentParams<F> {\n return this.popover.data as DbxFilterComponentParams<F>;\n }\n\n get icon() {\n return this.config.icon ?? 'filter_list';\n }\n\n get header() {\n return this.config.header ?? 'Filter';\n }\n\n ngOnInit(): void {\n let showPreset = false;\n const { customFilterComponentClass, presetFilterComponentClass, customFilterComponentConfig, presetFilterComponentConfig } = this.config;\n\n if (customFilterComponentClass || customFilterComponentConfig) {\n showPreset = false;\n }\n\n if (presetFilterComponentClass || presetFilterComponentConfig) {\n showPreset = true;\n }\n\n if (!(customFilterComponentClass || customFilterComponentConfig) && !(presetFilterComponentClass || presetFilterComponentConfig)) {\n throw new Error('Requires a preset or custom class provided for DbxFilterPopover.');\n }\n\n this._showPreset.next(showPreset);\n }\n\n ngOnDestroy(): void {\n this._closeOnChangeSub.destroy();\n this._showPreset.complete();\n }\n\n showPresets() {\n this._showPreset.next(true);\n }\n\n showCustom() {\n this._showPreset.next(false);\n }\n}\n","<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">{{ customizeButtonText }}</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n <ng-container *ngIf=\"showCloseButton\">\n <dbx-button-spacer *ngIf=\"showSwitchButtons\"></dbx-button-spacer>\n <button mat-stroked-button color=\"accent\" (click)=\"close()\">{{ closeButtonText }}</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n","import { OnDestroy, Directive, EventEmitter, Output, ElementRef } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { NgPopoverCloseEvent, NgPopoverRef } from 'ng-overlay-container';\n\n/**\n * Abstract class for showing and handling a popover ref.\n */\n@Directive()\nexport abstract class AbstractPopoverRefDirective<T = unknown, R = unknown> extends AbstractSubscriptionDirective {\n private _popoverRef?: NgPopoverRef<T, R>;\n\n showPopover(origin?: ElementRef): void {\n if (!this._popoverRef) {\n this._showPopoverRef(origin);\n }\n }\n\n private _showPopoverRef(origin?: ElementRef): void {\n this._popoverRef = this._makePopoverRef(origin);\n this._afterOpened(this._popoverRef);\n this.sub = this._popoverRef.afterClosed$.subscribe((x) => {\n this._afterClosed(x);\n this._popoverRef = undefined;\n });\n }\n\n protected abstract _makePopoverRef(origin?: ElementRef): NgPopoverRef<T, R>;\n\n protected _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n // Do nothing. Override in parent type\n }\n\n protected _afterClosed(value: NgPopoverCloseEvent<R>): void {\n // Do nothing. Override in parent type\n }\n}\n\n/**\n * {@link AbstractPopoverRefDirective} extension that includes open/closed events.\n */\n@Directive()\nexport abstract class AbstractPopoverRefWithEventsDirective<T = unknown, R = unknown> extends AbstractPopoverRefDirective<T, R> implements OnDestroy {\n @Output()\n readonly popoverOpened = new EventEmitter<NgPopoverRef<T, R>>();\n\n @Output()\n readonly popoverClosed = new EventEmitter<NgPopoverCloseEvent<R>>();\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.popoverClosed.complete();\n this.popoverOpened.complete();\n }\n\n protected override _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n this.popoverOpened.next(popoverRef);\n }\n\n protected override _afterClosed(event: NgPopoverCloseEvent<R>): void {\n this.popoverClosed.next(event);\n }\n}\n","import { Directive, ElementRef, Input, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { DbxFilterPopoverComponent, DbxFilterComponentParams } from './filter.popover.component';\nimport { AbstractPopoverRefDirective } from '../popover/abstract.popover.ref.directive';\nimport { FilterSource, PresetFilterSource } from '@dereekb/rxjs';\n\nexport type DbxFilterButtonConfig<F extends object> = DbxFilterComponentParams<F>;\nexport type DbxFilterButtonConfigWithCustomFilter<F extends object, CF extends FilterSource<F> = FilterSource<F>> = Omit<DbxFilterComponentParams<F, any, CF, any>, 'presetFilter' | 'presetFilterComponentConfig'>;\nexport type DbxFilterButtonConfigWithPresetFilter<F extends object, PF extends PresetFilterSource<F, any> = PresetFilterSource<F, any>> = Omit<DbxFilterComponentParams<F, any, any, PF>, 'customFilter' | 'customFilterComponentConfig'>;\n\n@Directive()\nexport abstract class AbstractFilterPopoverButtonDirective<F extends object> extends AbstractPopoverRefDirective<unknown, unknown> {\n private readonly popupService = inject(DbxPopoverService);\n\n @Input()\n config?: DbxFilterComponentParams<F, any, any, any>;\n\n protected override _makePopoverRef(origin?: ElementRef): NgPopoverRef<unknown, unknown> {\n const config = this.config;\n\n if (!config) {\n throw new Error('Missing filterButtonConfig.');\n } else if (!origin) {\n throw new Error('Missing origin.');\n }\n\n return DbxFilterPopoverComponent.openPopover(this.popupService, {\n origin,\n ...config\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { AbstractFilterPopoverButtonDirective } from './filter.popover.button.directive';\nimport { DbxButtonDisplayContent } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\nconst DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT: DbxButtonDisplayContent = {\n icon: 'filter_list'\n};\n\n@Component({\n selector: 'dbx-filter-popover-button',\n template: `\n <dbx-icon-button #button (buttonClick)=\"showFilterPopover()\" [buttonDisplay]=\"buttonDisplay\" [disabled]=\"disabled\"></dbx-icon-button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxFilterPopoverButtonComponent<F extends object = object> extends AbstractFilterPopoverButtonDirective<F> {\n private _buttonDisplay: DbxButtonDisplayContent = DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT;\n\n @Input()\n disabled?: Maybe<boolean>;\n\n @Input()\n get buttonDisplay(): DbxButtonDisplayContent {\n return this._buttonDisplay;\n }\n\n set buttonDisplay(buttonDisplay: Maybe<DbxButtonDisplayContent>) {\n if (!buttonDisplay) {\n buttonDisplay = DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT;\n }\n\n this._buttonDisplay = buttonDisplay;\n }\n\n @ViewChild('button', { read: ElementRef, static: false })\n buttonElement!: ElementRef;\n\n showFilterPopover(): void {\n const origin = this.buttonElement.nativeElement;\n this.showPopover(origin);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxWindowKeyDownListenerDirective } from './keydown.listener.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxWindowKeyDownListenerDirective],\n exports: [DbxWindowKeyDownListenerDirective]\n})\nexport class DbxKeypressModule {}\n","import { Directive, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover Controls\n */\n@Directive({\n selector: 'dbx-popover-controls,[dbxPopoverControls],.dbx-popover-controls',\n host: {\n class: 'd-block dbx-popover-controls'\n }\n})\nexport class DbxPopoverControlsDirective {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasControls = true;\n }\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { DbxPopoverComponent } from './popover.component';\n\n/**\n * Pre-configured close icon button for use within popover header.\n */\n@Component({\n selector: 'dbx-popover-close-button',\n template: `\n <button mat-icon-button (click)=\"dbxPopoverComponent.close()\"><mat-icon>close</mat-icon></button>\n `\n})\nexport class DbxPopoverCloseButtonComponent {\n readonly dbxPopoverComponent = inject(DbxPopoverComponent);\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { DbxPopoverControlsDirective } from './popover.controls.directive';\nimport { DbxPopoverHeaderComponent } from './popover.header.component';\nimport { DbxPopoverScrollContentComponent } from './popover.scroll.content.component';\nimport { DbxKeypressModule } from '../../keypress';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxPopoverCloseButtonComponent } from './popover.close.component';\n\nconst declarations = [DbxPopoverContentComponent, DbxPopoverControlsDirective, DbxPopoverHeaderComponent, DbxPopoverCloseButtonComponent, DbxPopoverScrollContentComponent];\n\n/**\n * Contains all popover content components, allowing other sibling dbx-web modules to use the directives without referencing the full popover module.\n */\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, MatDividerModule, DbxKeypressModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule, AngularResizeEventModule],\n declarations,\n exports: declarations\n})\nexport class DbxPopoverInteractionContentModule {}\n","import { first, Observable, map } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, Input, ElementRef, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractDbxActionValueOnTriggerDirective } from '@dereekb/dbx-core';\nimport { IsModifiedFunction } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxActionPopoverFunctionParams {\n origin: ElementRef;\n}\n\nexport type DbxActionPopoverFunction<T = unknown> = (params: DbxActionPopoverFunctionParams) => NgPopoverRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a popover, then watches that popover for a value.\n */\n@Directive({\n exportAs: 'dbxActionPopover',\n selector: '[dbxActionPopover]'\n})\nexport class DbxActionPopoverDirective<T = unknown> extends AbstractDbxActionValueOnTriggerDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n @Input('dbxActionPopover')\n fn?: DbxActionPopoverFunction<T>;\n\n @Input()\n set dbxActionPopoverModified(isModifiedFunction: Maybe<IsModifiedFunction>) {\n this.isModifiedFunction = isModifiedFunction;\n }\n\n constructor() {\n super();\n this.valueGetter = () => this._getDataFromPopover();\n }\n\n protected _getDataFromPopover(): Observable<Maybe<T>> {\n return this._makePopoverRef().afterClosed$.pipe(\n first(),\n map((x) => x.data)\n );\n }\n\n protected _makePopoverRef(): NgPopoverRef<unknown, Maybe<T>> {\n const origin = this.elementRef;\n\n if (!this.fn) {\n throw new Error('popoverAction has no function provided to it yet.');\n }\n\n return this.fn({\n origin\n });\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbxPopoverComponent } from './popover.component';\nimport { DbxKeypressModule } from '../../keypress';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxPopoverInteractionContentModule } from './popover.content.module';\nimport { DbxActionPopoverDirective } from './popover.action.directive';\n\nconst declarations = [DbxPopoverComponent, DbxPopoverCoordinatorComponent, DbxActionPopoverDirective];\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, MatDividerModule, DbxKeypressModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule, AngularResizeEventModule, DbxPopoverInteractionContentModule],\n declarations,\n exports: [...declarations, DbxPopoverInteractionContentModule]\n})\nexport class DbxPopoverInteractionModule {}\n","import { Component, Input, inject } from '@angular/core';\nimport { AbstractDbxActionHandlerDirective, FilterSourceDirective, provideActionStoreSource } from '@dereekb/dbx-core';\nimport { of } from 'rxjs';\n\n/**\n * Action component used to simplify creating a filter form.\n *\n * Provides a DbxAction and configures the action to set the filter on a FilterSourceDirective when triggered.\n */\n@Component({\n selector: 'dbx-filter-wrapper',\n templateUrl: './filter.wrapper.component.html',\n providers: [provideActionStoreSource(null)]\n})\nexport class DbxFilterWrapperComponent<F = unknown> extends AbstractDbxActionHandlerDirective<F> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n @Input()\n showButtons = true;\n\n @Input()\n applyRaised = true;\n\n @Input()\n applyIcon = 'filter_list';\n\n @Input()\n applyText = 'Filter';\n\n constructor() {\n super();\n\n // configure handler function\n this._dbxActionHandlerInstance.handlerFunction = (filter: F) => {\n this.filterSourceDirective.setFilter(filter);\n return of(true);\n };\n }\n\n applyFilter(): void {\n this.source.setIsModified(true); // Force setting modified.\n this.source.trigger();\n }\n\n resetFilter(): void {\n this.filterSourceDirective.resetFilter();\n }\n}\n","<div class=\"dbx-filter-wrapper\">\n <div class=\"dbx-filter-wrapper-content\">\n <ng-content></ng-content>\n </div>\n <div *ngIf=\"showButtons\" fxLayout=\"row\">\n <dbx-button dbxActionButton [raised]=\"applyRaised\" [text]=\"applyText\" [icon]=\"applyIcon\"></dbx-button>\n <div class=\"spacer\"></div>\n <button mat-icon-button (click)=\"resetFilter()\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n","import { shareReplay, BehaviorSubject, map, Observable, combineLatest, distinctUntilChanged, startWith } from 'rxjs';\nimport { Directive, EventEmitter, Input, OnDestroy, Output, inject } from '@angular/core';\nimport { ClickableFilterPreset, ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset, ClickableFilterPresetOrPartialPreset, isClickableFilterPreset } from '@dereekb/dbx-core';\nimport { getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\nimport { FilterWithPreset } from '@dereekb/rxjs';\n\n/**\n * Displays a button and menu for filtering presets.\n */\n@Directive()\nexport abstract class AbstractDbxPresetFilterMenuDirective<F extends FilterWithPreset> implements OnDestroy {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n @Output()\n readonly presetSelected = new EventEmitter<ClickableFilterPresetOrPartialPreset<F>>();\n\n private _presets = new BehaviorSubject<ClickableFilterPresetOrPartialPreset<F>[]>([]);\n\n readonly selected$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n readonly presetsWithPresetStringOnly$: Observable<ClickableFilterPreset<F>[]> = this._presets.pipe(map((x) => x.filter((y) => Boolean((y as ClickableFilterPreset<F>).preset)) as ClickableFilterPreset<F>[]));\n\n readonly selectedPresetString$: Observable<Maybe<string>> = this.selected$.pipe(\n map((selectedFilter) => (selectedFilter ? selectedFilter.preset : undefined)),\n distinctUntilChanged()\n );\n\n readonly presetAnchorsPairs$: Observable<['preset' | 'partialPreset', ClickableFilterPresetOrPartialPreset<F>, ClickableAnchorLink][]> = combineLatest([this._presets, this.selected$, this.selectedPresetString$]).pipe(\n map(([presets, currentFilterValue, selectedPresetString]) => {\n return presets.map((x) => {\n let selected: boolean;\n let type: 'preset' | 'partialPreset';\n\n if (isClickableFilterPreset(x)) {\n selected = x.preset === selectedPresetString;\n type = 'preset';\n } else {\n selected = x.isActive(currentFilterValue);\n type = 'partialPreset';\n }\n\n return [\n type,\n x,\n {\n ...x,\n selected,\n onClick: () => {\n this.selectPreset(x);\n }\n }\n ] as [typeof type, ClickableFilterPresetOrPartialPreset<F>, ClickableAnchorLink];\n });\n }),\n shareReplay(1)\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = this.presetAnchorsPairs$.pipe(\n map((x) => x.map((x) => x[2])),\n shareReplay(1)\n );\n\n readonly firstSelectedAnchorPair$ = this.presetAnchorsPairs$.pipe(\n map((presets) => {\n const firstSelected = presets.find((x) => x[2].selected);\n return firstSelected ? firstSelected : undefined;\n }),\n shareReplay(1)\n );\n\n readonly selectedPreset$: Observable<Maybe<ClickableFilterPreset<F>>> = this.presetAnchorsPairs$.pipe(\n map((presets) => {\n const firstSelected = presets.filter((x) => x[0] === 'preset').find((x) => x[2].selected);\n return firstSelected ? (firstSelected[1] as ClickableFilterPreset<F>) : undefined;\n }),\n shareReplay(1)\n );\n\n @Input()\n get presets(): ClickableFilterPresetOrPartialPreset<F>[] {\n return this._presets.value;\n }\n\n set presets(presets: ClickableFilterPresetOrPartialPreset<F>[]) {\n this._presets.next(presets);\n }\n\n selectPreset(preset: ClickableFilterPresetOrPartialPreset<F>) {\n const presetString = (preset as ClickableFilterPreset<F>).preset;\n const presetValue = (preset as ClickableFilterPreset<F>).presetValue || (preset as ClickablePartialFilterPreset<F>).partialPresetValue;\n\n if (presetValue == null || (typeof presetValue !== 'function' && objectHasNoKeys(presetValue))) {\n // set and then reset if the value is null or empty\n this.filterSourceDirective.setFilter((presetValue ?? {}) as F);\n this.filterSourceDirective.resetFilter();\n } else {\n let filter = getValueFromGetter(presetValue) as F;\n\n if (filter.preset !== presetString) {\n filter = {\n ...filter,\n preset: presetString\n };\n }\n\n this.filterSourceDirective.setFilter(filter);\n }\n\n this.presetSelected.next(preset);\n }\n\n ngOnDestroy(): void {\n this._presets.complete();\n this.presetSelected.complete();\n }\n}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\nexport abstract class DbxRouterWebProviderConfig {\n /**\n * Component used by the Anchor component to render a SegueRef link.\n */\n abstract anchorSegueRefComponent: DbxInjectionComponentConfig;\n}\n","import { skipFirstMaybe } from '@dereekb/rxjs';\nimport { Input, Component, TemplateRef, ViewChild, OnDestroy, HostListener, inject } from '@angular/core';\nimport { AbstractDbxAnchorDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { map, distinctUntilChanged, shareReplay, BehaviorSubject } from 'rxjs';\nimport { DbxRouterWebProviderConfig } from '../../provider/router.provider.config';\n\n/**\n * Component that renders an anchor element depending on the input.\n */\n@Component({\n selector: 'dbx-anchor, [dbx-anchor]',\n templateUrl: './anchor.component.html',\n host: {\n class: 'd-inline dbx-anchor',\n 'dbx-anchor-block': 'block'\n }\n})\nexport class DbxAnchorComponent extends AbstractDbxAnchorDirective implements OnDestroy {\n private readonly dbNgxRouterWebProviderConfig = inject(DbxRouterWebProviderConfig);\n\n private _templateRef = new BehaviorSubject<Maybe<TemplateRef<unknown>>>(undefined);\n readonly templateRef$ = this._templateRef.pipe(skipFirstMaybe(), shareReplay(1));\n\n @Input()\n public block?: boolean;\n\n @ViewChild('content', { read: TemplateRef })\n get templateRef(): Maybe<TemplateRef<unknown>> {\n return this._templateRef.value;\n }\n\n set templateRef(templateRef: Maybe<TemplateRef<unknown>>) {\n this._templateRef.next(templateRef);\n }\n\n readonly url$ = this.anchor$.pipe(\n map((x) => x?.url),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly target$ = this.anchor$.pipe(\n map((x) => x?.target),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly selectedClass$ = this.selected$.pipe(\n map((selected) => (selected ? 'dbx-anchor-selected' : '')),\n shareReplay(1)\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._templateRef.complete();\n }\n\n get srefAnchorConfig(): DbxInjectionComponentConfig {\n return this.dbNgxRouterWebProviderConfig.anchorSegueRefComponent;\n }\n\n clickAnchor(event?: Maybe<MouseEvent>): void {\n this.anchor?.onClick?.(event);\n }\n\n @HostListener('mouseenter')\n onMouseEnter(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('enter', event);\n }\n\n @HostListener('mouseleave')\n onMouseLeave(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('leave', event);\n }\n}\n","<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"(selectedClass$ | async) || ''\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { OnDestroy, Input, Component } from '@angular/core';\nimport { BehaviorSubject, map, shareReplay, distinctUntilChanged, Observable } from 'rxjs';\nimport { ClickableAnchorLinkTree, ExpandedClickableAnchorLinkTree, expandClickableAnchorLinkTrees } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxAnchorListExpandedAnchor extends ExpandedClickableAnchorLinkTree {\n classes: string;\n}\n\n/**\n * Component that displays a list of ClickableAnchorLink values within a MatNavList.\n */\n@Component({\n selector: 'dbx-anchor-list',\n templateUrl: './anchorlist.component.html'\n})\nexport class DbxAnchorListComponent implements OnDestroy {\n private _anchors = new BehaviorSubject<ClickableAnchorLinkTree[]>([]);\n\n readonly expandedAnchors$: Observable<DbxAnchorListExpandedAnchor[]> = this._anchors.pipe(\n distinctUntilChanged(),\n map((x) =>\n expandClickableAnchorLinkTrees(x).map((y) => {\n (y as DbxAnchorListExpandedAnchor).classes = `${y.depth > 0 ? `dbx-anchor-list-child` : 'dbx-anchor-list-root'} dbx-anchor-list-depth-${y.depth}`;\n return y as DbxAnchorListExpandedAnchor;\n })\n ),\n shareReplay(1)\n );\n\n @Input()\n set anchors(anchors: Maybe<ClickableAnchorLinkTree[]>) {\n this._anchors.next(anchors ?? []);\n }\n\n ngOnDestroy(): void {\n this._anchors.complete();\n }\n}\n","<mat-nav-list class=\"dbx-anchor-list\">\n <ng-container *ngFor=\"let expanded of expandedAnchors$ | async; let last = last\">\n <dbx-anchor [anchor]=\"expanded.value\" [ngClass]=\"expanded.classes\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\">\n <mat-icon matListItemIcon *ngIf=\"expanded.value.icon\">{{ expanded.value.icon }}</mat-icon>\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div matListItemTitle>{{ expanded.value.title }}</div>\n <div matListItemLine class=\"dbx-small\" *ngIf=\"expanded.value.hint\">{{ expanded.value.hint }}</div>\n <dbx-injection *ngIf=\"expanded.value.content\" [config]=\"expanded.value.content\"></dbx-injection>\n </a>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </dbx-anchor>\n </ng-container>\n</mat-nav-list>\n","import { Component } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\n\n@Component({\n selector: 'dbx-preset-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchors$ | async\"></dbx-anchor-list>\n `\n})\nexport class DbxPresetFilterListComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {}\n","import { Component, Input } from '@angular/core';\nimport { ClickableIconAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Component that displays an anchor and a mat-button.\n */\n@Component({\n selector: 'dbx-anchor-icon',\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-icon-button>\n <mat-icon>{{ anchor?.icon }}</mat-icon>\n </button>\n </dbx-anchor>\n `\n})\nexport class DbxAnchorIconComponent {\n @Input()\n anchor: Maybe<ClickableIconAnchorLink>;\n}\n","import { Component, Input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Pre-styled text that can link to either a website or a ref using a dbx-anchor.\n */\n@Component({\n selector: 'dbx-link',\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <ng-content></ng-content>\n </dbx-anchor>\n `,\n host: {\n class: 'd-inline dbx-link'\n }\n})\nexport class DbxAnchorLinkComponent {\n @Input()\n anchor?: Maybe<ClickableAnchor>;\n\n @Input()\n set ref(ref: Maybe<string>) {\n if (ref) {\n this.anchor = {\n ref\n };\n }\n }\n\n @Input()\n set href(href: Maybe<string>) {\n if (href) {\n this.anchor = {\n url: href\n };\n }\n }\n}\n","import { BehaviorSubject, combineLatest, map, Observable, of, shareReplay } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { ClickableAnchor, ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Component that displays an anchor and a span with the title.\n */\n@Component({\n selector: 'dbx-anchor-content',\n template: `\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"icon$ | async\">{{ icon$ | async }}</mat-icon>\n <span *ngIf=\"title$ | async\">{{ title$ | async }}</span>\n `,\n host: {\n class: 'dbx-anchor-content'\n }\n})\nexport class DbxAnchorContentComponent implements OnDestroy {\n readonly parent = inject(DbxAnchorComponent, { optional: true });\n\n private readonly _inputAnchor = new BehaviorSubject<Maybe<Partial<ClickableAnchorLink>>>(undefined);\n private readonly _parentAnchor: Observable<Maybe<ClickableAnchor | ClickableAnchorLink>> = this.parent ? this.parent.anchor$ : of(undefined);\n\n readonly anchor$: Observable<Maybe<Partial<ClickableAnchorLink>>> = combineLatest([this._inputAnchor, this._parentAnchor]).pipe(\n map(([input, parent]) => input ?? parent),\n shareReplay(1)\n );\n\n readonly icon$ = this.anchor$.pipe(map((x) => x?.icon));\n readonly title$ = this.anchor$.pipe(map((x) => x?.title));\n\n @Input()\n set anchor(anchor: Maybe<Partial<ClickableAnchorLink>>) {\n this._inputAnchor.next(anchor);\n }\n\n ngOnDestroy(): void {\n this._inputAnchor.complete();\n }\n}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { NgModule } from '@angular/core';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { CommonModule } from '@angular/common';\nimport { DbxAnchorIconComponent } from './anchor.icon.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxAnchorLinkComponent } from './anchor.link.component';\nimport { DbxAnchorContentComponent } from './anchor.content.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxInjectionComponentModule],\n declarations: [DbxAnchorComponent, DbxAnchorIconComponent, DbxAnchorLinkComponent, DbxAnchorContentComponent],\n exports: [DbxAnchorComponent, DbxAnchorIconComponent, DbxAnchorLinkComponent, DbxAnchorContentComponent]\n})\nexport class DbxRouterAnchorModule {}\n","import { MatListModule } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxAnchorListComponent } from './anchorlist.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, DbxInjectionComponentModule, MatTabsModule, MatButtonModule, MatIconModule, MatListModule, MatMenuModule, DbxRouterAnchorModule],\n declarations: [DbxAnchorListComponent],\n exports: [DbxAnchorListComponent]\n})\nexport class DbxRouterAnchorListModule {}\n","import { ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { combineLatest, distinctUntilChanged, map, Observable, shareReplay, switchMap } from 'rxjs';\n\n/**\n * Configuration for the preset filter menus\n */\nexport interface DbxPresetFilterMenuConfig {\n /**\n * The text to display for the unknown selection.\n */\n unknownSelectionText?: string;\n /**\n * The icon to use for the filter, or false if no icon should be shown.\n */\n filterIcon?: Maybe<string> | false;\n /**\n * Whether or not to use the preset's icon if one is defined. If filterIcon is false, the icon will only appear when an item is selected.\n */\n usePresetIcon?: boolean;\n}\n\nexport function dbxPresetFilterMenuButtonTextObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'title'>>>>, defaultText = 'Filter') {\n return combineLatest([config$, selection$]).pipe(\n map(([config, preset]) => preset?.title ?? config.unknownSelectionText ?? defaultText),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n\nexport function dbxPresetFilterMenuButtonIconObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'icon'>>>>, defaultIcon = 'arrow_drop_down') {\n return config$.pipe(\n switchMap((config) => {\n const filterIcon = config.filterIcon === false ? '' : config.filterIcon || defaultIcon;\n\n return selection$.pipe(\n map((preset) => {\n let icon: Maybe<string>;\n\n if (config.filterIcon === false) {\n if (config.usePresetIcon) {\n icon = preset?.icon;\n }\n } else if (config.usePresetIcon) {\n icon = preset?.icon ?? filterIcon;\n } else {\n icon = filterIcon;\n }\n\n return icon;\n })\n );\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Component, Input } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\n\n/**\n * Displays a button and menu for filtering presets.\n */\n@Component({\n selector: 'dbx-preset-filter-menu',\n templateUrl: './filter.preset.menu.component.html'\n})\nexport class DbxPresetFilterMenuComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {\n private _config = new BehaviorSubject<DbxPresetFilterMenuConfig>({});\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this._config, this.selectedPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this._config, this.selectedPreset$);\n\n @Input()\n get config(): DbxPresetFilterMenuConfig {\n return this._config.value;\n }\n\n set config(config: DbxPresetFilterMenuConfig) {\n this._config.next(config);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._config.complete();\n }\n}\n","<button mat-button [matMenuTriggerFor]=\"menu\" class=\"dbx-preset-filter-menu-button\" aria-label=\"open filter\">\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"buttonIcon$ | async\">{{ buttonIcon$ | async }}</mat-icon>\n <span>{{ buttonText$ | async }}</span>\n</button>\n<mat-menu #menu class=\"dbx-preset-filter-menu\">\n <dbx-anchor *ngFor=\"let anchor of presetAnchors$ | async\" [anchor]=\"anchor\">\n <button mat-menu-item [ngClass]=\"anchor.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"anchor.icon\">{{ anchor.icon }}</mat-icon>\n {{ anchor.title }}\n </button>\n </dbx-anchor>\n</mat-menu>\n","import { Directive, inject } from '@angular/core';\nimport { DbxInjectionTemplateConfig } from '@dereekb/dbx-core';\nimport { Observable, distinctUntilChanged, shareReplay, map } from 'rxjs';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Abstract implementation\n */\n@Directive()\nexport abstract class AbstractDbxSegueAnchorDirective {\n readonly parent = inject(DbxAnchorComponent);\n\n readonly target$ = this.parent.target$;\n\n readonly ref$ = this.parent.anchor$.pipe(\n map((x) => x?.ref),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly refParams$ = this.parent.anchor$.pipe(\n map((x) => x?.refParams),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly refOptions$ = this.parent.anchor$.pipe(\n map((x) => x?.refOptions),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly template$: Observable<DbxInjectionTemplateConfig> = this.parent.templateRef$.pipe(\n distinctUntilChanged(),\n map((templateRef) => ({\n templateRef\n })),\n shareReplay(1)\n );\n\n get anchor() {\n return this.parent.anchor;\n }\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { ArrayOrValue, modifier, Modifier, ModifierFunction, ModifierMap } from '@dereekb/util';\nimport { Observable } from 'rxjs';\nimport { DbxValueListItem } from './list.view.value';\n\n// MARK: ValueListView\nexport abstract class DbxValueListItemModifier<T = unknown, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n abstract readonly modifiers$: Observable<ModifierMap<I>>;\n\n abstract addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n abstract removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n}\n\nexport function provideDbxValueListViewModifier<V extends DbxValueListItemModifier>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxValueListItemModifier,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n\n// MARK: Utility\nexport type ListItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> = Modifier<I>;\n\nexport function listItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>>(key: string, modify: ModifierFunction<I>): ListItemModifier<T, I> {\n return modifier(key, modify);\n}\n","import { BehaviorSubject, map, Observable, shareReplay, combineLatest } from 'rxjs';\nimport { Directive, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { DbxValueListItem } from './list.view.value';\nimport { addModifiers, ArrayOrValue, combineMaps, Maybe, Modifier, ModifierMap, removeModifiers } from '@dereekb/util';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxValueListItemModifier, provideDbxValueListViewModifier } from './list.view.value.modifier';\n\n/**\n * DbxValueListViewModifier implementation\n */\n@Directive({\n selector: '[dbxListItemModifier]',\n providers: provideDbxValueListViewModifier(DbxValueListItemModifierDirective)\n})\nexport class DbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListItemModifier<T, I>, OnDestroy {\n private _modifiers = new BehaviorSubject<Maybe<ModifierMap<I>>>(undefined);\n private _inputModifiers = new BehaviorSubject<Maybe<ArrayOrValue<Modifier<I>>>>(undefined);\n\n readonly modifiers$ = combineLatest([this._modifiers, this._inputModifiers]).pipe(\n map(([modifiers, inputModifiers]) => {\n return combineMaps(modifiers, inputModifiers ? addModifiers(inputModifiers) : undefined);\n }),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._modifiers.complete();\n }\n\n // MARK: Modifiers\n addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._modifiers.next(addModifiers(modifiers, this._modifiers.value));\n }\n\n removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._modifiers.next(removeModifiers(modifiers, this._modifiers.value));\n }\n\n // MARK: Input Modifiers\n @Input('dbxListItemModifier')\n set inputModifiers(inputModifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._inputModifiers.next(inputModifiers);\n }\n}\n\n/**\n * Abstract directive used for managing modifyers for a DbxValueListView.\n */\n@Directive()\nexport abstract class AbstractDbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements OnInit, OnDestroy {\n readonly dbxValueListItemModifier = inject(DbxValueListItemModifier<T, I>);\n\n abstract readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<I>>>>;\n\n private _linkedModifiers: Maybe<ArrayOrValue<Modifier<I>>>;\n private _modifiersSub = new SubscriptionObject();\n\n ngOnInit(): void {\n this._modifiersSub.subscription = this.modifiers$.subscribe((modifiers) => {\n this._linkModifiers(modifiers);\n });\n }\n\n ngOnDestroy(): void {\n this._unlinkModifiers();\n }\n\n private _linkModifiers(modifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._unlinkModifiers();\n\n if (modifiers) {\n this.dbxValueListItemModifier.addModifiers(modifiers);\n this._linkedModifiers = modifiers;\n }\n }\n\n private _unlinkModifiers() {\n if (this._linkedModifiers) {\n this.dbxValueListItemModifier.removeModifiers(this._linkedModifiers);\n this._linkedModifiers = undefined;\n }\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { DbxValueListItem } from '../../../layout/list/list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from '../../../layout/list/list.view.value.modifier.directive';\n\nexport type AnchorForValueFunction<T> = (value: T, item: DbxValueListItem<T>) => Maybe<ClickableAnchor>;\n\nexport const DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY = 'router_anchor';\n\n@Directive({\n selector: '[dbxListItemAnchorModifier]'\n})\nexport class DbxListItemAnchorModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _anchorForItem = new BehaviorSubject<Maybe<AnchorForValueFunction<T>>>(undefined);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._anchorForItem.pipe(\n map((anchorForItem) => {\n let modifiers: Maybe<Modifier<DbxValueListItem<T>>>;\n\n if (anchorForItem) {\n modifiers = {\n key: DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.anchor = anchorForItem(x.itemValue, x);\n }\n };\n }\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._anchorForItem.complete();\n }\n\n @Input('dbxListItemAnchorModifier')\n set anchorForItem(anchorForItem: Maybe<AnchorForValueFunction<T>>) {\n this._anchorForItem.next(anchorForItem);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxListItemAnchorModifierDirective } from './router.list.directive';\n\n@NgModule({\n imports: [],\n declarations: [DbxListItemAnchorModifierDirective],\n exports: [DbxListItemAnchorModifierDirective]\n})\nexport class DbxRouterListModule {}\n","/**\n * Set of screen media width types. Their pixel sizes correspond with the DbxScreenMediaService's configuration.\n *\n * Values:\n * - micro: Screen is considered mobile.\n * - small: Screen is consider small, but larger than mobile.\n * - tablet: Screen is considered tablet size.\n * - large: Screen is considered large than a tablet, but not full size.\n * - full: Screen is greater than large.\n */\nexport type ScreenMediaWidthType = 'micro' | 'small' | 'tablet' | 'large' | 'full';\n\nexport const SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP = {\n micro: 0,\n small: 1,\n tablet: 2,\n large: 3,\n full: 4\n};\n\n/**\n * Describes the current screen's vertical space.\n *\n * Values:\n * - tiny: Screen height is tiny, potentially the size of the navigation alone.\n * - normal: Screen has a normal height.\n */\nexport type ScreenMediaHeightType = 'tiny' | 'normal';\n\n/**\n * Compares the breakpoint with the current width and determines if it is \"active\" or not.\n *\n * The current is considered active if it is bigger or equal to the breakpoint.\n *\n * @param current\n * @param breakpoint\n */\nexport function screenMediaWidthTypeIsActive(current: ScreenMediaWidthType, breakpoint: ScreenMediaWidthType) {\n return compareScreenMediaWidthTypes(current, breakpoint, (a, b) => a >= b);\n}\n\nexport function compareScreenMediaWidthTypes(a: ScreenMediaWidthType, b: ScreenMediaWidthType, compare: (a: number, b: number) => boolean) {\n return compare(SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[a], SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[b]);\n}\n","import { Destroyable } from '@dereekb/util';\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport { ObservableOrValue, asObservable, initialize } from '@dereekb/rxjs';\nimport { Subject, map, shareReplay, distinctUntilChanged, throttleTime, Observable, combineLatest } from 'rxjs';\nimport { ScreenMediaWidthType, ScreenMediaHeightType, screenMediaWidthTypeIsActive } from './screen';\nimport { Inject, Injectable, inject } from '@angular/core';\n\n/**\n * ScreenMediaService configuration.\n */\nexport abstract class DbxScreenMediaServiceConfig {\n /**\n * The maximum size of a micro screen. Any size bigger than this is considered a small screen or larger.\n */\n abstract microScreenWidthMax: number;\n /**\n * The maximum size of a small screen. Any size bigger than this is considered a tablet screen or larger.\n */\n abstract smallScreenWidthMax: number;\n /**\n * The maximum size of a tablet screen. Any size bigger than this is considered a large screen or larger.\n */\n abstract tabletScreenWidthMax: number;\n /**\n * The maximum size of a large screen. Any size bigger than this is considered full.\n */\n abstract largeScreenWidthMax: number;\n /**\n * The maximum size of a tiny screen. Any size bigger than this is considered normal.\n */\n abstract tinyScreenHeightMax: number;\n}\n\nexport const DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG: DbxScreenMediaServiceConfig = {\n microScreenWidthMax: 360,\n smallScreenWidthMax: 520,\n tabletScreenWidthMax: 786,\n largeScreenWidthMax: 1280,\n tinyScreenHeightMax: 280\n};\n\n/**\n * Service that emits the current view type based on the configuration.\n */\n@Injectable()\nexport class DbxScreenMediaService implements Destroyable {\n private readonly _media = inject(MediaMatcher);\n\n private _microQuery: MediaQueryList;\n private _smallQuery: MediaQueryList;\n private _tabletQuery: MediaQueryList;\n private _largeQuery: MediaQueryList;\n\n private _tinyHeightQuery: MediaQueryList;\n\n private _updateWidth = new Subject<void>();\n private _updateHeight = new Subject<void>();\n\n readonly widthType$: Observable<ScreenMediaWidthType> = this._updateWidth.pipe(\n initialize(() => this._updateWidth.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readWidthType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly heightType$: Observable<ScreenMediaHeightType> = this._updateWidth.pipe(\n initialize(() => this._updateHeight.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readHeightType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n constructor(@Inject(DbxScreenMediaServiceConfig) config: DbxScreenMediaServiceConfig) {\n const { microScreenWidthMax, smallScreenWidthMax, tabletScreenWidthMax, largeScreenWidthMax } = config;\n\n this._microQuery = this._media.matchMedia(`screen and (max-width:${microScreenWidthMax}px)`);\n this._smallQuery = this._media.matchMedia(`screen and (max-width:${smallScreenWidthMax}px)`);\n this._tabletQuery = this._media.matchMedia(`screen and (max-width:${tabletScreenWidthMax}px)`);\n this._largeQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n this._tinyHeightQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n const widthHandler: (ev: MediaQueryListEvent) => void = () => this._updateWidth.next();\n const heightHandler: (ev: MediaQueryListEvent) => void = () => this._updateHeight.next();\n\n this._microQuery.onchange = widthHandler;\n this._smallQuery.onchange = widthHandler;\n this._tabletQuery.onchange = widthHandler;\n this._largeQuery.onchange = widthHandler;\n this._tinyHeightQuery.onchange = heightHandler;\n }\n\n destroy(): void {\n this._microQuery.onchange = null;\n this._smallQuery.onchange = null;\n this._tabletQuery.onchange = null;\n this._largeQuery.onchange = null;\n this._updateWidth.complete();\n this._updateHeight.complete();\n }\n\n /**\n * Returns an observable that detects whether or no the current width is greater or equal to the given breakpoint.\n *\n * @param inputBreakpoint\n * @returns\n */\n isBreakpointActive(inputBreakpoint: ObservableOrValue<ScreenMediaWidthType>): Observable<boolean> {\n return combineLatest([this.widthType$, asObservable(inputBreakpoint)]).pipe(\n map(([current, breakpoint]) => screenMediaWidthTypeIsActive(current, breakpoint)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n private _readWidthType(): ScreenMediaWidthType {\n let width: ScreenMediaWidthType;\n\n if (this._microQuery.matches) {\n width = 'micro';\n } else if (this._smallQuery.matches) {\n width = 'small';\n } else if (this._tabletQuery.matches) {\n width = 'tablet';\n } else if (this._largeQuery.matches) {\n width = 'large';\n } else {\n width = 'full';\n }\n\n return width;\n }\n\n private _readHeightType(): ScreenMediaHeightType {\n if (this._tinyHeightQuery) {\n return 'tiny';\n } else {\n return 'normal';\n }\n }\n}\n","import { Observable, BehaviorSubject, combineLatest, map, shareReplay, distinctUntilChanged, switchMap } from 'rxjs';\nimport { ScreenMediaWidthType } from './../../../screen/screen';\nimport { DbxScreenMediaService } from '../../../screen/screen.service';\nimport { applyBestFit, findNext, type Maybe } from '@dereekb/util';\nimport { Input, Component, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef, TrackByFunction, inject } from '@angular/core';\nimport { ClickableAnchorLinkSegueRef, DbxRouterService, AbstractTransitionDirective, tapDetectChanges, DbxButtonDisplayContent } from '@dereekb/dbx-core';\nimport { HorizontalConnectionPos } from '@angular/cdk/overlay';\n\ninterface NavAnchorLink {\n selected: boolean;\n anchor: ClickableAnchorLinkSegueRef;\n}\n\nexport type NavBarContentAlign = 'center' | 'left' | 'right';\nexport type NavbarMode = 'bar' | 'button' | 'icon';\nexport type NavbarButtonMode = 'menu' | 'rotate';\n\n/**\n * Component that displays a navbar.\n */\n@Component({\n selector: 'dbx-navbar',\n templateUrl: './navbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-navbar'\n }\n})\nexport class DbxNavbarComponent extends AbstractTransitionDirective implements OnDestroy {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n private readonly _dbxRouterService = inject(DbxRouterService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n /**\n * Whether or not to show the dropwdown caret for a menu\n */\n @Input()\n showMenuCaret = false;\n\n @Input()\n navAlign: HorizontalConnectionPos = 'center';\n\n private _icon = new BehaviorSubject<Maybe<string>>(undefined);\n private _defaultIcon = new BehaviorSubject<Maybe<string>>('menu');\n private _defaultText = new BehaviorSubject<Maybe<string>>(undefined);\n\n private _inputMode = new BehaviorSubject<Maybe<NavbarMode>>(undefined);\n private _buttonMode = new BehaviorSubject<NavbarButtonMode>('menu');\n private _breakpoint = new BehaviorSubject<ScreenMediaWidthType>('large');\n private _anchors = new BehaviorSubject<ClickableAnchorLinkSegueRef[]>([]);\n\n readonly isBreakpointActive$ = this._dbxScreenMediaService.isBreakpointActive(this._breakpoint);\n\n readonly mode$ = combineLatest([this._inputMode, this.isBreakpointActive$]).pipe(\n map(([inputMode, breakpointActive]) => {\n return breakpointActive ? inputMode ?? 'bar' : 'button';\n }),\n distinctUntilChanged(),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n\n readonly anchors$: Observable<NavAnchorLink[]> = combineLatest([this._anchors, this.initAndUpdateOnTransitionSuccess$]).pipe(\n map(([anchors]) => {\n const results = anchors.map((anchor) => {\n const selected = this._dbxRouterService.isActive(anchor);\n\n return {\n selected,\n anchor\n };\n });\n\n return applyBestFit(\n results,\n (x) => x.selected,\n (a, b) => this._dbxRouterService.comparePrecision(a.anchor, b.anchor),\n (nonBestFit) => ({ ...nonBestFit, selected: false })\n );\n }),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n\n readonly buttonMode$ = this._buttonMode.pipe(distinctUntilChanged(), shareReplay(1));\n\n readonly selectedAnchor$: Observable<Maybe<NavAnchorLink>> = this.anchors$.pipe(map((x) => x.find((y) => y.selected)));\n readonly nextRotateAnchor$: Observable<Maybe<NavAnchorLink>> = this.anchors$.pipe(map((x) => findNext(x, (y) => y.selected) || x[0]));\n\n readonly hasNoAnchors$ = this.anchors$.pipe(\n map((x) => x.length === 0),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonNavAnchor$ = this.buttonMode$.pipe(\n switchMap((x) => (x === 'menu' ? this.selectedAnchor$ : this.nextRotateAnchor$)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonDisplay$: Observable<DbxButtonDisplayContent> = combineLatest([this._defaultIcon, this._icon, this._defaultText, this.buttonNavAnchor$, this.mode$]).pipe(\n map(([defaultIcon, icon, defaultText, selectedAnchor, mode]) => {\n let content: DbxButtonDisplayContent;\n\n if (icon) {\n content = { icon, text: defaultText };\n } else if (selectedAnchor) {\n content = { icon: selectedAnchor.anchor.icon ?? defaultIcon, text: selectedAnchor.anchor.title };\n } else {\n content = { icon: defaultIcon ?? 'menu', text: defaultText };\n }\n\n if (mode === 'icon') {\n return { icon: content.icon };\n } else {\n return content;\n }\n }),\n shareReplay(1)\n );\n\n readonly trackByFunction: TrackByFunction<NavAnchorLink> = (index: number, item: NavAnchorLink) => item.anchor;\n\n // TODO: potentially make the caret depending on the current button display.\n\n ngOnDestroy(): void {\n this._icon.complete();\n this._defaultIcon.complete();\n this._defaultText.complete();\n this._inputMode.complete();\n this._buttonMode.complete();\n this._breakpoint.complete();\n this._anchors.complete();\n }\n\n // MARK: Accessors\n @Input()\n public set icon(icon: Maybe<string>) {\n this._icon.next(icon);\n }\n\n @Input()\n public set defaultIcon(defaultIcon: Maybe<string>) {\n this._defaultIcon.next(defaultIcon);\n }\n\n @Input()\n public set defaultText(defaultText: Maybe<string>) {\n this._defaultText.next(defaultText);\n }\n\n @Input()\n public set anchors(anchors: Maybe<ClickableAnchorLinkSegueRef[]>) {\n this._anchors.next(anchors ?? []);\n }\n\n @Input()\n public set buttonMode(mode: Maybe<NavbarButtonMode>) {\n this._buttonMode.next(mode ?? 'menu');\n }\n\n @Input()\n public set mode(mode: Maybe<NavbarMode>) {\n this._inputMode.next(mode);\n }\n\n @Input()\n public set breakpoint(breakpoint: ScreenMediaWidthType) {\n this._breakpoint.next(breakpoint);\n }\n}\n","<ng-container [ngSwitch]=\"mode$ | async\">\n <!-- Button -->\n <ng-container *ngSwitchDefault>\n <ng-container [ngSwitch]=\"buttonMode$ | async\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchors$ | async\">\n <mat-icon *ngIf=\"showMenuCaret\">arrow_drop_down</mat-icon>\n </dbx-icon-button>\n <mat-menu #menu>\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"x.anchor.icon\">{{ x.anchor.icon }}</mat-icon>\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n </mat-menu>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rotate'\">\n <dbx-anchor [anchor]=\"(nextRotateAnchor$ | async)?.anchor\">\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [disabled]=\"hasNoAnchors$ | async\"></dbx-icon-button>\n </dbx-anchor>\n </ng-container>\n </ng-container>\n </ng-container>\n <!-- Bar -->\n <ng-container *ngSwitchCase=\"'bar'\">\n <nav mat-tab-nav-bar [tabPanel]=\"tabPanel\" [attr.mat-align-tabs]=\"navAlign\">\n <dbx-anchor *ngFor=\"let x of anchors$ | async; trackBy: trackByFunction\" [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n </nav>\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n </ng-container>\n</ng-container>\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxNavbarComponent } from './navbar.component';\nimport { DbxIconButtonModule } from '../../../button';\nimport { UIRouterModule } from '@uirouter/angular';\n\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxIconButtonModule,\n MatTabsModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n UIRouterModule,\n DbxRouterAnchorModule\n ],\n declarations: [DbxNavbarComponent],\n exports: [DbxNavbarComponent]\n})\nexport class DbxRouterNavbarModule {}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxScreenMediaService, DbxScreenMediaServiceConfig, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG } from './screen.service';\n\n@NgModule()\nexport class DbxScreenModule {\n static forRoot(config: DbxScreenMediaServiceConfig = DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG): ModuleWithProviders<DbxScreenModule> {\n return {\n ngModule: DbxScreenModule,\n providers: [\n {\n provide: DbxScreenMediaServiceConfig,\n useValue: config\n },\n DbxScreenMediaService\n ]\n };\n }\n}\n","export enum SideNavDisplayMode {\n NONE = 'none',\n MOBILE = 'mobile',\n ICON = 'icon',\n FULL = 'full'\n}\n","import { OnDestroy, OnInit, Component, Input, ViewChild, inject } from '@angular/core';\nimport { MatDrawerMode, MatSidenav } from '@angular/material/sidenav';\nimport { DbxScreenMediaService } from '../../../screen';\nimport { AbstractTransitionWatcherDirective, ClickableAnchorLinkTree } from '@dereekb/dbx-core';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\nimport { distinctUntilChanged, map, shareReplay, Observable, first } from 'rxjs';\nimport { SideNavDisplayMode } from './sidenav';\n\nexport interface DbxSidenavSidebarState {\n mode: SideNavDisplayMode;\n drawer: MatDrawerMode;\n open?: boolean;\n}\n\n/**\n * Navigation component that sits at the side of an app.\n */\n@Component({\n selector: 'dbx-sidenav',\n exportAs: 'sidenav',\n templateUrl: './sidenav.component.html'\n})\nexport class DbxSidenavComponent extends AbstractTransitionWatcherDirective implements OnInit, OnDestroy {\n private _screenMediaService = inject(DbxScreenMediaService);\n\n @Input()\n anchors?: Maybe<ClickableAnchorLinkTree[]>;\n\n @ViewChild(MatSidenav, { static: true })\n readonly sidenav!: MatSidenav;\n\n readonly mode$: Observable<SideNavDisplayMode> = this._screenMediaService.widthType$.pipe(\n distinctUntilChanged(),\n map((width) => {\n let mode!: SideNavDisplayMode;\n\n switch (width) {\n case 'micro':\n case 'small':\n mode = SideNavDisplayMode.MOBILE;\n break;\n case 'tablet':\n mode = SideNavDisplayMode.ICON;\n break;\n case 'large':\n case 'full':\n mode = SideNavDisplayMode.FULL;\n break;\n }\n\n return mode;\n }),\n shareReplay(1)\n );\n\n readonly disableBackdrop$: Observable<boolean> = this.mode$.pipe(\n map((x) => x !== SideNavDisplayMode.MOBILE),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly sizeClass$: Observable<string> = this.mode$.pipe(\n map((mode) => `dbx-sidenav-${mode}`),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly state$: Observable<DbxSidenavSidebarState> = this.mode$.pipe(\n map((mode) => {\n let drawer!: MatDrawerMode;\n let open!: boolean;\n\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n drawer = 'over';\n open = false;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n drawer = 'side';\n open = true;\n break;\n }\n\n return {\n mode,\n drawer,\n open\n };\n }),\n shareReplay(1)\n );\n\n readonly drawer$: Observable<MatDrawerMode> = this.state$.pipe(\n map((x) => x.drawer),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n private _watcherSub = new SubscriptionObject();\n private _stateSub = new SubscriptionObject();\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n this._stateSub.subscription = this.state$.subscribe((state) => {\n if (state.open != null) {\n this._toggleNav(state.open, true);\n }\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._watcherSub.destroy();\n this._stateSub.destroy();\n }\n\n protected updateForSuccessfulTransition(): void {\n this.closeNav();\n }\n\n closeNav(): void {\n this.toggleNav(false);\n }\n\n toggleNav(open?: boolean): void {\n this._toggleNav(open);\n }\n\n private _toggleNav(toggleOpen = !this.sidenav.opened, forced = false): void {\n this.state$.pipe(first()).subscribe(({ mode }) => {\n this.ngZone.run(() => {\n let open: Maybe<boolean>;\n\n if (!forced) {\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n open = toggleOpen;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n // Do nothing. Should be always open.\n break;\n }\n } else {\n open = toggleOpen;\n }\n\n if (open != null) {\n if (open) {\n this.sidenav.open();\n } else {\n this.sidenav.close();\n }\n }\n });\n });\n }\n}\n","<mat-sidenav-container class=\"dbx-sidenav\" [ngClass]=\"(sizeClass$ | async) ?? ''\">\n <mat-sidenav class=\"dbx-sidenav-nav\" [disableClose]=\"disableBackdrop$ | async\" [mode]=\"(drawer$ | async)!\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-anchor-list class=\"dbx-sidenav-anchor-list\" [anchors]=\"anchors\"></dbx-anchor-list>\n <span class=\"spacer\"></span>\n <ng-content select=\"[bottom]\"></ng-content>\n <div class=\"dbx-sidenav-nav-end\"></div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n@Component({\n selector: 'dbx-pagebar',\n templateUrl: './pagebar.component.html'\n})\nexport class DbxPagebarComponent {\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","<mat-toolbar class=\"dbx-pagebar\" [ngClass]=\"color ? 'dbx-bar-' + color : ''\">\n <ng-content select=\"[left]\"></ng-content>\n <span class=\"spacer\"></span>\n <ng-content select=\"[right]\"></ng-content>\n</mat-toolbar>\n","import { Component, Input, inject } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\n\nexport const DEFAULT_DBX_SIDENAV_MENU_ICON = 'view_sidebar';\n\n/**\n * Button used to interface with a parent sidenav.\n */\n@Component({\n selector: 'dbx-sidenav-button',\n template: `\n <button class=\"dbx-sidenav-button\" mat-icon-button *ngIf=\"showMenuButton$ | async\" (click)=\"toggleNav()\" aria-label=\"open sidenav button\">\n <mat-icon>{{ sidenavMenuIcon }}</mat-icon>\n </button>\n `\n})\nexport class DbxSidenavButtonComponent {\n readonly parent = inject(DbxSidenavComponent);\n readonly mode$ = this.parent.mode$;\n readonly showMenuButton$ = this.mode$.pipe(map((x) => x === SideNavDisplayMode.MOBILE));\n\n private _sidenavMenuIcon: string = DEFAULT_DBX_SIDENAV_MENU_ICON;\n\n toggleNav() {\n this.parent.toggleNav();\n }\n\n @Input()\n get sidenavMenuIcon() {\n return this._sidenavMenuIcon;\n }\n\n set sidenavMenuIcon(sidenavMenuIcon: Maybe<string>) {\n this._sidenavMenuIcon = sidenavMenuIcon || DEFAULT_DBX_SIDENAV_MENU_ICON;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxPagebarComponent } from '../../../layout/bar/pagebar.component';\n\n/**\n * Pre-configured pagebar used with DbxSidenavComponent.\n */\n@Component({\n selector: 'dbx-sidenav-pagebar',\n template: `\n <dbx-pagebar class=\"dbx-sidenav-pagebar\" [color]=\"color\">\n <span left>\n <dbx-sidenav-button [sidenavMenuIcon]=\"sidenavMenuIcon\"></dbx-sidenav-button>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content left></ng-content>\n </span>\n <ng-content right></ng-content>\n </dbx-pagebar>\n `\n})\nexport class DbxSidenavPagebarComponent extends DbxPagebarComponent {\n @Input()\n sidenavMenuIcon: Maybe<string>;\n}\n","import { BehaviorSubject, switchMap, shareReplay, map, of } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from '../../../layout/bar/bar';\nimport { SideNavDisplayMode } from './sidenav';\n\n/**\n * Pre-configured page used with DbxSidenavComponent.\n *\n * Can optionally be configured to only show the pagebar while in mobile mode.\n */\n@Component({\n selector: 'dbx-sidenav-page',\n template: `\n <div [ngClass]=\"(hidePagebar$ | async) ? 'dbx-pagebar-hide' : ''\">\n <dbx-sidenav-pagebar [sidenavMenuIcon]=\"sidenavMenuIcon\" [color]=\"color\">\n <ng-content left select=\"[navLeft]\"></ng-content>\n <ng-content select=\"[navRight]\"></ng-content>\n </dbx-sidenav-pagebar>\n <div class=\"dbx-content-page dbx-sidenav-page-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxSidenavPageComponent implements OnDestroy {\n readonly parent = inject(DbxSidenavComponent);\n\n @Input()\n sidenavMenuIcon: Maybe<string>;\n\n @Input()\n color?: Maybe<DbxBarColor>;\n\n private _mobileOnly = new BehaviorSubject<boolean>(false);\n\n readonly hidePagebar$ = this._mobileOnly.pipe(\n switchMap((mobileOnly) => (mobileOnly ? this.parent.mode$.pipe(map((x) => x !== SideNavDisplayMode.MOBILE)) : of(false))),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._mobileOnly.complete();\n }\n\n @Input()\n get mobileOnly(): boolean {\n return this._mobileOnly.value;\n }\n\n set mobileOnly(mobileOnly: boolean) {\n this._mobileOnly.next(mobileOnly);\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n/**\n * Acts as a wrapper for content distributed along a bar.\n */\n@Directive({\n selector: 'dbx-bar,[dbxBar]',\n host: {\n class: 'dbx-bar',\n '[class]': 'color ? (\"dbx-\" + color + \"-bg\") : \"dbx-bg\"'\n }\n})\nexport class DbxBarDirective {\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n/**\n * Acts as a divider between content and centers a label within a background.\n */\n@Component({\n selector: 'dbx-bar-header',\n template: `\n <dbx-bar [color]=\"color\">\n <mat-icon class=\"button-spacer\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"text\">{{ text }}</span>\n <ng-content></ng-content>\n </dbx-bar>\n `,\n host: {\n class: 'dbx-bar-header dbx-hint'\n }\n})\nexport class DbxBarHeaderComponent {\n @Input()\n text?: Maybe<string>;\n\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","import { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxBarDirective } from './bar.directive';\nimport { DbxBarHeaderComponent } from './bar.header.component';\nimport { DbxPagebarComponent } from './pagebar.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, MatToolbarModule, MatIconModule],\n declarations: [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent],\n exports: [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent]\n})\nexport class DbxBarLayoutModule {}\n","import { Directive, Input } from '@angular/core';\n\n/**\n * Section used to elevate content in a pre-configured manner.\n */\n@Directive({\n selector: 'dbx-content-elevate,[dbxContentElevate]',\n host: {\n class: 'd-block',\n '[class.dbx-content-elevate]': 'elevate'\n }\n})\nexport class DbxContentElevateDirective {\n @Input()\n elevate = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content,[dbxContent]',\n host: {\n class: 'd-block dbx-content'\n }\n})\nexport class DbxContentDirective {}\n","import { Directive, Input } from '@angular/core';\nimport { DbxThemeColor } from '../style/style';\n\n/**\n * Section used to wrap content in a border with internal padding.\n */\n@Directive({\n selector: 'dbx-content-border,[dbxContentBorder]',\n host: {\n class: 'd-block dbx-content-border',\n '[class]': `\"dbx-content-border-\" + color`\n }\n})\nexport class DbxContentBorderDirective {\n @Input()\n color: DbxThemeColor = 'background';\n}\n","import { Input, Directive } from '@angular/core';\n\nexport type DbxContentContainerPadding = 'none' | 'min' | 'small' | 'normal';\n\nexport type DbxContentContainerWidth = 'small' | 'medium' | 'large' | 'wide' | 'full';\n\n/**\n * Component that limits the max-width of the content.\n */\n@Directive({\n selector: 'dbx-content-container,[dbxContentContainer],.dbx-content-container',\n host: {\n class: 'd-block dbx-content-container',\n '[class]': `\"container-\" + grow + \" container-padding-\" + padding + \" container-top-padding-\" + topPadding`\n }\n})\nexport class DbxContentContainerDirective {\n @Input()\n grow: DbxContentContainerWidth = 'wide';\n\n @Input()\n padding: DbxContentContainerPadding = 'normal';\n\n @Input()\n topPadding: DbxContentContainerPadding = 'none';\n}\n","import { Directive, Input } from '@angular/core';\n\n/**\n * Component used to wrap content in a box with optionally elevation.\n */\n@Directive({\n selector: 'dbx-content-box, [dbxContentBox]',\n host: {\n class: 'd-block dbx-content-box',\n '[class.dbx-content-elevate]': 'elevate',\n '[class.dbx-content-box-wide]': 'wide'\n }\n})\nexport class DbxContentBoxDirective {\n @Input()\n elevate = true;\n\n @Input()\n wide = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content-page,[dbxContentPage]',\n host: {\n class: 'd-block dbx-content-page'\n }\n})\nexport class DbxContentPageDirective {}\n","import { Directive, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Component used to wrap content in a pit with a label.\n */\n@Directive({\n selector: 'dbx-content-pit, [dbxContentPit]',\n host: {\n class: 'd-block dbx-content-pit',\n '[class.dbx-content-pit-scrollable]': 'scrollable'\n }\n})\nexport class DbxContentPitDirective {\n @Input()\n scrollable?: Maybe<boolean>;\n}\n","import { DbxContentElevateDirective } from './content.elevate.directive';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxContentDirective } from './content.directive';\nimport { DbxContentBorderDirective } from './content.border.directive';\nimport { DbxContentContainerDirective } from './content.container.directive';\nimport { DbxContentBoxDirective } from './content.box.directive';\nimport { DbxContentPageDirective } from './content.page.directive';\nimport { DbxContentPitDirective } from './content.pit.directive';\n\nconst declarations = [\n //\n DbxContentDirective,\n DbxContentContainerDirective,\n DbxContentBorderDirective,\n DbxContentElevateDirective,\n DbxContentBoxDirective,\n DbxContentPageDirective,\n DbxContentPitDirective\n];\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [CommonModule],\n declarations,\n exports: declarations\n})\nexport class DbxContentLayoutModule {}\n","import { OnDestroy, Input, Directive, inject } from '@angular/core';\nimport { AbstractIfDirective } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, asArray, filterMaybeArrayValues } from '@dereekb/util';\nimport { shareReplay, BehaviorSubject, switchMap, distinctUntilChanged, map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\n\n/**\n * Structural directive that displays the content if the Sidenav has a specific sidenav size.\n */\n@Directive({\n selector: '[dbxIfSidenavDisplayMode]'\n})\nexport class DbxIfSidenavDisplayModeDirective extends AbstractIfDirective implements OnDestroy {\n private _sidenavModes = new BehaviorSubject<Set<SideNavDisplayMode>>(new Set([SideNavDisplayMode.NONE]));\n\n readonly dbxSidenavComponent = inject(DbxSidenavComponent);\n readonly show$ = this._sidenavModes.pipe(\n switchMap((modes) => {\n return this.dbxSidenavComponent.mode$.pipe(map((mode) => modes.has(mode)));\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Input('dbxIfSidenavDisplayMode')\n get modes() {\n return Array.from(this._sidenavModes.value);\n }\n\n set modes(modes: Maybe<ArrayOrValue<SideNavDisplayMode | string>>) {\n this._sidenavModes.next(new Set(filterMaybeArrayValues(asArray(modes as SideNavDisplayMode))));\n }\n\n override ngOnDestroy(): void {\n this._sidenavModes.complete();\n }\n}\n","import { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatListModule } from '@angular/material/list';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { DbxRouterAnchorListModule } from '../anchorlist/anchorlist.module';\nimport { DbxSidenavPagebarComponent } from './sidenav.pagebar.component';\nimport { DbxSidenavPageComponent } from './sidenav.page.component';\nimport { DbxBarLayoutModule } from '../../../layout/bar/bar.layout.module';\nimport { DbxButtonModule } from '../../../button/button.module';\nimport { DbxContentLayoutModule } from './../../../layout/content/content.layout.module';\nimport { DbxSidenavButtonComponent } from './sidenav.button.component';\nimport { DbxIfSidenavDisplayModeDirective } from './sidenav.ifdisplaymode.directive';\n\nconst declarations = [DbxIfSidenavDisplayModeDirective, DbxSidenavComponent, DbxSidenavButtonComponent, DbxSidenavPagebarComponent, DbxSidenavPageComponent];\n\n@NgModule({\n imports: [CommonModule, DbxBarLayoutModule, DbxRouterAnchorModule, DbxRouterAnchorListModule, DbxButtonModule, DbxContentLayoutModule, MatToolbarModule, MatButtonModule, MatIconModule, MatSidenavModule, MatListModule, MatDividerModule, UIRouterModule],\n declarations,\n exports: declarations\n})\nexport class DbxRouterSidenavModule {}\n","export * from './sidenav.component';\nexport * from './sidenav.module';\nexport * from './sidenav.button.component';\nexport * from './sidenav.pagebar.component';\nexport * from './sidenav.page.component';\nexport * from './sidenav.ifdisplaymode.directive';\nexport * from './sidenav';\n// export * from './side.item.component';\n// export * from './side.title.component';\n// export * from './side.title.content.component';\n","import { NgModule } from '@angular/core';\nimport { DbxRouterAnchorModule } from './anchor/anchor.module';\nimport { DbxRouterAnchorListModule } from './anchorlist/anchorlist.module';\nimport { DbxRouterListModule } from './list/list.module';\nimport { DbxRouterNavbarModule } from './navbar/navbar.module';\nimport { DbxRouterSidenavModule } from './sidenav/sidenav.module';\n\n@NgModule({\n exports: [DbxRouterAnchorModule, DbxRouterAnchorListModule, DbxRouterListModule, DbxRouterNavbarModule, DbxRouterSidenavModule]\n})\nexport class DbxRouterLayoutModule {}\n","import { Component } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\n\n/**\n * SegueAnchor implementation for Angular Router.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbxAngularRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {}\n","<a class=\"dbx-anchor-a\" [attr.target]=\"target$ | async\">\n <dbx-injection></dbx-injection>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxAngularRouterSegueAnchorComponent } from './anchor.component';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, UIRouterModule, DbxInjectionComponentModule],\n declarations: [DbxAngularRouterSegueAnchorComponent],\n exports: [DbxAngularRouterSegueAnchorComponent]\n})\nexport class DbxWebAngularRouterModule {\n static forRoot(): ModuleWithProviders<DbxWebAngularRouterModule> {\n return {\n ngModule: DbxWebAngularRouterModule,\n providers: [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbxAngularRouterSegueAnchorComponent\n }\n } as DbxRouterWebProviderConfig\n }\n ]\n };\n }\n}\n","import { Observable, filter } from 'rxjs';\nimport { Component } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\nimport { TransitionOptions } from '@uirouter/core';\n\n/**\n * SegueAnchor implementation for UIRouter.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbxUIRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {\n readonly uiRef$ = this.ref$.pipe(filter((x) => typeof x === 'string')) as Observable<string | null>;\n readonly uiOptions$ = this.refOptions$ as Observable<TransitionOptions | null>;\n}\n","<a class=\"dbx-anchor-a dbx-anchor-sref\" [attr.target]=\"target$ | async\" [uiSref]=\"(uiRef$ | async) ?? ''\" [uiParams]=\"refParams$ | async\" [uiOptions]=\"(uiOptions$ | async) ?? {}\" uiSrefActive=\"dbx-anchor-active\" uiSrefActiveEq=\"dbx-anchor-active-eq\">\n <dbx-injection [template]=\"template$ | async\"></dbx-injection>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxUIRouterSegueAnchorComponent } from './anchor.component';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, UIRouterModule, DbxInjectionComponentModule],\n declarations: [DbxUIRouterSegueAnchorComponent],\n exports: [DbxUIRouterSegueAnchorComponent]\n})\nexport class DbxWebUIRouterModule {\n static forRoot(): ModuleWithProviders<DbxWebUIRouterModule> {\n return {\n ngModule: DbxWebUIRouterModule,\n providers: [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbxUIRouterSegueAnchorComponent\n }\n } as DbxRouterWebProviderConfig\n }\n ]\n };\n }\n}\n","import { shareReplay, BehaviorSubject, map, Observable, combineLatest, distinctUntilChanged, startWith, first } from 'rxjs';\nimport { Directive, Input, OnDestroy, inject } from '@angular/core';\nimport { ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset } from '@dereekb/dbx-core';\nimport { filterUndefinedValues, firstValue, getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\n\n/**\n * Displays a button and menu for filtering partialPresets.\n */\n@Directive()\nexport abstract class AbstractDbxPartialPresetFilterMenuDirective<F> implements OnDestroy {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n private _partialPresets = new BehaviorSubject<ClickablePartialFilterPreset<F>[]>([]);\n\n readonly filter$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n\n readonly selectedPartialPresets$: Observable<ClickablePartialFilterPreset<F>[]> = combineLatest([this._partialPresets, this.filter$]).pipe(\n map(([partialPresets, selectedFilter]) => {\n const selectedPresets: ClickablePartialFilterPreset<F>[] = partialPresets.filter((x) => x.isActive(selectedFilter));\n return selectedPresets;\n }),\n distinctUntilChanged()\n );\n\n readonly firstSelectedPartialPreset$: Observable<Maybe<ClickablePartialFilterPreset<F>>> = this.selectedPartialPresets$.pipe(\n map((selectedPartialPresets) => firstValue(selectedPartialPresets)),\n distinctUntilChanged()\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = combineLatest([this._partialPresets, this.firstSelectedPartialPreset$]).pipe(\n map(([partialPresets, firstSelectedPartialPreset]) => {\n return partialPresets.map((x) => {\n return {\n ...x,\n selected: x === firstSelectedPartialPreset,\n onClick: () => {\n this.selectPartialPreset(x);\n }\n };\n });\n }),\n shareReplay(1)\n );\n\n @Input()\n get partialPresets(): ClickablePartialFilterPreset<F>[] {\n return this._partialPresets.value;\n }\n\n set partialPresets(partialPresets: ClickablePartialFilterPreset<F>[]) {\n this._partialPresets.next(partialPresets);\n }\n\n selectPartialPreset(preset: ClickablePartialFilterPreset<F>) {\n const presetValue = preset.partialPresetValue;\n\n if (presetValue == null || (typeof presetValue !== 'function' && objectHasNoKeys(presetValue))) {\n // set and then reset if the value is null or empty\n this.filterSourceDirective.setFilter((presetValue ?? {}) as F);\n this.filterSourceDirective.resetFilter();\n } else {\n const filter = getValueFromGetter(preset.partialPresetValue) as Partial<F>;\n\n this.filter$.pipe(first()).subscribe((currentFilter) => {\n const nextFilter = { ...currentFilter, ...filterUndefinedValues({ ...currentFilter, ...filter }, true) } as F;\n this.filterSourceDirective.setFilter(nextFilter);\n });\n }\n }\n\n ngOnDestroy(): void {\n this._partialPresets.complete();\n }\n}\n","import { BehaviorSubject } from 'rxjs';\nimport { Component, Input } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\n\n/**\n * Displays a button and menu for filtering partial preset values.\n */\n@Component({\n selector: 'dbx-partial-preset-filter-menu',\n templateUrl: './filter.preset.menu.component.html' // share the same template as the preset menu\n})\nexport class DbxPartialPresetFilterMenuComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {\n private _config = new BehaviorSubject<DbxPresetFilterMenuConfig>({});\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this._config, this.firstSelectedPartialPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this._config, this.firstSelectedPartialPreset$);\n\n @Input()\n get config(): DbxPresetFilterMenuConfig {\n return this._config.value;\n }\n\n set config(config: DbxPresetFilterMenuConfig) {\n this._config.next(config);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._config.complete();\n }\n}\n","import { Component } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\n\n@Component({\n selector: 'dbx-preset-partial-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchors$ | async\"></dbx-anchor-list>\n `\n})\nexport class DbxPartialPresetFilterListComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxFilterPopoverButtonComponent } from './filter.popover.button.component';\nimport { DbxPopoverInteractionModule } from '../popover/popover.module';\nimport { DbxFilterPopoverComponent } from './filter.popover.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxFilterWrapperComponent } from './filter.wrapper.component';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\nimport { DbxCoreFilterModule, DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPresetFilterListComponent } from './filter.preset.list.component';\nimport { DbxRouterAnchorListModule } from '../../router/layout/anchorlist/anchorlist.module';\nimport { DbxPresetFilterMenuComponent } from './filter.preset.menu.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxRouterAnchorModule } from '../../router';\nimport { DbxPartialPresetFilterMenuComponent } from './filter.partial.menu.component';\nimport { DbxPartialPresetFilterListComponent } from './filter.partial.list.component';\n\nconst declarations = [DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxFilterPopoverComponent, DbxFilterPopoverButtonComponent, DbxFilterWrapperComponent, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n DbxPopoverInteractionModule,\n DbxCoreFilterModule,\n DbxButtonModule,\n DbxRouterAnchorModule,\n DbxRouterAnchorListModule,\n DbxInjectionComponentModule,\n FlexLayoutModule,\n // Material\n MatMenuModule,\n MatIconModule,\n MatButtonModule\n ],\n declarations,\n exports: [...declarations, DbxCoreFilterModule]\n})\nexport class DbxFilterInteractionModule {}\n","import { ElementRef, Component, ViewChild, Input } from '@angular/core';\nimport { ResizedEvent } from 'angular-resize-event';\n\n/**\n * Wrapper of a block that is broken into two parts, with the bottom content's height\n * being set to 100% of the height minus the top's height.\n *\n * The block is made up of two divs, a top and a bottom. The top is assigned a static height, and the bottom is given the remainder.\n * The height is calculated from 100%.\n */\n@Component({\n selector: 'dbx-two-block',\n template: `\n <div #two class=\"dbx-two-block-content\">\n <div #top class=\"dbx-two-block-top\" (resized)=\"onResized($event)\">\n <ng-content select=\"[top]\"></ng-content>\n </div>\n <div #bottom class=\"dbx-two-block-bottom\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-two-block d-block',\n '[class]': '{ \"dbx-two-block-fixed-top\": fixedTop }'\n }\n})\nexport class DbxTwoBlocksComponent {\n /**\n * Whether or not the top bar should be fixed in place instead of scrolling with the bottom when content is too tall.\n */\n @Input()\n fixedTop = true;\n\n @ViewChild('two', { read: ElementRef, static: true })\n twoElement!: ElementRef;\n\n /*\n @ViewChild('top', { read: ElementRef, static: true })\n topElement!: ElementRef;\n\n @ViewChild('bottom', { read: ElementRef, static: true })\n bottomElement!: ElementRef;\n */\n\n onResized(event: ResizedEvent): void {\n const height = event.newRect.height;\n const element: HTMLElement = this.twoElement.nativeElement;\n element.style.setProperty('--dbx-two-block-top-height', `${height}px`);\n }\n}\n","import { DbxRouterAnchorModule } from '../../router';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxTwoBlocksComponent } from './two.block.component';\nimport { AngularResizeEventModule } from 'angular-resize-event';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, DbxRouterAnchorModule, AngularResizeEventModule],\n declarations: [DbxTwoBlocksComponent],\n exports: [DbxTwoBlocksComponent]\n})\nexport class DbxBlockLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Component that formats a card-box of content.\n */\n@Component({\n selector: 'dbx-card-box',\n template: `\n <div class=\"dbx-card-box\">\n <div class=\"dbx-section-header\">\n <div class=\"dbx-section-header-content\">\n <h4 class=\"dbx-section-header-content-title\">\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"header\" class=\"title-text\">{{ header }}</span>\n </h4>\n <span class=\"spacer\"></span>\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n </div>\n <div class=\"dbx-card-box-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxCardBoxComponent {\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n}\n","import { Component } from '@angular/core';\n\n/**\n * Component that wraps a card box and adds content padding.\n */\n@Component({\n selector: 'dbx-card-box-container',\n template: `\n <div class=\"dbx-card-box-container\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DbxCardBoxContainerComponent {}\n","import { MatIconModule } from '@angular/material/icon';\nimport { DbxCardBoxContainerComponent } from './card.box.container.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCardBoxComponent } from './card.box.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxCardBoxComponent, DbxCardBoxContainerComponent],\n exports: [DbxCardBoxComponent, DbxCardBoxContainerComponent]\n})\nexport class DbxCardBoxLayoutModule {}\n","import { Injectable, OnDestroy, Provider } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Subject, distinct, map } from 'rxjs';\nimport { SegueRef } from '@dereekb/dbx-core';\nimport { isMaybeNot, type Maybe } from '@dereekb/util';\n\nexport interface TwoColumnsState {\n /**\n * Whether or not to reverse the sizing.\n */\n reverseSizing: boolean;\n /**\n * Whether or not the right side should be shown.\n */\n showRight: boolean;\n /**\n * Whether or not there is any registered right content currently.\n */\n hasRight: boolean;\n /**\n * Whether or not to allow the left to fill up the screen when no right is shown.\n */\n fullLeft: boolean;\n /**\n * Optional ref to use with TwoColumns that use an sref for the back button.\n */\n backRef?: Maybe<SegueRef>;\n /**\n * Size of the view's total width in pixels.\n */\n totalWidth?: Maybe<number>;\n /**\n * Minimum right side size allowed before hiding the left content.\n */\n minRightWidth: number;\n}\n\nexport const DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH = 320;\n\nconst INITIAL_STATE: TwoColumnsState = {\n reverseSizing: false,\n showRight: false,\n hasRight: false,\n fullLeft: false,\n minRightWidth: DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH\n};\n\n@Injectable()\nexport class TwoColumnsContextStore extends ComponentStore<TwoColumnsState> implements OnDestroy {\n private readonly _back = new Subject<void>();\n\n constructor() {\n super({ ...INITIAL_STATE });\n }\n\n // MARK: Accessors\n readonly hideLeft$ = this.state$.pipe(\n map((x) => {\n /**\n * The right side is less-than or equal to half the total width when resizing, so we can use the total width to guess the best case current scenario.\n */\n const expectedRightWidth = (x.totalWidth ?? 0) / 2;\n const hideLeft = x.showRight && expectedRightWidth < x.minRightWidth;\n return hideLeft;\n })\n );\n\n /**\n * Pipes the current state of reverseSizing.\n */\n readonly reverseSizing$ = this.state$.pipe(map((x) => x.reverseSizing));\n\n /**\n * Pipes the current state of showRight.\n */\n readonly hasRight$ = this.state$.pipe(map((x) => x.showRight));\n\n /**\n * Pipes the current state of showRight.\n */\n readonly currentShowRight$ = this.state$.pipe(map((x) => x.showRight));\n\n /**\n * Pipes the current state of showRight and hasRight\n */\n readonly showRight$ = this.state$.pipe(map((x) => x.hasRight && x.showRight));\n\n /**\n * Convenience function for the showRight compliment.\n */\n readonly hideRight$ = this.showRight$.pipe(map((x) => !x));\n\n /**\n * Pipes the current state of fullLeft.\n */\n readonly fullLeft$ = this.state$.pipe(map((x) => x.fullLeft));\n\n /**\n * Whether or not to show the full left.\n */\n readonly showFullLeft$ = this.state$.pipe(map((x) => !(x.hasRight && x.showRight) && x.fullLeft));\n\n /**\n * Pipes the current backRef value.\n */\n readonly backRef$ = this.state$.pipe(\n map((x) => x.backRef),\n distinct()\n );\n\n /**\n * Emits back events.\n */\n readonly back$ = this._back.asObservable();\n\n // MARK: State Changes\n /**\n * Completely resets the store.\n */\n readonly reset = this.updater(() => ({ ...INITIAL_STATE }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setReverseSizing = this.updater((state, reverseSizing: Maybe<boolean>) => (isMaybeNot(reverseSizing) ? state : { ...state, reverseSizing }));\n\n /**\n * Changes the state to have right content or not.\n */\n readonly setHasRight = this.updater((state, hasRight: Maybe<boolean>) => (isMaybeNot(hasRight) ? state : { ...state, hasRight }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setShowRight = this.updater((state, showRight: Maybe<boolean>) => (isMaybeNot(showRight) ? state : { ...state, showRight }));\n\n /**\n * Sets the full left. If undefined is passed, no change occurs.\n */\n readonly setFullLeft = this.updater((state, fullLeft: Maybe<boolean>) => (isMaybeNot(fullLeft) ? state : { ...state, fullLeft }));\n\n /**\n * Sets the new back ref.\n */\n readonly setBackRef = this.updater((state, backRef: Maybe<SegueRef>) => ({ ...state, backRef }));\n\n /**\n * Sets the new total width.\n */\n readonly setTotalWidth = this.updater((state, totalWidth: Maybe<number>) => ({ ...state, totalWidth }));\n\n /**\n * Sets the new min right width.\n */\n readonly setMinRightWidth = this.updater((state, minRightWidth: Maybe<number>) => ({ ...state, minRightWidth: minRightWidth ?? DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH }));\n\n /**\n * Emits a back event.\n */\n back(): void {\n this._back.next();\n }\n\n // MARK: Internal\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._back.complete();\n }\n}\n\nexport function provideTwoColumnsContext(): Provider[] {\n return [\n {\n provide: TwoColumnsContextStore,\n useClass: TwoColumnsContextStore\n }\n ];\n}\n","import { Directive, EventEmitter, Output, OnInit, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with an DbxTwoColumnComponent to help respond to a \"back\" function.\n */\n@Directive({\n selector: '[dbxTwoColumnBack]'\n})\nexport class DbxTwoColumnBackDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n @Output('dbxTwoColumnBack')\n public back = new EventEmitter();\n\n ngOnInit(): void {\n this.sub = this.twoColumnsContextStore.back$.subscribe(() => this.back.emit());\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","import { ChangeDetectorRef, OnDestroy, ChangeDetectionStrategy, OnInit, Component, Input, ElementRef, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { Observable, BehaviorSubject, combineLatest } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\n\nexport interface DbxTwoColumnViewState {\n showRight: boolean;\n showFullLeft: boolean;\n hideLeftColumn: boolean;\n reverseSizing: boolean;\n inSectionPage: boolean;\n}\n\n/**\n * Responsive component meant to split a left and right column.\n *\n * The left column is smaller than the right column, which contains the primary content.\n *\n * Requires a TwoColumnsContextStore to be provided.\n */\n@Component({\n selector: 'dbx-two-column',\n templateUrl: './two.column.component.html',\n exportAs: 'columns',\n host: {\n class: 'dbx-two-column',\n '[class]': \"{ 'right-shown': v.showRight, 'full-left': v.showFullLeft,'hide-left-column': v.hideLeftColumn, 'two-column-reverse-sizing': v.reverseSizing, 'dbx-section-page-two': v.inSectionPage }\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxTwoColumnComponent extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private readonly _elementRef = inject(ElementRef);\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _view: DbxTwoColumnViewState = { showRight: false, showFullLeft: true, hideLeftColumn: false, reverseSizing: false, inSectionPage: false };\n\n private readonly _inSectionPage = new BehaviorSubject<boolean>(false);\n\n readonly reverseSizing$ = this.twoColumnsContextStore.reverseSizing$;\n readonly hideLeftColumn$: Observable<boolean> = this.twoColumnsContextStore.hideLeft$;\n readonly showRight$: Observable<boolean> = this.twoColumnsContextStore.showRight$;\n readonly showFullLeft$: Observable<boolean> = this.twoColumnsContextStore.showFullLeft$;\n\n readonly hideRight$: Observable<boolean> = this.twoColumnsContextStore.hideRight$;\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.sub = combineLatest([this.showRight$, this.showFullLeft$, this.hideLeftColumn$, this.reverseSizing$, this._inSectionPage]).subscribe(([showRight, showFullLeft, hideLeftColumn, reverseSizing, inSectionPage]: [boolean, boolean, boolean, boolean, boolean]) => {\n this._view = {\n showRight,\n showFullLeft,\n hideLeftColumn,\n reverseSizing,\n inSectionPage\n };\n\n safeMarkForCheck(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._inSectionPage.complete();\n }\n\n get v(): DbxTwoColumnViewState {\n return this._view;\n }\n\n @Input()\n set reverseSizing(reverseSizing: boolean) {\n this.twoColumnsContextStore.setReverseSizing(reverseSizing);\n }\n\n @Input()\n set inSectionPage(inSectionPage: boolean) {\n this._inSectionPage.next(inSectionPage);\n }\n\n onResized(event: ResizedEvent): void {\n const totalWidth = (this._elementRef.nativeElement as HTMLElement).clientWidth;\n this.twoColumnsContextStore.setTotalWidth(totalWidth);\n }\n}\n","<dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height left-column\">\n <div *ngIf=\"!v.hideLeftColumn && v.reverseSizing\" (resized)=\"onResized($event)\"></div>\n <ng-content select=\"[left]\"></ng-content>\n</dbx-content-container>\n<dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height right-column\" *ngIf=\"v.showRight\">\n <div *ngIf=\"v.hideLeftColumn || !v.reverseSizing\" (resized)=\"onResized($event)\"></div>\n <ng-content select=\"[right]\"></ng-content>\n</dbx-content-container>\n","import { Input, OnDestroy, Directive, OnInit, inject } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\nimport { provideTwoColumnsContext, TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Provides a dbxTwoColumnContextStore\n */\n@Directive({\n selector: '[dbxTwoColumnContext]',\n providers: provideTwoColumnsContext()\n})\nexport class DbxTwoColumnContextDirective implements OnInit, OnDestroy {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n private _showRight = new BehaviorSubject<Maybe<boolean>>(undefined);\n\n ngOnInit(): void {\n this.twoColumnsContextStore.setShowRight(this._showRight);\n }\n\n ngOnDestroy(): void {\n this._showRight.complete();\n }\n\n @Input()\n set showRight(showRight: Maybe<boolean | ''>) {\n this._showRight.next(Boolean(showRight));\n }\n}\n","import { OnInit, Directive, Input, OnDestroy, inject } from '@angular/core';\nimport { isNotNullOrEmptyString, type Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the full left to true.\n */\n@Directive({\n selector: '[dbxTwoColumnFullLeft]'\n})\nexport class DbxTwoColumnFullLeftDirective implements OnInit, OnDestroy {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n private _fullLeft = new BehaviorSubject<boolean>(true);\n\n @Input('dbxTwoColumnFullLeft')\n get fullLeft(): boolean {\n return this._fullLeft.value;\n }\n\n set fullLeft(fullLeft: Maybe<boolean | ''>) {\n if (isNotNullOrEmptyString(fullLeft)) {\n // only respond to boolean values\n this._fullLeft.next(Boolean(fullLeft));\n }\n }\n\n ngOnInit(): void {\n this._twoColumnsContextStore.setFullLeft(this._fullLeft);\n }\n\n ngOnDestroy(): void {\n this._fullLeft.complete();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Two Columns related component that sits at the top of the content bodies and wraps content.\n */\n@Component({\n selector: 'dbx-two-column-head',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-two-column-head',\n '[class.d-block]': 'block',\n '[class.full]': 'full'\n }\n})\nexport class DbxTwoColumnColumnHeadComponent {\n @Input()\n block?: boolean;\n\n @Input()\n full?: boolean;\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { asSegueRef, SegueRefOrSegueRefRouterLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the backRef of the TwoColumnsContextStore.\n */\n@Directive({\n selector: '[dbxTwoColumnSref]'\n})\nexport class DbxTwoColumnSrefDirective {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n @Input('dbxTwoColumnSref')\n public set ref(ref: Maybe<SegueRefOrSegueRefRouterLink | ''>) {\n const segueRef = ref ? asSegueRef(ref) : undefined;\n this._twoColumnsContextStore.setBackRef(segueRef);\n }\n}\n","import { AfterViewInit, OnDestroy, Component, Input, inject } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, map } from 'rxjs';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Optional responsive component that wraps content on the right side and shows a navigation bar.\n *\n * When rendered it will trigger the context to show left.\n */\n@Component({\n selector: 'dbx-two-column-right',\n templateUrl: './two.column.right.component.html',\n host: {\n class: 'dbx-two-column-right d-block'\n }\n})\nexport class DbxTwoColumnRightComponent implements AfterViewInit, OnDestroy {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n @Input()\n full: boolean = false;\n\n @Input()\n header?: Maybe<string>;\n\n @Input()\n block?: boolean;\n\n private _showBack = new BehaviorSubject<boolean>(true);\n\n readonly ref$: Observable<Maybe<ClickableAnchor>> = this.twoColumnsContextStore.backRef$;\n\n readonly showBack$: Observable<boolean> = combineLatest([\n this._showBack,\n this.ref$.pipe(map((x) => !x)) // TODO: Is this correct? Show back if ref is not defined?\n ]).pipe(map(([a, b]: [boolean, boolean]) => a && b));\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.twoColumnsContextStore.setHasRight(true);\n });\n }\n\n ngOnDestroy(): void {\n this._showBack.complete();\n this.twoColumnsContextStore.setHasRight(false);\n }\n\n @Input()\n get showBack(): boolean {\n return this._showBack.value;\n }\n\n set showBack(showBack: boolean) {\n this._showBack.next(showBack);\n }\n\n /**\n * Minimum right-side width allowed in pixels.\n */\n @Input()\n set minRightWidth(minRightWidth: Maybe<number | ''>) {\n this.twoColumnsContextStore.setMinRightWidth(typeof minRightWidth === 'number' ? minRightWidth : undefined);\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","<dbx-two-column-head [block]=\"block\" [full]=\"full\">\n <!-- Back Buttons -->\n <ng-container *ngIf=\"showBack$ | async\">\n <button mat-icon-button class=\"back-button\" (click)=\"backClicked()\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"ref$ | async\">\n <dbx-anchor [anchor]=\"ref$ | async\">\n <button mat-icon-button class=\"back-button\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </dbx-anchor>\n </ng-container>\n <span *ngIf=\"header\" class=\"right-nav-title\">{{ header }}</span>\n <span class=\"right-nav-spacer\"></span>\n <span class=\"spacer\"></span>\n <ng-content select=\"[nav]\"></ng-content>\n</dbx-two-column-head>\n<div class=\"dbx-two-column-right-content\">\n <ng-content></ng-content>\n</div>\n","import { Directive, OnInit, OnDestroy, inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxRouterService, isSegueRefActive } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { shareReplay, distinctUntilChanged, Subscription } from 'rxjs';\nimport { isNot } from '@dereekb/rxjs';\n\n/**\n * Used with a DbxTwoColumnComponent to control showing right when the current route is a child of the backRef.\n */\n@Directive({\n selector: '[dbxTwoColumnSrefShowRight]'\n})\nexport class DbxTwoColumnSrefShowRightDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n private readonly _dbxRouterService = inject(DbxRouterService);\n\n readonly showRight$ = this._twoColumnsContextStore.backRef$.pipe(\n // Only show right when the backRef is not exactly active\n isSegueRefActive({ dbxRouterService: this._dbxRouterService, activeExactly: true }),\n isNot(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n ngOnInit(): void {\n this.sub = this._twoColumnsContextStore.setShowRight(this.showRight$) as Subscription;\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxRouterAnchorModule } from '../../../router';\nimport { DbxContentLayoutModule } from '../../content';\nimport { DbxTwoColumnSrefDirective } from './two.column.sref.directive';\nimport { DbxTwoColumnComponent } from './two.column.component';\nimport { DbxTwoColumnColumnHeadComponent } from './two.column.head.component';\nimport { DbxTwoColumnRightComponent } from './two.column.right.component';\nimport { DbxTwoColumnBackDirective } from './two.column.back.directive';\nimport { DbxTwoColumnFullLeftDirective } from './two.column.full.left.directive';\nimport { DbxTwoColumnContextDirective } from './two.column.context.directive';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { DbxTwoColumnSrefShowRightDirective } from './two.column.sref.showright.directive';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxRouterAnchorModule, DbxContentLayoutModule, AngularResizeEventModule],\n declarations: [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadComponent, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective],\n exports: [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadComponent, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective]\n})\nexport class DbxTwoColumnLayoutModule {}\n","import { Component, Input, inject } from '@angular/core';\nimport { TwoColumnsContextStore } from '../two';\n\n/**\n * Pre-configured Two-columns view that only has a left view and shows full left.\n */\n@Component({\n selector: 'dbx-one-column',\n template: `\n <ng-container>\n <dbx-two-column [inSectionPage]=\"inSectionPage\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content left></ng-content>\n </dbx-two-column>\n </ng-container>\n `,\n exportAs: 'columns',\n providers: [TwoColumnsContextStore]\n})\nexport class DbxOneColumnComponent {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n constructor() {\n this.twoColumnsContextStore.setFullLeft(true);\n }\n\n @Input()\n inSectionPage = true;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from '../two';\nimport { DbxOneColumnComponent } from './one.column.component';\n\n@NgModule({\n imports: [CommonModule, DbxTwoColumnLayoutModule],\n declarations: [DbxOneColumnComponent],\n exports: [DbxOneColumnComponent]\n})\nexport class DbxOneColumnLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from './two';\nimport { DbxOneColumnLayoutModule } from './one';\n\n@NgModule({\n exports: [DbxOneColumnLayoutModule, DbxTwoColumnLayoutModule]\n})\nexport class DbxColumnLayoutModule {}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n/**\n * Toolbar-like component that wraps content. Generally sits at the top of a page.\n */\n@Component({\n selector: 'dbx-flag',\n template: `\n <div class=\"dbx-flag\">\n <mat-toolbar [color]=\"color\">\n <ng-content></ng-content>\n </mat-toolbar>\n </div>\n `\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbxFlagComponent {\n @Input()\n color: ThemePalette = 'accent';\n}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n/**\n * Pre-configured dbx-flag prompt to do something.\n */\n@Component({\n selector: 'dbx-flag-prompt',\n template: `\n <dbx-flag [color]=\"color\">\n <span class=\"dbx-flag-prompt\">{{ text }}</span>\n <span class=\"dbx-flag-spacer\"></span>\n <ng-content></ng-content>\n </dbx-flag>\n `\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbxFlagPromptComponent {\n @Input()\n color: ThemePalette = 'accent';\n\n @Input()\n text?: string;\n}\n","import { MatToolbarModule } from '@angular/material/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxFlagComponent } from './flag.component';\nimport { DbxFlagPromptComponent } from './flag.prompt.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, MatToolbarModule],\n declarations: [DbxFlagComponent, DbxFlagPromptComponent],\n exports: [DbxFlagComponent, DbxFlagPromptComponent]\n})\nexport class DbxFlagLayoutModule {}\n","import { ScreenMediaWidthType } from '../../screen/screen';\nimport { DbxScreenMediaService } from '../../screen/screen.service';\nimport { Directive, ChangeDetectorRef, Input, OnInit, OnDestroy, inject } from '@angular/core';\nimport { BehaviorSubject, map, shareReplay, distinctUntilChanged, delay } from 'rxjs';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Used to declare a dbxFlexGroup.\n */\n@Directive({\n selector: '[dbxFlexGroup]',\n host: {\n '[class.dbx-flex-group]': 'content',\n '[class.dbx-flex-group-break-to-column]': 'breakToColumn',\n '[class.dbx-flex-group-small]': 'small',\n '[class.dbx-flex-group-relative]': 'relative'\n }\n})\nexport class DbxFlexGroupDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n @Input()\n breakToColumn = false;\n\n @Input()\n content = true;\n\n @Input()\n relative = false;\n\n private _small = false;\n\n private readonly _breakpoint = new BehaviorSubject<ScreenMediaWidthType>('tablet');\n\n readonly isSmallScreen$ = this._dbxScreenMediaService.isBreakpointActive(this._breakpoint).pipe(\n map((x) => !x),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n get small(): boolean {\n return this._small;\n }\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.isSmallScreen$.pipe(delay(0)).subscribe((small) => {\n this._small = small;\n safeDetectChanges(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._breakpoint.complete();\n }\n\n @Input()\n set breakpoint(breakpoint: Maybe<ScreenMediaWidthType>) {\n this._breakpoint.next(breakpoint ?? 'tablet');\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { DbxFlexSize } from './flex';\n\n/**\n * Applies the proper dbx-flex size class based on the input.\n */\n@Directive({\n selector: '[dbxFlexSize]',\n host: {\n '[class]': '\"dbx-flex-\" + size'\n }\n})\nexport class DbxFlexSizeDirective {\n @Input('dbxFlexSize')\n size: DbxFlexSize = 1;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxFlexGroupDirective } from './flex.group.directive';\nimport { DbxFlexSizeDirective } from './flex.size.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxFlexGroupDirective, DbxFlexSizeDirective],\n exports: [DbxFlexGroupDirective, DbxFlexSizeDirective]\n})\nexport class DbxFlexLayoutModule {}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Section piece that puts an icon on the left, and arbitrary content on the right with a header.\n */\n@Component({\n selector: 'dbx-icon-item',\n template: `\n <div class=\"dbx-icon-item\">\n <div class=\"left\" *ngIf=\"icon\">\n <mat-icon>{{ icon }}</mat-icon>\n </div>\n <div class=\"right\">\n <h3 *ngIf=\"header\" class=\"dbx-icon-item-header\">{{ header }}</h3>\n <div class=\"right-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n `\n})\nexport class DbxIconItemComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxIconItemComponent } from './item.icon.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxIconItemComponent],\n exports: [DbxIconItemComponent]\n})\nexport class DbxItemLayoutModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Component that is centered for use within an empty list.\n */\n@Component({\n selector: 'dbx-list-empty-content',\n template: `\n <div class=\"dbx-list-empty-content\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DbxListEmptyContentComponent {}\n","import { Directive, inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\nimport { ReadableError, ReadableErrorWithCode } from '@dereekb/util';\n\n@Directive()\nexport abstract class AbstractDbxErrorWidgetComponent<T extends ReadableError = ReadableError> {\n readonly data = inject<ReadableErrorWithCode<T>>(DBX_INJECTION_COMPONENT_DATA);\n\n get code() {\n return this.data.code;\n }\n\n get message() {\n return this.data.message;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Combines a dbx-label and arbitrary content.\n */\n@Component({\n selector: 'dbx-label-block',\n template: `\n <span class=\"d-block dbx-label dbx-label-padded\">{{ header }}</span>\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-label-block'\n }\n})\nexport class DbxLabelBlockComponent {\n @Input()\n header?: Maybe<string>;\n}\n","import { Component } from '@angular/core';\nimport { ServerError, ServerErrorResponseData } from '@dereekb/util';\nimport { AbstractDbxErrorWidgetComponent } from './error.widget.directive';\n\n@Component({\n template: `\n <dbx-label-block header=\"Error Code\">{{ code }}</dbx-label-block>\n <dbx-label-block header=\"Error Message\">{{ message }}</dbx-label-block>\n <dbx-label-block header=\"Error Data\" *ngIf=\"serverErrorData\">\n <p class=\"dbx-json\">{{ serverErrorData | json }}</p>\n </dbx-label-block>\n `,\n host: {\n class: 'd-block dbx-error-default-error-widget dbx-content-container'\n }\n})\nexport class DbxErrorDefaultErrorWidgetComponent extends AbstractDbxErrorWidgetComponent {\n get serverErrorData(): ServerErrorResponseData | undefined {\n return (this.data as ServerError).data;\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeArrayValues, mapIterable, StringErrorCode } from '@dereekb/util';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\n\nexport const DEFAULT_ERROR_WIDGET_CODE = 'DEFAULT_ERROR_WIDGET';\nexport const UNKNOWN_ERROR_WIDGET_CODE = 'UNKNOWN_ERROR_WIDGET';\n\nexport interface DbxErrorWidgetEntry {\n /**\n * Error code to respond to.\n */\n readonly code: StringErrorCode;\n /**\n * Error widget component class to use.\n *\n * @deprecated use `widgetComponentClass` instead.\n */\n readonly componentClass?: Maybe<Type<unknown>>;\n /**\n * In-line error widget component class to use.\n *\n * This changes how it appears in dbx-error.\n *\n * If not provided, dbx-error will display the default output.\n */\n readonly errorComponentClass?: Maybe<Type<unknown>>;\n /**\n * Custom popup error widget component class to use.\n *\n * This changes how it appears in the dbx-error-widget-view.\n *\n * If not provided, the widget will display the default entry.\n */\n readonly widgetComponentClass?: Maybe<Type<unknown>>;\n}\n\nexport type DbxErrorWidgetEntryWithPopupComponentClass = Omit<DbxErrorWidgetEntry, 'popupComponentClass'> & { popupComponentClass: Type<unknown> };\n\n/**\n * Service used to register error widgets.\n *\n * It has two default widgets:\n *\n * - default: used in cases where an error has been registered by its error code\n * - unknown: used in cases where an error has an error code that has not been registered\n *\n * By default the DbxErrorDefaultErrorWidgetComponent is registered to both the default and unknown error entries.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxErrorWidgetService {\n private _entries = new Map<StringErrorCode, DbxErrorWidgetEntry>();\n\n constructor() {\n const defaultEntry = { widgetComponentClass: DbxErrorDefaultErrorWidgetComponent };\n this.registerDefaultEntry(defaultEntry);\n this.registerUnknownEntry(defaultEntry);\n }\n\n registerDefaultEntry(entry: Omit<DbxErrorWidgetEntry, 'errorComponentClass' | 'code'>) {\n return this.register({\n ...entry,\n errorComponentClass: null, // errorComponentClass is not allowed nor used for the default entry\n code: DEFAULT_ERROR_WIDGET_CODE\n });\n }\n\n registerUnknownEntry(entry: Omit<DbxErrorWidgetEntry, 'errorComponentClass' | 'code'>) {\n return this.register({\n ...entry,\n errorComponentClass: null, // errorComponentClass is not allowed nor used for the unknown entry\n code: UNKNOWN_ERROR_WIDGET_CODE\n });\n }\n\n register(entry: DbxErrorWidgetEntry, override: boolean = true): boolean {\n if (override || !this._entries.has(entry.code)) {\n this._entries.set(entry.code, {\n ...entry,\n widgetComponentClass: entry.widgetComponentClass ?? entry.componentClass\n });\n return true;\n } else {\n return false;\n }\n }\n\n // MARK: Get\n getErrorWidgetIdentifiers(): StringErrorCode[] {\n return Array.from(this._entries.keys());\n }\n\n getDefaultErrorWidgetEntry(): Maybe<DbxErrorWidgetEntry> {\n return this.getErrorWidgetEntry(DEFAULT_ERROR_WIDGET_CODE);\n }\n\n getUnknownErrorWidgetEntry(): Maybe<DbxErrorWidgetEntry> {\n return this.getErrorWidgetEntry(UNKNOWN_ERROR_WIDGET_CODE);\n }\n\n getErrorWidgetEntry(code: StringErrorCode): Maybe<DbxErrorWidgetEntry> {\n return this._entries.get(code);\n }\n\n getErrorWidgetEntries(codes: Iterable<StringErrorCode>): DbxErrorWidgetEntry[] {\n return filterMaybeArrayValues(mapIterable(codes ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { Observable, BehaviorSubject, map } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { Maybe, ReadableError, ReadableErrorWithCode } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorWidgetService } from './error.widget.service';\n\n/**\n * Used to display a corresponding error widget based on the input data.\n */\n@Component({\n selector: 'dbx-error-widget-view',\n template: `\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n `,\n host: {\n class: 'dbx-error-widget-view'\n }\n})\nexport class DbxErrorWidgetViewComponent implements OnDestroy {\n readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n\n private _errorWithCode = new BehaviorSubject<Maybe<ReadableErrorWithCode>>(undefined);\n\n readonly config$: Observable<Maybe<DbxInjectionComponentConfig>> = this._errorWithCode.pipe(\n map((error: Maybe<ReadableErrorWithCode>) => {\n let config: Maybe<DbxInjectionComponentConfig>;\n\n if (error != null) {\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code);\n\n if (entry != null) {\n const defaultEntry = this.dbxErrorWidgetService.getDefaultErrorWidgetEntry();\n const componentClass = entry.widgetComponentClass ?? defaultEntry?.widgetComponentClass;\n\n if (componentClass != null) {\n config = {\n componentClass,\n data: error\n };\n }\n } else {\n const unknownEntry = this.dbxErrorWidgetService.getUnknownErrorWidgetEntry();\n\n if (unknownEntry?.widgetComponentClass != null) {\n config = {\n componentClass: unknownEntry?.widgetComponentClass,\n data: error\n };\n }\n }\n }\n\n return config;\n })\n );\n\n ngOnDestroy(): void {\n this._errorWithCode.complete();\n }\n\n @Input()\n set error(error: Maybe<ReadableError>) {\n const config = error && error.code ? (error as ReadableErrorWithCode) : undefined;\n this._errorWithCode.next(config);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe, ReadableError } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-error-details',\n template: `\n <dbx-error-widget-view [error]=\"error\"></dbx-error-widget-view>\n `,\n host: {\n class: 'd-block dbx-error-details'\n }\n})\nexport class DbxErrorDetailsComponent {\n @Input()\n error?: Maybe<ReadableError>;\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { ReadableError } from '@dereekb/util';\nimport { AbstractPopoverDirective } from '../interaction/popover/abstract.popover.directive';\nimport { DbxPopoverKey } from '../interaction/popover/popover';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\n\nexport const DEFAULT_ERROR_POPOVER_KEY = 'error';\n\nexport interface DbxErrorPopoverConfig {\n origin: ElementRef;\n error: ReadableError;\n}\n\n@Component({\n template: `\n <dbx-popover-content class=\"dbx-error-popover\">\n <dbx-popover-header [header]=\"code\" icon=\"error\"></dbx-popover-header>\n <dbx-popover-scroll-content>\n <dbx-error-details [error]=\"error\"></dbx-error-details>\n </dbx-popover-scroll-content>\n </dbx-popover-content>\n `\n})\nexport class DbxErrorPopoverComponent extends AbstractPopoverDirective<void, ReadableError> {\n get error() {\n return this.popover.data as ReadableError;\n }\n\n get code() {\n return this.error.code;\n }\n\n static openPopover(popoverService: DbxPopoverService, { origin, error }: DbxErrorPopoverConfig, popoverKey?: DbxPopoverKey) {\n return popoverService.open({\n key: popoverKey ?? DEFAULT_ERROR_POPOVER_KEY,\n origin,\n isResizable: true,\n componentClass: DbxErrorPopoverComponent,\n data: error\n });\n }\n}\n","import { Component, ElementRef, EventEmitter, Input, OnDestroy, Output, ViewChild } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxErrorViewButtonEvent {\n readonly origin: ElementRef;\n}\n\n/**\n * The basic error view.\n */\n@Component({\n selector: 'dbx-error-view',\n templateUrl: './error.view.component.html',\n host: {\n class: 'dbx-error dbx-warn dbx-b'\n }\n})\nexport class DbxErrorViewComponent implements OnDestroy {\n @Input()\n icon = 'error';\n\n @Input()\n message?: Maybe<string>;\n\n /**\n * Whether or not the error button is disabled.\n */\n @Input()\n buttonDisabled?: Maybe<boolean>;\n\n @Output()\n readonly buttonClick = new EventEmitter<DbxErrorViewButtonEvent>();\n\n @ViewChild('buttonPopoverOrigin', { read: ElementRef })\n buttonOrigin!: ElementRef;\n\n constructor() {}\n\n ngOnDestroy(): void {\n this.buttonClick.complete();\n }\n\n clickError() {\n if (!this.buttonDisabled) {\n this.buttonClick.emit({\n origin: this.buttonOrigin\n });\n }\n }\n}\n","<button class=\"dbx-error-button\" [disabled]=\"buttonDisabled\" #buttonPopoverOrigin mat-icon-button (click)=\"clickError()\">\n <mat-icon>{{ icon }}</mat-icon>\n</button>\n<span class=\"dbx-error-message\" *ngIf=\"message\">{{ message }}</span>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { Maybe, ErrorInput, toReadableError, ReadableError, isDefaultReadableError, Configurable } from '@dereekb/util';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { AbstractSubscriptionDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorViewButtonEvent } from './error.view.component';\nimport { DbxErrorWidgetService } from './error.widget.service';\nimport { NgPopoverRef } from 'ng-overlay-container';\n\ntype DbxReadableErrorComponentViewType = 'none' | 'default' | 'custom';\n\ninterface DbxReadableErrorComponentState {\n readonly viewType: DbxReadableErrorComponentViewType;\n readonly isDefaultError?: Maybe<boolean>;\n readonly message?: Maybe<string>;\n readonly rawError?: Maybe<ErrorInput>;\n readonly error?: Maybe<ReadableError>;\n readonly customView?: Maybe<DbxInjectionComponentConfig>;\n}\n\n/**\n * Root error component that displays content related to an error.\n */\n@Component({\n selector: 'dbx-error',\n template: `\n <ng-container [ngSwitch]=\"viewType\">\n <ng-container *ngSwitchCase=\"'default'\">\n <dbx-error-view icon=\"error\" [message]=\"message\" [buttonDisabled]=\"isDefaultError\" (buttonClick)=\"openErrorPopover($event)\"></dbx-error-view>\n </ng-container>\n <ng-container *ngSwitchCase=\"'custom'\">\n <dbx-injection [config]=\"customView\"></dbx-injection>\n </ng-container>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxReadableErrorComponent extends AbstractSubscriptionDirective {\n readonly popoverService = inject(DbxPopoverService);\n readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n readonly cdRef = inject(ChangeDetectorRef);\n\n @Output()\n readonly popoverOpen = new EventEmitter<NgPopoverRef>();\n\n private _state: DbxReadableErrorComponentState = {\n viewType: 'none'\n };\n\n private readonly _iconOnly = new BehaviorSubject<Maybe<boolean>>(undefined);\n private readonly _inputError = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n readonly state$ = combineLatest([this._inputError, this._iconOnly.pipe(distinctUntilChanged())]).pipe(\n map(([rawError, iconOnly]) => {\n let state: DbxReadableErrorComponentState;\n\n if (rawError != null) {\n const error = toReadableError(rawError);\n const isDefaultError = iconOnly ? false : isDefaultReadableError(error);\n\n state = {\n viewType: 'default',\n rawError,\n error,\n message: (error as ReadableError)?.message || 'An error occured.',\n isDefaultError\n };\n\n if (iconOnly) {\n delete (state as Configurable<DbxReadableErrorComponentState>).message; // remove the message when in icon-only mode\n } else if (error) {\n let customView: Maybe<DbxInjectionComponentConfig>;\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code);\n const componentClass = entry?.errorComponentClass;\n\n if (componentClass != null) {\n customView = {\n componentClass,\n data: error\n };\n }\n\n // apply custom view\n if (customView) {\n state = {\n ...state,\n viewType: 'custom',\n customView\n };\n }\n }\n } else {\n state = {\n viewType: 'none'\n };\n }\n\n return state;\n }),\n shareReplay(1)\n );\n\n ngOnInit(): void {\n this.sub = this.state$.subscribe((state) => {\n this._state = state;\n this.cdRef.markForCheck();\n });\n }\n\n protected get viewType() {\n return this._state.viewType;\n }\n\n protected get isDefaultError() {\n return this._state.isDefaultError;\n }\n\n protected get message(): Maybe<string> {\n return this._state.message;\n }\n\n protected get customView(): Maybe<DbxInjectionComponentConfig> {\n return this._state.customView;\n }\n\n @Input()\n get error() {\n return this._state.rawError;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._inputError.next(error);\n }\n\n @Input()\n get iconOnly() {\n return this._iconOnly.value;\n }\n\n set iconOnly(iconOnly: Maybe<boolean>) {\n this._iconOnly.next(iconOnly);\n }\n\n protected openErrorPopover(event: DbxErrorViewButtonEvent) {\n const error = this._state.error;\n\n if (error != null) {\n const popoverRef = DbxErrorPopoverComponent.openPopover(this.popoverService, {\n origin: event.origin,\n error\n });\n\n this.popoverOpen.next(popoverRef);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxThemeColor } from '../layout/style/style';\n\nexport const DEFAULT_LOADING_PROGRESS_DIAMETER = 96;\n\n/**\n * Basic loading progress component.\n */\n@Component({\n selector: 'dbx-loading-progress',\n template: `\n <div class=\"loading-progress-view\">\n <ng-container [ngSwitch]=\"linear\">\n <mat-progress-bar *ngSwitchCase=\"true\" [mode]=\"bmode\" [color]=\"color\" [bufferValue]=\"bufferValue\" [value]=\"value\" style=\"margin: auto;\"></mat-progress-bar>\n <mat-progress-spinner *ngSwitchDefault [diameter]=\"diameter || 96\" [mode]=\"smode\" [color]=\"color\" [value]=\"value\" style=\"margin: auto;\"></mat-progress-spinner>\n </ng-container>\n <div *ngIf=\"text\" class=\"dbx-loading-progress-hint dbx-hint dbx-small\" [ngClass]=\"{ 'text-center': !linear }\">{{ text }}</div>\n </div>\n `\n})\nexport class DbxLoadingProgressComponent {\n private _diameter: number = DEFAULT_LOADING_PROGRESS_DIAMETER;\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n @Input()\n mode: ProgressBarMode | ProgressSpinnerMode = 'indeterminate';\n\n @Input()\n color: ThemePalette | DbxThemeColor = 'primary';\n\n @Input()\n value?: number;\n\n @Input()\n bufferValue: number = undefined as unknown as number; // mat-progress-bar typing prevents using undefined as a type\n\n @Input()\n get diameter(): number {\n return this._diameter;\n }\n\n set diameter(diameter: Maybe<number>) {\n this._diameter = diameter ?? DEFAULT_LOADING_PROGRESS_DIAMETER;\n }\n\n get bmode(): ProgressBarMode {\n return this.mode;\n }\n\n get smode(): ProgressSpinnerMode {\n return this.mode as ProgressSpinnerMode;\n }\n}\n","import { startWith, distinctUntilChanged, shareReplay, combineLatest, map, BehaviorSubject } from 'rxjs';\nimport { OnDestroy, Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ErrorInput, type Maybe } from '@dereekb/util';\nimport { checkNgContentWrapperHasContent } from '@dereekb/dbx-core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { DbxThemeColor } from '../layout/style/style';\n\n/**\n * DbxBasicLoadingComponent loading state.\n */\nexport enum LoadingComponentState {\n NONE = -1,\n LOADING = 0,\n CONTENT = 1,\n ERROR = 2\n}\n\n/**\n * Basic loading component.\n */\n@Component({\n selector: 'dbx-basic-loading',\n templateUrl: './basic-loading.component.html'\n})\nexport class DbxBasicLoadingComponent implements OnDestroy {\n private _loading = new BehaviorSubject<Maybe<boolean>>(undefined);\n private _show = new BehaviorSubject<boolean>(true);\n private _error = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n private _customErrorContent = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n private _customLoadingContent = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n\n readonly state$ = combineLatest([this._loading, this._show, this._error]).pipe(\n map(([loading, show, error]) => {\n let state: LoadingComponentState;\n\n if (error) {\n state = LoadingComponentState.ERROR;\n } else if (loading == null) {\n // If loading has not yet been defined and no error has occured, we're waiting for some input on loading or error.\n state = LoadingComponentState.NONE;\n } else if (loading || !show) {\n state = LoadingComponentState.LOADING;\n } else {\n state = LoadingComponentState.CONTENT;\n }\n\n return state;\n }),\n distinctUntilChanged(),\n startWith(LoadingComponentState.NONE),\n shareReplay(1)\n );\n\n readonly error$ = this._error.asObservable();\n\n readonly hasNoCustomError$ = this._customErrorContent.pipe(map((x) => !checkNgContentWrapperHasContent(x)));\n readonly hasNoCustomLoading$ = this._customLoadingContent.pipe(map((x) => !checkNgContentWrapperHasContent(x)));\n\n @Input()\n diameter?: Maybe<number>;\n\n @Input()\n mode: ProgressBarMode | ProgressSpinnerMode = 'indeterminate';\n\n @Input()\n color: ThemePalette | DbxThemeColor = 'primary';\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n linear: Maybe<boolean> = false;\n\n ngOnDestroy() {\n this._error.complete();\n this._loading.complete();\n this._show.complete();\n this._customErrorContent.complete();\n this._customLoadingContent.complete();\n }\n\n @Input()\n get show(): boolean {\n return this._show.value;\n }\n\n set show(show: Maybe<boolean>) {\n this._show.next(show ?? true);\n }\n\n @Input()\n get loading(): Maybe<boolean> {\n return this._loading.value;\n }\n\n set loading(loading: Maybe<boolean>) {\n this._loading.next(loading);\n }\n\n @Input()\n get error(): Maybe<ErrorInput> {\n return this._error.value;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._error.next(error);\n }\n\n @ViewChild('customError')\n set customErrorContent(customErrorContent: Maybe<ElementRef>) {\n setTimeout(() => {\n this._customErrorContent.next(customErrorContent);\n }, 0);\n }\n\n @ViewChild('customLoading')\n set customLoadingContent(customLoadingContent: Maybe<ElementRef>) {\n setTimeout(() => {\n this._customLoadingContent.next(customLoadingContent);\n }, 0);\n }\n}\n","<ng-container [ngSwitch]=\"state$ | async\">\n <ng-container *ngSwitchCase=\"0\">\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <!-- Content -->\n <ng-content></ng-content>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loadingTemplate>\n <dbx-loading-progress *ngIf=\"hasNoCustomLoading$ | async\" [mode]=\"mode\" [color]=\"color\" [text]=\"text\" [linear]=\"linear\" [diameter]=\"diameter\"></dbx-loading-progress>\n <div #customLoading>\n <ng-content select=\"[loading]\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #errorTemplate>\n <dbx-error *ngIf=\"hasNoCustomError$ | async\" [error]=\"error$ | async\"></dbx-error>\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-content select=\"[errorAction]\"></ng-content>\n</ng-template>\n","import { BehaviorSubject, shareReplay, Observable, distinctUntilChanged, map, switchMap, combineLatest, of } from 'rxjs';\nimport { OnDestroy, Component, Input, ChangeDetectorRef, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { ErrorInput, type Maybe } from '@dereekb/util';\nimport { tapSafeMarkForCheck } from '@dereekb/dbx-core';\nimport { DbxThemeColor } from '../layout/style/style';\n\nexport interface DbxLoadingComponentState {\n loading: boolean;\n error: Maybe<ErrorInput>;\n}\n\n/**\n * Loading View component that provides content sections for loading, error, and an error action.\n */\n@Component({\n selector: 'dbx-loading',\n template: `\n <dbx-basic-loading [show]=\"show\" [color]=\"color\" [text]=\"text\" [mode]=\"mode\" [linear]=\"linear\" [diameter]=\"diameter\" [error]=\"error$ | async\" [loading]=\"loading$ | async\">\n <ng-content loading select=\"[loading]\"></ng-content>\n <div class=\"dbx-loading-linear-done-padding\" *ngIf=\"linear && padding && !(loading$ | async)\"></div>\n <ng-content></ng-content>\n <ng-content error select=\"[error]\"></ng-content>\n <ng-content errorAction select=\"[errorAction]\"></ng-content>\n </dbx-basic-loading>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxLoadingComponent implements OnDestroy {\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _context = new BehaviorSubject<Maybe<LoadingContext>>(undefined);\n private _inputLoading = new BehaviorSubject<Maybe<boolean>>(true);\n private _inputError = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n readonly state$: Observable<DbxLoadingComponentState> = combineLatest([this._inputLoading, this._inputError, this._context.pipe(switchMap((x) => (x != null ? x.stream$ : of(undefined))))]).pipe(\n map(([inputLoading, inputError, loadingState]) => {\n if (loadingState) {\n return loadingState as DbxLoadingComponentState;\n } else {\n return {\n loading: inputLoading ?? false,\n error: inputError\n };\n }\n }),\n distinctUntilChanged((a, b) => a.loading === b.loading && a.error === b.error),\n tapSafeMarkForCheck(this.cdRef),\n shareReplay(1)\n );\n\n readonly loading$ = this.state$.pipe(\n map((x) => x.loading),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly error$ = this.state$.pipe(\n map((x) => x.error),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Input()\n show?: Maybe<boolean>;\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n mode: ProgressBarMode = 'indeterminate';\n\n @Input()\n color: ThemePalette | DbxThemeColor = 'primary';\n\n @Input()\n diameter?: Maybe<number>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n /**\n * Whether or not to add padding to the linear presentation when linear is complete. This prevents the linear bar from pushing content around.\n */\n @Input()\n padding?: Maybe<boolean>;\n\n ngOnDestroy() {\n this._context.complete();\n this._inputError.complete();\n this._inputLoading.complete();\n }\n\n @Input()\n get context(): Maybe<LoadingContext> {\n return this._context.value;\n }\n\n set context(context: Maybe<LoadingContext>) {\n this._context.next(context);\n }\n\n @Input()\n get loading(): Maybe<boolean> {\n return this._inputLoading.value;\n }\n\n set loading(loading: Maybe<boolean>) {\n this._inputLoading.next(loading ?? false);\n }\n\n @Input()\n get error(): Maybe<ErrorInput> {\n return this._inputError.value;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._inputError.next(error);\n }\n}\n","import { catchError, filter, exhaustMap, merge, map, Subject, switchMap, shareReplay, distinctUntilChanged, of, Observable, BehaviorSubject, first } from 'rxjs';\nimport { Component, Input, EventEmitter, Output, OnDestroy, ElementRef, HostListener, ChangeDetectorRef, Directive, inject } from '@angular/core';\nimport { DbxInjectionComponentConfig, tapDetectChanges } from '@dereekb/dbx-core';\nimport { SubscriptionObject, ListLoadingStateContextInstance, ListLoadingState, filterMaybe, isLoadingStateFinishedLoading, startWithBeginLoading } from '@dereekb/rxjs';\nimport { Maybe, Milliseconds } from '@dereekb/util';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\n\n/**\n * Direction the scroll was triggered moving.\n */\nexport type DbxListScrollDirectionTrigger = 'up' | 'down';\n\n/**\n * Used to trigger the loading of additional items.\n *\n * If an observable is returned it is used to throttle the loading of more items until it returns.\n */\nexport type DbxListLoadMoreHandler = () => Observable<void> | void;\n\n/**\n * DbxListComponent configuration.\n */\nexport interface DbxListConfig<T = unknown, V extends DbxListView<T> = DbxListView<T>> extends DbxInjectionComponentConfig<V> {\n /**\n * Whether or not to hide the list content when it is an empty list.\n */\n hideOnEmpty?: boolean;\n\n /**\n * Whether or not this list should scroll upward from the bottom, like a message list.\n */\n invertedList?: boolean;\n\n /**\n * Distance to scroll.\n */\n scrollDistance?: number;\n\n /**\n * Number of ms to throttle scrolling events.\n */\n throttle?: Milliseconds;\n\n /**\n * (Optional) onClick handler\n */\n onClick?: (value: T) => void;\n\n /**\n * (Optional) onSelection handler\n */\n onSelectionChange?: (selection: ListSelectionState<T>) => void;\n\n /**\n * (Optional) handler function to load more items.\n */\n loadMore?: DbxListLoadMoreHandler;\n\n /**\n * Default selection list value. If not defined, will default to 'view'.\n */\n defaultSelectionMode?: Maybe<DbxListSelectionMode>;\n}\n\n/**\n * Used to display a potentially infinitely scrollable list of content.\n *\n * This component is generally wrapped by another component that provides this one configuration.\n */\n@Component({\n selector: 'dbx-list',\n templateUrl: './list.component.html',\n host: {\n class: 'd-block dbx-list',\n '[class.dbx-list-padded]': 'padded'\n }\n})\nexport class DbxListComponent<T = unknown, V extends DbxListView<T> = DbxListView<T>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy {\n readonly cdRef = inject(ChangeDetectorRef);\n\n readonly DEFAULT_SCROLL_DISTANCE = 1.5;\n readonly DEFAULT_THROTTLE_SCROLL = 50;\n\n /**\n * Whether or not to add bottom padding to the list content.\n */\n @Input()\n padded = true;\n\n @Output()\n readonly contentScrolled = new EventEmitter<number>();\n\n private _content: Maybe<DbxListInternalContentDirective>;\n private _disabled = new BehaviorSubject<boolean>(false);\n private _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n\n private _loadMoreTrigger = new Subject<void>();\n private _scrollTrigger = new Subject<DbxListScrollDirectionTrigger>();\n private _config = new BehaviorSubject<Maybe<DbxListConfig<T, V>>>(undefined);\n\n private _loadMoreSub = new SubscriptionObject();\n private _onClickSub = new SubscriptionObject();\n private _disabledSub = new SubscriptionObject();\n private _selectionModeSub = new SubscriptionObject();\n private _onSelectionChangeSub = new SubscriptionObject();\n\n readonly context = new ListLoadingStateContextInstance<T, S>({ showLoadingOnNoValue: false });\n readonly isEmpty$ = this.context.isEmpty$;\n readonly isEmptyLoading$ = this.context.isEmptyLoading$;\n readonly isEmptyAndNotLoading$ = this.context.isEmptyAndNotLoading$;\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n readonly hideOnEmpty$: Observable<boolean> = this._config.pipe(\n filterMaybe(),\n map((x) => Boolean(x.hideOnEmpty)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly invertedList$: Observable<boolean> = this._config.pipe(\n filterMaybe(),\n map((x) => Boolean(x?.throttle)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly throttleScroll$: Observable<number> = this._config.pipe(\n map((x) => x?.throttle ?? this.DEFAULT_THROTTLE_SCROLL),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly scrollDistance$: Observable<number> = this._config.pipe(\n map((x) => x?.scrollDistance ?? this.DEFAULT_SCROLL_DISTANCE),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly scrollLoadMoreTrigger$ = this._config.pipe(\n switchMap((config) => {\n const loadNextDirection = config?.invertedList ? 'up' : 'down';\n return this._scrollTrigger.pipe(filter((x) => x === loadNextDirection));\n })\n );\n\n readonly loadMore$ = merge(this.scrollLoadMoreTrigger$, this._loadMoreTrigger);\n\n readonly injectedComponentConfig$: Observable<Maybe<DbxInjectionComponentConfig<V>>> = this._config.pipe(\n distinctUntilChanged(),\n map((config) => {\n let injectedComponentConfig: Maybe<DbxInjectionComponentConfig<V>>;\n\n if (config) {\n const { componentClass, init, onClick, onSelectionChange, loadMore, defaultSelectionMode = 'view' } = config;\n\n injectedComponentConfig = {\n componentClass: config.componentClass,\n injector: config.injector,\n init: (instance: V) => {\n // Synchronize disabled\n this._disabledSub.subscription = this.disabled$.subscribe((disabled) => instance.setDisabled(disabled));\n this._selectionModeSub.subscription = this.selectionMode$.subscribe((selectionMode) => instance.setSelectionMode(selectionMode ?? defaultSelectionMode));\n\n if (init) {\n init(instance);\n }\n\n instance.setListContext(this.context);\n\n if (loadMore) {\n this._loadMoreSub.subscription = this.loadMore$\n .pipe(\n // Throttle additional loading calls using exhaustMap until observable returns, if one is returned.\n exhaustMap(() => {\n const result = loadMore();\n let obs: Observable<void>;\n\n if (result) {\n obs = result.pipe(catchError(() => of()));\n } else {\n obs = of();\n }\n\n return obs;\n })\n )\n .subscribe();\n }\n\n if (onClick) {\n if (instance.clickValue) {\n this._onClickSub.subscription = instance.clickValue.subscribe(onClick);\n } else {\n console.error(`onClick() was passed to listConfig, but target class ${componentClass} has no clicked event emitter.`);\n }\n }\n\n if (onSelectionChange) {\n if (instance.selectionChange) {\n this._onSelectionChangeSub.subscription = instance.selectionChange.subscribe(onSelectionChange);\n } else {\n console.error(`onSelectionChange() was passed to listConfig, but target class ${componentClass} has no selectionChange event emitter.`);\n }\n }\n }\n };\n }\n\n return injectedComponentConfig;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly hideContent$: Observable<boolean> = this.context.stateChange$.pipe(\n switchMap(() =>\n this.context.state$.pipe(\n filter((x) => isLoadingStateFinishedLoading(x)),\n first(),\n startWithBeginLoading()\n )\n ),\n switchMap((state) => {\n if (state?.loading) {\n return of(true);\n } else {\n return this.hideOnEmpty$.pipe(\n switchMap((hide) => (hide === false ? of(false) : this.isEmpty$)),\n distinctUntilChanged(),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n }\n })\n );\n\n ngOnDestroy(): void {\n delete this._content; // remove parent-child relation.\n this._scrollTrigger.complete();\n this._loadMoreTrigger.complete();\n this._config.complete();\n this._disabled.complete();\n this._selectionMode.complete();\n\n this._onClickSub.destroy();\n this._loadMoreSub.destroy();\n this._onSelectionChangeSub.destroy();\n this._disabledSub.destroy();\n\n this.context.destroy();\n }\n\n @Input()\n get state$(): Observable<S> {\n return this.context.state$;\n }\n\n set state$(state$: Maybe<Observable<S>>) {\n this.context.setStateObs(state$);\n }\n\n @Input()\n set config(config: Maybe<DbxListConfig<T, V>>) {\n this._config.next(config);\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled.value;\n }\n\n set disabled(disabled: Maybe<boolean>) {\n this._disabled.next(disabled ?? false);\n }\n\n @Input()\n get selectionMode(): Maybe<DbxListSelectionMode> {\n return this._selectionMode.value;\n }\n\n set selectionMode(selectionMode: Maybe<DbxListSelectionMode>) {\n this._selectionMode.next(selectionMode);\n }\n\n getScrollPositionRelativeToBottom(): number {\n try {\n const element = this.nativeElement;\n\n // At max scroll, scrollHeight = scrollTop + clientHeight;\n const { scrollTop, scrollHeight, clientHeight } = element;\n return scrollHeight - (scrollTop + clientHeight);\n } catch (e) {\n return 0;\n }\n }\n\n jumpToBottom(): void {\n try {\n this.nativeElement.scrollTop = this.nativeElement.scrollHeight;\n } catch (err) {\n // do nothing.\n }\n }\n\n jumpToPositionRelativeToBottom(pos: number): void {\n try {\n const element = this.nativeElement;\n const { scrollHeight, clientHeight } = element;\n element.scrollTop = scrollHeight - (clientHeight + pos);\n } catch (err) {\n // do nothing.\n }\n }\n\n onScrollDown(): void {\n this._scrollTrigger.next('down');\n }\n\n onScrollUp(): void {\n this._scrollTrigger.next('up');\n }\n\n loadMore(): void {\n this._loadMoreTrigger.next();\n }\n\n // MARK: Internal\n get nativeElement() {\n return this.__content.elementRef.nativeElement;\n }\n\n get __content(): DbxListInternalContentDirective {\n return this._content as DbxListInternalContentDirective;\n }\n\n set __content(content: DbxListInternalContentDirective) {\n if (this._content == null) {\n this._content = content;\n } else {\n throw new Error('Attempted to set __content in list outside of initialization.');\n }\n }\n}\n\n/**\n * Used internally by DbxListComponent\n */\n@Directive({\n selector: '[dbxListInternalContent]',\n host: {\n class: 'd-block dbx-list-content',\n '[class.dbx-list-content-hidden]': 'hide'\n }\n})\nexport class DbxListInternalContentDirective {\n private readonly parent = inject(DbxListComponent);\n readonly elementRef = inject(ElementRef);\n\n @Input()\n hide: Maybe<boolean> = false;\n\n constructor() {\n this.parent.__content = this;\n }\n\n @HostListener('scroll', ['$event'])\n onScrollEvent($event: Event): void {\n const position = ($event.target as Element).scrollTop;\n this.parent.contentScrolled.emit(position);\n }\n}\n","<dbx-loading [context]=\"context\" [linear]=\"true\"></dbx-loading>\n<div dbxListInternalContent [hide]=\"hideContent$ | async\" infinite-scroll [infiniteScrollDistance]=\"(scrollDistance$ | async) ?? DEFAULT_SCROLL_DISTANCE\" [infiniteScrollUpDistance]=\"(scrollDistance$ | async) ?? DEFAULT_SCROLL_DISTANCE\" [infiniteScrollThrottle]=\"(throttleScroll$ | async) ?? DEFAULT_THROTTLE_SCROLL\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\" (scrolledUp)=\"onScrollUp()\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-injection [config]=\"injectedComponentConfig$ | async\"></dbx-injection>\n <ng-content select=\"[bottom]\"></ng-content>\n</div>\n<ng-content *ngIf=\"isEmptyAndNotLoading$ | async\" select=\"[empty]\"></ng-content>\n<ng-content *ngIf=\"isEmptyLoading$ | async\" select=\"[emptyLoading]\"></ng-content>\n","import { ListLoadingState, filterMaybe, ObservableOrValue, valueFromObservableOrValue } from '@dereekb/rxjs';\nimport { Observable, BehaviorSubject, map, shareReplay } from 'rxjs';\nimport { Output, EventEmitter, OnDestroy, Directive, Input } from '@angular/core';\nimport { DbxListConfig } from './list.component';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxListViewWrapper } from './list.wrapper';\n\nexport const DEFAULT_STATIC_LIST_DIRECTIVE_TEMPLATE = `\n<dbx-list [config]=\"config\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n</dbx-list>\n`;\n\n// MARK: Wrapper\nexport const DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE = `\n<dbx-list [state$]=\"state$\" [config]=\"config$ | async\" [disabled]=\"disabled\" [selectionMode]=\"selectionMode\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n <ng-content emptyLoading select=\"[emptyLoading]\"></ng-content>\n</dbx-list>\n`;\n\nexport type DbxListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListConfig<T, V>, 'onClick' | 'loadMore'>;\n\n@Directive()\nexport abstract class AbstractDbxListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxListWrapperConfig<T, V> = DbxListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy, DbxListViewWrapper<T, S> {\n private readonly _initialConfig = new BehaviorSubject<Maybe<ObservableOrValue<C>>>(undefined);\n\n readonly config$ = this._initialConfig.pipe(\n filterMaybe(),\n valueFromObservableOrValue(),\n map((x: C) => this._buildListConfig(x)),\n shareReplay(1)\n );\n\n @Input()\n disabled?: Maybe<boolean>;\n\n @Input()\n selectionMode?: Maybe<DbxListSelectionMode>;\n\n @Input()\n state$?: Maybe<Observable<S>>;\n\n @Output()\n readonly clickItem = new EventEmitter<T>();\n\n @Output()\n readonly loadMore = new EventEmitter<void>();\n\n constructor(initConfig: ObservableOrValue<C>) {\n this._initialConfig.next(initConfig);\n }\n\n ngOnDestroy(): void {\n this._initialConfig.complete();\n this.clickItem.complete();\n this.loadMore.complete();\n }\n\n protected _buildListConfig(config: C): DbxListConfig<T, V> {\n return {\n ...config,\n onClick: (x) => this.clickItem.emit(x),\n loadMore: () => this.loadMore.emit()\n };\n }\n}\n\n// MARK: Selection Wrapper\nexport type DbxSelectionListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListWrapperConfig<T, V>, 'onSelectionChange'>;\n\n@Directive()\nexport abstract class AbstractDbxSelectionListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxSelectionListWrapperConfig<T, V> = DbxSelectionListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> extends AbstractDbxListWrapperDirective<T, V, C, S> implements OnDestroy {\n @Output()\n selectionChange = new EventEmitter<ListSelectionState<T>>();\n\n override ngOnDestroy(): void {\n this.selectionChange.complete();\n }\n\n protected override _buildListConfig(config: C): DbxListConfig<T, V> {\n const result = super._buildListConfig(config);\n result.onSelectionChange = (x) => this.selectionChange.next(x);\n return result;\n }\n}\n","import { Directive, OnInit, inject } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxReadableErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to an ActionContext.\n */\n@Directive({\n selector: '[dbxActionError]'\n})\nexport class DbxActionErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly error = inject(DbxReadableErrorComponent, { host: true });\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n ngOnInit(): void {\n this.sub = this.source.error$.subscribe((error) => {\n this.error.error = error;\n });\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ReadableError, ServerError, ServerErrorResponse, UnauthorizedServerErrorResponse, build } from '@dereekb/util';\n\n/**\n * Converts the error response to a POJO.\n */\nexport function convertToPOJOServerErrorResponse(httpError: HttpErrorResponse | object): ServerError {\n const result: ServerErrorResponse | undefined = convertToServerErrorResponse(httpError);\n const pojo: ServerErrorResponse = build({\n base: Object.assign({}, result),\n build: (x) => {\n if (x.data) {\n try {\n const stringy = JSON.stringify(pojo.data);\n x.data = JSON.parse(stringy);\n } catch (e) {\n console.warn('convertToPOJOServerErrorResponse(): Non-serializable Error Data Detected. It is being removed.: ', pojo.data);\n x.data = undefined;\n }\n }\n }\n });\n\n return pojo;\n}\n\n/**\n * Converts an HTTP Error Response to a ServerErrorResponse type.\n *\n * @param error\n * @returns\n */\nexport function convertToServerErrorResponse(error: HttpErrorResponse | object): ServerErrorResponse | undefined {\n let result: ServerErrorResponse | undefined;\n\n if (error instanceof HttpErrorResponse) {\n const { status, error: data }: { status: number; error: ServerError } = error;\n\n const code = data.code;\n const message = data.message ?? error.statusText;\n\n switch (status) {\n case 401:\n result = new UnauthorizedServerErrorResponse({ message, data, code });\n break;\n default:\n result = new ServerErrorResponse({ code, status, data, message });\n break;\n }\n } else if (error) {\n result = new ServerErrorResponse({ message: (error as ReadableError).message, status: 0 });\n }\n\n return result;\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxReadableErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to a LoadingContext.\n *\n * The error from the context is given to the app error when available.\n */\n@Directive({\n selector: '[dbxLoadingError]'\n})\nexport class DbxLoadingErrorDirective extends AbstractSubscriptionDirective {\n readonly error = inject(DbxReadableErrorComponent, { host: true });\n\n /**\n * Sets a LoadingContext that is watched for the loading state.\n */\n @Input('dbxLoadingError')\n set context(context: LoadingContext) {\n let subscription;\n\n if (context) {\n subscription = context.stream$.subscribe((x) => {\n this.error.error = x.error;\n });\n }\n\n this.sub = subscription;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe, UnitedStatesAddressWithContact } from '@dereekb/util';\n\n// prettier-ignore\n@Component({\n selector: 'dbx-us-address',\n template: `\n <ng-container *ngIf=\"address\">\n <div *ngIf=\"address.name\" class=\"addr-name\">{{ address.name }}</div>\n <div *ngIf=\"address.phone\" class=\"addr-phone\">{{ address.phone }}</div>\n <div *ngIf=\"address.line1\" class=\"addr-line1\">{{ address.line1 }}</div>\n <div *ngIf=\"address.line2\" class=\"addr-line2\">{{ address.line2 }}</div>\n <div class=\"city-state-zip\">\n <span class=\"addr-city\">{{ address.city }}</span>\n <span *ngIf=\"address.state || address.zip\">, </span>\n <span class=\"addr-state\">{{ address.state }} </span>\n <span class=\"addr-zip\">{{ address.zip }}</span>\n </div>\n </ng-container>\n `,\n host: {\n class: 'dbx-us-address'\n }\n})\nexport class DbxUnitedStatesAddressComponent {\n @Input()\n address: Maybe<Partial<UnitedStatesAddressWithContact>>;\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-detail-block-header',\n template: `\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"header\" class=\"dbx-detail-block-header-label\">{{ header }}</span>\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-detail-block-header',\n '[class]': '{ \"dbx-detail-block-header-no-icon\": !icon }'\n }\n})\nexport class DbxDetailBlockHeaderComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Header and details offset with an icon.\n */\n@Component({\n selector: 'dbx-detail-block',\n template: `\n <dbx-detail-block-header [icon]=\"icon\" [header]=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </dbx-detail-block-header>\n <div class=\"dbx-detail-block-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-detail-block d-block'\n }\n})\nexport class DbxDetailBlockComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Icon spacer directive.\n */\n@Directive({\n selector: 'dbx-icon-spacer,[dbxIconSpacer]',\n host: {\n class: 'dbx-icon-spacer d-inline'\n }\n})\nexport class DbxIconSpacerDirective {}\n","import { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { BehaviorSubject, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport linkifyStr from 'linkify-string';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Used to \"linkify\" the input text.\n */\n@Component({\n selector: 'dbx-linkify',\n template: `\n <span [innerHTML]=\"linkifiedBody$ | async\"></span>\n `,\n host: {\n class: 'dbx-i dbx-linkify'\n }\n})\nexport class DbxLinkifyComponent implements OnDestroy {\n private readonly sanitizer = inject(DomSanitizer);\n\n private _text = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly linkifiedText$ = this._text.pipe(\n distinctUntilChanged(),\n map((x) =>\n x\n ? linkifyStr(x, {\n defaultProtocol: 'https',\n target: {\n url: '_blank'\n }\n })\n : undefined\n ),\n shareReplay(1)\n );\n\n readonly linkifiedBody$ = this.linkifiedText$.pipe(\n map((x) => {\n return x ? this.sanitizer.bypassSecurityTrustHtml(x) : undefined;\n }),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._text.complete();\n }\n\n @Input()\n get text(): Maybe<string> {\n return this._text.value;\n }\n\n set text(text: Maybe<string>) {\n this._text.next(text);\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n@Directive({\n selector: 'dbx-chip',\n host: {\n class: 'dbx-chip mat-standard-chip',\n '[class]': 'style'\n }\n})\nexport class DbxChipDirective {\n @Input()\n small?: Maybe<boolean>;\n\n @Input()\n block?: Maybe<boolean>;\n\n get style() {\n let style = this.small ? 'dbx-chip-small' : '';\n\n if (this.block) {\n style = style + ' dbx-chip-block';\n }\n\n return style;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface TextChip<T = unknown> {\n text: string;\n tooltip?: string;\n selected?: boolean;\n color?: 'primary' | 'accent' | 'warn' | undefined;\n data?: T;\n}\n\n@Component({\n selector: 'dbx-text-chips',\n template: `\n <mat-chip-listbox class=\"dbx-text-chips-listbox\" *ngIf=\"chips\">\n <mat-chip-option *ngFor=\"let chip of chips; trackBy: trackChipByText\" [selected]=\"chip.selected ?? defaultSelection\" [color]=\"chip.color\" [matTooltip]=\"chip.tooltip!\" matTooltipPosition=\"above\">\n {{ chip.text }}\n </mat-chip-option>\n </mat-chip-listbox>\n `\n})\nexport class DbxTextChipsComponent<T = unknown> {\n @Input()\n defaultSelection?: boolean;\n\n @Input()\n chips?: Maybe<TextChip<T>[]>;\n\n trackChipByText(index: number, chip: TextChip<T>) {\n return chip.text;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DbxUnitedStatesAddressComponent } from './address.component';\nimport { DbxDetailBlockComponent } from './detail.block.component';\nimport { DbxDetailBlockHeaderComponent } from './detail.block.header.component';\nimport { DbxIconSpacerDirective } from './icon.spacer.component';\nimport { DbxLabelBlockComponent } from './label.block.component';\nimport { DbxLinkifyComponent } from './linkify.component';\nimport { DbxChipDirective } from './text.chip.directive';\nimport { DbxTextChipsComponent } from './text.chips.component';\n\nconst declarations = [DbxUnitedStatesAddressComponent, DbxChipDirective, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxLabelBlockComponent, DbxLinkifyComponent, DbxTextChipsComponent, DbxIconSpacerDirective];\n\n@NgModule({\n imports: [CommonModule, MatChipsModule, MatTooltipModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxTextModule {}\n","import { Component, OnDestroy, inject } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { ErrorInput, MS_IN_MINUTE, TimerInstance, toggleTimerRunning } from '@dereekb/util';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { BehaviorSubject, from } from 'rxjs';\n\nexport type DbxErrorSnackbarConfig = Omit<MatSnackBarConfig<any>, 'data' | 'viewContainerRef'>;\n\nexport interface DbxErrorSnackbarData<T extends ErrorInput = ErrorInput> {\n /**\n * The error being passed to the error view.\n */\n readonly error: T;\n /**\n * Duration to show the error before closing while not interacting with the error view.\n *\n * While the error's info view is open the snackbar will not automatically be dismissed.\n */\n readonly duration?: number;\n}\n\n/**\n * A snackbar orientation for an error.\n */\n@Component({\n templateUrl: './error.snackbar.component.html'\n})\nexport class DbxErrorSnackbarComponent implements OnDestroy {\n readonly snackBarRef = inject(MatSnackBarRef<DbxErrorSnackbarComponent>);\n readonly data = inject<DbxErrorSnackbarData>(MAT_SNACK_BAR_DATA);\n\n private _allowAutoDismiss = Boolean(this.data.duration);\n\n private _popoverOpen = new BehaviorSubject<boolean>(false);\n private _autoDismissTimer = new TimerInstance(this.data.duration ?? MS_IN_MINUTE, this._allowAutoDismiss);\n\n private _popoverSub = new SubscriptionObject();\n private _popoverSyncSub = new SubscriptionObject(this._popoverOpen.subscribe((x) => toggleTimerRunning(this._autoDismissTimer, !x)));\n private _autoDismissSub = new SubscriptionObject(from(this._autoDismissTimer.promise).subscribe(() => this.dismiss()));\n\n get error() {\n return this.data.error;\n }\n\n ngOnInit(): void {\n if (!this._allowAutoDismiss) {\n this._popoverSyncSub.destroy();\n this._autoDismissSub.destroy();\n }\n }\n\n ngOnDestroy(): void {\n this._popoverOpen.complete();\n this._popoverSub.destroy();\n this._popoverSyncSub.destroy();\n this._autoDismissSub.destroy();\n this._autoDismissTimer.destroy();\n }\n\n static showErrorSnackbar(matSnackbar: MatSnackBar, error: ErrorInput, config?: DbxErrorSnackbarConfig) {\n matSnackbar.openFromComponent(DbxErrorSnackbarComponent, {\n ...config,\n duration: undefined, // do pass duration to matSnackbar. Component will handle it.\n panelClass: [...(config?.panelClass ?? []), 'dbx-error-snackbar'], // add the snackbar error class\n data: {\n error,\n duration: config?.duration\n }\n });\n }\n\n errorPopoverOpen(popover: NgPopoverRef) {\n this._popoverOpen.next(true);\n this._popoverSub.subscription = popover.afterClosed$.subscribe(() => {\n this._popoverOpen.next(false);\n });\n }\n\n dismiss() {\n return this.snackBarRef.dismiss();\n }\n}\n","<div class=\"dbx-error-snackbar-content\">\n <dbx-error [error]=\"error\" (popoverOpen)=\"errorPopoverOpen($event)\"></dbx-error>\n <div class=\"dbx-spacer\"></div>\n <button class=\"dbx-error-snackbar-content-button\" mat-icon-button aria-label=\"dismiss error\" (click)=\"dismiss()\">\n <mat-icon>close</mat-icon>\n </button>\n</div>\n","import { Injectable, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { ErrorInput, type Maybe } from '@dereekb/util';\nimport { DbxErrorSnackbarComponent, DbxErrorSnackbarConfig } from './error.snackbar.component';\n\n/**\n * Service used to show errors in the snackbar.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxErrorSnackbarService {\n readonly matSnackbar = inject(MatSnackBar);\n\n private _defaultConfig: DbxErrorSnackbarConfig = {\n politeness: 'polite',\n announcementMessage: 'An error has occurred',\n horizontalPosition: 'center',\n verticalPosition: 'bottom'\n };\n\n get defaultConfig() {\n return this._defaultConfig;\n }\n\n setDefaultConfig(defaultConfig: DbxErrorSnackbarConfig) {\n this._defaultConfig = defaultConfig;\n }\n\n showSnackbarError(error: ErrorInput, inputConfig?: Maybe<DbxErrorSnackbarConfig>) {\n const config = {\n ...inputConfig,\n ...this._defaultConfig\n };\n\n return DbxErrorSnackbarComponent.showErrorSnackbar(this.matSnackbar, error, config);\n }\n}\n","import { Directive, Input, OnInit, inject } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxErrorSnackbarService } from './error.snackbar.service';\nimport { Maybe, Milliseconds, toReadableError } from '@dereekb/util';\nimport { DbxErrorSnackbarConfig } from './error.snackbar.component';\nimport { filterMaybe } from '@dereekb/rxjs';\n\n/**\n * Context used for displaying an error from an ActionContext a snackbar when an ReadableErrorComponent\n */\n@Directive({\n selector: '[dbxActionSnackbarError]'\n})\nexport class DbxActionSnackbarErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly dbxErrorSnackbarService = inject(DbxErrorSnackbarService);\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n @Input('dbxActionSnackbarError')\n config?: Maybe<DbxErrorSnackbarConfig> | Milliseconds | '';\n\n ngOnInit(): void {\n this.sub = this.source.error$.pipe(filterMaybe()).subscribe((inputError) => {\n const error = toReadableError(inputError);\n const config = this.config ? (typeof this.config === 'number' ? { duration: this.config } : this.config) : undefined;\n this.dbxErrorSnackbarService.showSnackbarError(error, config);\n });\n }\n}\n","import { MatIconModule } from '@angular/material/icon';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DbxReadableErrorComponent } from './error.component';\nimport { DbxLoadingErrorDirective } from './error.loading.directive';\nimport { DbxActionErrorDirective } from './error.action.directive';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { DbxErrorDetailsComponent } from './error.details.component';\nimport { DbxPopoverInteractionContentModule } from '../interaction/popover/popover.content.module';\nimport { DbxErrorWidgetViewComponent } from './error.widget.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\nimport { DbxTextModule } from '../layout/text/text.module';\nimport { DbxErrorViewComponent } from './error.view.component';\nimport { DbxErrorSnackbarComponent } from './error.snackbar.component';\nimport { DbxActionSnackbarErrorDirective } from './error.snackbar.action.directive';\n\nconst declarations = [\n //\n DbxReadableErrorComponent,\n DbxLoadingErrorDirective,\n DbxActionErrorDirective,\n DbxActionSnackbarErrorDirective,\n DbxErrorViewComponent,\n DbxErrorSnackbarComponent,\n DbxErrorPopoverComponent,\n DbxErrorDetailsComponent,\n DbxErrorWidgetViewComponent,\n DbxErrorDefaultErrorWidgetComponent\n];\n\n@NgModule({\n imports: [CommonModule, DbxTextModule, DbxInjectionComponentModule, DbxPopoverInteractionContentModule, MatButtonModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxReadableErrorModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { convertToPOJOServerErrorResponse } from './error.api';\nimport { catchError, MonoTypeOperatorFunction, of } from 'rxjs';\nimport { ActionCreator, TypedAction } from '@ngrx/store/src/models';\nimport { ServerError } from '@dereekb/util';\n\nexport interface ServerErrorParams {\n error: ServerError;\n}\n\n/**\n * Converts the error response to ServerErrorParams.\n */\nexport function convertServerErrorParams(httpError: HttpErrorResponse | object): ServerErrorParams {\n const error: ServerError = convertToPOJOServerErrorResponse(httpError);\n return { error };\n}\n\n/**\n * Catches error server params and feeds them to an action that takes ServerErrorParams as a prop.\n */\nexport function catchErrorServerParams<E extends ServerErrorParams, T extends string>(action: ActionCreator<T, (props: E) => E & TypedAction<T>>, mapError: (error: ServerErrorParams) => E = (error) => error as E): MonoTypeOperatorFunction<E & TypedAction<T>> {\n return catchError((error: HttpErrorResponse | object) => {\n const serverErrorParams = convertServerErrorParams(error);\n const mappedError: E = mapError(serverErrorParams);\n const act = action(mappedError);\n return of(act);\n });\n}\n","import { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Directive, OnInit, OnDestroy, inject } from '@angular/core';\nimport { LoadingStateContextInstance } from '@dereekb/rxjs';\nimport { DbxLoadingComponent } from './loading.component';\n\n/**\n * Context used for linking a loadingComponent to an ActionContext by providing a LoadingContext.\n */\n@Directive({\n selector: '[dbxActionLoadingContext]'\n})\nexport class DbxActionLoadingContextDirective implements OnInit, OnDestroy {\n readonly loadingComponent = inject(DbxLoadingComponent, { host: true });\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n private _context = new LoadingStateContextInstance({ obs: this.source.loadingState$ });\n\n get context() {\n return this._context;\n }\n\n ngOnInit(): void {\n this.loadingComponent.context = this._context;\n }\n\n ngOnDestroy(): void {\n this._context.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxBasicLoadingComponent } from './basic-loading.component';\nimport { DbxLoadingProgressComponent } from './loading-progress.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { DbxLoadingComponent } from './loading.component';\nimport { DbxReadableErrorModule } from '../error';\nimport { DbxActionLoadingContextDirective } from './loading.action.directive';\n\nconst declarations = [DbxLoadingComponent, DbxBasicLoadingComponent, DbxLoadingProgressComponent, DbxActionLoadingContextDirective];\n\n@NgModule({\n imports: [CommonModule, DbxReadableErrorModule, MatProgressSpinnerModule, MatProgressBarModule],\n declarations,\n exports: [...declarations, MatProgressSpinnerModule, MatProgressBarModule]\n})\nexport class DbxLoadingModule {}\n","import { Observable } from 'rxjs';\nimport { ListLoadingState, ListLoadingStateContext } from '@dereekb/rxjs';\nimport { EventEmitter, forwardRef, Provider, TrackByFunction, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport type DbxListSelectionMode = 'select' | 'view';\n\nexport interface ListSelectionStateItem<T> {\n disabled?: boolean;\n selected?: boolean;\n itemValue: T;\n}\n\nexport interface ListSelectionState<T> {\n items: ListSelectionStateItem<T>[];\n}\n\n/**\n * Interface for a view that renders the items of a DbxList.\n */\nexport abstract class DbxListView<T, S extends ListLoadingState<T> = ListLoadingState<T>> {\n /**\n * Current disabled state.\n */\n abstract readonly disabled$: Observable<boolean>;\n /**\n * (Optional) current selection mode.\n */\n abstract readonly selectionMode$?: Observable<Maybe<DbxListSelectionMode>>;\n /**\n * Values of the list view.\n */\n abstract readonly values$: Observable<T[]>;\n /**\n * Track by configuration.\n */\n abstract trackBy?: TrackByFunction<T>;\n /**\n * (Optional) clicked event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract clickValue?: EventEmitter<T>;\n /**\n * (Optional) selection changed event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract selectionChange?: EventEmitter<ListSelectionState<T>>;\n /**\n * Sets the models input loading state context for the view to render from.\n */\n abstract setListContext(state: ListLoadingStateContext<T, S>): void;\n /**\n * Sets the disabled state of the list view.\n */\n abstract setDisabled(disabled: boolean): void;\n /**\n * Sets the selection mode of the list view.\n */\n abstract setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void;\n}\n\n// eslint-disable-next-line\nexport function provideDbxListView<V extends DbxListView<any>>(sourceType: Type<V>): Provider[] {\n // use of any here is allowed as typings are not relevant for providers\n return [\n {\n provide: DbxListView,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { forwardRef, InjectionToken, Provider, StaticProvider, Type } from '@angular/core';\nimport { ClickableAnchor, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { map, Observable, of } from 'rxjs';\nimport { DecisionFunction, type Maybe } from '@dereekb/util';\n\nexport const DBX_VALUE_LIST_VIEW_ITEM = new InjectionToken<unknown>('DbxValueListViewItem');\n\nexport interface DbxValueListItem<T, M = unknown> {\n itemValue: T;\n /**\n * Arbitrary meta details available to the meta component.\n */\n meta?: M;\n icon?: string;\n disabled?: boolean;\n rippleDisabled?: boolean;\n selected?: boolean;\n anchor?: Maybe<ClickableAnchor>;\n}\n\nexport type DbxValueListItemDecisionFunction<T> = DecisionFunction<DbxValueListItem<T>>;\n\n/**\n * Convenience function for mapping a DecisionFunction for a value to a DecisionFunction for a DbxValueListItem with the same value type.\n * @param decisionFunction\n * @returns\n */\nexport function dbxValueListItemDecisionFunction<T>(decisionFunction: DecisionFunction<T>): DbxValueListItemDecisionFunction<T> {\n return (item) => decisionFunction(item.itemValue);\n}\n\n/**\n * Special type used with values that contain all the items of DbxValueListItem internally.\n */\nexport type DbxValueAsListItem<T> = T & Omit<DbxValueListItem<DbxValueListItem<T>>, 'itemValue'>;\n\nexport interface AbstractDbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends DbxInjectionComponentConfig<V> {\n mapValuesToItemValues?(values: T[]): Observable<I[]>;\n metaConfig?: DbxInjectionComponentConfig<any>;\n}\n\nexport const DEFAULT_DBX_VALUE_LIST_CONFIG_MAP_VALUES = <T, I extends DbxValueListItem<T>>(itemValues: T[]) => of(itemValues.map((itemValue) => ({ itemValue })) as I[]);\n\nexport type DbxValueListItemConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> = I & {\n config: DbxInjectionComponentConfig<V>;\n metaConfig?: DbxInjectionComponentConfig<any>;\n};\n\nexport function mapValuesToValuesListItemConfigObs<T, I extends DbxValueListItem<T>, V = unknown>(listViewConfig: AbstractDbxValueListViewConfig<T, I, V>, itemValues: T[]): Observable<DbxValueListItemConfig<T, I, V>[]> {\n const makeObs = listViewConfig.mapValuesToItemValues ?? DEFAULT_DBX_VALUE_LIST_CONFIG_MAP_VALUES;\n return makeObs(itemValues).pipe(\n map((listItems: I[]) => {\n const listItemConfigs: DbxValueListItemConfig<T, I, V>[] = addConfigToValueListItems<T, I, V>(listViewConfig, listItems);\n return listItemConfigs;\n })\n );\n}\n\n/**\n * Adds config to the input value list items.\n *\n * @param listViewConfig\n * @param listItems\n * @returns\n */\nexport function addConfigToValueListItems<T, I extends DbxValueListItem<T>, V = unknown>(listViewConfig: AbstractDbxValueListViewConfig<T, I, V>, listItems: I[]): DbxValueListItemConfig<T, I, V>[] {\n const itemConfigs: DbxValueListItemConfig<T, I, V>[] = listItems.map((listItem: I) => {\n const anchor = listItem.anchor;\n\n listItem.disabled = listItem.disabled || anchor?.disabled;\n (listItem as DbxValueListItemConfig<T, I, V>).config = Object.assign({}, listViewConfig, {\n providers: [\n {\n provide: DBX_VALUE_LIST_VIEW_ITEM,\n useValue: listItem\n },\n ...(listViewConfig.providers ?? [])\n ] as StaticProvider[]\n });\n\n // only attach meta config if it is configured\n if (listViewConfig.metaConfig) {\n (listItem as DbxValueListItemConfig<T, I, V>).metaConfig = Object.assign({}, listViewConfig.metaConfig, {\n providers: [\n {\n provide: DBX_VALUE_LIST_VIEW_ITEM,\n useValue: listItem\n },\n ...(listViewConfig.metaConfig?.providers ?? [])\n ] as StaticProvider[]\n });\n }\n\n return listItem as DbxValueListItemConfig<T, I, V>;\n });\n\n return itemConfigs;\n}\n\n// MARK: ValueListView\nexport abstract class DbxValueListView<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n abstract readonly items$: Observable<I[]>;\n}\n\nexport function provideDbxValueListView<V extends DbxValueListView<unknown>>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxValueListView,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Maybe, maybeModifierMapToFunction, ModifierFunction } from '@dereekb/util';\nimport { OnDestroy, Input, Directive, inject } from '@angular/core';\nimport { filterMaybe, mapForEach } from '@dereekb/rxjs';\nimport { BehaviorSubject, distinctUntilChanged, shareReplay, combineLatest, switchMap, map, Observable, of } from 'rxjs';\nimport { DbxListView } from './list.view';\nimport { AbstractDbxValueListViewConfig, DbxValueListItem, DbxValueListItemConfig, DbxValueListView, mapValuesToValuesListItemConfigObs } from './list.view.value';\nimport { DbxValueListItemModifier } from './list.view.value.modifier';\n\n/**\n * Abstract list directive that takes in items and a AbstractDbxValueItemListViewConfig configuration.\n */\n@Directive()\nexport abstract class AbstractDbxValueListViewDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends AbstractDbxValueListViewConfig<T, I, V> = AbstractDbxValueListViewConfig<T, I, V>> implements DbxValueListView<T, I>, OnDestroy {\n readonly dbxListView = inject(DbxListView<T>);\n readonly dbxValueListViewModifier = inject(DbxValueListItemModifier<T, I>, { optional: true });\n\n private _config = new BehaviorSubject<Maybe<C>>(undefined);\n readonly config$ = this._config.pipe(filterMaybe(), distinctUntilChanged());\n\n readonly modifyFn$: Observable<Maybe<ModifierFunction<I>>> = this.dbxValueListViewModifier ? this.dbxValueListViewModifier.modifiers$.pipe(map(maybeModifierMapToFunction)) : of(undefined);\n\n readonly items$: Observable<DbxValueListItemConfig<T, I>[]> = combineLatest([this.config$, this.dbxListView.values$, this.modifyFn$]).pipe(\n switchMap(([listViewConfig, values, modifyFn]) => mapValuesToValuesListItemConfigObs<T, I, V>(listViewConfig, values).pipe(mapForEach(modifyFn)) as Observable<DbxValueListItemConfig<T, I>[]>),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._config.complete();\n }\n\n @Input()\n set config(config: Maybe<C>) {\n this._config.next(config);\n }\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.next(value);\n }\n}\n","import { CssClassesArray, Maybe, UniqueModel } from '@dereekb/util';\nimport { DbxValueListItem, DbxValueListItemConfig } from './list.view.value';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Provider, Type, forwardRef } from '@angular/core';\nimport { ObservableOrValue } from '@dereekb/rxjs';\n\n/**\n * A group of DbxValueListItem values, grouped by common data, name, and id.\n */\nexport interface DbxValueListItemGroup<G, T, I extends DbxValueListItem<T>, H = unknown, F = unknown> extends Omit<DbxValueListItem<any>, 'itemValue' | 'icon'>, Readonly<Required<UniqueModel>> {\n readonly data: G;\n readonly items: DbxValueListItemConfig<T, I>[];\n /**\n * (Optional) View configuration for the group's header.\n */\n readonly headerConfig?: Maybe<DbxInjectionComponentConfig<H>>;\n /**\n * (Optional) View configuration for the group's header.\n */\n readonly footerConfig?: Maybe<DbxInjectionComponentConfig<F>>;\n /**\n * Whether or not to show the group's items. Defaults to true.\n */\n readonly showGroupItems?: boolean;\n /**\n * Custom CSS classes to apply to all groups.\n */\n readonly cssClasses?: CssClassesArray;\n}\n\n/**\n * Function that generates an array of DbxValueListItemGroup values from a list of items.\n */\nexport type DbxValueListViewGroupValuesFunction<G, T, I extends DbxValueListItem<T>, H = unknown, F = unknown> = (items: DbxValueListItemConfig<T, I>[]) => ObservableOrValue<DbxValueListItemGroup<G, T, I, H, F>[]>;\n\nexport const defaultDbxValueListViewGroupValuesFunction = <T, I extends DbxValueListItem<T>>(items: DbxValueListItemConfig<T, I>[]) => {\n const data = {};\n const result: DbxValueListItemGroup<unknown, T, I> = {\n id: '_',\n data,\n items\n };\n\n return [result];\n};\n\n/**\n * Interface for a view that renders the items of a DbxList.\n */\nexport abstract class DbxValueListViewGroupDelegate<G, T, I extends DbxValueListItem<T> = DbxValueListItem<T>, H = unknown, F = unknown> {\n /**\n * Groups all input items into groups.\n */\n abstract readonly groupValues: DbxValueListViewGroupValuesFunction<G, T, I, H, F>;\n}\n\nexport function defaultDbxValueListViewGroupDelegate<T, I extends DbxValueListItem<T>>(): DbxValueListViewGroupDelegate<any, T, I> {\n const result = {\n groupValues: defaultDbxValueListViewGroupValuesFunction\n };\n\n return result;\n}\n\n// eslint-disable-next-line\nexport function provideDbxValueListViewGroupDelegate<D extends DbxValueListViewGroupDelegate<any, any, any, any>>(sourceType: Type<D>): Provider[] {\n // use of any here is allowed as typings are not relevant for providers\n return [\n {\n provide: DbxValueListViewGroupDelegate,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, TrackByFunction, inject } from '@angular/core';\nimport { shareReplay, map, Observable, BehaviorSubject, switchMap } from 'rxjs';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig, DbxValueListItemConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { AnchorType, anchorTypeForAnchor } from '@dereekb/dbx-core';\nimport { DbxListView } from './list.view';\nimport { Maybe, SpaceSeparatedCssClasses, spaceSeparatedCssClasses } from '@dereekb/util';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, defaultDbxValueListViewGroupDelegate } from './list.view.value.group';\nimport { asObservable } from '@dereekb/rxjs';\n\nexport interface DbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n emitAllClicks?: boolean;\n}\n\n/**\n * Renders a list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-view',\n template: `\n <dbx-list-view-content [items]=\"items$ | async\" [emitAllClicks]=\"emitAllClicks$ | async\"></dbx-list-view-content>\n `\n})\nexport class DbxValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListViewConfig<T, I, V> = DbxValueListViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {\n readonly emitAllClicks$ = this.config$.pipe(\n map((x) => x.emitAllClicks),\n shareReplay(1)\n );\n}\n\n/**\n * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-view-content',\n template: `\n <mat-nav-list [disabled]=\"disabled$ | async\">\n <ng-container *ngFor=\"let group of groups$ | async; trackBy: trackGroupByFunction\">\n <dbx-list-view-content-group [group]=\"group\"></dbx-list-view-content-group>\n </ng-container>\n </mat-nav-list>\n `,\n host: {\n class: 'dbx-list-view'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxListView = inject(DbxListView<T>);\n\n readonly _dbxListGroupDelegate: DbxValueListViewGroupDelegate<any, T, I> = inject<Maybe<DbxValueListViewGroupDelegate<any, T, I>>>(DbxValueListViewGroupDelegate, { optional: true }) ?? defaultDbxValueListViewGroupDelegate();\n\n private _items = new BehaviorSubject<Maybe<DbxValueListItemConfig<T, I>[]>>(undefined);\n\n readonly groups$: Observable<DbxValueListItemGroup<any, T, I>[]> = this._items.pipe(\n switchMap((items) => asObservable(this._dbxListGroupDelegate.groupValues(items ?? []))),\n shareReplay(1)\n );\n\n @Input()\n emitAllClicks?: Maybe<boolean>;\n\n readonly disabled$ = this.dbxListView.disabled$;\n\n readonly trackByFunction: TrackByFunction<DbxValueListItemConfig<T, I>>;\n readonly trackGroupByFunction: TrackByFunction<DbxValueListItemGroup<any, T, I>> = (_, v) => {\n return v.id; // track by the id\n };\n\n constructor() {\n const trackBy = this.dbxListView.trackBy;\n this.trackByFunction = trackBy ? (index: number, item: DbxValueListItemConfig<T, I>) => trackBy(index, item.itemValue) : () => undefined;\n }\n\n ngOnDestroy(): void {\n this._items.complete();\n }\n\n @Input()\n get items(): Maybe<DbxValueListItemConfig<T, I>[]> {\n return this._items.value;\n }\n\n set items(items: Maybe<DbxValueListItemConfig<T, I>[]>) {\n this._items.next(items);\n }\n\n onClickItem(item: I) {\n // do not emit clicks for disabled items.\n if (!item.disabled) {\n if (this.emitAllClicks || !item.anchor || anchorTypeForAnchor(item.anchor) === AnchorType.PLAIN) {\n // only emit clicks for items with no anchor, or plain anchors.\n this.onClickValue(item.itemValue);\n }\n }\n }\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.next(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return item.rippleDisabled || (!this.emitAllClicks && !item.anchor);\n }\n}\n\n/**\n * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-view-content-group',\n template: `\n <div class=\"dbx-list-view-group-content\">\n <div class=\"dbx-list-view-group-header\" *ngIf=\"headerConfig\">\n <dbx-injection [config]=\"headerConfig\"></dbx-injection>\n </div>\n <dbx-anchor *ngFor=\"let item of items; trackBy: trackByFunction\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\">\n <a mat-list-item class=\"dbx-list-view-item\" [disabled]=\"item.disabled\" [disableRipple]=\"rippleDisabledOnItem(item)\" (click)=\"onClickItem(item)\">\n <mat-icon matListItemIcon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n <span *ngIf=\"item.metaConfig\" matListItemMeta>\n <dbx-injection [config]=\"item.metaConfig\"></dbx-injection>\n </span>\n </a>\n </dbx-anchor>\n <div class=\"dbx-list-view-group-footer\" *ngIf=\"footerConfig\">\n <dbx-injection [config]=\"footerConfig\"></dbx-injection>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-list-view-group',\n '[class]': 'cssClasses'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListViewContentGroupComponent<G, T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxValueListViewContentComponent = inject(DbxValueListViewContentComponent<T>);\n readonly cdRef = inject(ChangeDetectorRef);\n\n private _group: Maybe<DbxValueListItemGroup<G, T, I>>;\n private _cssClasses: Maybe<SpaceSeparatedCssClasses>;\n\n get cssClasses() {\n return this._cssClasses;\n }\n\n get items(): Maybe<DbxValueListItemConfig<T, I>[]> {\n return this._group?.items;\n }\n\n get headerConfig() {\n return this._group?.headerConfig;\n }\n\n get footerConfig() {\n return this._group?.footerConfig;\n }\n\n readonly disabled$: Observable<boolean> = this.dbxValueListViewContentComponent.disabled$;\n readonly trackByFunction: TrackByFunction<DbxValueListItemConfig<T, I>> = this.dbxValueListViewContentComponent.trackByFunction;\n\n @Input()\n get group() {\n return this._group;\n }\n\n set group(group: Maybe<DbxValueListItemGroup<G, T, I>>) {\n this._group = group;\n this._cssClasses = spaceSeparatedCssClasses(group?.cssClasses);\n this.cdRef.markForCheck();\n }\n\n onClickItem(item: I) {\n this.dbxValueListViewContentComponent.onClickItem(item);\n }\n\n onClickValue(value: T) {\n this.dbxValueListViewContentComponent.onClickValue(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return this.dbxValueListViewContentComponent.rippleDisabledOnItem(item);\n }\n}\n","import { Observable, map, shareReplay, distinctUntilChanged, of } from 'rxjs';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { DbxListSelectionMode, ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxValueListViewContentComponent } from './list.view.value.component';\n\nexport interface DbxSelectionValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n readonly multiple?: boolean;\n}\n\n/**\n * Renders a selection list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-selection-list-view',\n template: `\n <dbx-selection-list-view-content [selectionMode]=\"selectionMode$ | async\" [multiple]=\"multiple$ | async\" [items]=\"items$ | async\"></dbx-selection-list-view-content>\n `\n})\nexport class DbxSelectionValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewDirective<T, I, V, DbxSelectionValueListViewConfig<T, I, V>> {\n readonly selectionMode$: Observable<DbxListSelectionMode> = (this.dbxListView.selectionMode$ ?? of('select' as DbxListSelectionMode)).pipe(\n map((x) => x ?? 'select'),\n distinctUntilChanged()\n );\n readonly multiple$ = this.config$.pipe(\n map((x) => x.multiple ?? true),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n\n/**\n * Content view for a DbxSelectionValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-selection-list-view-content',\n template: `\n <ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"'view'\">\n <dbx-list-view-content [items]=\"items\"></dbx-list-view-content>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <mat-selection-list [disabled]=\"disabled$ | async\" [multiple]=\"multiple\" (selectionChange)=\"matSelectionChanged($event)\">\n <mat-list-option class=\"dbx-list-view-item\" *ngFor=\"let item of items; trackBy: trackByFunction\" [selected]=\"item.selected\" [disabled]=\"item.disabled\" [value]=\"item.itemValue\" (click)=\"onClickValue(item.itemValue)\">\n <mat-icon matListItemIcon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n </mat-list-option>\n </mat-selection-list>\n </ng-container>\n </ng-container>\n `,\n host: {\n class: 'dbx-list-view dbx-selection-list-view'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSelectionValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> {\n @Input()\n multiple?: Maybe<boolean>;\n\n @Input()\n selectionMode: Maybe<DbxListSelectionMode>;\n\n constructor() {\n super();\n if (!this.dbxListView.selectionChange) {\n throw new Error('Parent dbxListView to DbxSelectionValueListViewComponent has no selectionChange emitter.');\n }\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n (this.dbxListView.selectionChange as EventEmitter<ListSelectionState<T>>).next({\n // asserted in constructor\n items\n });\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from './list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\n\nexport const DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY = 'disable_ripple_anchor';\n\nexport const DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.rippleDisabled || !item.anchor || (!item.anchor.ref && !item.anchor.url && !item.anchor.onClick);\n};\n\n@Directive({\n selector: '[dbxListItemDisableRippleModifier]'\n})\nexport class DbxListItemDisableRippleModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _disableRippleForItem = new BehaviorSubject<DbxValueListItemDecisionFunction<T>>(DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._disableRippleForItem.pipe(\n map((disableRippleForItem) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n if (disableRippleForItem(x)) {\n x.rippleDisabled = true;\n }\n }\n };\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._disableRippleForItem.complete();\n }\n\n @Input('dbxListItemDisableRippleModifier')\n set disableRippleForItem(disableRippleForItem: Maybe<DbxValueListItemDecisionFunction<T>>) {\n this._disableRippleForItem.next(disableRippleForItem ?? DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION);\n }\n}\n","import { ChangeDetectionStrategy, Component, Directive, Input, OnDestroy, inject } from '@angular/core';\nimport { shareReplay, map, BehaviorSubject, combineLatest, of, Observable } from 'rxjs';\nimport { DbxValueListItem } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { Maybe, mergeObjects } from '@dereekb/util';\nimport { DbxValueListViewContentComponent, DbxValueListViewConfig } from './list.view.value.component';\n\nexport interface DbxValueListGridViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends DbxValueListViewConfig<T, I, V> {\n grid?: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>;\n}\n\n/**\n * Renders a grid view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-grid-view',\n template: `\n <dbx-list-grid-view-content [grid]=\"grid$ | async\" [items]=\"items$ | async\" [emitAllClicks]=\"emitAllClicks$ | async\"></dbx-list-grid-view-content>\n `\n})\nexport class DbxValueListGridViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListGridViewConfig<T, I, V> = DbxValueListGridViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {\n readonly grid$ = this.config$.pipe(map((x) => x.grid));\n readonly emitAllClicks$ = this.config$.pipe(\n map((x) => x.emitAllClicks),\n shareReplay(1)\n );\n}\n\nexport interface DbxValueListGridItemViewGridSizeConfig {\n /**\n * Gap size in %, px, vw, vh\n */\n gap: string;\n /**\n * Columns configuration.\n *\n * Example: repeat(auto-fill, minmax(200px, 1fr))\n */\n columns: string;\n}\n\nexport const DEFAULT_LIST_GRID_SIZE_CONFIG: DbxValueListGridItemViewGridSizeConfig = {\n columns: 'repeat(auto-fill, minmax(320px, 1fr))',\n gap: '8px'\n};\n\n/**\n * Optional parent directive used to control grid size.\n */\n@Directive({\n selector: '[dbxListGridSize]'\n})\nexport class DbxValueListGridSizeDirective implements OnDestroy {\n private _gridSize = new BehaviorSubject<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined);\n\n readonly gridSize$ = this._gridSize.asObservable();\n\n @Input('dbxListGridSize')\n get gridSize(): Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>> {\n return this._gridSize.value;\n }\n\n set gridSize(gridSize: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>) {\n if (gridSize) {\n this._gridSize.next(gridSize);\n }\n }\n\n ngOnDestroy(): void {\n this._gridSize.complete();\n }\n}\n\n/**\n * Content view for a DbxValueListGridView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-grid-view-content',\n template: `\n <div [gdGap]=\"gap$ | async\" [gdColumns]=\"columns$ | async\">\n <dbx-anchor *ngFor=\"let item of items; trackBy: trackByFunction\" matRipple [matRippleDisabled]=\"rippleDisabledOnItem(item)\" class=\"dbx-list-grid-view-item\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\" (click)=\"onClickItem(item)\">\n <div dbx-injection [config]=\"item.config\"></div>\n </dbx-anchor>\n </div>\n `,\n host: {\n class: 'dbx-list-grid-view'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListGridViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> implements OnDestroy {\n private readonly _gridSizeOverride = inject(DbxValueListGridSizeDirective, { optional: true });\n private readonly _defaultGrid = new BehaviorSubject<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined);\n\n readonly grid$: Observable<DbxValueListGridItemViewGridSizeConfig> = combineLatest([this._defaultGrid, this._gridSizeOverride?.gridSize$ ?? of(undefined)]).pipe(\n map(([defaultGrid, overrideGrid]) => {\n const grid = mergeObjects<DbxValueListGridItemViewGridSizeConfig>([DEFAULT_LIST_GRID_SIZE_CONFIG, defaultGrid, overrideGrid]);\n return grid as DbxValueListGridItemViewGridSizeConfig;\n }),\n shareReplay(1)\n );\n\n readonly gap$ = this.grid$.pipe(map((x) => x.gap));\n readonly columns$ = this.grid$.pipe(map((x) => x.columns));\n\n @Input()\n set grid(grid: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>) {\n this._defaultGrid.next(grid);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._defaultGrid.complete();\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from './list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\n\nexport const DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY = 'is_selected_item_modifier';\n\nexport const DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.selected ?? false;\n};\n\n@Directive({\n selector: '[dbxListItemIsSelectedModifier]'\n})\nexport class DbxListItemIsSelectedModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _listItemIsSelected = new BehaviorSubject<DbxValueListItemDecisionFunction<T>>(DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._listItemIsSelected.pipe(\n map((listItemIsSelected) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.selected = listItemIsSelected(x);\n }\n };\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._listItemIsSelected.complete();\n }\n\n @Input('dbxListItemIsSelectedModifier')\n set listItemIsSelected(listItemIsSelected: Maybe<DbxValueListItemDecisionFunction<T>>) {\n this._listItemIsSelected.next(listItemIsSelected ?? DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION);\n }\n}\n","import { Directive, Input, InjectionToken, Component, ChangeDetectionStrategy, StaticProvider, inject } from '@angular/core';\nimport { DbxValueListItem, DbxValueListItemConfig } from './list.view.value';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, DbxValueListViewGroupValuesFunction, provideDbxValueListViewGroupDelegate } from './list.view.value.group';\nimport { BehaviorSubject, map } from 'rxjs';\nimport { Building, Maybe, PrimativeKey, compareWithMappedValuesFunction, makeValuesGroupMap } from '@dereekb/util';\nimport { DbxListTitleGroupData, DbxListTitleGroupTitleDelegate } from './list.view.value.group.title';\n\nexport const DBX_LIST_TITLE_GROUP_DATA = new InjectionToken<unknown>('DbxListTitleGroupData');\n\n/**\n * Abstract DbxListTitleGroupHeaderComponent that already has the data injected.\n */\nexport abstract class AbstractDbxListTitleGroupHeaderComponent<O extends PrimativeKey, D extends DbxListTitleGroupData<O>> {\n readonly data = inject<D>(DBX_LIST_TITLE_GROUP_DATA);\n}\n\n/**\n * Delegate used to for grouping DbxValueListItemConfig<T, I> values.\n */\n@Directive({\n selector: '[dbxListTitleGroup]',\n providers: [provideDbxValueListViewGroupDelegate(DbxListTitleGroupDirective)]\n})\nexport class DbxListTitleGroupDirective<T, O extends PrimativeKey = PrimativeKey, D extends DbxListTitleGroupData<O> = DbxListTitleGroupData<O>, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListViewGroupDelegate<D, T, I> {\n private _delegate = new BehaviorSubject<Maybe<DbxListTitleGroupTitleDelegate<T, O, D, I>>>(undefined);\n\n readonly groupValues: DbxValueListViewGroupValuesFunction<D, T, I, unknown, unknown> = (items: DbxValueListItemConfig<T, I>[]) => {\n return this._delegate.pipe(\n map((delegate) => {\n let groups: DbxValueListItemGroup<D, T, I>[];\n\n if (delegate != null) {\n const groupsValuesMap = makeValuesGroupMap(items, delegate.groupValueForItem);\n const { sortGroupsByData, cssClasses: inputCssClasses } = delegate;\n const cssClassesForAllGroups = inputCssClasses ?? [];\n\n const componentClass = delegate.headerComponentClass ?? DbxListTitleGroupHeaderComponent;\n const { dataForGroupValue, footerComponentClass } = delegate;\n\n groups = Array.from(groupsValuesMap.entries()).map(([value, items]) => {\n const data = dataForGroupValue(value as O, items);\n (data as Building<D>).value = value as O;\n const cssClasses = data.cssClasses ? [...cssClassesForAllGroups, ...data.cssClasses] : cssClassesForAllGroups;\n\n const providers: StaticProvider[] = [\n {\n provide: DBX_LIST_TITLE_GROUP_DATA,\n useValue: data\n }\n ];\n\n const group: DbxValueListItemGroup<D, T, I> = {\n id: String(value),\n data,\n items,\n headerConfig: { componentClass, providers },\n footerConfig: footerComponentClass ? { componentClass: footerComponentClass, providers } : undefined,\n cssClasses\n };\n\n return group;\n });\n\n if (sortGroupsByData) {\n groups.sort(compareWithMappedValuesFunction((x) => x.data, sortGroupsByData));\n }\n } else {\n groups = [\n {\n id: '_',\n data: { value: null as any, title: '' } as D,\n items\n }\n ];\n }\n\n return groups;\n })\n );\n };\n\n ngOnDestroy(): void {\n this._delegate.complete();\n }\n\n @Input('dbxListTitleGroup')\n get delegate() {\n return this._delegate.value;\n }\n\n set delegate(delegate: Maybe<DbxListTitleGroupTitleDelegate<T, O, D, I>>) {\n this._delegate.next(delegate);\n }\n}\n\n/**\n *\n */\n@Component({\n selector: 'dbx-list-title-group-header',\n template: `\n <div class=\"dbx-list-item-padded dbx-list-two-line-item\" [ngClass]=\"{ 'dbx-list-two-line-item-with-icon': icon }\">\n <mat-icon class=\"item-icon\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <div class=\"item-left\">\n <div class=\"mat-subtitle-2\">{{ title }}</div>\n <div *ngIf=\"hint\" class=\"item-details\">{{ hint }}</div>\n </div>\n </div>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-list-title-group-header'\n }\n})\nexport class DbxListTitleGroupHeaderComponent<O extends PrimativeKey, D extends DbxListTitleGroupData<O>> extends AbstractDbxListTitleGroupHeaderComponent<O, D> {\n get icon() {\n return this.data.icon;\n }\n\n get title() {\n return this.data.title;\n }\n\n get hint() {\n return this.data.hint;\n }\n}\n","import { Component, InjectionToken, inject } from '@angular/core';\nimport { DBX_VALUE_LIST_VIEW_ITEM, DbxValueListItem } from './list.view.value';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\nexport const DBX_LIST_VIEW_DEFAULT_META_ICON = new InjectionToken<string>('DBX_LIST_VIEW_DEFAULT_META_ICON');\n\nexport interface DbxListViewMetaIconConfig {\n readonly icon?: Maybe<string>;\n}\n\n@Component({\n selector: 'dbx-list-view-meta-icon',\n template: `\n <mat-icon class=\"dbx-list-view-meta-icon\">{{ icon }}</mat-icon>\n `\n})\nexport class DbxListViewMetaIconComponent {\n readonly item = inject<DbxValueListItem<unknown, DbxListViewMetaIconConfig>>(DBX_VALUE_LIST_VIEW_ITEM, { optional: true });\n readonly defaultIcon = inject<Maybe<string>>(DBX_LIST_VIEW_DEFAULT_META_ICON, { optional: true });\n\n readonly icon: Maybe<string> = this.item?.meta?.icon ?? this.defaultIcon;\n\n static metaConfig(defaultIcon?: Maybe<string>): DbxInjectionComponentConfig<DbxListViewMetaIconConfig> {\n return {\n componentClass: DbxListViewMetaIconComponent,\n providers: [\n {\n provide: DBX_LIST_VIEW_DEFAULT_META_ICON,\n useValue: defaultIcon\n }\n ]\n };\n }\n}\n","import { MatRippleModule } from '@angular/material/core';\nimport { DbxRouterAnchorModule } from '../../router/layout/anchor/anchor.module';\nimport { DbxLoadingModule } from '../../loading/loading.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxListComponent, DbxListInternalContentDirective } from './list.component';\nimport { DbxListEmptyContentComponent } from './list.content.empty.component';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { DbxSelectionValueListViewContentComponent, DbxSelectionValueListViewComponent } from './list.view.value.selection.component';\nimport { DbxValueListViewContentComponent, DbxValueListViewComponent, DbxValueListViewContentGroupComponent } from './list.view.value.component';\nimport { DbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { DbxListItemDisableRippleModifierDirective } from './list.view.value.modifier.ripple.directive';\nimport { DbxValueListGridViewContentComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent } from './list.grid.view.component';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\nimport { DbxListItemIsSelectedModifierDirective } from './list.view.value.modifier.selection.directive';\nimport { DbxListTitleGroupDirective, DbxListTitleGroupHeaderComponent } from './list.view.value.group.title.directive';\nimport { DbxListViewMetaIconComponent } from './list.view.meta.icon.component';\n\nconst privateDeclarations = [DbxListInternalContentDirective];\n\nconst declarations = [\n // directives\n DbxListComponent,\n DbxListEmptyContentComponent,\n DbxValueListViewComponent,\n DbxValueListViewContentComponent,\n DbxValueListViewContentGroupComponent,\n DbxValueListGridSizeDirective,\n DbxValueListGridViewComponent,\n DbxValueListGridViewContentComponent,\n DbxListViewMetaIconComponent,\n DbxListTitleGroupDirective,\n DbxListTitleGroupHeaderComponent,\n DbxSelectionValueListViewComponent,\n DbxSelectionValueListViewContentComponent,\n DbxValueListItemModifierDirective,\n DbxListItemDisableRippleModifierDirective,\n DbxListItemIsSelectedModifierDirective\n];\n\n@NgModule({\n imports: [CommonModule, MatRippleModule, FlexLayoutModule, DbxLoadingModule, DbxRouterAnchorModule, InfiniteScrollModule, DbxInjectionComponentModule, MatListModule, MatIconModule],\n declarations: [...declarations, ...privateDeclarations],\n exports: declarations\n})\nexport class DbxListLayoutModule {}\n","import { TrackByFunction } from '@angular/core';\nimport { ModelKeyRef, UniqueModel } from '@dereekb/util';\n\nexport const TRACK_BY_MODEL_ID: TrackByFunction<UniqueModel> = (index, model) => model.id;\n\nexport function trackByUniqueIdentifier<T extends UniqueModel>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_ID;\n}\n\nexport const TRACK_BY_MODEL_KEY: TrackByFunction<ModelKeyRef> = (index, model) => model.key;\n\nexport function trackByModelKeyRef<T extends ModelKeyRef>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_KEY;\n}\n","import { ListLoadingStateContext, switchMapMaybeObs } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, of, shareReplay } from 'rxjs';\nimport { Directive, EventEmitter, Input, OnDestroy, Output, TrackByFunction } from '@angular/core';\nimport { DbxListSelectionMode, DbxListView } from './list.view';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Abstract DbxListView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListViewDirective<T> implements DbxListView<T>, OnDestroy {\n private readonly _disabled = new BehaviorSubject<boolean>(false);\n private readonly _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n private readonly _values$ = new BehaviorSubject<Maybe<Observable<T[]>>>(undefined);\n\n readonly trackBy?: TrackByFunction<T> | undefined;\n\n readonly values$ = this._values$.pipe(switchMapMaybeObs(), shareReplay(1));\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n @Output()\n readonly clickValue = new EventEmitter<T>();\n\n @Input()\n set valueArray(values: Maybe<T[]>) {\n this.setValues(values ? of(values) : undefined);\n }\n\n @Input()\n set values(values: Maybe<Observable<T[]>>) {\n this.setValues(values);\n }\n\n ngOnDestroy(): void {\n this._disabled.complete();\n this._selectionMode.complete();\n this._values$.complete();\n }\n\n onClickValue(value: T) {\n this.clickValue.emit(value);\n }\n\n setListContext(state: ListLoadingStateContext<T>): void {\n this.setValues(state.list$);\n }\n\n setValues(valuesObs: Maybe<Observable<T[]>>): void {\n this._values$.next(valuesObs);\n }\n\n setDisabled(disabled: boolean): void {\n this._disabled.next(disabled);\n }\n\n setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void {\n this._selectionMode.next(selectionMode);\n }\n}\n","import { Directive } from '@angular/core';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\n\nexport const DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE = '<dbx-list-grid-view [config]=\"config\"></dbx-list-grid-view>';\n\n/**\n * Abstract DbxListGridView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListGridViewDirective<T> extends AbstractDbxListViewDirective<T> {}\n","import { Directive, EventEmitter, Output } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\n\nexport const DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE = '<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>';\n\n// MARK: Selection List View\n/**\n * Abstract list view that has a pre-built-in selection change event for an Angular Material MatSelectionListChange.\n */\n@Directive()\nexport abstract class AbstractDbxSelectionListViewDirective<T> extends AbstractDbxListViewDirective<T> {\n @Output()\n readonly selectionChange = new EventEmitter<ListSelectionState<T>>();\n\n selectionChanged(selection: ListSelectionState<T>): void {\n this.selectionChange.emit(selection);\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n this.selectionChanged({ items });\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxValueListItem, DBX_VALUE_LIST_VIEW_ITEM } from './list.view.value';\n\n@Directive()\nexport abstract class AbstractDbxValueListViewItemComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly item = inject<I>(DBX_VALUE_LIST_VIEW_ITEM);\n\n get itemValue(): T {\n return this.item.itemValue;\n }\n}\n","import { Observable } from 'rxjs';\nimport { ListLoadingState } from '@dereekb/rxjs';\nimport { EventEmitter, forwardRef, Provider, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Common interface for views that may wrap a DbxListView, and pass values through to it.\n */\nexport abstract class DbxListViewWrapper<T = unknown, S extends ListLoadingState<T> = ListLoadingState<T>> {\n state$?: Maybe<Observable<S>>;\n readonly loadMore?: EventEmitter<void>;\n}\n\nexport function provideDbxListViewWrapper<V extends DbxListViewWrapper>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxListViewWrapper,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxSectionHeaderConfig, DbxSectionHeaderHType } from './section';\n\n/**\n * Component used to style a section's header.\n */\n@Component({\n selector: 'dbx-section-header,.dbx-section-header',\n template: `\n <div class=\"dbx-section-header-content\">\n <ng-container *ngIf=\"showTitle\">\n <ng-container [ngSwitch]=\"h ?? 1\">\n <h1 *ngSwitchCase=\"1\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h5>\n </ng-container>\n <span class=\"spacer\"></span>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <p *ngIf=\"hint && !hintInline\" class=\"dbx-section-hint dbx-hint\">{{ hint }}</p>\n <ng-template #headerContentTitleTemplate>\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span class=\"title-text\">\n {{ header }}\n <span *ngIf=\"hint && hintInline\" class=\"dbx-section-hint-inline dbx-hint\">{{ hint }}</span>\n </span>\n </ng-template>\n `,\n host: {\n '[class.dbx-section-header-full-title]': 'onlyHeader',\n '[class.dbx-section-header-padded]': 'paddedHeader'\n }\n})\nexport class DbxSectionHeaderComponent {\n @Input()\n paddedHeader?: Maybe<boolean>;\n\n @Input()\n h?: Maybe<DbxSectionHeaderHType>;\n\n @Input()\n header?: Maybe<string>;\n\n @Input()\n onlyHeader?: Maybe<boolean> = false;\n\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n hint?: Maybe<string>;\n\n @Input()\n hintInline?: Maybe<boolean>;\n\n constructor() {}\n\n @Input()\n set headerConfig(headerConfig: Maybe<DbxSectionHeaderConfig>) {\n if (headerConfig) {\n if (headerConfig.h !== undefined) {\n this.h = headerConfig.h;\n }\n\n if (headerConfig.header !== undefined) {\n this.header = headerConfig.header;\n }\n\n if (headerConfig.onlyHeader !== undefined) {\n this.onlyHeader = headerConfig.onlyHeader;\n }\n\n if (headerConfig.icon !== undefined) {\n this.icon = headerConfig.icon;\n }\n\n if (headerConfig.hint !== undefined) {\n this.hint = headerConfig.hint;\n }\n\n if (headerConfig.hintInline !== undefined) {\n this.hintInline = headerConfig.hintInline;\n }\n }\n }\n\n get showTitle() {\n return Boolean(this.header || this.icon);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Component used to format content on a page within a section.\n */\n@Component({\n selector: 'dbx-section',\n template: `\n <div class=\"dbx-section-header\" [h]=\"h ?? 3\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-section',\n '[class]': `(elevate) ? 'dbx-section-elevate dbx-content-elevate' : ''`\n }\n})\nexport class DbxSectionComponent extends DbxSectionHeaderComponent {\n @Input()\n elevate = false;\n}\n","import { OnDestroy, Component, Input, EventEmitter, Output } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\n\n/**\n * Component used to format content that displays an intro until a button is pressed.\n */\n@Component({\n selector: 'dbx-intro-action-section',\n template: `\n <div class=\"dbx-intro-action-section\" [ngSwitch]=\"showIntro\">\n <div *ngSwitchCase=\"true\" class=\"dbx-intro-action-section-intro\">\n <p>{{ hint }}</p>\n <div>\n <ng-content select=\"[info]\"></ng-content>\n </div>\n <div>\n <button mat-raised-button color=\"accent\" (click)=\"actionClicked()\">{{ action }}</button>\n </div>\n </div>\n <ng-container *ngSwitchCase=\"false\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n `\n})\nexport class DbxIntroActionSectionComponent extends DbxSectionComponent implements OnDestroy {\n @Output()\n readonly showAction = new EventEmitter<void>();\n\n @Input()\n showIntro?: boolean;\n\n @Input()\n action?: string;\n\n ngOnDestroy() {\n this.showAction.complete();\n }\n\n actionClicked() {\n this.showAction.next();\n }\n}\n","import { Component } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\n\n/**\n * A subsection.\n */\n@Component({\n selector: 'dbx-subsection',\n template: `\n <div class=\"dbx-subsection\">\n <div class=\"dbx-section-header\" [h]=\"h ?? 4\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxSubSectionComponent extends DbxSectionComponent {}\n","import { Component, Input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Scroll locking modes.\n *\n * Types:\n * - all: The entire header + body is scrollable\n * - body: The header is locked while the body is scrollable\n * - locked: Overflow is locked and hidden\n */\nexport type DbxSectionPageScrollLockedMode = 'all' | 'body' | 'locked';\n\n/**\n * Component used to style a page that is made up of app sections.\n *\n * Should be used on pages that need a section page heading.\n *\n * Can be nested within eachother, retaining the proper fixed height.\n */\n@Component({\n selector: 'dbx-section-page',\n template: `\n <div class=\"dbx-section-header\" [h]=\"h ?? 2\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"true\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-page-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-content-page dbx-section-page',\n '[class]': '\"dbx-section-page-scroll-\" + scroll'\n }\n})\nexport class DbxSectionPageComponent extends DbxSectionHeaderComponent {\n @Input()\n scroll: DbxSectionPageScrollLockedMode = 'all';\n\n @Input()\n override hintInline = true;\n}\n","import { DbxRouterAnchorModule } from '../../router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxSectionComponent } from './section.component';\nimport { DbxSubSectionComponent } from './subsection.component';\nimport { DbxSectionPageComponent } from './section.page.component';\nimport { DbxIntroActionSectionComponent } from './section.intro.component';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\nconst declarations = [DbxSectionHeaderComponent, DbxSectionPageComponent, DbxSectionComponent, DbxSubSectionComponent, DbxIntroActionSectionComponent];\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [CommonModule, DbxRouterAnchorModule, MatButtonModule, MatRippleModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxSectionLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dbx-step',\n templateUrl: './step.component.html'\n // TODO: styleUrls: ['./step.scss']\n})\nexport class DbxStepComponent {\n @Input()\n done?: boolean;\n\n @Input()\n step?: number;\n\n @Input()\n text?: string;\n\n @Input()\n hint?: string;\n}\n","<div class=\"step-section\" [ngClass]=\"done ? 'done' : ''\">\n <div class=\"step-section-header\">\n <span class=\"step\">{{ step }}.</span>\n <mat-icon class=\"done-check\" *ngIf=\"done\">done</mat-icon>\n <span class=\"text\">{{ text }}</span>\n <p *ngIf=\"hint\" class=\"hint\">{{ hint }}</p>\n </div>\n <div class=\"step-section-content\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxStepComponent } from './step.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxStepComponent],\n exports: [DbxStepComponent]\n})\nexport class DbxStepLayoutModule {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-form-description',\n host: {\n class: 'dbx-form-description'\n }\n})\nexport class DbxFormDescriptionComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-hint',\n host: {\n class: 'dbx-hint'\n }\n})\nexport class DbxHintComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-label',\n host: {\n class: 'dbx-label'\n }\n})\nexport class DbxLabelComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-note',\n host: {\n class: 'dbx-note'\n }\n})\nexport class DbxNoteComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-notice',\n host: {\n class: 'dbx-notice'\n }\n})\nexport class DbxNoticeComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-ok',\n host: {\n class: 'dbx-ok'\n }\n})\nexport class DbxOkComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-success',\n host: {\n class: 'dbx-success'\n }\n})\nexport class DbxSuccessComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * @deprecated Compat: Remove in future version.\n */\n@Directive({\n selector: 'dbx-warn',\n host: {\n class: 'dbx-warn'\n }\n})\nexport class DbxWarnComponent {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DbxFormDescriptionComponent } from './form.description.component';\nimport { DbxHintComponent } from './hint.component';\nimport { DbxLabelComponent } from './label.component';\nimport { DbxNoteComponent } from './note.component';\nimport { DbxNoticeComponent } from './notice.component';\nimport { DbxOkComponent } from './ok.component';\nimport { DbxSuccessComponent } from './success.component';\nimport { DbxWarnComponent } from './warn.component';\n\nconst declarations = [DbxNoteComponent, DbxNoticeComponent, DbxSuccessComponent, DbxWarnComponent, DbxHintComponent, DbxLabelComponent, DbxOkComponent, DbxFormDescriptionComponent];\n\n/**\n * Includes a number of deprecated text components.\n */\n@NgModule({\n imports: [CommonModule, MatChipsModule, MatTooltipModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxTextCompatModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxSectionLayoutModule } from './section/section.layout.module';\nimport { DbxListLayoutModule } from './list/list.layout.module';\nimport { DbxItemLayoutModule } from './item/item.layout.module';\nimport { DbxFlagLayoutModule } from './flag/flag.layout.module';\nimport { DbxContentLayoutModule } from './content/content.layout.module';\nimport { DbxColumnLayoutModule } from './column/column.layout.module';\nimport { DbxCardBoxLayoutModule } from './card/card.box.layout.module';\nimport { DbxBlockLayoutModule } from './block/block.layout.module';\nimport { DbxCompactLayoutModule } from './compact/compact.layout.module';\nimport { DbxStepLayoutModule } from './step/step.layout.module';\nimport { DbxBarLayoutModule } from './bar/bar.layout.module';\nimport { DbxTextModule } from './text/text.module';\nimport { DbxStyleLayoutModule } from './style/style.layout.module';\nimport { DbxFlexLayoutModule } from './flex/flex.layout.module';\n\n@NgModule({\n exports: [DbxBarLayoutModule, DbxBlockLayoutModule, DbxCardBoxLayoutModule, DbxColumnLayoutModule, DbxCompactLayoutModule, DbxContentLayoutModule, DbxFlagLayoutModule, DbxFlexLayoutModule, DbxItemLayoutModule, DbxListLayoutModule, DbxSectionLayoutModule, DbxStepLayoutModule, DbxStyleLayoutModule, DbxTextModule]\n})\nexport class DbxLayoutModule {}\n","import { GlobalPositionStrategy } from '@angular/cdk/overlay';\n\nexport type PopupPosition = 'center' | 'bottom_left' | 'bottom_right';\n\nexport interface PopupPositionOffset {\n x?: string;\n y?: string;\n}\n\nexport class PopupGlobalPositionStrategy extends GlobalPositionStrategy {\n private _position!: PopupPosition;\n private _offset: PopupPositionOffset = {};\n\n constructor(position: PopupPosition = 'bottom_right', offset?: PopupPositionOffset) {\n super();\n this.setPopupPosition(position, offset);\n }\n\n setPopupOffset(offset?: PopupPositionOffset): void {\n this.setPopupPosition(this._position, offset ?? {});\n }\n\n setPopupPosition(position: PopupPosition, offset?: PopupPositionOffset): void {\n this._resetPositions();\n this._position = position;\n\n if (offset) {\n this._offset = offset;\n }\n\n const offsetX = this._offset.x ?? '0';\n const offsetY = this._offset.y ?? '0';\n\n switch (position) {\n case 'center':\n this.centerHorizontally();\n this.centerVertically();\n break;\n case 'bottom_left':\n this.bottom(offsetY);\n this.left(offsetX);\n break;\n case 'bottom_right':\n this.bottom(offsetY);\n this.right(offsetX);\n break;\n }\n }\n\n private _resetPositions(): void {\n this.top();\n this.bottom();\n this.left();\n this.right();\n }\n}\n","import { type Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopupKey = string;\n\nexport enum DbxPopupWindowState {\n NORMAL = 'normal',\n MINIMIZED = 'minimized',\n FULLSCREEN = 'fullscreen'\n}\n\nexport abstract class DbxPopupController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopupKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly windowState$: Observable<DbxPopupWindowState>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popup to close.\n */\n abstract close(): void;\n /**\n * Closes the popup and returns the input value.\n */\n abstract return(value?: O): void;\n abstract minimize(): void;\n abstract normalscreen(): void;\n abstract fullscreen(): void;\n}\n","import { DbxPopupKey, DbxPopupController } from './popup';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopupCoordinatorService implements OnDestroy {\n private _popups = new BehaviorSubject<Map<DbxPopupKey, DbxPopupController>>(new Map());\n\n readonly popups$ = this._popups.asObservable();\n\n ngOnDestroy(): void {\n this._popups.complete();\n }\n\n get popups(): Map<DbxPopupKey, DbxPopupController> {\n return this._popups.value;\n }\n\n public addPopup(popup: DbxPopupController): void {\n const key = popup.key;\n\n if (key) {\n this.removePopup(key);\n this._popups.value.set(key, popup);\n this._popups.next(this.popups);\n }\n }\n\n public removePopup(key: DbxPopupKey, popup?: DbxPopupController): void {\n if (key) {\n const existing = this.popups.get(key);\n\n // Remove if there is one existing, and if popup is provided it is the same popup.\n if (existing && (!popup || popup === existing)) {\n existing.close();\n this._popups.value.delete(key);\n this._popups.next(this.popups);\n }\n }\n }\n}\n","import { DbxPopupController } from './popup';\nimport { Component, OnInit, OnDestroy, inject } from '@angular/core';\nimport { DbxPopupCoordinatorService } from './popup.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Component({\n selector: 'dbx-popup-coordinator',\n template: `\n <ng-container *ngIf=\"show$ | async\">\n <ng-content></ng-content>\n </ng-container>\n `\n})\nexport class DbxPopupCoordinatorComponent implements OnInit, OnDestroy {\n private readonly _service = inject(DbxPopupCoordinatorService);\n private readonly _popup = inject(DbxPopupController);\n\n readonly isPopupForKey$ = this._service.popups$.pipe(\n map((x) => x.get(this._popup.key) === this._popup),\n shareReplay(1)\n );\n readonly show$ = this.isPopupForKey$.pipe(delay(0));\n\n ngOnInit(): void {\n this._service.addPopup(this._popup);\n }\n\n ngOnDestroy(): void {\n this._service.removePopup(this._popup.key, this._popup);\n }\n}\n","import { Component, Type, OnDestroy, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Maybe, PixelsString } from '@dereekb/util';\nimport { CompactMode, CompactContextStore } from '../../layout';\nimport { BehaviorSubject, Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopupGlobalPositionStrategy, PopupPosition, PopupPositionOffset } from './popup.position.strategy';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxPopupController, DbxPopupKey, DbxPopupWindowState } from './popup';\n\nexport const APP_POPUP_NORMAL_WIDTH = '700px';\nexport const APP_POPUP_MINIMIZED_WIDTH = '300px';\nexport const APP_POPUP_NORMAL_HEIGHT = 'auto';\n\nexport abstract class DbxPopupComponentController<O, I> extends DbxPopupController<O, I> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopupComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popup should exist at a time given a certain key.\n */\n key: DbxPopupKey;\n position?: PopupPosition;\n offset?: PopupPositionOffset;\n closeOnTransition?: boolean;\n componentClass: Type<T>;\n data?: I;\n isDraggable?: boolean;\n init?: (component: T, controller: DbxPopupController<O, I>) => void;\n width?: PixelsString;\n height?: PixelsString;\n}\n\n/**\n * Popup component.\n */\n@Component({\n template: `\n <dbx-popup-coordinator>\n <div class=\"dbx-popup-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popup-coordinator>\n `,\n providers: [\n {\n provide: DbxPopupController,\n useExisting: DbxPopupComponent\n },\n {\n provide: CompactContextStore\n }\n ]\n})\nexport class DbxPopupComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopupController<O, I>, OnDestroy {\n private popoverRef = inject(NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O>);\n private compactContextState = inject(CompactContextStore);\n\n private _position: PopupGlobalPositionStrategy;\n\n readonly contentConfig: DbxInjectionComponentConfig = {\n componentClass: this.config.componentClass,\n init: this.config.init ? (instance) => (this.config as Required<DbxPopupComponentConfig<O, I, T>>).init(instance as T, this) : undefined\n };\n\n private readonly closing = new Subject<void>();\n readonly isClosing$ = this.closing.pipe(\n first(),\n map(() => true),\n startWith(false),\n shareReplay(1)\n );\n readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n private readonly _windowState = new BehaviorSubject<DbxPopupWindowState>(DbxPopupWindowState.NORMAL);\n readonly windowState$ = this._windowState.asObservable();\n\n getClosingValueFn?: (value?: I) => Promise<O>;\n\n constructor() {\n super();\n this.compactContextState.setMode(CompactMode.COMPACT);\n this._position = new PopupGlobalPositionStrategy(this.config.position, this.config.offset);\n this.popoverRef.overlay.updatePositionStrategy(this._position);\n }\n\n get config(): DbxPopupComponentConfig<O, I, T> {\n return this.popoverRef.data;\n }\n\n get key(): DbxPopupKey {\n return this.config.key;\n }\n\n get data(): Maybe<I> {\n return this.config.data;\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.closing.complete();\n this._windowState.complete();\n }\n\n protected updateForSuccessfulTransition(): void {\n if (this.config.closeOnTransition !== false) {\n this.close();\n }\n }\n\n // Popup Controls\n public close(): void {\n this.closing.next();\n\n if (this.getClosingValueFn) {\n this.getClosingValueFn().then(\n (x) => {\n this.return(x);\n },\n () => {\n this.return();\n }\n );\n } else {\n this.return();\n }\n }\n\n public return(value?: O): void {\n this.closing.next();\n this.popoverRef.close(value);\n }\n\n public minimize(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize(APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.MINIMIZED);\n }\n\n public normalscreen(): void {\n this.popoverRef.isDraggable = this.config.isDraggable;\n this.popoverRef.resize(APP_POPUP_NORMAL_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.NORMAL);\n }\n\n public fullscreen(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize('100%', '100%');\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.FULLSCREEN);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DbxPopupComponent } from './popup.component';\n\n/**\n * Abstract popup directive.\n */\n@Directive()\nexport abstract class AbstractPopupDirective<O = unknown, I = unknown, T = unknown> {\n readonly popup = inject(DbxPopupComponent<O, I, T>);\n\n closePopup(): void {\n this.popup.close();\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\n\n/**\n * Popup content wrapper component.\n */\n@Component({\n selector: 'dbx-popup-content',\n template: `\n <ng-content select=\"[controls]\"></ng-content>\n <div *ngIf=\"showContent$ | async\" class=\"dbx-popup-content-container\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-popup-content'\n }\n})\nexport class DbxPopupContentComponent {\n private readonly appPopupController = inject(DbxPopupController);\n\n readonly showContent$ = this.appPopupController.windowState$.pipe(map((x) => x !== DbxPopupWindowState.MINIMIZED));\n}\n","import { Component, inject } from '@angular/core';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\n\n/**\n * Popup Control Buttons.\n */\n@Component({\n selector: 'dbx-popup-control-buttons',\n template: `\n <ng-container [ngSwitch]=\"isMinimized$ | async\">\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"false\" icon=\"minimize\" (buttonClick)=\"minimizeClicked()\"></dbx-button>\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"true\" icon=\"maximize\" (buttonClick)=\"maximizeClicked()\"></dbx-button>\n </ng-container>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-container [ngSwitch]=\"isFullscreen$ | async\">\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"false\" icon=\"open_in_full\" (buttonClick)=\"fullscreenClicked()\"></dbx-button>\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"true\" icon=\"close_fullscreen\" (buttonClick)=\"normalscreenClicked()\"></dbx-button>\n </ng-container>\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-button [flat]=\"true\" icon=\"close\" color=\"warn\" (buttonClick)=\"closeClicked()\"></dbx-button>\n `,\n host: {\n class: 'dbx-popup-control-buttons'\n }\n})\nexport class DbxPopupControlButtonsComponent {\n private readonly _appPopupController = inject(DbxPopupController);\n\n readonly isMinimized$ = this._appPopupController.windowState$.pipe(map((x) => x === DbxPopupWindowState.MINIMIZED));\n readonly isFullscreen$ = this._appPopupController.windowState$.pipe(map((x) => x === DbxPopupWindowState.FULLSCREEN));\n\n minimizeClicked(): void {\n this._appPopupController.minimize();\n }\n\n maximizeClicked(): void {\n this._appPopupController.normalscreen();\n }\n\n fullscreenClicked(): void {\n this._appPopupController.fullscreen();\n }\n\n normalscreenClicked(): void {\n this._appPopupController.normalscreen();\n }\n\n closeClicked(): void {\n this._appPopupController.close();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Popup Controls\n */\n@Component({\n selector: 'dbx-popup-controls',\n template: `\n <span class=\"dbx-popup-controls-header\">{{ header }}</span>\n <div class=\"spacer\"></div>\n <dbx-popup-control-buttons></dbx-popup-control-buttons>\n `,\n host: {\n class: 'dbx-popup-controls'\n }\n})\nexport class DbxPopupControlsComponent {\n @Input()\n header?: string;\n}\n","import { DbxPopupComponent, DbxPopupComponentConfig, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH } from './popup.component';\nimport { Injectable, Injector, inject } from '@angular/core';\nimport { NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport interface DbxPopupConfig<O, I, T> extends DbxPopupComponentConfig<O, I, T> {\n injector?: Injector;\n}\n\n/**\n * Used for displaying a popup.\n */\n@Injectable()\nexport class DbxPopupService {\n private _overlay = inject(Overlay);\n private _injector = inject(Injector);\n private _overlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n\n open<O, I, T>(config: DbxPopupConfig<O, I, T>): NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O> {\n const service = config.injector ? new NgOverlayContainerService(this._overlay, config.injector) : this._overlayContainerService;\n const isDraggable = config.isDraggable ?? false;\n const position = config.position ?? 'bottom_right';\n\n return service.open<DbxPopupComponentConfig<O, I, T>, O>({\n content: DbxPopupComponent,\n data: {\n ...config,\n isDraggable,\n position\n },\n configuration: {\n width: config.width ?? APP_POPUP_NORMAL_WIDTH,\n height: config.height ?? APP_POPUP_NORMAL_HEIGHT,\n useGlobalPositionStrategy: true,\n hasBackdrop: false,\n isResizable: false,\n isDraggable\n }\n });\n }\n}\n","import { Directive, HostListener, Input, inject } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\n\nconst DEFAULT_ACTION_KEY_TRIGGER = 'enter';\n\n/**\n * Directive that triggers the action on a specific key up event.\n *\n * Events/Keys to respond to should be lowercase.\n */\n@Directive({\n selector: '[dbxActionKeyTrigger]'\n})\nexport class DbxActionKeyTriggerDirective<T = unknown, O = unknown> {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n @Input('dbxActionKeyTrigger')\n inputKey: Maybe<string>;\n\n get key(): string {\n return this.inputKey || DEFAULT_ACTION_KEY_TRIGGER;\n }\n\n @HostListener('document:keyup', ['$event'])\n onKeyupHandler(event: KeyboardEvent): void {\n if (event.key && event.key.toLowerCase() === this.key) {\n this.source.trigger();\n }\n }\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport abstract class DbxPromptConfirm {\n abstract showDialog(): Observable<Maybe<boolean>>;\n}\n\nexport function provideDbxPromptConfirm<S extends DbxPromptConfirm>(sourceType: Type<S>): Provider[] {\n return [\n {\n provide: DbxPromptConfirm,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Component, Input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Pre-configured prompt.\n */\n@Component({\n selector: 'dbx-prompt',\n template: `\n <div class=\"dbx-prompt\">\n <ng-content select=\"[hero]\"></ng-content>\n <dbx-subsection [header]=\"header\" [hint]=\"prompt\">\n <ng-content></ng-content>\n </dbx-subsection>\n </div>\n `\n})\nexport class DbxPromptComponent {\n @Input()\n header?: Maybe<string>;\n\n @Input()\n prompt?: Maybe<string>;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport enum DbxPromptConfirmTypes {\n /**\n * Dialog is for yes/no.\n */\n NORMAL = 'normal',\n /**\n * Dialog is for deleting something.\n */\n DELETE = 'delete'\n}\n\nexport interface DbxPromptConfirmConfig {\n type?: DbxPromptConfirmTypes;\n title?: string;\n prompt?: string;\n confirmText?: string;\n cancelText?: string;\n}\n\n/**\n * Displays a confirmation dialog.\n */\n@Component({\n selector: 'dbx-prompt-confirm',\n templateUrl: './prompt.confirm.component.html'\n})\nexport class DbxPromptConfirmComponent {\n private _config: DbxPromptConfirmConfig = {};\n\n @Output()\n readonly confirm = new EventEmitter<void>();\n\n @Output()\n readonly cancel = new EventEmitter<void>();\n\n @Input()\n get config(): DbxPromptConfirmConfig {\n return this._config;\n }\n\n set config(config: Maybe<DbxPromptConfirmConfig>) {\n this._config = config ?? {};\n }\n\n onConfirm(): void {\n this.confirm.emit();\n }\n\n onCancel(): void {\n this.cancel.emit();\n }\n}\n","<dbx-prompt [header]=\"config.title\" [prompt]=\"config.prompt\">\n <ng-content></ng-content>\n <button mat-stroked-button (click)=\"onConfirm()\">{{ config.confirmText || 'Confirm' }}</button>\n <dbx-button-spacer></dbx-button-spacer>\n <button mat-stroked-button color=\"warn\" (click)=\"onCancel()\">{{ config.cancelText || 'Cancel' }}</button>\n</dbx-prompt>\n","import { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, OnInit } from '@angular/core';\nimport { AbstractDialogDirective } from '../dialog/abstract.dialog.directive';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmTypes } from './prompt.confirm.component';\nimport { type Maybe } from '@dereekb/util';\n\nexport const DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG = {\n title: 'Confirm?',\n type: DbxPromptConfirmTypes.NORMAL\n};\n\nexport interface DbxPromptConfirmDialogConfig extends DbxPromptConfirmConfig {\n component?: DbxInjectionComponentConfig;\n}\n\n@Component({\n template: `\n <dbx-dialog-content>\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <dbx-injection [config]=\"injectionConfig\"></dbx-injection>\n </dbx-prompt-confirm>\n </dbx-dialog-content>\n `\n})\nexport class DbxPromptConfirmDialogComponent extends AbstractDialogDirective<boolean, DbxPromptConfirmDialogConfig> implements OnInit {\n get config(): DbxPromptConfirmDialogConfig {\n return this.data;\n }\n\n get injectionConfig(): Maybe<DbxInjectionComponentConfig> {\n return this.data.component;\n }\n\n static openDialog(matDialog: MatDialog, config?: Maybe<DbxPromptConfirmDialogConfig>): MatDialogRef<DbxPromptConfirmDialogComponent, boolean> {\n const dialogRef = matDialog.open(DbxPromptConfirmDialogComponent, {\n data: config || DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG\n });\n return dialogRef;\n }\n\n confirm(): void {\n this.close(true);\n }\n\n cancel(): void {\n this.close(false);\n }\n}\n","import { Directive, Input, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { type Maybe } from '@dereekb/util';\nimport { Observable, from } from 'rxjs';\nimport { DbxPromptConfirm, provideDbxPromptConfirm } from './prompt.confirm';\nimport { DbxPromptConfirmConfig } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\n\n// MARK: Abstract\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n */\n@Directive()\nexport abstract class AbstractPromptConfirmDirective implements DbxPromptConfirm {\n protected readonly matDialog = inject(MatDialog);\n\n private _dialogRef?: MatDialogRef<DbxPromptConfirmDialogComponent, boolean>;\n private _dialogPromise?: Promise<boolean>;\n\n abstract config?: Maybe<DbxPromptConfirmConfig>;\n\n showDialog(): Observable<boolean> {\n if (!this._dialogPromise) {\n this._dialogPromise = new Promise<boolean>((resolve) => {\n this._dialogRef = DbxPromptConfirmDialogComponent.openDialog(this.matDialog, this.config);\n this._dialogRef.afterClosed().subscribe((result: Maybe<boolean>) => {\n this._dialogRef = undefined;\n this._dialogPromise = undefined;\n resolve(this._handleDialogResult(Boolean(result)));\n });\n });\n }\n\n return from(this._dialogPromise);\n }\n\n protected _handleDialogResult(result: boolean): boolean {\n return result;\n }\n}\n\n// MARK: Directive\n/**\n * Directive that shows a confirmation screen.\n */\n@Directive({\n selector: '[dbxPromptConfirm]',\n providers: provideDbxPromptConfirm(DbxPromptConfirmDirective)\n})\nexport class DbxPromptConfirmDirective extends AbstractPromptConfirmDirective {\n @Input('dbxPromptConfirm')\n override config?: Maybe<DbxPromptConfirmConfig>;\n}\n","import { Directive, Input, OnDestroy, OnInit, inject } from '@angular/core';\nimport { AbstractPromptConfirmDirective } from '../interaction/prompt/prompt.confirm.directive';\nimport { DbxPromptConfirmConfig } from '../interaction/prompt/prompt.confirm.component';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * DbxActionConfirmDirective configuration.\n */\nexport interface DbxActionConfirmConfig<T = unknown> extends DbxPromptConfirmConfig {\n /**\n * Optionally set the readyValue passed to the instance.\n */\n readyValue?: T;\n}\n\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n *\n * This only works to pass a ready value or reject through, not to work with a button.\n * For button usage, use an appPromptConfirmButton directive.\n */\n@Directive({\n selector: '[dbxActionConfirm]'\n})\nexport class DbxActionConfirmDirective<T = unknown, O = unknown> extends AbstractPromptConfirmDirective implements OnInit, OnDestroy {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n @Input('dbxActionConfirm')\n override config?: Maybe<DbxActionConfirmConfig<T>>;\n\n private _sourceSubscription = new SubscriptionObject();\n\n ngOnInit(): void {\n this._sourceSubscription.subscription = this.source.triggered$.subscribe(() => {\n this.showDialog();\n });\n }\n\n ngOnDestroy(): void {\n this._sourceSubscription.destroy();\n }\n\n protected override _handleDialogResult(result: boolean): boolean {\n if (result) {\n this.source.readyValue(this.config?.readyValue as unknown as T);\n } else {\n this.source.reject(undefined);\n }\n\n return result;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-box',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'd-block dbx-prompt-box',\n '[class.elevated]': 'elevated'\n }\n})\nexport class DbxPromptBoxComponent {\n @Input()\n elevated = true;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-page',\n template: `\n <dbx-content-container grow=\"full\">\n <div class=\"dbx-prompt-page-content-wrap\">\n <ng-content></ng-content>\n </div>\n </dbx-content-container>\n `,\n host: {\n class: 'd-block dbx-prompt-page'\n }\n})\nexport class DbxPromptPageComponent {}\n","import { DbxButton, DbxButtonInterceptor } from '@dereekb/dbx-core';\nimport { Directive, OnInit, inject } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { DbxPromptConfirm } from './prompt.confirm';\n\n/**\n * Directive that binds together a confirm dialog with the button.\n */\n@Directive({\n selector: '[dbxPromptConfirmButton]'\n})\nexport class DbxPromptConfirmButtonDirective implements OnInit, DbxButtonInterceptor {\n readonly button = inject(DbxButton, { host: true });\n readonly prompt = inject(DbxPromptConfirm, { host: true });\n\n readonly interceptButtonClick: () => Observable<boolean> = () => {\n return this.prompt.showDialog().pipe(map((x) => Boolean(x)));\n };\n\n ngOnInit(): void {\n this.button.setButtonInterceptor(this);\n }\n}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from './../../button/button.module';\nimport { DbxPromptComponent } from './prompt.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxPromptBoxComponent } from './prompt.box.component';\nimport { DbxPromptPageComponent } from './prompt.page.component';\nimport { DbxTextModule } from '../../layout/text';\nimport { DbxSectionLayoutModule } from '../../layout/section/section.layout.module';\nimport { DbxContentLayoutModule } from '../../layout/content/content.layout.module';\nimport { DbxPromptConfirmComponent as DbxPromptConfirmComponent } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent as DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\nimport { DbxPromptConfirmDirective } from './prompt.confirm.directive';\nimport { DbxPromptConfirmButtonDirective } from './prompt.button.confirm.directive';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxDialogInteractionModule } from '../dialog/dialog.module';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, MatButtonModule, DbxTextModule, DbxButtonModule, DbxInjectionComponentModule, DbxDialogInteractionModule, DbxSectionLayoutModule, DbxContentLayoutModule],\n declarations: [DbxPromptComponent, DbxPromptBoxComponent, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective],\n exports: [DbxPromptComponent, DbxPromptBoxComponent, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDirective]\n})\nexport class DbxPromptModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { DbxButtonModule } from '../button/button.module';\n// import { DbxErrorModule } from '../error/error.module';\nimport { DbxActionKeyTriggerDirective } from './key.trigger.directive';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxActionConfirmDirective } from './action.confirm.directive';\nimport { DbxPromptModule } from '../interaction/prompt/prompt.module';\n\n@NgModule({\n imports: [CommonModule, DbxCoreActionModule, DbxButtonModule, MatSnackBarModule, MatDialogModule, MatButtonModule, DbxPromptModule],\n declarations: [DbxActionKeyTriggerDirective, DbxActionConfirmDirective],\n exports: [DbxCoreActionModule, DbxActionKeyTriggerDirective, DbxActionConfirmDirective]\n})\nexport class DbxActionModule {}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxPopupCoordinatorComponent } from './popup.coordinator.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopupService } from './popup.service';\nimport { DbxPopupContentComponent } from './popup.content.component';\nimport { DbxPopupComponent } from './popup.component';\nimport { DbxRouterAnchorModule } from '../../router';\nimport { DbxActionModule } from '../../action/action.module';\nimport { DbxPopupControlsComponent } from './popup.controls.component';\nimport { DbxPopupControlButtonsComponent } from './popup.controls.buttons.component';\nimport { DbxButtonModule } from '../../button/button.module';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxButtonModule, DbxRouterAnchorModule, DbxActionModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule],\n declarations: [DbxPopupComponent, DbxPopupCoordinatorComponent, DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent],\n exports: [DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent],\n providers: [DbxPopupService]\n})\nexport class DbxPopupInteractionModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxDialogInteractionModule } from './dialog/dialog.module';\nimport { DbxPromptModule } from './prompt/prompt.module';\nimport { DbxPopupInteractionModule } from './popup/popup.module';\nimport { DbxPopoverInteractionModule } from './popover/popover.module';\nimport { DbxFilterInteractionModule } from './filter/filter.module';\n\n@NgModule({\n exports: [DbxDialogInteractionModule, DbxFilterInteractionModule, DbxPromptModule, DbxPopoverInteractionModule, DbxPopupInteractionModule]\n})\nexport class DbxInteractionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPromptModule } from '../../interaction';\nimport { DbxActionSnackbarDirective } from './action.snackbar.directive';\nimport { DbxActionSnackbarComponent } from './action.snackbar.component';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\nconst declarations = [DbxActionSnackbarComponent, DbxActionSnackbarDirective];\n\n@NgModule({\n imports: [CommonModule, DbxStyleLayoutModule, DbxCoreActionModule, DbxPromptModule, DbxButtonModule],\n declarations,\n exports: declarations\n})\nexport class DbxActionSnackbarModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmTypes, AbstractDialogDirective } from '../../interaction';\n\nexport enum DbxActionTransitionSafetyDialogResult {\n SUCCESS,\n STAY,\n DISCARD,\n NONE\n}\n\n/**\n * Dialog that is shown/triggered as part of the DbxActionTransitionSafety\n */\n@Component({\n template: `\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <ng-container>\n <dbx-error dbxActionError></dbx-error>\n <dbx-button text=\"Save Changes\" dbxActionButton></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n </dbx-prompt-confirm>\n `\n})\nexport class DbxActionUIRouterTransitionSafetyDialogComponent extends AbstractDialogDirective implements OnInit {\n config: DbxPromptConfirmConfig = {\n type: DbxPromptConfirmTypes.NORMAL,\n title: 'Unsaved Changes',\n prompt: 'You have unsaved changes on this page.',\n confirmText: 'Stay',\n cancelText: 'Discard Changes'\n };\n\n confirm(): void {\n this.dialogRef.close(DbxActionTransitionSafetyDialogResult.STAY);\n }\n\n cancel(): void {\n this.dialogRef.close(DbxActionTransitionSafetyDialogResult.DISCARD);\n }\n}\n","import { Directive, OnInit, OnDestroy, Input, ViewContainerRef, inject } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { HookResult, Transition, TransitionService } from '@uirouter/core';\nimport { Observable, of, race, delay, first, map, mergeMap, tap, firstValueFrom } from 'rxjs';\nimport { DbxActionContextStoreSourceInstance, canTriggerAction, isIdleActionState } from '@dereekb/dbx-core';\nimport { DbxActionTransitionSafetyDialogResult, DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\n\n/**\n * How to handle transitions.\n *\n * Values:\n * - none: Nothing occurs.\n * - dialog: Always show a dialog and act based on the result.\n * - auto: Try to auto-trigger if in a triggerable state. If it is modified but in a non-triggerable state, show a dialog. Should be used in conjuction with the auto-saver.\n */\nexport type DbxActionTransitionSafetyType = 'none' | 'dialog' | 'auto';\n\ntype DbxActionTransitionSafetyRaceResult = [boolean | undefined, HookResult | undefined];\n\n/**\n * Context used for preventing a transition from occuring if the action is not complete or is in a modified state.\n *\n * This can be configured to auto-trigger and wait, or show a dialog and wait for the user's feedback before doing anything.\n *\n * NOTE: This dialog only works for uirouter.\n */\n@Directive({\n selector: '[dbxActionTransitionSafety]'\n})\nexport class DbxActionTransitionSafetyDirective<T, O> implements OnInit, OnDestroy {\n protected readonly transitionService = inject(TransitionService);\n protected readonly viewContainerRef = inject(ViewContainerRef);\n protected readonly dialog = inject(MatDialog);\n\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>);\n\n @Input('dbxActionTransitionSafety')\n inputSafetyType?: DbxActionTransitionSafetyType;\n\n private _dialogRef?: MatDialogRef<DbxActionUIRouterTransitionSafetyDialogComponent, DbxActionTransitionSafetyDialogResult>;\n private stopWatchingTransition?: () => void;\n\n get safetyType(): DbxActionTransitionSafetyType {\n return this.inputSafetyType ?? 'dialog';\n }\n\n private get _destroyed(): boolean {\n return !this.stopWatchingTransition;\n }\n\n ngOnInit(): void {\n this.stopWatchingTransition = this.transitionService.onStart({}, (transition: Transition) => {\n return this._handleOnBeforeTransition(transition);\n }) as () => void;\n }\n\n ngOnDestroy(): void {\n if (this.stopWatchingTransition) {\n this.stopWatchingTransition();\n delete this.stopWatchingTransition;\n }\n\n this._closeDialog();\n }\n\n protected _handleOnBeforeTransition(transition: Transition): HookResult {\n return firstValueFrom(\n this.source.isModified$.pipe(\n first(),\n mergeMap((isModified) => {\n if (isModified) {\n return race([\n // Watch for success to occur. At that point, close everything.\n this.source.success$.pipe(\n first(),\n map(() => [true, undefined] as DbxActionTransitionSafetyRaceResult)\n ),\n this._handleIsModifiedState(transition).pipe(\n first(),\n map((x) => [undefined, x] as DbxActionTransitionSafetyRaceResult)\n )\n ]).pipe(\n map(([saveSuccess, handleResult]: DbxActionTransitionSafetyRaceResult) => {\n if (saveSuccess) {\n return true;\n } else {\n return handleResult;\n }\n }),\n tap(() => this._closeDialog()), // Close dialog if it is still open.\n delay(10) // Delay to allow dialog to close before transition.\n );\n } else {\n return of(true);\n }\n })\n )\n ).then((x) => x); // Resolve/Flatten potential promise result.\n }\n\n protected _handleIsModifiedState(transition: Transition): Observable<HookResult> {\n const safetyType = this.safetyType;\n let obs: Observable<HookResult>;\n\n // console.log('Safety type: ', safetyType);\n\n switch (safetyType) {\n case 'none':\n obs = of(true); // Do nothing.\n break;\n case 'auto':\n obs = this._autoTrigger(transition);\n break;\n default:\n case 'dialog':\n obs = this._showDialog(transition);\n break;\n }\n\n return obs;\n }\n\n private _autoTrigger(transition: Transition): Observable<HookResult> {\n return this.source.pipeStore((store) =>\n store.state$.pipe(\n delay(20), // Prevent racing with auto-trigger.\n first(),\n mergeMap((state) => {\n if (isIdleActionState(state.actionState)) {\n // If we're in an idle state, get ready to trigger it.\n if (canTriggerAction(state)) {\n store.trigger(); // Try and trigger it.\n }\n }\n\n // Watch for errors. If an error occurs, show the dialog.\n // Success will cause the race in _handleOnBeforeTransition() to trigger and close everything.\n return store.rejected$.pipe(\n first(),\n mergeMap(() => this._showDialog(transition))\n );\n })\n )\n );\n }\n\n private _showDialog(transition: Transition): Observable<HookResult> {\n if (this._destroyed) {\n return of(true);\n }\n\n if (!this._dialogRef) {\n this._dialogRef = this.dialog.open(DbxActionUIRouterTransitionSafetyDialogComponent, {\n viewContainerRef: this.viewContainerRef\n });\n }\n\n return this._dialogRef.afterClosed().pipe(\n first(),\n map((result: DbxActionTransitionSafetyDialogResult | undefined = DbxActionTransitionSafetyDialogResult.STAY) => {\n // Default to Stay if the user clicks outside.\n switch (result) {\n case DbxActionTransitionSafetyDialogResult.DISCARD:\n case DbxActionTransitionSafetyDialogResult.SUCCESS:\n case DbxActionTransitionSafetyDialogResult.NONE:\n return true;\n case DbxActionTransitionSafetyDialogResult.STAY:\n return false;\n }\n })\n );\n }\n\n private _closeDialog(): void {\n if (this._dialogRef) {\n this._dialogRef.close(DbxActionTransitionSafetyDialogResult.NONE);\n }\n\n this._dialogRef = undefined;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { DbxActionTransitionSafetyDirective as DbxActionUIRouterTransitionSafetyDirective } from './transition.safety.directive';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPromptModule } from './../../interaction';\nimport { DbxReadableErrorModule } from '../../error';\n\n/**\n * Provides the DbxActionUIRouterTransitionSafetyDirective.\n *\n * NOTE: Only works with UIRouter\n */\n@NgModule({\n imports: [CommonModule, DbxCoreActionModule, DbxPromptModule, DbxButtonModule, DbxReadableErrorModule],\n declarations: [DbxActionUIRouterTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent],\n exports: [DbxActionUIRouterTransitionSafetyDirective]\n})\nexport class DbxActionUIRouterTransitionModule {}\n","import { createAction } from '@ngrx/store';\n\nexport const dbxModelResetState = createAction('[App/Model] Reset State');\n","import { ModelKeyTypeNamePair, ModelKeyTypePair } from '@dereekb/util';\nimport { createAction, props } from '@ngrx/store';\n\nexport interface DbxModelObjectViewedParams {\n modelKeyTypeNamePair: ModelKeyTypeNamePair;\n context?: string;\n}\n\nexport interface DbxModelGoToObjectViewParams {\n modelKeyTypePair: ModelKeyTypePair;\n}\n\nexport const emitObjectViewEvent = createAction('[App/Model/Type] Object Viewed', props<DbxModelObjectViewedParams>());\n","import { createReducer, on } from '@ngrx/store';\n\nimport { DbxModelStateActions } from '../actions';\n\nexport interface DbxModelModuleStateConfiguration {}\n\nexport const stateFeatureKey = 'model.module.config';\n\nexport const initialState: DbxModelModuleStateConfiguration = {\n types: {}\n};\n\nexport const reducer = createReducer(\n initialState,\n on(DbxModelStateActions.dbxModelResetState, () => initialState)\n);\n","import { Action, combineReducers, createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromObjectModuleConfig from './model.module.config';\nimport { DbxModelModuleStateConfiguration } from './model.module.config';\n\nexport const featureKey = 'app.model';\n\nexport interface DbxModelState {\n [fromObjectModuleConfig.stateFeatureKey]: DbxModelModuleStateConfiguration;\n}\n\nexport interface State {\n [featureKey]: DbxModelState;\n}\n\nexport function reducers(state: DbxModelState | undefined, action: Action) {\n return combineReducers({\n [fromObjectModuleConfig.stateFeatureKey]: fromObjectModuleConfig.reducer\n })(state, action);\n}\n\n// MARK: Context\nexport const selectDbxModelFeature = createFeatureSelector<State, DbxModelState>(featureKey);\n\n// MARK: Module Config\nexport const selectDbxModelFeatureObjectModuleConfig = createSelector(selectDbxModelFeature, (state: DbxModelState) => state[fromObjectModuleConfig.stateFeatureKey]);\n","import { Injectable, InjectionToken, OnDestroy, inject } from '@angular/core';\nimport { unixTimeNumberForNow } from '@dereekb/date';\nimport { StorageAccessor } from '@dereekb/dbx-core';\nimport { encodeModelKeyTypePair, ModelRelationUtility, type Maybe } from '@dereekb/util';\nimport { map, mergeMap, catchError, Observable, of, Subject, tap } from 'rxjs';\nimport { DbxModelViewTrackerEventSet, DbxModelViewTrackerEvent } from './model.tracker';\n\nexport const DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN = new InjectionToken('DbxModelViewTrackerStorageAccessor');\n\n/**\n * Used for managing DbxModelViewTrackerEvent storage.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelViewTrackerStorage implements OnDestroy {\n static readonly OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY = 'dbxModelViewTrackerEvents';\n static readonly DEFAULT_MAX_EVENTS = 100;\n\n readonly storageAccessor = inject<StorageAccessor<DbxModelViewTrackerEventSet>>(DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN);\n\n private _newEvent = new Subject<DbxModelViewTrackerEvent>();\n\n readonly newEvent$ = this._newEvent.asObservable();\n\n ngOnDestroy(): void {\n this._newEvent.complete();\n }\n\n protected get storageKey(): string {\n return DbxModelViewTrackerStorage.OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY;\n }\n\n protected get maxEventsToKeep(): number {\n return DbxModelViewTrackerStorage.DEFAULT_MAX_EVENTS;\n }\n\n addTrackerEvent(event: DbxModelViewTrackerEvent): Observable<void> {\n const storageKey = this.getStorageKeyForFolder(event.folder);\n return this._getEventSetForStorageKey(storageKey).pipe(\n mergeMap((set) => {\n const nextEvent: DbxModelViewTrackerEvent = {\n d: event.d ?? unixTimeNumberForNow(),\n c: event.c,\n m: event.m\n };\n\n const e = ModelRelationUtility.removeDuplicates(set.e, (x) => encodeModelKeyTypePair(x.m), [encodeModelKeyTypePair(nextEvent.m)]);\n e.push(nextEvent);\n e.sort((a, b) => (b.d ?? 0) - (a.d ?? 0));\n\n return this.storageAccessor\n .set(storageKey, {\n l: Math.max(set.l ?? 0, nextEvent.d as number),\n e: e.slice(0, this.maxEventsToKeep)\n })\n .pipe(tap(() => this._newEvent.next(nextEvent)));\n })\n );\n }\n\n getAllEvents(folder?: Maybe<string>): Observable<DbxModelViewTrackerEvent[]> {\n return this.getEventSet(folder).pipe(map((x) => x.e));\n }\n\n getEventSet(folder?: Maybe<string>): Observable<DbxModelViewTrackerEventSet> {\n const storageKey = this.getStorageKeyForFolder(folder);\n return this._getEventSetForStorageKey(storageKey);\n }\n\n private _getEventSetForStorageKey(storageKey: string): Observable<DbxModelViewTrackerEventSet> {\n return this.storageAccessor.get(storageKey).pipe(\n catchError((e) => {\n return of(undefined);\n }),\n map((result) => result ?? { e: [], l: 0 })\n );\n }\n\n getStorageKeyForFolder(folder?: Maybe<string>): string {\n const storageKey = `${this.storageKey}_${folder ?? 'default'}`;\n return storageKey;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Maybe, ModelKeyTypeNamePair } from '@dereekb/util';\nimport { first, Observable } from 'rxjs';\nimport { DbxModelViewTrackerEvent, DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelViewTrackerStorage } from './model.tracker.view.storage';\n\n/**\n * Service used for tracking/logging different kinds of events on objects.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelTrackerService {\n private readonly _viewTrackerStorage = inject(DbxModelViewTrackerStorage);\n\n private _defaultFolder: Maybe<string>;\n\n readonly newEvent$ = this._viewTrackerStorage.newEvent$;\n\n get defaultFolder(): Maybe<string> {\n return this._defaultFolder;\n }\n\n set defaultFolder(folder: Maybe<string>) {\n this._defaultFolder = folder ?? undefined;\n }\n\n // MARK: View\n trackViewedObject(modelKeyTypeNamePair: ModelKeyTypeNamePair, context?: string, folder: Maybe<string> = this._defaultFolder): void {\n this._viewTrackerStorage\n .addTrackerEvent({\n m: modelKeyTypeNamePair,\n c: context,\n folder\n })\n .pipe(first())\n .subscribe();\n }\n\n getAllViewEvents(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEvent[]> {\n return this._viewTrackerStorage.getAllEvents(folder);\n }\n\n getViewEventSet(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEventSet> {\n return this._viewTrackerStorage.getEventSet(folder);\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Actions, ofType, createEffect } from '@ngrx/effects';\nimport { distinctUntilChanged, filter, map, tap } from 'rxjs';\nimport { onDbxAppAuth } from '@dereekb/dbx-core';\nimport { DbxModelTrackerService } from '../../model.tracker.service';\nimport { onDbxModel } from '..';\n\n/**\n * Used to pass Object Store events to the ObjectTracker.\n */\n@Injectable()\nexport class DbxModelTrackerEffects {\n private readonly actions$ = inject(Actions);\n private readonly dbxModelTrackerService = inject(DbxModelTrackerService);\n\n readonly trackModelViewed$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent),\n distinctUntilChanged((a, b) => a?.modelKeyTypeNamePair.key === b?.modelKeyTypeNamePair.key && a?.type === b?.type && a?.context === b?.context),\n tap((x) => {\n this.dbxModelTrackerService.trackViewedObject(x.modelKeyTypeNamePair, x.context);\n })\n ),\n { dispatch: false }\n );\n\n readonly changeTrackerFolderToMatchAuth$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxAppAuth.DbxAppAuthUserActions.setUserIdentifier),\n map((x) => x.id),\n filter((x) => Boolean(x)),\n distinctUntilChanged(),\n tap((accountId) => {\n this.dbxModelTrackerService.defaultFolder = accountId;\n })\n ),\n { dispatch: false }\n );\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule, SimpleStorageAccessorFactory, StorageAccessor } from '@dereekb/dbx-core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { DbxListLayoutModule } from '../../layout/list/list.layout.module';\nimport { DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelTrackerService } from './model.tracker.service';\nimport { DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN } from './model.tracker.view.storage';\nimport { fromDbxModel } from './state';\nimport { DbxModelTrackerEffects } from './state/effects/tracker.effects';\n\nexport function appObjectViewTrackerStorageAccessorFactory(storageAccessorFactory: SimpleStorageAccessorFactory): StorageAccessor<DbxModelViewTrackerEventSet> {\n const accessor = storageAccessorFactory.createStorageAccessor<DbxModelViewTrackerEventSet>({\n prefix: 'mtvs'\n });\n\n return accessor;\n}\n\n/**\n * Contains components related to displaying content related to models identified only by their model key.\n */\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxListLayoutModule,\n DbxInjectionComponentModule,\n EffectsModule.forFeature([DbxModelTrackerEffects]),\n StoreModule.forFeature(fromDbxModel.featureKey, fromDbxModel.reducers)\n ],\n declarations: [],\n exports: []\n})\nexport class DbxModelInfoModule {\n static forRoot(): ModuleWithProviders<DbxModelInfoModule> {\n return {\n ngModule: DbxModelInfoModule,\n providers: [\n DbxModelTrackerService,\n {\n provide: DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN,\n useFactory: appObjectViewTrackerStorageAccessorFactory,\n deps: [SimpleStorageAccessorFactory]\n }\n ]\n };\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { onDbxModel } from './state';\nimport { DbxModelObjectViewedParams } from './state/actions/model.actions';\nimport { DbxModelFullState } from './state/state';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelObjectStateService {\n readonly store = inject(Store<DbxModelFullState>);\n\n /**\n * Emit a model viewed event.\n */\n emitModelViewEvent({ modelKeyTypeNamePair, context }: DbxModelObjectViewedParams): void {\n this.store.dispatch(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent({ modelKeyTypeNamePair, context }));\n }\n}\n","import { UnixDateTimeNumber, Maybe, ModelKey, ModelKeyTypeNamePair } from '@dereekb/util';\n\n/**\n * Context in which a model was viewed.\n */\nexport type ModelViewContext = string;\n\nexport interface DbxModelViewTrackerEvent {\n /**\n * Event time\n */\n d?: UnixDateTimeNumber;\n /**\n * Context\n */\n c?: ModelViewContext;\n /**\n * Model info\n */\n m: ModelKeyTypeNamePair;\n folder?: Maybe<string>;\n}\n\nexport interface DbxModelViewTrackerEventSet {\n /**\n * The latest date/time number.\n */\n l: UnixDateTimeNumber;\n /**\n * List of events.\n */\n e: DbxModelViewTrackerEvent[];\n}\n\nexport function allDbxModelViewTrackerEventSetModelKeys(eventSet: DbxModelViewTrackerEventSet): ModelKey[] {\n return allDbxModelViewTrackerEventModelKeys(eventSet.e);\n}\n\nexport function allDbxModelViewTrackerEventModelKeys(events: DbxModelViewTrackerEvent[]): ModelKey[] {\n return events.map((y) => y.m.key);\n}\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { capitalCase } from 'change-case';\nimport { map, shareReplay, Observable, BehaviorSubject } from 'rxjs';\nimport { ArrayOrValue, Building, ModelTypeString, useIterableOrValue } from '@dereekb/util';\nimport { DbxModelTypeConfiguration, DbxModelTypeConfigurationMap } from './model.types';\n\nexport interface DbxModelTypeInfo extends Omit<DbxModelTypeConfiguration, 'srefFactory'> {\n /**\n * Whether or not a response is expected for segues\n * to a view for objects of this type.\n */\n canSegueToView: boolean;\n}\n\nexport interface DbxModelTypesMap<I extends DbxModelTypeInfo> {\n readonly [type: string]: I;\n}\n\nexport interface DbxModelIconsMap {\n readonly [type: string]: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelTypesService<I extends DbxModelTypeInfo = DbxModelTypeInfo> {\n static readonly DEFAULT_ICON = 'help_outline';\n\n readonly injector = inject(Injector);\n\n private readonly _configs = new BehaviorSubject<DbxModelTypeConfigurationMap>({});\n\n // MARK: Configuration\n addTypeConfigs(configs: ArrayOrValue<DbxModelTypeConfiguration>) {\n const types = {\n ...this._configs.value\n };\n\n useIterableOrValue(configs, (config) => {\n types[config.modelType] = config;\n });\n\n this._configs.next(types);\n }\n\n addTypeConfigsMap(configs: DbxModelTypeConfigurationMap) {\n const newConfig: DbxModelTypeConfigurationMap = {\n ...this._configs.value,\n ...configs\n };\n\n this._configs.next(newConfig);\n }\n\n // MARK: Accessors\n readonly typesMap$ = this._configs.pipe(\n map((types) => {\n const typesMap: Building<DbxModelTypesMap<I>> = {};\n\n Object.keys(types).forEach((type) => {\n const config = types[type];\n\n const label = config.label || capitalCase(type);\n const analyticsName = config.analyticsName || label;\n const sref = config.srefBuilder ? config.srefBuilder(this.injector) : config.sref;\n\n typesMap[type] = {\n ...config,\n sref,\n label,\n analyticsName,\n icon: config.icon ?? DbxModelTypesService.DEFAULT_ICON,\n canSegueToView: Boolean(sref)\n } as I;\n });\n\n return typesMap as DbxModelTypesMap<I>;\n }),\n shareReplay(1)\n );\n\n readonly iconMap$: Observable<DbxModelIconsMap> = this.typesMap$.pipe(\n map((types) => {\n const iconsMap: Building<DbxModelIconsMap> = {};\n\n Object.keys(types).forEach((type) => {\n iconsMap[type] = types[type].icon;\n });\n\n return iconsMap as DbxModelIconsMap;\n }),\n shareReplay(1)\n );\n\n iconForType(type: ModelTypeString): Observable<string> {\n return this.iconMap$.pipe(map((x) => x[type]));\n }\n}\n","import { Component, ElementRef, Input, ViewChild, inject } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { WorkUsingObservable, LoadingState, filterMaybe, loadingStateContext, successResult, valueFromFinishedLoadingState } from '@dereekb/rxjs';\nimport { MS_IN_SECOND, type Maybe } from '@dereekb/util';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, first, map, of, shareReplay, switchMap, tap } from 'rxjs';\nimport { Clipboard } from '@angular/cdk/clipboard';\nimport { DownloadTextContent } from './download.text';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\n\n/**\n * DbxStructureDirective used specifically on the body of the app.\n */\n@Component({\n templateUrl: './download.text.component.html',\n selector: 'dbx-download-text-view'\n})\nexport class DbxDownloadTextViewComponent extends AbstractSubscriptionDirective {\n private readonly _clipboard = inject(Clipboard);\n private readonly _matSnackbar = inject(MatSnackBar);\n private readonly _sanitizer = inject(DomSanitizer);\n\n @Input()\n loadingText?: Maybe<string>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n @Input()\n showTitle: boolean = true;\n\n @Input()\n showPreview: boolean = true;\n\n private readonly _downloadButton = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n readonly downloadButton$ = this._downloadButton.asObservable();\n\n private readonly _contentLoadingState = new BehaviorSubject<Maybe<LoadingState<DownloadTextContent>>>(undefined);\n readonly contentLoadingState$ = this._contentLoadingState.pipe(filterMaybe(), shareReplay(1));\n\n readonly content$ = this._contentLoadingState.pipe(\n switchMap((x) => {\n if (x) {\n return this.contentLoadingState$.pipe(valueFromFinishedLoadingState());\n } else {\n return of(undefined);\n }\n })\n );\n\n readonly contentData$ = this.content$.pipe(map((x) => x?.content));\n\n readonly context = loadingStateContext({ obs: this.contentLoadingState$ });\n\n readonly fileName$ = this.content$.pipe(\n map((x) => x?.name ?? 'File'),\n shareReplay(1)\n );\n\n readonly fileUrl$: Observable<Maybe<SafeResourceUrl>> = this.content$.pipe(\n map((content) => {\n let fileUrl: Maybe<SafeResourceUrl> = undefined;\n\n if (content) {\n const blob = new Blob([content.content], { type: content.mimeType ?? 'application/octet-stream' });\n fileUrl = this._sanitizer.bypassSecurityTrustResourceUrl(window.URL.createObjectURL(blob));\n }\n\n return fileUrl;\n }),\n shareReplay(1)\n );\n\n readonly downloadReady$ = combineLatest([this._downloadButton, this.fileName$, this.fileUrl$]).pipe(\n map(([button, name, url]) => Boolean(button && name && url)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Input()\n set content(content: Maybe<DownloadTextContent>) {\n this._contentLoadingState.next(content ? successResult(content) : undefined);\n }\n\n @Input()\n set contentState(contentState: Maybe<LoadingState<DownloadTextContent>>) {\n this._contentLoadingState.next(contentState);\n }\n\n @ViewChild('downloadButton', { read: ElementRef })\n set downloadButton(downloadButton: ElementRef) {\n this._downloadButton.next(downloadButton);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._downloadButton.complete();\n this._contentLoadingState.complete();\n }\n\n readonly handleCopyToClipboard: WorkUsingObservable = () => {\n return this.content$.pipe(\n first(),\n switchMap((downloadTextContent: Maybe<DownloadTextContent>) => {\n if (downloadTextContent) {\n return new Promise<boolean>((resolve, reject) => {\n const pending = this._clipboard.beginCopy(downloadTextContent.content);\n\n let secondsRemainingForCopy = 20; // attempt to copy for up to 20 seconds\n\n const attempt = () => {\n const copyIsFinished = pending.copy();\n\n if (!copyIsFinished && --secondsRemainingForCopy) {\n setTimeout(attempt, MS_IN_SECOND);\n } else {\n // Remember to destroy when you're done!\n pending.destroy();\n\n if (copyIsFinished) {\n resolve(true);\n } else {\n reject(false);\n }\n }\n };\n\n attempt();\n });\n } else {\n return of(false);\n }\n }),\n tap((success) => {\n if (success) {\n this._matSnackbar.open('Copied to clipboard', undefined, { duration: 3 * MS_IN_SECOND });\n } else {\n this._matSnackbar.open('Content failed to copy...', undefined, { duration: 3 * MS_IN_SECOND });\n }\n })\n );\n };\n}\n","<div class=\"dbx-download-text-view\">\n <dbx-loading [context]=\"context\" [linear]=\"linear\" [text]=\"loadingText\">\n <ng-container *ngTemplateOutlet=\"contentView\"></ng-container>\n </dbx-loading>\n</div>\n\n<!-- Template -->\n<ng-template #contentView>\n <div class=\"dbx-download-text-view-content\">\n <div *ngIf=\"showTitle\" class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileName$ | async }}</div>\n <div *ngIf=\"showPreview\" class=\"dbx-download-text-preview dbx-json dbx-content-pit dbx-content-pit-scrollable dbx-mb3\">{{ contentData$ | async }}</div>\n <div class=\"dbx-download-text-view-actions\">\n <dbx-button dbxAction dbxActionValue [raised]=\"true\" [dbxActionHandler]=\"handleCopyToClipboard\" icon=\"content_copy\" dbxActionButton text=\"Copy To Clipboard\"></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <a #downloadButton [href]=\"fileUrl$ | async\" [attr.download]=\"fileName$ | async\"><dbx-button icon=\"download\" text=\"Download\" [raised]=\"true\" [working]=\"!(downloadReady$ | async)\" [disabled]=\"!(downloadReady$ | async)\"></dbx-button></a>\n </div>\n </div>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxDownloadTextViewComponent } from './download.text.component';\nimport { DbxButtonModule } from '../../../button/button.module';\nimport { DbxLoadingModule } from '../../../loading/loading.module';\nimport { DbxActionModule } from '../../../action/action.module';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\n\nconst declarations = [DbxDownloadTextViewComponent];\n\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxLoadingModule,\n DbxButtonModule,\n DbxActionModule,\n MatSnackBarModule\n ],\n declarations,\n exports: declarations\n})\nexport class DbxDownloadTextModule {}\n","import { ChangeDetectorRef, Directive, ElementRef, Injector, inject } from '@angular/core';\n\n/**\n * Used to reference a cdRef, injector, and element at the given element.\n *\n * Generally used for child views to reference a well-placed parent view.\n */\n@Directive({\n selector: '[dbxStructure]'\n})\nexport class DbxStructureDirective {\n readonly cdRef = inject(ChangeDetectorRef);\n readonly injector = inject(Injector);\n readonly element = inject(ElementRef);\n}\n","import { Directive } from '@angular/core';\nimport { DbxStructureDirective } from './structure.structure.directive';\n\n/**\n * DbxStructureDirective used specifically on the body of the app.\n */\n@Directive({\n selector: 'dbxBody,[dbxBody]',\n providers: [\n {\n provide: DbxStructureDirective,\n useExisting: DbxBodyDirective\n }\n ]\n})\nexport class DbxBodyDirective extends DbxStructureDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxStructureDirective } from './structure.structure.directive';\nimport { DbxBodyDirective } from './structure.body.directive';\n\nconst declarations = [DbxBodyDirective, DbxStructureDirective];\n\n@NgModule({\n imports: [\n //\n CommonModule\n ],\n declarations,\n exports: declarations\n})\nexport class DbxStructureModule {}\n","import { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeArrayValues, mapIterable } from '@dereekb/util';\nimport { DbxWidgetType } from './widget';\n\nexport interface DbxWidgetEntry {\n /**\n * Widget type to respond to.\n */\n readonly type: DbxWidgetType;\n /**\n * Widget component class to use.\n */\n readonly componentClass: Type<unknown>;\n}\n\n/**\n * Service used to register widgets.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxWidgetService {\n private _entries = new Map<DbxWidgetType, DbxWidgetEntry>();\n\n /**\n * Used to register an entry. If an entry with the same type is already registered, this will override it by default.\n *\n * @param entry\n * @param override\n */\n register(entry: DbxWidgetEntry, override: boolean = true): boolean {\n if (override || !this._entries.has(entry.type)) {\n this._entries.set(entry.type, entry);\n return true;\n } else {\n return false;\n }\n }\n\n // MARK: Get\n getWidgetIdentifiers(): DbxWidgetType[] {\n return Array.from(this._entries.keys());\n }\n\n getWidgetEntry(type: DbxWidgetType): Maybe<DbxWidgetEntry> {\n return this._entries.get(type);\n }\n\n getWidgetEntries(types: Iterable<DbxWidgetType>): DbxWidgetEntry[] {\n return filterMaybeArrayValues(mapIterable(types ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { Observable, BehaviorSubject, map, shareReplay, distinctUntilChanged } from 'rxjs';\nimport { Component, Input, OnDestroy, inject } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxWidgetViewComponentConfig } from './widget';\nimport { DbxWidgetService } from './widget.service';\n\n/**\n * Used to display a corresponding widget based on the input data.\n */\n@Component({\n selector: 'dbx-widget-view',\n template: `\n <ng-container [ngSwitch]=\"widgetConfigExists$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <ng-container *ngTemplateOutlet=\"widget\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <ng-container *ngTemplateOutlet=\"unknown\"></ng-container>\n </ng-container>\n </ng-container>\n <ng-template #widget>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </ng-template>\n <ng-template #unknown>\n <ng-content empty select=\"[unknownWidget]\"></ng-content>\n </ng-template>\n `,\n host: {\n class: 'dbx-widget-view'\n }\n})\nexport class DbxWidgetViewComponent implements OnDestroy {\n readonly dbxWidgetService = inject(DbxWidgetService);\n\n private readonly _config = new BehaviorSubject<Maybe<DbxWidgetViewComponentConfig>>(undefined);\n\n readonly config$: Observable<Maybe<DbxInjectionComponentConfig>> = this._config.pipe(\n map((pair: Maybe<DbxWidgetViewComponentConfig>) => {\n let config: Maybe<DbxInjectionComponentConfig> = undefined;\n\n if (pair != null) {\n let entry = this.dbxWidgetService.getWidgetEntry(pair.type);\n\n if (!entry && pair.defaultType) {\n entry = this.dbxWidgetService.getWidgetEntry(pair.defaultType);\n }\n\n if (entry) {\n config = {\n componentClass: entry.componentClass,\n data: pair.data\n };\n } else {\n config = null;\n }\n }\n\n return config;\n }),\n shareReplay(1)\n );\n\n readonly widgetConfigExists$ = this.config$.pipe(\n map((x) => x !== null),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._config.complete();\n }\n\n @Input()\n set config(config: Maybe<DbxWidgetViewComponentConfig>) {\n this._config.next(config);\n }\n}\n","import { Directive, inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\n\n@Directive()\nexport abstract class AbstractDbxWidgetComponent<T> {\n readonly data = inject<T>(DBX_INJECTION_COMPONENT_DATA);\n}\n","import { Component } from '@angular/core';\nimport { of } from 'rxjs';\nimport { AbstractDbxListWrapperDirective, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, DbxValueListGridViewConfig, AbstractDbxValueListViewItemComponent, provideDbxListView, DbxValueAsListItem, AbstractDbxListGridViewDirective, DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE } from '../../layout/list';\nimport { DbxWidgetDataPair } from './widget';\n\nexport type DbxWidgetDataPairWithSelection = DbxValueAsListItem<DbxWidgetDataPair>;\n\n/**\n * Demo DbxSelectionListWrapperDirective\n */\n@Component({\n selector: 'dbx-widget-grid',\n template: DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE\n})\nexport class DbxWidgetListGridComponent extends AbstractDbxListWrapperDirective<DbxWidgetDataPair> {\n constructor() {\n super({\n componentClass: DbxWidgetListGridViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}\n\n@Component({\n selector: 'dbx-widget-grid-view',\n template: DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE,\n providers: provideDbxListView(DbxWidgetListGridViewComponent)\n})\nexport class DbxWidgetListGridViewComponent extends AbstractDbxListGridViewDirective<DbxWidgetDataPair> {\n readonly config: DbxValueListGridViewConfig<DbxWidgetDataPairWithSelection> = {\n grid: {\n // TODO: Make configurable.\n columns: 'repeat(auto-fill, minmax(120px, 1fr))',\n gap: '8px'\n },\n componentClass: DbxWidgetListGridViewItemComponent,\n mapValuesToItemValues: (x) => of(x.map((y) => ({ ...y, itemValue: y })))\n };\n}\n\n@Component({\n template: `\n <dbx-widget-view [config]=\"itemValue\"></dbx-widget-view>\n `\n})\nexport class DbxWidgetListGridViewItemComponent extends AbstractDbxValueListViewItemComponent<DbxWidgetDataPair> {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxListLayoutModule } from '../../layout/list/list.layout.module';\nimport { DbxWidgetViewComponent } from './widget.component';\nimport { DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent } from './widget.list.component';\n\n/**\n * Contains components related to displaying \"widgets\" for pieces of data.\n */\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxListLayoutModule,\n DbxInjectionComponentModule\n ],\n declarations: [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent],\n exports: [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent]\n})\nexport class DbxWidgetModule {}\n","// export * from './calendar'; // nothing to export\nexport * from './model';\nexport * from './download';\nexport * from './structure';\n// export * from './table'; // nothing to export\nexport * from './widget';\n","import { DestroyFunction } from '@dereekb/util';\n\n/**\n * Disables the \"contextmenu\" from popping up in the cdk-overlay-container.\n *\n * @param classes\n * @param onEvent\n * @returns\n */\nexport function disableRightClickInCdkBackdrop(classes: string = 'cdk-overlay-container', onEvent?: (event: MouseEvent) => void): DestroyFunction {\n const eventListener = function (this: Element, event: Event) {\n event.preventDefault();\n onEvent?.(event as MouseEvent);\n };\n\n const target = document.getElementsByClassName(classes).item(0);\n\n if (target) {\n target.addEventListener('contextmenu', eventListener);\n return () => target.removeEventListener('contextmenu', eventListener);\n } else {\n return () => {};\n }\n}\n","import { DbxLoadingModule } from './loading/loading.module';\nimport { NgModule } from '@angular/core';\nimport { DbxButtonModule } from './button';\nimport { DbxActionModule } from './action';\n\n@NgModule({\n exports: [DbxButtonModule, DbxActionModule, DbxLoadingModule]\n})\nexport class DbxWebModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4","i1.DbxSpinnerButtonComponent","i2.DbxSpacerDirective","i3","i4.DbxButtonComponent","i5.DbxButtonSpacerDirective","i1","i2","declarations","i1.DbxWindowKeyDownListenerDirective","i2.DbxStyleDirective","i4.DbxPopoverCoordinatorComponent","i2.DbxPopoverContentComponent","i3.DbxPopoverHeaderComponent","i4.DbxPopoverScrollContentComponent","i6","i7","i1.DbxIconButtonComponent","i3.DbxButtonComponent","i5","i6.DbxAnchorComponent","i1.DbxAnchorListComponent","i3.DbxAnchorComponent","i1.DbxAnchorComponent","i2.DbxAnchorComponent","i2.DbxIconButtonComponent","i2.DbxAnchorListComponent","i1.DbxPagebarComponent","i2.DbxButtonSpacerDirective","i3.DbxSidenavButtonComponent","i2.DbxSidenavPagebarComponent","i3.DbxBarDirective","i2.DbxContentContainerDirective","i4.DbxAnchorComponent","i5.DbxTwoColumnColumnHeadComponent","i1.DbxTwoColumnComponent","i1.DbxFlagComponent","i2.DbxLabelBlockComponent","i1.DbxErrorWidgetViewComponent","i1.DbxPopoverContentComponent","i2.DbxPopoverHeaderComponent","i3.DbxPopoverScrollContentComponent","i4.DbxErrorDetailsComponent","i3.DbxErrorViewComponent","i2.DbxReadableErrorComponent","i3.DbxLoadingProgressComponent","i2.DbxBasicLoadingComponent","i2.DbxLoadingComponent","i1.DbxDetailBlockHeaderComponent","i3.DbxReadableErrorComponent","i5.DbxValueListViewContentComponent","i1.DbxSectionHeaderComponent","i2.DbxPopupCoordinatorComponent","i2.DbxButtonComponent","i3.DbxButtonSpacerDirective","i1.DbxPopupControlButtonsComponent","i1.DbxSubSectionComponent","i3.DbxPromptComponent","i2.DbxDialogContentDirective","i3.DbxPromptConfirmComponent","i1.DbxContentContainerDirective","i1.DbxPromptConfirmComponent","i4.DbxButtonSpacerDirective","i5.DbxReadableErrorComponent","i6.DbxActionErrorDirective","DbxActionUIRouterTransitionSafetyDirective","DbxModelStateActions.dbxModelResetState","fromObjectModuleConfig.stateFeatureKey","fromObjectModuleConfig.reducer","onDbxModel.DbxModelStateModelActions.emitObjectViewEvent","fromDbxModel.featureKey","fromDbxModel.reducers","i1.DbxListComponent","i3.DbxValueListGridViewComponent","i4.DbxWidgetViewComponent"],"mappings":"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"}
|