@dereekb/dbx-web 12.3.2 → 12.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/action/action.confirm.directive.mjs +4 -1
- package/esm2022/lib/action/snackbar/action.snackbar.component.mjs +2 -2
- package/esm2022/lib/action/transition/transition.safety.dialog.component.mjs +2 -2
- package/esm2022/lib/button/button.component.mjs +15 -9
- package/esm2022/lib/extension/download/text/download.text.component.mjs +2 -2
- package/esm2022/lib/interaction/filter/filter.wrapper.component.mjs +2 -2
- package/esm2022/lib/interaction/popup/popup.controls.buttons.component.mjs +1 -1
- package/esm2022/lib/interaction/prompt/prompt.confirm.dialog.component.mjs +2 -2
- package/esm2022/lib/interaction/prompt/prompt.confirm.directive.mjs +9 -10
- package/esm2022/lib/layout/text/detail.block.component.mjs +6 -5
- package/esm2022/lib/layout/text/detail.block.header.component.mjs +29 -7
- package/esm2022/lib/layout/text/index.mjs +2 -1
- package/esm2022/lib/layout/text/number.limit.component.mjs +82 -0
- package/esm2022/lib/layout/text/text.module.mjs +4 -3
- package/fesm2022/dereekb-dbx-web.mjs +144 -35
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/lib/action/action.confirm.directive.d.ts +1 -0
- package/lib/button/_button.scss +12 -0
- package/lib/button/button.component.d.ts +17 -2
- package/lib/interaction/dialog/_dialog.scss +29 -0
- package/lib/interaction/prompt/prompt.confirm.directive.d.ts +3 -5
- package/lib/layout/text/_text.scss +23 -1
- package/lib/layout/text/detail.block.component.d.ts +2 -1
- package/lib/layout/text/detail.block.header.component.d.ts +2 -1
- package/lib/layout/text/index.d.ts +1 -0
- package/lib/layout/text/number.limit.component.d.ts +40 -0
- package/lib/layout/text/text.module.d.ts +9 -8
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dereekb-dbx-web.mjs","sources":["../../../../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/interaction/popover/popover.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.component.ts","../../../../packages/dbx-web/src/lib/keypress/keydown.listener.directive.ts","../../../../packages/dbx-web/src/lib/keypress/keypress.module.ts","../../../../packages/dbx-web/src/lib/layout/style/style.ts","../../../../packages/dbx-web/src/lib/layout/style/style.service.ts","../../../../packages/dbx-web/src/lib/layout/style/style.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.directive.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.directive.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/interaction/dialog/dialog.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.ref.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.close.component.ts","../../../../packages/dbx-web/src/lib/screen/resize.ts","../../../../packages/dbx-web/src/lib/screen/resize.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.controls.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.header.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.scroll.content.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.module.ts","../../../../packages/dbx-web/src/lib/button/button.spacer.directive.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/filter/filter.popover.button.directive.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/button.progress.config.ts","../../../../packages/dbx-web/src/lib/button/progress/abstract.progress.button.directive.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/spinner.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.html","../../../../packages/dbx-web/src/lib/button/progress/button.progress.module.ts","../../../../packages/dbx-web/src/lib/button/progress/button.progress.providers.ts","../../../../packages/dbx-web/src/lib/button/button.component.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.module.ts","../../../../packages/dbx-web/src/lib/button/button.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/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/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/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.menu.component.html","../../../../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/interaction/iframe/iframe.component.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.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.service.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.box.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.button.confirm.directive.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/subsection.component.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.dialog.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.container.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.page.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.module.ts","../../../../packages/dbx-web/src/lib/interaction/interaction.module.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.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/loading/loading.action.directive.ts","../../../../packages/dbx-web/src/lib/loading/loading.module.ts","../../../../packages/dbx-web/src/lib/layout/style/spacer.directive.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/action/snackbar/action.snackbar.module.ts","../../../../packages/dbx-web/src/lib/error/error.action.directive.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/action/action.confirm.directive.ts","../../../../packages/dbx-web/src/lib/action/key.trigger.directive.ts","../../../../packages/dbx-web/src/lib/action/action.module.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/error/error.snackbar.component.ts","../../../../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/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.state.service.ts","../../../../packages/dbx-web/src/lib/extension/model/model.providers.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/layout/list/list.view.value.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.item.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/group/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.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/grid/list.grid.view.component.ts","../../../../packages/dbx-web/src/lib/layout/list/grid/list.grid.view.directive.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/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/layout/bar/bar.directive.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.header.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.layout.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.directive.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.component.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/two/two.column.back.directive.ts","../../../../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.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.directive.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/anchor/anchor.segue.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.module.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/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/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.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/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.providers.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.providers.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.ts","../../../../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/column.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/content/content.border.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.box.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.elevate.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/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/list/meta/list.view.meta.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/list/group/list.view.value.group.title.header.component.ts","../../../../packages/dbx-web/src/lib/layout/list/group/list.view.value.group.title.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/list.view.value.modifier.ripple.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/list.view.value.modifier.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/list.modifier.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.content.empty.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.selection.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.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.wrapper.ts","../../../../packages/dbx-web/src/lib/layout/section/section.intro.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.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/style/style.set.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.body.directive.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/layout/style/style.providers.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/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.providers.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 { 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, effect, inject, input } 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 standalone: true\n})\nexport class DbxCompactDirective {\n readonly mode = input.required<CompactMode | boolean>({ alias: 'dbxCompact' });\n\n readonly compactContextStore = inject(CompactContextStore);\n readonly mode$ = this.compactContextStore.mode$;\n\n protected readonly modeEffect = effect(() => {\n this.compactContextStore.setMode(this.mode());\n });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxCompactDirective } from './compact.directive';\n\nconst importsAndExports = [DbxCompactDirective];\n\n/**\n * @deprecated import DbxCompactDirective directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 { 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, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\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 @if (showSignal()) {\n <ng-content></ng-content>\n }\n `,\n standalone: true\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 distinctUntilChanged(),\n shareReplay(1) // TODO: Unsure why this delay is here after all\n );\n\n readonly show$ = this.isPopoverForKey$.pipe(delay(0));\n readonly showSignal = toSignal(this.show$);\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 { HostListener, Directive, input, output, computed } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n@Directive({\n selector: '[dbxWindowKeyDownListener]',\n standalone: true\n})\nexport class DbxWindowKeyDownListenerDirective {\n readonly dbxWindowKeyDownListener = output<KeyboardEvent>();\n\n readonly appWindowKeyDownEnabled = input<boolean>();\n readonly appWindowKeyDownFilter = input<Maybe<string[]>>();\n\n readonly keysFilter = computed(() => {\n const filterOnKeys = this.appWindowKeyDownFilter();\n let filter: Maybe<Set<string>>;\n\n if (filterOnKeys) {\n filter = new Set(filterOnKeys);\n }\n\n return filter;\n });\n\n @HostListener('window:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n const keysFilter = this.keysFilter();\n\n if (this.appWindowKeyDownEnabled() !== false) {\n if (!keysFilter || keysFilter.has(event.key)) {\n this.dbxWindowKeyDownListener.emit(event);\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxWindowKeyDownListenerDirective } from './keydown.listener.directive';\n\n/**\n * @deprecated DbxWindowKeyDownListenerDirective is now standalone. Import that instead.\n */\n@NgModule({\n imports: [DbxWindowKeyDownListenerDirective],\n exports: [DbxWindowKeyDownListenerDirective]\n})\nexport class DbxKeypressModule {}\n","import { CharacterPrefixSuffixCleanString, CssClass, DASH_CHARACTER_PREFIX_INSTANCE, DashPrefixString, type Maybe } from '@dereekb/util';\n\n// MARK: App Styling\n/**\n * An kebab-case style name that uniquely identifies a styling for an app.\n *\n * Examples: 'doc-app'\n */\nexport type DbxStyleName = string;\n\n/**\n * A suffix that can be added to a style class to differentiate a separate mode.\n *\n * Dark mode is an example, with the suffix 'dark' or '-dark'. The suffix does not have to\n */\nexport type DbxStyleClassSuffix = DbxStyleClassCleanSuffix | DbxStyleClassDashSuffix;\n\n/**\n * A DbxStyleClassSuffix that does not start with a dash.\n *\n * Dark mode is an example, with the suffix 'dark'.\n */\nexport type DbxStyleClassCleanSuffix = CharacterPrefixSuffixCleanString;\n\n/**\n * A DbxStyleClassSuffix that starts with a dash.\n *\n * Dark mode is an example, with the suffix '-dark'.\n */\nexport type DbxStyleClassDashSuffix = DashPrefixString;\n\nexport const dbxStyleClassCleanSuffix = DASH_CHARACTER_PREFIX_INSTANCE.cleanString;\n\n/**\n * A style class that is a combination of a style name and a suffix.\n *\n * Examples:\n * - 'doc-app': the default style of an app\n * - 'doc-app-dark': the dark mode style of an app\n */\nexport type DbxStyleClass = string | `${DbxStyleName}${DbxStyleClassSuffix}`;\n\nexport const DBX_DARK_STYLE_CLASS_SUFFIX: DbxStyleClassSuffix = '-dark';\n\nexport interface DbxStyleConfig {\n /**\n * Root style class name.\n */\n readonly style: DbxStyleClass;\n /**\n * Set of all allowed DbxStyleClassSuffixes for the DbxStyleClass in the config, if applicable.\n */\n readonly suffixes?: Set<DbxStyleClassSuffix>;\n}\n\n// MARK: Theme\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 { DASH_CHARACTER_PREFIX_INSTANCE, Destroyable, type Maybe } from '@dereekb/util';\nimport { asObservable, filterMaybe, ObservableOrValue } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, map, switchMap, shareReplay } from 'rxjs';\nimport { Injectable, InjectionToken, inject } from '@angular/core';\nimport { DBX_DARK_STYLE_CLASS_SUFFIX, DbxStyleClass, dbxStyleClassCleanSuffix, DbxStyleClassCleanSuffix, DbxStyleClassSuffix, DbxStyleConfig } from './style';\n\nexport const DBX_STYLE_DEFAULT_CONFIG_TOKEN = new InjectionToken('DbxStyleServiceDefaultConfig');\n\n/**\n * Used for managing styles within an app.\n */\n@Injectable()\nexport class DbxStyleService implements Destroyable {\n private readonly _defaultConfig = new BehaviorSubject<Maybe<DbxStyleConfig>>(inject<DbxStyleConfig>(DBX_STYLE_DEFAULT_CONFIG_TOKEN));\n\n private readonly _config = new BehaviorSubject<Maybe<Observable<DbxStyleConfig>>>(undefined);\n private readonly _styleClassSuffix = new BehaviorSubject<Maybe<DbxStyleClassCleanSuffix>>(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 styleClassSuffix$ = this._styleClassSuffix.pipe(distinctUntilChanged(), shareReplay(1));\n readonly styleClassName$ = this.getStyleClassWithConfig(this.config$);\n\n /**\n * Returns the style class given the input configuration.\n *\n * @param configObs Observable containing the configuration to use.\n * @returns DbxStyleClass\n */\n getStyleClassWithConfig(configObs: Observable<DbxStyleConfig>): Observable<DbxStyleClass> {\n return combineLatest([configObs, this.styleClassSuffix$]).pipe(\n map(([config, suffix]) => {\n let styleClass = config.style;\n\n if (suffix != null && config.suffixes) {\n if (config.suffixes.has(suffix)) {\n styleClass = `${styleClass}${DASH_CHARACTER_PREFIX_INSTANCE.prefixSuffixString(suffix)}`;\n }\n }\n\n return styleClass;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n /**\n * Toggles the dark suffix on/off for the service.\n *\n * @param toggle Whether to toggle the suffix on or off\n */\n toggleDarkSuffix(toggle?: Maybe<boolean>) {\n this.toggleSuffix(DBX_DARK_STYLE_CLASS_SUFFIX, toggle);\n }\n\n /**\n * Toggles the arbitrary suffix on/off for the service.\n *\n * @param suffix The suffix to toggle\n * @param toggle Whether to toggle the suffix on or off\n */\n toggleSuffix(suffix: DbxStyleClassSuffix, toggle?: Maybe<boolean>) {\n // clean the suffix\n suffix = dbxStyleClassCleanSuffix(suffix);\n\n const toggleValue: boolean = toggle != null ? toggle : this.currentStyleClassSuffix !== suffix;\n let suffixValue: Maybe<DbxStyleClassSuffix> = undefined;\n\n if (toggleValue) {\n suffixValue = suffix;\n } else {\n suffixValue = undefined;\n }\n\n this._styleClassSuffix.next(suffixValue);\n }\n\n get currentStyleClassSuffix(): Maybe<DbxStyleClassCleanSuffix> {\n return this._styleClassSuffix.value;\n }\n\n setStyleClassSuffix(suffix: Maybe<DbxStyleClassSuffix>) {\n this._styleClassSuffix.next(suffix ? dbxStyleClassCleanSuffix(suffix) : undefined);\n }\n\n setDefaultConfig(defaultConfig: DbxStyleConfig) {\n this._defaultConfig.next(defaultConfig);\n }\n\n setConfig(config: ObservableOrValue<DbxStyleConfig>) {\n this._config.next(asObservable(config));\n }\n\n destroy(): void {\n this._defaultConfig.complete();\n this._config.complete();\n this._styleClassSuffix.complete();\n }\n}\n","import { Directive, inject, signal, OnInit } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { DbxStyleClass } from './style';\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]': 'styleClassNameSignal()'\n },\n standalone: true\n})\nexport class DbxStyleDirective extends AbstractSubscriptionDirective implements OnInit {\n private readonly _styleService = inject(DbxStyleService);\n\n readonly styleClassNameSignal = signal<Maybe<DbxStyleClass>>(undefined);\n\n ngOnInit(): void {\n this.sub = this._styleService.styleClassName$.pipe(delay(0)).subscribe((classes) => {\n this.styleClassNameSignal.set(classes);\n });\n }\n}\n","import { Component, Type, OnInit, OnDestroy, ElementRef, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgPopoverCloseType, NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponent, 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';\nimport { DbxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbxWindowKeyDownListenerDirective } from '../../keypress';\nimport { DbxStyleDirective } from '../../layout/style/style.directive';\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 readonly key: DbxPopoverKey;\n /**\n * Origin element to position on.\n */\n readonly origin: ElementRef;\n /**\n * Whether or not to close if a transition occurs.\n */\n readonly closeOnTransition?: boolean;\n /**\n * Whether or not to dismiss when the escape button is pressed.\n *\n * False by default.\n */\n readonly closeOnEscape?: boolean;\n /**\n * Component to inject into the popover.\n */\n readonly componentClass: Type<T>;\n /**\n * Panel classes to add to the popover.\n */\n readonly panelClass?: Maybe<SpaceSeparatedCssClasses>;\n /**\n * Data available to the popover.\n */\n readonly data?: Maybe<I>;\n /**\n * Optional function to initialize the popover component.\n *\n * @param component\n * @param controller\n */\n readonly 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 imports: [DbxPopoverCoordinatorComponent, DbxWindowKeyDownListenerDirective, DbxStyleDirective, DbxInjectionComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\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 { 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 { 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 { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\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()\">\n <mat-icon>close</mat-icon>\n </button>\n `,\n host: {\n class: 'dbx-dialog-content-close',\n '[class.dbx-dialog-content-close-padding]': 'padded()'\n },\n standalone: true,\n imports: [MatIconModule, MatIconButton],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDialogContentCloseComponent {\n readonly padded = input<boolean>(true);\n readonly close = output<void>();\n\n closeClicked() {\n this.close.emit(undefined);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ThemePalette } from '@angular/material/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxDialogContentFooterConfig {\n readonly buttonColor?: ThemePalette;\n readonly 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]=\"buttonColorSignal()\" (click)=\"closeClicked()\">{{ closeTextSignal() }}</button>\n `,\n host: {\n class: 'dbx-dialog-content-footer'\n },\n standalone: true,\n imports: [MatButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDialogContentFooterComponent {\n readonly config = input<Maybe<DbxDialogContentFooterConfig>>();\n\n readonly closeText = input<Maybe<string>>();\n readonly buttonColor = input<Maybe<ThemePalette>>();\n\n readonly closeTextSignal = computed(() => this.closeText() ?? this.config()?.closeText ?? 'Close');\n readonly buttonColorSignal = computed(() => this.buttonColor() ?? this.config()?.buttonColor ?? undefined);\n\n readonly close = output<void>();\n\n closeClicked() {\n this.close.emit();\n }\n}\n","import { computed, 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]': `classConfig()`\n },\n standalone: true\n})\nexport class DbxDialogContentDirective {\n readonly width = input<DbxDialogContentContainerWidth>('normal');\n readonly classConfig = computed(() => `${this.width()}-dialog-content`);\n}\n","import { first, Observable } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, ElementRef, inject, input } from '@angular/core';\nimport { AbstractDbxActionValueGetterDirective } from '@dereekb/dbx-core';\nimport { IsEqualFunction, 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 standalone: true\n})\nexport class DbxActionDialogDirective<T = unknown> extends AbstractDbxActionValueGetterDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n readonly dbxActionDialog = input.required<DbxActionDialogFunction<T>>();\n readonly dbxActionDialogIsModified = input<Maybe<IsModifiedFunction>>();\n readonly dbxActionDialogIsEqual = input<Maybe<IsEqualFunction>>();\n\n constructor() {\n super();\n this.configureInputs({\n isModifiedSignal: this.dbxActionDialogIsModified,\n isEqualSignal: this.dbxActionDialogIsEqual\n });\n this.setValueGetterFunction(() => 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 return this.dbxActionDialog()();\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 { NgModule } from '@angular/core';\nimport { DbxDialogContentDirective } from './dialog.content.directive';\nimport { DbxActionDialogDirective } from './dialog.action.directive';\nimport { DbxDialogContentFooterComponent } from './dialog.content.footer.component';\nimport { DbxDialogContentCloseComponent } from './dialog.content.close.component';\n\nconst importsAndExports = [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxDialogModule {}\n\n// MARK: Compat\n/**\n * @deprecated use DbxDialogModule instead.\n */\n@NgModule({\n imports: [DbxDialogModule],\n exports: [DbxDialogModule]\n})\nexport class DbxDialogInteractionModule {}\n","import { DbxPopoverComponent, type DbxPopoverComponentConfig, type 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 readonly _overlay = inject(Overlay);\n private readonly _injector = inject(Injector);\n private readonly _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 { OnDestroy, Directive, ElementRef, output } 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 readonly popoverOpened = output<NgPopoverRef<T, R>>();\n readonly popoverClosed = output<NgPopoverCloseEvent<R>>();\n\n protected override _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n this.popoverOpened.emit(popoverRef);\n }\n\n protected override _afterClosed(event: NgPopoverCloseEvent<R>): void {\n this.popoverClosed.emit(event);\n }\n}\n","import { first, Observable, map } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, ElementRef, inject, input } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractDbxActionValueGetterDirective } from '@dereekb/dbx-core';\nimport { IsEqualFunction, IsModifiedFunction } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxActionPopoverFunctionParams {\n readonly 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 standalone: true\n})\nexport class DbxActionPopoverDirective<T = unknown> extends AbstractDbxActionValueGetterDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n readonly dbxActionPopover = input.required<DbxActionPopoverFunction<T>>();\n readonly dbxActionPopoverIsModified = input<Maybe<IsModifiedFunction>>();\n readonly dbxActionPopoverIsEqual = input<Maybe<IsEqualFunction>>();\n\n constructor() {\n super();\n this.configureInputs({\n isModifiedSignal: this.dbxActionPopoverIsModified,\n isEqualSignal: this.dbxActionPopoverIsEqual\n });\n this.setValueGetterFunction(() => 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 const fn = this.dbxActionPopover();\n\n return fn({\n origin\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { DbxPopoverComponent } from './popover.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\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 imports: [MatIconModule, MatIconButton],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPopoverCloseButtonComponent {\n readonly dbxPopoverComponent = inject(DbxPopoverComponent);\n}\n","import { DestroyRef, ElementRef, inject, Signal, signal } from '@angular/core';\n\n/**\n * Resize event used by resizeSignal.\n *\n * Maintains the same pattern as https://github.com/NemesLaszlo/angular-resize-event\n */\nexport interface ResizedEvent {\n readonly newRect: DOMRectReadOnly;\n readonly oldRect?: DOMRectReadOnly;\n readonly isFirst: boolean;\n}\n\n/**\n * Creates a new Signal that emits resize events.\n *\n * Must be created in an injectable context.\n *\n * @param inputElement The element to observe for resize events. If not provided, the host element will be injected.\n */\nexport function resizeSignal(inputElement?: ElementRef<HTMLElement>): Signal<ResizedEvent> {\n const element = inputElement ?? inject(ElementRef<HTMLElement>);\n\n const destroyRef = inject(DestroyRef);\n const resizeSignal = signal<ResizedEvent>({\n newRect: element.nativeElement.getBoundingClientRect(),\n isFirst: true\n });\n\n let oldRect: DOMRectReadOnly;\n\n const observeEvent = (entries: ResizeObserverEntry[]) => {\n const domSize = entries[0];\n const resizedEvent: ResizedEvent = {\n newRect: domSize.contentRect,\n oldRect,\n isFirst: !oldRect\n };\n\n oldRect = domSize.contentRect;\n resizeSignal.set(resizedEvent);\n };\n\n const observer = new ResizeObserver(observeEvent);\n observer.observe(element.nativeElement);\n\n destroyRef.onDestroy(() => {\n observer.disconnect();\n });\n\n return resizeSignal;\n}\n","import { Directive, inject, ElementRef, output, effect } from '@angular/core';\nimport { ResizedEvent, resizeSignal } from './resize';\n\n/**\n * Directive that emits resize events when the parent element is resized.\n */\n@Directive({\n selector: '[dbxResized]',\n standalone: true\n})\nexport class DbxResizedDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly resizedSignal = resizeSignal(this.elementRef);\n readonly dbxResized = output<ResizedEvent>();\n\n protected _resizeEffect = effect(() => {\n this.dbxResized.emit(this.resizedSignal());\n });\n}\n","import { BehaviorSubject, throttleTime } from 'rxjs';\nimport { OnDestroy, Component, ChangeDetectionStrategy } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ResizedEvent } from '../../screen/resize';\nimport { DbxResizedDirective } from '../../screen/resize.directive';\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\" (dbxResized)=\"onResized($event)\" [style.--popoverh]=\"heightSignal()\">\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 imports: [DbxResizedDirective],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPopoverContentComponent implements OnDestroy {\n readonly hasControls = new BehaviorSubject<boolean>(false);\n readonly hasHeader = new BehaviorSubject<boolean>(false);\n\n private readonly _height = new BehaviorSubject<string>('');\n readonly height$ = this._height.asObservable().pipe(throttleTime(100, undefined, { leading: true, trailing: true }));\n\n readonly heightSignal = toSignal(this.height$);\n\n onResized(event: ResizedEvent): void {\n this._height.next(`${event.newRect.height}px`);\n }\n\n ngOnDestroy(): void {\n this.hasControls.complete();\n this.hasHeader.complete();\n this._height.complete();\n }\n}\n","import { Directive, inject, OnInit } 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 standalone: true\n})\nexport class DbxPopoverControlsDirective implements OnInit {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasControls.next(true);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit, inject, input } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDivider } from '@angular/material/divider';\nimport { Maybe } from '@dereekb/util';\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 @if (icon()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ icon() }}</mat-icon>\n }\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 imports: [MatIconModule, MatDivider],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPopoverHeaderComponent implements OnInit {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n readonly header = input<Maybe<string>>();\n readonly icon = input<Maybe<string>>();\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasHeader.next(true);\n }\n }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Popover scrollable content wrapper component.\n */\n@Directive({\n selector: 'dbx-popover-scroll-content,[dbxPopoverScrollContent],.dbx-popover-scroll-content',\n host: {\n class: 'd-block dbx-popover-scroll-content',\n '[class]': 'sizingClassesSignal()'\n },\n standalone: true\n})\nexport class DbxPopoverScrollContentDirective {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent);\n\n readonly hasControlsSignal = toSignal(this.appPopoverContentComponent.hasControls);\n readonly hasHeaderSignal = toSignal(this.appPopoverContentComponent.hasHeader);\n\n readonly sizingClassesSignal = computed(() => {\n const hasHeader = this.hasHeaderSignal();\n const hasControls = this.hasControlsSignal();\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","import { NgModule } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { DbxPopoverControlsDirective } from './popover.controls.directive';\nimport { DbxPopoverHeaderComponent } from './popover.header.component';\nimport { DbxPopoverScrollContentDirective } from './popover.scroll.content.directive';\nimport { DbxPopoverCloseButtonComponent } from './popover.close.component';\n\nconst importsAndExports = [DbxPopoverContentComponent, DbxPopoverControlsDirective, DbxPopoverHeaderComponent, DbxPopoverCloseButtonComponent, DbxPopoverScrollContentDirective];\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: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPopoverInteractionContentModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbxPopoverComponent } from './popover.component';\nimport { DbxPopoverInteractionContentModule } from './popover.content.module';\nimport { DbxActionPopoverDirective } from './popover.action.directive';\n\nconst importsAndExports = [DbxPopoverComponent, DbxPopoverCoordinatorComponent, DbxActionPopoverDirective, DbxPopoverInteractionContentModule];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPopoverInteractionModule {}\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 standalone: true\n})\nexport class DbxButtonSpacerDirective {}\n","import { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, ElementRef, Type, OnInit, OnDestroy, signal, ChangeDetectionStrategy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Observable, map, skip, first, defaultIfEmpty } from 'rxjs';\nimport { AbstractPopoverDirective } from '../popover/abstract.popover.directive';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { FilterSource, filterMaybe, SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxPopoverKey } from '../popover/popover';\nimport { type Maybe } from '@dereekb/util';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxFilterComponentConfig } from './filter.config';\nimport { DbxPopoverInteractionModule } from '../popover';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\n\nexport interface DbxFilterPopoverComponentConfig<F extends object = object> extends DbxFilterComponentConfig<F> {\n /**\n * Origin to add the popover to.\n */\n readonly origin: ElementRef;\n}\n\nexport const DEFAULT_FILTER_POPOVER_KEY = 'filter';\n\n@Component({\n templateUrl: './filter.popover.component.html',\n imports: [DbxPopoverInteractionModule, DbxInjectionComponent, MatButtonModule, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFilterPopoverComponent<F extends object> extends AbstractPopoverDirective<unknown, DbxFilterComponentConfig<F>> implements OnInit, OnDestroy {\n private readonly _closeOnChangeSub = new SubscriptionObject();\n\n readonly config: DbxFilterComponentConfig<F> = this.popover.data as DbxFilterComponentConfig<F>;\n\n readonly icon = this.config.icon ?? 'filter_list';\n readonly header = this.config.header ?? 'Filter';\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 readonly showPresetSignal = signal<boolean>(false);\n\n readonly config$: Observable<DbxInjectionComponentConfig<FilterSource<F>>> = toObservable(this.showPresetSignal).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 readonly configSignal = toSignal(this.config$);\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 }: DbxFilterPopoverComponentConfig<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 DbxFilterComponentConfig<F>\n });\n }\n\n ngOnInit(): void {\n let showPreset: boolean = false;\n\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.showPresetSignal.set(showPreset);\n }\n\n ngOnDestroy(): void {\n this._closeOnChangeSub.destroy();\n }\n\n showPresets() {\n this.showPresetSignal.set(true);\n }\n\n showCustom() {\n this.showPresetSignal.set(false);\n }\n}\n","<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n @if (showSwitchButtons) {\n @switch (showPresetSignal()) {\n @case (true) {\n <button mat-flat-button color=\"accent\" (click)=\"showCustom()\">{{ customizeButtonText }}</button>\n }\n @case (false) {\n <button mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n }\n }\n }\n @if (showCloseButton) {\n @if (showSwitchButtons) {\n <dbx-button-spacer></dbx-button-spacer>\n }\n <button mat-stroked-button color=\"accent\" (click)=\"close()\">{{ closeButtonText }}</button>\n }\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n","import { Directive, ElementRef, input, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { DbxFilterPopoverComponent } from './filter.popover.component';\nimport { AbstractPopoverRefDirective } from '../popover/abstract.popover.ref.directive';\nimport { FilterSource, PresetFilterSource } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { DbxFilterComponentConfig } from './filter.config';\n\nexport type DbxFilterButtonConfig<F extends object> = DbxFilterComponentConfig<F>;\nexport type DbxFilterButtonConfigWithCustomFilter<F extends object, CF extends FilterSource<F> = FilterSource<F>> = Omit<DbxFilterComponentConfig<F, any, CF, any>, 'presetFilter' | 'presetFilterComponentConfig'>;\nexport type DbxFilterButtonConfigWithPresetFilter<F extends object, PF extends PresetFilterSource<F, any> = PresetFilterSource<F, any>> = Omit<DbxFilterComponentConfig<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 readonly config = input<Maybe<DbxFilterComponentConfig<F, any, any, any>>>(undefined);\n\n protected override _makePopoverRef(origin?: ElementRef): NgPopoverRef<unknown, unknown> {\n const config = this.config();\n\n if (!config) {\n throw new Error('AbstractFilterPopoverButtonDirective(): Missing config.');\n } else if (!origin) {\n throw new Error('AbstractFilterPopoverButtonDirective(): Missing origin.');\n }\n\n return DbxFilterPopoverComponent.openPopover(this.popupService, {\n origin,\n ...config\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MatButtonModule, MatIconButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\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 @switch (buttonDisplayTypeSignal()) {\n @case ('text_button') {\n <button mat-button class=\"mat-unthemed\" [disabled]=\"disabledSignal()\" (click)=\"clickButton()\">\n @if (iconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ iconSignal() }}</mat-icon>\n }\n <span>{{ textSignal() }}</span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n }\n @case ('icon_button') {\n <button mat-icon-button [disabled]=\"disabledSignal()\" (click)=\"clickButton()\">\n <mat-icon>{{ iconSignal() }}</mat-icon>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n }\n }\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n providers: provideDbxButton(DbxIconButtonComponent),\n host: {\n class: 'dbx-icon-button'\n },\n imports: [MatButtonModule, MatIconModule, MatIconButton, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxIconButtonComponent extends AbstractDbxButtonDirective {}\n","import { ChangeDetectionStrategy, Component, ElementRef, input, viewChild } from '@angular/core';\nimport { AbstractFilterPopoverButtonDirective } from './filter.popover.button.directive';\nimport { DbxButtonDisplay } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxIconButtonComponent } from '../../button/icon/icon.button.component';\n\nconst DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT: DbxButtonDisplay = {\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 imports: [DbxIconButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFilterPopoverButtonComponent<F extends object = object> extends AbstractFilterPopoverButtonDirective<F> {\n readonly buttonElement = viewChild<string, Maybe<ElementRef>>('button', { read: ElementRef });\n readonly disabled = input<Maybe<boolean>>();\n readonly buttonDisplay = input<DbxButtonDisplay, Maybe<DbxButtonDisplay>>(DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT, { transform: (x) => x ?? DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT });\n\n showFilterPopover(): void {\n const origin = this.buttonElement()?.nativeElement;\n this.showPopover(origin);\n }\n}\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';\nimport { DbxButtonType } from '../button.component';\n\nexport interface DbxProgressButtonConfig {\n readonly working?: Maybe<boolean>;\n readonly text?: Maybe<string>;\n readonly spinnerText?: Maybe<string>;\n readonly buttonColor?: Maybe<ThemePalette | DbxThemeColor>;\n readonly spinnerColor?: Maybe<ThemePalette | DbxThemeColor>;\n readonly barColor?: Maybe<ThemePalette | DbxThemeColor>;\n /**\n * Whether or not to render as an icon button.\n */\n readonly iconOnly?: Maybe<boolean>;\n readonly spinnerSize?: Maybe<number>;\n readonly spinnerRatio?: Maybe<number>;\n readonly mode?: Maybe<ProgressSpinnerMode>;\n readonly value?: Maybe<number>;\n readonly fullWidth?: Maybe<boolean>;\n readonly disabled?: Maybe<boolean>;\n readonly customStyle?: Maybe<{ [key: string]: string }>;\n readonly customClass?: Maybe<string>;\n /**\n * Custom spinner color. Overrides the normal spinner color if provided.\n */\n readonly customSpinnerColor?: Maybe<string>;\n readonly buttonIcon?: Maybe<DbxProgressButtonIcon>;\n readonly id?: Maybe<string>;\n\n /**\n * The type of button to render.\n */\n readonly buttonType?: Maybe<DbxButtonType>;\n\n /**\n * The HTML attribute \"type\" to add to the button.\n */\n readonly buttonTypeAttribute?: Maybe<string>;\n\n /**\n * @deprecated use buttonType=raised instead\n */\n readonly raised?: Maybe<boolean>;\n /**\n * @deprecated use buttonType=stroked instead\n */\n readonly stroked?: Maybe<boolean>;\n /**\n * @deprecated use buttonType=flat instead\n */\n readonly flat?: Maybe<boolean>;\n\n /**\n * Whether or not this is a floating action button.\n */\n readonly fab?: Maybe<boolean>;\n\n /**\n * @deprecated use buttonTypeAttribute instead\n */\n readonly type?: Maybe<string>;\n}\n\nexport interface DbxProgressButtonIcon {\n readonly color?: Maybe<ThemePalette | DbxThemeColor>;\n readonly fontIcon?: Maybe<string>;\n readonly fontSet?: Maybe<string>;\n readonly inline?: Maybe<boolean>;\n readonly svgIcon?: Maybe<string>;\n readonly customClass?: Maybe<string>;\n}\n\nexport interface DbxProgressButtonTargetedConfig extends DbxProgressButtonConfig {\n readonly id?: Maybe<string>;\n}\n\nexport type DbxProgressButtonGlobalConfig = DbxProgressButtonTargetedConfig[];\n\nexport const DBX_PROGRESS_BUTTON_GLOBAL_CONFIG = new InjectionToken<DbxProgressButtonGlobalConfig>('DbxProgressButtonGlobalConfig');\n\n// MARK: Compat\n/**\n * @deprecated use DbxProgressButtonConfig instead.\n */\nexport type DbxProgressButtonOptions = DbxProgressButtonConfig;\n","import { OnDestroy, Directive, HostListener, inject, computed, input, Signal, output } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { Configurable, CssClass, type Maybe } from '@dereekb/util';\nimport { DbxProgressButtonGlobalConfig, DbxProgressButtonConfig, DbxProgressButtonTargetedConfig, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG } from './button.progress.config';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { DbxButtonType } from '../button.component';\n\n@Directive()\nexport abstract class AbstractProgressButtonDirective extends AbstractSubscriptionDirective implements OnDestroy {\n private readonly globalConfig = inject<DbxProgressButtonGlobalConfig>(DBX_PROGRESS_BUTTON_GLOBAL_CONFIG, { optional: true }) ?? [];\n\n readonly btnClick = output<MouseEvent>();\n\n readonly config = input.required<Maybe<DbxProgressButtonConfig>>();\n readonly buttonId = input<Maybe<string>>();\n readonly working = input<Maybe<boolean>>();\n readonly disabled = input<Maybe<boolean>>();\n\n readonly globalOptionsSignal: Signal<Maybe<DbxProgressButtonConfig>> = computed(() => {\n const buttonId = this.buttonId();\n return buttonId ? this.globalConfig.find((config: DbxProgressButtonTargetedConfig) => config.id === buttonId) : undefined;\n });\n\n readonly configSignal = computed<Maybe<DbxProgressButtonConfig>>(() => {\n const config = this.config();\n const globalConfig = this.globalOptionsSignal();\n\n let completeConfig: Maybe<Configurable<DbxProgressButtonConfig>>;\n\n if (config || globalConfig) {\n completeConfig = {\n ...globalConfig,\n ...config\n };\n\n // set the iconOnly property if the buttonType is icon\n if (completeConfig.buttonType === 'icon') {\n completeConfig.iconOnly = true;\n } else if (completeConfig.iconOnly) {\n completeConfig.buttonType = 'icon';\n }\n }\n\n return completeConfig;\n });\n\n readonly baseCssClassSignal = computed(() => {\n const config = this.configSignal();\n const classes: CssClass[] = [config?.customClass ?? ''];\n\n if (config?.fullWidth) {\n classes.push('fullWidth');\n }\n\n if (config?.disabled) {\n classes.push('disabled');\n }\n\n let buttonType: DbxButtonType = 'basic';\n\n if (config?.buttonType) {\n buttonType = config.buttonType;\n } else if (config?.raised) {\n buttonType = 'raised';\n } else if (config?.stroked) {\n buttonType = 'stroked';\n } else if (config?.flat) {\n buttonType = 'flat';\n } else if (config?.iconOnly) {\n buttonType = 'icon';\n }\n\n switch (buttonType) {\n case 'raised':\n classes.push('mat-mdc-raised-button mdc-button--raised');\n break;\n case 'stroked':\n classes.push('mat-mdc-outlined-button mdc-button--outlined');\n break;\n case 'flat':\n classes.push('mat-mdc-unelevated-button mdc-button--unelevated');\n break;\n default:\n classes.push('mat-unthemed');\n break;\n }\n\n return classes;\n });\n\n readonly baseCssClasses$ = toObservable(this.baseCssClassSignal);\n\n readonly workingSignal = computed(() => (this.working() || this.configSignal()?.working) ?? false);\n readonly disabledSignal = computed(() => (this.disabled() || this.configSignal()?.disabled) ?? false);\n\n readonly buttonTypeAttributeSignal = computed(() => {\n const options = this.configSignal();\n return options?.buttonTypeAttribute ?? options?.type;\n });\n\n readonly buttonDisabledSignal = computed(() => this.workingSignal() || this.disabledSignal());\n readonly showProgressSignal = computed(() => this.workingSignal() && !this.disabledSignal());\n\n @HostListener('click', ['$event'])\n public handleClick(event: MouseEvent): void {\n const working = this.workingSignal();\n const disabled = this.disabledSignal();\n\n if (!working && !disabled) {\n this.btnClick.emit(event);\n event.stopImmediatePropagation();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './abstract.progress.button.directive';\nimport { map, shareReplay } from 'rxjs';\nimport { spaceSeparatedCssClasses } from '@dereekb/util';\nimport { distinctUntilItemsHaveDifferentValues } from '@dereekb/rxjs';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressBar } from '@angular/material/progress-bar';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NgClass, NgStyle } from '@angular/common';\n\n@Component({\n selector: 'dbx-progress-bar-button,dbx-bar-button',\n templateUrl: './bar.button.component.html',\n styleUrls: ['./bar.button.component.scss', './shared.button.component.scss'],\n imports: [MatButtonModule, MatIconModule, MatProgressBar, NgClass, NgStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxProgressBarButtonComponent 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 readonly buttonCssSignal = toSignal(this.buttonCss$);\n}\n","<button class=\"dbx-base-button dbx-progress-bar-button\" mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (configSignal()?.buttonIcon) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet!\" [ngClass]=\"configSignal()?.buttonIcon?.customClass!\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n }\n <span>\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n @if (showProgressSignal()) {\n <mat-progress-bar class=\"bar\" [color]=\"configSignal()?.barColor!\" [mode]=\"configSignal()?.mode!\" [value]=\"configSignal()?.value!\"></mat-progress-bar>\n }\n</button>\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, viewChild } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './abstract.progress.button.directive';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { Maybe, spaceSeparatedCssClasses } from '@dereekb/util';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { NgClass, NgStyle } from '@angular/common';\n\n@Component({\n selector: 'dbx-progress-spinner-button,dbx-spinner-button',\n templateUrl: './spinner.button.component.html',\n styleUrls: ['./spinner.button.component.scss', './shared.button.component.scss'],\n imports: [MatButtonModule, MatIconModule, MatProgressSpinner, NgClass, NgStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxProgressSpinnerButtonComponent extends AbstractProgressButtonDirective {\n readonly buttonRef = viewChild.required<string, ElementRef<HTMLElement>>('button', { read: ElementRef<HTMLElement> });\n\n readonly buttonCssArraySignal = computed(() => {\n const config = this.configSignal();\n const classes = [...this.baseCssClassSignal()];\n\n if (config?.iconOnly) {\n classes.push('mat-mdc-icon-button');\n }\n\n if (config?.fab) {\n classes.push('dbx-progress-spinner-fab');\n }\n\n return classes;\n });\n\n readonly buttonCss$ = toObservable(this.buttonCssArraySignal).pipe(map(spaceSeparatedCssClasses), distinctUntilChanged(), shareReplay(1));\n\n readonly spinnerSizeSignal = computed(() => {\n const config = this.configSignal();\n const buttonRef = this.buttonRef();\n\n const elem = buttonRef.nativeElement;\n const height = elem.clientHeight;\n\n let size: Maybe<number>;\n\n if (config != null) {\n if (config.iconOnly) {\n if (config.fab) {\n size = 48;\n } else {\n size = height;\n }\n } else {\n size = config.spinnerSize;\n }\n }\n\n if (!size) {\n const minimumSpinnerSize = 24;\n const spinnerRatio = config?.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 readonly buttonCssSignal = toSignal(this.buttonCss$);\n\n readonly showTextSignal = computed(() => {\n const config = this.configSignal();\n return !(config?.fab || config?.iconOnly);\n });\n\n readonly showTextButtonIconSignal = computed(() => {\n const config = this.configSignal();\n const showText = this.showTextSignal();\n return showText && config?.buttonIcon; // shows the button icon with showing the text.\n });\n\n readonly showIconSignal = computed(() => {\n const config = this.configSignal();\n return (\n config &&\n config.buttonIcon && // button icon must be defined\n !this.showTextSignal()\n ); // show icon if either fab or iconOnly is true\n });\n\n readonly customSpinnerStyleSignal = computed(() => {\n const customSpinnerColor = this.configSignal()?.customSpinnerColor;\n return customSpinnerColor ? { stroke: customSpinnerColor } : undefined;\n });\n\n readonly customSpinnerStyleClassSignal = computed(() => {\n const hasCustomStyle = Boolean(this.customSpinnerStyleSignal());\n return hasCustomStyle ? { 'dbx-progress-spinner-custom': true } : undefined;\n });\n}\n","<button class=\"dbx-base-button dbx-progress-spinner-button\" #button mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (showTextSignal()) {\n @if (showTextButtonIconSignal()) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet\" [class.working]=\"showProgressSignal()\" [ngClass]=\"configSignal()?.buttonIcon?.customClass\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\">\n {{ configSignal()?.buttonIcon?.fontSet ? '' : configSignal()?.buttonIcon?.fontIcon }}\n </mat-icon>\n }\n <span class=\"button-text\" [class.working]=\"showProgressSignal()\">\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n }\n @if (showIconSignal()) {\n <!-- Use ng-container to prevent mat-icon from being a child of the button which changes the behavior -->\n <ng-container>\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.fab && configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n </ng-container>\n }\n @if (showProgressSignal()) {\n <mat-spinner class=\"spinner\" [diameter]=\"spinnerSizeSignal()\" [color]=\"configSignal()?.spinnerColor!\" [mode]=\"configSignal()?.mode!\" [value]=\"configSignal()?.value!\" [ngStyle]=\"customSpinnerStyleSignal()\" [ngClass]=\"customSpinnerStyleClassSignal()\" [class.working]=\"showProgressSignal()\"></mat-spinner>\n }\n</button>\n","import { NgModule } from '@angular/core';\nimport { DbxProgressBarButtonComponent } from './bar.button.component';\nimport { DbxProgressSpinnerButtonComponent } from './spinner.button.component';\n\nconst importsAndExports = [DbxProgressSpinnerButtonComponent, DbxProgressBarButtonComponent];\n\n/**\n * @deprecated import DbxProgressSpinnerButtonComponent, DbxProgressBarButtonComponent directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxProgressButtonsModule {}\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DbxProgressButtonGlobalConfig, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG } from './button.progress.config';\n\n/**\n * Provides the global configuration for DbxProgressButtonComponent.\n *\n * @param config\n * @returns\n */\nexport function provideDbxProgressButtonGlobalConfig(config: DbxProgressButtonGlobalConfig): EnvironmentProviders {\n const providers: Provider[] = [\n {\n provide: DBX_PROGRESS_BUTTON_GLOBAL_CONFIG,\n useValue: config\n }\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { provideDbxButton, AbstractDbxButtonDirective } from '@dereekb/dbx-core';\nimport { Configurable, isDefinedAndNotFalse, type Maybe } from '@dereekb/util';\nimport { DbxProgressButtonConfig } from './progress/button.progress.config';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { DbxProgressSpinnerButtonComponent } from './progress';\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-progress-spinner-button (btnClick)=\"clickButton()\" [config]=\"configSignal()\">\n <ng-content></ng-content>\n </dbx-progress-spinner-button>\n `,\n providers: provideDbxButton(DbxButtonComponent),\n imports: [DbxProgressSpinnerButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxButtonComponent extends AbstractDbxButtonDirective {\n readonly type = input<Maybe<DbxButtonType>>();\n\n readonly color = input<ThemePalette | DbxThemeColor>(undefined);\n readonly spinnerColor = input<ThemePalette | DbxThemeColor>(undefined);\n readonly customButtonColor = input<Maybe<string>>();\n readonly customTextColor = input<Maybe<string>>();\n readonly customSpinnerColor = input<Maybe<string>>();\n\n readonly basic = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly raised = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly stroked = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly flat = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly iconOnly = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly fab = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n\n readonly typeSignal = computed(() => {\n let type = this.type();\n\n if (!type) {\n type = 'basic';\n\n if (this.raised()) {\n type = 'raised';\n } else if (this.stroked()) {\n type = 'stroked';\n } else if (this.flat()) {\n type = 'flat';\n } else if (this.iconOnly()) {\n type = 'icon';\n }\n }\n\n return type;\n });\n\n readonly configSignal = computed<DbxProgressButtonConfig>(() => {\n // configure custom style\n const customStyle = {} as {\n [key: string]: string;\n };\n\n const customButtonColorValue = this.customButtonColor();\n\n if (customButtonColorValue) {\n customStyle['background'] = customButtonColorValue;\n }\n\n const customTextColorValue = this.customTextColor();\n\n if (customTextColorValue) {\n customStyle['color'] = customTextColorValue;\n }\n\n const customSpinnerColorValue = this.customSpinnerColor();\n const customSpinnerColor: Maybe<string> = customSpinnerColorValue ?? customTextColorValue;\n\n const disabledSignalValue = this.disabledSignal();\n const disabled = !this.workingSignal() && disabledSignalValue; // Only disabled if we're not working, in order to show the animation.\n\n const iconValue = this.iconSignal();\n const buttonIcon = iconValue ? { fontIcon: iconValue } : undefined;\n\n const textValue = this.textSignal();\n const isIconOnlyButton = buttonIcon && !textValue;\n\n const config: Configurable<DbxProgressButtonConfig> = {\n fab: this.fab(),\n working: this.workingSignal(),\n buttonIcon,\n customStyle,\n customClass: 'dbx-button ' + (isIconOnlyButton ? 'dbx-button-no-text' : ''),\n text: textValue ?? '',\n buttonType: this.typeSignal(),\n buttonColor: this.color(),\n barColor: 'accent',\n mode: 'indeterminate',\n spinnerColor: this.spinnerColor() ?? this.color(),\n customSpinnerColor,\n disabled\n };\n\n return config;\n });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxIconButtonComponent } from './icon.button.component';\n\n/**\n * @deprecated import DbxIconButtonComponent directly instead.\n */\n@NgModule({\n imports: [DbxIconButtonComponent],\n exports: [DbxIconButtonComponent]\n})\nexport class DbxIconButtonModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxButtonComponent } from './button.component';\nimport { DbxButtonSpacerDirective } from './button.spacer.directive';\nimport { DbxCoreButtonModule } from '@dereekb/dbx-core';\nimport { DbxIconButtonComponent } from './icon';\nimport { DbxProgressSpinnerButtonComponent, DbxProgressBarButtonComponent } from './progress';\n\nconst importsAndExports = [\n DbxCoreButtonModule,\n DbxIconButtonComponent,\n // buttons\n DbxButtonComponent,\n DbxButtonSpacerDirective,\n // progress\n DbxProgressSpinnerButtonComponent,\n DbxProgressBarButtonComponent\n];\n\n/**\n * Provides all base @dereekb/dbx-core and @dereekb/dbx-web button components.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxButtonModule {}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { AbstractDbxActionHandlerDirective, FilterSourceDirective, provideActionStoreSource } from '@dereekb/dbx-core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxButtonModule } from '../../button/button.module';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\nimport { WorkInstance } from '@dereekb/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 standalone: true,\n imports: [DbxButtonModule, MatButtonModule, MatIconModule, FlexLayoutModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxFilterWrapperComponent<F = unknown> extends AbstractDbxActionHandlerDirective<F> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n readonly showButtons = input(true);\n readonly applyRaised = input(true);\n readonly applyIcon = input('filter_list');\n readonly applyText = input('Filter');\n\n constructor() {\n super();\n\n // configure handler function\n this._dbxActionHandlerInstance.setHandlerFunction((filter: F, instance: WorkInstance<F, unknown>) => {\n this.filterSourceDirective.setFilter(filter);\n instance.success(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 @if (showButtons()) {\n <div 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 }\n</div>\n","import { shareReplay, map, Observable, combineLatest, distinctUntilChanged, startWith } from 'rxjs';\nimport { Directive, inject, input, output } 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';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n@Directive()\nexport abstract class AbstractDbxPresetFilterMenuDirective<F extends FilterWithPreset> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n readonly presetSelected = output<ClickableFilterPresetOrPartialPreset<F>>();\n readonly presets = input<ClickableFilterPresetOrPartialPreset<F>[]>([]);\n\n readonly presets$ = toObservable(this.presets);\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 readonly presetAnchorsSignal = toSignal(this.presetAnchors$, { initialValue: [] });\n readonly selectedPresetSignal = toSignal(this.selectedPreset$);\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 // emit before setting filter, as the view might be destroyed as a result of the filter being set\n this.presetSelected.emit(preset);\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}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\n/**\n * Provider that describes to the app how to handle anchors.\n *\n * Use provideDbxRouterWebUiRouterProviderConfig() if using UIRouter in your application.\n * or\n * Use provideDbxRouterWebAngularRouterProviderConfig() if using Angular Router in your application.\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 { skipAllInitialMaybe } from '@dereekb/rxjs';\nimport { Component, TemplateRef, HostListener, inject, viewChild, input, ChangeDetectionStrategy, computed } from '@angular/core';\nimport { AbstractDbxAnchorDirective, DbxInjectionComponentConfig, DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { NgTemplateOutlet, NgClass } from '@angular/common';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { shareReplay } 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 template: `\n @switch (typeSignal()) {\n @case ('plain') {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n @case ('clickable') {\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"selectedClassSignal()\" (click)=\"clickAnchor()\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n @case ('sref') {\n <dbx-injection [config]=\"srefAnchorConfig\">\n <!-- Injected in child. -->\n </dbx-injection>\n }\n @case ('href') {\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"urlSignal()\" [attr.target]=\"targetSignal()\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n @case ('disabled') {\n <a class=\"dbx-anchor-a dbx-anchor-disabled\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n }\n <!-- Template content -->\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n standalone: true,\n imports: [NgTemplateOutlet, NgClass, DbxInjectionComponent],\n host: {\n class: 'd-inline dbx-anchor',\n 'dbx-anchor-block': 'block()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxAnchorComponent extends AbstractDbxAnchorDirective {\n private readonly _dbNgxRouterWebProviderConfig = inject(DbxRouterWebProviderConfig);\n\n readonly block = input<Maybe<boolean>>();\n\n readonly templateRef = viewChild<string, Maybe<TemplateRef<unknown>>>('content', { read: TemplateRef });\n readonly templateRef$ = toObservable(this.templateRef).pipe(skipAllInitialMaybe(), shareReplay(1));\n\n readonly selectedClassSignal = computed(() => (this.selectedSignal() ? 'dbx-anchor-selected' : ''));\n\n readonly srefAnchorConfig: DbxInjectionComponentConfig = this._dbNgxRouterWebProviderConfig.anchorSegueRefComponent;\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","import { ChangeDetectionStrategy, Component, computed, input, Signal } from '@angular/core';\nimport { ClickableAnchorLinkTree, DbxInjectionComponent, ExpandedClickableAnchorLinkTree, expandClickableAnchorLinkTrees } from '@dereekb/dbx-core';\nimport { Configurable, type Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from '../anchor/anchor.component';\nimport { MatListItem, MatListItemIcon, MatListItemLine, MatListItemTitle, MatNavList } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDivider } from '@angular/material/divider';\nimport { NgClass } from '@angular/common';\n\nexport interface DbxAnchorListExpandedAnchor extends ExpandedClickableAnchorLinkTree {\n readonly 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 imports: [NgClass, MatNavList, MatListItem, MatListItemIcon, MatListItemLine, MatListItemTitle, MatIconModule, MatDivider, DbxAnchorComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxAnchorListComponent {\n readonly anchors = input.required<ClickableAnchorLinkTree[], Maybe<ClickableAnchorLinkTree[]>>({ transform: (x) => x ?? [] });\n\n readonly expandedAnchors: Signal<DbxAnchorListExpandedAnchor[]> = computed(() => {\n const anchors = this.anchors();\n return expandClickableAnchorLinkTrees(anchors).map((y) => {\n (y as Configurable<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}\n","<mat-nav-list class=\"dbx-anchor-list\">\n @for (expanded of expandedAnchors(); track $index; let last = $last) {\n <dbx-anchor [anchor]=\"expanded.value\" [ngClass]=\"expanded.classes\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\">\n @if (expanded.value.icon) {\n <mat-icon matListItemIcon>{{ expanded.value.icon }}</mat-icon>\n }\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div matListItemTitle>{{ expanded.value.title }}</div>\n @if (expanded.value.hint) {\n <div matListItemLine class=\"dbx-small\">{{ expanded.value.hint }}</div>\n }\n @if (expanded.value.content) {\n <dbx-injection [config]=\"expanded.value.content\"></dbx-injection>\n }\n </a>\n @if (!last) {\n <mat-divider></mat-divider>\n }\n </dbx-anchor>\n }\n</mat-nav-list>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\nimport { DbxAnchorListComponent } from '../../router/layout/anchorlist/anchorlist.component';\n\n@Component({\n selector: 'dbx-preset-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchorsSignal()\"></dbx-anchor-list>\n `,\n imports: [DbxAnchorListComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPresetFilterListComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {}\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 readonly unknownSelectionText?: string;\n /**\n * The icon to use for the filter, or false if no icon should be shown.\n */\n readonly 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 readonly 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 { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxAnchorComponent } from '../../router/layout/anchor/anchor.component';\nimport { NgClass } from '@angular/common';\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 imports: [NgClass, MatButtonModule, MatMenuModule, MatIconModule, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPresetFilterMenuComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {\n readonly config = input<DbxPresetFilterMenuConfig>({});\n readonly config$ = toObservable(this.config);\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this.config$, this.selectedPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this.config$, this.selectedPreset$);\n\n readonly buttonTextSignal = toSignal(this.buttonText$);\n readonly buttonIconSignal = toSignal(this.buttonIcon$);\n}\n","<button mat-button [matMenuTriggerFor]=\"menu\" class=\"dbx-preset-filter-menu-button\" aria-label=\"open filter\">\n @if (buttonIconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ buttonIconSignal() }}</mat-icon>\n }\n <span>{{ buttonTextSignal() }}</span>\n</button>\n<mat-menu #menu class=\"dbx-preset-filter-menu\">\n @for (anchor of presetAnchorsSignal(); track $index) {\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-menu-item [ngClass]=\"anchor.selected ? 'active' : ''\">\n @if (anchor.icon) {\n <mat-icon>{{ anchor.icon }}</mat-icon>\n }\n {{ anchor.title }}\n </button>\n </dbx-anchor>\n }\n</mat-menu>\n","import { shareReplay, map, Observable, combineLatest, distinctUntilChanged, startWith, first } from 'rxjs';\nimport { Directive, inject, input } from '@angular/core';\nimport { ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset } from '@dereekb/dbx-core';\nimport { filterUndefinedValues, firstValue, getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Displays a button and menu for filtering partialPresets.\n */\n@Directive()\nexport abstract class AbstractDbxPartialPresetFilterMenuDirective<F> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n readonly partialPresets = input<ClickablePartialFilterPreset<F>[], Maybe<ClickablePartialFilterPreset<F>[]>>([], { transform: (x) => x ?? [] });\n readonly partialPresets$ = toObservable(this.partialPresets);\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]) => partialPresets.filter((x) => x.isActive(selectedFilter))),\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 readonly presetAnchorsSignal = toSignal(this.presetAnchors$);\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","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxAnchorComponent } from '../../router/layout/anchor/anchor.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { NgClass } from '@angular/common';\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.partial.menu.component.html', // share the same template as the preset menu\n imports: [NgClass, MatMenuModule, MatButtonModule, MatIconModule, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPartialPresetFilterMenuComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {\n readonly config = input<DbxPresetFilterMenuConfig>({});\n readonly config$ = toObservable(this.config);\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this.config$, this.firstSelectedPartialPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this.config$, this.firstSelectedPartialPreset$);\n\n readonly buttonTextSignal = toSignal(this.buttonText$);\n readonly buttonIconSignal = toSignal(this.buttonIcon$);\n}\n","<button mat-button [matMenuTriggerFor]=\"menu\" class=\"dbx-preset-filter-menu-button\" aria-label=\"open filter\">\n @if (buttonIconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ buttonIconSignal() }}</mat-icon>\n }\n <span>{{ buttonTextSignal() }}</span>\n</button>\n<mat-menu #menu class=\"dbx-preset-filter-menu\">\n @for (anchor of presetAnchorsSignal(); track anchor.title) {\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-menu-item [ngClass]=\"anchor.selected ? 'active' : ''\">{{ anchor.title }}</button>\n </dbx-anchor>\n }\n</mat-menu>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\nimport { DbxAnchorListComponent } from '../../router/layout/anchorlist/anchorlist.component';\n\n@Component({\n selector: 'dbx-preset-partial-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchorsSignal()\"></dbx-anchor-list>\n `,\n imports: [DbxAnchorListComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPartialPresetFilterListComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {}\n","import { NgModule } from '@angular/core';\nimport { DbxFilterPopoverButtonComponent } from './filter.popover.button.component';\nimport { DbxFilterPopoverComponent } from './filter.popover.component';\nimport { DbxFilterWrapperComponent } from './filter.wrapper.component';\nimport { DbxCoreFilterModule } from '@dereekb/dbx-core';\nimport { DbxPresetFilterListComponent } from './filter.preset.list.component';\nimport { DbxPresetFilterMenuComponent } from './filter.preset.menu.component';\nimport { DbxPartialPresetFilterMenuComponent } from './filter.partial.menu.component';\nimport { DbxPartialPresetFilterListComponent } from './filter.partial.list.component';\n\nconst importsAndExports = [DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxFilterPopoverComponent, DbxFilterPopoverButtonComponent, DbxFilterWrapperComponent, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent, DbxCoreFilterModule];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxFilterInteractionModule {}\n","import { Component, viewChild, ElementRef, OnDestroy, ChangeDetectionStrategy, computed, inject, SecurityContext, output , input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { asyncScheduler, combineLatest, delayWhen, map, Subject, switchMap, timer, startWith } from 'rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\nexport const DBX_IFRAME_COMPONENT_TEMPLATE = `<iframe #iframe src=\"about:blank\" frameborder=\"0\" [scrolling]=\"scrolling()\" allow=\"autoplay\"></iframe>`;\n\n@Component({\n selector: 'dbx-iframe',\n template: DBX_IFRAME_COMPONENT_TEMPLATE,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxIframeComponent extends AbstractSubscriptionDirective implements OnDestroy {\n readonly sanitizer = inject(DomSanitizer);\n\n readonly iframeLocationChanged = output<ElementRef<HTMLIFrameElement>>();\n readonly iframe = viewChild<string, ElementRef<HTMLIFrameElement>>('iframe', { read: ElementRef });\n\n readonly scrolling = input<'auto' | 'no' | 'yes', 'auto' | 'no' | 'yes' | boolean>('no', { transform: (x) => (x == null ? 'no' : typeof x === 'string' ? x : x === true ? 'auto' : 'no') });\n\n readonly sanitizeUrl = input<boolean>(false);\n readonly contentUrl = input.required<Maybe<string | SafeResourceUrl>>();\n\n readonly contentUrlSignal = computed(() => {\n let url: Maybe<string | SafeResourceUrl> = this.contentUrl();\n const sanitizeUrl = this.sanitizeUrl();\n\n if (url && typeof url === 'string' && sanitizeUrl) {\n url = this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n return url;\n });\n\n readonly iframe$ = toObservable(this.iframe);\n readonly contentUrl$ = toObservable(this.contentUrl);\n\n readonly retry = new Subject<void>();\n\n constructor() {\n super();\n this.sub = combineLatest([this.contentUrl$, this.iframe$])\n .pipe(\n // delay retries by 50ms\n switchMap((x) =>\n this.retry.pipe(\n startWith(undefined),\n delayWhen((_, i) => timer(i ? 50 : 0, asyncScheduler)),\n map(() => x)\n )\n )\n )\n .subscribe(([x, iframe]) => {\n const contentWindow = iframe?.nativeElement.contentWindow;\n\n if (contentWindow) {\n let url: Maybe<string> = undefined;\n\n if (x != null && typeof x !== 'string') {\n url = this.sanitizer.sanitize(SecurityContext.URL, x);\n } else {\n url = x;\n }\n\n contentWindow.location.replace(url ?? '');\n } else {\n this.retry.next(); // queue up another retry for setting the iframe value\n }\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.retry.complete();\n }\n}\n","import { GlobalPositionStrategy } from '@angular/cdk/overlay';\n\nexport type PopupPosition = 'center' | 'bottom_left' | 'bottom_right';\n\nexport interface PopupPositionOffset {\n readonly x?: string;\n readonly 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 const DbxPopupWindowState = {\n NORMAL: 'normal' as const,\n MINIMIZED: 'minimized' as const,\n FULLSCREEN: 'fullscreen' as const\n} as const;\n\nexport type DbxPopupWindowStateType = (typeof DbxPopupWindowState)[keyof typeof DbxPopupWindowState];\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<DbxPopupWindowStateType>;\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 readonly _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 { ChangeDetectionStrategy, Component, OnDestroy, OnInit, inject } from '@angular/core';\nimport { DbxPopupCoordinatorService } from './popup.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\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 @if (showSignal()) {\n <ng-content></ng-content>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\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\n readonly show$ = this.isPopupForKey$.pipe(delay(0));\n readonly showSignal = toSignal(this.show$);\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, ChangeDetectionStrategy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Maybe, PixelsString } from '@dereekb/util';\nimport { CompactContextStore } from '../../layout/compact/compact.store';\nimport { CompactMode } from '../../layout/compact/compact';\nimport { BehaviorSubject, Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopupGlobalPositionStrategy, PopupPosition, PopupPositionOffset } from './popup.position.strategy';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxPopupController, DbxPopupKey, DbxPopupWindowState, DbxPopupWindowStateType } from './popup';\nimport { DbxPopupCoordinatorComponent } from './popup.coordinator.component';\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 readonly 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 readonly key: DbxPopupKey;\n readonly position?: Maybe<PopupPosition>;\n readonly offset?: Maybe<PopupPositionOffset>;\n readonly closeOnTransition?: Maybe<boolean>;\n readonly componentClass: Type<T>;\n readonly data?: Maybe<I>;\n readonly isDraggable?: Maybe<boolean>;\n readonly init?: (component: T, controller: DbxPopupController<O, I>) => void;\n readonly width?: Maybe<PixelsString>;\n readonly height?: Maybe<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 imports: [DbxPopupCoordinatorComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPopupComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopupController<O, I>, OnDestroy {\n private readonly popoverRef = inject(NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O>);\n private readonly compactContextState = inject(CompactContextStore);\n\n private _position: PopupGlobalPositionStrategy;\n\n readonly config: DbxPopupComponentConfig<O, I, T> = this.popoverRef.data;\n readonly key: DbxPopupKey = this.config.key;\n readonly data: Maybe<I> = this.config.data;\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<DbxPopupWindowStateType>(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 ?? undefined, this.config.offset ?? undefined);\n this.popoverRef.overlay.updatePositionStrategy(this._position);\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 return(value?: O): void {\n this.closing.next();\n this.popoverRef.close(value);\n }\n\n 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 normalscreen(): void {\n this.popoverRef.isDraggable = this.config.isDraggable ?? undefined;\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 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 { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\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 @if (showContentSignal()) {\n <div class=\"dbx-popup-content-container\">\n <ng-content></ng-content>\n </div>\n }\n `,\n host: {\n class: 'dbx-popup-content'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPopupContentComponent {\n private readonly appPopupController = inject(DbxPopupController);\n\n readonly showContent$ = this.appPopupController.windowState$.pipe(map((x) => x !== DbxPopupWindowState.MINIMIZED));\n readonly showContentSignal = toSignal(this.showContent$, { initialValue: true });\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\nimport { DbxButtonModule } from '../../button/button.module';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\n\n/**\n * Popup Control Buttons.\n */\n@Component({\n selector: 'dbx-popup-control-buttons',\n template: `\n @switch (isMinimizedSignal()) {\n @case (false) {\n <dbx-button [flat]=\"true\" icon=\"minimize\" (buttonClick)=\"minimizeClicked()\"></dbx-button>\n }\n @case (true) {\n <dbx-button [flat]=\"true\" icon=\"maximize\" (buttonClick)=\"maximizeClicked()\"></dbx-button>\n }\n }\n <dbx-button-spacer></dbx-button-spacer>\n @switch (isFullscreenSignal()) {\n @case (false) {\n <dbx-button [flat]=\"true\" icon=\"open_in_full\" (buttonClick)=\"fullscreenClicked()\"></dbx-button>\n }\n @case (true) {\n <dbx-button [flat]=\"true\" icon=\"close_fullscreen\" (buttonClick)=\"normalscreenClicked()\"></dbx-button>\n }\n }\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 changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxButtonModule, DbxButtonSpacerDirective],\n standalone: true\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 readonly isMinimizedSignal = toSignal(this.isMinimized$, { initialValue: false });\n readonly isFullscreenSignal = toSignal(this.isFullscreen$, { initialValue: false });\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 { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { DbxPopupControlButtonsComponent } from './popup.controls.buttons.component';\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 imports: [DbxPopupControlButtonsComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPopupControlsComponent {\n readonly header = input<string>();\n}\n","import { DbxPopupCoordinatorComponent } from './popup.coordinator.component';\nimport { NgModule } from '@angular/core';\nimport { DbxPopupContentComponent } from './popup.content.component';\nimport { DbxPopupComponent } from './popup.component';\nimport { DbxPopupControlsComponent } from './popup.controls.component';\nimport { DbxPopupControlButtonsComponent } from './popup.controls.buttons.component';\n\nconst importsAndExports = [DbxPopupComponent, DbxPopupCoordinatorComponent, DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPopupInteractionModule {}\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 readonly injector?: Injector;\n}\n\n/**\n * Used for displaying a popup.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopupService {\n private readonly _overlay = inject(Overlay);\n private readonly _injector = inject(Injector);\n private readonly _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, input } from '@angular/core';\n\n@Directive({\n selector: 'dbx-prompt-box, [dbxPromptBox]',\n host: {\n class: 'd-block dbx-prompt-box',\n '[class.elevate]': 'elevate()'\n },\n standalone: true\n})\nexport class DbxPromptBoxDirective {\n readonly elevate = input<boolean>(true);\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 { 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 standalone: true\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 { Component, computed, input, ChangeDetectionStrategy, signal } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxSectionHeaderConfig, DbxSectionHeaderHType } from './section';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgTemplateOutlet } from '@angular/common';\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 @if (showTitleSignal()) {\n @switch (headerConfigSignal().h ?? 1) {\n @case (1) {\n <h1 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h1>\n }\n @case (2) {\n <h2 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h2>\n }\n @case (3) {\n <h3 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h3>\n }\n @case (4) {\n <h4 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h4>\n }\n @case (5) {\n <h5 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h5>\n }\n }\n <span class=\"spacer\"></span>\n }\n <ng-content></ng-content>\n </div>\n <!-- Show Hint Not Inline -->\n @if (headerConfigSignal().hint && !headerConfigSignal().hintInline) {\n <p class=\"dbx-section-hint dbx-hint\">{{ headerConfigSignal().hint }}</p>\n }\n <ng-template #headerContentTitleTemplate>\n @if (headerConfigSignal().icon) {\n <mat-icon>{{ headerConfigSignal().icon }}</mat-icon>\n }\n <span class=\"title-text\">\n {{ headerConfigSignal().header }}\n <!-- Show Hint Inline -->\n @if (headerConfigSignal().hint && headerConfigSignal().hintInline) {\n <span class=\"dbx-section-hint-inline dbx-hint\">{{ headerConfigSignal().hint }}</span>\n }\n </span>\n </ng-template>\n `,\n standalone: true,\n imports: [MatIconModule, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.dbx-section-header-full-title]': 'headerConfigSignal().onlyHeader',\n '[class.dbx-section-header-padded]': 'headerConfigSignal().paddedHeader'\n }\n})\nexport class DbxSectionHeaderComponent {\n readonly headerConfig = input<Maybe<DbxSectionHeaderConfig>>();\n\n readonly h = input<Maybe<DbxSectionHeaderHType>>();\n readonly paddedHeader = input<Maybe<boolean>>();\n readonly header = input<Maybe<string>>();\n readonly onlyHeader = input<Maybe<boolean>>();\n readonly icon = input<Maybe<string>>();\n readonly hint = input<Maybe<string>>();\n readonly hintInline = input<Maybe<boolean>>();\n\n readonly hintInlineDefault = signal<Maybe<boolean>>(undefined);\n\n readonly headerConfigSignal = computed(() => {\n const headerConfig = this.headerConfig();\n\n const config: DbxSectionHeaderConfig = {\n h: this.h() ?? headerConfig?.h,\n paddedHeader: this.paddedHeader() ?? headerConfig?.paddedHeader,\n header: this.header() ?? headerConfig?.header,\n onlyHeader: this.onlyHeader() ?? headerConfig?.onlyHeader,\n icon: this.icon() ?? headerConfig?.icon,\n hint: this.hint() ?? headerConfig?.hint,\n hintInline: this.hintInline() ?? headerConfig?.hintInline ?? this.hintInlineDefault()\n };\n\n return config;\n });\n\n readonly showTitleSignal = computed(() => {\n const headerConfig = this.headerConfigSignal();\n return Boolean(headerConfig.header || headerConfig.icon);\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, 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]=\"headerConfigSignal().h ?? 3\" [header]=\"headerConfigSignal().header\" [onlyHeader]=\"headerConfigSignal().onlyHeader\" [icon]=\"headerConfigSignal().icon\" [hint]=\"headerConfigSignal().hint\" [hintInline]=\"headerConfigSignal().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]': 'classConfig()'\n },\n imports: [DbxSectionHeaderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSectionComponent extends DbxSectionHeaderComponent {\n readonly elevate = input<boolean>(false);\n\n readonly classConfig = computed(() => {\n return this.elevate() ? 'dbx-section-elevate dbx-content-elevate' : '';\n });\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\nimport { DbxSectionHeaderComponent } from './section.header.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]=\"headerConfigSignal().h ?? 4\" [header]=\"headerConfigSignal().header\" [onlyHeader]=\"headerConfigSignal().onlyHeader\" [icon]=\"headerConfigSignal().icon\" [hint]=\"headerConfigSignal().hint\" [hintInline]=\"headerConfigSignal().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 standalone: true,\n imports: [DbxSectionHeaderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSubSectionComponent extends DbxSectionComponent {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxSubSectionComponent } from '../../layout/section/subsection.component';\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 standalone: true,\n imports: [DbxSubSectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPromptComponent {\n readonly header = input<Maybe<string>>();\n readonly prompt = input<Maybe<string>>();\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { DbxPromptComponent } from './prompt.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxPromptConfirmConfig {\n readonly title?: string;\n readonly prompt?: string;\n readonly confirmText?: string;\n readonly cancelText?: string;\n}\n\n/**\n * Displays a confirmation dialog.\n */\n@Component({\n selector: 'dbx-prompt-confirm',\n template: `\n <dbx-prompt [header]=\"config()?.title\" [prompt]=\"config()?.prompt\">\n <ng-content></ng-content>\n <button mat-stroked-button (click)=\"onConfirm()\">{{ confirmTextSignal() }}</button>\n <dbx-button-spacer></dbx-button-spacer>\n <button mat-stroked-button color=\"warn\" (click)=\"onCancel()\">{{ cancelTextSignal() }}</button>\n </dbx-prompt>\n `,\n standalone: true,\n imports: [DbxPromptComponent, MatButtonModule, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPromptConfirmComponent {\n readonly config = input<Maybe<DbxPromptConfirmConfig>>({});\n\n readonly confirmTextSignal = computed(() => this.config()?.confirmText || 'Confirm');\n readonly cancelTextSignal = computed(() => this.config()?.cancelText || 'Cancel');\n\n readonly confirm = output<void>();\n readonly cancel = output<void>();\n\n onConfirm(): void {\n this.confirm.emit();\n }\n\n onCancel(): void {\n this.cancel.emit();\n }\n}\n","import { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, ChangeDetectionStrategy, OnInit } from '@angular/core';\nimport { AbstractDialogDirective } from '../dialog/abstract.dialog.directive';\nimport { DbxPromptConfirmComponent, DbxPromptConfirmConfig } from './prompt.confirm.component';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxDialogContentDirective } from '../dialog/dialog.content.directive';\n\nexport const DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG = {\n title: 'Confirm?'\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 standalone: true,\n imports: [DbxDialogContentDirective, DbxPromptConfirmComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\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, effect, inject, input } 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 _currentDialogRef?: MatDialogRef<DbxPromptConfirmDialogComponent, boolean>;\n private _currentDialogPromise?: Promise<boolean>;\n\n /**\n * Config used when showDialog() is called.\n */\n config?: Maybe<DbxPromptConfirmConfig>;\n\n showDialog(): Observable<boolean> {\n if (!this._currentDialogPromise) {\n this._currentDialogPromise = new Promise<boolean>((resolve) => {\n this._currentDialogRef = DbxPromptConfirmDialogComponent.openDialog(this.matDialog, this.config);\n this._currentDialogRef.afterClosed().subscribe((result: Maybe<boolean>) => {\n this._currentDialogRef = undefined;\n this._currentDialogPromise = undefined;\n resolve(this._handleDialogResult(Boolean(result)));\n });\n });\n }\n\n return from(this._currentDialogPromise);\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 standalone: true\n})\nexport class DbxPromptConfirmDirective extends AbstractPromptConfirmDirective {\n readonly dbxPromptConfirm = input<Maybe<DbxPromptConfirmConfig>>();\n\n protected readonly _dbxPromptConfirmConfigEffect = effect(() => {\n this.config = this.dbxPromptConfirm();\n });\n}\n","import { Directive, input, computed } 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]': `classConfig()`\n },\n standalone: true\n})\nexport class DbxContentContainerDirective {\n readonly grow = input<DbxContentContainerWidth>('wide');\n readonly padding = input<DbxContentContainerPadding>('normal');\n readonly topPadding = input<DbxContentContainerPadding>('none');\n\n readonly classConfig = computed(() => {\n const classConfig = 'container-' + this.grow() + ' container-padding-' + this.padding() + ' container-top-padding-' + this.topPadding();\n return classConfig;\n });\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DbxContentContainerDirective } from '../../layout/content/content.container.directive';\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 imports: [DbxContentContainerDirective],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPromptPageComponent {}\n","import { DbxPromptComponent } from './prompt.component';\nimport { NgModule } from '@angular/core';\nimport { DbxPromptBoxDirective } from './prompt.box.directive';\nimport { DbxPromptPageComponent } from './prompt.page.component';\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';\n\nconst importsAndExports = [DbxPromptComponent, DbxPromptBoxDirective, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPromptModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxDialogModule } 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\nconst importsAndExports = [DbxPromptModule, DbxDialogModule, DbxFilterInteractionModule, DbxPopoverInteractionModule, DbxPopupInteractionModule];\n\n/**\n * @deprecated import individual modules instead.\n *\n * @see DbxDialogModule\n * @see DbxFilterInteractionModule\n * @see DbxPromptModule\n * @see DbxPopoverInteractionModule\n * @see DbxPopupInteractionModule\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxInteractionModule {}\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 { ChangeDetectionStrategy, 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 standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxLabelBlockComponent {\n readonly header = input<Maybe<string>>();\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ServerError, ServerErrorResponseData } from '@dereekb/util';\nimport { AbstractDbxErrorWidgetComponent } from './error.widget.directive';\nimport { DbxLabelBlockComponent } from '../layout/text/label.block.component';\nimport { JsonPipe } from '@angular/common';\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 @if (serverErrorData) {\n <dbx-label-block header=\"Error Data\">\n <p class=\"dbx-json\">{{ serverErrorData | json }}</p>\n </dbx-label-block>\n }\n `,\n host: {\n class: 'd-block dbx-error-default-error-widget dbx-content-container'\n },\n imports: [DbxLabelBlockComponent, JsonPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxErrorDefaultErrorWidgetComponent extends AbstractDbxErrorWidgetComponent<ServerError> {\n get serverErrorData(): ServerErrorResponseData | undefined {\n return this.data.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 readonly _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 { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { Maybe, ReadableError, ReadableErrorWithCode } from '@dereekb/util';\nimport { DbxInjectionComponent, 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]=\"errorWithCodeSignal()\"></dbx-injection>\n `,\n host: {\n class: 'dbx-error-widget-view'\n },\n imports: [DbxInjectionComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorWidgetViewComponent {\n readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n\n readonly error = input<Maybe<ReadableError>>();\n\n readonly errorWithCodeSignal = computed<Maybe<DbxInjectionComponentConfig>>(() => {\n const currentError = this.error();\n const error: Maybe<ReadableErrorWithCode> = currentError && currentError.code ? (currentError as ReadableErrorWithCode) : undefined;\n\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","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { Maybe, ReadableError } from '@dereekb/util';\nimport { DbxErrorWidgetViewComponent } from './error.widget.component';\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 imports: [DbxErrorWidgetViewComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorDetailsComponent {\n readonly error = input<Maybe<ReadableError>>();\n}\n","import { ChangeDetectionStrategy, 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';\nimport { DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective } from '../interaction';\nimport { DbxErrorDetailsComponent } from './error.details.component';\n\nexport const DEFAULT_ERROR_POPOVER_KEY = 'error';\n\nexport interface DbxErrorPopoverConfig {\n readonly origin: ElementRef;\n readonly 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 imports: [DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective, DbxErrorDetailsComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorPopoverComponent extends AbstractPopoverDirective<void, ReadableError> {\n readonly error = this.popover.data as ReadableError;\n readonly code = this.error.code;\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 { ChangeDetectionStrategy, Component, ElementRef, input, output, viewChild } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nexport interface DbxErrorViewButtonEvent {\n readonly origin: ElementRef;\n}\n\n/**\n * The basic error view. Shows an info button and an error message.\n */\n@Component({\n selector: 'dbx-error-view',\n template: `\n <button class=\"dbx-error-button\" [disabled]=\"buttonDisabled()\" #buttonPopoverOrigin mat-icon-button (click)=\"clickError()\">\n <mat-icon>{{ icon() }}</mat-icon>\n </button>\n @if (message()) {\n <span class=\"dbx-error-message\">{{ message() }}</span>\n }\n `,\n host: {\n class: 'dbx-error dbx-warn dbx-b'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatIconModule, MatButtonModule],\n standalone: true\n})\nexport class DbxErrorViewComponent {\n readonly icon = input<string>('error');\n\n readonly message = input<Maybe<string>>();\n\n /**\n * Whether or not the error button is disabled.\n */\n readonly buttonDisabled = input<Maybe<boolean>>();\n\n readonly buttonClick = output<DbxErrorViewButtonEvent>();\n\n readonly buttonOrigin = viewChild.required<ElementRef, ElementRef>('buttonPopoverOrigin', { read: ElementRef });\n\n clickError() {\n if (!this.buttonDisabled()) {\n this.buttonClick.emit({\n origin: this.buttonOrigin()\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output, inject, signal } from '@angular/core';\nimport { Maybe, ErrorInput, toReadableError, ReadableError, isDefaultReadableError, Configurable } from '@dereekb/util';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorViewButtonEvent, DbxErrorViewComponent } from './error.view.component';\nimport { DbxErrorWidgetService } from './error.widget.service';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\nimport { NgPopoverRef } from 'ng-overlay-container';\n\ntype DbxErrorComponentViewType = 'none' | 'default' | 'custom';\n\ninterface DbxErrorComponentState {\n readonly viewType: DbxErrorComponentViewType;\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 @switch (viewTypeSignal()) {\n @case ('default') {\n <dbx-error-view icon=\"error\" [message]=\"messageSignal()\" [buttonDisabled]=\"isDefaultErrorSignal()\" (buttonClick)=\"openErrorPopover($event)\"></dbx-error-view>\n }\n @case ('custom') {\n <dbx-injection [config]=\"customViewSignal()\"></dbx-injection>\n }\n }\n `,\n standalone: true,\n imports: [DbxErrorViewComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorComponent {\n private readonly popoverService = inject(DbxPopoverService);\n private readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n\n readonly popoverOpened = output<NgPopoverRef>();\n\n readonly error = input<Maybe<ErrorInput>>();\n readonly iconOnly = input<Maybe<boolean>>(false);\n\n private readonly _errorOverrideSignal = signal<Maybe<ErrorInput>>(undefined);\n readonly errorSignal = computed(() => this._errorOverrideSignal() ?? this.error());\n\n readonly state = computed<DbxErrorComponentState>(() => {\n const rawError = this.errorSignal();\n const iconOnly = this.iconOnly();\n\n if (rawError != null) {\n const error = toReadableError(rawError);\n const isDefaultError = iconOnly ? false : isDefaultReadableError(error);\n\n let state: DbxErrorComponentState = {\n viewType: 'default',\n rawError,\n error,\n message: (error as ReadableError)?.message || 'An error occurred.',\n isDefaultError\n };\n\n if (iconOnly) {\n delete (state as Configurable<DbxErrorComponentState>).message;\n } else {\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code);\n const componentClass = entry?.errorComponentClass;\n\n if (componentClass != null) {\n state = {\n ...state,\n viewType: 'custom',\n customView: {\n componentClass,\n data: error\n }\n };\n }\n }\n\n return state;\n } else {\n return { viewType: 'none' };\n }\n });\n\n readonly viewTypeSignal = computed(() => this.state().viewType);\n readonly isDefaultErrorSignal = computed(() => this.state().isDefaultError);\n readonly messageSignal = computed(() => this.state().message);\n readonly customViewSignal = computed(() => this.state().customView);\n\n setError(error: Maybe<ErrorInput>) {\n this._errorOverrideSignal.set(error);\n }\n\n 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.popoverOpened.emit(popoverRef);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatProgressBar, ProgressBarMode } from '@angular/material/progress-bar';\nimport { MatProgressSpinner, ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { type Maybe } from '@dereekb/util';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { NgClass } from '@angular/common';\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 @switch (linear()) {\n @case (true) {\n <mat-progress-bar [mode]=\"bmode()\" [color]=\"color()\" [bufferValue]=\"bufferValue()\" [value]=\"value()\" style=\"margin: auto;\"></mat-progress-bar>\n }\n @default {\n <mat-progress-spinner [diameter]=\"diameterSignal()\" [mode]=\"smode()\" [color]=\"color()\" [value]=\"value()\" style=\"margin: auto;\"></mat-progress-spinner>\n }\n }\n @if (text()) {\n <div class=\"dbx-loading-progress-hint dbx-hint dbx-small\" [ngClass]=\"{ 'text-center': !linear() }\">{{ text() }}</div>\n }\n </div>\n `,\n imports: [MatProgressBar, MatProgressSpinner, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxLoadingProgressComponent {\n readonly defaultDiameter = DEFAULT_LOADING_PROGRESS_DIAMETER;\n\n readonly diameter = input<Maybe<number>>(this.defaultDiameter);\n\n readonly text = input<Maybe<string>>();\n readonly linear = input<Maybe<boolean>>();\n readonly mode = input<ProgressBarMode | ProgressSpinnerMode>('indeterminate');\n readonly color = input<ThemePalette | DbxThemeColor>('primary');\n readonly value = input<Maybe<number>>();\n readonly bufferValue = input<Maybe<number>>();\n\n readonly bmode = computed(() => this.mode() as ProgressBarMode);\n readonly smode = computed(() => this.mode() as ProgressSpinnerMode);\n\n readonly diameterSignal = computed(() => this.diameter() || this.defaultDiameter);\n}\n","import { Component, ElementRef, input, computed, ChangeDetectionStrategy, viewChild } 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 { DbxErrorComponent } from '../error/error.component';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { DbxLoadingProgressComponent } from './loading-progress.component';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * DbxBasicLoadingComponent loading state.\n */\nexport type LoadingComponentState = 'none' | 'loading' | 'content' | 'error';\n\n/**\n * Basic loading component.\n */\n@Component({\n selector: 'dbx-basic-loading',\n templateUrl: './basic-loading.component.html',\n imports: [DbxErrorComponent, DbxLoadingProgressComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxBasicLoadingComponent {\n readonly customError = viewChild<string, Maybe<ElementRef>>('customError', { read: ElementRef });\n readonly customLoading = viewChild<string, Maybe<ElementRef>>('customLoading', { read: ElementRef });\n\n readonly diameter = input<Maybe<number>>();\n readonly mode = input<ProgressBarMode | ProgressSpinnerMode>('indeterminate');\n readonly color = input<ThemePalette | DbxThemeColor>('primary');\n readonly text = input<Maybe<string>>();\n readonly linear = input<Maybe<boolean>>(false);\n\n readonly show = input<Maybe<boolean>>(true);\n readonly loading = input<Maybe<boolean>>();\n readonly error = input<Maybe<ErrorInput>>();\n\n readonly stateSignal = computed<LoadingComponentState>(() => {\n const loading = this.loading();\n const error = this.error();\n const show = this.show() ?? true; // default to true if not defined\n\n let state: LoadingComponentState;\n\n if (error) {\n state = '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 = 'none';\n } else if (loading || !show) {\n state = 'loading';\n } else {\n state = 'content';\n }\n\n return state;\n });\n\n readonly hasNoCustomErrorSignal = computed(() => !checkNgContentWrapperHasContent(this.customError()));\n readonly hasNoCustomLoadingSignal = computed(() => !checkNgContentWrapperHasContent(this.customLoading()));\n}\n","@switch (stateSignal()) {\n @case ('none') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('loading') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('content') {\n <!-- Content -->\n <ng-content></ng-content>\n }\n @case ('error') {\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n }\n}\n\n<ng-template #loadingTemplate>\n @if (hasNoCustomLoadingSignal()) {\n <dbx-loading-progress [mode]=\"mode()\" [color]=\"color()\" [text]=\"text()\" [linear]=\"linear()\" [diameter]=\"diameter()\"></dbx-loading-progress>\n }\n <div #customLoading>\n <ng-content select=\"[loading]\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #errorTemplate>\n @if (hasNoCustomErrorSignal()) {\n <dbx-error [error]=\"error()\"></dbx-error>\n }\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-content select=\"[errorAction]\"></ng-content>\n</ng-template>\n","import { Observable, shareReplay } from 'rxjs';\nimport { Component, ChangeDetectionStrategy, input, computed, signal, Signal } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { LoadingContext, LoadingContextEvent, MaybeObservableOrValue, maybeValueFromObservableOrValue, switchMapMaybeLoadingContextStream } from '@dereekb/rxjs';\nimport { ErrorInput, type Maybe } from '@dereekb/util';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxBasicLoadingComponent } from './basic-loading.component';\n\n/**\n * State of a DbxLoadingComponent.\n */\nexport interface DbxLoadingComponentState {\n readonly loading: boolean;\n readonly 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]=\"stateSignal().error\" [loading]=\"stateSignal().loading\">\n <ng-content loading select=\"[loading]\"></ng-content>\n @if (showPaddingSignal()) {\n <div class=\"dbx-loading-linear-done-padding\"></div>\n }\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 imports: [DbxBasicLoadingComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxLoadingComponent {\n private readonly _contextOverrideSignal = signal<MaybeObservableOrValue<LoadingContext>>(undefined);\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 readonly padding = input<Maybe<boolean>>(false);\n readonly show = input<Maybe<boolean>>();\n readonly text = input<Maybe<string>>();\n readonly mode = input<ProgressBarMode>('indeterminate');\n readonly color = input<ThemePalette | DbxThemeColor>('primary');\n readonly diameter = input<Maybe<number>>();\n readonly linear = input<Maybe<boolean>>();\n readonly loading = input<Maybe<boolean>>();\n readonly error = input<Maybe<ErrorInput>>();\n\n readonly context = input<MaybeObservableOrValue<LoadingContext>>();\n\n readonly contextSignal: Signal<MaybeObservableOrValue<LoadingContext>> = computed(() => this._contextOverrideSignal() ?? this.context());\n\n readonly contextStream$: Observable<Maybe<LoadingContextEvent>> = toObservable(this.contextSignal).pipe(maybeValueFromObservableOrValue(), switchMapMaybeLoadingContextStream(), shareReplay(1));\n readonly contextStreamSignal = toSignal(this.contextStream$);\n\n readonly stateSignal = computed<DbxLoadingComponentState>(() => {\n const loading = this.loading();\n const error = this.error();\n let loadingState = this.contextStreamSignal() as DbxLoadingComponentState;\n\n if (loadingState == null) {\n loadingState = {\n loading: loading ?? false,\n error: error\n };\n }\n\n return loadingState;\n });\n\n readonly showPaddingSignal = computed(() => {\n const linear = this.linear();\n const padding = this.padding();\n const loading = this.stateSignal()?.loading;\n return linear && padding && !loading;\n });\n\n /**\n * Sets/overrides the context directly.\n *\n * @param context Context source to use as an override.\n */\n setContext(context: MaybeObservableOrValue<LoadingContext>) {\n this._contextOverrideSignal.set(context);\n }\n}\n","import { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Directive, OnDestroy, inject } from '@angular/core';\nimport { DbxLoadingComponent } from './loading.component';\nimport { loadingStateContext } from '@dereekb/rxjs';\n\n/**\n * Context used for linking a loadingComponent to an ActionContext by providing a LoadingContext.\n */\n@Directive({\n selector: '[dbxActionLoadingContext]',\n standalone: true\n})\nexport class DbxActionLoadingContextDirective implements OnDestroy {\n readonly loadingComponent = inject(DbxLoadingComponent, { host: true });\n\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n private readonly _context = loadingStateContext({ obs: this.source.loadingState$ });\n\n constructor() {\n this.loadingComponent.setContext(this._context);\n }\n\n ngOnDestroy(): void {\n this._context.destroy();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxBasicLoadingComponent } from './basic-loading.component';\nimport { DbxLoadingProgressComponent } from './loading-progress.component';\nimport { DbxLoadingComponent } from './loading.component';\nimport { DbxActionLoadingContextDirective } from './loading.action.directive';\n\nconst importsAndExports = [DbxLoadingComponent, DbxBasicLoadingComponent, DbxLoadingProgressComponent, DbxActionLoadingContextDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxLoadingModule {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'dbx-spacer, [dbxSpacer]',\n host: {\n class: 'dbx-spacer'\n },\n standalone: true\n})\nexport class DbxSpacerDirective {}\n","import { OnInit, Component, OnDestroy, AfterViewInit, inject, computed, ChangeDetectionStrategy } from '@angular/core';\nimport { filterMaybe, LoadingStateType } from '@dereekb/rxjs';\nimport { shareReplay, 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 { AbstractSubscriptionDirective, DbxActionDirective, DbxActionValueStreamDirective, DbxActionSuccessHandlerFunction, DbxActionSourceDirective, DbxActionSuccessHandlerDirective } from '@dereekb/dbx-core';\nimport { NgClass } from '@angular/common';\nimport { DbxButtonComponent } from '../../button/button.component';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { DbxSpacerDirective } from '../../layout/style/spacer.directive';\n\n/**\n * Component for a snackbar that contains an action.\n */\n@Component({\n templateUrl: './action.snackbar.component.html',\n standalone: true,\n imports: [NgClass, DbxActionSourceDirective, DbxActionSuccessHandlerDirective, DbxButtonComponent, DbxButtonSpacerDirective, DbxSpacerDirective, DbxActionDirective, DbxActionValueStreamDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxActionSnackbarComponent extends AbstractSubscriptionDirective implements OnInit, AfterViewInit, OnDestroy {\n readonly snackbarRef = inject(MatSnackBarRef<DbxActionSnackbarComponent>);\n readonly snackbarData = inject<DbxActionSnackbarDisplayConfig>(MAT_SNACK_BAR_DATA);\n\n private readonly _durationTimeout = new Subject<void>();\n private readonly _actionRef = this.snackbarData.action?.reference;\n\n readonly sourceInstance$ = of(this._actionRef).pipe(\n filterMaybe(),\n map((x) => x?.sourceInstance)\n );\n\n readonly complete$ = this.sourceInstance$.pipe(\n switchMap((x) => x.isSuccess$),\n startWith(false),\n shareReplay(1)\n );\n\n readonly loadingStateType$ = this.sourceInstance$.pipe(\n switchMap((x) => x.loadingStateType$),\n startWith(LoadingStateType.IDLE),\n shareReplay(1)\n );\n\n readonly sourceInstanceSignal = toSignal(this.sourceInstance$);\n readonly completeSignal = toSignal(this.complete$);\n readonly loadingStateTypeSignal = toSignal(this.loadingStateType$);\n readonly snackbarStatusClassSignal = computed(() => {\n let classes = 'dbx-action-snackbar-';\n const loadingStateType = this.loadingStateTypeSignal();\n\n switch (loadingStateType) {\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\n readonly button: Maybe<string> = this.snackbarData.action?.button ?? this.snackbarData.button;\n readonly action: Maybe<DbxActionSnackbarActionConfig> = this.snackbarData.action;\n readonly hasAction: boolean = Boolean(this.action?.reference);\n readonly message: Maybe<string> = this.snackbarData.message;\n readonly actionConfig: Maybe<DbxActionSnackbarActionConfig> = this.snackbarData.action;\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._durationTimeout.complete();\n }\n\n ngAfterViewInit(): void {\n // Responsible for hiding itself if it has an action.\n if (this.hasAction) {\n setTimeout(\n () => {\n this._durationTimeout.next();\n },\n this.snackbarData.action?.duration ?? MS_IN_SECOND * 10\n );\n }\n }\n\n dismissAfterActionCompletes: DbxActionSuccessHandlerFunction = (): 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]=\"snackbarStatusClassSignal()\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n @switch (completeSignal()) {\n @case (true) {\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n }\n @case (false) {\n @if (hasAction) {\n <dbx-action dbxActionValue [dbxActionSource]=\"sourceInstanceSignal()\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n }\n }\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 readonly event: DbxActionSnackbarEvent<O>;\n readonly 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 readonly duration?: Milliseconds;\n readonly 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 readonly idle?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n readonly loading?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n readonly success?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n readonly 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 readonly 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, OnInit, inject, input } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxActionContextStoreSourceInstance, transformEmptyStringInputToUndefined } 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 standalone: true\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 readonly dbxActionSnackbarDefault = input<Maybe<DbxActionSnackbarType>>();\n readonly dbxActionSnackbarUndo = input<Maybe<DbxActionSnackbarGeneratorUndoInput<T, O>>>();\n readonly dbxActionSnackbar = input<Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction>, Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction> | ''>(undefined, { transform: transformEmptyStringInputToUndefined });\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 const snackbarFunction = this.dbxActionSnackbar();\n return snackbarFunction ? 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 { NgModule } from '@angular/core';\nimport { DbxActionSnackbarDirective } from './action.snackbar.directive';\nimport { DbxActionSnackbarComponent } from './action.snackbar.component';\n\nconst importsAndExports = [DbxActionSnackbarComponent, DbxActionSnackbarDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxActionSnackbarModule {}\n","import { Directive, OnInit, inject } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to an ActionContext.\n */\n@Directive({\n selector: '[dbxActionError]',\n standalone: true\n})\nexport class DbxActionErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly error = inject(DbxErrorComponent, { host: true });\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n ngOnInit(): void {\n this.sub = this.source.error$.subscribe((error) => {\n this.error.setError(error);\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { AbstractDialogDirective } from '../../interaction/dialog/abstract.dialog.directive';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmComponent } from '../../interaction/prompt/prompt.confirm.component';\nimport { DbxErrorComponent } from '../../error/error.component';\nimport { DbxActionErrorDirective } from '../../error/error.action.directive';\nimport { DbxButtonComponent } from '../../button/button.component';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\n\nexport type DbxActionTransitionSafetyDialogResult = 'success' | 'stay' | 'discard' | 'none';\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 standalone: true,\n imports: [DbxPromptConfirmComponent, DbxErrorComponent, DbxActionErrorDirective, DbxButtonComponent, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxActionUIRouterTransitionSafetyDialogComponent extends AbstractDialogDirective implements OnInit {\n readonly config: DbxPromptConfirmConfig = {\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('stay');\n }\n\n cancel(): void {\n this.dialogRef.close('discard');\n }\n}\n","import { Directive, OnInit, OnDestroy, ViewContainerRef, inject, input, effect } 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, BehaviorSubject, combineLatest, firstValueFrom } from 'rxjs';\nimport { DbxActionContextStoreSourceInstance, canTriggerAction, isIdleActionState } from '@dereekb/dbx-core';\nimport { DbxActionTransitionSafetyDialogResult, DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { Maybe } from '@dereekb/util';\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\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 standalone: true\n})\nexport class DbxActionTransitionSafetyDirective<T, O> implements OnInit, OnDestroy {\n protected readonly _safetyType = new BehaviorSubject<Maybe<DbxActionTransitionSafetyType>>(undefined);\n\n readonly dbxActionTransitionSafety = input<DbxActionTransitionSafetyType>();\n\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 readonly safetyType$ = this._safetyType.pipe(map((x) => x ?? 'dialog'));\n\n protected readonly _dbxActionTransitionSafetyUpdateEffect = effect(() => this._safetyType.next(this.dbxActionTransitionSafety()));\n\n private _currentDialogRef?: MatDialogRef<DbxActionUIRouterTransitionSafetyDialogComponent, DbxActionTransitionSafetyDialogResult>;\n private stopWatchingTransition?: () => void;\n\n private checkIsDestroyed(): 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 type DbxActionTransitionSafetyRaceResult = [boolean | undefined, HookResult | undefined];\n\n return firstValueFrom(\n combineLatest([this.source.isModified$, this.safetyType$]).pipe(\n first(),\n mergeMap(([isModified, safetyType]) => {\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, safetyType).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, safetyType: DbxActionTransitionSafetyType): Observable<HookResult> {\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.checkIsDestroyed()) {\n return of(true);\n }\n\n if (!this._currentDialogRef) {\n this._currentDialogRef = this.dialog.open(DbxActionUIRouterTransitionSafetyDialogComponent, {\n viewContainerRef: this.viewContainerRef\n });\n }\n\n return this._currentDialogRef.afterClosed().pipe(\n first(),\n map((result: DbxActionTransitionSafetyDialogResult | undefined = 'stay') => {\n // Default to Stay if the user clicks outside.\n switch (result) {\n case 'discard':\n case 'success':\n case 'none':\n return true;\n case 'stay':\n return false;\n }\n })\n );\n }\n\n private _closeDialog(): void {\n if (this._currentDialogRef) {\n this._currentDialogRef.close('none');\n }\n\n this._currentDialogRef = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { DbxActionTransitionSafetyDirective as DbxActionUIRouterTransitionSafetyDirective } from './transition.safety.directive';\n\nconst importsAndExports = [DbxActionUIRouterTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent];\n\n/**\n * Provides the DbxActionUIRouterTransitionSafetyDirective.\n *\n * NOTE: Only works with UIRouter\n * \n * @deprecated import the standalone components directly\n * \n * @see DbxActionUIRouterTransitionSafetyDirective\n * @see DbxActionUIRouterTransitionSafetyDialogComponent\n \n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxActionUIRouterTransitionModule {}\n","import { Directive, OnDestroy, OnInit, inject, input } 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, transformEmptyStringInputToUndefined } 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 readonly 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 standalone: true\n})\nexport class DbxActionConfirmDirective<T = unknown, O = unknown> extends AbstractPromptConfirmDirective implements OnInit, OnDestroy {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n readonly dbxActionConfirm = input<Maybe<DbxActionConfirmConfig<T>>, Maybe<DbxActionConfirmConfig<T> | ''>>(undefined, { transform: transformEmptyStringInputToUndefined });\n\n private readonly _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.dbxActionConfirm()?.readyValue as unknown as T);\n } else {\n this.source.reject(undefined);\n }\n\n return result;\n }\n}\n","import { Directive, HostListener, inject, input } 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 standalone: true\n})\nexport class DbxActionKeyTriggerDirective<T = unknown, O = unknown> {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n readonly key = input<string, Maybe<string>>(DEFAULT_ACTION_KEY_TRIGGER, { alias: 'dbxActionKeyTrigger', transform: (x) => (x ?? DEFAULT_ACTION_KEY_TRIGGER).toLowerCase() });\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 { NgModule } from '@angular/core';\nimport { DbxActionKeyTriggerDirective } from './key.trigger.directive';\nimport { DbxActionButtonDirective, DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxActionConfirmDirective } from './action.confirm.directive';\n\nconst importsAndExports = [DbxCoreActionModule, DbxActionButtonDirective, DbxActionKeyTriggerDirective, DbxActionConfirmDirective];\n\n/**\n * Provides all base dbxAction-related components from both @dereekb/core and @dereekb/web.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxActionModule {}\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, effect, inject, input } from '@angular/core';\nimport { LoadingContext, MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxErrorComponent } from './error.component';\nimport { distinctUntilChanged, shareReplay, Subscription } from 'rxjs';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\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 standalone: true\n})\nexport class DbxLoadingErrorDirective extends AbstractSubscriptionDirective {\n readonly error = inject(DbxErrorComponent, { host: true });\n readonly context = input.required<MaybeObservableOrValue<LoadingContext>>({ alias: 'dbxLoadingError' });\n readonly context$ = toObservable(this.context).pipe(maybeValueFromObservableOrValue(), distinctUntilChanged(), shareReplay(1));\n readonly contextSignal = toSignal(this.context$);\n\n protected readonly _errorEffect = effect(() => {\n const context = this.contextSignal();\n let subscription: Subscription | undefined;\n\n if (context) {\n subscription = context.stream$.subscribe((x) => this.error.setError(x.error));\n }\n\n this.sub = subscription;\n });\n}\n","import { ChangeDetectionStrategy, Component, inject, OnInit, OnDestroy, signal, effect } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { ErrorInput, MS_IN_MINUTE, makeTimer, toggleTimerRunning } from '@dereekb/util';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxErrorViewComponent } from './error.view.component';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { from } from 'rxjs';\nimport { DbxErrorComponent } from './error.component';\nimport { SubscriptionObject } from '@dereekb/rxjs';\n\nexport type DbxErrorSnackbarConfig = Omit<MatSnackBarConfig<any>, 'data' | 'viewContainerRef'>;\n\nexport interface DbxErrorSnackbarData<T extends ErrorInput = ErrorInput> {\n readonly error: T;\n readonly duration?: number;\n}\n\n@Component({\n selector: 'dbx-error-snackbar',\n template: `\n <div class=\"dbx-error-snackbar-content\">\n <dbx-error [error]=\"error\" (popoverOpened)=\"onPopoverOpened($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 `,\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxErrorViewComponent, DbxErrorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorSnackbarComponent implements OnInit, OnDestroy {\n readonly snackBarRef = inject(MatSnackBarRef<DbxErrorSnackbarComponent>);\n readonly data = inject<DbxErrorSnackbarData>(MAT_SNACK_BAR_DATA);\n\n readonly error = this.data.error;\n private readonly _popoverOpen = signal(false);\n\n private readonly _timer = makeTimer(this.data.duration ?? MS_IN_MINUTE, Boolean(this.data.duration));\n private readonly _allowAutoDismiss = this.data.duration != null;\n\n protected readonly _popoverSyncEffect = effect(() => toggleTimerRunning(this._timer, !this._popoverOpen()));\n\n private readonly _popoverAfterClosedSub = new SubscriptionObject();\n private readonly _autoDismissSub = new SubscriptionObject();\n\n ngOnInit(): void {\n if (this._allowAutoDismiss) {\n this._autoDismissSub.subscription = from(this._timer.promise).subscribe(() => this.dismiss());\n } else {\n this._popoverSyncEffect.destroy();\n }\n }\n\n ngOnDestroy(): void {\n this._autoDismissSub.destroy();\n this._timer.destroy();\n }\n\n onPopoverOpened(popover: NgPopoverRef) {\n this._popoverOpen.set(true);\n this._popoverAfterClosedSub.subscription = popover.afterClosed$.subscribe(() => this._popoverOpen.set(false));\n }\n\n dismiss() {\n this.snackBarRef.dismiss();\n }\n\n static showErrorSnackbar(matSnackbar: MatSnackBar, error: ErrorInput, config?: DbxErrorSnackbarConfig) {\n matSnackbar.openFromComponent(DbxErrorSnackbarComponent, {\n ...config,\n duration: undefined,\n panelClass: [...(config?.panelClass ?? []), 'dbx-error-snackbar'],\n data: {\n error,\n duration: config?.duration\n }\n });\n }\n}\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\nexport const DEFAULT_DBX_ERROR_SNACKBAR_CONFIG: DbxErrorSnackbarConfig = {\n politeness: 'polite',\n announcementMessage: 'An error has occurred',\n horizontalPosition: 'center',\n verticalPosition: 'bottom'\n};\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 = DEFAULT_DBX_ERROR_SNACKBAR_CONFIG;\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, inject, input } 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 standalone: true\n})\nexport class DbxActionSnackbarErrorDirective extends AbstractSubscriptionDirective {\n readonly dbxErrorSnackbarService = inject(DbxErrorSnackbarService);\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n readonly config = input<Maybe<DbxErrorSnackbarConfig> | Milliseconds | ''>(undefined, { alias: 'dbxActionSnackbarError' });\n\n constructor() {\n super();\n this.sub = this.source.error$.pipe(filterMaybe()).subscribe((inputError) => {\n const config = this.config();\n const error = toReadableError(inputError);\n\n const snackbarConfig = config ? (typeof config === 'number' ? { duration: config } : config) : undefined;\n this.dbxErrorSnackbarService.showSnackbarError(error, snackbarConfig);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxErrorComponent } from './error.component';\nimport { DbxLoadingErrorDirective } from './error.loading.directive';\nimport { DbxActionErrorDirective } from './error.action.directive';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { DbxErrorDetailsComponent } from './error.details.component';\nimport { DbxErrorWidgetViewComponent } from './error.widget.component';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\nimport { DbxErrorViewComponent } from './error.view.component';\nimport { DbxErrorSnackbarComponent } from './error.snackbar.component';\nimport { DbxActionSnackbarErrorDirective } from './error.snackbar.action.directive';\n\nconst importsAndExports = [\n //\n DbxErrorComponent,\n DbxLoadingErrorDirective,\n DbxActionErrorDirective,\n DbxActionSnackbarErrorDirective,\n DbxErrorViewComponent,\n DbxErrorSnackbarComponent,\n DbxErrorPopoverComponent,\n DbxErrorDetailsComponent,\n DbxErrorWidgetViewComponent,\n DbxErrorDefaultErrorWidgetComponent\n];\n\n/**\n * @deprecated all components are now standalone. Consider importing those instead.\n *\n * @see DbxErrorComponent\n * @see DbxLoadingErrorDirective\n * @see DbxActionErrorDirective\n * @see DbxActionSnackbarErrorDirective\n * @see DbxErrorViewComponent\n * @see DbxErrorSnackbarComponent\n * @see DbxErrorPopoverComponent\n * @see DbxErrorDetailsComponent\n * @see DbxErrorWidgetViewComponent\n * @see DbxErrorDefaultErrorWidgetComponent\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxReadableErrorModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { convertToPOJOServerErrorResponse } from './error.api';\nimport { catchError, MonoTypeOperatorFunction, of } from 'rxjs';\nimport { ActionCreator } from '@ngrx/store/src/models';\nimport { Action } from '@ngrx/store';\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 & Action<T>>, mapError: (error: ServerErrorParams) => E = (error) => error as E): MonoTypeOperatorFunction<E & Action<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 { createAction } from '@ngrx/store';\n\nexport const dbxModelResetState = createAction('[App/Model] Reset State');\n","import { Maybe, ModelKeyTypeNamePair } from '@dereekb/util';\nimport { createAction, props } from '@ngrx/store';\n\nexport interface DbxModelObjectViewedParams {\n readonly modelKeyTypeNamePair: ModelKeyTypeNamePair;\n readonly context?: Maybe<string>;\n}\n\nexport interface DbxModelGoToObjectViewParams {\n readonly modelKeyTypeNamePair: ModelKeyTypeNamePair;\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, encodeModelKeyTypePair, ModelRelationUtility, type Maybe } from '@dereekb/util';\nimport { StorageAccessor } from '@dereekb/dbx-core';\nimport { map, mergeMap, catchError, Observable, of, Subject, tap } from 'rxjs';\nimport { DbxModelViewTrackerEventSet, DbxModelViewTrackerEvent } from './model.tracker';\n\n/**\n * Token that corresponds to a StorageAccessor<DbxModelViewTrackerEventSet> that is used by DbxModelViewTrackerStorage.\n */\nexport const DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN = new InjectionToken('DbxModelViewTrackerStorageAccessor');\n\n/**\n * Used for managing DbxModelViewTrackerEvent storage.\n */\n@Injectable()\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 readonly _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, ModelViewContext } 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()\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?: Maybe<ModelViewContext>, 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 { 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()\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 { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { SimpleStorageAccessorFactory, StorageAccessor } from '@dereekb/dbx-core';\nimport { provideEffects } from '@ngrx/effects';\nimport { provideState } from '@ngrx/store';\nimport { DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelTrackerService } from './model.tracker.service';\nimport { DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN, DbxModelViewTrackerStorage } from './model.tracker.view.storage';\nimport { fromDbxModel } from './state';\nimport { DbxModelTrackerEffects } from './state/effects/tracker.effects';\nimport { DbxModelObjectStateService } from './model.state.service';\n\n/**\n * Factory function for creating a StorageAccessor for the model view tracker.\n */\nexport function defaultDbxModelViewTrackerStorageAccessorFactory(storageAccessorFactory: SimpleStorageAccessorFactory): StorageAccessor<DbxModelViewTrackerEventSet> {\n const accessor = storageAccessorFactory.createStorageAccessor<DbxModelViewTrackerEventSet>({\n prefix: 'mtvs'\n });\n\n return accessor;\n}\n\n/**\n * Creates EnvironmentProviders for providing DbxModelTrackerService, DbxModelObjectStateService and sets up the NgRx store for DbxModelTrackerEffects.\n *\n * @returns EnvironmentProviders\n */\nexport function provideDbxModelService(): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\n // Storage accessor\n {\n provide: DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN,\n useFactory: defaultDbxModelViewTrackerStorageAccessorFactory,\n deps: [SimpleStorageAccessorFactory]\n },\n // Service\n DbxModelViewTrackerStorage,\n DbxModelTrackerService,\n DbxModelObjectStateService,\n // NgRx\n provideEffects([DbxModelTrackerEffects]),\n provideState(fromDbxModel.featureKey, fromDbxModel.reducers)\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { UnixDateTimeNumber, Maybe, ModelKey, ModelKeyTypeNamePair } from '@dereekb/util';\n\n/**\n * String context in which a model was viewed.\n */\nexport type ModelViewContext = string;\n\nexport interface DbxModelViewTrackerEvent {\n /**\n * Event time\n */\n readonly d?: UnixDateTimeNumber;\n /**\n * Context\n */\n readonly c?: Maybe<ModelViewContext>;\n /**\n * Model info\n */\n readonly m: ModelKeyTypeNamePair;\n readonly folder?: Maybe<string>;\n}\n\nexport interface DbxModelViewTrackerEventSet {\n /**\n * The latest date/time number.\n */\n readonly l: UnixDateTimeNumber;\n /**\n * List of events.\n */\n readonly 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-all';\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 readonly 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 { ChangeDetectionStrategy, Component, ElementRef, computed, inject, input, viewChild } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { WorkUsingObservable, LoadingState, loadingStateContext, successResult, valueFromFinishedLoadingState, MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { MS_IN_SECOND, type Maybe } from '@dereekb/util';\nimport { Observable, first, 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, DbxActionButtonDirective } from '@dereekb/dbx-core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxLoadingComponent } from '../../../loading/loading.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { DbxButtonComponent } from '../../../button/button.component';\nimport { DbxActionModule } from '../../../action/action.module';\nimport { DbxButtonSpacerDirective } from '../../../button/button.spacer.directive';\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 standalone: true,\n imports: [NgTemplateOutlet, DbxLoadingComponent, DbxActionModule, DbxActionButtonDirective, DbxButtonComponent, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\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 readonly downloadButton = viewChild<string, Maybe<ElementRef>>('downloadButton', { read: ElementRef });\n\n readonly loadingText = input<Maybe<string>>(undefined);\n readonly linear = input<Maybe<boolean>>(undefined);\n readonly showTitle = input<boolean>(true);\n readonly showPreview = input<boolean>(true);\n\n readonly content = input<Maybe<DownloadTextContent>>(undefined);\n readonly contentState = input<MaybeObservableOrValue<LoadingState<DownloadTextContent>>>(undefined);\n\n readonly contentState$ = toObservable(this.contentState).pipe(maybeValueFromObservableOrValue(), shareReplay(1));\n\n readonly contentStateSignal = toSignal(this.contentState$);\n\n readonly contentLoadingStateSignal = computed(() => {\n const content = this.content();\n const contentState = this.contentStateSignal();\n\n let result: Maybe<LoadingState<DownloadTextContent>>;\n\n if (contentState) {\n result = contentState;\n } else if (content) {\n result = successResult(content);\n }\n\n return result;\n });\n\n readonly contentLoadingState$ = toObservable(this.contentLoadingStateSignal);\n readonly content$: Observable<Maybe<DownloadTextContent>> = this.contentLoadingState$.pipe(\n switchMap((x) => {\n if (x) {\n return of(x).pipe(valueFromFinishedLoadingState());\n } else {\n return of(undefined);\n }\n })\n );\n\n readonly contentSignal = toSignal(this.content$);\n\n readonly contentDataSignal = computed(() => this.contentSignal()?.content);\n\n readonly fileUrlSignal = computed(() => {\n const content = this.contentSignal();\n\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\n readonly fileNameSignal = computed(() => this.contentSignal()?.name ?? 'File');\n\n readonly downloadReadySignal = computed(() => {\n const downloadButton = this.downloadButton();\n const fileName = this.fileNameSignal();\n const fileUrl = this.fileUrlSignal();\n return Boolean(downloadButton && fileName && fileUrl);\n });\n\n readonly context = loadingStateContext({ obs: this.contentLoadingState$ });\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 @if (showTitle()) {\n <div class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileNameSignal() }}</div>\n }\n @if (showPreview()) {\n <div class=\"dbx-download-text-preview dbx-json dbx-content-pit dbx-content-pit-scrollable dbx-mb3\">{{ contentDataSignal() }}</div>\n }\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]=\"fileUrlSignal()\" [attr.download]=\"fileNameSignal()\"><dbx-button icon=\"download\" text=\"Download\" [raised]=\"true\" [working]=\"!downloadReadySignal()\" [disabled]=\"!downloadReadySignal()\"></dbx-button></a>\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DbxDownloadTextViewComponent } from './download.text.component';\n\nconst importsAndExports = [DbxDownloadTextViewComponent];\n\n/**\n * @deprecated import DbxDownloadtextVie\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 standalone: true\n})\nexport class DbxStructureDirective {\n readonly injector = inject(Injector);\n readonly element = inject(ElementRef);\n\n /**\n * @deprecated do not use cdRef here anymore. Rely on signals instead. Will be removed in the future.\n */\n readonly cdRef = inject(ChangeDetectorRef);\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 standalone: true\n})\nexport class DbxBodyDirective extends DbxStructureDirective {}\n","import { NgModule } from '@angular/core';\nimport { DbxStructureDirective } from './structure.structure.directive';\nimport { DbxBodyDirective } from './structure.body.directive';\n\nconst importsAndExports = [DbxBodyDirective, DbxStructureDirective];\n\n/**\n * @deprecated Use DbxStructureDirective and DbxBodyDirective directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxWidgetViewComponentConfig } from './widget';\nimport { DbxWidgetService } from './widget.service';\nimport { NgTemplateOutlet } from '@angular/common';\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 @switch (widgetConfigExistsSignal()) {\n @case (true) {\n <ng-container *ngTemplateOutlet=\"widget\"></ng-container>\n }\n @default {\n <ng-container *ngTemplateOutlet=\"unknown\"></ng-container>\n }\n }\n <ng-template #widget>\n <dbx-injection [config]=\"configSignal()\"></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 standalone: true,\n imports: [DbxInjectionComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxWidgetViewComponent {\n readonly dbxWidgetService = inject(DbxWidgetService);\n\n readonly config = input<Maybe<DbxWidgetViewComponentConfig>>();\n\n readonly configSignal = computed(() => {\n const pair = this.config();\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\n readonly widgetConfigExistsSignal = computed(() => this.configSignal() !== null);\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 { 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 /**\n * @see DbxListViewMetaIconComponent.metaConfig()\n */\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 { 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, ListLoadingStateContext } from '@dereekb/rxjs';\nimport { forwardRef, OutputEmitterRef, Provider, TrackByFunction, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport type DbxListSelectionMode = 'select' | 'view';\n\nexport interface ListSelectionStateItem<T> {\n readonly disabled?: boolean;\n readonly selected?: boolean;\n readonly itemValue: T;\n}\n\nexport interface ListSelectionState<T> {\n readonly 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 readonly trackBy$?: Observable<Maybe<TrackByFunction<T>>>;\n /**\n * (Optional) clicked event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract clickValue?: OutputEmitterRef<T>;\n /**\n * (Optional) selection changed event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract selectionChange?: OutputEmitterRef<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, 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 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 { Maybe, maybeModifierMapToFunction, ModifierFunction } from '@dereekb/util';\nimport { Directive, inject, input } from '@angular/core';\nimport { filterMaybe, mapForEach } from '@dereekb/rxjs';\nimport { 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';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\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> {\n readonly dbxListView = inject(DbxListView<T>);\n readonly dbxValueListViewModifier = inject(DbxValueListItemModifier<T, I>, { optional: true });\n\n readonly config = input.required<C>();\n\n readonly config$ = toObservable(this.config).pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));\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 readonly itemsSignal = toSignal(this.items$);\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.emit(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 { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { ChangeDetectionStrategy, Component, Signal, TrackByFunction, computed, inject, input } from '@angular/core';\nimport { shareReplay, map, Observable, switchMap, of } from 'rxjs';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig, DbxValueListItemConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { DbxInjectionComponent, anchorTypeForAnchor } from '@dereekb/dbx-core';\nimport { DbxListView } from './list.view';\nimport { Maybe, spaceSeparatedCssClasses } from '@dereekb/util';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, defaultDbxValueListViewGroupDelegate } from './group/list.view.value.group';\nimport { asObservable } from '@dereekb/rxjs';\nimport { MatListModule, MatNavList } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxAnchorComponent } from '../../router/layout/anchor/anchor.component';\n\nexport interface DbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n readonly emitAllClicks?: boolean;\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 @if (headerConfigSignal()) {\n <div class=\"dbx-list-view-group-header\">\n <dbx-injection [config]=\"headerConfigSignal()\"></dbx-injection>\n </div>\n }\n @for (item of itemsSignal(); track trackByFunctionSignal()($index, item)) {\n <dbx-anchor [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 @if (item.icon) {\n <mat-icon matListItemIcon>{{ item.icon }}</mat-icon>\n }\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n @if (item.metaConfig) {\n <span matListItemMeta>\n <dbx-injection [config]=\"item.metaConfig\"></dbx-injection>\n </span>\n }\n </a>\n </dbx-anchor>\n }\n @if (footerConfigSignal()) {\n <div class=\"dbx-list-view-group-footer\">\n <dbx-injection [config]=\"footerConfigSignal()\"></dbx-injection>\n </div>\n }\n </div>\n `,\n host: {\n class: 'dbx-list-view-group',\n '[class]': 'cssClassSignal()'\n },\n imports: [DbxInjectionComponent, DbxAnchorComponent, MatListModule, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxValueListViewContentGroupComponent<G, T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxValueListViewContentComponent = inject(DbxValueListViewContentComponent<T>);\n readonly group = input<Maybe<DbxValueListItemGroup<G, T, I>>>();\n\n readonly trackByFunctionSignal = toSignal(this.dbxValueListViewContentComponent.trackBy$, { initialValue: DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION });\n\n readonly itemsSignal = computed(() => this.group()?.items ?? []);\n readonly headerConfigSignal = computed(() => this.group()?.headerConfig);\n readonly footerConfigSignal = computed(() => this.group()?.footerConfig);\n readonly cssClassSignal = computed(() => spaceSeparatedCssClasses(this.group()?.cssClasses));\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\n// MARK: DbxValueListViewContentComponent\nexport const DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION: TrackByFunction<any> = (index: number) => index;\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]=\"disabledSignal()\">\n @for (group of groupsSignal(); track group.id) {\n <dbx-list-view-content-group [group]=\"group\"></dbx-list-view-content-group>\n }\n </mat-nav-list>\n `,\n host: {\n class: 'dbx-list-view'\n },\n standalone: true,\n imports: [MatNavList, DbxValueListViewContentGroupComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxListView = inject(DbxListView<T>);\n private readonly _dbxListGroupDelegate: DbxValueListViewGroupDelegate<any, T, I> = inject<Maybe<DbxValueListViewGroupDelegate<any, T, I>>>(DbxValueListViewGroupDelegate, { optional: true }) ?? defaultDbxValueListViewGroupDelegate();\n\n private readonly _trackBy$ = this.dbxListView.trackBy$ ?? of(undefined);\n readonly trackBy$ = this._trackBy$.pipe(map((trackBy) => (trackBy ? (index: number, item: DbxValueListItemConfig<T, I>) => trackBy(index, item.itemValue) : DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION)));\n\n readonly items = input<Maybe<DbxValueListItemConfig<T, I>[]>>();\n readonly emitAllClicks = input<Maybe<boolean>>();\n\n readonly groups$: Observable<DbxValueListItemGroup<any, T, I>[]> = toObservable(this.items).pipe(\n switchMap((items) => asObservable(this._dbxListGroupDelegate.groupValues(items ?? []))),\n shareReplay(1)\n );\n\n readonly groupsSignal = toSignal(this.groups$);\n readonly disabledSignal = toSignal(this.dbxListView.disabled$);\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) === '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?.emit(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return item.rippleDisabled || (!this.emitAllClicks() && !item.anchor);\n }\n}\n\n// MARK: DbxValueListViewComponent\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]=\"itemsSignal()\" [emitAllClicks]=\"emitAllClicksSignal()\"></dbx-list-view-content>\n `,\n standalone: true,\n imports: [DbxValueListViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\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 emitAllClicksSignal: Signal<Maybe<boolean>> = computed(() => this.config()?.emitAllClicks);\n}\n","import { ListLoadingStateContext, MaybeObservableOrValue, asObservable, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { BehaviorSubject, combineLatest, distinctUntilChanged, map, Observable, of, shareReplay, switchMap } from 'rxjs';\nimport { Directive, input, NgModule, OnDestroy, output, TrackByFunction } from '@angular/core';\nimport { DbxListSelectionMode, DbxListView } from './list.view';\nimport { type Maybe } from '@dereekb/util';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { DbxValueListViewComponent } from './list.view.value.component';\n\nexport const DEFAULT_DBX_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE = '<dbx-list-view [config]=\"config\"></dbx-list-view>';\n\n@NgModule({\n exports: [DbxValueListViewComponent],\n imports: [DbxValueListViewComponent]\n})\nexport class DbxValueListViewComponentImportsModule {}\n\n// MARK: Value List View\n/**\n * Abstract DbxListView implementation.\n *\n * You might consider extending AbstractDbxSelectionListViewDirective instead, as it includes selection support.\n */\n@Directive()\nexport abstract class AbstractDbxListViewDirective<T> implements DbxListView<T>, OnDestroy {\n readonly valuesArray = input<Maybe<T[]>>();\n readonly values = input<MaybeObservableOrValue<T[]>>();\n\n private readonly _trackBy = new BehaviorSubject<Maybe<TrackByFunction<T>>>(undefined);\n private readonly _disabled = new BehaviorSubject<boolean>(false);\n private readonly _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n private readonly _valuesOverride = new BehaviorSubject<MaybeObservableOrValue<T[]>>(undefined);\n\n readonly trackBy$ = this._trackBy.asObservable();\n\n readonly _inputValuesArray$ = toObservable(this.valuesArray);\n readonly _inputValues$ = toObservable(this.values);\n\n readonly _values$: Observable<Maybe<T[]>> = this._valuesOverride.pipe(\n switchMap((x) => {\n let valuesObs: Observable<Maybe<T[]>>;\n\n if (x) {\n valuesObs = asObservable(x);\n } else {\n valuesObs = combineLatest([this._inputValues$, this._inputValuesArray$]).pipe(switchMap(([x, y]) => (y != null ? of(y) : asObservable(x))));\n }\n\n return valuesObs;\n })\n );\n\n readonly values$: Observable<T[]> = this._values$.pipe(\n maybeValueFromObservableOrValue(),\n map((x) => x ?? []),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n readonly clickValue = output<T>();\n\n ngOnDestroy(): void {\n this._disabled.complete();\n this._selectionMode.complete();\n this._valuesOverride.complete();\n }\n\n onClickValue(value: T) {\n this.clickValue.emit(value);\n }\n\n setListContext(state: ListLoadingStateContext<T>): void {\n this.setValues(state.currentList$);\n }\n\n setValues(values: MaybeObservableOrValue<T[]>): void {\n this._valuesOverride.next(values);\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 setTrackBy(trackBy: Maybe<TrackByFunction<T>>) {\n this._trackBy.next(trackBy);\n }\n}\n","import { ChangeDetectionStrategy, Component, Directive, Signal, computed, inject, input } from '@angular/core';\nimport { of } from 'rxjs';\nimport { DbxValueListItem } from '../list.view.value';\nimport { AbstractDbxValueListViewDirective } from '../list.view.value.directive';\nimport { Maybe, mergeObjects } from '@dereekb/util';\nimport { DbxValueListViewContentComponent, DbxValueListViewConfig, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION } from '../list.view.value.component';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatRipple } from '@angular/material/core';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { DbxAnchorComponent } from '../../../router/layout/anchor/anchor.component';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\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\nexport interface DbxValueListGridItemViewGridSizeConfig {\n /**\n * Gap size in %, px, vw, vh\n */\n readonly gap: string;\n /**\n * Columns configuration.\n *\n * Example: repeat(auto-fill, minmax(200px, 1fr))\n */\n readonly 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 standalone: true\n})\nexport class DbxValueListGridSizeDirective {\n readonly gridSize = input.required<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>({ alias: 'dbxListGridSize' });\n readonly gridSize$ = toObservable(this.gridSize);\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]=\"gridConfigSignal().gap\" [gdColumns]=\"gridConfigSignal().columns\">\n @for (item of items(); track trackByFunctionSignal()($index, item)) {\n <dbx-anchor class=\"dbx-list-grid-view-item\" matRipple [matRippleDisabled]=\"rippleDisabledOnItem(item)\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\" (click)=\"onClickItem(item)\">\n <div dbx-injection [config]=\"item.config\"></div>\n </dbx-anchor>\n }\n </div>\n `,\n host: {\n class: 'dbx-list-grid-view'\n },\n standalone: true,\n imports: [FlexLayoutModule, MatRipple, DbxAnchorComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListGridViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> {\n private readonly _gridSizeOverride = inject(DbxValueListGridSizeDirective, { optional: true });\n\n readonly inputGridConfig = input<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined, { alias: 'grid' });\n readonly gridConfigFromGridSizeSignal = toSignal(this._gridSizeOverride?.gridSize$ ?? of(undefined));\n\n readonly gridConfigSignal: Signal<DbxValueListGridItemViewGridSizeConfig> = computed(() => {\n return mergeObjects<DbxValueListGridItemViewGridSizeConfig>([DEFAULT_LIST_GRID_SIZE_CONFIG, this.inputGridConfig(), this.gridConfigFromGridSizeSignal()]) as DbxValueListGridItemViewGridSizeConfig;\n });\n\n readonly trackByFunctionSignal = toSignal(this.trackBy$, { initialValue: DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION });\n}\n\n// MARK: DbxValueListGridViewComponent\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 [items]=\"itemsSignal()\" [grid]=\"config().grid\" [emitAllClicks]=\"config().emitAllClicks\"></dbx-list-grid-view-content>\n `,\n standalone: true,\n imports: [DbxValueListGridViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\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","import { Directive, NgModule } from '@angular/core';\nimport { AbstractDbxListViewDirective } from '../list.view.directive';\nimport { DbxValueListGridViewComponent, DbxValueListGridViewConfig } from './list.grid.view.component';\nimport { DbxValueAsListItem } from '../list.view.value';\n\nexport const DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE = '<dbx-list-grid-view [config]=\"config\"></dbx-list-grid-view>';\n\nexport const dbxListGridViewDirectiveImportsAndExports = [DbxValueListGridViewComponent];\n\n@NgModule({\n exports: dbxListGridViewDirectiveImportsAndExports,\n imports: dbxListGridViewDirectiveImportsAndExports\n})\nexport class DbxListGridViewDirectiveImportsModule {}\n\n/**\n * Abstract DbxListGridView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListGridViewDirective<T> extends AbstractDbxListViewDirective<T> {\n abstract readonly config: DbxValueListGridViewConfig<DbxValueAsListItem<T>>;\n}\n\n// MARK: Compat\n/**\n * @deprecated Use DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE instead.\n */\nexport const DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE = DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE;\n","import { InfiniteScrollDirective } from 'ngx-infinite-scroll';\nimport { catchError, filter, exhaustMap, merge, map, Subject, switchMap, shareReplay, of, Observable, first, distinctUntilChanged, combineLatest } from 'rxjs';\nimport { Component, OnDestroy, ElementRef, HostListener, Directive, inject, ChangeDetectionStrategy, input, output, signal, computed } from '@angular/core';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { SubscriptionObject, ListLoadingState, filterMaybe, isLoadingStateFinishedLoading, startWithBeginLoading, listLoadingStateContext, switchMapMaybe, PageLoadingState } from '@dereekb/rxjs';\nimport { invertMaybeBoolean, Maybe, Milliseconds } from '@dereekb/util';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxLoadingComponent } from '../../loading/loading.component';\n\n// MARK: DbxListInternalContentDirective\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 standalone: true\n})\nexport class DbxListInternalContentDirective {\n private readonly parent = inject(DbxListComponent);\n\n readonly elementRef = inject(ElementRef);\n\n readonly hide = input<Maybe<boolean>>(false);\n\n constructor() {\n this.parent.setInternalContent(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\n// MARK: DbxList\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 readonly hideOnEmpty?: boolean;\n\n /**\n * Whether or not this list should scroll upward from the bottom, like a message list.\n */\n readonly invertedList?: boolean;\n\n /**\n * Distance to scroll.\n */\n readonly scrollDistance?: number;\n\n /**\n * Number of ms to throttle scrolling events.\n */\n readonly throttle?: Milliseconds;\n\n /**\n * (Optional) onClick handler\n */\n readonly onClick?: (value: T) => void;\n\n /**\n * (Optional) onSelection handler\n */\n readonly onSelectionChange?: (selection: ListSelectionState<T>) => void;\n\n /**\n * (Optional) handler function to load more items.\n */\n readonly loadMore?: DbxListLoadMoreHandler;\n\n /**\n * Default selection list value. If not defined, will default to 'view'.\n */\n readonly defaultSelectionMode?: Maybe<DbxListSelectionMode>;\n}\n\nexport type DbxListComponentScrolledEventPosition = number;\n\nexport const DBX_LIST_DEFAULT_SCROLL_DISTANCE = 1.5;\nexport const DBX_LIST_DEFAULT_THROTTLE_SCROLL = 50;\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 imports: [DbxInjectionComponent, InfiniteScrollDirective, DbxListInternalContentDirective, DbxLoadingComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxListComponent<T = unknown, V extends DbxListView<T> = DbxListView<T>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy {\n /**\n * Emitted when content is scrolled.\n */\n readonly contentScrolled = output<DbxListComponentScrolledEventPosition>();\n\n /**\n * Whether or not to add bottom padding to the list content.\n */\n readonly padded = input<boolean>(true);\n\n readonly state = input<Maybe<Observable<Maybe<S>>>>(undefined);\n readonly config = input<Maybe<DbxListConfig<T, V>>>(undefined);\n\n readonly disabled = input<Maybe<boolean>>(false);\n readonly selectionMode = input<Maybe<DbxListSelectionMode>>(undefined);\n\n readonly hasMore = input<Maybe<boolean>>(undefined);\n readonly hasMore$ = toObservable(this.hasMore);\n\n private readonly _internalContentSignal = signal<Maybe<DbxListInternalContentDirective>>(undefined);\n readonly nativeElementSignal = computed(() => (this._internalContentSignal()?.elementRef as Maybe<ElementRef<HTMLElement>>)?.nativeElement);\n\n private readonly _loadMoreTrigger = new Subject<void>();\n private readonly _scrollTrigger = new Subject<DbxListScrollDirectionTrigger>();\n\n private readonly _loadMoreSub = new SubscriptionObject();\n private readonly _onClickSub = new SubscriptionObject();\n private readonly _disabledSub = new SubscriptionObject();\n private readonly _selectionModeSub = new SubscriptionObject();\n private readonly _onSelectionChangeSub = new SubscriptionObject();\n\n readonly currentState$: Observable<Maybe<S>> = toObservable(this.state).pipe(switchMapMaybe());\n readonly context = listLoadingStateContext<T, S>({ obs: this.currentState$, showLoadingOnNoValue: false });\n\n readonly hasMoreFromCurrentState$ = this.currentState$.pipe(map((x) => (x as unknown as PageLoadingState)?.hasNextPage));\n readonly isEnd$ = combineLatest([this.hasMore$, this.hasMoreFromCurrentState$]).pipe(\n map((x) => invertMaybeBoolean(x[0] ?? x[1])),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly isEmpty$ = this.context.isEmpty$;\n readonly isEmptyLoading$ = this.context.isEmptyLoading$;\n readonly isEmptyAndNotLoading$ = this.context.isEmptyAndNotLoading$;\n\n readonly config$ = toObservable(this.config);\n readonly disabled$ = toObservable(this.disabled).pipe(\n map((x) => Boolean(x)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly selectionMode$ = toObservable(this.selectionMode).pipe(distinctUntilChanged(), shareReplay(1));\n\n readonly hideOnEmpty$: Observable<boolean> = this.config$.pipe(\n filterMaybe(),\n map((x) => Boolean(x.hideOnEmpty)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly invertedList$: Observable<boolean> = this.config$.pipe(\n filterMaybe(),\n map((x) => Boolean(x?.throttle)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly throttleScroll$: Observable<number> = this.config$.pipe(\n map((x) => x?.throttle ?? DBX_LIST_DEFAULT_THROTTLE_SCROLL),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly scrollDistance$: Observable<number> = this.config$.pipe(\n map((x) => x?.scrollDistance ?? DBX_LIST_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.currentStateStream$.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 shareReplay(1)\n );\n }\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly infiniteScrollDistanceSignal = toSignal(this.scrollDistance$, { initialValue: DBX_LIST_DEFAULT_SCROLL_DISTANCE });\n readonly infiniteScrollThrottleSignal = toSignal(this.throttleScroll$, { initialValue: DBX_LIST_DEFAULT_THROTTLE_SCROLL });\n readonly hideContentSignal = toSignal(this.hideContent$);\n readonly injectedComponentConfigSignal = toSignal(this.injectedComponentConfig$);\n readonly isEmptyAndNotLoadingSignal = toSignal(this.isEmptyAndNotLoading$);\n readonly isEmptyLoadingSignal = toSignal(this.isEmptyLoading$);\n readonly isEndSignal = toSignal(this.isEnd$);\n\n ngOnDestroy(): void {\n this._scrollTrigger.complete();\n this._loadMoreTrigger.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 getScrollPositionRelativeToBottom(): number {\n const element = this.nativeElementSignal();\n\n if (element) {\n try {\n // At max scroll, scrollHeight = scrollTop + clientHeight;\n const { scrollTop, scrollHeight, clientHeight } = element;\n return scrollHeight - (scrollTop + clientHeight);\n } catch (e) {}\n }\n\n return 0;\n }\n\n jumpToBottom(): void {\n const element = this.nativeElementSignal();\n\n if (element) {\n try {\n element.scrollTop = element.scrollHeight;\n } catch (err) {\n // do nothing.\n }\n }\n }\n\n jumpToPositionRelativeToBottom(pos: number): void {\n const element = this.nativeElementSignal();\n\n if (element) {\n try {\n const { scrollHeight, clientHeight } = element;\n element.scrollTop = scrollHeight - (clientHeight + pos);\n } catch (err) {\n // do nothing.\n }\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 setInternalContent(content: DbxListInternalContentDirective) {\n if (this._internalContentSignal() == null) {\n this._internalContentSignal.set(content);\n } else {\n throw new Error('Attempted to set internal content in DbxListComponent when it was already set.');\n }\n }\n}\n","<dbx-loading [context]=\"context\" [linear]=\"true\"></dbx-loading>\n<div dbxListInternalContent [hide]=\"hideContentSignal()\" infinite-scroll [infiniteScrollDistance]=\"infiniteScrollDistanceSignal()\" [infiniteScrollUpDistance]=\"infiniteScrollDistanceSignal()\" [infiniteScrollThrottle]=\"infiniteScrollThrottleSignal()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\" (scrolledUp)=\"onScrollUp()\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-injection [config]=\"injectedComponentConfigSignal()\"></dbx-injection>\n <ng-content select=\"[bottom]\"></ng-content>\n @if (isEndSignal()) {\n <ng-content select=\"[end]\"></ng-content>\n }\n</div>\n@if (isEmptyAndNotLoadingSignal()) {\n <ng-content select=\"[empty]\"></ng-content>\n}\n@if (isEmptyLoadingSignal()) {\n <ng-content select=\"[emptyLoading]\"></ng-content>\n}\n","import { ListLoadingState, ObservableOrValue, maybeValueFromObservableOrValue, MaybeObservableOrValue } from '@dereekb/rxjs';\nimport { Observable, BehaviorSubject, map, shareReplay, combineLatest } from 'rxjs';\nimport { OnDestroy, Directive, input, output, computed, Signal, NgModule } from '@angular/core';\nimport { DbxListComponent, DbxListConfig } from './list.component';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\nimport { Configurable, type Maybe } from '@dereekb/util';\nimport { DbxListViewWrapper } from './list.wrapper';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n// MARK: Wrapper\nexport const DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE = `\n <dbx-list [state]=\"currentState$\" [config]=\"configSignal()\" [hasMore]=\"hasMore()\" [disabled]=\"disabled()\" [selectionMode]=\"selectionModeSignal()\">\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 <ng-content end select=\"[end]\"></ng-content>\n </dbx-list>`;\n\nconst dbxListWrapperComponentImportsAndExports = [DbxListComponent];\n\n@NgModule({\n exports: dbxListWrapperComponentImportsAndExports,\n imports: dbxListWrapperComponentImportsAndExports\n})\nexport class DbxListWrapperComponentImportsModule {}\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 _config = new BehaviorSubject<MaybeObservableOrValue<C>>(undefined);\n private readonly _stateOverride = new BehaviorSubject<MaybeObservableOrValue<S>>(undefined);\n private readonly _selectionModeOverride = new BehaviorSubject<MaybeObservableOrValue<DbxListSelectionMode>>(undefined);\n\n private readonly _selectionModeOverrideSignal = toSignal(this._selectionModeOverride.pipe(maybeValueFromObservableOrValue()));\n\n readonly hasMore = input<Maybe<boolean>>(undefined);\n\n readonly clickItem = output<T>();\n readonly loadMore = output<void>();\n\n readonly disabled = input<Maybe<boolean>>();\n readonly selectionMode = input<Maybe<DbxListSelectionMode>>();\n readonly state = input<Maybe<ObservableOrValue<S>>>();\n\n /**\n * @deprecated use state as the input instead.\n */\n readonly deprecatedInputState$ = input<Maybe<Observable<S>>>(undefined, { alias: 'state$' });\n\n readonly selectionModeSignal: Signal<Maybe<DbxListSelectionMode>> = computed(() => {\n return this._selectionModeOverrideSignal() ?? this.selectionMode();\n });\n\n readonly currentState$ = combineLatest([this._stateOverride, toObservable(this.state), toObservable(this.deprecatedInputState$)]).pipe(\n map(([stateOverride, state, state$]) => stateOverride ?? state ?? state$),\n maybeValueFromObservableOrValue(),\n shareReplay(1)\n );\n\n readonly config$ = this._config.pipe(\n maybeValueFromObservableOrValue(),\n map((x: Maybe<C>) => (x ? this._buildListConfig(x) : undefined)),\n shareReplay(1)\n );\n\n readonly configSignal = toSignal(this.config$);\n\n constructor(initConfig: ObservableOrValue<C>) {\n this._config.next(initConfig);\n }\n\n ngOnDestroy(): void {\n this._config.complete();\n this._stateOverride.complete();\n this._selectionModeOverride.complete();\n }\n\n setState(stateObs: MaybeObservableOrValue<S>): void {\n this._stateOverride.next(stateObs);\n }\n\n setSelectionMode(selectionMode: MaybeObservableOrValue<DbxListSelectionMode>): void {\n this._selectionModeOverride.next(selectionMode);\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> {\n readonly selectionChange = output<ListSelectionState<T>>();\n\n protected override _buildListConfig(config: C): DbxListConfig<T, V> {\n const result = super._buildListConfig(config) as Configurable<DbxListConfig<T, V>>;\n result.onSelectionChange = (x) => this.selectionChange.emit(x);\n return result;\n }\n}\n\n// MARK: COMPAT\n/**\n * @deprecated update components to use DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION instead of just referencing only the template and DbxListWrapperComponentImportsModule.\n */\nexport const DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE = DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE;\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { of } from 'rxjs';\nimport { DbxWidgetDataPair } from './widget';\nimport { DbxWidgetViewComponent } from './widget.component';\nimport { AbstractDbxValueListViewItemComponent } from '../../layout/list/list.view.value.item.directive';\nimport { DbxValueAsListItem } from '../../layout/list/list.view.value';\nimport { AbstractDbxListGridViewDirective, DbxListGridViewDirectiveImportsModule, DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE } from '../../layout/list/grid/list.grid.view.directive';\nimport { DbxValueListGridViewConfig } from '../../layout/list/grid/list.grid.view.component';\nimport { provideDbxListView } from '../../layout/list/list.view';\nimport { AbstractDbxListWrapperDirective, DbxListWrapperComponentImportsModule, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE } from '../../layout/list/list.directive';\n\nexport type DbxWidgetDataPairWithSelection = DbxValueAsListItem<DbxWidgetDataPair>;\n\n/**\n * Demo DbxSelectionListWrapperDirective\n */\n@Component({\n selector: 'dbx-widget-grid',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\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_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE,\n imports: [DbxListGridViewDirectiveImportsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\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 imports: [DbxWidgetViewComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxWidgetListGridViewItemComponent extends AbstractDbxValueListViewItemComponent<DbxWidgetDataPair> {}\n","import { NgModule } from '@angular/core';\nimport { DbxWidgetViewComponent } from './widget.component';\nimport { DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent } from './widget.list.component';\n\nconst importsAndExports = [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent];\n\n/**\n * Contains components related to displaying \"widgets\" for pieces of data.\n *\n * @deprecated Import standalone components directly instead.\n *\n * @see DbxWidgetViewComponent\n * @see DbxWidgetListGridComponent\n * @see DbxWidgetListGridViewComponent\n * @see DbxWidgetListGridViewItemComponent\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 { computed, Directive, input } 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]': 'cssClassSignal()'\n },\n standalone: true\n})\nexport class DbxBarDirective {\n readonly color = input<Maybe<DbxBarColor>>();\n\n readonly cssClassSignal = computed(() => {\n const color = this.color();\n return color ? `dbx-${color}-bg` : 'dbx-bg';\n });\n}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxBarDirective } from './bar.directive';\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 @if (icon()) {\n <mat-icon class=\"button-spacer\">{{ icon() }}</mat-icon>\n }\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <ng-content></ng-content>\n </dbx-bar>\n `,\n host: {\n class: 'dbx-bar-header dbx-hint'\n },\n imports: [DbxBarDirective, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxBarHeaderComponent {\n readonly text = input<Maybe<string>>();\n readonly icon = input<Maybe<string>>();\n readonly color = input<Maybe<DbxBarColor>>();\n}\n","import { Component, input, ChangeDetectionStrategy, computed } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\nimport { NgClass } from '@angular/common';\nimport { MatToolbarModule } from '@angular/material/toolbar';\n\n@Component({\n selector: 'dbx-pagebar',\n template: `\n <mat-toolbar class=\"dbx-pagebar\" [ngClass]=\"cssClassSignal()\">\n <ng-content select=\"[left]\"></ng-content>\n <span class=\"spacer\"></span>\n <ng-content select=\"[right]\"></ng-content>\n </mat-toolbar>\n `,\n imports: [NgClass, MatToolbarModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPagebarComponent {\n readonly color = input<Maybe<DbxBarColor>>();\n\n readonly cssClassSignal = computed(() => {\n const color = this.color();\n return color ? `dbx-bar-${color}` : '';\n });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxBarDirective } from './bar.directive';\nimport { DbxBarHeaderComponent } from './bar.header.component';\nimport { DbxPagebarComponent } from './pagebar.component';\n\nconst importsAndExports = [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent];\n\n/**\n * Module for dbx-bar components.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxBarLayoutModule {}\n","import { NgStyle } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\nimport { ResizedEvent } from '../../screen/resize';\nimport { DbxResizedDirective } from '../../screen/resize.directive';\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\" [ngStyle]=\"{ '--dbx-two-block-top-height': topHeightPixelsSignal() }\">\n <div #top class=\"dbx-two-block-top\" (dbxResized)=\"viewResized($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 imports: [DbxResizedDirective, NgStyle],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxTwoBlockComponent {\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 readonly fixedTop = input<boolean>(true);\n\n readonly topHeightSignal = signal<number>(0);\n readonly topHeightPixelsSignal = computed(() => `${this.topHeightSignal()}px`);\n\n viewResized(event: ResizedEvent): void {\n const height = event.newRect.height;\n this.topHeightSignal.set(height);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoBlockComponent } from './two.block.component';\n\n/**\n * Module for block components.\n *\n * @deprecated import DbxTwoBlockComponent directly instead.\n */\n@NgModule({\n imports: [DbxTwoBlockComponent],\n exports: [DbxTwoBlockComponent]\n})\nexport class DbxBlockLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\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 @if (icon()) {\n <mat-icon>{{ icon() }}</mat-icon>\n }\n @if (header()) {\n <span class=\"title-text\">{{ header() }}</span>\n }\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 imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxCardBoxComponent {\n readonly header = input<string>();\n readonly icon = input<string>();\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Component that wraps a card box and adds content padding.\n */\n@Directive({\n selector: 'dbx-card-box-container, [dbxCardBoxContainer]',\n host: {\n class: 'd-block dbx-card-box-container'\n },\n standalone: true\n})\nexport class DbxCardBoxContainerDirective {}\n","import { DbxCardBoxContainerDirective } from './card.box.container.directive';\nimport { DbxCardBoxComponent } from './card.box.component';\nimport { NgModule } from '@angular/core';\n\nconst importsAndExports = [DbxCardBoxComponent, DbxCardBoxContainerDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 readonly reverseSizing: boolean;\n /**\n * Whether or not the right side should be shown.\n */\n readonly showRight: boolean;\n /**\n * Overrides showRight if not null.\n */\n readonly showRightOverride?: Maybe<boolean>;\n /**\n * Whether or not there is any registered right content currently.\n */\n readonly hasRight: boolean;\n /**\n * Whether or not to allow the left to fill up the screen when no right is shown.\n */\n readonly fullLeft: boolean;\n /**\n * Optional ref to use with TwoColumns that use an sref for the back button.\n */\n readonly backRef?: Maybe<SegueRef>;\n /**\n * Size of the view's total width in pixels.\n */\n readonly totalWidth?: Maybe<number>;\n /**\n * Minimum right side size allowed before hiding the left content.\n */\n readonly 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 hasRight.\n */\n readonly hasRight$ = this.state$.pipe(map((x) => x.hasRight));\n\n /**\n * Pipes the current state of showRight and showRightOverride.\n */\n readonly currentShowRight$ = this.state$.pipe(map((x) => x.showRightOverride ?? 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.showRightOverride ?? 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.showRightOverride ?? 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 * Changes the override state to show right or not.\n */\n readonly setShowRightOverride = this.updater((state, showRightOverride: Maybe<boolean>) => ({ ...state, showRightOverride }));\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 { OnDestroy, ChangeDetectionStrategy, Component, ElementRef, inject, input, effect } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { Observable, combineLatest, distinctUntilChanged, map } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxContentContainerDirective } from '../../content/content.container.directive';\nimport { isDefinedAndNotFalse, Maybe } from '@dereekb/util';\nimport { DbxResizedDirective } from '../../../screen/resize.directive';\nimport { ResizedEvent } from '../../../screen/resize';\n\nexport interface DbxTwoColumnViewState {\n readonly showRight: boolean;\n readonly showFullLeft: boolean;\n readonly hideLeftColumn: boolean;\n readonly reverseSizing: boolean;\n readonly 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 template: `\n <dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height left-column\">\n @if (!hideLeftColumnSignal() && reverseSizingSignal()) {\n <div (dbxResized)=\"viewResized($event)\"></div>\n }\n <ng-content select=\"[left]\"></ng-content>\n </dbx-content-container>\n @if (showRightSignal()) {\n <dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height right-column\">\n @if (hideLeftColumnSignal() || !reverseSizingSignal()) {\n <div (dbxResized)=\"viewResized($event)\"></div>\n }\n <ng-content select=\"[right]\"></ng-content>\n </dbx-content-container>\n }\n `,\n exportAs: 'columns',\n host: {\n class: 'dbx-two-column',\n '[class]': 'cssClassSignal()'\n },\n imports: [DbxResizedDirective, DbxContentContainerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxTwoColumnComponent extends AbstractSubscriptionDirective implements OnDestroy {\n private readonly _elementRef = inject(ElementRef);\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly reverseSizing = input<boolean>(false);\n readonly inSectionPage = input<boolean>(false);\n\n /**\n * Acts as an override to show the right column without having to use dbx-two-column-right or update the context store directly.\n */\n readonly hasRightContent = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n\n readonly reverseSizing$ = this.twoColumnsContextStore.reverseSizing$;\n readonly hideLeftColumn$: Observable<boolean> = this.twoColumnsContextStore.hideLeft$;\n readonly inSectionPage$: Observable<boolean> = toObservable(this.inSectionPage);\n\n readonly showRight$: Observable<boolean> = this.twoColumnsContextStore.showRight$;\n readonly showFullLeft$: Observable<boolean> = this.twoColumnsContextStore.showFullLeft$;\n\n readonly hideLeftColumnSignal = toSignal(this.hideLeftColumn$);\n readonly reverseSizingSignal = toSignal(this.reverseSizing$);\n readonly showRightSignal = toSignal(this.showRight$);\n\n readonly cssClasses$ = combineLatest([this.showRight$, this.showFullLeft$, this.hideLeftColumn$, this.reverseSizing$, this.inSectionPage$]).pipe(\n distinctUntilChanged((prev, curr) => {\n return prev[0] === curr[0] && prev[1] === curr[1] && prev[2] === curr[2] && prev[3] === curr[3] && prev[4] === curr[4];\n }),\n map(([showRight, showFullLeft, hideLeftColumn, reverseSizing, inSectionPage]) => ({ 'right-shown': showRight, 'full-left': showFullLeft, 'hide-left-column': hideLeftColumn, 'two-column-reverse-sizing': reverseSizing, 'dbx-section-page-two': inSectionPage }))\n );\n\n readonly cssClassSignal = toSignal(this.cssClasses$);\n\n protected readonly _reverseSizingEffect = effect(\n () => {\n this.twoColumnsContextStore.setReverseSizing(this.reverseSizing());\n },\n { allowSignalWrites: true }\n );\n\n protected readonly _hasRightContentEffect = effect(\n () => {\n if (this.hasRightContent()) {\n this.twoColumnsContextStore.setHasRight(true);\n }\n },\n { allowSignalWrites: true }\n );\n\n viewResized(event: ResizedEvent): void {\n const totalWidth = (this._elementRef.nativeElement as HTMLElement).clientWidth;\n this.twoColumnsContextStore.setTotalWidth(totalWidth);\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { DbxTwoColumnComponent } from '../two/two.column.component';\nimport { provideTwoColumnsContext, TwoColumnsContextStore } from '../two/two.column.store';\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: provideTwoColumnsContext(),\n imports: [DbxTwoColumnComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxOneColumnComponent {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n readonly inSectionPage = input<boolean>(true);\n\n constructor() {\n this.twoColumnsContextStore.setFullLeft(true);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxOneColumnComponent } from './one.column.component';\n\n/**\n * @deprecated import DbxOneColumnComponent directly instead.\n */\n@NgModule({\n imports: [DbxOneColumnComponent],\n exports: [DbxOneColumnComponent]\n})\nexport class DbxOneColumnLayoutModule {}\n","import { Directive, OnInit, inject, output } 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 standalone: true\n})\nexport class DbxTwoColumnBackDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly dbxTwoColumnBack = output();\n\n ngOnInit(): void {\n this.sub = this.twoColumnsContextStore.back$.subscribe(() => this.dbxTwoColumnBack.emit());\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","import { Directive, effect, inject, input } from '@angular/core';\nimport { isDefinedAndNotFalse, type Maybe } from '@dereekb/util';\nimport { provideTwoColumnsContext, TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Provides a dbxTwoColumnContextStore\n */\n@Directive({\n selector: '[dbxTwoColumnContext]',\n providers: provideTwoColumnsContext(),\n standalone: true\n})\nexport class DbxTwoColumnContextDirective {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore, { self: true });\n readonly showRight = input<Maybe<boolean>, Maybe<boolean | ''>>(undefined, { transform: isDefinedAndNotFalse });\n\n protected readonly _showRightEffect = effect(\n () => {\n this.twoColumnsContextStore.setShowRightOverride(this.showRight());\n },\n { allowSignalWrites: true }\n );\n}\n","import { Directive, inject, input, effect } from '@angular/core';\nimport { isNotFalse, type Maybe } from '@dereekb/util';\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 standalone: true\n})\nexport class DbxTwoColumnFullLeftDirective {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly fullLeft = input<boolean, Maybe<boolean | ''>>(true, { alias: 'dbxTwoColumnFullLeft', transform: isNotFalse });\n\n protected readonly _fullLeftEffect = effect(\n () => {\n this._twoColumnsContextStore.setFullLeft(this.fullLeft());\n },\n { allowSignalWrites: true }\n );\n}\n","import { Directive, input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Two Columns related component that sits at the top of the content bodies and wraps content.\n */\n@Directive({\n selector: 'dbx-two-column-head,[dbxTwoColumnHead],.dbx-two-column-head',\n host: {\n class: 'd-flex dbx-two-column-head',\n '[class.d-block]': 'block()',\n '[class.full]': 'full()'\n },\n standalone: true\n})\nexport class DbxTwoColumnColumnHeadDirective {\n readonly block = input<Maybe<boolean>>(false);\n readonly full = input<Maybe<boolean>>(false);\n}\n","import { Directive, effect, inject, input } 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 standalone: true\n})\nexport class DbxTwoColumnSrefDirective {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly dbxTwoColumnSref = input.required<Maybe<SegueRefOrSegueRefRouterLink>>();\n\n protected readonly _dbxTwoColumnSrefEffect = effect(\n () => {\n const sref = this.dbxTwoColumnSref();\n const segueRef = sref ? asSegueRef(sref) : undefined;\n this._twoColumnsContextStore.setBackRef(segueRef);\n },\n { allowSignalWrites: true }\n );\n}\n","import { Component, input } from '@angular/core';\nimport { ClickableIconAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Component that displays an anchor and a mat-button.\n */\n@Component({\n selector: 'dbx-anchor-icon',\n standalone: true,\n imports: [MatIconModule, MatButtonModule, DbxAnchorComponent],\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 readonly anchor = input<Maybe<ClickableIconAnchorLink>>();\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from './anchor.component';\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 standalone: true,\n imports: [DbxAnchorComponent],\n template: `\n <dbx-anchor [anchor]=\"anchorSignal()\">\n <ng-content></ng-content>\n </dbx-anchor>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-inline dbx-link'\n }\n})\nexport class DbxLinkComponent {\n readonly ref = input<Maybe<string>>();\n readonly href = input<Maybe<string>>();\n readonly anchor = input<Maybe<ClickableAnchor>>();\n\n readonly anchorSignal = computed(() => {\n const ref = this.ref();\n const href = this.href();\n let anchor = this.anchor();\n\n if (!anchor) {\n if (ref) {\n anchor = {\n ref\n };\n } else if (href) {\n anchor = {\n url: href\n };\n }\n }\n\n return anchor;\n });\n}\n","import { combineLatest, map, Observable, of, shareReplay } from 'rxjs';\nimport { Component, inject, computed, input } from '@angular/core';\nimport { ClickableAnchor, ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Component that displays an anchor and a span with the title.\n */\n@Component({\n selector: 'dbx-anchor-content',\n standalone: true,\n imports: [MatIconModule],\n template: `\n @if (iconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ iconSignal() }}</mat-icon>\n }\n @if (titleSignal()) {\n <span>{{ titleSignal() }}</span>\n }\n `,\n host: {\n class: 'dbx-anchor-content'\n }\n})\nexport class DbxAnchorContentComponent {\n readonly parent = inject(DbxAnchorComponent, { optional: true });\n\n readonly inputAnchor = input<Maybe<Partial<ClickableAnchorLink>>>(undefined, { alias: 'anchor' });\n\n private readonly _inputAnchor = toObservable(this.inputAnchor);\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 anchorSignal = toSignal(this.anchor$);\n\n readonly iconSignal = computed(() => this.anchorSignal()?.icon);\n readonly titleSignal = computed(() => this.anchorSignal()?.title);\n}\n","import { NgModule } from '@angular/core';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { DbxAnchorIconComponent } from './anchor.icon.component';\nimport { DbxLinkComponent } from './anchor.link.component';\nimport { DbxAnchorContentComponent } from './anchor.content.component';\n\n/**\n * All standalone components related to anchors and links.\n */\nexport const DBX_ROUTER_ANCHOR_COMPONENTS = [DbxAnchorComponent, DbxAnchorIconComponent, DbxLinkComponent, DbxAnchorContentComponent];\n\n/**\n * Module that provides anchor and link components.\n *\n * All components are now standalone. This module is provided for backward compatibility.\n */\n@NgModule({\n imports: DBX_ROUTER_ANCHOR_COMPONENTS,\n exports: DBX_ROUTER_ANCHOR_COMPONENTS\n})\nexport class DbxRouterAnchorModule {}\n","import { computed, Directive, inject } from '@angular/core';\nimport { DbxInjectionTemplateConfig } from '@dereekb/dbx-core';\nimport { Observable, distinctUntilChanged, shareReplay, map } from 'rxjs';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Abstract implementation\n */\n@Directive()\nexport abstract class AbstractDbxSegueAnchorDirective {\n readonly parent = inject(DbxAnchorComponent);\n\n readonly anchor$ = this.parent.anchor$;\n readonly templateConfig$: Observable<DbxInjectionTemplateConfig> = this.parent.templateRef$.pipe(\n distinctUntilChanged(),\n map((templateRef) => ({\n templateRef\n })),\n shareReplay(1)\n );\n\n readonly anchorSignal = toSignal(this.anchor$, { initialValue: undefined });\n readonly templateConfigSignal = toSignal(this.templateConfig$, { initialValue: undefined });\n\n readonly targetSignal = computed(() => this.anchorSignal()?.target);\n}\n","import { NgModule } from '@angular/core';\nimport { DbxAnchorListComponent } from './anchorlist.component';\n\n/**\n * @deprecated import standalone DbxAnchorListComponent directly\n */\n@NgModule({\n imports: [DbxAnchorListComponent],\n exports: [DbxAnchorListComponent]\n})\nexport class DbxRouterAnchorListModule {}\n","import { BehaviorSubject, map, Observable, shareReplay, combineLatest, distinctUntilChanged } from 'rxjs';\nimport { Directive, OnDestroy, inject, input } from '@angular/core';\nimport { DbxValueListItem } from '../list.view.value';\nimport { addModifiers, ArrayOrValue, combineMaps, Maybe, Modifier, ModifierMap, removeModifiers } from '@dereekb/util';\nimport { MaybeObservableOrValue, maybeValueFromObservableOrValue, SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxValueListItemModifier, provideDbxValueListViewModifier } from '../list.view.value.modifier';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { transformEmptyStringInputToUndefined } from '@dereekb/dbx-core';\n\n/**\n * DbxValueListViewModifier implementation\n */\n@Directive({\n selector: 'dbxListItemModifier,[dbxListItemModifier]',\n providers: provideDbxValueListViewModifier(DbxValueListItemModifierDirective),\n standalone: true\n})\nexport class DbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListItemModifier<T, I>, OnDestroy {\n readonly inputModifiers = input<Maybe<ArrayOrValue<Modifier<I>>>, Maybe<'' | ArrayOrValue<Modifier<I>>>>(undefined, { alias: 'dbxListItemModifier', transform: transformEmptyStringInputToUndefined });\n\n private readonly _additionalModifiers = new BehaviorSubject<Maybe<ModifierMap<I>>>(undefined);\n\n readonly modifiers$ = combineLatest([this._additionalModifiers, toObservable(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._additionalModifiers.complete();\n }\n\n // MARK: Modifiers\n addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._additionalModifiers.next(addModifiers(modifiers, this._additionalModifiers.value));\n }\n\n removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._additionalModifiers.next(removeModifiers(modifiers, this._additionalModifiers.value));\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 OnDestroy {\n readonly dbxValueListItemModifier = inject(DbxValueListItemModifier<T, I>);\n\n private _currentLinkedModifiers: Maybe<ArrayOrValue<Modifier<I>>>;\n\n private readonly _modifiers = new BehaviorSubject<MaybeObservableOrValue<ArrayOrValue<Modifier<I>>>>(undefined);\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<I>>>> = this._modifiers.pipe(maybeValueFromObservableOrValue(), distinctUntilChanged());\n\n private readonly _modifiersSub = new SubscriptionObject(\n this.modifiers$.subscribe((modifiers) => {\n this._linkModifiers(modifiers);\n })\n );\n\n ngOnDestroy(): void {\n this._modifiersSub.destroy();\n this._unlinkModifiers();\n }\n\n setModifiers(modifiers: MaybeObservableOrValue<ArrayOrValue<Modifier<I>>>) {\n this._modifiers.next(modifiers);\n }\n\n private _linkModifiers(modifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._unlinkModifiers();\n\n if (modifiers) {\n this.dbxValueListItemModifier.addModifiers(modifiers);\n this._currentLinkedModifiers = modifiers;\n }\n }\n\n private _unlinkModifiers() {\n if (this._currentLinkedModifiers) {\n this.dbxValueListItemModifier.removeModifiers(this._currentLinkedModifiers);\n this._currentLinkedModifiers = undefined;\n }\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, Modifier } from '@dereekb/util';\nimport { map, Observable } from 'rxjs';\nimport { DbxValueListItem } from '../../../layout/list/list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from '../../../layout/list/modifier/list.view.value.modifier.directive';\nimport { toObservable } from '@angular/core/rxjs-interop';\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 standalone: true\n})\nexport class DbxListItemAnchorModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> {\n readonly anchorForItem = input<Maybe<AnchorForValueFunction<T>>>(undefined, { alias: 'dbxListItemAnchorModifier' });\n\n readonly anchorForItemModifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = toObservable(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 constructor() {\n super();\n this.setModifiers(this.anchorForItemModifiers$);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxListItemAnchorModifierDirective } from './router.list.directive';\n\n/**\n * @deprecated import DbxValueListItemModifierDirective directly instead.\n */\n@NgModule({\n imports: [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 readonly _microQuery: MediaQueryList;\n private readonly _smallQuery: MediaQueryList;\n private readonly _tabletQuery: MediaQueryList;\n private readonly _largeQuery: MediaQueryList;\n\n private readonly _tinyHeightQuery: MediaQueryList;\n\n private readonly _updateWidth = new Subject<void>();\n private readonly _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, 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 { Component, ChangeDetectionStrategy, inject, input } from '@angular/core';\nimport { ClickableAnchorLinkSegueRef, DbxRouterService, AbstractTransitionDirective, DbxButtonDisplay } from '@dereekb/dbx-core';\nimport { HorizontalConnectionPos } from '@angular/cdk/overlay';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxAnchorComponent } from '../anchor';\nimport { MatTabLink, MatTabNav, MatTabNavPanel } from '@angular/material/tabs';\nimport { DbxIconButtonComponent } from '../../../button/icon/icon.button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\nimport { NgClass } from '@angular/common';\n\ninterface NavAnchorLink {\n readonly selected: boolean;\n readonly 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 host: {\n class: 'dbx-navbar'\n },\n imports: [DbxAnchorComponent, MatTabNav, MatTabNavPanel, MatTabLink, DbxIconButtonComponent, MatIconModule, MatMenu, MatMenuItem, NgClass, MatMenuTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxNavbarComponent extends AbstractTransitionDirective {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n private readonly _dbxRouterService = inject(DbxRouterService);\n\n /**\n * Whether or not to show the dropwdown caret for a menu\n */\n readonly showMenuCaret = input<boolean>(false);\n\n readonly navAlign = input<HorizontalConnectionPos>('center');\n\n readonly icon = input<Maybe<string>>();\n readonly defaultIcon = input<Maybe<string>>('menu');\n readonly defaultText = input<Maybe<string>>();\n readonly mode = input<Maybe<NavbarMode>>();\n readonly buttonMode = input<NavbarButtonMode>('menu');\n readonly breakpoint = input<ScreenMediaWidthType>('large');\n readonly anchors = input<Maybe<ClickableAnchorLinkSegueRef[]>>([]);\n\n readonly isBreakpointActive$ = this._dbxScreenMediaService.isBreakpointActive(toObservable(this.breakpoint));\n\n readonly mode$ = combineLatest([toObservable(this.mode), this.isBreakpointActive$]).pipe(\n map(([inputMode, breakpointActive]) => {\n return breakpointActive ? (inputMode ?? 'bar') : 'button';\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly anchors$: Observable<NavAnchorLink[]> = combineLatest([toObservable(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 shareReplay(1)\n );\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$ = toObservable(this.buttonMode).pipe(\n switchMap((x) => (x === 'menu' ? this.selectedAnchor$ : this.nextRotateAnchor$)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonDisplay$: Observable<DbxButtonDisplay> = combineLatest([toObservable(this.defaultIcon), toObservable(this.icon), toObservable(this.defaultText), this.buttonNavAnchor$, this.mode$]).pipe(\n map(([defaultIcon, icon, defaultText, selectedAnchor, mode]) => {\n let content: DbxButtonDisplay;\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 modeSignal = toSignal(this.mode$);\n readonly anchorsSignal = toSignal(this.anchors$);\n readonly buttonDisplaySignal = toSignal(this.buttonDisplay$);\n readonly hasNoAnchorsSignal = toSignal(this.hasNoAnchors$);\n readonly nextRotateAnchorSignal = toSignal(this.nextRotateAnchor$);\n\n // TODO: potentially make the caret depending on the current button display.\n}\n","@switch (modeSignal()) {\n @case ('bar') {\n <!-- Bar -->\n <nav mat-tab-nav-bar [tabPanel]=\"tabPanel\" [attr.mat-align-tabs]=\"navAlign()\">\n @for (x of anchorsSignal(); track x.anchor) {\n <dbx-anchor [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n }\n </nav>\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n }\n @default {\n <!-- Button -->\n @switch (buttonMode()) {\n <!-- Menu -->\n @case ('menu') {\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplaySignal()\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchorsSignal()\">\n @if (showMenuCaret()) {\n <mat-icon>arrow_drop_down</mat-icon>\n }\n </dbx-icon-button>\n <mat-menu #menu>\n @for (x of anchorsSignal(); track x) {\n <dbx-anchor [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n @if (x.anchor.icon) {\n <mat-icon>{{ x.anchor.icon }}</mat-icon>\n }\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n }\n </mat-menu>\n }\n <!-- Rotate -->\n @case ('rotate') {\n <dbx-anchor [anchor]=\"nextRotateAnchorSignal()?.anchor\">\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplaySignal()\" [disabled]=\"hasNoAnchorsSignal()\"></dbx-icon-button>\n </dbx-anchor>\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxNavbarComponent } from './navbar.component';\n\n/**\n * @deprecated import DbxNavbarComponent directly\n */\n@NgModule({\n imports: [DbxNavbarComponent],\n exports: [DbxNavbarComponent]\n})\nexport class DbxRouterNavbarModule {}\n","export enum SideNavDisplayMode {\n NONE = 'none',\n MOBILE = 'mobile',\n ICON = 'icon',\n FULL = 'full'\n}\n","import { Component, input, viewChild, inject, ChangeDetectionStrategy, computed, effect } from '@angular/core';\nimport { MatDrawerMode, MatSidenav, MatSidenavModule } from '@angular/material/sidenav';\nimport { DbxScreenMediaService } from '../../../screen/screen.service';\nimport { AbstractTransitionWatcherDirective, ClickableAnchorLinkTree } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { SideNavDisplayMode } from './sidenav';\nimport { NgClass } from '@angular/common';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { DbxAnchorListComponent } from '../anchorlist/anchorlist.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, Observable, shareReplay } from 'rxjs';\n\nexport interface DbxSidenavSidebarState {\n readonly mode: SideNavDisplayMode;\n readonly drawer: MatDrawerMode;\n readonly 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 template: `\n <mat-sidenav-container class=\"dbx-sidenav\" [ngClass]=\"sizeCssClassSignal()\">\n <mat-sidenav class=\"dbx-sidenav-nav\" [disableClose]=\"disableBackdropSignal()\" [mode]=\"drawerSignal()\">\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 `,\n imports: [NgClass, MatSidenavModule, DbxRouterAnchorModule, DbxAnchorListComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSidenavComponent extends AbstractTransitionWatcherDirective {\n private readonly _screenMediaService = inject(DbxScreenMediaService);\n\n readonly sidenav = viewChild.required<MatSidenav>(MatSidenav);\n\n readonly anchors = input<Maybe<ClickableAnchorLinkTree[]>>();\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 distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly modeSignal = toSignal(this.mode$);\n readonly disableBackdropSignal = computed(() => this.modeSignal() !== SideNavDisplayMode.MOBILE);\n readonly sizeCssClassSignal = computed(() => `dbx-sidenav-${this.modeSignal()}`);\n\n readonly stateSignal = computed(() => {\n const mode = this.modeSignal();\n\n let drawer: MatDrawerMode = 'over';\n let open: boolean = false;\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\n readonly drawerSignal = computed(() => this.stateSignal().drawer);\n\n protected readonly _stateSignalToggleEffect = effect(() => {\n const state = this.stateSignal();\n\n if (state.open != null) {\n this._toggleNav(state.open, true);\n }\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?: Maybe<boolean>, forced = false): void {\n toggleOpen = toggleOpen ?? !this.sidenav().opened;\n\n const mode = this.stateSignal().mode;\n\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","import { Component, input, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { toSignal } from '@angular/core/rxjs-interop';\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 @if (showMenuButtonSignal()) {\n <button class=\"dbx-sidenav-button\" mat-icon-button (click)=\"toggleNav()\" aria-label=\"open sidenav button\">\n <mat-icon>{{ sidenavMenuIcon() }}</mat-icon>\n </button>\n }\n `,\n imports: [MatIconModule, MatButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\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 readonly showMenuButtonSignal = toSignal(this.showMenuButton$, { initialValue: false });\n\n readonly sidenavMenuIcon = input<string, Maybe<string>>(DEFAULT_DBX_SIDENAV_MENU_ICON, {\n transform: (value: Maybe<string>) => value || DEFAULT_DBX_SIDENAV_MENU_ICON\n });\n\n toggleNav() {\n this.parent.toggleNav();\n }\n}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxPagebarComponent } from '../../../layout/bar/pagebar.component';\nimport { DbxSidenavButtonComponent } from './sidenav.button.component';\nimport { DbxButtonSpacerDirective } from '../../../button/button.spacer.directive';\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 imports: [DbxPagebarComponent, DbxSidenavButtonComponent, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSidenavPagebarComponent extends DbxPagebarComponent {\n readonly sidenavMenuIcon = input<Maybe<string>>();\n}\n","import { switchMap, shareReplay, map, of } from 'rxjs';\nimport { Component, input, ChangeDetectionStrategy, 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';\nimport { NgClass } from '@angular/common';\nimport { DbxSidenavPagebarComponent } from './sidenav.pagebar.component';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\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 <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 `,\n host: {\n class: 'd-block',\n '[class.dbx-pagebar-hide]': 'hidePagebarSignal()'\n },\n imports: [NgClass, DbxSidenavPagebarComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSidenavPageComponent {\n readonly parent = inject(DbxSidenavComponent);\n\n readonly color = input<Maybe<DbxBarColor>>();\n readonly sidenavMenuIcon = input<Maybe<string>>();\n readonly mobileOnly = input<boolean>(false);\n\n readonly mobileOnly$ = toObservable(this.mobileOnly);\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 readonly hidePagebarSignal = toSignal(this.hidePagebar$, { initialValue: false });\n}\n","import { input, Directive, inject, computed, Signal } from '@angular/core';\nimport { AbstractIfDirective } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, asArray, filterMaybeArrayValues } from '@dereekb/util';\nimport { shareReplay, switchMap, distinctUntilChanged, map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Structural directive that displays the content if the Sidenav has a specific sidenav size.\n */\n@Directive({\n selector: '[dbxIfSidenavDisplayMode]',\n standalone: true\n})\nexport class DbxIfSidenavDisplayModeDirective extends AbstractIfDirective {\n readonly dbxSidenavComponent = inject(DbxSidenavComponent);\n\n readonly modes = input<Maybe<ArrayOrValue<SideNavDisplayMode | string>>>(undefined, { alias: 'dbxIfSidenavDisplayMode' });\n\n readonly modesSetSignal: Signal<Set<SideNavDisplayMode>> = computed(() => {\n const modes = this.modes();\n return new Set(filterMaybeArrayValues(asArray(modes as SideNavDisplayMode)));\n });\n\n readonly modes$ = toObservable(this.modesSetSignal);\n\n readonly show$ = this.modes$.pipe(\n switchMap((modes) => {\n return this.dbxSidenavComponent.mode$.pipe(map((mode) => modes.has(mode)));\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly showSignal = toSignal(this.show$, { initialValue: false });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { DbxSidenavPagebarComponent } from './sidenav.pagebar.component';\nimport { DbxSidenavPageComponent } from './sidenav.page.component';\nimport { DbxSidenavButtonComponent } from './sidenav.button.component';\nimport { DbxIfSidenavDisplayModeDirective } from './sidenav.ifdisplaymode.directive';\n\nconst importsAndExports = [DbxIfSidenavDisplayModeDirective, DbxSidenavComponent, DbxSidenavButtonComponent, DbxSidenavPagebarComponent, DbxSidenavPageComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n/**\n * SegueAnchor implementation for Angular Router.\n */\n@Component({\n templateUrl: './anchor.component.html',\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxAngularRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {}\n","<a class=\"dbx-anchor-a\" [attr.target]=\"targetSignal()\">\n <dbx-injection [template]=\"templateConfigSignal()\"></dbx-injection>\n</a>\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxAngularRouterSegueAnchorComponent } from './anchor.component';\n\n/**\n * Provides a DbxRouterWebProviderConfig that configures the app to use Angular Router for anchors.\n *\n * @returns EnvironmentProviders\n */\nexport function provideDbxRouterWebAngularRouterProviderConfig(): EnvironmentProviders {\n const config: DbxRouterWebProviderConfig = {\n anchorSegueRefComponent: {\n componentClass: DbxAngularRouterSegueAnchorComponent\n }\n };\n\n const providers: Provider[] = [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: config\n }\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { Component, computed } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\nimport { Obj, StateOrName, TransitionOptions, UIRouterModule } from '@uirouter/angular';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * SegueAnchor implementation for UIRouter.\n */\n@Component({\n templateUrl: './anchor.component.html',\n imports: [UIRouterModule, DbxInjectionComponent],\n standalone: true\n})\nexport class DbxUIRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {\n private readonly _parentAnchorSignal = toSignal(this.parent.anchor$, { initialValue: undefined });\n\n readonly uiSrefSignal = computed<StateOrName>(() => (this._parentAnchorSignal()?.ref ?? '') as StateOrName);\n readonly uiParamsSignal = computed<Obj | undefined>(() => this._parentAnchorSignal()?.refParams);\n readonly uiOptionsSignal = computed<TransitionOptions>(() => this._parentAnchorSignal()?.refOptions ?? ({} as TransitionOptions));\n}\n","<a class=\"dbx-anchor-a dbx-anchor-sref\" [attr.target]=\"targetSignal()\" [uiSref]=\"uiSrefSignal()\" [uiParams]=\"uiParamsSignal()\" [uiOptions]=\"uiOptionsSignal()\" uiSrefActive=\"dbx-anchor-active\" uiSrefActiveEq=\"dbx-anchor-active-eq\">\n <dbx-injection [template]=\"templateConfigSignal()\"></dbx-injection>\n</a>\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxUIRouterSegueAnchorComponent } from './anchor.component';\n\n/**\n * Provides a DbxRouterWebProviderConfig that configures the app to use UIRouter for anchors.\n \n * @returns EnvironmentProviders\n */\nexport function provideDbxRouterWebUiRouterProviderConfig(): EnvironmentProviders {\n const config: DbxRouterWebProviderConfig = {\n anchorSegueRefComponent: {\n componentClass: DbxUIRouterSegueAnchorComponent\n }\n };\n\n const providers: Provider[] = [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: config\n }\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { ChangeDetectionStrategy, Component, computed, effect, inject, input } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { delay, Observable } from 'rxjs';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { type Maybe } from '@dereekb/util';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxTwoColumnColumnHeadDirective } from './two.column.head.directive';\nimport { DbxAnchorComponent } from '../../../router';\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 template: `\n <dbx-two-column-head [block]=\"block()\" [full]=\"full()\">\n <!-- Back Buttons -->\n @if (showBackSignal()) {\n <button mat-icon-button class=\"back-button\" (click)=\"backClicked()\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n }\n @if (alternativeBackRefSignal()) {\n <dbx-anchor [anchor]=\"alternativeBackRefSignal()\">\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 }\n @if (header()) {\n <span class=\"right-nav-title\">{{ header() }}</span>\n }\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 `,\n host: {\n class: 'dbx-two-column-right d-block'\n },\n imports: [DbxTwoColumnColumnHeadDirective, MatButtonModule, MatIconModule, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxTwoColumnRightComponent {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly full = input<boolean>(false);\n readonly header = input<Maybe<string>>();\n readonly block = input<Maybe<boolean>>();\n\n readonly showBack = input<boolean>(true);\n\n readonly alternativeBackRef$: Observable<Maybe<ClickableAnchor>> = this.twoColumnsContextStore.backRef$;\n readonly alternativeBackRefSignal = toSignal(this.alternativeBackRef$.pipe(delay(0)));\n\n /**\n * Minimum right-side width allowed in pixels.\n */\n readonly minRightWidth = input<Maybe<number>>();\n\n protected readonly _setMinRightWidthEffect = effect(\n () => {\n this.twoColumnsContextStore.setMinRightWidth(this.minRightWidth());\n },\n { allowSignalWrites: true }\n );\n\n readonly showBackSignal = computed(() => {\n const showBack = this.showBack();\n const alternativeBackRef = this.alternativeBackRefSignal();\n\n // show the back signal if true and there is no alternative back\n return showBack && !alternativeBackRef;\n });\n\n constructor() {\n this.twoColumnsContextStore.setHasRight(true);\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","import { Directive, 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 standalone: true\n})\nexport class DbxTwoColumnSrefShowRightDirective extends AbstractSubscriptionDirective {\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 constructor() {\n super();\n this.sub = this._twoColumnsContextStore.setShowRight(this.showRight$) as Subscription;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoColumnSrefDirective } from './two.column.sref.directive';\nimport { DbxTwoColumnComponent } from './two.column.component';\nimport { DbxTwoColumnColumnHeadDirective } from './two.column.head.directive';\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 { DbxTwoColumnSrefShowRightDirective } from './two.column.sref.showright.directive';\n\nconst importsAndExports = [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadDirective, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxTwoColumnLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from './two';\nimport { DbxOneColumnComponent } from './one';\n\nconst importsAndExports = [DbxOneColumnComponent, DbxTwoColumnLayoutModule];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxColumnLayoutModule {}\n","import { computed, 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]': `classConfig()`\n },\n standalone: true\n})\nexport class DbxContentBorderDirective {\n readonly color = input<DbxThemeColor>('background');\n readonly classConfig = computed(() => `dbx-content-border-${this.color()}`);\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 standalone: true\n})\nexport class DbxContentBoxDirective {\n readonly elevate = input<boolean>(true);\n readonly wide = input<boolean>(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 standalone: true\n})\nexport class DbxContentDirective {}\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 standalone: true\n})\nexport class DbxContentElevateDirective {\n readonly elevate = input<boolean>(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 standalone: true\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 standalone: true\n})\nexport class DbxContentPitDirective {\n readonly scrollable = input<Maybe<boolean>>();\n}\n","import { DbxContentElevateDirective } from './content.elevate.directive';\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 importsAndExports = [\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: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxContentLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatToolbarModule } from '@angular/material/toolbar';\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 imports: [MatToolbarModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFlagComponent {\n readonly color = input<ThemePalette>('accent');\n}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { DbxFlagComponent } from './flag.component';\nimport { Maybe } from '@dereekb/util';\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 imports: [DbxFlagComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFlagPromptComponent {\n readonly color = input<ThemePalette>('accent');\n readonly text = input<Maybe<string>>();\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFlagComponent } from './flag.component';\nimport { DbxFlagPromptComponent } from './flag.prompt.component';\n\nconst importsAndExports = [DbxFlagComponent, DbxFlagPromptComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxFlagLayoutModule {}\n","import { ScreenMediaWidthType } from '../../screen/screen';\nimport { DbxScreenMediaService } from '../../screen/screen.service';\nimport { Directive, inject, input } from '@angular/core';\nimport { map, distinctUntilChanged, shareReplay } from 'rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\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-relative]': 'relative()',\n '[class.dbx-flex-group-small]': 'smallSignal()'\n },\n standalone: true\n})\nexport class DbxFlexGroupDirective extends AbstractSubscriptionDirective {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n\n readonly content = input<boolean>(true);\n readonly breakToColumn = input<boolean>(false);\n readonly relative = input<boolean>(false);\n\n readonly breakpoint = input<ScreenMediaWidthType, Maybe<ScreenMediaWidthType>>('tablet', { transform: (x) => x ?? 'tablet' });\n\n readonly isSmallScreen$ = this._dbxScreenMediaService.isBreakpointActive(toObservable(this.breakpoint)).pipe(\n map((x) => !x),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly smallSignal = toSignal(this.isSmallScreen$, { initialValue: false });\n}\n","import { Directive, input, computed } 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]': 'cssClassSignal()'\n },\n standalone: true\n})\nexport class DbxFlexSizeDirective {\n readonly dbxFlexSize = input.required<DbxFlexSize>();\n readonly cssClassSignal = computed(() => `dbx-flex-${this.dbxFlexSize()}`);\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFlexGroupDirective } from './flex.group.directive';\nimport { DbxFlexSizeDirective } from './flex.size.directive';\n\nconst importsAndExports = [DbxFlexGroupDirective, DbxFlexSizeDirective];\n\n/**\n * @deprecated Import DbxFlexGroupDirective and DbxFlexSizeDirective instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxFlexLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { MatIconModule } from '@angular/material/icon';\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 @if (icon()) {\n <div class=\"left\">\n <mat-icon>{{ icon() }}</mat-icon>\n </div>\n }\n <div class=\"right\">\n @if (header()) {\n <h3 class=\"dbx-icon-item-header\">{{ header() }}</h3>\n }\n <div class=\"right-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n `,\n standalone: true,\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxIconItemComponent {\n readonly icon = input<Maybe<string>>();\n readonly header = input<Maybe<string>>();\n}\n","import { ChangeDetectionStrategy, 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';\nimport { MatIconModule } from '@angular/material/icon';\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 standalone: true,\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush\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 { InjectionToken, Component, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { PrimativeKey } from '@dereekb/util';\nimport { DbxListTitleGroupData } from './list.view.value.group.title';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgClass } from '@angular/common';\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 * The default group header component.\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 @if (icon) {\n <mat-icon class=\"item-icon\">{{ icon }}</mat-icon>\n }\n <div class=\"item-left\">\n <div class=\"mat-subtitle-2\">{{ title }}</div>\n @if (hint) {\n <div class=\"item-details\">{{ hint }}</div>\n }\n </div>\n </div>\n `,\n imports: [NgClass, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-list-title-group-header'\n },\n standalone: true\n})\nexport class DbxListTitleGroupHeaderComponent<O extends PrimativeKey, D extends DbxListTitleGroupData<O>> extends AbstractDbxListTitleGroupHeaderComponent<O, D> {\n readonly icon = this.data.icon;\n readonly title = this.data.title;\n readonly hint = this.data.hint;\n}\n","import { Directive, input, StaticProvider } from '@angular/core';\nimport { DbxValueListItem, DbxValueListItemConfig } from '../list.view.value';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, DbxValueListViewGroupValuesFunction, provideDbxValueListViewGroupDelegate } from './list.view.value.group';\nimport { map } from 'rxjs';\nimport { Building, Maybe, PrimativeKey, compareWithMappedValuesFunction, makeValuesGroupMap } from '@dereekb/util';\nimport { DbxListTitleGroupData, DbxListTitleGroupTitleDelegate } from './list.view.value.group.title';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { DbxListTitleGroupHeaderComponent, DBX_LIST_TITLE_GROUP_DATA } from './list.view.value.group.title.header.component';\n\n/**\n * Delegate used to for grouping DbxValueListItemConfig<T, I> values.\n */\n@Directive({\n selector: '[dbxListTitleGroup]',\n providers: [provideDbxValueListViewGroupDelegate(DbxListTitleGroupDirective)],\n standalone: true\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 readonly delegate = input<Maybe<DbxListTitleGroupTitleDelegate<T, O, D, I>>>(undefined, { alias: 'dbxListTitleGroup' });\n\n private readonly _delegate$ = toObservable(this.delegate);\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","import { Directive, input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from '../list.view.value';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { transformEmptyStringInputToUndefined } from '@dereekb/dbx-core';\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,[dbxListItemDisableRippleModifier]',\n standalone: true\n})\nexport class DbxListItemDisableRippleModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n readonly disableRippleForItem = input<Maybe<DbxValueListItemDecisionFunction<T>>, Maybe<'' | DbxValueListItemDecisionFunction<T>>>(undefined, { alias: 'dbxListItemDisableRippleModifier', transform: transformEmptyStringInputToUndefined });\n\n readonly disableRippleForItemModifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = toObservable(this.disableRippleForItem).pipe(\n map((x) => x ?? DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION),\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 constructor() {\n super();\n this.setModifiers(this.disableRippleForItemModifiers$);\n }\n}\n","import { Directive, input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from '../list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { transformEmptyStringInputToUndefined } from '@dereekb/dbx-core';\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,[dbxListItemIsSelectedModifier]',\n standalone: true\n})\nexport class DbxListItemIsSelectedModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n readonly listItemIsSelected = input.required<Maybe<DbxValueListItemDecisionFunction<T>>, Maybe<'' | DbxValueListItemDecisionFunction<T>>>({ alias: 'dbxListItemIsSelectedModifier', transform: transformEmptyStringInputToUndefined });\n\n readonly listItemIsSelectedModifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = toObservable(this.listItemIsSelected).pipe(\n map((x) => x ?? DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION),\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 constructor() {\n super();\n this.setModifiers(this.listItemIsSelectedModifiers$);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { DbxListItemDisableRippleModifierDirective } from './list.view.value.modifier.ripple.directive';\nimport { DbxListItemIsSelectedModifierDirective } from './list.view.value.modifier.selection.directive';\n\nconst importsAndExports = [DbxValueListItemModifierDirective, DbxListItemDisableRippleModifierDirective, DbxListItemIsSelectedModifierDirective];\n\n/**\n * Exports all dbx-list modifier-related directives.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxListModifierModule {}\n","import { ChangeDetectionStrategy, 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 standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxListEmptyContentComponent {}\n","import { NgModule } from '@angular/core';\nimport { DbxListEmptyContentComponent } from './list.content.empty.component';\nimport { DbxListTitleGroupDirective } from './group/list.view.value.group.title.directive';\nimport { DbxListViewMetaIconComponent } from './meta/list.view.meta.icon.component';\nimport { DbxListModifierModule } from './modifier/list.modifier.module';\n\nconst importsAndExports = [\n // directives\n DbxListEmptyContentComponent,\n DbxListViewMetaIconComponent,\n DbxListTitleGroupDirective,\n DbxListModifierModule\n];\n\n/**\n * Contains all supporting list components and directives.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxListModule {}\n","import { map, shareReplay, distinctUntilChanged, of } from 'rxjs';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { MatListModule, MatSelectionList, MatSelectionListChange } from '@angular/material/list';\nimport { DbxListSelectionMode, 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, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION } from './list.view.value.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { toSignal } from '@angular/core/rxjs-interop';\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// MARK: DbxSelectionValueListViewContentComponent\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 @switch (selectionMode()) {\n @case ('view') {\n <dbx-list-view-content [items]=\"items()\"></dbx-list-view-content>\n }\n @default {\n <mat-selection-list [disabled]=\"disabledSignal()\" [multiple]=\"multiple()\" (selectionChange)=\"matSelectionChanged($event)\">\n @for (item of items(); track trackByFunctionSignal()($index, item)) {\n <mat-list-option class=\"dbx-list-view-item\" [selected]=\"item.selected\" [disabled]=\"item.disabled\" [value]=\"item.itemValue\" (click)=\"onClickValue(item.itemValue)\">\n @if (item.icon) {\n <mat-icon matListItemIcon>{{ item.icon }}</mat-icon>\n }\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n </mat-list-option>\n }\n </mat-selection-list>\n }\n }\n `,\n host: {\n class: 'dbx-list-view dbx-selection-list-view'\n },\n imports: [MatSelectionList, MatListModule, MatIconModule, DbxInjectionComponent, DbxValueListViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSelectionValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> {\n readonly multiple = input<Maybe<boolean>>();\n readonly selectionMode = input<Maybe<DbxListSelectionMode>>();\n readonly trackByFunctionSignal = toSignal(this.trackBy$, { initialValue: DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION });\n\n constructor() {\n super();\n if (!this.dbxListView.selectionChange) {\n throw new Error('DbxSelectionValueListViewContentComponent(): Parent dbxListView is missing a required selectionChange output ref.');\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 // asserted in constructor\n this.dbxListView.selectionChange?.emit({ items });\n }\n}\n\n// MARK: DbxSelectionValueListViewComponent\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]=\"selectionModeSignal()\" [multiple]=\"multipleSignal()\" [items]=\"itemsSignal()\"></dbx-selection-list-view-content>\n `,\n standalone: true,\n imports: [DbxSelectionValueListViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\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$ = (this.dbxListView.selectionMode$ ?? of('select')).pipe(\n map((x) => x ?? 'select'),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly selectionModeSignal = toSignal(this.selectionMode$, { initialValue: 'select' as DbxListSelectionMode });\n readonly multipleSignal = computed(() => this.config()?.multiple ?? true);\n}\n","import { NgModule } from '@angular/core';\nimport { DbxListComponent } from './list.component';\nimport { DbxListEmptyContentComponent } from './list.content.empty.component';\nimport { DbxSelectionValueListViewContentComponent, DbxSelectionValueListViewComponent } from './list.view.value.selection.component';\nimport { DbxValueListViewContentComponent, DbxValueListViewComponent, DbxValueListViewContentGroupComponent } from './list.view.value.component';\nimport { DbxValueListGridViewContentComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent } from './grid/list.grid.view.component';\nimport { DbxListModifierModule } from './modifier/list.modifier.module';\nimport { DbxListTitleGroupDirective } from './group';\n\nconst importsAndExports = [\n // modules\n DbxListModifierModule,\n // components/directives\n DbxListEmptyContentComponent,\n DbxListComponent,\n DbxValueListViewComponent,\n DbxValueListViewContentComponent,\n DbxValueListViewContentGroupComponent,\n DbxValueListGridSizeDirective,\n DbxValueListGridViewComponent,\n DbxValueListGridViewContentComponent,\n DbxListTitleGroupDirective,\n DbxSelectionValueListViewComponent,\n DbxSelectionValueListViewContentComponent\n];\n\n/**\n * @deprecated Import the standalone modules instead or DbxListModule.\n *\n * @see DbxListModule\n * @see DbxListComponent\n * @see DbxListEmptyContentComponent\n * @see DbxValueListViewComponent\n * @see DbxValueListViewContentComponent\n * @see DbxValueListViewContentGroupComponent\n * @see DbxValueListGridSizeDirective\n * @see DbxValueListGridViewComponent\n * @see DbxValueListGridViewContentComponent\n * @see DbxListViewMetaIconComponent\n * @see DbxListTitleGroupDirective\n * @see DbxListTitleGroupHeaderComponent\n * @see DbxSelectionValueListViewComponent\n * @see DbxSelectionValueListViewContentComponent\n * @see DbxValueListItemModifierDirective\n * @see DbxListItemDisableRippleModifierDirective\n * @see DbxListItemIsSelectedModifierDirective\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 { Directive, NgModule, output } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\nimport { DbxSelectionValueListViewComponent } from './list.view.value.selection.component';\n\nexport const DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE = '<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>';\n\n@NgModule({\n exports: [DbxSelectionValueListViewComponent],\n imports: [DbxSelectionValueListViewComponent]\n})\nexport class DbxSelectionValueListViewComponentImportsModule {}\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 readonly selectionChange = output<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\n// MARK: Compat\n/**\n * @deprecated use DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE instead and import DbxSelectionValueListViewComponentImportsModule\n */\nexport const DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE = DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE;\n","import { Observable } from 'rxjs';\nimport { ListLoadingState, MaybeObservableOrValue } from '@dereekb/rxjs';\nimport { forwardRef, OutputRef, Provider, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxListSelectionMode } from './list.view';\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 abstract readonly currentState$: Observable<Maybe<S>>;\n abstract readonly loadMore?: OutputRef<void>;\n /**\n * Sets/overrides the state for this view.\n */\n abstract setState(state: MaybeObservableOrValue<S>): void;\n /**\n * Sets/overrides the selection mode for this view.\n */\n abstract setSelectionMode(selectionMode: MaybeObservableOrValue<DbxListSelectionMode>): 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, output, ChangeDetectionStrategy } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { MatButtonModule } from '@angular/material/button';\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\">\n @switch (showIntro()) {\n @case (true) {\n <div 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 }\n @case (false) {\n <ng-content></ng-content>\n }\n }\n </div>\n `,\n standalone: true,\n imports: [MatButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxIntroActionSectionComponent {\n readonly hint = input<Maybe<string>>();\n readonly showIntro = input<Maybe<boolean>>(true);\n readonly action = input<Maybe<string>>();\n\n readonly showAction = output<void>();\n\n actionClicked() {\n this.showAction.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, 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]=\"headerConfigSignal().h ?? 2\" [header]=\"headerConfigSignal().header\" [onlyHeader]=\"headerConfigSignal().onlyHeader\" [icon]=\"headerConfigSignal().icon\" [hint]=\"headerConfigSignal().hint\" [hintInline]=\"headerConfigSignal().hintInline\">\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]': 'classConfig()'\n },\n standalone: true,\n imports: [DbxSectionHeaderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSectionPageComponent extends DbxSectionHeaderComponent {\n readonly scroll = input<DbxSectionPageScrollLockedMode>('all');\n\n readonly classConfig = computed(() => {\n return `dbx-section-page-scroll-${this.scroll()}`;\n });\n\n constructor() {\n super();\n this.hintInlineDefault.set(true);\n }\n}\n","import { NgModule } from '@angular/core';\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 importsAndExports = [DbxSectionHeaderComponent, DbxSectionPageComponent, DbxSectionComponent, DbxSubSectionComponent, DbxIntroActionSectionComponent];\n\n/**\n * Module for dbx-section components.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxSectionLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Maybe } from '@dereekb/util';\n\n// TODO: Incomplete component. Requires styling.\n\n@Component({\n selector: 'dbx-step',\n template: `\n <div class=\"step-section\">\n <div class=\"step-section-header\">\n <span class=\"step\">{{ step() }}.</span>\n @if (done()) {\n <mat-icon class=\"done-check\">done</mat-icon>\n }\n <span class=\"text\">{{ text() }}</span>\n @if (hint()) {\n <p class=\"hint\">{{ hint() }}</p>\n }\n </div>\n <div class=\"step-section-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-step',\n '[class.done]': 'done()'\n },\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxStepComponent {\n readonly done = input<boolean>();\n readonly step = input<number>();\n readonly text = input<Maybe<string>>();\n readonly hint = input<Maybe<string>>();\n}\n","import { NgModule } from '@angular/core';\nimport { DbxStepComponent } from './step.component';\n\nconst importsAndExports = [DbxStepComponent];\n\n/**\n * @deprecated import DbxStepComponent directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxStepLayoutModule {}\n","import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { splitCommaSeparatedStringToSet, type Maybe } from '@dereekb/util';\nimport { Observable, distinctUntilChanged, map, shareReplay, delay, combineLatest } from 'rxjs';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, OnDestroy, OnInit, inject, signal, input } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { DbxStyleConfig, DbxStyleClass, DbxStyleName } from './style';\nimport { toObservable } from '@angular/core/rxjs-interop';\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]': 'outputStyleClassSignal()'\n },\n standalone: true\n})\nexport class DbxSetStyleDirective extends AbstractSubscriptionDirective implements OnDestroy, OnInit {\n private readonly _styleService = inject(DbxStyleService);\n\n /**\n * The input DbxStyleName to style the host element with.\n */\n readonly dbxSetStyle = input<DbxStyleName>();\n\n /**\n * The input suffixes to allow to be applied to the\n */\n readonly suffixes = input<Maybe<string>>(undefined);\n\n /**\n * The output style class to apply to the host element.\n */\n readonly outputStyleClassSignal = signal<DbxStyleClass>('');\n\n readonly style$ = toObservable(this.dbxSetStyle).pipe(filterMaybe());\n readonly suffixes$ = toObservable(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 styleClass$: Observable<DbxStyleClass> = this._styleService.getStyleClassWithConfig(this.config$);\n\n ngOnInit(): void {\n this._styleService.setConfig(this.config$);\n this.sub = this.styleClass$.pipe(delay(0)).subscribe((style) => {\n this.outputStyleClassSignal.set(style);\n });\n }\n}\n","import { Directive, Renderer2, inject, signal, OnInit } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\nimport { DbxStyleClass } from './style';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Used to style the <body> element of the document document using the style provided by DbxStyleService.\n */\n@Directive({\n selector: '[dbxStyleBody]',\n host: {\n '[class]': 'styleClassNameSignal()'\n },\n standalone: true\n})\nexport class DbxStyleBodyDirective extends AbstractSubscriptionDirective implements OnInit {\n private readonly _styleService = inject(DbxStyleService);\n private readonly _renderer = inject(Renderer2);\n\n private readonly _styleClassNameSignal = signal<Maybe<DbxStyleClass>>(undefined);\n readonly styleClassNameSignal = this._styleClassNameSignal.asReadonly();\n\n ngOnInit(): void {\n this.sub = this._styleService.styleClassName$.pipe(delay(0)).subscribe((newClassStyleToApply) => {\n const currentStyle = this._styleClassNameSignal();\n\n if (currentStyle) {\n this._renderer.removeClass(document.body, currentStyle);\n }\n\n if (newClassStyleToApply) {\n this._renderer.addClass(document.body, newClassStyleToApply);\n }\n\n this._styleClassNameSignal.set(newClassStyleToApply);\n });\n }\n}\n","import { computed, 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]': 'cssClassSignal()'\n },\n standalone: true\n})\nexport class DbxColorDirective {\n readonly dbxColor = input<Maybe<DbxThemeColor | ''>>();\n readonly cssClassSignal = computed(() => dbxColorBackground(this.dbxColor()));\n}\n","import { DbxSetStyleDirective } from './style.set.directive';\nimport { DbxStyleDirective } from './style.directive';\nimport { NgModule } from '@angular/core';\nimport { DbxSpacerDirective } from './spacer.directive';\nimport { DbxStyleBodyDirective } from './style.body.directive';\nimport { DbxColorDirective } from './style.color.directive';\n\nconst importsAndExports = [DbxColorDirective, DbxSpacerDirective, DbxStyleDirective, DbxSetStyleDirective, DbxStyleBodyDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxStyleLayoutModule {}\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DBX_STYLE_DEFAULT_CONFIG_TOKEN, DbxStyleService } from './style.service';\nimport { DbxStyleConfig } from './style';\n\n/**\n * Configuration for provideDbxStyleService().\n */\nexport interface ProvideDbxStyleServiceConfig {\n /**\n * Default style configuration, if applicable.\n *\n * If null, the DbxStyleService will not have a default style\n */\n readonly dbxStyleConfig: DbxStyleConfig | null;\n}\n\n/**\n * Provides EnvironmentalProviders for a DbxStyleService and the default config.\n *\n * @returns\n */\nexport function provideDbxStyleService(config: ProvideDbxStyleServiceConfig): EnvironmentProviders {\n const { dbxStyleConfig } = config;\n\n const providers: Provider[] = [\n // config\n {\n provide: DBX_STYLE_DEFAULT_CONFIG_TOKEN,\n useValue: dbxStyleConfig\n },\n // service\n DbxStyleService\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { ChangeDetectionStrategy, 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 @if (address()) {\n @if (address()?.name) {\n <div class=\"addr-name\">{{ address()?.name }}</div>\n }\n @if (address()?.phone) {\n <div class=\"addr-phone\">{{ address()?.phone }}</div>\n }\n @if (address()?.line1) {\n <div class=\"addr-line1\">{{ address()?.line1 }}</div>\n }\n @if (address()?.line2) {\n <div class=\"addr-line2\">{{ address()?.line2 }}</div>\n }\n <div class=\"city-state-zip\">\n <span class=\"addr-city\">{{ address()?.city }}</span>\n @if (address()?.state || address()?.zip) {\n <span>, </span>\n }\n <span class=\"addr-state\">{{ address()?.state }} </span>\n <span class=\"addr-zip\">{{ address()?.zip }}</span>\n </div>\n }\n `,\n host: {\n class: 'dbx-us-address'\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxUnitedStatesAddressComponent {\n\n readonly address = input<Maybe<Partial<UnitedStatesAddressWithContact>>>()\n\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { type Maybe } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-detail-block-header',\n template: `\n @if (icon()) {\n <mat-icon>{{ icon() }}</mat-icon>\n }\n @if (header()) {\n <span class=\"dbx-detail-block-header-label\">{{ header() }}</span>\n }\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 imports: [MatIconModule],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDetailBlockHeaderComponent {\n readonly icon = input<Maybe<string>>();\n readonly header = input<Maybe<string>>();\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxDetailBlockHeaderComponent } from './detail.block.header.component';\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 imports: [DbxDetailBlockHeaderComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDetailBlockComponent {\n readonly icon = input<Maybe<string>>();\n readonly header = input<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 standalone: true\n})\nexport class DbxIconSpacerDirective {}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\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]=\"linkifiedBodySignal()\"></span>\n `,\n host: {\n class: 'dbx-i dbx-linkify'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxLinkifyComponent {\n private readonly sanitizer = inject(DomSanitizer);\n\n readonly text = input<Maybe<string>>();\n\n readonly linkifiedTextSignal = computed(() => {\n const text = this.text();\n return text ? linkifyStr(text, { defaultProtocol: 'https', target: { url: '_blank' } }) : undefined;\n });\n\n readonly linkifiedBodySignal = computed(() => {\n const linkifiedText = this.linkifiedTextSignal();\n return linkifiedText ? this.sanitizer.bypassSecurityTrustHtml(linkifiedText) : undefined;\n });\n}\n","import { Directive, input, computed } 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]': 'styleSignal()'\n },\n standalone: true\n})\nexport class DbxChipDirective {\n readonly small = input<Maybe<boolean>>();\n readonly block = input<Maybe<boolean>>();\n\n readonly styleSignal = computed(() => {\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 { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatTooltipModule } from '@angular/material/tooltip';\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 @if (chips()) {\n <mat-chip-listbox class=\"dbx-text-chips-listbox\">\n @for (chip of chips(); track chip.text) {\n <mat-chip-option [selected]=\"chip.selected ?? defaultSelection()\" [color]=\"chip.color\" [matTooltip]=\"chip.tooltip!\" matTooltipPosition=\"above\">\n {{ chip.text }}\n </mat-chip-option>\n }\n </mat-chip-listbox>\n }\n `,\n imports: [MatChipsModule, MatTooltipModule],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxTextChipsComponent<T = unknown> {\n readonly defaultSelection = input<Maybe<boolean>>();\n readonly chips = input<Maybe<TextChip<T>[]>>();\n}\n","import { NgModule } from '@angular/core';\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 importsAndExports = [DbxUnitedStatesAddressComponent, DbxChipDirective, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxLabelBlockComponent, DbxLinkifyComponent, DbxTextChipsComponent, DbxIconSpacerDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxTextModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxSectionLayoutModule } from './section/section.layout.module';\nimport { DbxListLayoutModule } from './list/list.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 { 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, DbxListLayoutModule, DbxSectionLayoutModule, DbxStyleLayoutModule, DbxTextModule]\n})\nexport class DbxLayoutModule {}\n","import { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { DbxScreenMediaService, DbxScreenMediaServiceConfig, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG } from './screen.service';\n\n/**\n * Configuration for provideDbxScreenMediaService().\n */\nexport interface ProvideDbxScreenMediaServiceConfig {\n readonly config?: DbxScreenMediaServiceConfig;\n}\n\n/**\n * Creates EnvironmentProviders for providing DbxScreenMediaService and its configuration.\n *\n * @param config Configuration\n * @returns EnvironmentProviders\n */\nexport function provideDbxScreenMediaService(config: ProvideDbxScreenMediaServiceConfig = {}): EnvironmentProviders {\n const screenConfig = config.config ?? DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG;\n\n const providers: Provider[] = [\n // config\n {\n provide: DbxScreenMediaServiceConfig,\n useValue: screenConfig\n },\n // service\n DbxScreenMediaService\n ];\n\n return makeEnvironmentProviders(providers);\n}\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":["importsAndExports","i1","i4","i2","i2.DbxButtonComponent","i3","i1.DbxButtonComponent","i2.DbxButtonSpacerDirective","DbxActionUIRouterTransitionSafetyDirective","DbxModelStateActions.dbxModelResetState","fromObjectModuleConfig.stateFeatureKey","fromObjectModuleConfig.reducer","onDbxModel.DbxModelStateModelActions.emitObjectViewEvent","fromDbxModel.featureKey","fromDbxModel.reducers","i1.DbxListComponent","i2.DbxValueListGridViewComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dereekb-dbx-web.mjs","sources":["../../../../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/interaction/popover/popover.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.component.ts","../../../../packages/dbx-web/src/lib/keypress/keydown.listener.directive.ts","../../../../packages/dbx-web/src/lib/keypress/keypress.module.ts","../../../../packages/dbx-web/src/lib/layout/style/style.ts","../../../../packages/dbx-web/src/lib/layout/style/style.service.ts","../../../../packages/dbx-web/src/lib/layout/style/style.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.directive.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.directive.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/interaction/dialog/dialog.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.ref.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.close.component.ts","../../../../packages/dbx-web/src/lib/screen/resize.ts","../../../../packages/dbx-web/src/lib/screen/resize.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.controls.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.header.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.scroll.content.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.module.ts","../../../../packages/dbx-web/src/lib/button/button.spacer.directive.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/filter/filter.popover.button.directive.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/button.progress.config.ts","../../../../packages/dbx-web/src/lib/button/progress/abstract.progress.button.directive.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/spinner.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.html","../../../../packages/dbx-web/src/lib/button/progress/button.progress.module.ts","../../../../packages/dbx-web/src/lib/button/progress/button.progress.providers.ts","../../../../packages/dbx-web/src/lib/button/button.component.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.module.ts","../../../../packages/dbx-web/src/lib/button/button.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/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/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/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.menu.component.html","../../../../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/interaction/iframe/iframe.component.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.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.service.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.box.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.button.confirm.directive.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/subsection.component.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.dialog.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.container.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.page.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.module.ts","../../../../packages/dbx-web/src/lib/interaction/interaction.module.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.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/loading/loading.action.directive.ts","../../../../packages/dbx-web/src/lib/loading/loading.module.ts","../../../../packages/dbx-web/src/lib/layout/style/spacer.directive.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/action/snackbar/action.snackbar.module.ts","../../../../packages/dbx-web/src/lib/error/error.action.directive.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/action/action.confirm.directive.ts","../../../../packages/dbx-web/src/lib/action/key.trigger.directive.ts","../../../../packages/dbx-web/src/lib/action/action.module.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/error/error.snackbar.component.ts","../../../../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/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.state.service.ts","../../../../packages/dbx-web/src/lib/extension/model/model.providers.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/layout/list/list.view.value.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.item.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/group/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.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/grid/list.grid.view.component.ts","../../../../packages/dbx-web/src/lib/layout/list/grid/list.grid.view.directive.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/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/layout/bar/bar.directive.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.header.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.layout.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.directive.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.component.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/two/two.column.back.directive.ts","../../../../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.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.directive.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/anchor/anchor.segue.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.module.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/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/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.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/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.providers.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.providers.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.ts","../../../../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/column.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/content/content.border.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.box.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.elevate.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/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/list/meta/list.view.meta.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/list/group/list.view.value.group.title.header.component.ts","../../../../packages/dbx-web/src/lib/layout/list/group/list.view.value.group.title.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/list.view.value.modifier.ripple.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/list.view.value.modifier.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/modifier/list.modifier.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.content.empty.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.selection.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.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.wrapper.ts","../../../../packages/dbx-web/src/lib/layout/section/section.intro.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.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/style/style.set.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.body.directive.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/layout/style/style.providers.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/number.limit.component.ts","../../../../packages/dbx-web/src/lib/layout/text/text.module.ts","../../../../packages/dbx-web/src/lib/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.providers.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 { 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, effect, inject, input } 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 standalone: true\n})\nexport class DbxCompactDirective {\n readonly mode = input.required<CompactMode | boolean>({ alias: 'dbxCompact' });\n\n readonly compactContextStore = inject(CompactContextStore);\n readonly mode$ = this.compactContextStore.mode$;\n\n protected readonly modeEffect = effect(() => {\n this.compactContextStore.setMode(this.mode());\n });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxCompactDirective } from './compact.directive';\n\nconst importsAndExports = [DbxCompactDirective];\n\n/**\n * @deprecated import DbxCompactDirective directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 { 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, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\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 @if (showSignal()) {\n <ng-content></ng-content>\n }\n `,\n standalone: true\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 distinctUntilChanged(),\n shareReplay(1) // TODO: Unsure why this delay is here after all\n );\n\n readonly show$ = this.isPopoverForKey$.pipe(delay(0));\n readonly showSignal = toSignal(this.show$);\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 { HostListener, Directive, input, output, computed } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n@Directive({\n selector: '[dbxWindowKeyDownListener]',\n standalone: true\n})\nexport class DbxWindowKeyDownListenerDirective {\n readonly dbxWindowKeyDownListener = output<KeyboardEvent>();\n\n readonly appWindowKeyDownEnabled = input<boolean>();\n readonly appWindowKeyDownFilter = input<Maybe<string[]>>();\n\n readonly keysFilter = computed(() => {\n const filterOnKeys = this.appWindowKeyDownFilter();\n let filter: Maybe<Set<string>>;\n\n if (filterOnKeys) {\n filter = new Set(filterOnKeys);\n }\n\n return filter;\n });\n\n @HostListener('window:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n const keysFilter = this.keysFilter();\n\n if (this.appWindowKeyDownEnabled() !== false) {\n if (!keysFilter || keysFilter.has(event.key)) {\n this.dbxWindowKeyDownListener.emit(event);\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxWindowKeyDownListenerDirective } from './keydown.listener.directive';\n\n/**\n * @deprecated DbxWindowKeyDownListenerDirective is now standalone. Import that instead.\n */\n@NgModule({\n imports: [DbxWindowKeyDownListenerDirective],\n exports: [DbxWindowKeyDownListenerDirective]\n})\nexport class DbxKeypressModule {}\n","import { CharacterPrefixSuffixCleanString, CssClass, DASH_CHARACTER_PREFIX_INSTANCE, DashPrefixString, type Maybe } from '@dereekb/util';\n\n// MARK: App Styling\n/**\n * An kebab-case style name that uniquely identifies a styling for an app.\n *\n * Examples: 'doc-app'\n */\nexport type DbxStyleName = string;\n\n/**\n * A suffix that can be added to a style class to differentiate a separate mode.\n *\n * Dark mode is an example, with the suffix 'dark' or '-dark'. The suffix does not have to\n */\nexport type DbxStyleClassSuffix = DbxStyleClassCleanSuffix | DbxStyleClassDashSuffix;\n\n/**\n * A DbxStyleClassSuffix that does not start with a dash.\n *\n * Dark mode is an example, with the suffix 'dark'.\n */\nexport type DbxStyleClassCleanSuffix = CharacterPrefixSuffixCleanString;\n\n/**\n * A DbxStyleClassSuffix that starts with a dash.\n *\n * Dark mode is an example, with the suffix '-dark'.\n */\nexport type DbxStyleClassDashSuffix = DashPrefixString;\n\nexport const dbxStyleClassCleanSuffix = DASH_CHARACTER_PREFIX_INSTANCE.cleanString;\n\n/**\n * A style class that is a combination of a style name and a suffix.\n *\n * Examples:\n * - 'doc-app': the default style of an app\n * - 'doc-app-dark': the dark mode style of an app\n */\nexport type DbxStyleClass = string | `${DbxStyleName}${DbxStyleClassSuffix}`;\n\nexport const DBX_DARK_STYLE_CLASS_SUFFIX: DbxStyleClassSuffix = '-dark';\n\nexport interface DbxStyleConfig {\n /**\n * Root style class name.\n */\n readonly style: DbxStyleClass;\n /**\n * Set of all allowed DbxStyleClassSuffixes for the DbxStyleClass in the config, if applicable.\n */\n readonly suffixes?: Set<DbxStyleClassSuffix>;\n}\n\n// MARK: Theme\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 { DASH_CHARACTER_PREFIX_INSTANCE, Destroyable, type Maybe } from '@dereekb/util';\nimport { asObservable, filterMaybe, ObservableOrValue } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, map, switchMap, shareReplay } from 'rxjs';\nimport { Injectable, InjectionToken, inject } from '@angular/core';\nimport { DBX_DARK_STYLE_CLASS_SUFFIX, DbxStyleClass, dbxStyleClassCleanSuffix, DbxStyleClassCleanSuffix, DbxStyleClassSuffix, DbxStyleConfig } from './style';\n\nexport const DBX_STYLE_DEFAULT_CONFIG_TOKEN = new InjectionToken('DbxStyleServiceDefaultConfig');\n\n/**\n * Used for managing styles within an app.\n */\n@Injectable()\nexport class DbxStyleService implements Destroyable {\n private readonly _defaultConfig = new BehaviorSubject<Maybe<DbxStyleConfig>>(inject<DbxStyleConfig>(DBX_STYLE_DEFAULT_CONFIG_TOKEN));\n\n private readonly _config = new BehaviorSubject<Maybe<Observable<DbxStyleConfig>>>(undefined);\n private readonly _styleClassSuffix = new BehaviorSubject<Maybe<DbxStyleClassCleanSuffix>>(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 styleClassSuffix$ = this._styleClassSuffix.pipe(distinctUntilChanged(), shareReplay(1));\n readonly styleClassName$ = this.getStyleClassWithConfig(this.config$);\n\n /**\n * Returns the style class given the input configuration.\n *\n * @param configObs Observable containing the configuration to use.\n * @returns DbxStyleClass\n */\n getStyleClassWithConfig(configObs: Observable<DbxStyleConfig>): Observable<DbxStyleClass> {\n return combineLatest([configObs, this.styleClassSuffix$]).pipe(\n map(([config, suffix]) => {\n let styleClass = config.style;\n\n if (suffix != null && config.suffixes) {\n if (config.suffixes.has(suffix)) {\n styleClass = `${styleClass}${DASH_CHARACTER_PREFIX_INSTANCE.prefixSuffixString(suffix)}`;\n }\n }\n\n return styleClass;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n /**\n * Toggles the dark suffix on/off for the service.\n *\n * @param toggle Whether to toggle the suffix on or off\n */\n toggleDarkSuffix(toggle?: Maybe<boolean>) {\n this.toggleSuffix(DBX_DARK_STYLE_CLASS_SUFFIX, toggle);\n }\n\n /**\n * Toggles the arbitrary suffix on/off for the service.\n *\n * @param suffix The suffix to toggle\n * @param toggle Whether to toggle the suffix on or off\n */\n toggleSuffix(suffix: DbxStyleClassSuffix, toggle?: Maybe<boolean>) {\n // clean the suffix\n suffix = dbxStyleClassCleanSuffix(suffix);\n\n const toggleValue: boolean = toggle != null ? toggle : this.currentStyleClassSuffix !== suffix;\n let suffixValue: Maybe<DbxStyleClassSuffix> = undefined;\n\n if (toggleValue) {\n suffixValue = suffix;\n } else {\n suffixValue = undefined;\n }\n\n this._styleClassSuffix.next(suffixValue);\n }\n\n get currentStyleClassSuffix(): Maybe<DbxStyleClassCleanSuffix> {\n return this._styleClassSuffix.value;\n }\n\n setStyleClassSuffix(suffix: Maybe<DbxStyleClassSuffix>) {\n this._styleClassSuffix.next(suffix ? dbxStyleClassCleanSuffix(suffix) : undefined);\n }\n\n setDefaultConfig(defaultConfig: DbxStyleConfig) {\n this._defaultConfig.next(defaultConfig);\n }\n\n setConfig(config: ObservableOrValue<DbxStyleConfig>) {\n this._config.next(asObservable(config));\n }\n\n destroy(): void {\n this._defaultConfig.complete();\n this._config.complete();\n this._styleClassSuffix.complete();\n }\n}\n","import { Directive, inject, signal, OnInit } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { DbxStyleClass } from './style';\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]': 'styleClassNameSignal()'\n },\n standalone: true\n})\nexport class DbxStyleDirective extends AbstractSubscriptionDirective implements OnInit {\n private readonly _styleService = inject(DbxStyleService);\n\n readonly styleClassNameSignal = signal<Maybe<DbxStyleClass>>(undefined);\n\n ngOnInit(): void {\n this.sub = this._styleService.styleClassName$.pipe(delay(0)).subscribe((classes) => {\n this.styleClassNameSignal.set(classes);\n });\n }\n}\n","import { Component, Type, OnInit, OnDestroy, ElementRef, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgPopoverCloseType, NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponent, 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';\nimport { DbxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbxWindowKeyDownListenerDirective } from '../../keypress';\nimport { DbxStyleDirective } from '../../layout/style/style.directive';\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 readonly key: DbxPopoverKey;\n /**\n * Origin element to position on.\n */\n readonly origin: ElementRef;\n /**\n * Whether or not to close if a transition occurs.\n */\n readonly closeOnTransition?: boolean;\n /**\n * Whether or not to dismiss when the escape button is pressed.\n *\n * False by default.\n */\n readonly closeOnEscape?: boolean;\n /**\n * Component to inject into the popover.\n */\n readonly componentClass: Type<T>;\n /**\n * Panel classes to add to the popover.\n */\n readonly panelClass?: Maybe<SpaceSeparatedCssClasses>;\n /**\n * Data available to the popover.\n */\n readonly data?: Maybe<I>;\n /**\n * Optional function to initialize the popover component.\n *\n * @param component\n * @param controller\n */\n readonly 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 imports: [DbxPopoverCoordinatorComponent, DbxWindowKeyDownListenerDirective, DbxStyleDirective, DbxInjectionComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\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 { 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 { 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 { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { MatIconButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\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()\">\n <mat-icon>close</mat-icon>\n </button>\n `,\n host: {\n class: 'dbx-dialog-content-close',\n '[class.dbx-dialog-content-close-padding]': 'padded()'\n },\n standalone: true,\n imports: [MatIconModule, MatIconButton],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDialogContentCloseComponent {\n readonly padded = input<boolean>(true);\n readonly close = output<void>();\n\n closeClicked() {\n this.close.emit(undefined);\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { ThemePalette } from '@angular/material/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxDialogContentFooterConfig {\n readonly buttonColor?: ThemePalette;\n readonly 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]=\"buttonColorSignal()\" (click)=\"closeClicked()\">{{ closeTextSignal() }}</button>\n `,\n host: {\n class: 'dbx-dialog-content-footer'\n },\n standalone: true,\n imports: [MatButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDialogContentFooterComponent {\n readonly config = input<Maybe<DbxDialogContentFooterConfig>>();\n\n readonly closeText = input<Maybe<string>>();\n readonly buttonColor = input<Maybe<ThemePalette>>();\n\n readonly closeTextSignal = computed(() => this.closeText() ?? this.config()?.closeText ?? 'Close');\n readonly buttonColorSignal = computed(() => this.buttonColor() ?? this.config()?.buttonColor ?? undefined);\n\n readonly close = output<void>();\n\n closeClicked() {\n this.close.emit();\n }\n}\n","import { computed, 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]': `classConfig()`\n },\n standalone: true\n})\nexport class DbxDialogContentDirective {\n readonly width = input<DbxDialogContentContainerWidth>('normal');\n readonly classConfig = computed(() => `${this.width()}-dialog-content`);\n}\n","import { first, Observable } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, ElementRef, inject, input } from '@angular/core';\nimport { AbstractDbxActionValueGetterDirective } from '@dereekb/dbx-core';\nimport { IsEqualFunction, 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 standalone: true\n})\nexport class DbxActionDialogDirective<T = unknown> extends AbstractDbxActionValueGetterDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n readonly dbxActionDialog = input.required<DbxActionDialogFunction<T>>();\n readonly dbxActionDialogIsModified = input<Maybe<IsModifiedFunction>>();\n readonly dbxActionDialogIsEqual = input<Maybe<IsEqualFunction>>();\n\n constructor() {\n super();\n this.configureInputs({\n isModifiedSignal: this.dbxActionDialogIsModified,\n isEqualSignal: this.dbxActionDialogIsEqual\n });\n this.setValueGetterFunction(() => 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 return this.dbxActionDialog()();\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 { NgModule } from '@angular/core';\nimport { DbxDialogContentDirective } from './dialog.content.directive';\nimport { DbxActionDialogDirective } from './dialog.action.directive';\nimport { DbxDialogContentFooterComponent } from './dialog.content.footer.component';\nimport { DbxDialogContentCloseComponent } from './dialog.content.close.component';\n\nconst importsAndExports = [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxDialogModule {}\n\n// MARK: Compat\n/**\n * @deprecated use DbxDialogModule instead.\n */\n@NgModule({\n imports: [DbxDialogModule],\n exports: [DbxDialogModule]\n})\nexport class DbxDialogInteractionModule {}\n","import { DbxPopoverComponent, type DbxPopoverComponentConfig, type 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 readonly _overlay = inject(Overlay);\n private readonly _injector = inject(Injector);\n private readonly _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 { OnDestroy, Directive, ElementRef, output } 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 readonly popoverOpened = output<NgPopoverRef<T, R>>();\n readonly popoverClosed = output<NgPopoverCloseEvent<R>>();\n\n protected override _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n this.popoverOpened.emit(popoverRef);\n }\n\n protected override _afterClosed(event: NgPopoverCloseEvent<R>): void {\n this.popoverClosed.emit(event);\n }\n}\n","import { first, Observable, map } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, ElementRef, inject, input } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractDbxActionValueGetterDirective } from '@dereekb/dbx-core';\nimport { IsEqualFunction, IsModifiedFunction } from '@dereekb/rxjs';\nimport { type Maybe } from '@dereekb/util';\n\nexport interface DbxActionPopoverFunctionParams {\n readonly 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 standalone: true\n})\nexport class DbxActionPopoverDirective<T = unknown> extends AbstractDbxActionValueGetterDirective<T> implements OnInit, OnDestroy {\n readonly elementRef = inject(ElementRef);\n\n readonly dbxActionPopover = input.required<DbxActionPopoverFunction<T>>();\n readonly dbxActionPopoverIsModified = input<Maybe<IsModifiedFunction>>();\n readonly dbxActionPopoverIsEqual = input<Maybe<IsEqualFunction>>();\n\n constructor() {\n super();\n this.configureInputs({\n isModifiedSignal: this.dbxActionPopoverIsModified,\n isEqualSignal: this.dbxActionPopoverIsEqual\n });\n this.setValueGetterFunction(() => 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 const fn = this.dbxActionPopover();\n\n return fn({\n origin\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { DbxPopoverComponent } from './popover.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatIconButton } from '@angular/material/button';\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 imports: [MatIconModule, MatIconButton],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPopoverCloseButtonComponent {\n readonly dbxPopoverComponent = inject(DbxPopoverComponent);\n}\n","import { DestroyRef, ElementRef, inject, Signal, signal } from '@angular/core';\n\n/**\n * Resize event used by resizeSignal.\n *\n * Maintains the same pattern as https://github.com/NemesLaszlo/angular-resize-event\n */\nexport interface ResizedEvent {\n readonly newRect: DOMRectReadOnly;\n readonly oldRect?: DOMRectReadOnly;\n readonly isFirst: boolean;\n}\n\n/**\n * Creates a new Signal that emits resize events.\n *\n * Must be created in an injectable context.\n *\n * @param inputElement The element to observe for resize events. If not provided, the host element will be injected.\n */\nexport function resizeSignal(inputElement?: ElementRef<HTMLElement>): Signal<ResizedEvent> {\n const element = inputElement ?? inject(ElementRef<HTMLElement>);\n\n const destroyRef = inject(DestroyRef);\n const resizeSignal = signal<ResizedEvent>({\n newRect: element.nativeElement.getBoundingClientRect(),\n isFirst: true\n });\n\n let oldRect: DOMRectReadOnly;\n\n const observeEvent = (entries: ResizeObserverEntry[]) => {\n const domSize = entries[0];\n const resizedEvent: ResizedEvent = {\n newRect: domSize.contentRect,\n oldRect,\n isFirst: !oldRect\n };\n\n oldRect = domSize.contentRect;\n resizeSignal.set(resizedEvent);\n };\n\n const observer = new ResizeObserver(observeEvent);\n observer.observe(element.nativeElement);\n\n destroyRef.onDestroy(() => {\n observer.disconnect();\n });\n\n return resizeSignal;\n}\n","import { Directive, inject, ElementRef, output, effect } from '@angular/core';\nimport { ResizedEvent, resizeSignal } from './resize';\n\n/**\n * Directive that emits resize events when the parent element is resized.\n */\n@Directive({\n selector: '[dbxResized]',\n standalone: true\n})\nexport class DbxResizedDirective {\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly resizedSignal = resizeSignal(this.elementRef);\n readonly dbxResized = output<ResizedEvent>();\n\n protected _resizeEffect = effect(() => {\n this.dbxResized.emit(this.resizedSignal());\n });\n}\n","import { BehaviorSubject, throttleTime } from 'rxjs';\nimport { OnDestroy, Component, ChangeDetectionStrategy } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ResizedEvent } from '../../screen/resize';\nimport { DbxResizedDirective } from '../../screen/resize.directive';\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\" (dbxResized)=\"onResized($event)\" [style.--popoverh]=\"heightSignal()\">\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 imports: [DbxResizedDirective],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPopoverContentComponent implements OnDestroy {\n readonly hasControls = new BehaviorSubject<boolean>(false);\n readonly hasHeader = new BehaviorSubject<boolean>(false);\n\n private readonly _height = new BehaviorSubject<string>('');\n readonly height$ = this._height.asObservable().pipe(throttleTime(100, undefined, { leading: true, trailing: true }));\n\n readonly heightSignal = toSignal(this.height$);\n\n onResized(event: ResizedEvent): void {\n this._height.next(`${event.newRect.height}px`);\n }\n\n ngOnDestroy(): void {\n this.hasControls.complete();\n this.hasHeader.complete();\n this._height.complete();\n }\n}\n","import { Directive, inject, OnInit } 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 standalone: true\n})\nexport class DbxPopoverControlsDirective implements OnInit {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasControls.next(true);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit, inject, input } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDivider } from '@angular/material/divider';\nimport { Maybe } from '@dereekb/util';\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 @if (icon()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ icon() }}</mat-icon>\n }\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 imports: [MatIconModule, MatDivider],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPopoverHeaderComponent implements OnInit {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent, { optional: true });\n\n readonly header = input<Maybe<string>>();\n readonly icon = input<Maybe<string>>();\n\n ngOnInit() {\n if (this.appPopoverContentComponent) {\n this.appPopoverContentComponent.hasHeader.next(true);\n }\n }\n}\n","import { computed, Directive, inject } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Popover scrollable content wrapper component.\n */\n@Directive({\n selector: 'dbx-popover-scroll-content,[dbxPopoverScrollContent],.dbx-popover-scroll-content',\n host: {\n class: 'd-block dbx-popover-scroll-content',\n '[class]': 'sizingClassesSignal()'\n },\n standalone: true\n})\nexport class DbxPopoverScrollContentDirective {\n readonly appPopoverContentComponent = inject(DbxPopoverContentComponent);\n\n readonly hasControlsSignal = toSignal(this.appPopoverContentComponent.hasControls);\n readonly hasHeaderSignal = toSignal(this.appPopoverContentComponent.hasHeader);\n\n readonly sizingClassesSignal = computed(() => {\n const hasHeader = this.hasHeaderSignal();\n const hasControls = this.hasControlsSignal();\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","import { NgModule } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { DbxPopoverControlsDirective } from './popover.controls.directive';\nimport { DbxPopoverHeaderComponent } from './popover.header.component';\nimport { DbxPopoverScrollContentDirective } from './popover.scroll.content.directive';\nimport { DbxPopoverCloseButtonComponent } from './popover.close.component';\n\nconst importsAndExports = [DbxPopoverContentComponent, DbxPopoverControlsDirective, DbxPopoverHeaderComponent, DbxPopoverCloseButtonComponent, DbxPopoverScrollContentDirective];\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: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPopoverInteractionContentModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbxPopoverComponent } from './popover.component';\nimport { DbxPopoverInteractionContentModule } from './popover.content.module';\nimport { DbxActionPopoverDirective } from './popover.action.directive';\n\nconst importsAndExports = [DbxPopoverComponent, DbxPopoverCoordinatorComponent, DbxActionPopoverDirective, DbxPopoverInteractionContentModule];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPopoverInteractionModule {}\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 standalone: true\n})\nexport class DbxButtonSpacerDirective {}\n","import { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, ElementRef, Type, OnInit, OnDestroy, signal, ChangeDetectionStrategy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Observable, map, skip, first, defaultIfEmpty } from 'rxjs';\nimport { AbstractPopoverDirective } from '../popover/abstract.popover.directive';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { FilterSource, filterMaybe, SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxPopoverKey } from '../popover/popover';\nimport { type Maybe } from '@dereekb/util';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxFilterComponentConfig } from './filter.config';\nimport { DbxPopoverInteractionModule } from '../popover';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\n\nexport interface DbxFilterPopoverComponentConfig<F extends object = object> extends DbxFilterComponentConfig<F> {\n /**\n * Origin to add the popover to.\n */\n readonly origin: ElementRef;\n}\n\nexport const DEFAULT_FILTER_POPOVER_KEY = 'filter';\n\n@Component({\n templateUrl: './filter.popover.component.html',\n imports: [DbxPopoverInteractionModule, DbxInjectionComponent, MatButtonModule, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFilterPopoverComponent<F extends object> extends AbstractPopoverDirective<unknown, DbxFilterComponentConfig<F>> implements OnInit, OnDestroy {\n private readonly _closeOnChangeSub = new SubscriptionObject();\n\n readonly config: DbxFilterComponentConfig<F> = this.popover.data as DbxFilterComponentConfig<F>;\n\n readonly icon = this.config.icon ?? 'filter_list';\n readonly header = this.config.header ?? 'Filter';\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 readonly showPresetSignal = signal<boolean>(false);\n\n readonly config$: Observable<DbxInjectionComponentConfig<FilterSource<F>>> = toObservable(this.showPresetSignal).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 readonly configSignal = toSignal(this.config$);\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 }: DbxFilterPopoverComponentConfig<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 DbxFilterComponentConfig<F>\n });\n }\n\n ngOnInit(): void {\n let showPreset: boolean = false;\n\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.showPresetSignal.set(showPreset);\n }\n\n ngOnDestroy(): void {\n this._closeOnChangeSub.destroy();\n }\n\n showPresets() {\n this.showPresetSignal.set(true);\n }\n\n showCustom() {\n this.showPresetSignal.set(false);\n }\n}\n","<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n @if (showSwitchButtons) {\n @switch (showPresetSignal()) {\n @case (true) {\n <button mat-flat-button color=\"accent\" (click)=\"showCustom()\">{{ customizeButtonText }}</button>\n }\n @case (false) {\n <button mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n }\n }\n }\n @if (showCloseButton) {\n @if (showSwitchButtons) {\n <dbx-button-spacer></dbx-button-spacer>\n }\n <button mat-stroked-button color=\"accent\" (click)=\"close()\">{{ closeButtonText }}</button>\n }\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"configSignal()\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n","import { Directive, ElementRef, input, inject } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { DbxFilterPopoverComponent } from './filter.popover.component';\nimport { AbstractPopoverRefDirective } from '../popover/abstract.popover.ref.directive';\nimport { FilterSource, PresetFilterSource } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { DbxFilterComponentConfig } from './filter.config';\n\nexport type DbxFilterButtonConfig<F extends object> = DbxFilterComponentConfig<F>;\nexport type DbxFilterButtonConfigWithCustomFilter<F extends object, CF extends FilterSource<F> = FilterSource<F>> = Omit<DbxFilterComponentConfig<F, any, CF, any>, 'presetFilter' | 'presetFilterComponentConfig'>;\nexport type DbxFilterButtonConfigWithPresetFilter<F extends object, PF extends PresetFilterSource<F, any> = PresetFilterSource<F, any>> = Omit<DbxFilterComponentConfig<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 readonly config = input<Maybe<DbxFilterComponentConfig<F, any, any, any>>>(undefined);\n\n protected override _makePopoverRef(origin?: ElementRef): NgPopoverRef<unknown, unknown> {\n const config = this.config();\n\n if (!config) {\n throw new Error('AbstractFilterPopoverButtonDirective(): Missing config.');\n } else if (!origin) {\n throw new Error('AbstractFilterPopoverButtonDirective(): Missing origin.');\n }\n\n return DbxFilterPopoverComponent.openPopover(this.popupService, {\n origin,\n ...config\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { MatButtonModule, MatIconButton } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\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 @switch (buttonDisplayTypeSignal()) {\n @case ('text_button') {\n <button mat-button class=\"mat-unthemed\" [disabled]=\"disabledSignal()\" (click)=\"clickButton()\">\n @if (iconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ iconSignal() }}</mat-icon>\n }\n <span>{{ textSignal() }}</span>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n }\n @case ('icon_button') {\n <button mat-icon-button [disabled]=\"disabledSignal()\" (click)=\"clickButton()\">\n <mat-icon>{{ iconSignal() }}</mat-icon>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </button>\n }\n }\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n providers: provideDbxButton(DbxIconButtonComponent),\n host: {\n class: 'dbx-icon-button'\n },\n imports: [MatButtonModule, MatIconModule, MatIconButton, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxIconButtonComponent extends AbstractDbxButtonDirective {}\n","import { ChangeDetectionStrategy, Component, ElementRef, input, viewChild } from '@angular/core';\nimport { AbstractFilterPopoverButtonDirective } from './filter.popover.button.directive';\nimport { DbxButtonDisplay } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxIconButtonComponent } from '../../button/icon/icon.button.component';\n\nconst DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT: DbxButtonDisplay = {\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 imports: [DbxIconButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFilterPopoverButtonComponent<F extends object = object> extends AbstractFilterPopoverButtonDirective<F> {\n readonly buttonElement = viewChild<string, Maybe<ElementRef>>('button', { read: ElementRef });\n readonly disabled = input<Maybe<boolean>>();\n readonly buttonDisplay = input<DbxButtonDisplay, Maybe<DbxButtonDisplay>>(DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT, { transform: (x) => x ?? DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT });\n\n showFilterPopover(): void {\n const origin = this.buttonElement()?.nativeElement;\n this.showPopover(origin);\n }\n}\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';\nimport { DbxButtonType } from '../button.component';\n\nexport interface DbxProgressButtonConfig {\n readonly working?: Maybe<boolean>;\n readonly text?: Maybe<string>;\n readonly spinnerText?: Maybe<string>;\n readonly buttonColor?: Maybe<ThemePalette | DbxThemeColor>;\n readonly spinnerColor?: Maybe<ThemePalette | DbxThemeColor>;\n readonly barColor?: Maybe<ThemePalette | DbxThemeColor>;\n /**\n * Whether or not to render as an icon button.\n */\n readonly iconOnly?: Maybe<boolean>;\n readonly spinnerSize?: Maybe<number>;\n readonly spinnerRatio?: Maybe<number>;\n readonly mode?: Maybe<ProgressSpinnerMode>;\n readonly value?: Maybe<number>;\n readonly fullWidth?: Maybe<boolean>;\n readonly disabled?: Maybe<boolean>;\n readonly customStyle?: Maybe<{ [key: string]: string }>;\n readonly customClass?: Maybe<string>;\n /**\n * Custom spinner color. Overrides the normal spinner color if provided.\n */\n readonly customSpinnerColor?: Maybe<string>;\n readonly buttonIcon?: Maybe<DbxProgressButtonIcon>;\n readonly id?: Maybe<string>;\n\n /**\n * The type of button to render.\n */\n readonly buttonType?: Maybe<DbxButtonType>;\n\n /**\n * The HTML attribute \"type\" to add to the button.\n */\n readonly buttonTypeAttribute?: Maybe<string>;\n\n /**\n * @deprecated use buttonType=raised instead\n */\n readonly raised?: Maybe<boolean>;\n /**\n * @deprecated use buttonType=stroked instead\n */\n readonly stroked?: Maybe<boolean>;\n /**\n * @deprecated use buttonType=flat instead\n */\n readonly flat?: Maybe<boolean>;\n\n /**\n * Whether or not this is a floating action button.\n */\n readonly fab?: Maybe<boolean>;\n\n /**\n * @deprecated use buttonTypeAttribute instead\n */\n readonly type?: Maybe<string>;\n}\n\nexport interface DbxProgressButtonIcon {\n readonly color?: Maybe<ThemePalette | DbxThemeColor>;\n readonly fontIcon?: Maybe<string>;\n readonly fontSet?: Maybe<string>;\n readonly inline?: Maybe<boolean>;\n readonly svgIcon?: Maybe<string>;\n readonly customClass?: Maybe<string>;\n}\n\nexport interface DbxProgressButtonTargetedConfig extends DbxProgressButtonConfig {\n readonly id?: Maybe<string>;\n}\n\nexport type DbxProgressButtonGlobalConfig = DbxProgressButtonTargetedConfig[];\n\nexport const DBX_PROGRESS_BUTTON_GLOBAL_CONFIG = new InjectionToken<DbxProgressButtonGlobalConfig>('DbxProgressButtonGlobalConfig');\n\n// MARK: Compat\n/**\n * @deprecated use DbxProgressButtonConfig instead.\n */\nexport type DbxProgressButtonOptions = DbxProgressButtonConfig;\n","import { OnDestroy, Directive, HostListener, inject, computed, input, Signal, output } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { Configurable, CssClass, type Maybe } from '@dereekb/util';\nimport { DbxProgressButtonGlobalConfig, DbxProgressButtonConfig, DbxProgressButtonTargetedConfig, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG } from './button.progress.config';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { DbxButtonType } from '../button.component';\n\n@Directive()\nexport abstract class AbstractProgressButtonDirective extends AbstractSubscriptionDirective implements OnDestroy {\n private readonly globalConfig = inject<DbxProgressButtonGlobalConfig>(DBX_PROGRESS_BUTTON_GLOBAL_CONFIG, { optional: true }) ?? [];\n\n readonly btnClick = output<MouseEvent>();\n\n readonly config = input.required<Maybe<DbxProgressButtonConfig>>();\n readonly buttonId = input<Maybe<string>>();\n readonly working = input<Maybe<boolean>>();\n readonly disabled = input<Maybe<boolean>>();\n\n readonly globalOptionsSignal: Signal<Maybe<DbxProgressButtonConfig>> = computed(() => {\n const buttonId = this.buttonId();\n return buttonId ? this.globalConfig.find((config: DbxProgressButtonTargetedConfig) => config.id === buttonId) : undefined;\n });\n\n readonly configSignal = computed<Maybe<DbxProgressButtonConfig>>(() => {\n const config = this.config();\n const globalConfig = this.globalOptionsSignal();\n\n let completeConfig: Maybe<Configurable<DbxProgressButtonConfig>>;\n\n if (config || globalConfig) {\n completeConfig = {\n ...globalConfig,\n ...config\n };\n\n // set the iconOnly property if the buttonType is icon\n if (completeConfig.buttonType === 'icon') {\n completeConfig.iconOnly = true;\n } else if (completeConfig.iconOnly) {\n completeConfig.buttonType = 'icon';\n }\n }\n\n return completeConfig;\n });\n\n readonly baseCssClassSignal = computed(() => {\n const config = this.configSignal();\n const classes: CssClass[] = [config?.customClass ?? ''];\n\n if (config?.fullWidth) {\n classes.push('fullWidth');\n }\n\n if (config?.disabled) {\n classes.push('disabled');\n }\n\n let buttonType: DbxButtonType = 'basic';\n\n if (config?.buttonType) {\n buttonType = config.buttonType;\n } else if (config?.raised) {\n buttonType = 'raised';\n } else if (config?.stroked) {\n buttonType = 'stroked';\n } else if (config?.flat) {\n buttonType = 'flat';\n } else if (config?.iconOnly) {\n buttonType = 'icon';\n }\n\n switch (buttonType) {\n case 'raised':\n classes.push('mat-mdc-raised-button mdc-button--raised');\n break;\n case 'stroked':\n classes.push('mat-mdc-outlined-button mdc-button--outlined');\n break;\n case 'flat':\n classes.push('mat-mdc-unelevated-button mdc-button--unelevated');\n break;\n default:\n classes.push('mat-unthemed');\n break;\n }\n\n return classes;\n });\n\n readonly baseCssClasses$ = toObservable(this.baseCssClassSignal);\n\n readonly workingSignal = computed(() => (this.working() || this.configSignal()?.working) ?? false);\n readonly disabledSignal = computed(() => (this.disabled() || this.configSignal()?.disabled) ?? false);\n\n readonly buttonTypeAttributeSignal = computed(() => {\n const options = this.configSignal();\n return options?.buttonTypeAttribute ?? options?.type;\n });\n\n readonly buttonDisabledSignal = computed(() => this.workingSignal() || this.disabledSignal());\n readonly showProgressSignal = computed(() => this.workingSignal() && !this.disabledSignal());\n\n @HostListener('click', ['$event'])\n public handleClick(event: MouseEvent): void {\n const working = this.workingSignal();\n const disabled = this.disabledSignal();\n\n if (!working && !disabled) {\n this.btnClick.emit(event);\n event.stopImmediatePropagation();\n }\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './abstract.progress.button.directive';\nimport { map, shareReplay } from 'rxjs';\nimport { spaceSeparatedCssClasses } from '@dereekb/util';\nimport { distinctUntilItemsHaveDifferentValues } from '@dereekb/rxjs';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressBar } from '@angular/material/progress-bar';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NgClass, NgStyle } from '@angular/common';\n\n@Component({\n selector: 'dbx-progress-bar-button,dbx-bar-button',\n templateUrl: './bar.button.component.html',\n styleUrls: ['./bar.button.component.scss', './shared.button.component.scss'],\n imports: [MatButtonModule, MatIconModule, MatProgressBar, NgClass, NgStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxProgressBarButtonComponent 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 readonly buttonCssSignal = toSignal(this.buttonCss$);\n}\n","<button class=\"dbx-base-button dbx-progress-bar-button\" mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (configSignal()?.buttonIcon) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet!\" [ngClass]=\"configSignal()?.buttonIcon?.customClass!\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n }\n <span>\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n @if (showProgressSignal()) {\n <mat-progress-bar class=\"bar\" [color]=\"configSignal()?.barColor!\" [mode]=\"configSignal()?.mode!\" [value]=\"configSignal()?.value!\"></mat-progress-bar>\n }\n</button>\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, viewChild } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './abstract.progress.button.directive';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport { Maybe, spaceSeparatedCssClasses } from '@dereekb/util';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatProgressSpinner } from '@angular/material/progress-spinner';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { NgClass, NgStyle } from '@angular/common';\n\n@Component({\n selector: 'dbx-progress-spinner-button,dbx-spinner-button',\n templateUrl: './spinner.button.component.html',\n styleUrls: ['./spinner.button.component.scss', './shared.button.component.scss'],\n imports: [MatButtonModule, MatIconModule, MatProgressSpinner, NgClass, NgStyle],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxProgressSpinnerButtonComponent extends AbstractProgressButtonDirective {\n readonly buttonRef = viewChild.required<string, ElementRef<HTMLElement>>('button', { read: ElementRef<HTMLElement> });\n\n readonly buttonCssArraySignal = computed(() => {\n const config = this.configSignal();\n const classes = [...this.baseCssClassSignal()];\n\n if (config?.iconOnly) {\n classes.push('mat-mdc-icon-button');\n }\n\n if (config?.fab) {\n classes.push('dbx-progress-spinner-fab');\n }\n\n return classes;\n });\n\n readonly buttonCss$ = toObservable(this.buttonCssArraySignal).pipe(map(spaceSeparatedCssClasses), distinctUntilChanged(), shareReplay(1));\n\n readonly spinnerSizeSignal = computed(() => {\n const config = this.configSignal();\n const buttonRef = this.buttonRef();\n\n const elem = buttonRef.nativeElement;\n const height = elem.clientHeight;\n\n let size: Maybe<number>;\n\n if (config != null) {\n if (config.iconOnly) {\n if (config.fab) {\n size = 48;\n } else {\n size = height;\n }\n } else {\n size = config.spinnerSize;\n }\n }\n\n if (!size) {\n const minimumSpinnerSize = 24;\n const spinnerRatio = config?.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 readonly buttonCssSignal = toSignal(this.buttonCss$);\n\n readonly showTextSignal = computed(() => {\n const config = this.configSignal();\n return !(config?.fab || config?.iconOnly);\n });\n\n readonly showTextButtonIconSignal = computed(() => {\n const config = this.configSignal();\n const showText = this.showTextSignal();\n return showText && config?.buttonIcon; // shows the button icon with showing the text.\n });\n\n readonly showIconSignal = computed(() => {\n const config = this.configSignal();\n return (\n config &&\n config.buttonIcon && // button icon must be defined\n !this.showTextSignal()\n ); // show icon if either fab or iconOnly is true\n });\n\n readonly customSpinnerStyleSignal = computed(() => {\n const customSpinnerColor = this.configSignal()?.customSpinnerColor;\n return customSpinnerColor ? { stroke: customSpinnerColor } : undefined;\n });\n\n readonly customSpinnerStyleClassSignal = computed(() => {\n const hasCustomStyle = Boolean(this.customSpinnerStyleSignal());\n return hasCustomStyle ? { 'dbx-progress-spinner-custom': true } : undefined;\n });\n}\n","<button class=\"dbx-base-button dbx-progress-spinner-button\" #button mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (showTextSignal()) {\n @if (showTextButtonIconSignal()) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet\" [class.working]=\"showProgressSignal()\" [ngClass]=\"configSignal()?.buttonIcon?.customClass\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\">\n {{ configSignal()?.buttonIcon?.fontSet ? '' : configSignal()?.buttonIcon?.fontIcon }}\n </mat-icon>\n }\n <span class=\"button-text\" [class.working]=\"showProgressSignal()\">\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n }\n @if (showIconSignal()) {\n <!-- Use ng-container to prevent mat-icon from being a child of the button which changes the behavior -->\n <ng-container>\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.fab && configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n </ng-container>\n }\n @if (showProgressSignal()) {\n <mat-spinner class=\"spinner\" [diameter]=\"spinnerSizeSignal()\" [color]=\"configSignal()?.spinnerColor!\" [mode]=\"configSignal()?.mode!\" [value]=\"configSignal()?.value!\" [ngStyle]=\"customSpinnerStyleSignal()\" [ngClass]=\"customSpinnerStyleClassSignal()\" [class.working]=\"showProgressSignal()\"></mat-spinner>\n }\n</button>\n","import { NgModule } from '@angular/core';\nimport { DbxProgressBarButtonComponent } from './bar.button.component';\nimport { DbxProgressSpinnerButtonComponent } from './spinner.button.component';\n\nconst importsAndExports = [DbxProgressSpinnerButtonComponent, DbxProgressBarButtonComponent];\n\n/**\n * @deprecated import DbxProgressSpinnerButtonComponent, DbxProgressBarButtonComponent directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxProgressButtonsModule {}\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DbxProgressButtonGlobalConfig, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG } from './button.progress.config';\n\n/**\n * Provides the global configuration for DbxProgressButtonComponent.\n *\n * @param config\n * @returns\n */\nexport function provideDbxProgressButtonGlobalConfig(config: DbxProgressButtonGlobalConfig): EnvironmentProviders {\n const providers: Provider[] = [\n {\n provide: DBX_PROGRESS_BUTTON_GLOBAL_CONFIG,\n useValue: config\n }\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { provideDbxButton, AbstractDbxButtonDirective } from '@dereekb/dbx-core';\nimport { Configurable, isDefinedAndNotFalse, type Maybe } from '@dereekb/util';\nimport { DbxProgressButtonConfig } from './progress/button.progress.config';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { DbxProgressSpinnerButtonComponent } from './progress';\n\nexport type DbxButtonType = 'basic' | 'raised' | 'stroked' | 'flat' | 'icon';\n\n/**\n * Style details for the button\n */\nexport interface DbxButtonStyle {\n readonly type?: DbxButtonType;\n readonly color?: ThemePalette | DbxThemeColor;\n readonly spinnerColor?: ThemePalette | DbxThemeColor;\n readonly customButtonColor?: string;\n readonly customTextColor?: string;\n readonly customSpinnerColor?: string;\n readonly fab?: boolean;\n}\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-progress-spinner-button (btnClick)=\"clickButton()\" [config]=\"configSignal()\">\n <ng-content></ng-content>\n </dbx-progress-spinner-button>\n `,\n providers: provideDbxButton(DbxButtonComponent),\n imports: [DbxProgressSpinnerButtonComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxButtonComponent extends AbstractDbxButtonDirective {\n readonly type = input<Maybe<DbxButtonType>>();\n readonly buttonStyle = input<Maybe<DbxButtonStyle>>();\n\n readonly color = input<ThemePalette | DbxThemeColor>(undefined);\n readonly spinnerColor = input<ThemePalette | DbxThemeColor>(undefined);\n readonly customButtonColor = input<Maybe<string>>();\n readonly customTextColor = input<Maybe<string>>();\n readonly customSpinnerColor = input<Maybe<string>>();\n\n readonly basic = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly raised = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly stroked = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly flat = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly iconOnly = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n readonly fab = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n\n readonly typeSignal = computed(() => {\n const style = this.buttonStyle();\n let type = this.type() ?? style?.type;\n\n if (!type) {\n type = 'basic';\n\n if (this.raised()) {\n type = 'raised';\n } else if (this.stroked()) {\n type = 'stroked';\n } else if (this.flat()) {\n type = 'flat';\n } else if (this.iconOnly()) {\n type = 'icon';\n }\n }\n\n return type;\n });\n\n readonly configSignal = computed<DbxProgressButtonConfig>(() => {\n // configure custom style\n const customStyle = {} as {\n [key: string]: string;\n };\n\n const style = this.buttonStyle();\n const customButtonColorValue = this.customButtonColor() ?? style?.customButtonColor;\n\n if (customButtonColorValue) {\n customStyle['background'] = customButtonColorValue;\n }\n\n const customTextColorValue = this.customTextColor() ?? style?.customTextColor;\n\n if (customTextColorValue) {\n customStyle['color'] = customTextColorValue;\n }\n\n const customSpinnerColorValue = this.customSpinnerColor() ?? style?.customSpinnerColor;\n const customSpinnerColor: Maybe<string> = customSpinnerColorValue ?? customTextColorValue;\n\n const buttonColor = this.color() ?? style?.color;\n const spinnerColor = this.spinnerColor() ?? style?.spinnerColor ?? buttonColor;\n\n const disabledSignalValue = this.disabledSignal();\n const disabled = !this.workingSignal() && disabledSignalValue; // Only disabled if we're not working, in order to show the animation.\n\n const iconValue = this.iconSignal();\n const buttonIcon = iconValue ? { fontIcon: iconValue } : undefined;\n\n const textValue = this.textSignal();\n const isIconOnlyButton = buttonIcon && !textValue;\n const fab = this.fab() || style?.fab;\n\n const config: Configurable<DbxProgressButtonConfig> = {\n fab,\n working: this.workingSignal(),\n buttonIcon,\n customStyle,\n customClass: 'dbx-button ' + (isIconOnlyButton ? 'dbx-button-no-text' : ''),\n text: textValue ?? '',\n buttonType: this.typeSignal(),\n buttonColor,\n barColor: 'accent',\n mode: 'indeterminate',\n spinnerColor,\n customSpinnerColor,\n disabled\n };\n\n return config;\n });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxIconButtonComponent } from './icon.button.component';\n\n/**\n * @deprecated import DbxIconButtonComponent directly instead.\n */\n@NgModule({\n imports: [DbxIconButtonComponent],\n exports: [DbxIconButtonComponent]\n})\nexport class DbxIconButtonModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxButtonComponent } from './button.component';\nimport { DbxButtonSpacerDirective } from './button.spacer.directive';\nimport { DbxCoreButtonModule } from '@dereekb/dbx-core';\nimport { DbxIconButtonComponent } from './icon';\nimport { DbxProgressSpinnerButtonComponent, DbxProgressBarButtonComponent } from './progress';\n\nconst importsAndExports = [\n DbxCoreButtonModule,\n DbxIconButtonComponent,\n // buttons\n DbxButtonComponent,\n DbxButtonSpacerDirective,\n // progress\n DbxProgressSpinnerButtonComponent,\n DbxProgressBarButtonComponent\n];\n\n/**\n * Provides all base @dereekb/dbx-core and @dereekb/dbx-web button components.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxButtonModule {}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { AbstractDbxActionHandlerDirective, FilterSourceDirective, provideActionStoreSource } from '@dereekb/dbx-core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxButtonModule } from '../../button/button.module';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\nimport { WorkInstance } from '@dereekb/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 standalone: true,\n imports: [DbxButtonModule, MatButtonModule, MatIconModule, FlexLayoutModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxFilterWrapperComponent<F = unknown> extends AbstractDbxActionHandlerDirective<F> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n readonly showButtons = input(true);\n readonly applyRaised = input(true);\n readonly applyIcon = input('filter_list');\n readonly applyText = input('Filter');\n\n constructor() {\n super();\n\n // configure handler function\n this._dbxActionHandlerInstance.setHandlerFunction((filter: F, instance: WorkInstance<F, unknown>) => {\n this.filterSourceDirective.setFilter(filter);\n instance.success(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 @if (showButtons()) {\n <div 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 }\n</div>\n","import { shareReplay, map, Observable, combineLatest, distinctUntilChanged, startWith } from 'rxjs';\nimport { Directive, inject, input, output } 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';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n@Directive()\nexport abstract class AbstractDbxPresetFilterMenuDirective<F extends FilterWithPreset> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n readonly presetSelected = output<ClickableFilterPresetOrPartialPreset<F>>();\n readonly presets = input<ClickableFilterPresetOrPartialPreset<F>[]>([]);\n\n readonly presets$ = toObservable(this.presets);\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 readonly presetAnchorsSignal = toSignal(this.presetAnchors$, { initialValue: [] });\n readonly selectedPresetSignal = toSignal(this.selectedPreset$);\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 // emit before setting filter, as the view might be destroyed as a result of the filter being set\n this.presetSelected.emit(preset);\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}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\n/**\n * Provider that describes to the app how to handle anchors.\n *\n * Use provideDbxRouterWebUiRouterProviderConfig() if using UIRouter in your application.\n * or\n * Use provideDbxRouterWebAngularRouterProviderConfig() if using Angular Router in your application.\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 { skipAllInitialMaybe } from '@dereekb/rxjs';\nimport { Component, TemplateRef, HostListener, inject, viewChild, input, ChangeDetectionStrategy, computed } from '@angular/core';\nimport { AbstractDbxAnchorDirective, DbxInjectionComponentConfig, DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { NgTemplateOutlet, NgClass } from '@angular/common';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { shareReplay } 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 template: `\n @switch (typeSignal()) {\n @case ('plain') {\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n }\n @case ('clickable') {\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"selectedClassSignal()\" (click)=\"clickAnchor()\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n @case ('sref') {\n <dbx-injection [config]=\"srefAnchorConfig\">\n <!-- Injected in child. -->\n </dbx-injection>\n }\n @case ('href') {\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"urlSignal()\" [attr.target]=\"targetSignal()\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n @case ('disabled') {\n <a class=\"dbx-anchor-a dbx-anchor-disabled\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n }\n }\n <!-- Template content -->\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n standalone: true,\n imports: [NgTemplateOutlet, NgClass, DbxInjectionComponent],\n host: {\n class: 'd-inline dbx-anchor',\n 'dbx-anchor-block': 'block()'\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxAnchorComponent extends AbstractDbxAnchorDirective {\n private readonly _dbNgxRouterWebProviderConfig = inject(DbxRouterWebProviderConfig);\n\n readonly block = input<Maybe<boolean>>();\n\n readonly templateRef = viewChild<string, Maybe<TemplateRef<unknown>>>('content', { read: TemplateRef });\n readonly templateRef$ = toObservable(this.templateRef).pipe(skipAllInitialMaybe(), shareReplay(1));\n\n readonly selectedClassSignal = computed(() => (this.selectedSignal() ? 'dbx-anchor-selected' : ''));\n\n readonly srefAnchorConfig: DbxInjectionComponentConfig = this._dbNgxRouterWebProviderConfig.anchorSegueRefComponent;\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","import { ChangeDetectionStrategy, Component, computed, input, Signal } from '@angular/core';\nimport { ClickableAnchorLinkTree, DbxInjectionComponent, ExpandedClickableAnchorLinkTree, expandClickableAnchorLinkTrees } from '@dereekb/dbx-core';\nimport { Configurable, type Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from '../anchor/anchor.component';\nimport { MatListItem, MatListItemIcon, MatListItemLine, MatListItemTitle, MatNavList } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatDivider } from '@angular/material/divider';\nimport { NgClass } from '@angular/common';\n\nexport interface DbxAnchorListExpandedAnchor extends ExpandedClickableAnchorLinkTree {\n readonly 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 imports: [NgClass, MatNavList, MatListItem, MatListItemIcon, MatListItemLine, MatListItemTitle, MatIconModule, MatDivider, DbxAnchorComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxAnchorListComponent {\n readonly anchors = input.required<ClickableAnchorLinkTree[], Maybe<ClickableAnchorLinkTree[]>>({ transform: (x) => x ?? [] });\n\n readonly expandedAnchors: Signal<DbxAnchorListExpandedAnchor[]> = computed(() => {\n const anchors = this.anchors();\n return expandClickableAnchorLinkTrees(anchors).map((y) => {\n (y as Configurable<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}\n","<mat-nav-list class=\"dbx-anchor-list\">\n @for (expanded of expandedAnchors(); track $index; let last = $last) {\n <dbx-anchor [anchor]=\"expanded.value\" [ngClass]=\"expanded.classes\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\">\n @if (expanded.value.icon) {\n <mat-icon matListItemIcon>{{ expanded.value.icon }}</mat-icon>\n }\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div matListItemTitle>{{ expanded.value.title }}</div>\n @if (expanded.value.hint) {\n <div matListItemLine class=\"dbx-small\">{{ expanded.value.hint }}</div>\n }\n @if (expanded.value.content) {\n <dbx-injection [config]=\"expanded.value.content\"></dbx-injection>\n }\n </a>\n @if (!last) {\n <mat-divider></mat-divider>\n }\n </dbx-anchor>\n }\n</mat-nav-list>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\nimport { DbxAnchorListComponent } from '../../router/layout/anchorlist/anchorlist.component';\n\n@Component({\n selector: 'dbx-preset-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchorsSignal()\"></dbx-anchor-list>\n `,\n imports: [DbxAnchorListComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPresetFilterListComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {}\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 readonly unknownSelectionText?: string;\n /**\n * The icon to use for the filter, or false if no icon should be shown.\n */\n readonly 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 readonly 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 { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuDirective } from './filter.preset.directive';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxAnchorComponent } from '../../router/layout/anchor/anchor.component';\nimport { NgClass } from '@angular/common';\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 imports: [NgClass, MatButtonModule, MatMenuModule, MatIconModule, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPresetFilterMenuComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuDirective<F> {\n readonly config = input<DbxPresetFilterMenuConfig>({});\n readonly config$ = toObservable(this.config);\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this.config$, this.selectedPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this.config$, this.selectedPreset$);\n\n readonly buttonTextSignal = toSignal(this.buttonText$);\n readonly buttonIconSignal = toSignal(this.buttonIcon$);\n}\n","<button mat-button [matMenuTriggerFor]=\"menu\" class=\"dbx-preset-filter-menu-button\" aria-label=\"open filter\">\n @if (buttonIconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ buttonIconSignal() }}</mat-icon>\n }\n <span>{{ buttonTextSignal() }}</span>\n</button>\n<mat-menu #menu class=\"dbx-preset-filter-menu\">\n @for (anchor of presetAnchorsSignal(); track $index) {\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-menu-item [ngClass]=\"anchor.selected ? 'active' : ''\">\n @if (anchor.icon) {\n <mat-icon>{{ anchor.icon }}</mat-icon>\n }\n {{ anchor.title }}\n </button>\n </dbx-anchor>\n }\n</mat-menu>\n","import { shareReplay, map, Observable, combineLatest, distinctUntilChanged, startWith, first } from 'rxjs';\nimport { Directive, inject, input } from '@angular/core';\nimport { ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset } from '@dereekb/dbx-core';\nimport { filterUndefinedValues, firstValue, getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Displays a button and menu for filtering partialPresets.\n */\n@Directive()\nexport abstract class AbstractDbxPartialPresetFilterMenuDirective<F> {\n readonly filterSourceDirective = inject(FilterSourceDirective<F>);\n\n readonly partialPresets = input<ClickablePartialFilterPreset<F>[], Maybe<ClickablePartialFilterPreset<F>[]>>([], { transform: (x) => x ?? [] });\n readonly partialPresets$ = toObservable(this.partialPresets);\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]) => partialPresets.filter((x) => x.isActive(selectedFilter))),\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 readonly presetAnchorsSignal = toSignal(this.presetAnchors$);\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","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxAnchorComponent } from '../../router/layout/anchor/anchor.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { NgClass } from '@angular/common';\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.partial.menu.component.html', // share the same template as the preset menu\n imports: [NgClass, MatMenuModule, MatButtonModule, MatIconModule, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPartialPresetFilterMenuComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {\n readonly config = input<DbxPresetFilterMenuConfig>({});\n readonly config$ = toObservable(this.config);\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this.config$, this.firstSelectedPartialPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this.config$, this.firstSelectedPartialPreset$);\n\n readonly buttonTextSignal = toSignal(this.buttonText$);\n readonly buttonIconSignal = toSignal(this.buttonIcon$);\n}\n","<button mat-button [matMenuTriggerFor]=\"menu\" class=\"dbx-preset-filter-menu-button\" aria-label=\"open filter\">\n @if (buttonIconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ buttonIconSignal() }}</mat-icon>\n }\n <span>{{ buttonTextSignal() }}</span>\n</button>\n<mat-menu #menu class=\"dbx-preset-filter-menu\">\n @for (anchor of presetAnchorsSignal(); track anchor.title) {\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-menu-item [ngClass]=\"anchor.selected ? 'active' : ''\">{{ anchor.title }}</button>\n </dbx-anchor>\n }\n</mat-menu>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\nimport { DbxAnchorListComponent } from '../../router/layout/anchorlist/anchorlist.component';\n\n@Component({\n selector: 'dbx-preset-partial-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchorsSignal()\"></dbx-anchor-list>\n `,\n imports: [DbxAnchorListComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPartialPresetFilterListComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {}\n","import { NgModule } from '@angular/core';\nimport { DbxFilterPopoverButtonComponent } from './filter.popover.button.component';\nimport { DbxFilterPopoverComponent } from './filter.popover.component';\nimport { DbxFilterWrapperComponent } from './filter.wrapper.component';\nimport { DbxCoreFilterModule } from '@dereekb/dbx-core';\nimport { DbxPresetFilterListComponent } from './filter.preset.list.component';\nimport { DbxPresetFilterMenuComponent } from './filter.preset.menu.component';\nimport { DbxPartialPresetFilterMenuComponent } from './filter.partial.menu.component';\nimport { DbxPartialPresetFilterListComponent } from './filter.partial.list.component';\n\nconst importsAndExports = [DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxFilterPopoverComponent, DbxFilterPopoverButtonComponent, DbxFilterWrapperComponent, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent, DbxCoreFilterModule];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxFilterInteractionModule {}\n","import { Component, viewChild, ElementRef, OnDestroy, ChangeDetectionStrategy, computed, inject, SecurityContext, output , input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { asyncScheduler, combineLatest, delayWhen, map, Subject, switchMap, timer, startWith } from 'rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';\n\nexport const DBX_IFRAME_COMPONENT_TEMPLATE = `<iframe #iframe src=\"about:blank\" frameborder=\"0\" [scrolling]=\"scrolling()\" allow=\"autoplay\"></iframe>`;\n\n@Component({\n selector: 'dbx-iframe',\n template: DBX_IFRAME_COMPONENT_TEMPLATE,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxIframeComponent extends AbstractSubscriptionDirective implements OnDestroy {\n readonly sanitizer = inject(DomSanitizer);\n\n readonly iframeLocationChanged = output<ElementRef<HTMLIFrameElement>>();\n readonly iframe = viewChild<string, ElementRef<HTMLIFrameElement>>('iframe', { read: ElementRef });\n\n readonly scrolling = input<'auto' | 'no' | 'yes', 'auto' | 'no' | 'yes' | boolean>('no', { transform: (x) => (x == null ? 'no' : typeof x === 'string' ? x : x === true ? 'auto' : 'no') });\n\n readonly sanitizeUrl = input<boolean>(false);\n readonly contentUrl = input.required<Maybe<string | SafeResourceUrl>>();\n\n readonly contentUrlSignal = computed(() => {\n let url: Maybe<string | SafeResourceUrl> = this.contentUrl();\n const sanitizeUrl = this.sanitizeUrl();\n\n if (url && typeof url === 'string' && sanitizeUrl) {\n url = this.sanitizer.bypassSecurityTrustResourceUrl(url);\n }\n\n return url;\n });\n\n readonly iframe$ = toObservable(this.iframe);\n readonly contentUrl$ = toObservable(this.contentUrl);\n\n readonly retry = new Subject<void>();\n\n constructor() {\n super();\n this.sub = combineLatest([this.contentUrl$, this.iframe$])\n .pipe(\n // delay retries by 50ms\n switchMap((x) =>\n this.retry.pipe(\n startWith(undefined),\n delayWhen((_, i) => timer(i ? 50 : 0, asyncScheduler)),\n map(() => x)\n )\n )\n )\n .subscribe(([x, iframe]) => {\n const contentWindow = iframe?.nativeElement.contentWindow;\n\n if (contentWindow) {\n let url: Maybe<string> = undefined;\n\n if (x != null && typeof x !== 'string') {\n url = this.sanitizer.sanitize(SecurityContext.URL, x);\n } else {\n url = x;\n }\n\n contentWindow.location.replace(url ?? '');\n } else {\n this.retry.next(); // queue up another retry for setting the iframe value\n }\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.retry.complete();\n }\n}\n","import { GlobalPositionStrategy } from '@angular/cdk/overlay';\n\nexport type PopupPosition = 'center' | 'bottom_left' | 'bottom_right';\n\nexport interface PopupPositionOffset {\n readonly x?: string;\n readonly 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 const DbxPopupWindowState = {\n NORMAL: 'normal' as const,\n MINIMIZED: 'minimized' as const,\n FULLSCREEN: 'fullscreen' as const\n} as const;\n\nexport type DbxPopupWindowStateType = (typeof DbxPopupWindowState)[keyof typeof DbxPopupWindowState];\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<DbxPopupWindowStateType>;\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 readonly _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 { ChangeDetectionStrategy, Component, OnDestroy, OnInit, inject } from '@angular/core';\nimport { DbxPopupCoordinatorService } from './popup.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\nimport { toSignal } from '@angular/core/rxjs-interop';\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 @if (showSignal()) {\n <ng-content></ng-content>\n }\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\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\n readonly show$ = this.isPopupForKey$.pipe(delay(0));\n readonly showSignal = toSignal(this.show$);\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, ChangeDetectionStrategy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Maybe, PixelsString } from '@dereekb/util';\nimport { CompactContextStore } from '../../layout/compact/compact.store';\nimport { CompactMode } from '../../layout/compact/compact';\nimport { BehaviorSubject, Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopupGlobalPositionStrategy, PopupPosition, PopupPositionOffset } from './popup.position.strategy';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxPopupController, DbxPopupKey, DbxPopupWindowState, DbxPopupWindowStateType } from './popup';\nimport { DbxPopupCoordinatorComponent } from './popup.coordinator.component';\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 readonly 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 readonly key: DbxPopupKey;\n readonly position?: Maybe<PopupPosition>;\n readonly offset?: Maybe<PopupPositionOffset>;\n readonly closeOnTransition?: Maybe<boolean>;\n readonly componentClass: Type<T>;\n readonly data?: Maybe<I>;\n readonly isDraggable?: Maybe<boolean>;\n readonly init?: (component: T, controller: DbxPopupController<O, I>) => void;\n readonly width?: Maybe<PixelsString>;\n readonly height?: Maybe<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 imports: [DbxPopupCoordinatorComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPopupComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopupController<O, I>, OnDestroy {\n private readonly popoverRef = inject(NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O>);\n private readonly compactContextState = inject(CompactContextStore);\n\n private _position: PopupGlobalPositionStrategy;\n\n readonly config: DbxPopupComponentConfig<O, I, T> = this.popoverRef.data;\n readonly key: DbxPopupKey = this.config.key;\n readonly data: Maybe<I> = this.config.data;\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<DbxPopupWindowStateType>(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 ?? undefined, this.config.offset ?? undefined);\n this.popoverRef.overlay.updatePositionStrategy(this._position);\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 return(value?: O): void {\n this.closing.next();\n this.popoverRef.close(value);\n }\n\n 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 normalscreen(): void {\n this.popoverRef.isDraggable = this.config.isDraggable ?? undefined;\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 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 { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\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 @if (showContentSignal()) {\n <div class=\"dbx-popup-content-container\">\n <ng-content></ng-content>\n </div>\n }\n `,\n host: {\n class: 'dbx-popup-content'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPopupContentComponent {\n private readonly appPopupController = inject(DbxPopupController);\n\n readonly showContent$ = this.appPopupController.windowState$.pipe(map((x) => x !== DbxPopupWindowState.MINIMIZED));\n readonly showContentSignal = toSignal(this.showContent$, { initialValue: true });\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\nimport { DbxButtonModule } from '../../button/button.module';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\n\n/**\n * Popup Control Buttons.\n */\n@Component({\n selector: 'dbx-popup-control-buttons',\n template: `\n @switch (isMinimizedSignal()) {\n @case (false) {\n <dbx-button [flat]=\"true\" icon=\"minimize\" (buttonClick)=\"minimizeClicked()\"></dbx-button>\n }\n @case (true) {\n <dbx-button [flat]=\"true\" icon=\"maximize\" (buttonClick)=\"maximizeClicked()\"></dbx-button>\n }\n }\n <dbx-button-spacer></dbx-button-spacer>\n @switch (isFullscreenSignal()) {\n @case (false) {\n <dbx-button [flat]=\"true\" icon=\"open_in_full\" (buttonClick)=\"fullscreenClicked()\"></dbx-button>\n }\n @case (true) {\n <dbx-button [flat]=\"true\" icon=\"close_fullscreen\" (buttonClick)=\"normalscreenClicked()\"></dbx-button>\n }\n }\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 changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DbxButtonModule, DbxButtonSpacerDirective],\n standalone: true\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 readonly isMinimizedSignal = toSignal(this.isMinimized$, { initialValue: false });\n readonly isFullscreenSignal = toSignal(this.isFullscreen$, { initialValue: false });\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 { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { DbxPopupControlButtonsComponent } from './popup.controls.buttons.component';\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 imports: [DbxPopupControlButtonsComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPopupControlsComponent {\n readonly header = input<string>();\n}\n","import { DbxPopupCoordinatorComponent } from './popup.coordinator.component';\nimport { NgModule } from '@angular/core';\nimport { DbxPopupContentComponent } from './popup.content.component';\nimport { DbxPopupComponent } from './popup.component';\nimport { DbxPopupControlsComponent } from './popup.controls.component';\nimport { DbxPopupControlButtonsComponent } from './popup.controls.buttons.component';\n\nconst importsAndExports = [DbxPopupComponent, DbxPopupCoordinatorComponent, DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPopupInteractionModule {}\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 readonly injector?: Injector;\n}\n\n/**\n * Used for displaying a popup.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopupService {\n private readonly _overlay = inject(Overlay);\n private readonly _injector = inject(Injector);\n private readonly _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, input } from '@angular/core';\n\n@Directive({\n selector: 'dbx-prompt-box, [dbxPromptBox]',\n host: {\n class: 'd-block dbx-prompt-box',\n '[class.elevate]': 'elevate()'\n },\n standalone: true\n})\nexport class DbxPromptBoxDirective {\n readonly elevate = input<boolean>(true);\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 { 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 standalone: true\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 { Component, computed, input, ChangeDetectionStrategy, signal } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxSectionHeaderConfig, DbxSectionHeaderHType } from './section';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgTemplateOutlet } from '@angular/common';\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 @if (showTitleSignal()) {\n @switch (headerConfigSignal().h ?? 1) {\n @case (1) {\n <h1 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h1>\n }\n @case (2) {\n <h2 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h2>\n }\n @case (3) {\n <h3 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h3>\n }\n @case (4) {\n <h4 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h4>\n }\n @case (5) {\n <h5 class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h5>\n }\n }\n <span class=\"spacer\"></span>\n }\n <ng-content></ng-content>\n </div>\n <!-- Show Hint Not Inline -->\n @if (headerConfigSignal().hint && !headerConfigSignal().hintInline) {\n <p class=\"dbx-section-hint dbx-hint\">{{ headerConfigSignal().hint }}</p>\n }\n <ng-template #headerContentTitleTemplate>\n @if (headerConfigSignal().icon) {\n <mat-icon>{{ headerConfigSignal().icon }}</mat-icon>\n }\n <span class=\"title-text\">\n {{ headerConfigSignal().header }}\n <!-- Show Hint Inline -->\n @if (headerConfigSignal().hint && headerConfigSignal().hintInline) {\n <span class=\"dbx-section-hint-inline dbx-hint\">{{ headerConfigSignal().hint }}</span>\n }\n </span>\n </ng-template>\n `,\n standalone: true,\n imports: [MatIconModule, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.dbx-section-header-full-title]': 'headerConfigSignal().onlyHeader',\n '[class.dbx-section-header-padded]': 'headerConfigSignal().paddedHeader'\n }\n})\nexport class DbxSectionHeaderComponent {\n readonly headerConfig = input<Maybe<DbxSectionHeaderConfig>>();\n\n readonly h = input<Maybe<DbxSectionHeaderHType>>();\n readonly paddedHeader = input<Maybe<boolean>>();\n readonly header = input<Maybe<string>>();\n readonly onlyHeader = input<Maybe<boolean>>();\n readonly icon = input<Maybe<string>>();\n readonly hint = input<Maybe<string>>();\n readonly hintInline = input<Maybe<boolean>>();\n\n readonly hintInlineDefault = signal<Maybe<boolean>>(undefined);\n\n readonly headerConfigSignal = computed(() => {\n const headerConfig = this.headerConfig();\n\n const config: DbxSectionHeaderConfig = {\n h: this.h() ?? headerConfig?.h,\n paddedHeader: this.paddedHeader() ?? headerConfig?.paddedHeader,\n header: this.header() ?? headerConfig?.header,\n onlyHeader: this.onlyHeader() ?? headerConfig?.onlyHeader,\n icon: this.icon() ?? headerConfig?.icon,\n hint: this.hint() ?? headerConfig?.hint,\n hintInline: this.hintInline() ?? headerConfig?.hintInline ?? this.hintInlineDefault()\n };\n\n return config;\n });\n\n readonly showTitleSignal = computed(() => {\n const headerConfig = this.headerConfigSignal();\n return Boolean(headerConfig.header || headerConfig.icon);\n });\n}\n","import { ChangeDetectionStrategy, Component, computed, 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]=\"headerConfigSignal().h ?? 3\" [header]=\"headerConfigSignal().header\" [onlyHeader]=\"headerConfigSignal().onlyHeader\" [icon]=\"headerConfigSignal().icon\" [hint]=\"headerConfigSignal().hint\" [hintInline]=\"headerConfigSignal().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]': 'classConfig()'\n },\n imports: [DbxSectionHeaderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSectionComponent extends DbxSectionHeaderComponent {\n readonly elevate = input<boolean>(false);\n\n readonly classConfig = computed(() => {\n return this.elevate() ? 'dbx-section-elevate dbx-content-elevate' : '';\n });\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\nimport { DbxSectionHeaderComponent } from './section.header.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]=\"headerConfigSignal().h ?? 4\" [header]=\"headerConfigSignal().header\" [onlyHeader]=\"headerConfigSignal().onlyHeader\" [icon]=\"headerConfigSignal().icon\" [hint]=\"headerConfigSignal().hint\" [hintInline]=\"headerConfigSignal().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 standalone: true,\n imports: [DbxSectionHeaderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSubSectionComponent extends DbxSectionComponent {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxSubSectionComponent } from '../../layout/section/subsection.component';\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 standalone: true,\n imports: [DbxSubSectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPromptComponent {\n readonly header = input<Maybe<string>>();\n readonly prompt = input<Maybe<string>>();\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { DbxPromptComponent } from './prompt.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxPromptConfirmConfig {\n readonly title?: string;\n readonly prompt?: string;\n readonly confirmText?: string;\n readonly cancelText?: string;\n}\n\n/**\n * Displays a confirmation dialog.\n */\n@Component({\n selector: 'dbx-prompt-confirm',\n template: `\n <dbx-prompt [header]=\"config()?.title\" [prompt]=\"config()?.prompt\">\n <ng-content></ng-content>\n <button mat-stroked-button (click)=\"onConfirm()\">{{ confirmTextSignal() }}</button>\n <dbx-button-spacer></dbx-button-spacer>\n <button mat-stroked-button color=\"warn\" (click)=\"onCancel()\">{{ cancelTextSignal() }}</button>\n </dbx-prompt>\n `,\n standalone: true,\n imports: [DbxPromptComponent, MatButtonModule, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPromptConfirmComponent {\n readonly config = input<Maybe<DbxPromptConfirmConfig>>({});\n\n readonly confirmTextSignal = computed(() => this.config()?.confirmText || 'Confirm');\n readonly cancelTextSignal = computed(() => this.config()?.cancelText || 'Cancel');\n\n readonly confirm = output<void>();\n readonly cancel = output<void>();\n\n onConfirm(): void {\n this.confirm.emit();\n }\n\n onCancel(): void {\n this.cancel.emit();\n }\n}\n","import { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, ChangeDetectionStrategy, OnInit } from '@angular/core';\nimport { AbstractDialogDirective } from '../dialog/abstract.dialog.directive';\nimport { DbxPromptConfirmComponent, DbxPromptConfirmConfig } from './prompt.confirm.component';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxDialogContentDirective } from '../dialog/dialog.content.directive';\n\nexport const DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG = {\n title: 'Confirm?'\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 standalone: true,\n imports: [DbxDialogContentDirective, DbxPromptConfirmComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\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\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, inject, input } 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 _currentDialogRef?: MatDialogRef<DbxPromptConfirmDialogComponent, boolean>;\n private _currentDialogPromise?: Promise<boolean>;\n\n protected abstract getDefaultDialogConfig(): Maybe<DbxPromptConfirmConfig>;\n\n showDialog(): Observable<boolean> {\n return this.showDialogWithConfig(this.getDefaultDialogConfig());\n }\n\n protected showDialogWithConfig(config: Maybe<DbxPromptConfirmConfig>): Observable<boolean> {\n if (!this._currentDialogPromise) {\n this._currentDialogPromise = new Promise<boolean>((resolve) => {\n this._currentDialogRef = DbxPromptConfirmDialogComponent.openDialog(this.matDialog, config);\n this._currentDialogRef.afterClosed().subscribe((result: Maybe<boolean>) => {\n this._currentDialogRef = undefined;\n this._currentDialogPromise = undefined;\n resolve(this._handleDialogResult(Boolean(result)));\n });\n });\n }\n\n return from(this._currentDialogPromise);\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 standalone: true\n})\nexport class DbxPromptConfirmDirective extends AbstractPromptConfirmDirective {\n readonly dbxPromptConfirm = input<Maybe<DbxPromptConfirmConfig>>();\n\n protected override getDefaultDialogConfig(): Maybe<DbxPromptConfirmConfig> {\n return this.dbxPromptConfirm();\n }\n}\n","import { Directive, input, computed } 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]': `classConfig()`\n },\n standalone: true\n})\nexport class DbxContentContainerDirective {\n readonly grow = input<DbxContentContainerWidth>('wide');\n readonly padding = input<DbxContentContainerPadding>('normal');\n readonly topPadding = input<DbxContentContainerPadding>('none');\n\n readonly classConfig = computed(() => {\n const classConfig = 'container-' + this.grow() + ' container-padding-' + this.padding() + ' container-top-padding-' + this.topPadding();\n return classConfig;\n });\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { DbxContentContainerDirective } from '../../layout/content/content.container.directive';\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 imports: [DbxContentContainerDirective],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxPromptPageComponent {}\n","import { DbxPromptComponent } from './prompt.component';\nimport { NgModule } from '@angular/core';\nimport { DbxPromptBoxDirective } from './prompt.box.directive';\nimport { DbxPromptPageComponent } from './prompt.page.component';\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';\n\nconst importsAndExports = [DbxPromptComponent, DbxPromptBoxDirective, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxPromptModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxDialogModule } 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\nconst importsAndExports = [DbxPromptModule, DbxDialogModule, DbxFilterInteractionModule, DbxPopoverInteractionModule, DbxPopupInteractionModule];\n\n/**\n * @deprecated import individual modules instead.\n *\n * @see DbxDialogModule\n * @see DbxFilterInteractionModule\n * @see DbxPromptModule\n * @see DbxPopoverInteractionModule\n * @see DbxPopupInteractionModule\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxInteractionModule {}\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 { ChangeDetectionStrategy, 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 standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxLabelBlockComponent {\n readonly header = input<Maybe<string>>();\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ServerError, ServerErrorResponseData } from '@dereekb/util';\nimport { AbstractDbxErrorWidgetComponent } from './error.widget.directive';\nimport { DbxLabelBlockComponent } from '../layout/text/label.block.component';\nimport { JsonPipe } from '@angular/common';\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 @if (serverErrorData) {\n <dbx-label-block header=\"Error Data\">\n <p class=\"dbx-json\">{{ serverErrorData | json }}</p>\n </dbx-label-block>\n }\n `,\n host: {\n class: 'd-block dbx-error-default-error-widget dbx-content-container'\n },\n imports: [DbxLabelBlockComponent, JsonPipe],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxErrorDefaultErrorWidgetComponent extends AbstractDbxErrorWidgetComponent<ServerError> {\n get serverErrorData(): ServerErrorResponseData | undefined {\n return this.data.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 readonly _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 { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { Maybe, ReadableError, ReadableErrorWithCode } from '@dereekb/util';\nimport { DbxInjectionComponent, 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]=\"errorWithCodeSignal()\"></dbx-injection>\n `,\n host: {\n class: 'dbx-error-widget-view'\n },\n imports: [DbxInjectionComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorWidgetViewComponent {\n readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n\n readonly error = input<Maybe<ReadableError>>();\n\n readonly errorWithCodeSignal = computed<Maybe<DbxInjectionComponentConfig>>(() => {\n const currentError = this.error();\n const error: Maybe<ReadableErrorWithCode> = currentError && currentError.code ? (currentError as ReadableErrorWithCode) : undefined;\n\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","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { Maybe, ReadableError } from '@dereekb/util';\nimport { DbxErrorWidgetViewComponent } from './error.widget.component';\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 imports: [DbxErrorWidgetViewComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorDetailsComponent {\n readonly error = input<Maybe<ReadableError>>();\n}\n","import { ChangeDetectionStrategy, 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';\nimport { DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective } from '../interaction';\nimport { DbxErrorDetailsComponent } from './error.details.component';\n\nexport const DEFAULT_ERROR_POPOVER_KEY = 'error';\n\nexport interface DbxErrorPopoverConfig {\n readonly origin: ElementRef;\n readonly 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 imports: [DbxPopoverContentComponent, DbxPopoverHeaderComponent, DbxPopoverScrollContentDirective, DbxErrorDetailsComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorPopoverComponent extends AbstractPopoverDirective<void, ReadableError> {\n readonly error = this.popover.data as ReadableError;\n readonly code = this.error.code;\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 { ChangeDetectionStrategy, Component, ElementRef, input, output, viewChild } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nexport interface DbxErrorViewButtonEvent {\n readonly origin: ElementRef;\n}\n\n/**\n * The basic error view. Shows an info button and an error message.\n */\n@Component({\n selector: 'dbx-error-view',\n template: `\n <button class=\"dbx-error-button\" [disabled]=\"buttonDisabled()\" #buttonPopoverOrigin mat-icon-button (click)=\"clickError()\">\n <mat-icon>{{ icon() }}</mat-icon>\n </button>\n @if (message()) {\n <span class=\"dbx-error-message\">{{ message() }}</span>\n }\n `,\n host: {\n class: 'dbx-error dbx-warn dbx-b'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [MatIconModule, MatButtonModule],\n standalone: true\n})\nexport class DbxErrorViewComponent {\n readonly icon = input<string>('error');\n\n readonly message = input<Maybe<string>>();\n\n /**\n * Whether or not the error button is disabled.\n */\n readonly buttonDisabled = input<Maybe<boolean>>();\n\n readonly buttonClick = output<DbxErrorViewButtonEvent>();\n\n readonly buttonOrigin = viewChild.required<ElementRef, ElementRef>('buttonPopoverOrigin', { read: ElementRef });\n\n clickError() {\n if (!this.buttonDisabled()) {\n this.buttonClick.emit({\n origin: this.buttonOrigin()\n });\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input, output, inject, signal } from '@angular/core';\nimport { Maybe, ErrorInput, toReadableError, ReadableError, isDefaultReadableError, Configurable } from '@dereekb/util';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorViewButtonEvent, DbxErrorViewComponent } from './error.view.component';\nimport { DbxErrorWidgetService } from './error.widget.service';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\nimport { NgPopoverRef } from 'ng-overlay-container';\n\ntype DbxErrorComponentViewType = 'none' | 'default' | 'custom';\n\ninterface DbxErrorComponentState {\n readonly viewType: DbxErrorComponentViewType;\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 @switch (viewTypeSignal()) {\n @case ('default') {\n <dbx-error-view icon=\"error\" [message]=\"messageSignal()\" [buttonDisabled]=\"isDefaultErrorSignal()\" (buttonClick)=\"openErrorPopover($event)\"></dbx-error-view>\n }\n @case ('custom') {\n <dbx-injection [config]=\"customViewSignal()\"></dbx-injection>\n }\n }\n `,\n standalone: true,\n imports: [DbxErrorViewComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorComponent {\n private readonly popoverService = inject(DbxPopoverService);\n private readonly dbxErrorWidgetService = inject(DbxErrorWidgetService);\n\n readonly popoverOpened = output<NgPopoverRef>();\n\n readonly error = input<Maybe<ErrorInput>>();\n readonly iconOnly = input<Maybe<boolean>>(false);\n\n private readonly _errorOverrideSignal = signal<Maybe<ErrorInput>>(undefined);\n readonly errorSignal = computed(() => this._errorOverrideSignal() ?? this.error());\n\n readonly state = computed<DbxErrorComponentState>(() => {\n const rawError = this.errorSignal();\n const iconOnly = this.iconOnly();\n\n if (rawError != null) {\n const error = toReadableError(rawError);\n const isDefaultError = iconOnly ? false : isDefaultReadableError(error);\n\n let state: DbxErrorComponentState = {\n viewType: 'default',\n rawError,\n error,\n message: (error as ReadableError)?.message || 'An error occurred.',\n isDefaultError\n };\n\n if (iconOnly) {\n delete (state as Configurable<DbxErrorComponentState>).message;\n } else {\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code);\n const componentClass = entry?.errorComponentClass;\n\n if (componentClass != null) {\n state = {\n ...state,\n viewType: 'custom',\n customView: {\n componentClass,\n data: error\n }\n };\n }\n }\n\n return state;\n } else {\n return { viewType: 'none' };\n }\n });\n\n readonly viewTypeSignal = computed(() => this.state().viewType);\n readonly isDefaultErrorSignal = computed(() => this.state().isDefaultError);\n readonly messageSignal = computed(() => this.state().message);\n readonly customViewSignal = computed(() => this.state().customView);\n\n setError(error: Maybe<ErrorInput>) {\n this._errorOverrideSignal.set(error);\n }\n\n 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.popoverOpened.emit(popoverRef);\n }\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatProgressBar, ProgressBarMode } from '@angular/material/progress-bar';\nimport { MatProgressSpinner, ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { type Maybe } from '@dereekb/util';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { NgClass } from '@angular/common';\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 @switch (linear()) {\n @case (true) {\n <mat-progress-bar [mode]=\"bmode()\" [color]=\"color()\" [bufferValue]=\"bufferValue()\" [value]=\"value()\" style=\"margin: auto;\"></mat-progress-bar>\n }\n @default {\n <mat-progress-spinner [diameter]=\"diameterSignal()\" [mode]=\"smode()\" [color]=\"color()\" [value]=\"value()\" style=\"margin: auto;\"></mat-progress-spinner>\n }\n }\n @if (text()) {\n <div class=\"dbx-loading-progress-hint dbx-hint dbx-small\" [ngClass]=\"{ 'text-center': !linear() }\">{{ text() }}</div>\n }\n </div>\n `,\n imports: [MatProgressBar, MatProgressSpinner, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxLoadingProgressComponent {\n readonly defaultDiameter = DEFAULT_LOADING_PROGRESS_DIAMETER;\n\n readonly diameter = input<Maybe<number>>(this.defaultDiameter);\n\n readonly text = input<Maybe<string>>();\n readonly linear = input<Maybe<boolean>>();\n readonly mode = input<ProgressBarMode | ProgressSpinnerMode>('indeterminate');\n readonly color = input<ThemePalette | DbxThemeColor>('primary');\n readonly value = input<Maybe<number>>();\n readonly bufferValue = input<Maybe<number>>();\n\n readonly bmode = computed(() => this.mode() as ProgressBarMode);\n readonly smode = computed(() => this.mode() as ProgressSpinnerMode);\n\n readonly diameterSignal = computed(() => this.diameter() || this.defaultDiameter);\n}\n","import { Component, ElementRef, input, computed, ChangeDetectionStrategy, viewChild } 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 { DbxErrorComponent } from '../error/error.component';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { DbxLoadingProgressComponent } from './loading-progress.component';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * DbxBasicLoadingComponent loading state.\n */\nexport type LoadingComponentState = 'none' | 'loading' | 'content' | 'error';\n\n/**\n * Basic loading component.\n */\n@Component({\n selector: 'dbx-basic-loading',\n templateUrl: './basic-loading.component.html',\n imports: [DbxErrorComponent, DbxLoadingProgressComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxBasicLoadingComponent {\n readonly customError = viewChild<string, Maybe<ElementRef>>('customError', { read: ElementRef });\n readonly customLoading = viewChild<string, Maybe<ElementRef>>('customLoading', { read: ElementRef });\n\n readonly diameter = input<Maybe<number>>();\n readonly mode = input<ProgressBarMode | ProgressSpinnerMode>('indeterminate');\n readonly color = input<ThemePalette | DbxThemeColor>('primary');\n readonly text = input<Maybe<string>>();\n readonly linear = input<Maybe<boolean>>(false);\n\n readonly show = input<Maybe<boolean>>(true);\n readonly loading = input<Maybe<boolean>>();\n readonly error = input<Maybe<ErrorInput>>();\n\n readonly stateSignal = computed<LoadingComponentState>(() => {\n const loading = this.loading();\n const error = this.error();\n const show = this.show() ?? true; // default to true if not defined\n\n let state: LoadingComponentState;\n\n if (error) {\n state = '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 = 'none';\n } else if (loading || !show) {\n state = 'loading';\n } else {\n state = 'content';\n }\n\n return state;\n });\n\n readonly hasNoCustomErrorSignal = computed(() => !checkNgContentWrapperHasContent(this.customError()));\n readonly hasNoCustomLoadingSignal = computed(() => !checkNgContentWrapperHasContent(this.customLoading()));\n}\n","@switch (stateSignal()) {\n @case ('none') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('loading') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('content') {\n <!-- Content -->\n <ng-content></ng-content>\n }\n @case ('error') {\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n }\n}\n\n<ng-template #loadingTemplate>\n @if (hasNoCustomLoadingSignal()) {\n <dbx-loading-progress [mode]=\"mode()\" [color]=\"color()\" [text]=\"text()\" [linear]=\"linear()\" [diameter]=\"diameter()\"></dbx-loading-progress>\n }\n <div #customLoading>\n <ng-content select=\"[loading]\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #errorTemplate>\n @if (hasNoCustomErrorSignal()) {\n <dbx-error [error]=\"error()\"></dbx-error>\n }\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-content select=\"[errorAction]\"></ng-content>\n</ng-template>\n","import { Observable, shareReplay } from 'rxjs';\nimport { Component, ChangeDetectionStrategy, input, computed, signal, Signal } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { LoadingContext, LoadingContextEvent, MaybeObservableOrValue, maybeValueFromObservableOrValue, switchMapMaybeLoadingContextStream } from '@dereekb/rxjs';\nimport { ErrorInput, type Maybe } from '@dereekb/util';\nimport { type DbxThemeColor } from '../layout/style/style';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxBasicLoadingComponent } from './basic-loading.component';\n\n/**\n * State of a DbxLoadingComponent.\n */\nexport interface DbxLoadingComponentState {\n readonly loading: boolean;\n readonly 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]=\"stateSignal().error\" [loading]=\"stateSignal().loading\">\n <ng-content loading select=\"[loading]\"></ng-content>\n @if (showPaddingSignal()) {\n <div class=\"dbx-loading-linear-done-padding\"></div>\n }\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 imports: [DbxBasicLoadingComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxLoadingComponent {\n private readonly _contextOverrideSignal = signal<MaybeObservableOrValue<LoadingContext>>(undefined);\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 readonly padding = input<Maybe<boolean>>(false);\n readonly show = input<Maybe<boolean>>();\n readonly text = input<Maybe<string>>();\n readonly mode = input<ProgressBarMode>('indeterminate');\n readonly color = input<ThemePalette | DbxThemeColor>('primary');\n readonly diameter = input<Maybe<number>>();\n readonly linear = input<Maybe<boolean>>();\n readonly loading = input<Maybe<boolean>>();\n readonly error = input<Maybe<ErrorInput>>();\n\n readonly context = input<MaybeObservableOrValue<LoadingContext>>();\n\n readonly contextSignal: Signal<MaybeObservableOrValue<LoadingContext>> = computed(() => this._contextOverrideSignal() ?? this.context());\n\n readonly contextStream$: Observable<Maybe<LoadingContextEvent>> = toObservable(this.contextSignal).pipe(maybeValueFromObservableOrValue(), switchMapMaybeLoadingContextStream(), shareReplay(1));\n readonly contextStreamSignal = toSignal(this.contextStream$);\n\n readonly stateSignal = computed<DbxLoadingComponentState>(() => {\n const loading = this.loading();\n const error = this.error();\n let loadingState = this.contextStreamSignal() as DbxLoadingComponentState;\n\n if (loadingState == null) {\n loadingState = {\n loading: loading ?? false,\n error: error\n };\n }\n\n return loadingState;\n });\n\n readonly showPaddingSignal = computed(() => {\n const linear = this.linear();\n const padding = this.padding();\n const loading = this.stateSignal()?.loading;\n return linear && padding && !loading;\n });\n\n /**\n * Sets/overrides the context directly.\n *\n * @param context Context source to use as an override.\n */\n setContext(context: MaybeObservableOrValue<LoadingContext>) {\n this._contextOverrideSignal.set(context);\n }\n}\n","import { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Directive, OnDestroy, inject } from '@angular/core';\nimport { DbxLoadingComponent } from './loading.component';\nimport { loadingStateContext } from '@dereekb/rxjs';\n\n/**\n * Context used for linking a loadingComponent to an ActionContext by providing a LoadingContext.\n */\n@Directive({\n selector: '[dbxActionLoadingContext]',\n standalone: true\n})\nexport class DbxActionLoadingContextDirective implements OnDestroy {\n readonly loadingComponent = inject(DbxLoadingComponent, { host: true });\n\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n private readonly _context = loadingStateContext({ obs: this.source.loadingState$ });\n\n constructor() {\n this.loadingComponent.setContext(this._context);\n }\n\n ngOnDestroy(): void {\n this._context.destroy();\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxBasicLoadingComponent } from './basic-loading.component';\nimport { DbxLoadingProgressComponent } from './loading-progress.component';\nimport { DbxLoadingComponent } from './loading.component';\nimport { DbxActionLoadingContextDirective } from './loading.action.directive';\n\nconst importsAndExports = [DbxLoadingComponent, DbxBasicLoadingComponent, DbxLoadingProgressComponent, DbxActionLoadingContextDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxLoadingModule {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'dbx-spacer, [dbxSpacer]',\n host: {\n class: 'dbx-spacer'\n },\n standalone: true\n})\nexport class DbxSpacerDirective {}\n","import { OnInit, Component, OnDestroy, AfterViewInit, inject, computed, ChangeDetectionStrategy } from '@angular/core';\nimport { filterMaybe, LoadingStateType } from '@dereekb/rxjs';\nimport { shareReplay, 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 { AbstractSubscriptionDirective, DbxActionDirective, DbxActionValueStreamDirective, DbxActionSuccessHandlerFunction, DbxActionSourceDirective, DbxActionSuccessHandlerDirective } from '@dereekb/dbx-core';\nimport { NgClass } from '@angular/common';\nimport { DbxButtonComponent } from '../../button/button.component';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { DbxSpacerDirective } from '../../layout/style/spacer.directive';\n\n/**\n * Component for a snackbar that contains an action.\n */\n@Component({\n templateUrl: './action.snackbar.component.html',\n standalone: true,\n imports: [NgClass, DbxActionSourceDirective, DbxActionSuccessHandlerDirective, DbxButtonComponent, DbxButtonSpacerDirective, DbxSpacerDirective, DbxActionDirective, DbxActionValueStreamDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxActionSnackbarComponent extends AbstractSubscriptionDirective implements OnInit, AfterViewInit, OnDestroy {\n readonly snackbarRef = inject(MatSnackBarRef<DbxActionSnackbarComponent>);\n readonly snackbarData = inject<DbxActionSnackbarDisplayConfig>(MAT_SNACK_BAR_DATA);\n\n private readonly _durationTimeout = new Subject<void>();\n private readonly _actionRef = this.snackbarData.action?.reference;\n\n readonly sourceInstance$ = of(this._actionRef).pipe(\n filterMaybe(),\n map((x) => x?.sourceInstance)\n );\n\n readonly complete$ = this.sourceInstance$.pipe(\n switchMap((x) => x.isSuccess$),\n startWith(false),\n shareReplay(1)\n );\n\n readonly loadingStateType$ = this.sourceInstance$.pipe(\n switchMap((x) => x.loadingStateType$),\n startWith(LoadingStateType.IDLE),\n shareReplay(1)\n );\n\n readonly sourceInstanceSignal = toSignal(this.sourceInstance$);\n readonly completeSignal = toSignal(this.complete$);\n readonly loadingStateTypeSignal = toSignal(this.loadingStateType$);\n readonly snackbarStatusClassSignal = computed(() => {\n let classes = 'dbx-action-snackbar-';\n const loadingStateType = this.loadingStateTypeSignal();\n\n switch (loadingStateType) {\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\n readonly button: Maybe<string> = this.snackbarData.action?.button ?? this.snackbarData.button;\n readonly action: Maybe<DbxActionSnackbarActionConfig> = this.snackbarData.action;\n readonly hasAction: boolean = Boolean(this.action?.reference);\n readonly message: Maybe<string> = this.snackbarData.message;\n readonly actionConfig: Maybe<DbxActionSnackbarActionConfig> = this.snackbarData.action;\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._durationTimeout.complete();\n }\n\n ngAfterViewInit(): void {\n // Responsible for hiding itself if it has an action.\n if (this.hasAction) {\n setTimeout(\n () => {\n this._durationTimeout.next();\n },\n this.snackbarData.action?.duration ?? MS_IN_SECOND * 10\n );\n }\n }\n\n dismissAfterActionCompletes: DbxActionSuccessHandlerFunction = (): 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]=\"snackbarStatusClassSignal()\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n @switch (completeSignal()) {\n @case (true) {\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n }\n @case (false) {\n @if (hasAction) {\n <dbx-action dbxActionValue [dbxActionSource]=\"sourceInstanceSignal()\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n }\n }\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 readonly event: DbxActionSnackbarEvent<O>;\n readonly 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 readonly duration?: Milliseconds;\n readonly 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 readonly idle?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n readonly loading?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n readonly success?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n readonly 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 readonly 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, OnInit, inject, input } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxActionContextStoreSourceInstance, transformEmptyStringInputToUndefined } 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 standalone: true\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 readonly dbxActionSnackbarDefault = input<Maybe<DbxActionSnackbarType>>();\n readonly dbxActionSnackbarUndo = input<Maybe<DbxActionSnackbarGeneratorUndoInput<T, O>>>();\n readonly dbxActionSnackbar = input<Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction>, Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction> | ''>(undefined, { transform: transformEmptyStringInputToUndefined });\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 const snackbarFunction = this.dbxActionSnackbar();\n return snackbarFunction ? 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 { NgModule } from '@angular/core';\nimport { DbxActionSnackbarDirective } from './action.snackbar.directive';\nimport { DbxActionSnackbarComponent } from './action.snackbar.component';\n\nconst importsAndExports = [DbxActionSnackbarComponent, DbxActionSnackbarDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxActionSnackbarModule {}\n","import { Directive, OnInit, inject } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to an ActionContext.\n */\n@Directive({\n selector: '[dbxActionError]',\n standalone: true\n})\nexport class DbxActionErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly error = inject(DbxErrorComponent, { host: true });\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n ngOnInit(): void {\n this.sub = this.source.error$.subscribe((error) => {\n this.error.setError(error);\n });\n }\n}\n","import { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { AbstractDialogDirective } from '../../interaction/dialog/abstract.dialog.directive';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmComponent } from '../../interaction/prompt/prompt.confirm.component';\nimport { DbxErrorComponent } from '../../error/error.component';\nimport { DbxActionErrorDirective } from '../../error/error.action.directive';\nimport { DbxButtonComponent } from '../../button/button.component';\nimport { DbxButtonSpacerDirective } from '../../button/button.spacer.directive';\n\nexport type DbxActionTransitionSafetyDialogResult = 'success' | 'stay' | 'discard' | 'none';\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 standalone: true,\n imports: [DbxPromptConfirmComponent, DbxErrorComponent, DbxActionErrorDirective, DbxButtonComponent, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxActionUIRouterTransitionSafetyDialogComponent extends AbstractDialogDirective implements OnInit {\n readonly config: DbxPromptConfirmConfig = {\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('stay');\n }\n\n cancel(): void {\n this.dialogRef.close('discard');\n }\n}\n","import { Directive, OnInit, OnDestroy, ViewContainerRef, inject, input, effect } 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, BehaviorSubject, combineLatest, firstValueFrom } from 'rxjs';\nimport { DbxActionContextStoreSourceInstance, canTriggerAction, isIdleActionState } from '@dereekb/dbx-core';\nimport { DbxActionTransitionSafetyDialogResult, DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { Maybe } from '@dereekb/util';\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\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 standalone: true\n})\nexport class DbxActionTransitionSafetyDirective<T, O> implements OnInit, OnDestroy {\n protected readonly _safetyType = new BehaviorSubject<Maybe<DbxActionTransitionSafetyType>>(undefined);\n\n readonly dbxActionTransitionSafety = input<DbxActionTransitionSafetyType>();\n\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 readonly safetyType$ = this._safetyType.pipe(map((x) => x ?? 'dialog'));\n\n protected readonly _dbxActionTransitionSafetyUpdateEffect = effect(() => this._safetyType.next(this.dbxActionTransitionSafety()));\n\n private _currentDialogRef?: MatDialogRef<DbxActionUIRouterTransitionSafetyDialogComponent, DbxActionTransitionSafetyDialogResult>;\n private stopWatchingTransition?: () => void;\n\n private checkIsDestroyed(): 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 type DbxActionTransitionSafetyRaceResult = [boolean | undefined, HookResult | undefined];\n\n return firstValueFrom(\n combineLatest([this.source.isModified$, this.safetyType$]).pipe(\n first(),\n mergeMap(([isModified, safetyType]) => {\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, safetyType).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, safetyType: DbxActionTransitionSafetyType): Observable<HookResult> {\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.checkIsDestroyed()) {\n return of(true);\n }\n\n if (!this._currentDialogRef) {\n this._currentDialogRef = this.dialog.open(DbxActionUIRouterTransitionSafetyDialogComponent, {\n viewContainerRef: this.viewContainerRef\n });\n }\n\n return this._currentDialogRef.afterClosed().pipe(\n first(),\n map((result: DbxActionTransitionSafetyDialogResult | undefined = 'stay') => {\n // Default to Stay if the user clicks outside.\n switch (result) {\n case 'discard':\n case 'success':\n case 'none':\n return true;\n case 'stay':\n return false;\n }\n })\n );\n }\n\n private _closeDialog(): void {\n if (this._currentDialogRef) {\n this._currentDialogRef.close('none');\n }\n\n this._currentDialogRef = undefined;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { DbxActionTransitionSafetyDirective as DbxActionUIRouterTransitionSafetyDirective } from './transition.safety.directive';\n\nconst importsAndExports = [DbxActionUIRouterTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent];\n\n/**\n * Provides the DbxActionUIRouterTransitionSafetyDirective.\n *\n * NOTE: Only works with UIRouter\n * \n * @deprecated import the standalone components directly\n * \n * @see DbxActionUIRouterTransitionSafetyDirective\n * @see DbxActionUIRouterTransitionSafetyDialogComponent\n \n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxActionUIRouterTransitionModule {}\n","import { Directive, OnDestroy, OnInit, inject, input } 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, transformEmptyStringInputToUndefined } 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 readonly 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 standalone: true\n})\nexport class DbxActionConfirmDirective<T = unknown, O = unknown> extends AbstractPromptConfirmDirective implements OnInit, OnDestroy {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n readonly dbxActionConfirm = input<Maybe<DbxActionConfirmConfig<T>>, Maybe<DbxActionConfirmConfig<T> | ''>>(undefined, { transform: transformEmptyStringInputToUndefined });\n\n private readonly _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 getDefaultDialogConfig(): Maybe<DbxPromptConfirmConfig> {\n return this.dbxActionConfirm();\n }\n\n protected override _handleDialogResult(result: boolean): boolean {\n if (result) {\n this.source.readyValue(this.dbxActionConfirm()?.readyValue as unknown as T);\n } else {\n this.source.reject(undefined);\n }\n\n return result;\n }\n}\n","import { Directive, HostListener, inject, input } 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 standalone: true\n})\nexport class DbxActionKeyTriggerDirective<T = unknown, O = unknown> {\n readonly source = inject(DbxActionContextStoreSourceInstance<T, O>, { host: true });\n\n readonly key = input<string, Maybe<string>>(DEFAULT_ACTION_KEY_TRIGGER, { alias: 'dbxActionKeyTrigger', transform: (x) => (x ?? DEFAULT_ACTION_KEY_TRIGGER).toLowerCase() });\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 { NgModule } from '@angular/core';\nimport { DbxActionKeyTriggerDirective } from './key.trigger.directive';\nimport { DbxActionButtonDirective, DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxActionConfirmDirective } from './action.confirm.directive';\n\nconst importsAndExports = [DbxCoreActionModule, DbxActionButtonDirective, DbxActionKeyTriggerDirective, DbxActionConfirmDirective];\n\n/**\n * Provides all base dbxAction-related components from both @dereekb/core and @dereekb/web.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxActionModule {}\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, effect, inject, input } from '@angular/core';\nimport { LoadingContext, MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxErrorComponent } from './error.component';\nimport { distinctUntilChanged, shareReplay, Subscription } from 'rxjs';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\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 standalone: true\n})\nexport class DbxLoadingErrorDirective extends AbstractSubscriptionDirective {\n readonly error = inject(DbxErrorComponent, { host: true });\n readonly context = input.required<MaybeObservableOrValue<LoadingContext>>({ alias: 'dbxLoadingError' });\n readonly context$ = toObservable(this.context).pipe(maybeValueFromObservableOrValue(), distinctUntilChanged(), shareReplay(1));\n readonly contextSignal = toSignal(this.context$);\n\n protected readonly _errorEffect = effect(() => {\n const context = this.contextSignal();\n let subscription: Subscription | undefined;\n\n if (context) {\n subscription = context.stream$.subscribe((x) => this.error.setError(x.error));\n }\n\n this.sub = subscription;\n });\n}\n","import { ChangeDetectionStrategy, Component, inject, OnInit, OnDestroy, signal, effect } from '@angular/core';\nimport { MAT_SNACK_BAR_DATA, MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { ErrorInput, MS_IN_MINUTE, makeTimer, toggleTimerRunning } from '@dereekb/util';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxErrorViewComponent } from './error.view.component';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { from } from 'rxjs';\nimport { DbxErrorComponent } from './error.component';\nimport { SubscriptionObject } from '@dereekb/rxjs';\n\nexport type DbxErrorSnackbarConfig = Omit<MatSnackBarConfig<any>, 'data' | 'viewContainerRef'>;\n\nexport interface DbxErrorSnackbarData<T extends ErrorInput = ErrorInput> {\n readonly error: T;\n readonly duration?: number;\n}\n\n@Component({\n selector: 'dbx-error-snackbar',\n template: `\n <div class=\"dbx-error-snackbar-content\">\n <dbx-error [error]=\"error\" (popoverOpened)=\"onPopoverOpened($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 `,\n standalone: true,\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxErrorViewComponent, DbxErrorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxErrorSnackbarComponent implements OnInit, OnDestroy {\n readonly snackBarRef = inject(MatSnackBarRef<DbxErrorSnackbarComponent>);\n readonly data = inject<DbxErrorSnackbarData>(MAT_SNACK_BAR_DATA);\n\n readonly error = this.data.error;\n private readonly _popoverOpen = signal(false);\n\n private readonly _timer = makeTimer(this.data.duration ?? MS_IN_MINUTE, Boolean(this.data.duration));\n private readonly _allowAutoDismiss = this.data.duration != null;\n\n protected readonly _popoverSyncEffect = effect(() => toggleTimerRunning(this._timer, !this._popoverOpen()));\n\n private readonly _popoverAfterClosedSub = new SubscriptionObject();\n private readonly _autoDismissSub = new SubscriptionObject();\n\n ngOnInit(): void {\n if (this._allowAutoDismiss) {\n this._autoDismissSub.subscription = from(this._timer.promise).subscribe(() => this.dismiss());\n } else {\n this._popoverSyncEffect.destroy();\n }\n }\n\n ngOnDestroy(): void {\n this._autoDismissSub.destroy();\n this._timer.destroy();\n }\n\n onPopoverOpened(popover: NgPopoverRef) {\n this._popoverOpen.set(true);\n this._popoverAfterClosedSub.subscription = popover.afterClosed$.subscribe(() => this._popoverOpen.set(false));\n }\n\n dismiss() {\n this.snackBarRef.dismiss();\n }\n\n static showErrorSnackbar(matSnackbar: MatSnackBar, error: ErrorInput, config?: DbxErrorSnackbarConfig) {\n matSnackbar.openFromComponent(DbxErrorSnackbarComponent, {\n ...config,\n duration: undefined,\n panelClass: [...(config?.panelClass ?? []), 'dbx-error-snackbar'],\n data: {\n error,\n duration: config?.duration\n }\n });\n }\n}\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\nexport const DEFAULT_DBX_ERROR_SNACKBAR_CONFIG: DbxErrorSnackbarConfig = {\n politeness: 'polite',\n announcementMessage: 'An error has occurred',\n horizontalPosition: 'center',\n verticalPosition: 'bottom'\n};\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 = DEFAULT_DBX_ERROR_SNACKBAR_CONFIG;\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, inject, input } 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 standalone: true\n})\nexport class DbxActionSnackbarErrorDirective extends AbstractSubscriptionDirective {\n readonly dbxErrorSnackbarService = inject(DbxErrorSnackbarService);\n readonly source = inject(DbxActionContextStoreSourceInstance);\n\n readonly config = input<Maybe<DbxErrorSnackbarConfig> | Milliseconds | ''>(undefined, { alias: 'dbxActionSnackbarError' });\n\n constructor() {\n super();\n this.sub = this.source.error$.pipe(filterMaybe()).subscribe((inputError) => {\n const config = this.config();\n const error = toReadableError(inputError);\n\n const snackbarConfig = config ? (typeof config === 'number' ? { duration: config } : config) : undefined;\n this.dbxErrorSnackbarService.showSnackbarError(error, snackbarConfig);\n });\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxErrorComponent } from './error.component';\nimport { DbxLoadingErrorDirective } from './error.loading.directive';\nimport { DbxActionErrorDirective } from './error.action.directive';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { DbxErrorDetailsComponent } from './error.details.component';\nimport { DbxErrorWidgetViewComponent } from './error.widget.component';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\nimport { DbxErrorViewComponent } from './error.view.component';\nimport { DbxErrorSnackbarComponent } from './error.snackbar.component';\nimport { DbxActionSnackbarErrorDirective } from './error.snackbar.action.directive';\n\nconst importsAndExports = [\n //\n DbxErrorComponent,\n DbxLoadingErrorDirective,\n DbxActionErrorDirective,\n DbxActionSnackbarErrorDirective,\n DbxErrorViewComponent,\n DbxErrorSnackbarComponent,\n DbxErrorPopoverComponent,\n DbxErrorDetailsComponent,\n DbxErrorWidgetViewComponent,\n DbxErrorDefaultErrorWidgetComponent\n];\n\n/**\n * @deprecated all components are now standalone. Consider importing those instead.\n *\n * @see DbxErrorComponent\n * @see DbxLoadingErrorDirective\n * @see DbxActionErrorDirective\n * @see DbxActionSnackbarErrorDirective\n * @see DbxErrorViewComponent\n * @see DbxErrorSnackbarComponent\n * @see DbxErrorPopoverComponent\n * @see DbxErrorDetailsComponent\n * @see DbxErrorWidgetViewComponent\n * @see DbxErrorDefaultErrorWidgetComponent\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxReadableErrorModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { convertToPOJOServerErrorResponse } from './error.api';\nimport { catchError, MonoTypeOperatorFunction, of } from 'rxjs';\nimport { ActionCreator } from '@ngrx/store/src/models';\nimport { Action } from '@ngrx/store';\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 & Action<T>>, mapError: (error: ServerErrorParams) => E = (error) => error as E): MonoTypeOperatorFunction<E & Action<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 { createAction } from '@ngrx/store';\n\nexport const dbxModelResetState = createAction('[App/Model] Reset State');\n","import { Maybe, ModelKeyTypeNamePair } from '@dereekb/util';\nimport { createAction, props } from '@ngrx/store';\n\nexport interface DbxModelObjectViewedParams {\n readonly modelKeyTypeNamePair: ModelKeyTypeNamePair;\n readonly context?: Maybe<string>;\n}\n\nexport interface DbxModelGoToObjectViewParams {\n readonly modelKeyTypeNamePair: ModelKeyTypeNamePair;\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, encodeModelKeyTypePair, ModelRelationUtility, type Maybe } from '@dereekb/util';\nimport { StorageAccessor } from '@dereekb/dbx-core';\nimport { map, mergeMap, catchError, Observable, of, Subject, tap } from 'rxjs';\nimport { DbxModelViewTrackerEventSet, DbxModelViewTrackerEvent } from './model.tracker';\n\n/**\n * Token that corresponds to a StorageAccessor<DbxModelViewTrackerEventSet> that is used by DbxModelViewTrackerStorage.\n */\nexport const DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN = new InjectionToken('DbxModelViewTrackerStorageAccessor');\n\n/**\n * Used for managing DbxModelViewTrackerEvent storage.\n */\n@Injectable()\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 readonly _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, ModelViewContext } 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()\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?: Maybe<ModelViewContext>, 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 { 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()\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 { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { SimpleStorageAccessorFactory, StorageAccessor } from '@dereekb/dbx-core';\nimport { provideEffects } from '@ngrx/effects';\nimport { provideState } from '@ngrx/store';\nimport { DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelTrackerService } from './model.tracker.service';\nimport { DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN, DbxModelViewTrackerStorage } from './model.tracker.view.storage';\nimport { fromDbxModel } from './state';\nimport { DbxModelTrackerEffects } from './state/effects/tracker.effects';\nimport { DbxModelObjectStateService } from './model.state.service';\n\n/**\n * Factory function for creating a StorageAccessor for the model view tracker.\n */\nexport function defaultDbxModelViewTrackerStorageAccessorFactory(storageAccessorFactory: SimpleStorageAccessorFactory): StorageAccessor<DbxModelViewTrackerEventSet> {\n const accessor = storageAccessorFactory.createStorageAccessor<DbxModelViewTrackerEventSet>({\n prefix: 'mtvs'\n });\n\n return accessor;\n}\n\n/**\n * Creates EnvironmentProviders for providing DbxModelTrackerService, DbxModelObjectStateService and sets up the NgRx store for DbxModelTrackerEffects.\n *\n * @returns EnvironmentProviders\n */\nexport function provideDbxModelService(): EnvironmentProviders {\n const providers: (Provider | EnvironmentProviders)[] = [\n // Storage accessor\n {\n provide: DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN,\n useFactory: defaultDbxModelViewTrackerStorageAccessorFactory,\n deps: [SimpleStorageAccessorFactory]\n },\n // Service\n DbxModelViewTrackerStorage,\n DbxModelTrackerService,\n DbxModelObjectStateService,\n // NgRx\n provideEffects([DbxModelTrackerEffects]),\n provideState(fromDbxModel.featureKey, fromDbxModel.reducers)\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { UnixDateTimeNumber, Maybe, ModelKey, ModelKeyTypeNamePair } from '@dereekb/util';\n\n/**\n * String context in which a model was viewed.\n */\nexport type ModelViewContext = string;\n\nexport interface DbxModelViewTrackerEvent {\n /**\n * Event time\n */\n readonly d?: UnixDateTimeNumber;\n /**\n * Context\n */\n readonly c?: Maybe<ModelViewContext>;\n /**\n * Model info\n */\n readonly m: ModelKeyTypeNamePair;\n readonly folder?: Maybe<string>;\n}\n\nexport interface DbxModelViewTrackerEventSet {\n /**\n * The latest date/time number.\n */\n readonly l: UnixDateTimeNumber;\n /**\n * List of events.\n */\n readonly 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-all';\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 readonly 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 { ChangeDetectionStrategy, Component, ElementRef, computed, inject, input, viewChild } from '@angular/core';\nimport { MatSnackBar } from '@angular/material/snack-bar';\nimport { WorkUsingObservable, LoadingState, loadingStateContext, successResult, valueFromFinishedLoadingState, MaybeObservableOrValue, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { MS_IN_SECOND, type Maybe } from '@dereekb/util';\nimport { Observable, first, 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, DbxActionButtonDirective } from '@dereekb/dbx-core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxLoadingComponent } from '../../../loading/loading.component';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { DbxButtonComponent } from '../../../button/button.component';\nimport { DbxActionModule } from '../../../action/action.module';\nimport { DbxButtonSpacerDirective } from '../../../button/button.spacer.directive';\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 standalone: true,\n imports: [NgTemplateOutlet, DbxLoadingComponent, DbxActionModule, DbxActionButtonDirective, DbxButtonComponent, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush\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 readonly downloadButton = viewChild<string, Maybe<ElementRef>>('downloadButton', { read: ElementRef });\n\n readonly loadingText = input<Maybe<string>>(undefined);\n readonly linear = input<Maybe<boolean>>(undefined);\n readonly showTitle = input<boolean>(true);\n readonly showPreview = input<boolean>(true);\n\n readonly content = input<Maybe<DownloadTextContent>>(undefined);\n readonly contentState = input<MaybeObservableOrValue<LoadingState<DownloadTextContent>>>(undefined);\n\n readonly contentState$ = toObservable(this.contentState).pipe(maybeValueFromObservableOrValue(), shareReplay(1));\n\n readonly contentStateSignal = toSignal(this.contentState$);\n\n readonly contentLoadingStateSignal = computed(() => {\n const content = this.content();\n const contentState = this.contentStateSignal();\n\n let result: Maybe<LoadingState<DownloadTextContent>>;\n\n if (contentState) {\n result = contentState;\n } else if (content) {\n result = successResult(content);\n }\n\n return result;\n });\n\n readonly contentLoadingState$ = toObservable(this.contentLoadingStateSignal);\n readonly content$: Observable<Maybe<DownloadTextContent>> = this.contentLoadingState$.pipe(\n switchMap((x) => {\n if (x) {\n return of(x).pipe(valueFromFinishedLoadingState());\n } else {\n return of(undefined);\n }\n })\n );\n\n readonly contentSignal = toSignal(this.content$);\n\n readonly contentDataSignal = computed(() => this.contentSignal()?.content);\n\n readonly fileUrlSignal = computed(() => {\n const content = this.contentSignal();\n\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\n readonly fileNameSignal = computed(() => this.contentSignal()?.name ?? 'File');\n\n readonly downloadReadySignal = computed(() => {\n const downloadButton = this.downloadButton();\n const fileName = this.fileNameSignal();\n const fileUrl = this.fileUrlSignal();\n return Boolean(downloadButton && fileName && fileUrl);\n });\n\n readonly context = loadingStateContext({ obs: this.contentLoadingState$ });\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 @if (showTitle()) {\n <div class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileNameSignal() }}</div>\n }\n @if (showPreview()) {\n <div class=\"dbx-download-text-preview dbx-json dbx-content-pit dbx-content-pit-scrollable dbx-mb3\">{{ contentDataSignal() }}</div>\n }\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]=\"fileUrlSignal()\" [attr.download]=\"fileNameSignal()\"><dbx-button icon=\"download\" text=\"Download\" [raised]=\"true\" [working]=\"!downloadReadySignal()\" [disabled]=\"!downloadReadySignal()\"></dbx-button></a>\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { DbxDownloadTextViewComponent } from './download.text.component';\n\nconst importsAndExports = [DbxDownloadTextViewComponent];\n\n/**\n * @deprecated import DbxDownloadtextVie\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 standalone: true\n})\nexport class DbxStructureDirective {\n readonly injector = inject(Injector);\n readonly element = inject(ElementRef);\n\n /**\n * @deprecated do not use cdRef here anymore. Rely on signals instead. Will be removed in the future.\n */\n readonly cdRef = inject(ChangeDetectorRef);\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 standalone: true\n})\nexport class DbxBodyDirective extends DbxStructureDirective {}\n","import { NgModule } from '@angular/core';\nimport { DbxStructureDirective } from './structure.structure.directive';\nimport { DbxBodyDirective } from './structure.body.directive';\n\nconst importsAndExports = [DbxBodyDirective, DbxStructureDirective];\n\n/**\n * @deprecated Use DbxStructureDirective and DbxBodyDirective directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxWidgetViewComponentConfig } from './widget';\nimport { DbxWidgetService } from './widget.service';\nimport { NgTemplateOutlet } from '@angular/common';\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 @switch (widgetConfigExistsSignal()) {\n @case (true) {\n <ng-container *ngTemplateOutlet=\"widget\"></ng-container>\n }\n @default {\n <ng-container *ngTemplateOutlet=\"unknown\"></ng-container>\n }\n }\n <ng-template #widget>\n <dbx-injection [config]=\"configSignal()\"></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 standalone: true,\n imports: [DbxInjectionComponent, NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxWidgetViewComponent {\n readonly dbxWidgetService = inject(DbxWidgetService);\n\n readonly config = input<Maybe<DbxWidgetViewComponentConfig>>();\n\n readonly configSignal = computed(() => {\n const pair = this.config();\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\n readonly widgetConfigExistsSignal = computed(() => this.configSignal() !== null);\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 { 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 /**\n * @see DbxListViewMetaIconComponent.metaConfig()\n */\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 { 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, ListLoadingStateContext } from '@dereekb/rxjs';\nimport { forwardRef, OutputEmitterRef, Provider, TrackByFunction, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\nexport type DbxListSelectionMode = 'select' | 'view';\n\nexport interface ListSelectionStateItem<T> {\n readonly disabled?: boolean;\n readonly selected?: boolean;\n readonly itemValue: T;\n}\n\nexport interface ListSelectionState<T> {\n readonly 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 readonly trackBy$?: Observable<Maybe<TrackByFunction<T>>>;\n /**\n * (Optional) clicked event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract clickValue?: OutputEmitterRef<T>;\n /**\n * (Optional) selection changed event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract selectionChange?: OutputEmitterRef<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, 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 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 { Maybe, maybeModifierMapToFunction, ModifierFunction } from '@dereekb/util';\nimport { Directive, inject, input } from '@angular/core';\nimport { filterMaybe, mapForEach } from '@dereekb/rxjs';\nimport { 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';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\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> {\n readonly dbxListView = inject(DbxListView<T>);\n readonly dbxValueListViewModifier = inject(DbxValueListItemModifier<T, I>, { optional: true });\n\n readonly config = input.required<C>();\n\n readonly config$ = toObservable(this.config).pipe(filterMaybe(), distinctUntilChanged(), shareReplay(1));\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 readonly itemsSignal = toSignal(this.items$);\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.emit(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 { toSignal, toObservable } from '@angular/core/rxjs-interop';\nimport { ChangeDetectionStrategy, Component, Signal, TrackByFunction, computed, inject, input } from '@angular/core';\nimport { shareReplay, map, Observable, switchMap, of } from 'rxjs';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig, DbxValueListItemConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { DbxInjectionComponent, anchorTypeForAnchor } from '@dereekb/dbx-core';\nimport { DbxListView } from './list.view';\nimport { Maybe, spaceSeparatedCssClasses } from '@dereekb/util';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, defaultDbxValueListViewGroupDelegate } from './group/list.view.value.group';\nimport { asObservable } from '@dereekb/rxjs';\nimport { MatListModule, MatNavList } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxAnchorComponent } from '../../router/layout/anchor/anchor.component';\n\nexport interface DbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n readonly emitAllClicks?: boolean;\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 @if (headerConfigSignal()) {\n <div class=\"dbx-list-view-group-header\">\n <dbx-injection [config]=\"headerConfigSignal()\"></dbx-injection>\n </div>\n }\n @for (item of itemsSignal(); track trackByFunctionSignal()($index, item)) {\n <dbx-anchor [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 @if (item.icon) {\n <mat-icon matListItemIcon>{{ item.icon }}</mat-icon>\n }\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n @if (item.metaConfig) {\n <span matListItemMeta>\n <dbx-injection [config]=\"item.metaConfig\"></dbx-injection>\n </span>\n }\n </a>\n </dbx-anchor>\n }\n @if (footerConfigSignal()) {\n <div class=\"dbx-list-view-group-footer\">\n <dbx-injection [config]=\"footerConfigSignal()\"></dbx-injection>\n </div>\n }\n </div>\n `,\n host: {\n class: 'dbx-list-view-group',\n '[class]': 'cssClassSignal()'\n },\n imports: [DbxInjectionComponent, DbxAnchorComponent, MatListModule, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxValueListViewContentGroupComponent<G, T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxValueListViewContentComponent = inject(DbxValueListViewContentComponent<T>);\n readonly group = input<Maybe<DbxValueListItemGroup<G, T, I>>>();\n\n readonly trackByFunctionSignal = toSignal(this.dbxValueListViewContentComponent.trackBy$, { initialValue: DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION });\n\n readonly itemsSignal = computed(() => this.group()?.items ?? []);\n readonly headerConfigSignal = computed(() => this.group()?.headerConfig);\n readonly footerConfigSignal = computed(() => this.group()?.footerConfig);\n readonly cssClassSignal = computed(() => spaceSeparatedCssClasses(this.group()?.cssClasses));\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\n// MARK: DbxValueListViewContentComponent\nexport const DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION: TrackByFunction<any> = (index: number) => index;\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]=\"disabledSignal()\">\n @for (group of groupsSignal(); track group.id) {\n <dbx-list-view-content-group [group]=\"group\"></dbx-list-view-content-group>\n }\n </mat-nav-list>\n `,\n host: {\n class: 'dbx-list-view'\n },\n standalone: true,\n imports: [MatNavList, DbxValueListViewContentGroupComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n readonly dbxListView = inject(DbxListView<T>);\n private readonly _dbxListGroupDelegate: DbxValueListViewGroupDelegate<any, T, I> = inject<Maybe<DbxValueListViewGroupDelegate<any, T, I>>>(DbxValueListViewGroupDelegate, { optional: true }) ?? defaultDbxValueListViewGroupDelegate();\n\n private readonly _trackBy$ = this.dbxListView.trackBy$ ?? of(undefined);\n readonly trackBy$ = this._trackBy$.pipe(map((trackBy) => (trackBy ? (index: number, item: DbxValueListItemConfig<T, I>) => trackBy(index, item.itemValue) : DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION)));\n\n readonly items = input<Maybe<DbxValueListItemConfig<T, I>[]>>();\n readonly emitAllClicks = input<Maybe<boolean>>();\n\n readonly groups$: Observable<DbxValueListItemGroup<any, T, I>[]> = toObservable(this.items).pipe(\n switchMap((items) => asObservable(this._dbxListGroupDelegate.groupValues(items ?? []))),\n shareReplay(1)\n );\n\n readonly groupsSignal = toSignal(this.groups$);\n readonly disabledSignal = toSignal(this.dbxListView.disabled$);\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) === '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?.emit(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return item.rippleDisabled || (!this.emitAllClicks() && !item.anchor);\n }\n}\n\n// MARK: DbxValueListViewComponent\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]=\"itemsSignal()\" [emitAllClicks]=\"emitAllClicksSignal()\"></dbx-list-view-content>\n `,\n standalone: true,\n imports: [DbxValueListViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\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 emitAllClicksSignal: Signal<Maybe<boolean>> = computed(() => this.config()?.emitAllClicks);\n}\n","import { ListLoadingStateContext, MaybeObservableOrValue, asObservable, maybeValueFromObservableOrValue } from '@dereekb/rxjs';\nimport { BehaviorSubject, combineLatest, distinctUntilChanged, map, Observable, of, shareReplay, switchMap } from 'rxjs';\nimport { Directive, input, NgModule, OnDestroy, output, TrackByFunction } from '@angular/core';\nimport { DbxListSelectionMode, DbxListView } from './list.view';\nimport { type Maybe } from '@dereekb/util';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { DbxValueListViewComponent } from './list.view.value.component';\n\nexport const DEFAULT_DBX_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE = '<dbx-list-view [config]=\"config\"></dbx-list-view>';\n\n@NgModule({\n exports: [DbxValueListViewComponent],\n imports: [DbxValueListViewComponent]\n})\nexport class DbxValueListViewComponentImportsModule {}\n\n// MARK: Value List View\n/**\n * Abstract DbxListView implementation.\n *\n * You might consider extending AbstractDbxSelectionListViewDirective instead, as it includes selection support.\n */\n@Directive()\nexport abstract class AbstractDbxListViewDirective<T> implements DbxListView<T>, OnDestroy {\n readonly valuesArray = input<Maybe<T[]>>();\n readonly values = input<MaybeObservableOrValue<T[]>>();\n\n private readonly _trackBy = new BehaviorSubject<Maybe<TrackByFunction<T>>>(undefined);\n private readonly _disabled = new BehaviorSubject<boolean>(false);\n private readonly _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n private readonly _valuesOverride = new BehaviorSubject<MaybeObservableOrValue<T[]>>(undefined);\n\n readonly trackBy$ = this._trackBy.asObservable();\n\n readonly _inputValuesArray$ = toObservable(this.valuesArray);\n readonly _inputValues$ = toObservable(this.values);\n\n readonly _values$: Observable<Maybe<T[]>> = this._valuesOverride.pipe(\n switchMap((x) => {\n let valuesObs: Observable<Maybe<T[]>>;\n\n if (x) {\n valuesObs = asObservable(x);\n } else {\n valuesObs = combineLatest([this._inputValues$, this._inputValuesArray$]).pipe(switchMap(([x, y]) => (y != null ? of(y) : asObservable(x))));\n }\n\n return valuesObs;\n })\n );\n\n readonly values$: Observable<T[]> = this._values$.pipe(\n maybeValueFromObservableOrValue(),\n map((x) => x ?? []),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n readonly clickValue = output<T>();\n\n ngOnDestroy(): void {\n this._disabled.complete();\n this._selectionMode.complete();\n this._valuesOverride.complete();\n }\n\n onClickValue(value: T) {\n this.clickValue.emit(value);\n }\n\n setListContext(state: ListLoadingStateContext<T>): void {\n this.setValues(state.currentList$);\n }\n\n setValues(values: MaybeObservableOrValue<T[]>): void {\n this._valuesOverride.next(values);\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 setTrackBy(trackBy: Maybe<TrackByFunction<T>>) {\n this._trackBy.next(trackBy);\n }\n}\n","import { ChangeDetectionStrategy, Component, Directive, Signal, computed, inject, input } from '@angular/core';\nimport { of } from 'rxjs';\nimport { DbxValueListItem } from '../list.view.value';\nimport { AbstractDbxValueListViewDirective } from '../list.view.value.directive';\nimport { Maybe, mergeObjects } from '@dereekb/util';\nimport { DbxValueListViewContentComponent, DbxValueListViewConfig, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION } from '../list.view.value.component';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { MatRipple } from '@angular/material/core';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { DbxAnchorComponent } from '../../../router/layout/anchor/anchor.component';\nimport { FlexLayoutModule } from '@ngbracket/ngx-layout';\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\nexport interface DbxValueListGridItemViewGridSizeConfig {\n /**\n * Gap size in %, px, vw, vh\n */\n readonly gap: string;\n /**\n * Columns configuration.\n *\n * Example: repeat(auto-fill, minmax(200px, 1fr))\n */\n readonly 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 standalone: true\n})\nexport class DbxValueListGridSizeDirective {\n readonly gridSize = input.required<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>({ alias: 'dbxListGridSize' });\n readonly gridSize$ = toObservable(this.gridSize);\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]=\"gridConfigSignal().gap\" [gdColumns]=\"gridConfigSignal().columns\">\n @for (item of items(); track trackByFunctionSignal()($index, item)) {\n <dbx-anchor class=\"dbx-list-grid-view-item\" matRipple [matRippleDisabled]=\"rippleDisabledOnItem(item)\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\" (click)=\"onClickItem(item)\">\n <div dbx-injection [config]=\"item.config\"></div>\n </dbx-anchor>\n }\n </div>\n `,\n host: {\n class: 'dbx-list-grid-view'\n },\n standalone: true,\n imports: [FlexLayoutModule, MatRipple, DbxAnchorComponent, DbxInjectionComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxValueListGridViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> {\n private readonly _gridSizeOverride = inject(DbxValueListGridSizeDirective, { optional: true });\n\n readonly inputGridConfig = input<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined, { alias: 'grid' });\n readonly gridConfigFromGridSizeSignal = toSignal(this._gridSizeOverride?.gridSize$ ?? of(undefined));\n\n readonly gridConfigSignal: Signal<DbxValueListGridItemViewGridSizeConfig> = computed(() => {\n return mergeObjects<DbxValueListGridItemViewGridSizeConfig>([DEFAULT_LIST_GRID_SIZE_CONFIG, this.inputGridConfig(), this.gridConfigFromGridSizeSignal()]) as DbxValueListGridItemViewGridSizeConfig;\n });\n\n readonly trackByFunctionSignal = toSignal(this.trackBy$, { initialValue: DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION });\n}\n\n// MARK: DbxValueListGridViewComponent\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 [items]=\"itemsSignal()\" [grid]=\"config().grid\" [emitAllClicks]=\"config().emitAllClicks\"></dbx-list-grid-view-content>\n `,\n standalone: true,\n imports: [DbxValueListGridViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\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","import { Directive, NgModule } from '@angular/core';\nimport { AbstractDbxListViewDirective } from '../list.view.directive';\nimport { DbxValueListGridViewComponent, DbxValueListGridViewConfig } from './list.grid.view.component';\nimport { DbxValueAsListItem } from '../list.view.value';\n\nexport const DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE = '<dbx-list-grid-view [config]=\"config\"></dbx-list-grid-view>';\n\nexport const dbxListGridViewDirectiveImportsAndExports = [DbxValueListGridViewComponent];\n\n@NgModule({\n exports: dbxListGridViewDirectiveImportsAndExports,\n imports: dbxListGridViewDirectiveImportsAndExports\n})\nexport class DbxListGridViewDirectiveImportsModule {}\n\n/**\n * Abstract DbxListGridView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListGridViewDirective<T> extends AbstractDbxListViewDirective<T> {\n abstract readonly config: DbxValueListGridViewConfig<DbxValueAsListItem<T>>;\n}\n\n// MARK: Compat\n/**\n * @deprecated Use DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE instead.\n */\nexport const DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE = DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE;\n","import { InfiniteScrollDirective } from 'ngx-infinite-scroll';\nimport { catchError, filter, exhaustMap, merge, map, Subject, switchMap, shareReplay, of, Observable, first, distinctUntilChanged, combineLatest } from 'rxjs';\nimport { Component, OnDestroy, ElementRef, HostListener, Directive, inject, ChangeDetectionStrategy, input, output, signal, computed } from '@angular/core';\nimport { DbxInjectionComponent, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { SubscriptionObject, ListLoadingState, filterMaybe, isLoadingStateFinishedLoading, startWithBeginLoading, listLoadingStateContext, switchMapMaybe, PageLoadingState } from '@dereekb/rxjs';\nimport { invertMaybeBoolean, Maybe, Milliseconds } from '@dereekb/util';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxLoadingComponent } from '../../loading/loading.component';\n\n// MARK: DbxListInternalContentDirective\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 standalone: true\n})\nexport class DbxListInternalContentDirective {\n private readonly parent = inject(DbxListComponent);\n\n readonly elementRef = inject(ElementRef);\n\n readonly hide = input<Maybe<boolean>>(false);\n\n constructor() {\n this.parent.setInternalContent(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\n// MARK: DbxList\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 readonly hideOnEmpty?: boolean;\n\n /**\n * Whether or not this list should scroll upward from the bottom, like a message list.\n */\n readonly invertedList?: boolean;\n\n /**\n * Distance to scroll.\n */\n readonly scrollDistance?: number;\n\n /**\n * Number of ms to throttle scrolling events.\n */\n readonly throttle?: Milliseconds;\n\n /**\n * (Optional) onClick handler\n */\n readonly onClick?: (value: T) => void;\n\n /**\n * (Optional) onSelection handler\n */\n readonly onSelectionChange?: (selection: ListSelectionState<T>) => void;\n\n /**\n * (Optional) handler function to load more items.\n */\n readonly loadMore?: DbxListLoadMoreHandler;\n\n /**\n * Default selection list value. If not defined, will default to 'view'.\n */\n readonly defaultSelectionMode?: Maybe<DbxListSelectionMode>;\n}\n\nexport type DbxListComponentScrolledEventPosition = number;\n\nexport const DBX_LIST_DEFAULT_SCROLL_DISTANCE = 1.5;\nexport const DBX_LIST_DEFAULT_THROTTLE_SCROLL = 50;\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 imports: [DbxInjectionComponent, InfiniteScrollDirective, DbxListInternalContentDirective, DbxLoadingComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxListComponent<T = unknown, V extends DbxListView<T> = DbxListView<T>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy {\n /**\n * Emitted when content is scrolled.\n */\n readonly contentScrolled = output<DbxListComponentScrolledEventPosition>();\n\n /**\n * Whether or not to add bottom padding to the list content.\n */\n readonly padded = input<boolean>(true);\n\n readonly state = input<Maybe<Observable<Maybe<S>>>>(undefined);\n readonly config = input<Maybe<DbxListConfig<T, V>>>(undefined);\n\n readonly disabled = input<Maybe<boolean>>(false);\n readonly selectionMode = input<Maybe<DbxListSelectionMode>>(undefined);\n\n readonly hasMore = input<Maybe<boolean>>(undefined);\n readonly hasMore$ = toObservable(this.hasMore);\n\n private readonly _internalContentSignal = signal<Maybe<DbxListInternalContentDirective>>(undefined);\n readonly nativeElementSignal = computed(() => (this._internalContentSignal()?.elementRef as Maybe<ElementRef<HTMLElement>>)?.nativeElement);\n\n private readonly _loadMoreTrigger = new Subject<void>();\n private readonly _scrollTrigger = new Subject<DbxListScrollDirectionTrigger>();\n\n private readonly _loadMoreSub = new SubscriptionObject();\n private readonly _onClickSub = new SubscriptionObject();\n private readonly _disabledSub = new SubscriptionObject();\n private readonly _selectionModeSub = new SubscriptionObject();\n private readonly _onSelectionChangeSub = new SubscriptionObject();\n\n readonly currentState$: Observable<Maybe<S>> = toObservable(this.state).pipe(switchMapMaybe());\n readonly context = listLoadingStateContext<T, S>({ obs: this.currentState$, showLoadingOnNoValue: false });\n\n readonly hasMoreFromCurrentState$ = this.currentState$.pipe(map((x) => (x as unknown as PageLoadingState)?.hasNextPage));\n readonly isEnd$ = combineLatest([this.hasMore$, this.hasMoreFromCurrentState$]).pipe(\n map((x) => invertMaybeBoolean(x[0] ?? x[1])),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly isEmpty$ = this.context.isEmpty$;\n readonly isEmptyLoading$ = this.context.isEmptyLoading$;\n readonly isEmptyAndNotLoading$ = this.context.isEmptyAndNotLoading$;\n\n readonly config$ = toObservable(this.config);\n readonly disabled$ = toObservable(this.disabled).pipe(\n map((x) => Boolean(x)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly selectionMode$ = toObservable(this.selectionMode).pipe(distinctUntilChanged(), shareReplay(1));\n\n readonly hideOnEmpty$: Observable<boolean> = this.config$.pipe(\n filterMaybe(),\n map((x) => Boolean(x.hideOnEmpty)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly invertedList$: Observable<boolean> = this.config$.pipe(\n filterMaybe(),\n map((x) => Boolean(x?.throttle)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly throttleScroll$: Observable<number> = this.config$.pipe(\n map((x) => x?.throttle ?? DBX_LIST_DEFAULT_THROTTLE_SCROLL),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly scrollDistance$: Observable<number> = this.config$.pipe(\n map((x) => x?.scrollDistance ?? DBX_LIST_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.currentStateStream$.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 shareReplay(1)\n );\n }\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly infiniteScrollDistanceSignal = toSignal(this.scrollDistance$, { initialValue: DBX_LIST_DEFAULT_SCROLL_DISTANCE });\n readonly infiniteScrollThrottleSignal = toSignal(this.throttleScroll$, { initialValue: DBX_LIST_DEFAULT_THROTTLE_SCROLL });\n readonly hideContentSignal = toSignal(this.hideContent$);\n readonly injectedComponentConfigSignal = toSignal(this.injectedComponentConfig$);\n readonly isEmptyAndNotLoadingSignal = toSignal(this.isEmptyAndNotLoading$);\n readonly isEmptyLoadingSignal = toSignal(this.isEmptyLoading$);\n readonly isEndSignal = toSignal(this.isEnd$);\n\n ngOnDestroy(): void {\n this._scrollTrigger.complete();\n this._loadMoreTrigger.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 getScrollPositionRelativeToBottom(): number {\n const element = this.nativeElementSignal();\n\n if (element) {\n try {\n // At max scroll, scrollHeight = scrollTop + clientHeight;\n const { scrollTop, scrollHeight, clientHeight } = element;\n return scrollHeight - (scrollTop + clientHeight);\n } catch (e) {}\n }\n\n return 0;\n }\n\n jumpToBottom(): void {\n const element = this.nativeElementSignal();\n\n if (element) {\n try {\n element.scrollTop = element.scrollHeight;\n } catch (err) {\n // do nothing.\n }\n }\n }\n\n jumpToPositionRelativeToBottom(pos: number): void {\n const element = this.nativeElementSignal();\n\n if (element) {\n try {\n const { scrollHeight, clientHeight } = element;\n element.scrollTop = scrollHeight - (clientHeight + pos);\n } catch (err) {\n // do nothing.\n }\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 setInternalContent(content: DbxListInternalContentDirective) {\n if (this._internalContentSignal() == null) {\n this._internalContentSignal.set(content);\n } else {\n throw new Error('Attempted to set internal content in DbxListComponent when it was already set.');\n }\n }\n}\n","<dbx-loading [context]=\"context\" [linear]=\"true\"></dbx-loading>\n<div dbxListInternalContent [hide]=\"hideContentSignal()\" infinite-scroll [infiniteScrollDistance]=\"infiniteScrollDistanceSignal()\" [infiniteScrollUpDistance]=\"infiniteScrollDistanceSignal()\" [infiniteScrollThrottle]=\"infiniteScrollThrottleSignal()\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\" (scrolledUp)=\"onScrollUp()\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-injection [config]=\"injectedComponentConfigSignal()\"></dbx-injection>\n <ng-content select=\"[bottom]\"></ng-content>\n @if (isEndSignal()) {\n <ng-content select=\"[end]\"></ng-content>\n }\n</div>\n@if (isEmptyAndNotLoadingSignal()) {\n <ng-content select=\"[empty]\"></ng-content>\n}\n@if (isEmptyLoadingSignal()) {\n <ng-content select=\"[emptyLoading]\"></ng-content>\n}\n","import { ListLoadingState, ObservableOrValue, maybeValueFromObservableOrValue, MaybeObservableOrValue } from '@dereekb/rxjs';\nimport { Observable, BehaviorSubject, map, shareReplay, combineLatest } from 'rxjs';\nimport { OnDestroy, Directive, input, output, computed, Signal, NgModule } from '@angular/core';\nimport { DbxListComponent, DbxListConfig } from './list.component';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\nimport { Configurable, type Maybe } from '@dereekb/util';\nimport { DbxListViewWrapper } from './list.wrapper';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n// MARK: Wrapper\nexport const DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE = `\n <dbx-list [state]=\"currentState$\" [config]=\"configSignal()\" [hasMore]=\"hasMore()\" [disabled]=\"disabled()\" [selectionMode]=\"selectionModeSignal()\">\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 <ng-content end select=\"[end]\"></ng-content>\n </dbx-list>`;\n\nconst dbxListWrapperComponentImportsAndExports = [DbxListComponent];\n\n@NgModule({\n exports: dbxListWrapperComponentImportsAndExports,\n imports: dbxListWrapperComponentImportsAndExports\n})\nexport class DbxListWrapperComponentImportsModule {}\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 _config = new BehaviorSubject<MaybeObservableOrValue<C>>(undefined);\n private readonly _stateOverride = new BehaviorSubject<MaybeObservableOrValue<S>>(undefined);\n private readonly _selectionModeOverride = new BehaviorSubject<MaybeObservableOrValue<DbxListSelectionMode>>(undefined);\n\n private readonly _selectionModeOverrideSignal = toSignal(this._selectionModeOverride.pipe(maybeValueFromObservableOrValue()));\n\n readonly hasMore = input<Maybe<boolean>>(undefined);\n\n readonly clickItem = output<T>();\n readonly loadMore = output<void>();\n\n readonly disabled = input<Maybe<boolean>>();\n readonly selectionMode = input<Maybe<DbxListSelectionMode>>();\n readonly state = input<Maybe<ObservableOrValue<S>>>();\n\n /**\n * @deprecated use state as the input instead.\n */\n readonly deprecatedInputState$ = input<Maybe<Observable<S>>>(undefined, { alias: 'state$' });\n\n readonly selectionModeSignal: Signal<Maybe<DbxListSelectionMode>> = computed(() => {\n return this._selectionModeOverrideSignal() ?? this.selectionMode();\n });\n\n readonly currentState$ = combineLatest([this._stateOverride, toObservable(this.state), toObservable(this.deprecatedInputState$)]).pipe(\n map(([stateOverride, state, state$]) => stateOverride ?? state ?? state$),\n maybeValueFromObservableOrValue(),\n shareReplay(1)\n );\n\n readonly config$ = this._config.pipe(\n maybeValueFromObservableOrValue(),\n map((x: Maybe<C>) => (x ? this._buildListConfig(x) : undefined)),\n shareReplay(1)\n );\n\n readonly configSignal = toSignal(this.config$);\n\n constructor(initConfig: ObservableOrValue<C>) {\n this._config.next(initConfig);\n }\n\n ngOnDestroy(): void {\n this._config.complete();\n this._stateOverride.complete();\n this._selectionModeOverride.complete();\n }\n\n setState(stateObs: MaybeObservableOrValue<S>): void {\n this._stateOverride.next(stateObs);\n }\n\n setSelectionMode(selectionMode: MaybeObservableOrValue<DbxListSelectionMode>): void {\n this._selectionModeOverride.next(selectionMode);\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> {\n readonly selectionChange = output<ListSelectionState<T>>();\n\n protected override _buildListConfig(config: C): DbxListConfig<T, V> {\n const result = super._buildListConfig(config) as Configurable<DbxListConfig<T, V>>;\n result.onSelectionChange = (x) => this.selectionChange.emit(x);\n return result;\n }\n}\n\n// MARK: COMPAT\n/**\n * @deprecated update components to use DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION instead of just referencing only the template and DbxListWrapperComponentImportsModule.\n */\nexport const DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE = DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE;\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { of } from 'rxjs';\nimport { DbxWidgetDataPair } from './widget';\nimport { DbxWidgetViewComponent } from './widget.component';\nimport { AbstractDbxValueListViewItemComponent } from '../../layout/list/list.view.value.item.directive';\nimport { DbxValueAsListItem } from '../../layout/list/list.view.value';\nimport { AbstractDbxListGridViewDirective, DbxListGridViewDirectiveImportsModule, DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE } from '../../layout/list/grid/list.grid.view.directive';\nimport { DbxValueListGridViewConfig } from '../../layout/list/grid/list.grid.view.component';\nimport { provideDbxListView } from '../../layout/list/list.view';\nimport { AbstractDbxListWrapperDirective, DbxListWrapperComponentImportsModule, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE } from '../../layout/list/list.directive';\n\nexport type DbxWidgetDataPairWithSelection = DbxValueAsListItem<DbxWidgetDataPair>;\n\n/**\n * Demo DbxSelectionListWrapperDirective\n */\n@Component({\n selector: 'dbx-widget-grid',\n template: DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE,\n imports: [DbxListWrapperComponentImportsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\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_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE,\n imports: [DbxListGridViewDirectiveImportsModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\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 imports: [DbxWidgetViewComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxWidgetListGridViewItemComponent extends AbstractDbxValueListViewItemComponent<DbxWidgetDataPair> {}\n","import { NgModule } from '@angular/core';\nimport { DbxWidgetViewComponent } from './widget.component';\nimport { DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent } from './widget.list.component';\n\nconst importsAndExports = [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent];\n\n/**\n * Contains components related to displaying \"widgets\" for pieces of data.\n *\n * @deprecated Import standalone components directly instead.\n *\n * @see DbxWidgetViewComponent\n * @see DbxWidgetListGridComponent\n * @see DbxWidgetListGridViewComponent\n * @see DbxWidgetListGridViewItemComponent\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 { computed, Directive, input } 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]': 'cssClassSignal()'\n },\n standalone: true\n})\nexport class DbxBarDirective {\n readonly color = input<Maybe<DbxBarColor>>();\n\n readonly cssClassSignal = computed(() => {\n const color = this.color();\n return color ? `dbx-${color}-bg` : 'dbx-bg';\n });\n}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxBarDirective } from './bar.directive';\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 @if (icon()) {\n <mat-icon class=\"button-spacer\">{{ icon() }}</mat-icon>\n }\n @if (text()) {\n <span>{{ text() }}</span>\n }\n <ng-content></ng-content>\n </dbx-bar>\n `,\n host: {\n class: 'dbx-bar-header dbx-hint'\n },\n imports: [DbxBarDirective, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxBarHeaderComponent {\n readonly text = input<Maybe<string>>();\n readonly icon = input<Maybe<string>>();\n readonly color = input<Maybe<DbxBarColor>>();\n}\n","import { Component, input, ChangeDetectionStrategy, computed } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\nimport { NgClass } from '@angular/common';\nimport { MatToolbarModule } from '@angular/material/toolbar';\n\n@Component({\n selector: 'dbx-pagebar',\n template: `\n <mat-toolbar class=\"dbx-pagebar\" [ngClass]=\"cssClassSignal()\">\n <ng-content select=\"[left]\"></ng-content>\n <span class=\"spacer\"></span>\n <ng-content select=\"[right]\"></ng-content>\n </mat-toolbar>\n `,\n imports: [NgClass, MatToolbarModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxPagebarComponent {\n readonly color = input<Maybe<DbxBarColor>>();\n\n readonly cssClassSignal = computed(() => {\n const color = this.color();\n return color ? `dbx-bar-${color}` : '';\n });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxBarDirective } from './bar.directive';\nimport { DbxBarHeaderComponent } from './bar.header.component';\nimport { DbxPagebarComponent } from './pagebar.component';\n\nconst importsAndExports = [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent];\n\n/**\n * Module for dbx-bar components.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxBarLayoutModule {}\n","import { NgStyle } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, signal } from '@angular/core';\nimport { ResizedEvent } from '../../screen/resize';\nimport { DbxResizedDirective } from '../../screen/resize.directive';\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\" [ngStyle]=\"{ '--dbx-two-block-top-height': topHeightPixelsSignal() }\">\n <div #top class=\"dbx-two-block-top\" (dbxResized)=\"viewResized($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 imports: [DbxResizedDirective, NgStyle],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxTwoBlockComponent {\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 readonly fixedTop = input<boolean>(true);\n\n readonly topHeightSignal = signal<number>(0);\n readonly topHeightPixelsSignal = computed(() => `${this.topHeightSignal()}px`);\n\n viewResized(event: ResizedEvent): void {\n const height = event.newRect.height;\n this.topHeightSignal.set(height);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoBlockComponent } from './two.block.component';\n\n/**\n * Module for block components.\n *\n * @deprecated import DbxTwoBlockComponent directly instead.\n */\n@NgModule({\n imports: [DbxTwoBlockComponent],\n exports: [DbxTwoBlockComponent]\n})\nexport class DbxBlockLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\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 @if (icon()) {\n <mat-icon>{{ icon() }}</mat-icon>\n }\n @if (header()) {\n <span class=\"title-text\">{{ header() }}</span>\n }\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 imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxCardBoxComponent {\n readonly header = input<string>();\n readonly icon = input<string>();\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Component that wraps a card box and adds content padding.\n */\n@Directive({\n selector: 'dbx-card-box-container, [dbxCardBoxContainer]',\n host: {\n class: 'd-block dbx-card-box-container'\n },\n standalone: true\n})\nexport class DbxCardBoxContainerDirective {}\n","import { DbxCardBoxContainerDirective } from './card.box.container.directive';\nimport { DbxCardBoxComponent } from './card.box.component';\nimport { NgModule } from '@angular/core';\n\nconst importsAndExports = [DbxCardBoxComponent, DbxCardBoxContainerDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 readonly reverseSizing: boolean;\n /**\n * Whether or not the right side should be shown.\n */\n readonly showRight: boolean;\n /**\n * Overrides showRight if not null.\n */\n readonly showRightOverride?: Maybe<boolean>;\n /**\n * Whether or not there is any registered right content currently.\n */\n readonly hasRight: boolean;\n /**\n * Whether or not to allow the left to fill up the screen when no right is shown.\n */\n readonly fullLeft: boolean;\n /**\n * Optional ref to use with TwoColumns that use an sref for the back button.\n */\n readonly backRef?: Maybe<SegueRef>;\n /**\n * Size of the view's total width in pixels.\n */\n readonly totalWidth?: Maybe<number>;\n /**\n * Minimum right side size allowed before hiding the left content.\n */\n readonly 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 hasRight.\n */\n readonly hasRight$ = this.state$.pipe(map((x) => x.hasRight));\n\n /**\n * Pipes the current state of showRight and showRightOverride.\n */\n readonly currentShowRight$ = this.state$.pipe(map((x) => x.showRightOverride ?? 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.showRightOverride ?? 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.showRightOverride ?? 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 * Changes the override state to show right or not.\n */\n readonly setShowRightOverride = this.updater((state, showRightOverride: Maybe<boolean>) => ({ ...state, showRightOverride }));\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 { OnDestroy, ChangeDetectionStrategy, Component, ElementRef, inject, input, effect } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { Observable, combineLatest, distinctUntilChanged, map } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxContentContainerDirective } from '../../content/content.container.directive';\nimport { isDefinedAndNotFalse, Maybe } from '@dereekb/util';\nimport { DbxResizedDirective } from '../../../screen/resize.directive';\nimport { ResizedEvent } from '../../../screen/resize';\n\nexport interface DbxTwoColumnViewState {\n readonly showRight: boolean;\n readonly showFullLeft: boolean;\n readonly hideLeftColumn: boolean;\n readonly reverseSizing: boolean;\n readonly 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 template: `\n <dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height left-column\">\n @if (!hideLeftColumnSignal() && reverseSizingSignal()) {\n <div (dbxResized)=\"viewResized($event)\"></div>\n }\n <ng-content select=\"[left]\"></ng-content>\n </dbx-content-container>\n @if (showRightSignal()) {\n <dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height right-column\">\n @if (hideLeftColumnSignal() || !reverseSizingSignal()) {\n <div (dbxResized)=\"viewResized($event)\"></div>\n }\n <ng-content select=\"[right]\"></ng-content>\n </dbx-content-container>\n }\n `,\n exportAs: 'columns',\n host: {\n class: 'dbx-two-column',\n '[class]': 'cssClassSignal()'\n },\n imports: [DbxResizedDirective, DbxContentContainerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxTwoColumnComponent extends AbstractSubscriptionDirective implements OnDestroy {\n private readonly _elementRef = inject(ElementRef);\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly reverseSizing = input<boolean>(false);\n readonly inSectionPage = input<boolean>(false);\n\n /**\n * Acts as an override to show the right column without having to use dbx-two-column-right or update the context store directly.\n */\n readonly hasRightContent = input<boolean, Maybe<boolean | ''>>(false, { transform: isDefinedAndNotFalse });\n\n readonly reverseSizing$ = this.twoColumnsContextStore.reverseSizing$;\n readonly hideLeftColumn$: Observable<boolean> = this.twoColumnsContextStore.hideLeft$;\n readonly inSectionPage$: Observable<boolean> = toObservable(this.inSectionPage);\n\n readonly showRight$: Observable<boolean> = this.twoColumnsContextStore.showRight$;\n readonly showFullLeft$: Observable<boolean> = this.twoColumnsContextStore.showFullLeft$;\n\n readonly hideLeftColumnSignal = toSignal(this.hideLeftColumn$);\n readonly reverseSizingSignal = toSignal(this.reverseSizing$);\n readonly showRightSignal = toSignal(this.showRight$);\n\n readonly cssClasses$ = combineLatest([this.showRight$, this.showFullLeft$, this.hideLeftColumn$, this.reverseSizing$, this.inSectionPage$]).pipe(\n distinctUntilChanged((prev, curr) => {\n return prev[0] === curr[0] && prev[1] === curr[1] && prev[2] === curr[2] && prev[3] === curr[3] && prev[4] === curr[4];\n }),\n map(([showRight, showFullLeft, hideLeftColumn, reverseSizing, inSectionPage]) => ({ 'right-shown': showRight, 'full-left': showFullLeft, 'hide-left-column': hideLeftColumn, 'two-column-reverse-sizing': reverseSizing, 'dbx-section-page-two': inSectionPage }))\n );\n\n readonly cssClassSignal = toSignal(this.cssClasses$);\n\n protected readonly _reverseSizingEffect = effect(\n () => {\n this.twoColumnsContextStore.setReverseSizing(this.reverseSizing());\n },\n { allowSignalWrites: true }\n );\n\n protected readonly _hasRightContentEffect = effect(\n () => {\n if (this.hasRightContent()) {\n this.twoColumnsContextStore.setHasRight(true);\n }\n },\n { allowSignalWrites: true }\n );\n\n viewResized(event: ResizedEvent): void {\n const totalWidth = (this._elementRef.nativeElement as HTMLElement).clientWidth;\n this.twoColumnsContextStore.setTotalWidth(totalWidth);\n }\n}\n","import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';\nimport { DbxTwoColumnComponent } from '../two/two.column.component';\nimport { provideTwoColumnsContext, TwoColumnsContextStore } from '../two/two.column.store';\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: provideTwoColumnsContext(),\n imports: [DbxTwoColumnComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxOneColumnComponent {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n readonly inSectionPage = input<boolean>(true);\n\n constructor() {\n this.twoColumnsContextStore.setFullLeft(true);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxOneColumnComponent } from './one.column.component';\n\n/**\n * @deprecated import DbxOneColumnComponent directly instead.\n */\n@NgModule({\n imports: [DbxOneColumnComponent],\n exports: [DbxOneColumnComponent]\n})\nexport class DbxOneColumnLayoutModule {}\n","import { Directive, OnInit, inject, output } 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 standalone: true\n})\nexport class DbxTwoColumnBackDirective extends AbstractSubscriptionDirective implements OnInit {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly dbxTwoColumnBack = output();\n\n ngOnInit(): void {\n this.sub = this.twoColumnsContextStore.back$.subscribe(() => this.dbxTwoColumnBack.emit());\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","import { Directive, effect, inject, input } from '@angular/core';\nimport { isDefinedAndNotFalse, type Maybe } from '@dereekb/util';\nimport { provideTwoColumnsContext, TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Provides a dbxTwoColumnContextStore\n */\n@Directive({\n selector: '[dbxTwoColumnContext]',\n providers: provideTwoColumnsContext(),\n standalone: true\n})\nexport class DbxTwoColumnContextDirective {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore, { self: true });\n readonly showRight = input<Maybe<boolean>, Maybe<boolean | ''>>(undefined, { transform: isDefinedAndNotFalse });\n\n protected readonly _showRightEffect = effect(\n () => {\n this.twoColumnsContextStore.setShowRightOverride(this.showRight());\n },\n { allowSignalWrites: true }\n );\n}\n","import { Directive, inject, input, effect } from '@angular/core';\nimport { isNotFalse, type Maybe } from '@dereekb/util';\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 standalone: true\n})\nexport class DbxTwoColumnFullLeftDirective {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly fullLeft = input<boolean, Maybe<boolean | ''>>(true, { alias: 'dbxTwoColumnFullLeft', transform: isNotFalse });\n\n protected readonly _fullLeftEffect = effect(\n () => {\n this._twoColumnsContextStore.setFullLeft(this.fullLeft());\n },\n { allowSignalWrites: true }\n );\n}\n","import { Directive, input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\n\n/**\n * Two Columns related component that sits at the top of the content bodies and wraps content.\n */\n@Directive({\n selector: 'dbx-two-column-head,[dbxTwoColumnHead],.dbx-two-column-head',\n host: {\n class: 'd-flex dbx-two-column-head',\n '[class.d-block]': 'block()',\n '[class.full]': 'full()'\n },\n standalone: true\n})\nexport class DbxTwoColumnColumnHeadDirective {\n readonly block = input<Maybe<boolean>>(false);\n readonly full = input<Maybe<boolean>>(false);\n}\n","import { Directive, effect, inject, input } 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 standalone: true\n})\nexport class DbxTwoColumnSrefDirective {\n private readonly _twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly dbxTwoColumnSref = input.required<Maybe<SegueRefOrSegueRefRouterLink>>();\n\n protected readonly _dbxTwoColumnSrefEffect = effect(\n () => {\n const sref = this.dbxTwoColumnSref();\n const segueRef = sref ? asSegueRef(sref) : undefined;\n this._twoColumnsContextStore.setBackRef(segueRef);\n },\n { allowSignalWrites: true }\n );\n}\n","import { Component, input } from '@angular/core';\nimport { ClickableIconAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Component that displays an anchor and a mat-button.\n */\n@Component({\n selector: 'dbx-anchor-icon',\n standalone: true,\n imports: [MatIconModule, MatButtonModule, DbxAnchorComponent],\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 readonly anchor = input<Maybe<ClickableIconAnchorLink>>();\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from './anchor.component';\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 standalone: true,\n imports: [DbxAnchorComponent],\n template: `\n <dbx-anchor [anchor]=\"anchorSignal()\">\n <ng-content></ng-content>\n </dbx-anchor>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'd-inline dbx-link'\n }\n})\nexport class DbxLinkComponent {\n readonly ref = input<Maybe<string>>();\n readonly href = input<Maybe<string>>();\n readonly anchor = input<Maybe<ClickableAnchor>>();\n\n readonly anchorSignal = computed(() => {\n const ref = this.ref();\n const href = this.href();\n let anchor = this.anchor();\n\n if (!anchor) {\n if (ref) {\n anchor = {\n ref\n };\n } else if (href) {\n anchor = {\n url: href\n };\n }\n }\n\n return anchor;\n });\n}\n","import { combineLatest, map, Observable, of, shareReplay } from 'rxjs';\nimport { Component, inject, computed, input } from '@angular/core';\nimport { ClickableAnchor, ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Component that displays an anchor and a span with the title.\n */\n@Component({\n selector: 'dbx-anchor-content',\n standalone: true,\n imports: [MatIconModule],\n template: `\n @if (iconSignal()) {\n <mat-icon class=\"dbx-icon-spacer\">{{ iconSignal() }}</mat-icon>\n }\n @if (titleSignal()) {\n <span>{{ titleSignal() }}</span>\n }\n `,\n host: {\n class: 'dbx-anchor-content'\n }\n})\nexport class DbxAnchorContentComponent {\n readonly parent = inject(DbxAnchorComponent, { optional: true });\n\n readonly inputAnchor = input<Maybe<Partial<ClickableAnchorLink>>>(undefined, { alias: 'anchor' });\n\n private readonly _inputAnchor = toObservable(this.inputAnchor);\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 anchorSignal = toSignal(this.anchor$);\n\n readonly iconSignal = computed(() => this.anchorSignal()?.icon);\n readonly titleSignal = computed(() => this.anchorSignal()?.title);\n}\n","import { NgModule } from '@angular/core';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { DbxAnchorIconComponent } from './anchor.icon.component';\nimport { DbxLinkComponent } from './anchor.link.component';\nimport { DbxAnchorContentComponent } from './anchor.content.component';\n\n/**\n * All standalone components related to anchors and links.\n */\nexport const DBX_ROUTER_ANCHOR_COMPONENTS = [DbxAnchorComponent, DbxAnchorIconComponent, DbxLinkComponent, DbxAnchorContentComponent];\n\n/**\n * Module that provides anchor and link components.\n *\n * All components are now standalone. This module is provided for backward compatibility.\n */\n@NgModule({\n imports: DBX_ROUTER_ANCHOR_COMPONENTS,\n exports: DBX_ROUTER_ANCHOR_COMPONENTS\n})\nexport class DbxRouterAnchorModule {}\n","import { computed, Directive, inject } from '@angular/core';\nimport { DbxInjectionTemplateConfig } from '@dereekb/dbx-core';\nimport { Observable, distinctUntilChanged, shareReplay, map } from 'rxjs';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Abstract implementation\n */\n@Directive()\nexport abstract class AbstractDbxSegueAnchorDirective {\n readonly parent = inject(DbxAnchorComponent);\n\n readonly anchor$ = this.parent.anchor$;\n readonly templateConfig$: Observable<DbxInjectionTemplateConfig> = this.parent.templateRef$.pipe(\n distinctUntilChanged(),\n map((templateRef) => ({\n templateRef\n })),\n shareReplay(1)\n );\n\n readonly anchorSignal = toSignal(this.anchor$, { initialValue: undefined });\n readonly templateConfigSignal = toSignal(this.templateConfig$, { initialValue: undefined });\n\n readonly targetSignal = computed(() => this.anchorSignal()?.target);\n}\n","import { NgModule } from '@angular/core';\nimport { DbxAnchorListComponent } from './anchorlist.component';\n\n/**\n * @deprecated import standalone DbxAnchorListComponent directly\n */\n@NgModule({\n imports: [DbxAnchorListComponent],\n exports: [DbxAnchorListComponent]\n})\nexport class DbxRouterAnchorListModule {}\n","import { BehaviorSubject, map, Observable, shareReplay, combineLatest, distinctUntilChanged } from 'rxjs';\nimport { Directive, OnDestroy, inject, input } from '@angular/core';\nimport { DbxValueListItem } from '../list.view.value';\nimport { addModifiers, ArrayOrValue, combineMaps, Maybe, Modifier, ModifierMap, removeModifiers } from '@dereekb/util';\nimport { MaybeObservableOrValue, maybeValueFromObservableOrValue, SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxValueListItemModifier, provideDbxValueListViewModifier } from '../list.view.value.modifier';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { transformEmptyStringInputToUndefined } from '@dereekb/dbx-core';\n\n/**\n * DbxValueListViewModifier implementation\n */\n@Directive({\n selector: 'dbxListItemModifier,[dbxListItemModifier]',\n providers: provideDbxValueListViewModifier(DbxValueListItemModifierDirective),\n standalone: true\n})\nexport class DbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListItemModifier<T, I>, OnDestroy {\n readonly inputModifiers = input<Maybe<ArrayOrValue<Modifier<I>>>, Maybe<'' | ArrayOrValue<Modifier<I>>>>(undefined, { alias: 'dbxListItemModifier', transform: transformEmptyStringInputToUndefined });\n\n private readonly _additionalModifiers = new BehaviorSubject<Maybe<ModifierMap<I>>>(undefined);\n\n readonly modifiers$ = combineLatest([this._additionalModifiers, toObservable(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._additionalModifiers.complete();\n }\n\n // MARK: Modifiers\n addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._additionalModifiers.next(addModifiers(modifiers, this._additionalModifiers.value));\n }\n\n removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._additionalModifiers.next(removeModifiers(modifiers, this._additionalModifiers.value));\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 OnDestroy {\n readonly dbxValueListItemModifier = inject(DbxValueListItemModifier<T, I>);\n\n private _currentLinkedModifiers: Maybe<ArrayOrValue<Modifier<I>>>;\n\n private readonly _modifiers = new BehaviorSubject<MaybeObservableOrValue<ArrayOrValue<Modifier<I>>>>(undefined);\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<I>>>> = this._modifiers.pipe(maybeValueFromObservableOrValue(), distinctUntilChanged());\n\n private readonly _modifiersSub = new SubscriptionObject(\n this.modifiers$.subscribe((modifiers) => {\n this._linkModifiers(modifiers);\n })\n );\n\n ngOnDestroy(): void {\n this._modifiersSub.destroy();\n this._unlinkModifiers();\n }\n\n setModifiers(modifiers: MaybeObservableOrValue<ArrayOrValue<Modifier<I>>>) {\n this._modifiers.next(modifiers);\n }\n\n private _linkModifiers(modifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._unlinkModifiers();\n\n if (modifiers) {\n this.dbxValueListItemModifier.addModifiers(modifiers);\n this._currentLinkedModifiers = modifiers;\n }\n }\n\n private _unlinkModifiers() {\n if (this._currentLinkedModifiers) {\n this.dbxValueListItemModifier.removeModifiers(this._currentLinkedModifiers);\n this._currentLinkedModifiers = undefined;\n }\n }\n}\n","import { Directive, input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, Modifier } from '@dereekb/util';\nimport { map, Observable } from 'rxjs';\nimport { DbxValueListItem } from '../../../layout/list/list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from '../../../layout/list/modifier/list.view.value.modifier.directive';\nimport { toObservable } from '@angular/core/rxjs-interop';\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 standalone: true\n})\nexport class DbxListItemAnchorModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> {\n readonly anchorForItem = input<Maybe<AnchorForValueFunction<T>>>(undefined, { alias: 'dbxListItemAnchorModifier' });\n\n readonly anchorForItemModifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = toObservable(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 constructor() {\n super();\n this.setModifiers(this.anchorForItemModifiers$);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxListItemAnchorModifierDirective } from './router.list.directive';\n\n/**\n * @deprecated import DbxValueListItemModifierDirective directly instead.\n */\n@NgModule({\n imports: [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 readonly _microQuery: MediaQueryList;\n private readonly _smallQuery: MediaQueryList;\n private readonly _tabletQuery: MediaQueryList;\n private readonly _largeQuery: MediaQueryList;\n\n private readonly _tinyHeightQuery: MediaQueryList;\n\n private readonly _updateWidth = new Subject<void>();\n private readonly _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, 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 { Component, ChangeDetectionStrategy, inject, input } from '@angular/core';\nimport { ClickableAnchorLinkSegueRef, DbxRouterService, AbstractTransitionDirective, DbxButtonDisplay } from '@dereekb/dbx-core';\nimport { HorizontalConnectionPos } from '@angular/cdk/overlay';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { DbxAnchorComponent } from '../anchor';\nimport { MatTabLink, MatTabNav, MatTabNavPanel } from '@angular/material/tabs';\nimport { DbxIconButtonComponent } from '../../../button/icon/icon.button.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatMenu, MatMenuItem, MatMenuTrigger } from '@angular/material/menu';\nimport { NgClass } from '@angular/common';\n\ninterface NavAnchorLink {\n readonly selected: boolean;\n readonly 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 host: {\n class: 'dbx-navbar'\n },\n imports: [DbxAnchorComponent, MatTabNav, MatTabNavPanel, MatTabLink, DbxIconButtonComponent, MatIconModule, MatMenu, MatMenuItem, NgClass, MatMenuTrigger],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxNavbarComponent extends AbstractTransitionDirective {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n private readonly _dbxRouterService = inject(DbxRouterService);\n\n /**\n * Whether or not to show the dropwdown caret for a menu\n */\n readonly showMenuCaret = input<boolean>(false);\n\n readonly navAlign = input<HorizontalConnectionPos>('center');\n\n readonly icon = input<Maybe<string>>();\n readonly defaultIcon = input<Maybe<string>>('menu');\n readonly defaultText = input<Maybe<string>>();\n readonly mode = input<Maybe<NavbarMode>>();\n readonly buttonMode = input<NavbarButtonMode>('menu');\n readonly breakpoint = input<ScreenMediaWidthType>('large');\n readonly anchors = input<Maybe<ClickableAnchorLinkSegueRef[]>>([]);\n\n readonly isBreakpointActive$ = this._dbxScreenMediaService.isBreakpointActive(toObservable(this.breakpoint));\n\n readonly mode$ = combineLatest([toObservable(this.mode), this.isBreakpointActive$]).pipe(\n map(([inputMode, breakpointActive]) => {\n return breakpointActive ? (inputMode ?? 'bar') : 'button';\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly anchors$: Observable<NavAnchorLink[]> = combineLatest([toObservable(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 shareReplay(1)\n );\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$ = toObservable(this.buttonMode).pipe(\n switchMap((x) => (x === 'menu' ? this.selectedAnchor$ : this.nextRotateAnchor$)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonDisplay$: Observable<DbxButtonDisplay> = combineLatest([toObservable(this.defaultIcon), toObservable(this.icon), toObservable(this.defaultText), this.buttonNavAnchor$, this.mode$]).pipe(\n map(([defaultIcon, icon, defaultText, selectedAnchor, mode]) => {\n let content: DbxButtonDisplay;\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 modeSignal = toSignal(this.mode$);\n readonly anchorsSignal = toSignal(this.anchors$);\n readonly buttonDisplaySignal = toSignal(this.buttonDisplay$);\n readonly hasNoAnchorsSignal = toSignal(this.hasNoAnchors$);\n readonly nextRotateAnchorSignal = toSignal(this.nextRotateAnchor$);\n\n // TODO: potentially make the caret depending on the current button display.\n}\n","@switch (modeSignal()) {\n @case ('bar') {\n <!-- Bar -->\n <nav mat-tab-nav-bar [tabPanel]=\"tabPanel\" [attr.mat-align-tabs]=\"navAlign()\">\n @for (x of anchorsSignal(); track x.anchor) {\n <dbx-anchor [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n }\n </nav>\n <mat-tab-nav-panel #tabPanel></mat-tab-nav-panel>\n }\n @default {\n <!-- Button -->\n @switch (buttonMode()) {\n <!-- Menu -->\n @case ('menu') {\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplaySignal()\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchorsSignal()\">\n @if (showMenuCaret()) {\n <mat-icon>arrow_drop_down</mat-icon>\n }\n </dbx-icon-button>\n <mat-menu #menu>\n @for (x of anchorsSignal(); track x) {\n <dbx-anchor [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n @if (x.anchor.icon) {\n <mat-icon>{{ x.anchor.icon }}</mat-icon>\n }\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n }\n </mat-menu>\n }\n <!-- Rotate -->\n @case ('rotate') {\n <dbx-anchor [anchor]=\"nextRotateAnchorSignal()?.anchor\">\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplaySignal()\" [disabled]=\"hasNoAnchorsSignal()\"></dbx-icon-button>\n </dbx-anchor>\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxNavbarComponent } from './navbar.component';\n\n/**\n * @deprecated import DbxNavbarComponent directly\n */\n@NgModule({\n imports: [DbxNavbarComponent],\n exports: [DbxNavbarComponent]\n})\nexport class DbxRouterNavbarModule {}\n","export enum SideNavDisplayMode {\n NONE = 'none',\n MOBILE = 'mobile',\n ICON = 'icon',\n FULL = 'full'\n}\n","import { Component, input, viewChild, inject, ChangeDetectionStrategy, computed, effect } from '@angular/core';\nimport { MatDrawerMode, MatSidenav, MatSidenavModule } from '@angular/material/sidenav';\nimport { DbxScreenMediaService } from '../../../screen/screen.service';\nimport { AbstractTransitionWatcherDirective, ClickableAnchorLinkTree } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { SideNavDisplayMode } from './sidenav';\nimport { NgClass } from '@angular/common';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { DbxAnchorListComponent } from '../anchorlist/anchorlist.component';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { distinctUntilChanged, map, Observable, shareReplay } from 'rxjs';\n\nexport interface DbxSidenavSidebarState {\n readonly mode: SideNavDisplayMode;\n readonly drawer: MatDrawerMode;\n readonly 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 template: `\n <mat-sidenav-container class=\"dbx-sidenav\" [ngClass]=\"sizeCssClassSignal()\">\n <mat-sidenav class=\"dbx-sidenav-nav\" [disableClose]=\"disableBackdropSignal()\" [mode]=\"drawerSignal()\">\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 `,\n imports: [NgClass, MatSidenavModule, DbxRouterAnchorModule, DbxAnchorListComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSidenavComponent extends AbstractTransitionWatcherDirective {\n private readonly _screenMediaService = inject(DbxScreenMediaService);\n\n readonly sidenav = viewChild.required<MatSidenav>(MatSidenav);\n\n readonly anchors = input<Maybe<ClickableAnchorLinkTree[]>>();\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 distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly modeSignal = toSignal(this.mode$);\n readonly disableBackdropSignal = computed(() => this.modeSignal() !== SideNavDisplayMode.MOBILE);\n readonly sizeCssClassSignal = computed(() => `dbx-sidenav-${this.modeSignal()}`);\n\n readonly stateSignal = computed(() => {\n const mode = this.modeSignal();\n\n let drawer: MatDrawerMode = 'over';\n let open: boolean = false;\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\n readonly drawerSignal = computed(() => this.stateSignal().drawer);\n\n protected readonly _stateSignalToggleEffect = effect(() => {\n const state = this.stateSignal();\n\n if (state.open != null) {\n this._toggleNav(state.open, true);\n }\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?: Maybe<boolean>, forced = false): void {\n toggleOpen = toggleOpen ?? !this.sidenav().opened;\n\n const mode = this.stateSignal().mode;\n\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","import { Component, input, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { toSignal } from '@angular/core/rxjs-interop';\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 @if (showMenuButtonSignal()) {\n <button class=\"dbx-sidenav-button\" mat-icon-button (click)=\"toggleNav()\" aria-label=\"open sidenav button\">\n <mat-icon>{{ sidenavMenuIcon() }}</mat-icon>\n </button>\n }\n `,\n imports: [MatIconModule, MatButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\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 readonly showMenuButtonSignal = toSignal(this.showMenuButton$, { initialValue: false });\n\n readonly sidenavMenuIcon = input<string, Maybe<string>>(DEFAULT_DBX_SIDENAV_MENU_ICON, {\n transform: (value: Maybe<string>) => value || DEFAULT_DBX_SIDENAV_MENU_ICON\n });\n\n toggleNav() {\n this.parent.toggleNav();\n }\n}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxPagebarComponent } from '../../../layout/bar/pagebar.component';\nimport { DbxSidenavButtonComponent } from './sidenav.button.component';\nimport { DbxButtonSpacerDirective } from '../../../button/button.spacer.directive';\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 imports: [DbxPagebarComponent, DbxSidenavButtonComponent, DbxButtonSpacerDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSidenavPagebarComponent extends DbxPagebarComponent {\n readonly sidenavMenuIcon = input<Maybe<string>>();\n}\n","import { switchMap, shareReplay, map, of } from 'rxjs';\nimport { Component, input, ChangeDetectionStrategy, 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';\nimport { NgClass } from '@angular/common';\nimport { DbxSidenavPagebarComponent } from './sidenav.pagebar.component';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\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 <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 `,\n host: {\n class: 'd-block',\n '[class.dbx-pagebar-hide]': 'hidePagebarSignal()'\n },\n imports: [NgClass, DbxSidenavPagebarComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSidenavPageComponent {\n readonly parent = inject(DbxSidenavComponent);\n\n readonly color = input<Maybe<DbxBarColor>>();\n readonly sidenavMenuIcon = input<Maybe<string>>();\n readonly mobileOnly = input<boolean>(false);\n\n readonly mobileOnly$ = toObservable(this.mobileOnly);\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 readonly hidePagebarSignal = toSignal(this.hidePagebar$, { initialValue: false });\n}\n","import { input, Directive, inject, computed, Signal } from '@angular/core';\nimport { AbstractIfDirective } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, asArray, filterMaybeArrayValues } from '@dereekb/util';\nimport { shareReplay, switchMap, distinctUntilChanged, map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * Structural directive that displays the content if the Sidenav has a specific sidenav size.\n */\n@Directive({\n selector: '[dbxIfSidenavDisplayMode]',\n standalone: true\n})\nexport class DbxIfSidenavDisplayModeDirective extends AbstractIfDirective {\n readonly dbxSidenavComponent = inject(DbxSidenavComponent);\n\n readonly modes = input<Maybe<ArrayOrValue<SideNavDisplayMode | string>>>(undefined, { alias: 'dbxIfSidenavDisplayMode' });\n\n readonly modesSetSignal: Signal<Set<SideNavDisplayMode>> = computed(() => {\n const modes = this.modes();\n return new Set(filterMaybeArrayValues(asArray(modes as SideNavDisplayMode)));\n });\n\n readonly modes$ = toObservable(this.modesSetSignal);\n\n readonly show$ = this.modes$.pipe(\n switchMap((modes) => {\n return this.dbxSidenavComponent.mode$.pipe(map((mode) => modes.has(mode)));\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly showSignal = toSignal(this.show$, { initialValue: false });\n}\n","import { NgModule } from '@angular/core';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { DbxSidenavPagebarComponent } from './sidenav.pagebar.component';\nimport { DbxSidenavPageComponent } from './sidenav.page.component';\nimport { DbxSidenavButtonComponent } from './sidenav.button.component';\nimport { DbxIfSidenavDisplayModeDirective } from './sidenav.ifdisplaymode.directive';\n\nconst importsAndExports = [DbxIfSidenavDisplayModeDirective, DbxSidenavComponent, DbxSidenavButtonComponent, DbxSidenavPagebarComponent, DbxSidenavPageComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\n\n/**\n * SegueAnchor implementation for Angular Router.\n */\n@Component({\n templateUrl: './anchor.component.html',\n imports: [DbxInjectionComponent],\n standalone: true\n})\nexport class DbxAngularRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {}\n","<a class=\"dbx-anchor-a\" [attr.target]=\"targetSignal()\">\n <dbx-injection [template]=\"templateConfigSignal()\"></dbx-injection>\n</a>\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxAngularRouterSegueAnchorComponent } from './anchor.component';\n\n/**\n * Provides a DbxRouterWebProviderConfig that configures the app to use Angular Router for anchors.\n *\n * @returns EnvironmentProviders\n */\nexport function provideDbxRouterWebAngularRouterProviderConfig(): EnvironmentProviders {\n const config: DbxRouterWebProviderConfig = {\n anchorSegueRefComponent: {\n componentClass: DbxAngularRouterSegueAnchorComponent\n }\n };\n\n const providers: Provider[] = [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: config\n }\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { Component, computed } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\nimport { Obj, StateOrName, TransitionOptions, UIRouterModule } from '@uirouter/angular';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { toSignal } from '@angular/core/rxjs-interop';\n\n/**\n * SegueAnchor implementation for UIRouter.\n */\n@Component({\n templateUrl: './anchor.component.html',\n imports: [UIRouterModule, DbxInjectionComponent],\n standalone: true\n})\nexport class DbxUIRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {\n private readonly _parentAnchorSignal = toSignal(this.parent.anchor$, { initialValue: undefined });\n\n readonly uiSrefSignal = computed<StateOrName>(() => (this._parentAnchorSignal()?.ref ?? '') as StateOrName);\n readonly uiParamsSignal = computed<Obj | undefined>(() => this._parentAnchorSignal()?.refParams);\n readonly uiOptionsSignal = computed<TransitionOptions>(() => this._parentAnchorSignal()?.refOptions ?? ({} as TransitionOptions));\n}\n","<a class=\"dbx-anchor-a dbx-anchor-sref\" [attr.target]=\"targetSignal()\" [uiSref]=\"uiSrefSignal()\" [uiParams]=\"uiParamsSignal()\" [uiOptions]=\"uiOptionsSignal()\" uiSrefActive=\"dbx-anchor-active\" uiSrefActiveEq=\"dbx-anchor-active-eq\">\n <dbx-injection [template]=\"templateConfigSignal()\"></dbx-injection>\n</a>\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxUIRouterSegueAnchorComponent } from './anchor.component';\n\n/**\n * Provides a DbxRouterWebProviderConfig that configures the app to use UIRouter for anchors.\n \n * @returns EnvironmentProviders\n */\nexport function provideDbxRouterWebUiRouterProviderConfig(): EnvironmentProviders {\n const config: DbxRouterWebProviderConfig = {\n anchorSegueRefComponent: {\n componentClass: DbxUIRouterSegueAnchorComponent\n }\n };\n\n const providers: Provider[] = [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: config\n }\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { ChangeDetectionStrategy, Component, computed, effect, inject, input } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { delay, Observable } from 'rxjs';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { type Maybe } from '@dereekb/util';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxTwoColumnColumnHeadDirective } from './two.column.head.directive';\nimport { DbxAnchorComponent } from '../../../router';\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 template: `\n <dbx-two-column-head [block]=\"block()\" [full]=\"full()\">\n <!-- Back Buttons -->\n @if (showBackSignal()) {\n <button mat-icon-button class=\"back-button\" (click)=\"backClicked()\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n }\n @if (alternativeBackRefSignal()) {\n <dbx-anchor [anchor]=\"alternativeBackRefSignal()\">\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 }\n @if (header()) {\n <span class=\"right-nav-title\">{{ header() }}</span>\n }\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 `,\n host: {\n class: 'dbx-two-column-right d-block'\n },\n imports: [DbxTwoColumnColumnHeadDirective, MatButtonModule, MatIconModule, DbxAnchorComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxTwoColumnRightComponent {\n readonly twoColumnsContextStore = inject(TwoColumnsContextStore);\n\n readonly full = input<boolean>(false);\n readonly header = input<Maybe<string>>();\n readonly block = input<Maybe<boolean>>();\n\n readonly showBack = input<boolean>(true);\n\n readonly alternativeBackRef$: Observable<Maybe<ClickableAnchor>> = this.twoColumnsContextStore.backRef$;\n readonly alternativeBackRefSignal = toSignal(this.alternativeBackRef$.pipe(delay(0)));\n\n /**\n * Minimum right-side width allowed in pixels.\n */\n readonly minRightWidth = input<Maybe<number>>();\n\n protected readonly _setMinRightWidthEffect = effect(\n () => {\n this.twoColumnsContextStore.setMinRightWidth(this.minRightWidth());\n },\n { allowSignalWrites: true }\n );\n\n readonly showBackSignal = computed(() => {\n const showBack = this.showBack();\n const alternativeBackRef = this.alternativeBackRefSignal();\n\n // show the back signal if true and there is no alternative back\n return showBack && !alternativeBackRef;\n });\n\n constructor() {\n this.twoColumnsContextStore.setHasRight(true);\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","import { Directive, 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 standalone: true\n})\nexport class DbxTwoColumnSrefShowRightDirective extends AbstractSubscriptionDirective {\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 constructor() {\n super();\n this.sub = this._twoColumnsContextStore.setShowRight(this.showRight$) as Subscription;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoColumnSrefDirective } from './two.column.sref.directive';\nimport { DbxTwoColumnComponent } from './two.column.component';\nimport { DbxTwoColumnColumnHeadDirective } from './two.column.head.directive';\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 { DbxTwoColumnSrefShowRightDirective } from './two.column.sref.showright.directive';\n\nconst importsAndExports = [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadDirective, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxTwoColumnLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from './two';\nimport { DbxOneColumnComponent } from './one';\n\nconst importsAndExports = [DbxOneColumnComponent, DbxTwoColumnLayoutModule];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxColumnLayoutModule {}\n","import { computed, 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]': `classConfig()`\n },\n standalone: true\n})\nexport class DbxContentBorderDirective {\n readonly color = input<DbxThemeColor>('background');\n readonly classConfig = computed(() => `dbx-content-border-${this.color()}`);\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 standalone: true\n})\nexport class DbxContentBoxDirective {\n readonly elevate = input<boolean>(true);\n readonly wide = input<boolean>(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 standalone: true\n})\nexport class DbxContentDirective {}\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 standalone: true\n})\nexport class DbxContentElevateDirective {\n readonly elevate = input<boolean>(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 standalone: true\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 standalone: true\n})\nexport class DbxContentPitDirective {\n readonly scrollable = input<Maybe<boolean>>();\n}\n","import { DbxContentElevateDirective } from './content.elevate.directive';\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 importsAndExports = [\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: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxContentLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { MatToolbarModule } from '@angular/material/toolbar';\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 imports: [MatToolbarModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFlagComponent {\n readonly color = input<ThemePalette>('accent');\n}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { DbxFlagComponent } from './flag.component';\nimport { Maybe } from '@dereekb/util';\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 imports: [DbxFlagComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxFlagPromptComponent {\n readonly color = input<ThemePalette>('accent');\n readonly text = input<Maybe<string>>();\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFlagComponent } from './flag.component';\nimport { DbxFlagPromptComponent } from './flag.prompt.component';\n\nconst importsAndExports = [DbxFlagComponent, DbxFlagPromptComponent];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxFlagLayoutModule {}\n","import { ScreenMediaWidthType } from '../../screen/screen';\nimport { DbxScreenMediaService } from '../../screen/screen.service';\nimport { Directive, inject, input } from '@angular/core';\nimport { map, distinctUntilChanged, shareReplay } from 'rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { type Maybe } from '@dereekb/util';\nimport { toSignal, toObservable } from '@angular/core/rxjs-interop';\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-relative]': 'relative()',\n '[class.dbx-flex-group-small]': 'smallSignal()'\n },\n standalone: true\n})\nexport class DbxFlexGroupDirective extends AbstractSubscriptionDirective {\n private readonly _dbxScreenMediaService = inject(DbxScreenMediaService);\n\n readonly content = input<boolean>(true);\n readonly breakToColumn = input<boolean>(false);\n readonly relative = input<boolean>(false);\n\n readonly breakpoint = input<ScreenMediaWidthType, Maybe<ScreenMediaWidthType>>('tablet', { transform: (x) => x ?? 'tablet' });\n\n readonly isSmallScreen$ = this._dbxScreenMediaService.isBreakpointActive(toObservable(this.breakpoint)).pipe(\n map((x) => !x),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly smallSignal = toSignal(this.isSmallScreen$, { initialValue: false });\n}\n","import { Directive, input, computed } 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]': 'cssClassSignal()'\n },\n standalone: true\n})\nexport class DbxFlexSizeDirective {\n readonly dbxFlexSize = input.required<DbxFlexSize>();\n readonly cssClassSignal = computed(() => `dbx-flex-${this.dbxFlexSize()}`);\n}\n","import { NgModule } from '@angular/core';\nimport { DbxFlexGroupDirective } from './flex.group.directive';\nimport { DbxFlexSizeDirective } from './flex.size.directive';\n\nconst importsAndExports = [DbxFlexGroupDirective, DbxFlexSizeDirective];\n\n/**\n * @deprecated Import DbxFlexGroupDirective and DbxFlexSizeDirective instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxFlexLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { MatIconModule } from '@angular/material/icon';\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 @if (icon()) {\n <div class=\"left\">\n <mat-icon>{{ icon() }}</mat-icon>\n </div>\n }\n <div class=\"right\">\n @if (header()) {\n <h3 class=\"dbx-icon-item-header\">{{ header() }}</h3>\n }\n <div class=\"right-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n `,\n standalone: true,\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxIconItemComponent {\n readonly icon = input<Maybe<string>>();\n readonly header = input<Maybe<string>>();\n}\n","import { ChangeDetectionStrategy, 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';\nimport { MatIconModule } from '@angular/material/icon';\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 standalone: true,\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush\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 { InjectionToken, Component, ChangeDetectionStrategy, inject } from '@angular/core';\nimport { PrimativeKey } from '@dereekb/util';\nimport { DbxListTitleGroupData } from './list.view.value.group.title';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgClass } from '@angular/common';\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 * The default group header component.\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 @if (icon) {\n <mat-icon class=\"item-icon\">{{ icon }}</mat-icon>\n }\n <div class=\"item-left\">\n <div class=\"mat-subtitle-2\">{{ title }}</div>\n @if (hint) {\n <div class=\"item-details\">{{ hint }}</div>\n }\n </div>\n </div>\n `,\n imports: [NgClass, MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-list-title-group-header'\n },\n standalone: true\n})\nexport class DbxListTitleGroupHeaderComponent<O extends PrimativeKey, D extends DbxListTitleGroupData<O>> extends AbstractDbxListTitleGroupHeaderComponent<O, D> {\n readonly icon = this.data.icon;\n readonly title = this.data.title;\n readonly hint = this.data.hint;\n}\n","import { Directive, input, StaticProvider } from '@angular/core';\nimport { DbxValueListItem, DbxValueListItemConfig } from '../list.view.value';\nimport { DbxValueListItemGroup, DbxValueListViewGroupDelegate, DbxValueListViewGroupValuesFunction, provideDbxValueListViewGroupDelegate } from './list.view.value.group';\nimport { map } from 'rxjs';\nimport { Building, Maybe, PrimativeKey, compareWithMappedValuesFunction, makeValuesGroupMap } from '@dereekb/util';\nimport { DbxListTitleGroupData, DbxListTitleGroupTitleDelegate } from './list.view.value.group.title';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { DbxListTitleGroupHeaderComponent, DBX_LIST_TITLE_GROUP_DATA } from './list.view.value.group.title.header.component';\n\n/**\n * Delegate used to for grouping DbxValueListItemConfig<T, I> values.\n */\n@Directive({\n selector: '[dbxListTitleGroup]',\n providers: [provideDbxValueListViewGroupDelegate(DbxListTitleGroupDirective)],\n standalone: true\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 readonly delegate = input<Maybe<DbxListTitleGroupTitleDelegate<T, O, D, I>>>(undefined, { alias: 'dbxListTitleGroup' });\n\n private readonly _delegate$ = toObservable(this.delegate);\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","import { Directive, input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from '../list.view.value';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { transformEmptyStringInputToUndefined } from '@dereekb/dbx-core';\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,[dbxListItemDisableRippleModifier]',\n standalone: true\n})\nexport class DbxListItemDisableRippleModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n readonly disableRippleForItem = input<Maybe<DbxValueListItemDecisionFunction<T>>, Maybe<'' | DbxValueListItemDecisionFunction<T>>>(undefined, { alias: 'dbxListItemDisableRippleModifier', transform: transformEmptyStringInputToUndefined });\n\n readonly disableRippleForItemModifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = toObservable(this.disableRippleForItem).pipe(\n map((x) => x ?? DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION),\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 constructor() {\n super();\n this.setModifiers(this.disableRippleForItemModifiers$);\n }\n}\n","import { Directive, input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from '../list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { transformEmptyStringInputToUndefined } from '@dereekb/dbx-core';\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,[dbxListItemIsSelectedModifier]',\n standalone: true\n})\nexport class DbxListItemIsSelectedModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n readonly listItemIsSelected = input.required<Maybe<DbxValueListItemDecisionFunction<T>>, Maybe<'' | DbxValueListItemDecisionFunction<T>>>({ alias: 'dbxListItemIsSelectedModifier', transform: transformEmptyStringInputToUndefined });\n\n readonly listItemIsSelectedModifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = toObservable(this.listItemIsSelected).pipe(\n map((x) => x ?? DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION),\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 constructor() {\n super();\n this.setModifiers(this.listItemIsSelectedModifiers$);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { DbxListItemDisableRippleModifierDirective } from './list.view.value.modifier.ripple.directive';\nimport { DbxListItemIsSelectedModifierDirective } from './list.view.value.modifier.selection.directive';\n\nconst importsAndExports = [DbxValueListItemModifierDirective, DbxListItemDisableRippleModifierDirective, DbxListItemIsSelectedModifierDirective];\n\n/**\n * Exports all dbx-list modifier-related directives.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxListModifierModule {}\n","import { ChangeDetectionStrategy, 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 standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxListEmptyContentComponent {}\n","import { NgModule } from '@angular/core';\nimport { DbxListEmptyContentComponent } from './list.content.empty.component';\nimport { DbxListTitleGroupDirective } from './group/list.view.value.group.title.directive';\nimport { DbxListViewMetaIconComponent } from './meta/list.view.meta.icon.component';\nimport { DbxListModifierModule } from './modifier/list.modifier.module';\n\nconst importsAndExports = [\n // directives\n DbxListEmptyContentComponent,\n DbxListViewMetaIconComponent,\n DbxListTitleGroupDirective,\n DbxListModifierModule\n];\n\n/**\n * Contains all supporting list components and directives.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxListModule {}\n","import { map, shareReplay, distinctUntilChanged, of } from 'rxjs';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { MatListModule, MatSelectionList, MatSelectionListChange } from '@angular/material/list';\nimport { DbxListSelectionMode, 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, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION } from './list.view.value.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxInjectionComponent } from '@dereekb/dbx-core';\nimport { toSignal } from '@angular/core/rxjs-interop';\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// MARK: DbxSelectionValueListViewContentComponent\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 @switch (selectionMode()) {\n @case ('view') {\n <dbx-list-view-content [items]=\"items()\"></dbx-list-view-content>\n }\n @default {\n <mat-selection-list [disabled]=\"disabledSignal()\" [multiple]=\"multiple()\" (selectionChange)=\"matSelectionChanged($event)\">\n @for (item of items(); track trackByFunctionSignal()($index, item)) {\n <mat-list-option class=\"dbx-list-view-item\" [selected]=\"item.selected\" [disabled]=\"item.disabled\" [value]=\"item.itemValue\" (click)=\"onClickValue(item.itemValue)\">\n @if (item.icon) {\n <mat-icon matListItemIcon>{{ item.icon }}</mat-icon>\n }\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n </mat-list-option>\n }\n </mat-selection-list>\n }\n }\n `,\n host: {\n class: 'dbx-list-view dbx-selection-list-view'\n },\n imports: [MatSelectionList, MatListModule, MatIconModule, DbxInjectionComponent, DbxValueListViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxSelectionValueListViewContentComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListViewContentComponent<T, I> {\n readonly multiple = input<Maybe<boolean>>();\n readonly selectionMode = input<Maybe<DbxListSelectionMode>>();\n readonly trackByFunctionSignal = toSignal(this.trackBy$, { initialValue: DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION });\n\n constructor() {\n super();\n if (!this.dbxListView.selectionChange) {\n throw new Error('DbxSelectionValueListViewContentComponent(): Parent dbxListView is missing a required selectionChange output ref.');\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 // asserted in constructor\n this.dbxListView.selectionChange?.emit({ items });\n }\n}\n\n// MARK: DbxSelectionValueListViewComponent\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]=\"selectionModeSignal()\" [multiple]=\"multipleSignal()\" [items]=\"itemsSignal()\"></dbx-selection-list-view-content>\n `,\n standalone: true,\n imports: [DbxSelectionValueListViewContentComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\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$ = (this.dbxListView.selectionMode$ ?? of('select')).pipe(\n map((x) => x ?? 'select'),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly selectionModeSignal = toSignal(this.selectionMode$, { initialValue: 'select' as DbxListSelectionMode });\n readonly multipleSignal = computed(() => this.config()?.multiple ?? true);\n}\n","import { NgModule } from '@angular/core';\nimport { DbxListComponent } from './list.component';\nimport { DbxListEmptyContentComponent } from './list.content.empty.component';\nimport { DbxSelectionValueListViewContentComponent, DbxSelectionValueListViewComponent } from './list.view.value.selection.component';\nimport { DbxValueListViewContentComponent, DbxValueListViewComponent, DbxValueListViewContentGroupComponent } from './list.view.value.component';\nimport { DbxValueListGridViewContentComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent } from './grid/list.grid.view.component';\nimport { DbxListModifierModule } from './modifier/list.modifier.module';\nimport { DbxListTitleGroupDirective } from './group';\n\nconst importsAndExports = [\n // modules\n DbxListModifierModule,\n // components/directives\n DbxListEmptyContentComponent,\n DbxListComponent,\n DbxValueListViewComponent,\n DbxValueListViewContentComponent,\n DbxValueListViewContentGroupComponent,\n DbxValueListGridSizeDirective,\n DbxValueListGridViewComponent,\n DbxValueListGridViewContentComponent,\n DbxListTitleGroupDirective,\n DbxSelectionValueListViewComponent,\n DbxSelectionValueListViewContentComponent\n];\n\n/**\n * @deprecated Import the standalone modules instead or DbxListModule.\n *\n * @see DbxListModule\n * @see DbxListComponent\n * @see DbxListEmptyContentComponent\n * @see DbxValueListViewComponent\n * @see DbxValueListViewContentComponent\n * @see DbxValueListViewContentGroupComponent\n * @see DbxValueListGridSizeDirective\n * @see DbxValueListGridViewComponent\n * @see DbxValueListGridViewContentComponent\n * @see DbxListViewMetaIconComponent\n * @see DbxListTitleGroupDirective\n * @see DbxListTitleGroupHeaderComponent\n * @see DbxSelectionValueListViewComponent\n * @see DbxSelectionValueListViewContentComponent\n * @see DbxValueListItemModifierDirective\n * @see DbxListItemDisableRippleModifierDirective\n * @see DbxListItemIsSelectedModifierDirective\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\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 { Directive, NgModule, output } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\nimport { DbxSelectionValueListViewComponent } from './list.view.value.selection.component';\n\nexport const DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE = '<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>';\n\n@NgModule({\n exports: [DbxSelectionValueListViewComponent],\n imports: [DbxSelectionValueListViewComponent]\n})\nexport class DbxSelectionValueListViewComponentImportsModule {}\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 readonly selectionChange = output<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\n// MARK: Compat\n/**\n * @deprecated use DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE instead and import DbxSelectionValueListViewComponentImportsModule\n */\nexport const DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE = DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE;\n","import { Observable } from 'rxjs';\nimport { ListLoadingState, MaybeObservableOrValue } from '@dereekb/rxjs';\nimport { forwardRef, OutputRef, Provider, Type } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxListSelectionMode } from './list.view';\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 abstract readonly currentState$: Observable<Maybe<S>>;\n abstract readonly loadMore?: OutputRef<void>;\n /**\n * Sets/overrides the state for this view.\n */\n abstract setState(state: MaybeObservableOrValue<S>): void;\n /**\n * Sets/overrides the selection mode for this view.\n */\n abstract setSelectionMode(selectionMode: MaybeObservableOrValue<DbxListSelectionMode>): 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, output, ChangeDetectionStrategy } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { MatButtonModule } from '@angular/material/button';\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\">\n @switch (showIntro()) {\n @case (true) {\n <div 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 }\n @case (false) {\n <ng-content></ng-content>\n }\n }\n </div>\n `,\n standalone: true,\n imports: [MatButtonModule],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxIntroActionSectionComponent {\n readonly hint = input<Maybe<string>>();\n readonly showIntro = input<Maybe<boolean>>(true);\n readonly action = input<Maybe<string>>();\n\n readonly showAction = output<void>();\n\n actionClicked() {\n this.showAction.emit();\n }\n}\n","import { ChangeDetectionStrategy, Component, computed, 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]=\"headerConfigSignal().h ?? 2\" [header]=\"headerConfigSignal().header\" [onlyHeader]=\"headerConfigSignal().onlyHeader\" [icon]=\"headerConfigSignal().icon\" [hint]=\"headerConfigSignal().hint\" [hintInline]=\"headerConfigSignal().hintInline\">\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]': 'classConfig()'\n },\n standalone: true,\n imports: [DbxSectionHeaderComponent],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSectionPageComponent extends DbxSectionHeaderComponent {\n readonly scroll = input<DbxSectionPageScrollLockedMode>('all');\n\n readonly classConfig = computed(() => {\n return `dbx-section-page-scroll-${this.scroll()}`;\n });\n\n constructor() {\n super();\n this.hintInlineDefault.set(true);\n }\n}\n","import { NgModule } from '@angular/core';\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 importsAndExports = [DbxSectionHeaderComponent, DbxSectionPageComponent, DbxSectionComponent, DbxSubSectionComponent, DbxIntroActionSectionComponent];\n\n/**\n * Module for dbx-section components.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxSectionLayoutModule {}\n","import { Component, input, ChangeDetectionStrategy } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { Maybe } from '@dereekb/util';\n\n// TODO: Incomplete component. Requires styling.\n\n@Component({\n selector: 'dbx-step',\n template: `\n <div class=\"step-section\">\n <div class=\"step-section-header\">\n <span class=\"step\">{{ step() }}.</span>\n @if (done()) {\n <mat-icon class=\"done-check\">done</mat-icon>\n }\n <span class=\"text\">{{ text() }}</span>\n @if (hint()) {\n <p class=\"hint\">{{ hint() }}</p>\n }\n </div>\n <div class=\"step-section-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-step',\n '[class.done]': 'done()'\n },\n imports: [MatIconModule],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxStepComponent {\n readonly done = input<boolean>();\n readonly step = input<number>();\n readonly text = input<Maybe<string>>();\n readonly hint = input<Maybe<string>>();\n}\n","import { NgModule } from '@angular/core';\nimport { DbxStepComponent } from './step.component';\n\nconst importsAndExports = [DbxStepComponent];\n\n/**\n * @deprecated import DbxStepComponent directly instead.\n */\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxStepLayoutModule {}\n","import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { splitCommaSeparatedStringToSet, type Maybe } from '@dereekb/util';\nimport { Observable, distinctUntilChanged, map, shareReplay, delay, combineLatest } from 'rxjs';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, OnDestroy, OnInit, inject, signal, input } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { DbxStyleConfig, DbxStyleClass, DbxStyleName } from './style';\nimport { toObservable } from '@angular/core/rxjs-interop';\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]': 'outputStyleClassSignal()'\n },\n standalone: true\n})\nexport class DbxSetStyleDirective extends AbstractSubscriptionDirective implements OnDestroy, OnInit {\n private readonly _styleService = inject(DbxStyleService);\n\n /**\n * The input DbxStyleName to style the host element with.\n */\n readonly dbxSetStyle = input<DbxStyleName>();\n\n /**\n * The input suffixes to allow to be applied to the\n */\n readonly suffixes = input<Maybe<string>>(undefined);\n\n /**\n * The output style class to apply to the host element.\n */\n readonly outputStyleClassSignal = signal<DbxStyleClass>('');\n\n readonly style$ = toObservable(this.dbxSetStyle).pipe(filterMaybe());\n readonly suffixes$ = toObservable(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 styleClass$: Observable<DbxStyleClass> = this._styleService.getStyleClassWithConfig(this.config$);\n\n ngOnInit(): void {\n this._styleService.setConfig(this.config$);\n this.sub = this.styleClass$.pipe(delay(0)).subscribe((style) => {\n this.outputStyleClassSignal.set(style);\n });\n }\n}\n","import { Directive, Renderer2, inject, signal, OnInit } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\nimport { DbxStyleClass } from './style';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Used to style the <body> element of the document document using the style provided by DbxStyleService.\n */\n@Directive({\n selector: '[dbxStyleBody]',\n host: {\n '[class]': 'styleClassNameSignal()'\n },\n standalone: true\n})\nexport class DbxStyleBodyDirective extends AbstractSubscriptionDirective implements OnInit {\n private readonly _styleService = inject(DbxStyleService);\n private readonly _renderer = inject(Renderer2);\n\n private readonly _styleClassNameSignal = signal<Maybe<DbxStyleClass>>(undefined);\n readonly styleClassNameSignal = this._styleClassNameSignal.asReadonly();\n\n ngOnInit(): void {\n this.sub = this._styleService.styleClassName$.pipe(delay(0)).subscribe((newClassStyleToApply) => {\n const currentStyle = this._styleClassNameSignal();\n\n if (currentStyle) {\n this._renderer.removeClass(document.body, currentStyle);\n }\n\n if (newClassStyleToApply) {\n this._renderer.addClass(document.body, newClassStyleToApply);\n }\n\n this._styleClassNameSignal.set(newClassStyleToApply);\n });\n }\n}\n","import { computed, 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]': 'cssClassSignal()'\n },\n standalone: true\n})\nexport class DbxColorDirective {\n readonly dbxColor = input<Maybe<DbxThemeColor | ''>>();\n readonly cssClassSignal = computed(() => dbxColorBackground(this.dbxColor()));\n}\n","import { DbxSetStyleDirective } from './style.set.directive';\nimport { DbxStyleDirective } from './style.directive';\nimport { NgModule } from '@angular/core';\nimport { DbxSpacerDirective } from './spacer.directive';\nimport { DbxStyleBodyDirective } from './style.body.directive';\nimport { DbxColorDirective } from './style.color.directive';\n\nconst importsAndExports = [DbxColorDirective, DbxSpacerDirective, DbxStyleDirective, DbxSetStyleDirective, DbxStyleBodyDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxStyleLayoutModule {}\n","import { EnvironmentProviders, makeEnvironmentProviders, Provider } from '@angular/core';\nimport { DBX_STYLE_DEFAULT_CONFIG_TOKEN, DbxStyleService } from './style.service';\nimport { DbxStyleConfig } from './style';\n\n/**\n * Configuration for provideDbxStyleService().\n */\nexport interface ProvideDbxStyleServiceConfig {\n /**\n * Default style configuration, if applicable.\n *\n * If null, the DbxStyleService will not have a default style\n */\n readonly dbxStyleConfig: DbxStyleConfig | null;\n}\n\n/**\n * Provides EnvironmentalProviders for a DbxStyleService and the default config.\n *\n * @returns\n */\nexport function provideDbxStyleService(config: ProvideDbxStyleServiceConfig): EnvironmentProviders {\n const { dbxStyleConfig } = config;\n\n const providers: Provider[] = [\n // config\n {\n provide: DBX_STYLE_DEFAULT_CONFIG_TOKEN,\n useValue: dbxStyleConfig\n },\n // service\n DbxStyleService\n ];\n\n return makeEnvironmentProviders(providers);\n}\n","import { ChangeDetectionStrategy, 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 @if (address()) {\n @if (address()?.name) {\n <div class=\"addr-name\">{{ address()?.name }}</div>\n }\n @if (address()?.phone) {\n <div class=\"addr-phone\">{{ address()?.phone }}</div>\n }\n @if (address()?.line1) {\n <div class=\"addr-line1\">{{ address()?.line1 }}</div>\n }\n @if (address()?.line2) {\n <div class=\"addr-line2\">{{ address()?.line2 }}</div>\n }\n <div class=\"city-state-zip\">\n <span class=\"addr-city\">{{ address()?.city }}</span>\n @if (address()?.state || address()?.zip) {\n <span>, </span>\n }\n <span class=\"addr-state\">{{ address()?.state }} </span>\n <span class=\"addr-zip\">{{ address()?.zip }}</span>\n </div>\n }\n `,\n host: {\n class: 'dbx-us-address'\n },\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxUnitedStatesAddressComponent {\n\n readonly address = input<Maybe<Partial<UnitedStatesAddressWithContact>>>()\n\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { type Maybe } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-detail-block-header',\n template: `\n @if (icon()) {\n <mat-icon>{{ icon() }}</mat-icon>\n }\n @if (header()) {\n <span class=\"dbx-detail-block-header-label\">{{ header() }}</span>\n }\n @if (alignHeader()) {\n <div class=\"dbx-flex dbx-w100\">\n <span class=\"dbx-spacer\"></span>\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n </div>\n } @else {\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n }\n <ng-template #content>\n <ng-content></ng-content>\n </ng-template>\n `,\n host: {\n class: 'dbx-detail-block-header',\n '[class]': '{ \"dbx-detail-block-header-no-icon\": !icon(), \"dbx-detail-block-header-align\": alignHeader() }'\n },\n imports: [MatIconModule, NgTemplateOutlet],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDetailBlockHeaderComponent {\n readonly icon = input<Maybe<string>>();\n readonly header = input<Maybe<string>>();\n readonly alignHeader = input<boolean>(false);\n}\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { type Maybe } from '@dereekb/util';\nimport { DbxDetailBlockHeaderComponent } from './detail.block.header.component';\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()\" [alignHeader]=\"alignHeader()\">\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 imports: [DbxDetailBlockHeaderComponent],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxDetailBlockComponent {\n readonly icon = input<Maybe<string>>();\n readonly header = input<Maybe<string>>();\n readonly alignHeader = input<boolean>(false);\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 standalone: true\n})\nexport class DbxIconSpacerDirective {}\n","import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\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]=\"linkifiedBodySignal()\"></span>\n `,\n host: {\n class: 'dbx-i dbx-linkify'\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class DbxLinkifyComponent {\n private readonly sanitizer = inject(DomSanitizer);\n\n readonly text = input<Maybe<string>>();\n\n readonly linkifiedTextSignal = computed(() => {\n const text = this.text();\n return text ? linkifyStr(text, { defaultProtocol: 'https', target: { url: '_blank' } }) : undefined;\n });\n\n readonly linkifiedBodySignal = computed(() => {\n const linkifiedText = this.linkifiedTextSignal();\n return linkifiedText ? this.sanitizer.bypassSecurityTrustHtml(linkifiedText) : undefined;\n });\n}\n","import { Directive, input, computed } 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]': 'styleSignal()'\n },\n standalone: true\n})\nexport class DbxChipDirective {\n readonly small = input<Maybe<boolean>>();\n readonly block = input<Maybe<boolean>>();\n\n readonly styleSignal = computed(() => {\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 { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatTooltipModule } from '@angular/material/tooltip';\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 @if (chips()) {\n <mat-chip-listbox class=\"dbx-text-chips-listbox\">\n @for (chip of chips(); track chip.text) {\n <mat-chip-option [selected]=\"chip.selected ?? defaultSelection()\" [color]=\"chip.color\" [matTooltip]=\"chip.tooltip!\" matTooltipPosition=\"above\">\n {{ chip.text }}\n </mat-chip-option>\n }\n </mat-chip-listbox>\n }\n `,\n imports: [MatChipsModule, MatTooltipModule],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxTextChipsComponent<T = unknown> {\n readonly defaultSelection = input<Maybe<boolean>>();\n readonly chips = input<Maybe<TextChip<T>[]>>();\n}\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxColorDirective } from '../style/style.color.directive';\nimport { DbxThemeColor } from '../style/style';\n\n/**\n * Configuration for the DbxNumberWithLimitComponent.\n */\nexport interface NumberWithLimit<T extends number = number> {\n /**\n * Number to display, if applicable.\n */\n readonly value: T;\n /**\n * Limit to display, if applicable.\n */\n readonly limit?: Maybe<T>;\n /**\n * Function to format the input number(s) to a string before being displayed, if applicable.\n */\n readonly formatNumber?: Maybe<(number: T) => string>;\n /**\n * Prefix to add before the value\n */\n readonly prefix?: Maybe<string>;\n /**\n * Suffix to add after the value\n */\n readonly suffix?: Maybe<string>;\n}\n\n@Component({\n selector: 'dbx-number-with-limit',\n template: `\n <span class=\"dbx-number-with-limit\" [class]=\"{ 'dbx-number-with-limit-rounded': rounded() }\" [dbxColor]=\"colorSignal()\">\n <span>{{ prefixSignal() }}</span>\n <span>{{ valueSignal() }}</span>\n @if (hasLimitSignal()) {\n <span class=\"dbx-number-with-limit-divider\">/</span>\n <span>{{ limitSignal() }}</span>\n }\n <span>{{ suffixSignal() }}</span>\n </span>\n `,\n imports: [DbxColorDirective],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxNumberWithLimitComponent<T extends number = number> {\n readonly number = input<NumberWithLimit<T>>();\n readonly rounded = input<boolean>();\n\n readonly valueSignal = computed(() => {\n const number = this.number();\n return number?.formatNumber ? number.formatNumber(number.value) : number?.value;\n });\n\n readonly limitSignal = computed(() => {\n const number = this.number();\n return number?.limit != null ? (number?.formatNumber ? number.formatNumber(number.limit) : number?.limit) : undefined;\n });\n\n readonly hasLimitSignal = computed(() => {\n return this.number()?.limit != null;\n });\n\n readonly prefixSignal = computed(() => {\n return this.number()?.prefix;\n });\n\n readonly suffixSignal = computed(() => {\n return this.number()?.suffix;\n });\n\n readonly colorSignal = computed(() => {\n const number = this.number();\n let color: Maybe<DbxThemeColor>;\n\n if (number != null) {\n const { value, limit } = number;\n\n if (limit != null) {\n if (value > limit) {\n color = 'warn';\n } else if (value === limit) {\n color = 'notice';\n } else {\n const ratio = limit === 0 ? 1 : value / limit;\n\n if (ratio > 0.8) {\n color = 'notice';\n } else {\n color = 'ok';\n }\n }\n }\n }\n\n return color;\n });\n}\n","import { NgModule } from '@angular/core';\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';\nimport { DbxNumberWithLimitComponent } from './number.limit.component';\n\nconst importsAndExports = [DbxUnitedStatesAddressComponent, DbxNumberWithLimitComponent, DbxChipDirective, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxLabelBlockComponent, DbxLinkifyComponent, DbxTextChipsComponent, DbxIconSpacerDirective];\n\n@NgModule({\n imports: importsAndExports,\n exports: importsAndExports\n})\nexport class DbxTextModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxSectionLayoutModule } from './section/section.layout.module';\nimport { DbxListLayoutModule } from './list/list.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 { 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, DbxListLayoutModule, DbxSectionLayoutModule, DbxStyleLayoutModule, DbxTextModule]\n})\nexport class DbxLayoutModule {}\n","import { EnvironmentProviders, Provider, makeEnvironmentProviders } from '@angular/core';\nimport { DbxScreenMediaService, DbxScreenMediaServiceConfig, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG } from './screen.service';\n\n/**\n * Configuration for provideDbxScreenMediaService().\n */\nexport interface ProvideDbxScreenMediaServiceConfig {\n readonly config?: DbxScreenMediaServiceConfig;\n}\n\n/**\n * Creates EnvironmentProviders for providing DbxScreenMediaService and its configuration.\n *\n * @param config Configuration\n * @returns EnvironmentProviders\n */\nexport function provideDbxScreenMediaService(config: ProvideDbxScreenMediaServiceConfig = {}): EnvironmentProviders {\n const screenConfig = config.config ?? DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG;\n\n const providers: Provider[] = [\n // config\n {\n provide: DbxScreenMediaServiceConfig,\n useValue: screenConfig\n },\n // service\n DbxScreenMediaService\n ];\n\n return makeEnvironmentProviders(providers);\n}\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":["importsAndExports","i1","i4","i2","i2.DbxButtonComponent","i3","i1.DbxButtonComponent","i2.DbxButtonSpacerDirective","DbxActionUIRouterTransitionSafetyDirective","DbxModelStateActions.dbxModelResetState","fromObjectModuleConfig.stateFeatureKey","fromObjectModuleConfig.reducer","onDbxModel.DbxModelStateModelActions.emitObjectViewEvent","fromDbxModel.featureKey","fromDbxModel.reducers","i1.DbxListComponent","i2.DbxValueListGridViewComponent"],"mappings":"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"}
|