@dereekb/dbx-web 9.23.20 → 9.23.21

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.
@@ -1 +1 @@
1
- {"version":3,"file":"dereekb-dbx-web.mjs","sources":["../../../../packages/dbx-web/src/lib/layout/style/spacer.directive.ts","../../../../packages/dbx-web/src/lib/button/progress/button.progress.config.ts","../../../../packages/dbx-web/src/lib/button/progress/base.progress.button.directive.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.html","../../../../packages/dbx-web/src/lib/button/button.component.ts","../../../../packages/dbx-web/src/lib/button/button.spacer.component.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.html","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.default.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.generator.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.service.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.directive.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.component.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.module.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.html","../../../../packages/dbx-web/src/lib/button/progress/button.progress.module.ts","../../../../packages/dbx-web/src/lib/button/button.module.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/abstract.dialog.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.close.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.footer.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.action.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.service.ts","../../../../packages/dbx-web/src/lib/layout/style/style.set.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.body.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.ts","../../../../packages/dbx-web/src/lib/layout/style/style.color.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.position.strategy.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.store.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.directive.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.ts","../../../../packages/dbx-web/src/lib/keypress/keydown.listener.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.header.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.scroll.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.html","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.ref.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.service.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.directive.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.component.ts","../../../../packages/dbx-web/src/lib/keypress/keypress.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.controls.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.ts","../../../../packages/dbx-web/src/lib/router/provider/router.provider.config.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.component.html","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.list.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.icon.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.link.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.content.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.module.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.menu.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.html","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.segue.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/router.list.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/list.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.ts","../../../../packages/dbx-web/src/lib/screen/screen.service.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.html","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ts","../../../../packages/dbx-web/src/lib/screen/screen.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.component.html","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.html","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.button.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.pagebar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.page.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.directive.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.header.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/content/content.elevate.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.border.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.container.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.box.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.page.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.pit.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.layout.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/index.ts","../../../../packages/dbx-web/src/lib/router/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/angular.router.module.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/uirouter/uirouter.router.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.list.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.module.ts","../../../../packages/dbx-web/src/lib/layout/block/two.block.component.ts","../../../../packages/dbx-web/src/lib/layout/block/block.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.component.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.container.component.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.store.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.back.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.component.html","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.context.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.full.left.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.head.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.html","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.showright.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/column.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.prompt.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.group.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.size.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/item/item.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/item/item.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.content.empty.component.ts","../../../../packages/dbx-web/src/lib/error/error.widget.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/label.component.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.component.ts","../../../../packages/dbx-web/src/lib/error/error.component.html","../../../../packages/dbx-web/src/lib/loading/loading-progress.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.html","../../../../packages/dbx-web/src/lib/loading/loading.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.html","../../../../packages/dbx-web/src/lib/layout/list/list.directive.ts","../../../../packages/dbx-web/src/lib/error/error.action.directive.ts","../../../../packages/dbx-web/src/lib/error/error.api.ts","../../../../packages/dbx-web/src/lib/error/error.loading.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/address.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.header.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.component.ts","../../../../packages/dbx-web/src/lib/layout/text/form.description.component.ts","../../../../packages/dbx-web/src/lib/layout/text/hint.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/note.component.ts","../../../../packages/dbx-web/src/lib/layout/text/notice.component.ts","../../../../packages/dbx-web/src/lib/layout/text/ok.component.ts","../../../../packages/dbx-web/src/lib/layout/text/success.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/warn.component.ts","../../../../packages/dbx-web/src/lib/layout/text/text.module.ts","../../../../packages/dbx-web/src/lib/error/error.module.ts","../../../../packages/dbx-web/src/lib/error/state.ts","../../../../packages/dbx-web/src/lib/loading/loading.action.directive.ts","../../../../packages/dbx-web/src/lib/loading/loading.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.selection.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ripple.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.grid.view.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.track.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.grid.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.item.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.wrapper.ts","../../../../packages/dbx-web/src/lib/layout/section/section.header.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.intro.component.ts","../../../../packages/dbx-web/src/lib/layout/section/subsection.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.page.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/step/step.component.ts","../../../../packages/dbx-web/src/lib/layout/step/step.component.html","../../../../packages/dbx-web/src/lib/layout/step/step.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.position.strategy.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/abstract.popup.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.buttons.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.service.ts","../../../../packages/dbx-web/src/lib/action/key.trigger.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.component.html","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.dialog.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.directive.ts","../../../../packages/dbx-web/src/lib/action/action.confirm.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.box.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.page.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.button.confirm.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.module.ts","../../../../packages/dbx-web/src/lib/action/action.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.module.ts","../../../../packages/dbx-web/src/lib/interaction/interaction.module.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.module.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.dialog.component.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.directive.ts","../../../../packages/dbx-web/src/lib/action/transition/action.transition.module.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/model.actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/model.module.config.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/index.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.view.storage.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.service.ts","../../../../packages/dbx-web/src/lib/extension/model/state/effects/tracker.effects.ts","../../../../packages/dbx-web/src/lib/extension/model/model.module.ts","../../../../packages/dbx-web/src/lib/extension/model/model.state.service.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.ts","../../../../packages/dbx-web/src/lib/extension/model/model.types.service.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.service.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.directive.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.list.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.module.ts","../../../../packages/dbx-web/src/lib/util/cdk.ts","../../../../packages/dbx-web/src/lib/dbx-web.module.ts","../../../../packages/dbx-web/src/dereekb-dbx-web.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'dbx-spacer, [dbxSpacer]',\n host: {\n class: 'dbx-spacer'\n }\n})\nexport class DbxSpacerDirective {}\n","import { InjectionToken } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxProgressButtonOptions {\n working?: boolean;\n text?: string;\n spinnerText?: string;\n buttonColor?: ThemePalette;\n spinnerColor?: ThemePalette;\n barColor?: ThemePalette;\n raised?: boolean;\n stroked?: boolean;\n flat?: boolean;\n fab?: boolean;\n /**\n * Whether or not to render as an icon button.\n */\n iconOnly?: boolean;\n spinnerSize?: number;\n spinnerRatio?: number;\n mode?: ProgressSpinnerMode;\n value?: number;\n fullWidth?: boolean;\n disabled?: boolean;\n /**\n * @deprecated use buttonIcon instead.\n */\n icon?: DbxProgressButtonIcon;\n type?: string;\n customStyle?: { [key: string]: string };\n customClass?: string;\n /**\n * Custom spinner color. Overrides the normal spinner color if provided.\n */\n customSpinnerColor?: Maybe<string>;\n buttonIcon?: DbxProgressButtonIcon;\n id?: string;\n}\n\nexport interface DbxProgressButtonIcon {\n color?: ThemePalette;\n fontIcon?: string;\n fontSet?: string;\n inline?: boolean;\n svgIcon?: string;\n customClass?: string;\n}\n\nexport interface DbxProgressButtonTargetedConfig extends DbxProgressButtonOptions {\n id?: string;\n}\n\nexport type DbxProgressButtonGlobalConfig = DbxProgressButtonTargetedConfig[];\n\nexport const DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG = new InjectionToken<DbxProgressButtonGlobalConfig>('DbxMatProgressButtonGlobalConfig');\n","import { ChangeDetectorRef, OnDestroy, OnInit, Optional, Directive, Input, Output, HostListener, EventEmitter, Inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Observable, shareReplay, map, BehaviorSubject, combineLatest, first, distinctUntilChanged } from 'rxjs';\nimport { DbxProgressButtonGlobalConfig, DbxProgressButtonOptions, DbxProgressButtonTargetedConfig, DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG } from './button.progress.config';\n\n@Directive()\nexport abstract class AbstractProgressButtonDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private _computedOptions: Maybe<DbxProgressButtonOptions> = undefined;\n\n private _working = new BehaviorSubject<boolean>(false);\n private _disabled = new BehaviorSubject<boolean>(false);\n\n private _buttonId = new BehaviorSubject<Maybe<string>>(undefined);\n private _options = new BehaviorSubject<Maybe<DbxProgressButtonOptions>>(undefined);\n\n readonly globalOptions$: Observable<Maybe<DbxProgressButtonOptions>> = this._buttonId.pipe(map((buttonId: Maybe<string>) => (buttonId ? this.globalConfig.find((config: DbxProgressButtonTargetedConfig) => config.id === buttonId) : undefined)));\n\n readonly options$: Observable<DbxProgressButtonOptions> = combineLatest([this._options, this.globalOptions$, this._working, this._disabled]).pipe(\n map(([options, globalConfig, working, disabled]) => {\n let completeOptions: Maybe<DbxProgressButtonOptions>;\n\n if (options || globalConfig) {\n completeOptions = {\n ...globalConfig,\n ...options,\n working: options?.working || working,\n disabled: options?.disabled || disabled\n };\n\n completeOptions.buttonIcon = completeOptions.buttonIcon || completeOptions.icon;\n }\n\n return completeOptions;\n }),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Output()\n readonly btnClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n constructor(@Optional() @Inject(DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG) private globalConfig: DbxProgressButtonGlobalConfig = [], readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.options$.subscribe((options) => {\n this._computedOptions = options;\n safeMarkForCheck(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._working.complete();\n this._disabled.complete();\n this._buttonId.complete();\n this._options.complete();\n }\n\n @HostListener('click', ['$event'])\n public handleClick(event: MouseEvent): void {\n this.options$.pipe(first()).subscribe((options) => {\n if (!options.disabled && !options.working) {\n this.btnClick.emit(event);\n event.stopImmediatePropagation();\n }\n });\n }\n\n get customSpinnerStyle() {\n const customSpinnerColor = (this._computedOptions as DbxProgressButtonOptions).customSpinnerColor;\n return customSpinnerColor ? { stroke: customSpinnerColor } : undefined;\n }\n\n @Input()\n get options(): DbxProgressButtonOptions {\n return this._computedOptions as DbxProgressButtonOptions;\n }\n\n set options(options: DbxProgressButtonOptions) {\n this._options.next(options);\n }\n\n @Input()\n set buttonId(buttonId: string) {\n this._buttonId.next(buttonId);\n }\n\n @Input()\n set working(working: boolean) {\n this._working.next(working);\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled.next(disabled);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewChild } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './base.progress.button.directive';\n\n@Component({\n selector: 'dbx-spinner-button',\n templateUrl: './spinner.button.component.html',\n styleUrls: ['./spinner.button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSpinnerButtonComponent extends AbstractProgressButtonDirective {\n @ViewChild('button', { static: true, read: ElementRef })\n readonly buttonRef!: ElementRef<HTMLElement>;\n\n get showText() {\n return !(this.options.fab || this.options.iconOnly);\n }\n\n calcSpinnerSize() {\n const options = this.options;\n const elem = this.buttonRef?.nativeElement;\n const height = elem.clientHeight;\n\n let size;\n\n if (options) {\n if (options.fab || options.iconOnly) {\n size = height;\n } else {\n size = options.spinnerSize;\n }\n }\n\n if (!size) {\n const minimumSpinnerSize = 18;\n const spinnerRatio = options.spinnerRatio ?? 0.33;\n const targetSpinnerSize = height * Math.min(1, spinnerRatio);\n size = Math.min(height, Math.max(minimumSpinnerSize, targetSpinnerSize));\n }\n\n return size;\n }\n}\n","<button class=\"dbx-spinner-button\" #button mat-button [type]=\"options.type\" [color]=\"options.buttonColor\" [class.working]=\"options.working\" [class.fullWidth]=\"options.fullWidth\" [class.mat-raised-button]=\"options.raised\" [class.mat-stroked-button]=\"options.stroked\" [class.mat-flat-button]=\"options.flat\" [class.mat-icon-button]=\"options.iconOnly\" [class.mat-fab]=\"options.fab\" [ngClass]=\"options.customClass!\" [ngStyle]=\"options.customStyle!\" [disabled]=\"options.working || options.disabled\">\n <ng-container *ngIf=\"showText\">\n <ng-container *ngIf=\"options.buttonIcon\">\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!options.buttonIcon.fontSet\" [class.working]=\"options.working && !options.disabled\" [ngClass]=\"options.buttonIcon.customClass!\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <span class=\"button-text\" [class.working]=\"options.working && !options.disabled\">\n {{ options.text }}\n <ng-content></ng-content>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!showText && options.buttonIcon\">\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\" [inline]=\"options.fab && options.buttonIcon.inline!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <mat-spinner class=\"spinner\" *ngIf=\"options.working && !options.disabled\" [diameter]=\"calcSpinnerSize()\" [color]=\"options.spinnerColor!\" [mode]=\"options.mode!\" [value]=\"options.value!\" [ngStyle]=\"customSpinnerStyle!\" [ngClass]=\"{ 'dbx-spinner-custom': customSpinnerStyle! }\" [class.working]=\"options.working && !options.disabled\"></mat-spinner>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { provideDbxButton, AbstractDbxButtonDirective } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxProgressButtonOptions } from './progress/button.progress.config';\n\nexport enum DbxButtonDisplayType {\n RAISED,\n STROKED,\n FLAT,\n ICON_ONLY\n}\n\n/**\n * Complex button that supports loading states.\n */\n@Component({\n selector: 'dbx-button',\n template: `\n <dbx-spinner-button class=\"page-button\" (btnClick)=\"clickButton()\" [options]=\"btnOptions\">\n <ng-content></ng-content>\n </dbx-spinner-button>\n `,\n providers: provideDbxButton(DbxButtonComponent)\n})\nexport class DbxButtonComponent extends AbstractDbxButtonDirective {\n @Input()\n type?: DbxButtonDisplayType;\n\n @Input()\n get raised(): boolean {\n return this.type === DbxButtonDisplayType.RAISED;\n }\n\n set raised(raised: boolean) {\n if (raised) {\n this.type = DbxButtonDisplayType.RAISED;\n }\n }\n\n @Input()\n get stroked(): boolean {\n return this.type === DbxButtonDisplayType.STROKED;\n }\n\n set stroked(stroked: boolean) {\n if (stroked) {\n this.type = DbxButtonDisplayType.STROKED;\n }\n }\n\n @Input()\n get flat(): boolean {\n return this.type === DbxButtonDisplayType.FLAT;\n }\n\n set flat(flat: boolean) {\n if (flat) {\n this.type = DbxButtonDisplayType.FLAT;\n }\n }\n\n @Input()\n get iconOnly(): boolean {\n return this.type === DbxButtonDisplayType.ICON_ONLY;\n }\n\n set iconOnly(iconOnly: boolean) {\n if (iconOnly) {\n this.type = DbxButtonDisplayType.ICON_ONLY;\n }\n }\n\n @Input()\n public color: ThemePalette = 'primary';\n\n @Input()\n public customButtonColor: Maybe<string>;\n\n @Input()\n public customTextColor: Maybe<string>;\n\n @Input()\n public customSpinnerColor: Maybe<string>;\n\n public get btnOptions(): DbxProgressButtonOptions {\n const buttonIcon = this.icon\n ? {\n fontIcon: this.icon\n }\n : undefined;\n\n const customStyle = {} as {\n [key: string]: string;\n };\n\n if (this.customButtonColor) {\n customStyle['background'] = this.customButtonColor;\n }\n\n if (this.customTextColor) {\n customStyle['color'] = this.customTextColor;\n }\n\n const customSpinnerColor: Maybe<string> = this.customSpinnerColor ?? this.customTextColor;\n const disabled = !this.working && this.disabled; // Only disabled if we're not working, in order to show the animation.\n\n const isIconOnlyButton = buttonIcon && !this.text;\n\n return {\n fab: false,\n working: this.working,\n buttonIcon,\n customStyle,\n customClass: 'dbx-button ' + (isIconOnlyButton ? 'dbx-button-no-text' : ''),\n text: this.text ?? '',\n buttonColor: this.color,\n barColor: 'accent',\n raised: this.raised,\n stroked: this.stroked,\n flat: this.flat,\n iconOnly: this.iconOnly,\n mode: 'indeterminate',\n spinnerColor: this.color === 'primary' ? 'accent' : 'primary',\n customSpinnerColor,\n disabled\n };\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Button spacer directive.\n */\n@Directive({\n selector: 'dbx-button-spacer,[dbxButtonSpacer]',\n host: {\n class: 'dbx-button-spacer d-inline'\n }\n})\nexport class DbxButtonSpacerDirective {}\n","import { OnInit, Component, Inject, OnDestroy, AfterViewInit } from '@angular/core';\nimport { filterMaybe, LoadingStateType } from '@dereekb/rxjs';\nimport { distinctUntilChanged, Observable, shareReplay, BehaviorSubject, switchMap, startWith, Subject, of, filter, map } from 'rxjs';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarActionConfig } from './action.snackbar';\nimport { DbxActionContextSourceReference, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport ms from 'ms';\n\n/**\n * Component for a snackbar that contains an action.\n */\n@Component({\n templateUrl: './action.snackbar.component.html'\n})\nexport class DbxActionSnackbarComponent extends AbstractSubscriptionDirective implements OnInit, AfterViewInit, OnDestroy {\n private _durationTimeout = new Subject<void>();\n private _actionRef = new BehaviorSubject<Maybe<DbxActionContextSourceReference>>(undefined);\n\n readonly value$ = of(0); // value passed to the action.\n readonly sourceInstance$ = this._actionRef.pipe(\n filterMaybe(),\n map((x) => x?.sourceInstance)\n );\n readonly complete$ = this.sourceInstance$.pipe(\n switchMap((x) => x.isSuccess$),\n startWith(false),\n shareReplay(1)\n );\n readonly loadingStateType$ = this.sourceInstance$.pipe(\n switchMap((x) => x.loadingStateType$),\n startWith(LoadingStateType.IDLE),\n shareReplay(1)\n );\n readonly snackbarStatusClass$: Observable<string> = this.loadingStateType$.pipe(\n map((x) => {\n let classes = 'dbx-action-snackbar-';\n\n switch (x) {\n case LoadingStateType.ERROR:\n classes += 'error';\n break;\n case LoadingStateType.SUCCESS:\n classes += 'success';\n break;\n default:\n classes += 'idle';\n break;\n }\n\n return classes;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly button: Maybe<string>;\n\n get action() {\n return this.data.action;\n }\n\n get hasAction(): boolean {\n return Boolean(this._actionRef.value);\n }\n\n get message(): Maybe<string> {\n return this.data.message;\n }\n\n get actionConfig(): Maybe<DbxActionSnackbarActionConfig> {\n return this.data.action;\n }\n\n constructor(readonly snackbar: MatSnackBarRef<DbxActionSnackbarComponent>, @Inject(MAT_SNACK_BAR_DATA) readonly data: DbxActionSnackbarDisplayConfig) {\n super();\n this.button = this.data.action?.button ?? this.data.button;\n this._actionRef.next(this.data.action?.reference);\n }\n\n ngOnInit(): void {\n // Subscribe and close if the duration is up and the action state is idle.\n this.sub = this._durationTimeout\n .pipe(\n switchMap(() => this.loadingStateType$),\n filter((x) => x === LoadingStateType.IDLE)\n )\n .subscribe(() => {\n this.dismiss();\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._actionRef.value?.destroy();\n this._actionRef.complete();\n this._durationTimeout.complete();\n }\n\n ngAfterViewInit(): void {\n // Responsible for hiding itself if it has an action.\n if (this.hasAction) {\n setTimeout(() => {\n this._durationTimeout.next();\n }, this.action?.duration ?? ms('10s'));\n }\n }\n\n dismissAfterActionCompletes = (): void => {\n this.snackbar._dismissAfter(ms('3s'));\n };\n\n dismiss = (): void => {\n this.snackbar.dismiss();\n };\n}\n","<div class=\"dbx-action-snackbar\" [ngClass]=\"(snackbarStatusClass$ | async)!\">\n <ng-container [ngSwitch]=\"complete$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <dbx-spacer></dbx-spacer>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n <ng-container *ngIf=\"hasAction\">\n <dbx-action [dbxActionValueStream]=\"value$\" [dbxActionSource]=\"sourceInstance$ | async\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n </ng-container>\n </ng-container>\n</div>\n","import { DbxActionSnackbarEventMakeConfig } from './action.snackbar.service';\n\nexport const DBX_ACTION_SNACKBAR_DEFAULTS: DbxActionSnackbarEventMakeConfig = {\n create: {\n loading: {\n message: 'Creating...'\n },\n success: {\n button: 'Ok',\n message: 'Created'\n },\n error: {\n button: 'X',\n message: 'Create Failed'\n }\n },\n save: {\n loading: {\n message: 'Saving...'\n },\n success: {\n button: 'Ok',\n message: 'Saved'\n },\n error: {\n button: 'X',\n message: 'Save Failed'\n }\n },\n merge: {\n loading: {\n message: 'Merging...'\n },\n success: {\n button: 'Ok',\n message: 'Merged'\n },\n error: {\n button: 'X',\n message: 'Merge Failed'\n }\n },\n delete: {\n loading: {\n message: 'Deleting...'\n },\n success: {\n button: 'Ok',\n message: 'Deleted'\n },\n error: {\n button: 'X',\n message: 'Delete Failed'\n }\n },\n cancel: {\n loading: {\n message: 'Cancelling...'\n },\n success: {\n button: 'Ok',\n message: 'Canceled'\n },\n error: {\n button: 'X',\n message: 'Cancel Failed'\n }\n },\n restore: {\n loading: {\n message: 'Restoring...'\n },\n success: {\n button: 'Ok',\n message: 'Restored'\n },\n error: {\n button: 'X',\n message: 'Restore Failed'\n }\n },\n refresh: {\n loading: {\n message: 'Refreshing...'\n },\n success: {\n button: 'Ok',\n message: 'Refreshed'\n },\n error: {\n button: 'X',\n message: 'Refresh Failed'\n }\n },\n do: {\n loading: {\n message: 'Doing...'\n },\n success: {\n button: 'Ok',\n message: 'Done'\n },\n error: {\n button: 'X',\n message: 'Failed'\n }\n }\n};\n","import { DbxActionContextSourceReference } from '@dereekb/dbx-core';\nimport { Milliseconds, Maybe, GetterOrValue, getValueFromGetter, Getter } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent } from './action.snackbar';\n\nexport interface DbxActionSnackbarGeneratorInput<T = unknown, O = unknown> {\n event: DbxActionSnackbarEvent<O>;\n undo?: Maybe<DbxActionSnackbarGeneratorUndoInput<T, O>>;\n}\n\nexport type DbxActionSnackbarGeneratorUndoInput<T = unknown, O = unknown> = Getter<DbxActionContextSourceReference<T, O>> | DbxActionSnackbarGeneratorUndoInputConfig<T, O>;\n\nexport interface DbxActionSnackbarGeneratorUndoInputConfig<T = unknown, O = unknown> {\n duration?: Milliseconds;\n getUndoAction: Getter<DbxActionContextSourceReference<T, O>>;\n}\n\nexport type DbxActionSnackbarDisplayConfigGeneratorFunction = <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\nexport interface DbxMakeActionSnackbarGeneratorConfiguration {\n idle?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n loading?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n success?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n error?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n}\n\nexport interface DbxMakeActionSnackbarGeneratorEventConfiguration extends Omit<DbxActionSnackbarDisplayConfig, 'action'> {\n /**\n * Sets the undo action text. If undefined, will default to 'undo'\n */\n undoButtonText?: string;\n}\n\n/**\n * Creates a DbxActionSnackbarDisplayConfigGeneratorFunction from the input config.\n *\n * @param config\n * @returns\n */\nexport function makeDbxActionSnackbarDisplayConfigGeneratorFunction(config: DbxMakeActionSnackbarGeneratorConfiguration): DbxActionSnackbarDisplayConfigGeneratorFunction {\n return <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => {\n const { event, undo: undoInput } = input;\n const type = event.type;\n const eventConfigGetterOrValue = config[type];\n const eventConfig = eventConfigGetterOrValue && getValueFromGetter(eventConfigGetterOrValue);\n\n let result: Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\n if (eventConfig) {\n const { undoButtonText } = eventConfig;\n result = {\n button: eventConfig.button,\n message: eventConfig.message,\n snackbar: eventConfig.snackbar\n };\n\n if (undoInput) {\n let reference: DbxActionContextSourceReference<T, O>;\n\n if (typeof undoInput === 'object') {\n reference = undoInput.getUndoAction();\n } else {\n reference = getValueFromGetter(undoInput);\n }\n\n if (!reference) {\n console.error('Expected action source reference was not provided to undo...');\n } else {\n result.action = {\n button: undoButtonText ?? 'Undo',\n reference\n };\n }\n }\n }\n\n return result;\n };\n}\n","import { DbxActionSnackbarComponent } from './action.snackbar.component';\nimport { DBX_ACTION_SNACKBAR_DEFAULTS } from './action.snackbar.default';\nimport { Inject, Injectable, InjectionToken, Optional, Type } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { Milliseconds, Maybe, mergeObjects } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarGeneratorInput, DbxMakeActionSnackbarGeneratorConfiguration, makeDbxActionSnackbarDisplayConfigGeneratorFunction } from './action.snackbar.generator';\nimport ms from 'ms';\n\nexport const DBX_ACTION_SNACKBAR_SERVICE_CONFIG = new InjectionToken('DbxActionSnackbarServiceConfig');\n\nexport const DEFAULT_SNACKBAR_DIRECTIVE_DURATION = ms('4s');\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 config: DbxActionSnackbarServiceConfig<C>;\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 constructor(readonly matSnackBar: MatSnackBar, @Optional() @Inject(DBX_ACTION_SNACKBAR_SERVICE_CONFIG) inputConfig: Partial<DbxActionSnackbarServiceConfig<C>>) {\n inputConfig = inputConfig ?? {};\n\n this.config = {\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 }\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, Host, Input, OnInit } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarService } from './action.snackbar.service';\nimport { DbxActionSnackbarDisplayConfigGeneratorFunction, DbxActionSnackbarGeneratorInput, DbxActionSnackbarGeneratorUndoInput } from './action.snackbar.generator';\nimport { LoadingState, LoadingStateType, loadingStateType } from '@dereekb/rxjs';\n\n/**\n * Action directive that displays a snackbar when the action context hits a certain state.\n */\n@Directive({\n selector: '[dbxActionSnackbar]'\n})\nexport class DbxActionSnackbarDirective<T = unknown, O = unknown> extends AbstractSubscriptionDirective implements OnInit {\n private _snackbarFunction?: Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction>;\n\n @Input('dbxActionSnackbar')\n get snackbarFunction(): Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction> {\n return this._snackbarFunction;\n }\n\n set snackbarFunction(snackbarFunction: Maybe<'' | DbxActionSnackbarDisplayConfigGeneratorFunction>) {\n if (snackbarFunction) {\n this._snackbarFunction = snackbarFunction;\n }\n }\n\n @Input()\n dbxActionSnackbarDefault?: Maybe<DbxActionSnackbarType>;\n\n @Input()\n dbxActionSnackbarUndo?: DbxActionSnackbarGeneratorUndoInput<T, O>;\n\n constructor(@Host() public readonly source: DbxActionContextStoreSourceInstance<T, O>, readonly dbxActionSnackbarService: DbxActionSnackbarService) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.source\n .pipeStore((store) => store.loadingState$)\n .subscribe((loadingState: LoadingState<O>) => {\n const event: DbxActionSnackbarEvent<O> = { value: loadingState.value, error: loadingState.error, type: loadingStateType(loadingState) };\n\n const config = this.buildConfigurationForEvent(event);\n\n if (config) {\n this.showSnackbarForConfiguration(config, event);\n }\n });\n }\n\n protected buildConfigurationForEvent(event: DbxActionSnackbarEvent<O>): Maybe<DbxActionSnackbarDisplayConfig<T, O>> {\n const input: DbxActionSnackbarGeneratorInput<T, O> = {\n event,\n undo: event.type === LoadingStateType.SUCCESS ? this.dbxActionSnackbarUndo : undefined // only show undo on success.\n };\n\n return this.snackbarFunction ? this.snackbarFunction(input) : this.dbxActionSnackbarService.generateDisplayConfig(this.dbxActionSnackbarDefault, input);\n }\n\n protected showSnackbarForConfiguration(config: DbxActionSnackbarDisplayConfig<T, O>, event: DbxActionSnackbarEvent<O>) {\n this.dbxActionSnackbarService.openSnackbar(config);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractDbxButtonDirective, provideDbxButton } from '@dereekb/dbx-core';\n\n/**\n * Simple dbx-button that displays a button with an icon.\n */\n@Component({\n selector: 'dbx-icon-button',\n template: `\n <ng-container [ngSwitch]=\"buttonDisplayType\">\n <button *ngSwitchCase=\"'text_button'\" mat-button [disabled]=\"disabled\" (click)=\"clickButton()\">\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span>{{ text }}</span>\n </button>\n <button *ngSwitchCase=\"'icon_button'\" mat-icon-button [disabled]=\"disabled\" (click)=\"clickButton()\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: provideDbxButton(DbxIconButtonComponent)\n})\nexport class DbxIconButtonComponent extends AbstractDbxButtonDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxIconButtonComponent } from './icon.button.component';\n\n@NgModule({\n imports: [\n //\n CommonModule,\n MatButtonModule,\n MatIconModule\n ],\n exports: [DbxIconButtonComponent],\n declarations: [DbxIconButtonComponent]\n})\nexport class DbxIconButtonModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './base.progress.button.directive';\n\n@Component({\n selector: 'dbx-bar-button',\n templateUrl: './bar.button.component.html',\n styleUrls: ['./bar.button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxBarButtonComponent extends AbstractProgressButtonDirective {}\n","<button class=\"dbx-bar-button\" mat-button [type]=\"options.type\" [color]=\"options.buttonColor\" [class.working]=\"options.working\" [class.mat-raised-button]=\"options.raised\" [class.mat-stroked-button]=\"options.stroked\" [class.mat-flat-button]=\"options.flat\" [class.fullWidth]=\"options.fullWidth\" [ngClass]=\"options.customClass!\" [ngStyle]=\"options.customStyle!\" [disabled]=\"options.working || options.disabled\">\n <ng-container *ngIf=\"options.buttonIcon\">\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!options.buttonIcon.fontSet\" [ngClass]=\"options.buttonIcon.customClass!\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\" [inline]=\"options.buttonIcon.inline!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <span>\n {{ options.text }}\n <ng-content></ng-content>\n </span>\n\n <mat-progress-bar class=\"bar\" *ngIf=\"options.working && !options.disabled\" [color]=\"options.barColor!\" [mode]=\"options.mode!\" [value]=\"options.value!\"></mat-progress-bar>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG, DbxProgressButtonGlobalConfig } from './button.progress.config';\nimport { DbxBarButtonComponent } from './bar.button.component';\nimport { DbxSpinnerButtonComponent } from './spinner.button.component';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatProgressBarModule, MatProgressSpinnerModule, MatRippleModule, MatIconModule],\n exports: [DbxSpinnerButtonComponent, DbxBarButtonComponent],\n declarations: [DbxSpinnerButtonComponent, DbxBarButtonComponent]\n})\nexport class DbxProgressButtonsModule {\n static forRoot(config?: DbxProgressButtonGlobalConfig): ModuleWithProviders<DbxProgressButtonsModule> {\n return {\n ngModule: DbxProgressButtonsModule,\n providers: [\n {\n provide: DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxButtonComponent } from './button.component';\nimport { DbxButtonSpacerDirective } from './button.spacer.component';\nimport { CommonModule } from '@angular/common';\nimport { DbxCoreButtonModule } from '@dereekb/dbx-core';\nimport { DbxProgressButtonsModule } from './progress/button.progress.module';\nimport { DbxIconButtonModule } from './icon/icon.button.module';\n\n@NgModule({\n imports: [CommonModule, DbxProgressButtonsModule],\n declarations: [DbxButtonComponent, DbxButtonSpacerDirective],\n exports: [DbxCoreButtonModule, DbxProgressButtonsModule, DbxIconButtonModule, DbxButtonComponent, DbxButtonSpacerDirective]\n})\nexport class DbxButtonModule {}\n","import { Directive, Inject, NgZone, Optional } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { AbstractTransitionWatcherDirective, DbxRouterTransitionService } 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 constructor(@Optional() @Inject(MAT_DIALOG_DATA) readonly data: D, @Inject(MatDialogRef) readonly dialogRef: MatDialogRef<T, R>, dbxRouterTransitionService: DbxRouterTransitionService, ngZone: NgZone) {\n super(dbxRouterTransitionService, ngZone);\n }\n\n protected updateForSuccessfulTransition(): void {\n this.close();\n }\n\n returnValue(value?: R) {\n this.close(value);\n }\n\n close(value?: R) {\n this.dialogRef.close(value);\n }\n}\n","import { Component, EventEmitter, OnDestroy, Output } from '@angular/core';\n\n/**\n * Component used to show a close button at the top of a dialog, floating in a corner.\n */\n@Component({\n selector: 'dbx-dialog-content-close',\n template: `\n <button mat-icon-button (click)=\"closeClicked()\"><mat-icon>close</mat-icon></button>\n `,\n host: {\n class: 'dbx-dialog-content-close'\n }\n})\nexport class DbxDialogContentCloseComponent implements OnDestroy {\n @Output()\n readonly close = new EventEmitter<void>();\n\n closeClicked() {\n this.close.emit(undefined);\n }\n\n ngOnDestroy(): void {\n this.close.complete();\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\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 (click)=\"closeClicked()\">{{ closeText }}</button>\n `,\n host: {\n class: 'dbx-dialog-content-footer'\n }\n})\nexport class DbxDialogContentFooterComponent implements OnDestroy {\n @Input()\n closeText = 'Close';\n\n @Output()\n readonly close = new EventEmitter<void>();\n\n closeClicked() {\n this.close.emit(undefined);\n }\n\n ngOnDestroy(): void {\n this.close.complete();\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nexport type DbxDialogContentContainerWidth = 'normal' | 'wide';\n\n/**\n * Component used to style a dialog.\n */\n@Directive({\n selector: 'dbx-dialog-content,[dbxDialogContent].dbx-dialog-content',\n host: {\n class: 'dbx-dialog-content',\n '[class]': `width + '-dialog-content'`\n }\n})\nexport class DbxDialogContentDirective {\n @Input()\n width = 'normal';\n}\n","import { first, Observable } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, Input, ElementRef } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractDbxActionValueOnTriggerDirective } from '@dereekb/dbx-core';\nimport { IsModifiedFunction } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nexport type DbxActionDialogFunction<T = unknown> = () => MatDialogRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a dialog, then watches that dialog for a value.\n */\n@Directive({\n exportAs: 'dbxActionDialog',\n selector: '[dbxActionDialog]'\n})\nexport class DbxActionDialogDirective<T = unknown> extends AbstractDbxActionValueOnTriggerDirective<T> implements OnInit, OnDestroy {\n @Input('dbxActionDialog')\n fn?: DbxActionDialogFunction<T>;\n\n @Input()\n set dbxActionDialogModified(isModifiedFunction: Maybe<IsModifiedFunction>) {\n this.isModifiedFunction = isModifiedFunction;\n }\n\n constructor(readonly elementRef: ElementRef, source: DbxActionContextStoreSourceInstance<T, unknown>) {\n super(source, () => this._getDataFromDialog());\n }\n\n protected _getDataFromDialog(): Observable<Maybe<T>> {\n return this._makeDialogRef().afterClosed().pipe(first());\n }\n\n protected _makeDialogRef(): MatDialogRef<unknown, Maybe<T>> {\n if (!this.fn) {\n throw new Error('dbxActionDialog has no dialog function provided to it.');\n }\n\n return this.fn();\n }\n}\n","import { Destroyable, Maybe } from '@dereekb/util';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, map, switchMap, shareReplay } from 'rxjs';\nimport { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport const DBX_STYLE_DEFAULT_CONFIG_TOKEN = new InjectionToken('DbxStyleServiceDefaultConfig');\n\nexport interface DbxStyleConfig {\n /**\n * Root style name.\n */\n style: string;\n /**\n * Suffixes available to this configuration.\n */\n suffixes?: Set<string>;\n}\n\n/**\n * Used for managing styles within an app.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxStyleService implements Destroyable {\n private _defaultConfig = new BehaviorSubject<Maybe<DbxStyleConfig>>(undefined);\n private _config = new BehaviorSubject<Maybe<Observable<DbxStyleConfig>>>(undefined);\n private _suffix = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly config$ = this._config.pipe(\n switchMap((x) => {\n if (x == null) {\n return this._defaultConfig;\n } else {\n return x;\n }\n }),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly suffix$ = this._suffix.pipe(distinctUntilChanged());\n readonly style$ = this.getStyleWithConfig(this.config$);\n\n constructor(@Optional() @Inject(DBX_STYLE_DEFAULT_CONFIG_TOKEN) defaultConfig?: DbxStyleConfig) {\n this._defaultConfig.next(defaultConfig);\n }\n\n get suffix(): Maybe<string> {\n return this._suffix.value;\n }\n\n set suffix(suffix: Maybe<string>) {\n this._suffix.next(suffix);\n }\n\n getStyleWithConfig(configObs: Observable<DbxStyleConfig>): Observable<string> {\n return combineLatest([configObs, this.suffix$]).pipe(\n map(([config, suffix]) => {\n let style = config.style;\n\n if (suffix != null && config.suffixes) {\n const sanitizedSuffix = suffix[0] === '-' ? suffix?.slice(1) : suffix;\n\n if (config.suffixes.has(sanitizedSuffix)) {\n style = `${style}-${sanitizedSuffix}`;\n }\n }\n\n return style;\n }),\n distinctUntilChanged()\n );\n }\n\n toggleDarkSuffix(dark?: Maybe<boolean>) {\n const toggle: boolean = dark != null ? dark : this.suffix !== '-dark';\n\n if (toggle) {\n this.suffix = '-dark';\n } else {\n this.suffix = undefined;\n }\n }\n\n setDefaultConfig(defaultConfig: DbxStyleConfig) {\n this._defaultConfig.next(defaultConfig);\n }\n\n setConfig(config: Observable<DbxStyleConfig>) {\n this._config.next(config);\n }\n\n destroy(): void {\n this._defaultConfig.complete();\n this._config.complete();\n this._suffix.complete();\n }\n}\n","import { splitCommaSeparatedStringToSet, Maybe } from '@dereekb/util';\nimport { Observable, distinctUntilChanged, map, shareReplay, BehaviorSubject, delay, combineLatest } from 'rxjs';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, Input, OnDestroy, ChangeDetectorRef, OnInit } from '@angular/core';\nimport { DbxStyleConfig, DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\n\n/**\n * Used to denote which app style to use for all children below this.\n *\n * Will update the parent DbxStyleService.\n */\n@Directive({\n selector: '[dbxSetStyle]',\n host: {\n class: 'dbx-style-root',\n '[class]': 'outputStyle'\n }\n})\nexport class DbxSetStyleDirective extends AbstractSubscriptionDirective implements OnDestroy, OnInit {\n private _suffixes = new BehaviorSubject<Maybe<string>>(undefined);\n private _style = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly style$ = this._style.pipe(filterMaybe());\n readonly suffixes$ = this._suffixes.pipe(distinctUntilChanged(), map(splitCommaSeparatedStringToSet));\n\n readonly config$: Observable<DbxStyleConfig> = combineLatest([this.style$, this.suffixes$]).pipe(\n map(([style, suffixes]) => ({ style, suffixes })),\n shareReplay(1)\n );\n\n readonly outputStyle$ = this.styleService.getStyleWithConfig(this.config$);\n outputStyle = '';\n\n constructor(readonly styleService: DbxStyleService, readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.styleService.setConfig(this.config$);\n this.sub = this.outputStyle$.pipe(delay(0)).subscribe((style) => {\n this.outputStyle = style;\n safeDetectChanges(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._suffixes.complete();\n this._style.complete();\n }\n\n @Input('dbxSetStyle')\n get style(): string {\n return this._style.value ?? '';\n }\n\n set style(style: string) {\n this._style.next(style);\n }\n\n @Input()\n get suffixes(): Maybe<string> {\n return this._suffixes.value;\n }\n\n set suffixes(suffixes: Maybe<string>) {\n this._suffixes.next(suffixes);\n }\n}\n","import { Directive, ChangeDetectorRef } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\n\n/**\n * Used to retrieve the current app styling from the DbxStyleService.\n */\n@Directive({\n selector: 'dbx-style, [dbxStyle], .dbx-style',\n host: {\n '[class]': 'style'\n }\n})\nexport class DbxStyleDirective extends AbstractSubscriptionDirective {\n style = '';\n\n constructor(readonly styleService: DbxStyleService, private cdRef: ChangeDetectorRef) {\n super(\n styleService.style$.pipe(delay(0)).subscribe((style) => {\n this.style = style;\n safeDetectChanges(this.cdRef);\n })\n );\n }\n}\n","import { Directive, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\n\n/**\n * Used to style the body document using the style provided by DbxStyleService.\n */\n@Directive({\n selector: '[dbxStyleBody]',\n host: {\n '[class]': 'style'\n }\n})\nexport class DbxStyleBodyDirective extends AbstractSubscriptionDirective {\n private _currentStyle = '';\n\n constructor(private renderer: Renderer2, readonly styleService: DbxStyleService, private cdRef: ChangeDetectorRef) {\n super(\n styleService.style$.pipe(delay(0)).subscribe((style) => {\n this._currentStyle && this.renderer.removeClass(document.body, this._currentStyle);\n style && this.renderer.addClass(document.body, style);\n this._currentStyle = style;\n safeDetectChanges(this.cdRef);\n })\n );\n }\n}\n","import { Maybe } from '@dereekb/util';\n\nexport type DbxThemeColor = 'primary' | 'accent' | 'warn' | 'background';\n\nexport function dbxColorBackground(color: Maybe<DbxThemeColor | ''>): string {\n let cssClass = 'dbx-bg';\n\n switch (color) {\n case 'primary':\n cssClass = 'dbx-primary-bg';\n break;\n case 'accent':\n cssClass = 'dbx-accent-bg';\n break;\n case 'warn':\n cssClass = 'dbx-warn-bg';\n break;\n }\n\n return cssClass;\n}\n","import { Directive, Input } from '@angular/core';\nimport { DbxThemeColor, dbxColorBackground } from './style';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Used to apply a background style using a color.\n */\n@Directive({\n selector: '[dbxColor]',\n host: {\n '[class]': 'style'\n }\n})\nexport class DbxColorDirective {\n style = '';\n\n @Input()\n set dbxColor(dbxColor: Maybe<DbxThemeColor | ''>) {\n this.style = dbxColorBackground(dbxColor);\n }\n}\n","import { DbxSetStyleDirective } from './style.set.directive';\nimport { DbxStyleDirective } from './style.directive';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxSpacerDirective } from './spacer.directive';\nimport { DbxStyleBodyDirective } from './style.body.directive';\nimport { DbxColorDirective } from './style.color.directive';\n\nconst declarations = [DbxColorDirective, DbxSpacerDirective, DbxStyleDirective, DbxSetStyleDirective, DbxStyleBodyDirective];\n\n@NgModule({\n imports: [CommonModule],\n declarations,\n exports: declarations\n})\nexport class DbxStyleLayoutModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxDialogContentDirective } from './dialog.content.component';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxActionDialogDirective } from './dialog.action.directive';\nimport { DbxDialogContentFooterComponent } from './dialog.content.footer.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxDialogContentCloseComponent } from './dialog.content.close.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, DbxStyleLayoutModule, MatButtonModule, MatIconModule],\n declarations: [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent],\n exports: [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent]\n})\nexport class DbxDialogInteractionModule {}\n","import { FlexibleConnectedPositionStrategy, HorizontalConnectionPos, Overlay, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ElementRef } from '@angular/core';\nimport { NgOverlayContainerConfiguration } from 'ng-overlay-container';\n\nexport interface PopoverPositionStrategyConfig {\n overlay: Overlay;\n elementRef: ElementRef;\n config: NgOverlayContainerConfiguration;\n}\n\nexport class PopoverPositionStrategy {\n static make(overlay: Overlay, elementRef: ElementRef, config: NgOverlayContainerConfiguration): FlexibleConnectedPositionStrategy {\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] = config.originX === 'end' ? ['end', 'start', 'center'] : config.originX === 'start' ? ['start', 'end', 'center'] : ['center', 'start', 'end'];\n\n const overlayX = originX;\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] = config.overlayY === 'bottom' ? ['bottom', 'top'] : ['top', 'bottom'];\n\n const [originY, originFallbackY] = [overlayFallbackY, overlayY];\n const { offsetX = 0, offsetY = 0 } = config;\n\n return overlay\n .position()\n .flexibleConnectedTo(elementRef)\n .withLockedPosition(true)\n .withPositions([\n {\n originX,\n originY,\n overlayX,\n overlayY,\n offsetY\n },\n {\n originX: origin2ndX,\n originY,\n overlayX: origin2ndX,\n overlayY,\n offsetY\n },\n {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin2ndX,\n originY: originFallbackY,\n overlayX: origin2ndX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin3rdX,\n originY,\n overlayX: origin3rdX,\n overlayY,\n offsetY\n },\n {\n originX: origin3rdX,\n originY: originFallbackY,\n overlayX: origin3rdX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }\n ])\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(offsetY);\n }\n}\n","import { Maybe } from '@dereekb/util';\nimport { isBoolean } from 'class-validator';\nimport { Observable, of, map } from 'rxjs';\n\nexport enum CompactMode {\n FULL = 'full',\n COMPACT = 'compact'\n}\n\nexport interface CompactModeOptions<T> {\n full?: T;\n compact?: T;\n}\n\nexport interface CompactModeDefaultOptions<T> extends CompactModeOptions<T> {\n defaultMode?: Maybe<CompactMode>;\n}\n\nexport type CompactModeOption = CompactMode | boolean;\n\nexport function compactModeFromInput(input: CompactMode | boolean): CompactMode {\n if (isBoolean(input)) {\n input = input ? CompactMode.COMPACT : CompactMode.FULL;\n }\n\n return input === CompactMode.COMPACT ? CompactMode.COMPACT : CompactMode.FULL;\n}\n\nexport function mapCompactModeObs<T>(mode$: Maybe<Observable<CompactMode>>, config: CompactModeDefaultOptions<T>): Observable<Maybe<T>> {\n const modeObs = mode$ ?? of(config.defaultMode ?? CompactMode.FULL);\n return modeObs.pipe(\n map((inputMode) => {\n const isCompact = (inputMode ?? config.defaultMode) === CompactMode.COMPACT;\n\n if (isCompact) {\n return config.compact;\n } else {\n return config.full;\n }\n })\n );\n}\n","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { map } from 'rxjs';\nimport { CompactMode, compactModeFromInput } from './compact';\n\nexport interface CompactContextState {\n mode: CompactMode;\n}\n\n@Injectable()\nexport class CompactContextStore extends ComponentStore<CompactContextState> {\n constructor() {\n super({ mode: CompactMode.FULL });\n }\n\n // MARK: Accessors\n readonly mode$ = this.state$.pipe(map((x) => x.mode));\n\n readonly setMode = this.updater((state, mode: CompactMode | boolean) => ({ mode: compactModeFromInput(mode) }));\n}\n","import { Directive, Input } from '@angular/core';\nimport { CompactMode } from './compact';\nimport { CompactContextStore } from './compact.store';\n\n/**\n * CompactContextStore provider.\n */\n@Directive({\n selector: '[dbxCompact]',\n providers: [CompactContextStore],\n exportAs: 'compact'\n})\nexport class DbxCompactDirective {\n mode$ = this.compactContextStore.mode$;\n\n constructor(readonly compactContextStore: CompactContextStore) {}\n\n @Input('dbxCompact')\n set mode(mode: CompactMode | boolean) {\n this.compactContextStore.setMode(mode);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCompactDirective } from './compact.directive';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxCompactDirective],\n exports: [DbxCompactDirective]\n})\nexport class DbxCompactLayoutModule {}\n","import { Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopoverKey = string;\n\nexport abstract class DbxPopoverController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopoverKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popover to close.\n */\n abstract close(): void;\n /**\n * Closes the popover and returns the input value.\n */\n abstract return(value?: O): void;\n}\n","import { Input, OnDestroy, Output, EventEmitter, HostListener, Directive } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n@Directive({\n selector: '[dbxWindowKeyDownListener]'\n})\nexport class DbxWindowKeyDownListenerDirective implements OnDestroy {\n private _keysFilter?: Maybe<Set<string>>;\n\n @Input()\n appWindowKeyDownEnabled = true;\n\n @Output('dbxWindowKeyDownListener')\n keyPressed = new EventEmitter<KeyboardEvent>();\n\n @Input()\n set appWindowKeyDownFilter(filterOnKeys: string[]) {\n let filter: Maybe<Set<string>>;\n\n if (filterOnKeys) {\n filter = new Set(filterOnKeys);\n }\n\n this._keysFilter = filter;\n }\n\n ngOnDestroy(): void {\n this.keyPressed.complete();\n }\n\n @HostListener('window:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (this.appWindowKeyDownEnabled !== false) {\n if (!this._keysFilter || this._keysFilter.has(event.key)) {\n this.keyPressed.emit(event);\n }\n }\n }\n}\n","import { DbxPopoverKey, DbxPopoverController } from './popover';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverCoordinatorService implements OnDestroy {\n private _popovers = new BehaviorSubject<Map<DbxPopoverKey, DbxPopoverController>>(new Map());\n readonly popovers$ = this._popovers.asObservable();\n\n ngOnDestroy(): void {\n this._popovers.complete();\n }\n\n get popovers(): Map<DbxPopoverKey, DbxPopoverController> {\n return this._popovers.value;\n }\n\n public addPopover(popover: DbxPopoverController): void {\n const key = popover.key;\n\n if (key) {\n this.removePopover(key);\n this._popovers.value.set(key, popover);\n this._popovers.next(this.popovers);\n }\n }\n\n public removePopover(key: DbxPopoverKey, popover?: DbxPopoverController): void {\n if (key) {\n const existing = this.popovers.get(key);\n\n // Remove if there is one existing, and if popover is provided it is the same popover.\n if (existing && (!popover || popover === existing)) {\n existing.close();\n this._popovers.value.delete(key);\n this._popovers.next(this.popovers);\n }\n }\n }\n}\n","import { DbxPopoverController } from './popover';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { DbxPopoverCoordinatorService } from './popover.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Component({\n selector: 'dbx-popover-coordinator',\n template: `\n <ng-container *ngIf=\"show$ | async\">\n <ng-content></ng-content>\n </ng-container>\n `\n})\nexport class DbxPopoverCoordinatorComponent implements OnInit, OnDestroy {\n readonly isPopoverForKey$ = this.service.popovers$.pipe(\n map((x) => x.get(this.popover.key) === this.popover),\n shareReplay(1)\n );\n readonly show$ = this.isPopoverForKey$.pipe(delay(0));\n\n constructor(private readonly service: DbxPopoverCoordinatorService, private readonly popover: DbxPopoverController) {}\n\n ngOnInit(): void {\n this.service.addPopover(this.popover);\n }\n\n ngOnDestroy(): void {\n this.service.removePopover(this.popover.key, this.popover);\n }\n}\n","import { Component, NgZone, Type, OnInit, OnDestroy, ElementRef } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgPopoverCloseType, NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractTransitionWatcherDirective, DbxRouterTransitionService, 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 } from '@dereekb/util';\nimport { DbxPopoverController, DbxPopoverKey } from './popover';\n\nexport abstract class DbxPopoverComponentController<O, I> extends DbxPopoverController<O, I> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopoverComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popover should exist at a time given a certain key.\n */\n key: DbxPopoverKey;\n /**\n * Origin element to position on.\n */\n origin: ElementRef;\n /**\n * Whether or not to close if a transition occurs.\n */\n closeOnTransition?: boolean;\n /**\n * Whether or not to dismiss when the escape button is pressed.\n *\n * False by default.\n */\n closeOnEscape?: boolean;\n /**\n * Component to inject into the popover.\n */\n componentClass: Type<T>;\n /**\n * Data available to the popover.\n */\n data?: Maybe<I>;\n init?: (component: T, controller: DbxPopoverController<O, I>) => void;\n}\n\nexport interface FullDbxPopoverComponentConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T> {\n configuration: NgOverlayContainerConfiguration;\n}\n\n/**\n * Popover component.\n */\n@Component({\n template: `\n <dbx-popover-coordinator (dbxWindowKeyDownListener)=\"handleKeydown()\" [appWindowKeyDownFilter]=\"triggerCloseKeys\">\n <div dbxStyle class=\"dbx-popover-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popover-coordinator>\n `,\n providers: [\n {\n provide: DbxPopoverController,\n useExisting: DbxPopoverComponent\n },\n {\n provide: CompactContextStore\n }\n ]\n})\nexport class DbxPopoverComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopoverController<O, I>, OnInit, OnDestroy {\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 readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n getClosingValueFn?: (value: Maybe<I>, closeType: NgPopoverCloseType) => PromiseOrValue<O | undefined>;\n\n constructor(private popoverRef: NgPopoverRef<FullDbxPopoverComponentConfig<O, I, T>, O>, private compactContextState: CompactContextStore, dbxRouterTransitionService: DbxRouterTransitionService, ngZone: NgZone) {\n super(dbxRouterTransitionService, ngZone);\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 = (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 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 } 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 constructor(public readonly popover: DbxPopoverComponent<O, I, T>) {}\n\n close(): void {\n this.popover.close();\n }\n\n returnAndClose(value: O): void {\n this.popover.return(value);\n }\n}\n","import { BehaviorSubject, throttleTime } from 'rxjs';\nimport { OnDestroy, Component } from '@angular/core';\nimport { ResizedEvent } from 'angular-resize-event';\n\n/**\n * Popover content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-content',\n template: `\n <div class=\"d-block dbx-popover-content\" (resized)=\"onResized($event)\" [style.--popoverh]=\"height$ | async\">\n <ng-content select=\"[controls]\"></ng-content>\n <div class=\"dbx-popover-content-container\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxPopoverContentComponent implements OnDestroy {\n private readonly _height = new BehaviorSubject<string>('');\n readonly height$ = this._height.asObservable().pipe(throttleTime(100, undefined, { leading: true, trailing: true }));\n\n hasControls = false;\n hasHeader = false;\n\n onResized(event: ResizedEvent): void {\n this._height.next(`${event.newRect.height}px`);\n }\n\n ngOnDestroy(): void {\n this._height.complete();\n }\n}\n","import { Component, Input, Optional } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Component used to format a header for a popover.\n */\n@Component({\n selector: 'dbx-popover-header',\n template: `\n <div class=\"dbx-popover-header\">\n <div class=\"dbx-popover-header-content\">\n <h3>\n <mat-icon *ngIf=\"icon\" class=\"dbx-icon-spacer\">{{ icon }}</mat-icon>\n {{ header }}\n </h3>\n <span class=\"spacer\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n <mat-divider></mat-divider>\n `\n})\nexport class DbxPopoverHeaderComponent {\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n\n constructor(@Optional() appPopoverContentComponent: DbxPopoverContentComponent) {\n if (appPopoverContentComponent) {\n appPopoverContentComponent.hasHeader = true;\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover scrollable content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-scroll-content',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'd-block dbx-popover-scroll-content',\n '[class]': 'sizingClasses'\n }\n})\nexport class DbxPopoverScrollContentComponent {\n get sizingClasses(): string {\n const hasHeader = this.hasHeader;\n const hasControls = this.hasControls;\n\n const classes: string[] = [];\n\n if (hasHeader && hasControls) {\n classes.push('popover-has-controls-and-header');\n } else if (hasHeader) {\n classes.push('popover-has-header');\n } else if (hasControls) {\n classes.push('popover-has-controls');\n }\n\n return classes.join(' ');\n }\n\n get hasHeader(): boolean {\n return this.appPopoverContentComponent.hasHeader;\n }\n\n get hasControls(): boolean {\n return this.appPopoverContentComponent.hasControls;\n }\n\n constructor(readonly appPopoverContentComponent: DbxPopoverContentComponent) {}\n}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, ElementRef, Type, OnInit, OnDestroy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Observable, BehaviorSubject, map, skip, first } from 'rxjs';\nimport { AbstractPopoverDirective } from '../popover/abstract.popover.directive';\nimport { DbxPopoverComponent } from '../popover/popover.component';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { FilterSource, FilterSourceConnector, PresetFilterSource, filterMaybe, SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxPopoverKey } from '../popover/popover';\n\nexport interface DbxFilterComponentParams<F extends object = object, P extends string = string> {\n /**\n * Custom icon\n *\n * Defaults to \"filter_list\"\n */\n icon?: string;\n /**\n * Custom header text\n *\n * Defaults to \"Filter\"\n */\n header?: string;\n /**\n * Custom filter component to initialize.\n */\n customFilterComponentClass?: Type<FilterSource<F>>;\n /**\n * Preset filter component to initialize.\n */\n presetFilterComponentClass?: Type<PresetFilterSource<F, P>>;\n /**\n * The connector to use.\n */\n connector: FilterSourceConnector<F>;\n /**\n * (Optional) Inital filter to pass to the filter source.\n */\n initialFilterObs?: Observable<F>;\n /**\n * (Optional) Whether or not to close the component if the filter changes.\n *\n * True by default.\n */\n closeOnFilterChange?: boolean;\n}\n\nexport interface DbxFilterPopoverComponentParams<F extends object = object> extends DbxFilterComponentParams<F> {\n /**\n * Origin to add the popover to.\n */\n origin: ElementRef;\n}\n\nexport const DEFAULT_FILTER_POPOVER_KEY = 'filter';\n\n@Component({\n templateUrl: './filter.popover.component.html'\n})\nexport class DbxFilterPopoverComponent<F extends object> extends AbstractPopoverDirective<unknown, DbxFilterComponentParams<F>> implements OnInit, OnDestroy {\n private _closeOnChangeSub = new SubscriptionObject();\n\n /**\n * Whether or not to display buttons to toggle between custom and preset filters.\n */\n readonly showSwitchButtons = Boolean(this.config.customFilterComponentClass && this.config.presetFilterComponentClass);\n\n private _showPreset = new BehaviorSubject<boolean>(false);\n readonly showPreset$ = this._showPreset.asObservable();\n\n readonly config$: Observable<DbxInjectionComponentConfig<FilterSource<F>>> = this._showPreset.pipe(\n map((showPreset) => {\n const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass } = this.config;\n let componentClass: Type<FilterSource<F>>;\n\n if (showPreset) {\n componentClass = presetFilterComponentClass as Type<FilterSource<F>>;\n } else {\n componentClass = customFilterComponentClass as Type<FilterSource<F>>;\n }\n\n const config: DbxInjectionComponentConfig<FilterSource<F>> = {\n componentClass,\n init: (filterSource) => {\n connector.connectWithSource(filterSource);\n\n if (initialFilterObs && filterSource.initWithFilter) {\n filterSource.initWithFilter(initialFilterObs);\n }\n\n if (closeOnFilterChange) {\n this._closeOnChangeSub.subscription = filterSource.filter$.pipe(skip(1), filterMaybe(), first()).subscribe(() => {\n this.close();\n });\n }\n }\n };\n\n return config;\n })\n );\n\n static openPopover<F extends object>(popupService: DbxPopoverService, { origin, header, icon, initialFilterObs: inputSource, connector, customFilterComponentClass, presetFilterComponentClass }: DbxFilterPopoverComponentParams<F>, popoverKey?: DbxPopoverKey): NgPopoverRef {\n return popupService.open({\n key: popoverKey ?? DEFAULT_FILTER_POPOVER_KEY,\n origin,\n componentClass: DbxFilterPopoverComponent,\n data: {\n header,\n icon,\n initialFilterObs: inputSource,\n connector,\n customFilterComponentClass,\n presetFilterComponentClass\n } as DbxFilterComponentParams<F>\n });\n }\n\n constructor(popover: DbxPopoverComponent<unknown, DbxFilterComponentParams<F>>) {\n super(popover);\n }\n\n get config(): DbxFilterComponentParams<F> {\n return this.popover.data as DbxFilterComponentParams<F>;\n }\n\n get icon() {\n return this.config.icon ?? 'filter_list';\n }\n\n get header() {\n return this.config.header ?? 'Filter';\n }\n\n ngOnInit(): void {\n let showPreset = false;\n const { customFilterComponentClass, presetFilterComponentClass } = this.config;\n\n if (customFilterComponentClass) {\n showPreset = false;\n }\n\n if (presetFilterComponentClass) {\n showPreset = true;\n }\n\n if (!customFilterComponentClass && !presetFilterComponentClass) {\n throw new Error('Requires a preset or custom class provided for DbxFilterPopover.');\n }\n\n this._showPreset.next(showPreset);\n }\n\n ngOnDestroy(): void {\n this._closeOnChangeSub.destroy();\n this._showPreset.complete();\n }\n\n showPresets() {\n this._showPreset.next(true);\n }\n\n showCustom() {\n this._showPreset.next(false);\n }\n}\n","<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">Custom</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n","import { OnDestroy, Directive, EventEmitter, Output, ElementRef } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { NgPopoverCloseEvent, NgPopoverRef } from 'ng-overlay-container';\n\n/**\n * Abstract class for showing and handling a popover ref.\n */\n@Directive()\nexport abstract class AbstractPopoverRefDirective<T = unknown, R = unknown> extends AbstractSubscriptionDirective {\n private _popoverRef?: NgPopoverRef<T, R>;\n\n showPopover(origin?: ElementRef): void {\n if (!this._popoverRef) {\n this._showPopoverRef(origin);\n }\n }\n\n private _showPopoverRef(origin?: ElementRef): void {\n this._popoverRef = this._makePopoverRef(origin);\n this._afterOpened(this._popoverRef);\n this.sub = this._popoverRef.afterClosed$.subscribe((x) => {\n this._afterClosed(x);\n this._popoverRef = undefined;\n });\n }\n\n protected abstract _makePopoverRef(origin?: ElementRef): NgPopoverRef<T, R>;\n\n protected _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n // Do nothing. Override in parent type\n }\n\n protected _afterClosed(value: NgPopoverCloseEvent<R>): void {\n // Do nothing. Override in parent type\n }\n}\n\n/**\n * {@link AbstractPopoverRefDirective} extension that includes open/closed events.\n */\n@Directive()\nexport abstract class AbstractPopoverRefWithEventsDirective<T = unknown, R = unknown> extends AbstractPopoverRefDirective<T, R> implements OnDestroy {\n @Output()\n readonly popoverOpened = new EventEmitter<NgPopoverRef<T, R>>();\n\n @Output()\n readonly popoverClosed = new EventEmitter<NgPopoverCloseEvent<R>>();\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.popoverClosed.complete();\n this.popoverOpened.complete();\n }\n\n protected override _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n this.popoverOpened.next(popoverRef);\n }\n\n protected override _afterClosed(event: NgPopoverCloseEvent<R>): void {\n this.popoverClosed.next(event);\n }\n}\n","import { DbxPopoverComponent, DbxPopoverComponentConfig, FullDbxPopoverComponentConfig } from './popover.component';\nimport { Injectable, Injector } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport interface DbxPopoverConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T> {\n injector?: Injector;\n height?: string;\n width?: string;\n isResizable?: boolean;\n}\n\n/**\n * Used for displaying a popover.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverService {\n private _overlayContainerService: NgOverlayContainerService;\n\n constructor(private _overlay: Overlay, private _injector: Injector) {\n this._overlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n }\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: 'start',\n originY: 'top',\n // TODO: Resize height/width.\n height: config.height ?? '500px',\n width: config.height ?? '400px',\n hasBackdrop: true,\n isDraggable: false,\n isResizable: config.isResizable ?? false,\n disableBackdropClose: false\n };\n\n return service.open<FullDbxPopoverComponentConfig<O, I, T>, O>({\n content: DbxPopoverComponent,\n data: {\n ...config,\n configuration\n },\n configuration\n });\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxFilterPopoverComponent, DbxFilterComponentParams } from './filter.popover.component';\nimport { AbstractPopoverRefDirective } from '../popover/abstract.popover.ref.directive';\n\nexport type DbxFilterButtonConfig<F extends object> = DbxFilterComponentParams<F>;\n\n@Directive()\nexport abstract class AbstractFilterPopoverButtonDirective<F extends object> extends AbstractPopoverRefDirective<unknown, unknown> {\n @Input()\n config?: DbxFilterButtonConfig<F>;\n\n constructor(private readonly popupService: DbxPopoverService) {\n super();\n }\n\n protected override _makePopoverRef(origin?: ElementRef): NgPopoverRef<unknown, unknown> {\n const config = this.config;\n\n if (!config) {\n throw new Error('Missing filterButtonConfig.');\n } else if (!origin) {\n throw new Error('Missing origin.');\n }\n\n return DbxFilterPopoverComponent.openPopover(this.popupService, {\n origin,\n ...config\n });\n }\n}\n","import { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs';\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { AbstractFilterPopoverButtonDirective } from './filter.popover.button.directive';\nimport { DbxButtonDisplayContent, dbxButtonDisplayContentType, DbxButtonDisplayContentType, DbxButtonDisplayDelegate } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\nconst DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT: DbxButtonDisplayContent = {\n icon: 'filter_list'\n};\n\n@Component({\n selector: 'dbx-filter-popover-button',\n template: `\n <dbx-icon-button #button (buttonClick)=\"showFilterPopover()\" [buttonDisplay]=\"buttonDisplay\"></dbx-icon-button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxFilterPopoverButtonComponent<F extends object = object> extends AbstractFilterPopoverButtonDirective<F> {\n private _buttonDisplay: DbxButtonDisplayContent = DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT;\n\n @Input()\n get buttonDisplay(): DbxButtonDisplayContent {\n return this._buttonDisplay;\n }\n\n set buttonDisplay(buttonDisplay: Maybe<DbxButtonDisplayContent>) {\n if (!buttonDisplay) {\n buttonDisplay = DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT;\n }\n\n this._buttonDisplay = buttonDisplay;\n }\n\n @ViewChild('button', { read: ElementRef, static: false })\n buttonElement!: ElementRef;\n\n showFilterPopover(): void {\n const origin = this.buttonElement.nativeElement;\n this.showPopover(origin);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxWindowKeyDownListenerDirective } from './keydown.listener.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxWindowKeyDownListenerDirective],\n exports: [DbxWindowKeyDownListenerDirective]\n})\nexport class DbxKeypressModule {}\n","import { Directive, Optional } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover Controls\n */\n@Directive({\n selector: 'dbx-popover-controls,[dbxPopoverControls],.dbx-popover-controls',\n host: {\n class: 'd-block dbx-popover-controls'\n }\n})\nexport class DbxPopoverControlsDirective {\n constructor(@Optional() appPopoverContentComponent: DbxPopoverContentComponent) {\n if (appPopoverContentComponent) {\n appPopoverContentComponent.hasControls = true;\n }\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { DbxPopoverControlsDirective } from './popover.controls.directive';\nimport { DbxPopoverHeaderComponent } from './popover.header.component';\nimport { DbxPopoverScrollContentComponent } from './popover.scroll.content.component';\nimport { DbxKeypressModule } from '../../keypress';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\nconst declarations = [DbxPopoverContentComponent, DbxPopoverControlsDirective, DbxPopoverHeaderComponent, DbxPopoverScrollContentComponent];\n\n/**\n * Contains all popover content components, allowing other sibling dbx-web modules to use the directives without referencing the full popover module.\n */\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, MatDividerModule, DbxKeypressModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule, AngularResizeEventModule],\n declarations,\n exports: declarations\n})\nexport class DbxPopoverInteractionContentModule {}\n","import { first, Observable, map } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, Input, ElementRef } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxActionContextStoreSourceInstance, AbstractDbxActionValueOnTriggerDirective } from '@dereekb/dbx-core';\nimport { IsModifiedFunction } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxActionPopoverFunctionParams {\n origin: ElementRef;\n}\n\nexport type DbxActionPopoverFunction<T = unknown> = (params: DbxActionPopoverFunctionParams) => NgPopoverRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a popover, then watches that popover for a value.\n */\n@Directive({\n exportAs: 'dbxActionPopover',\n selector: '[dbxActionPopover]'\n})\nexport class DbxActionPopoverDirective<T = unknown> extends AbstractDbxActionValueOnTriggerDirective<T> implements OnInit, OnDestroy {\n @Input('dbxActionPopover')\n fn?: DbxActionPopoverFunction<T>;\n\n @Input()\n set dbxActionPopoverModified(isModifiedFunction: Maybe<IsModifiedFunction>) {\n this.isModifiedFunction = isModifiedFunction;\n }\n\n constructor(readonly elementRef: ElementRef, source: DbxActionContextStoreSourceInstance<T, unknown>) {\n super(source, () => this._getDataFromPopover());\n }\n\n protected _getDataFromPopover(): Observable<Maybe<T>> {\n return this._makePopoverRef().afterClosed$.pipe(\n first(),\n map((x) => x.data)\n );\n }\n\n protected _makePopoverRef(): NgPopoverRef<unknown, Maybe<T>> {\n const origin = this.elementRef;\n\n if (!this.fn) {\n throw new Error('popoverAction has no function provided to it yet.');\n }\n\n return this.fn({\n origin\n });\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbxPopoverComponent } from './popover.component';\nimport { DbxKeypressModule } from '../../keypress';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxPopoverInteractionContentModule } from './popover.content.module';\nimport { DbxActionPopoverDirective } from './popover.action.directive';\n\nconst declarations = [DbxPopoverComponent, DbxPopoverCoordinatorComponent, DbxActionPopoverDirective];\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, MatDividerModule, DbxKeypressModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule, AngularResizeEventModule, DbxPopoverInteractionContentModule],\n declarations,\n exports: [...declarations, DbxPopoverInteractionContentModule]\n})\nexport class DbxPopoverInteractionModule {}\n","import { Component, Input } from '@angular/core';\nimport { AbstractDbxActionHandlerDirective, DbxActionContextStoreSourceInstance, FilterSourceDirective, provideActionStoreSource } from '@dereekb/dbx-core';\nimport { of } from 'rxjs';\n\n/**\n * Action component used to simplify creating a filter form.\n *\n * Provides a DbxAction and configures the action to set the filter on a FilterSourceDirective when triggered.\n */\n@Component({\n selector: 'dbx-filter-wrapper',\n templateUrl: './filter.wrapper.component.html',\n providers: [provideActionStoreSource(null)]\n})\nexport class DbxFilterWrapperComponent<F = unknown> extends AbstractDbxActionHandlerDirective<F> {\n @Input()\n applyRaised = true;\n\n @Input()\n applyIcon = 'filter_list';\n\n @Input()\n applyText = 'Filter';\n\n constructor(source: DbxActionContextStoreSourceInstance<F>, readonly filterSourceDirective: FilterSourceDirective<F>) {\n super(source);\n // configure handler function\n this._dbxActionHandlerInstance.handlerFunction = (filter: F) => {\n this.filterSourceDirective.setFilter(filter);\n return of(true);\n };\n }\n\n applyFilter(): void {\n this.source.setIsModified(true); // Force setting modified.\n this.source.trigger();\n }\n\n resetFilter(): void {\n this.filterSourceDirective.resetFilter();\n }\n}\n","<div class=\"dbx-filter-wrapper\">\n <div class=\"dbx-filter-wrapper-content\">\n <ng-content></ng-content>\n </div>\n <div fxLayout=\"row\">\n <dbx-button dbxActionButton [raised]=\"applyRaised\" [text]=\"applyText\" [icon]=\"applyIcon\"></dbx-button>\n <div class=\"spacer\"></div>\n <button mat-icon-button (click)=\"resetFilter()\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n","import { shareReplay, BehaviorSubject, map, Observable, combineLatest, distinctUntilChanged, startWith } from 'rxjs';\nimport { Directive, Input, OnDestroy } from '@angular/core';\nimport { ClickableFilterPreset, ClickableAnchorLink, FilterSourceDirective } from '@dereekb/dbx-core';\nimport { getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\nimport { FilterWithPreset, tapLog } from '@dereekb/rxjs';\n\n/**\n * Displays a button and menu for filtering presets.\n */\n@Directive()\nexport abstract class AbstractDbxPresetFilterMenuComponent<F extends FilterWithPreset> implements OnDestroy {\n //TODO: Rename to AbstractDbxPresetFilterMenuDirective with next breaking changes\n\n private _presets = new BehaviorSubject<ClickableFilterPreset<F>[]>([]);\n\n readonly selected$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n\n readonly selectedPresetString$: Observable<Maybe<string>> = this.selected$.pipe(\n map((selectedFilter) => (selectedFilter ? selectedFilter.preset : undefined)),\n distinctUntilChanged()\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = combineLatest([this._presets, this.selectedPresetString$]).pipe(\n map(([presets, selectedPresetString]) => {\n return presets.map((x) => ({\n ...x,\n selected: x.preset === selectedPresetString,\n onClick: () => {\n this.selectPreset(x);\n }\n }));\n }),\n shareReplay(1)\n );\n\n readonly selectedPreset$: Observable<Maybe<ClickableFilterPreset<F>>> = combineLatest([this._presets, this.selectedPresetString$]).pipe(\n map(([presets, selectedPresetString]) => {\n return selectedPresetString != null ? presets.find((x) => x.preset === selectedPresetString) : undefined;\n }),\n shareReplay(1)\n );\n\n @Input()\n get presets(): ClickableFilterPreset<F>[] {\n return this._presets.value;\n }\n\n set presets(presets: ClickableFilterPreset<F>[]) {\n this._presets.next(presets);\n }\n\n constructor(readonly filterSourceDirective: FilterSourceDirective<F>) {}\n\n selectPreset(preset: ClickableFilterPreset<F>) {\n const presetValue = preset.presetValue;\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(preset.presetValue) as F;\n\n if (filter.preset !== preset.preset) {\n filter = {\n ...filter,\n preset: preset.preset\n };\n }\n\n this.filterSourceDirective.setFilter(filter);\n }\n }\n\n ngOnDestroy(): void {\n this._presets.complete();\n }\n}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\nexport abstract class DbxRouterWebProviderConfig {\n /**\n * Component used by the Anchor component to render a SegueRef link.\n */\n abstract anchorSegueRefComponent: DbxInjectionComponentConfig;\n}\n","import { skipFirstMaybe } from '@dereekb/rxjs';\nimport { Input, Component, TemplateRef, ViewChild, OnDestroy, HostListener } from '@angular/core';\nimport { AbstractDbxAnchorDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { map, distinctUntilChanged, shareReplay, BehaviorSubject } from 'rxjs';\nimport { DbxRouterWebProviderConfig } from '../../provider/router.provider.config';\n\n/**\n * Component that renders an anchor element depending on the input.\n */\n@Component({\n selector: 'dbx-anchor, [dbx-anchor]',\n templateUrl: './anchor.component.html',\n host: {\n class: 'd-inline dbx-anchor',\n 'dbx-anchor-block': 'block'\n }\n})\nexport class DbxAnchorComponent extends AbstractDbxAnchorDirective implements OnDestroy {\n private _templateRef = new BehaviorSubject<Maybe<TemplateRef<unknown>>>(undefined);\n readonly templateRef$ = this._templateRef.pipe(skipFirstMaybe(), shareReplay(1));\n\n @Input()\n public block?: boolean;\n\n @ViewChild('content', { read: TemplateRef })\n get templateRef(): Maybe<TemplateRef<unknown>> {\n return this._templateRef.value;\n }\n\n set templateRef(templateRef: Maybe<TemplateRef<unknown>>) {\n this._templateRef.next(templateRef);\n }\n\n readonly url$ = this.anchor$.pipe(\n map((x) => x?.url),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly target$ = this.anchor$.pipe(\n map((x) => x?.target),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly selectedClass$ = this.selected$.pipe(\n map((selected) => (selected ? 'dbx-anchor-selected' : '')),\n shareReplay(1)\n );\n\n constructor(private readonly dbNgxRouterWebProviderConfig: DbxRouterWebProviderConfig) {\n super();\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._templateRef.complete();\n }\n\n get srefAnchorConfig(): DbxInjectionComponentConfig {\n return this.dbNgxRouterWebProviderConfig.anchorSegueRefComponent;\n }\n\n clickAnchor(event?: Maybe<MouseEvent>): void {\n this.anchor?.onClick?.(event);\n }\n\n @HostListener('mouseenter')\n onMouseEnter(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('enter', event);\n }\n\n @HostListener('mouseleave')\n onMouseLeave(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('leave', event);\n }\n}\n","<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"(selectedClass$ | async) || ''\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { OnDestroy, Input, Component } from '@angular/core';\nimport { BehaviorSubject, map, shareReplay, distinctUntilChanged } from 'rxjs';\nimport { ClickableAnchorLinkTree, expandClickableAnchorLinkTrees } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Component that displays a list of ClickableAnchorLink values within a MatNavList.\n */\n@Component({\n selector: 'dbx-anchor-list',\n templateUrl: './anchorlist.component.html'\n})\nexport class DbxAnchorListComponent implements OnDestroy {\n private _anchors = new BehaviorSubject<ClickableAnchorLinkTree[]>([]);\n\n readonly expandedAnchors$ = this._anchors.pipe(\n distinctUntilChanged(),\n map((x) => expandClickableAnchorLinkTrees(x)),\n shareReplay(1)\n );\n\n @Input()\n set anchors(anchors: Maybe<ClickableAnchorLinkTree[]>) {\n this._anchors.next(anchors ?? []);\n }\n\n ngOnDestroy(): void {\n this._anchors.complete();\n }\n}\n","<mat-nav-list class=\"dbx-anchor-list\">\n <ng-container *ngFor=\"let expanded of expandedAnchors$ | async; let last = last\">\n <dbx-anchor [anchor]=\"expanded.value\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\" [ngClass]=\"expanded.depth ? 'dbx-anchor-list-child' : 'dbx-anchor-list-root'\">\n <mat-icon mat-list-icon *ngIf=\"expanded.value.icon\">{{ expanded.value.icon }}</mat-icon>\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div mat-line>{{ expanded.value.title }}</div>\n <div class=\"dbx-hint dbx-small\" *ngIf=\"expanded.value.hint\" mat-line>{{ expanded.value.hint }}</div>\n <dbx-injection *ngIf=\"expanded.value.content\" mat-line [config]=\"expanded.value.content\"></dbx-injection>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </a>\n </dbx-anchor>\n </ng-container>\n</mat-nav-list>\n","import { Component } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuComponent } from './filter.preset';\n\n@Component({\n selector: 'dbx-preset-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchors$ | async\"></dbx-anchor-list>\n `\n})\nexport class DbxPresetFilterListComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuComponent<F> {}\n","import { Component, Input } from '@angular/core';\nimport { ClickableIconAnchorLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Component that displays an anchor and a mat-button.\n */\n@Component({\n selector: 'dbx-anchor-icon',\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-icon-button>\n <mat-icon>{{ anchor?.icon }}</mat-icon>\n </button>\n </dbx-anchor>\n `\n})\nexport class DbxAnchorIconComponent {\n @Input()\n anchor: Maybe<ClickableIconAnchorLink>;\n}\n","import { Component, Input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Pre-styled text that can link to either a website or a ref using a dbx-anchor.\n */\n@Component({\n selector: 'dbx-link',\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <ng-content></ng-content>\n </dbx-anchor>\n `,\n host: {\n class: 'd-inline dbx-link'\n }\n})\nexport class DbxAnchorLinkComponent {\n @Input()\n anchor?: Maybe<ClickableAnchor>;\n\n @Input()\n set ref(ref: Maybe<string>) {\n if (ref) {\n this.anchor = {\n ref\n };\n }\n }\n\n @Input()\n set href(href: Maybe<string>) {\n if (href) {\n this.anchor = {\n url: href\n };\n }\n }\n}\n","import { BehaviorSubject, combineLatest, map, Observable, of, shareReplay } from 'rxjs';\nimport { Component, Input, Optional, OnDestroy } from '@angular/core';\nimport { ClickableAnchor, ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Component that displays an anchor and a span with the title.\n */\n@Component({\n selector: 'dbx-anchor-content',\n template: `\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"icon$ | async\">{{ icon$ | async }}</mat-icon>\n <span *ngIf=\"title$ | async\">{{ title$ | async }}</span>\n `,\n host: {\n class: 'dbx-anchor-content'\n }\n})\nexport class DbxAnchorContentComponent implements OnDestroy {\n private readonly _parentAnchor: Observable<Maybe<ClickableAnchor | ClickableAnchorLink>> = this.parent ? this.parent.anchor$ : of(undefined);\n private _inputAnchor = new BehaviorSubject<Maybe<Partial<ClickableAnchorLink>>>(undefined);\n\n readonly anchor$: Observable<Maybe<Partial<ClickableAnchorLink>>> = combineLatest([this._inputAnchor, this._parentAnchor]).pipe(\n map(([input, parent]) => input ?? parent),\n shareReplay(1)\n );\n\n readonly icon$ = this.anchor$.pipe(map((x) => x?.icon));\n readonly title$ = this.anchor$.pipe(map((x) => x?.title));\n\n @Input()\n set anchor(anchor: Maybe<Partial<ClickableAnchorLink>>) {\n this._inputAnchor.next(anchor);\n }\n\n constructor(@Optional() readonly parent?: DbxAnchorComponent) {}\n\n ngOnDestroy(): void {\n this._inputAnchor.complete();\n }\n}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { NgModule } from '@angular/core';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { CommonModule } from '@angular/common';\nimport { DbxAnchorIconComponent } from './anchor.icon.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxAnchorLinkComponent } from './anchor.link.component';\nimport { DbxAnchorContentComponent } from './anchor.content.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxInjectionComponentModule],\n declarations: [DbxAnchorComponent, DbxAnchorIconComponent, DbxAnchorLinkComponent, DbxAnchorContentComponent],\n exports: [DbxAnchorComponent, DbxAnchorIconComponent, DbxAnchorLinkComponent, DbxAnchorContentComponent]\n})\nexport class DbxRouterAnchorModule {}\n","import { MatListModule } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxAnchorListComponent } from './anchorlist.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, DbxInjectionComponentModule, MatTabsModule, MatButtonModule, MatIconModule, MatListModule, MatMenuModule, DbxRouterAnchorModule],\n declarations: [DbxAnchorListComponent],\n exports: [DbxAnchorListComponent]\n})\nexport class DbxRouterAnchorListModule {}\n","import { ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { combineLatest, distinctUntilChanged, map, Observable, shareReplay, switchMap } from 'rxjs';\n\n/**\n * Configuration for the preset filter menus\n */\nexport interface DbxPresetFilterMenuConfig {\n /**\n * The text to display for the unknown selection.\n */\n unknownSelectionText?: string;\n /**\n * The icon to use for the filter, or false if no icon should be shown.\n */\n filterIcon?: string | false;\n /**\n * Whether or not to use the preset's icon if one is defined. If filterIcon is false, the icon will only appear when an item is selected.\n */\n usePresetIcon?: boolean;\n}\n\nexport function dbxPresetFilterMenuButtonTextObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'title'>>>>, defaultText = 'Filter') {\n return combineLatest([config$, selection$]).pipe(\n map(([config, preset]) => preset?.title ?? config.unknownSelectionText ?? defaultText),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n\nexport function dbxPresetFilterMenuButtonIconObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'icon'>>>>, defaultIcon = 'arrow_drop_down') {\n return config$.pipe(\n switchMap((config) => {\n const filterIcon = config.filterIcon === false ? '' : config.filterIcon || defaultIcon;\n\n return selection$.pipe(\n map((preset) => {\n let icon: string | undefined;\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 { shareReplay, BehaviorSubject, map, combineLatest, distinctUntilChanged, switchMap } from 'rxjs';\nimport { Component, Input } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuComponent } from './filter.preset';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\n\n/**\n * Displays a button and menu for filtering presets.\n */\n@Component({\n selector: 'dbx-preset-filter-menu',\n templateUrl: './filter.preset.menu.component.html'\n})\nexport class DbxPresetFilterMenuComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuComponent<F> {\n private _config = new BehaviorSubject<DbxPresetFilterMenuConfig>({});\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this._config, this.selectedPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this._config, this.selectedPreset$);\n\n @Input()\n get config(): DbxPresetFilterMenuConfig {\n return this._config.value;\n }\n\n set config(config: DbxPresetFilterMenuConfig) {\n this._config.next(config);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._config.complete();\n }\n}\n","<button mat-button [matMenuTriggerFor]=\"menu\" class=\"dbx-preset-filter-menu-button\" aria-label=\"open filter\">\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"buttonIcon$ | async\">{{ buttonIcon$ | async }}</mat-icon>\n <span>{{ buttonText$ | async }}</span>\n</button>\n<mat-menu #menu class=\"dbx-preset-filter-menu\">\n <dbx-anchor *ngFor=\"let anchor of presetAnchors$ | async\" [anchor]=\"anchor\">\n <button mat-menu-item [ngClass]=\"anchor.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"anchor.icon\">{{ anchor.icon }}</mat-icon>\n {{ anchor.title }}\n </button>\n </dbx-anchor>\n</mat-menu>\n","import { Directive } from '@angular/core';\nimport { DbxInjectionTemplateConfig } from '@dereekb/dbx-core';\nimport { Observable, distinctUntilChanged, shareReplay, map } from 'rxjs';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Abstract implementation\n */\n@Directive()\nexport abstract class AbstractDbxSegueAnchorDirective {\n readonly target$ = this.parent.target$;\n\n readonly ref$ = this.parent.anchor$.pipe(\n map((x) => x?.ref),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly refParams$ = this.parent.anchor$.pipe(\n map((x) => x?.refParams),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly refOptions$ = this.parent.anchor$.pipe(\n map((x) => x?.refOptions),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n constructor(readonly parent: DbxAnchorComponent) {}\n\n readonly template$: Observable<DbxInjectionTemplateConfig> = this.parent.templateRef$.pipe(\n distinctUntilChanged(),\n map((templateRef) => ({\n templateRef\n })),\n shareReplay(1)\n );\n\n get anchor() {\n return this.parent.anchor;\n }\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { ArrayOrValue, modifier, Modifier, ModifierFunction, ModifierMap } from '@dereekb/util';\nimport { Observable } from 'rxjs';\nimport { DbxValueListItem } from './list.view.value';\n\n// MARK: ValueListView\nexport abstract class DbxValueListItemModifier<T = unknown, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n abstract readonly modifiers$: Observable<ModifierMap<I>>;\n\n abstract addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n abstract removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n}\n\nexport function provideDbxValueListViewModifier<V extends DbxValueListItemModifier>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxValueListItemModifier,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n\n// MARK: Utility\nexport type ListItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> = Modifier<I>;\n\nexport function listItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>>(key: string, modify: ModifierFunction<I>): ListItemModifier<T, I> {\n return modifier(key, modify);\n}\n","import { BehaviorSubject, map, Observable, shareReplay, combineLatest } from 'rxjs';\nimport { Directive, Input, OnDestroy, OnInit } from '@angular/core';\nimport { DbxValueListItem } from './list.view.value';\nimport { addModifiers, ArrayOrValue, combineMaps, Maybe, Modifier, ModifierMap, removeModifiers } from '@dereekb/util';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxValueListItemModifier, provideDbxValueListViewModifier } from './list.view.value.modifier';\n\n/**\n * DbxValueListViewModifier implementation\n */\n@Directive({\n selector: '[dbxListItemModifier]',\n providers: provideDbxValueListViewModifier(DbxValueListItemModifierDirective)\n})\nexport class DbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListItemModifier<T, I>, OnDestroy {\n private _modifiers = new BehaviorSubject<Maybe<ModifierMap<I>>>(undefined);\n private _inputModifiers = new BehaviorSubject<Maybe<ArrayOrValue<Modifier<I>>>>(undefined);\n\n readonly modifiers$ = combineLatest([this._modifiers, this._inputModifiers]).pipe(\n map(([modifiers, inputModifiers]) => {\n return combineMaps(modifiers, inputModifiers ? addModifiers(inputModifiers) : undefined);\n }),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._modifiers.complete();\n }\n\n // MARK: Modifiers\n addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._modifiers.next(addModifiers(modifiers, this._modifiers.value));\n }\n\n removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._modifiers.next(removeModifiers(modifiers, this._modifiers.value));\n }\n\n // MARK: Input Modifiers\n @Input('dbxListItemModifier')\n set inputModifiers(inputModifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._inputModifiers.next(inputModifiers);\n }\n}\n\n/**\n * Abstract directive used for managing modifyers for a DbxValueListView.\n */\n@Directive()\nexport abstract class AbstractDbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements OnInit, OnDestroy {\n abstract readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<I>>>>;\n\n private _linkedModifiers: Maybe<ArrayOrValue<Modifier<I>>>;\n private _modifiersSub = new SubscriptionObject();\n\n constructor(readonly dbxValueListItemModifier: DbxValueListItemModifier<T, I>) {}\n\n ngOnInit(): void {\n this._modifiersSub.subscription = this.modifiers$.subscribe((modifiers) => {\n this._linkModifiers(modifiers);\n });\n }\n\n ngOnDestroy(): void {\n this._unlinkModifiers();\n }\n\n private _linkModifiers(modifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._unlinkModifiers();\n\n if (modifiers) {\n this.dbxValueListItemModifier.addModifiers(modifiers);\n this._linkedModifiers = modifiers;\n }\n }\n\n private _unlinkModifiers() {\n if (this._linkedModifiers) {\n this.dbxValueListItemModifier.removeModifiers(this._linkedModifiers);\n this._linkedModifiers = undefined;\n }\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { DbxValueListItem } from '../../../layout/list/list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from '../../../layout/list/list.view.value.modifier.directive';\n\nexport type AnchorForValueFunction<T> = (value: T, item: DbxValueListItem<T>) => Maybe<ClickableAnchor>;\n\nexport const DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY = 'router_anchor';\n\n@Directive({\n selector: '[dbxListItemAnchorModifier]'\n})\nexport class DbxListItemAnchorModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _anchorForItem = new BehaviorSubject<Maybe<AnchorForValueFunction<T>>>(undefined);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._anchorForItem.pipe(\n map((anchorForItem) => {\n let modifiers: Maybe<Modifier<DbxValueListItem<T>>>;\n\n if (anchorForItem) {\n modifiers = {\n key: DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.anchor = anchorForItem(x.itemValue, x);\n }\n };\n }\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._anchorForItem.complete();\n }\n\n @Input('dbxListItemAnchorModifier')\n set anchorForItem(anchorForItem: Maybe<AnchorForValueFunction<T>>) {\n this._anchorForItem.next(anchorForItem);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxListItemAnchorModifierDirective } from './router.list.directive';\n\n@NgModule({\n imports: [],\n declarations: [DbxListItemAnchorModifierDirective],\n exports: [DbxListItemAnchorModifierDirective]\n})\nexport class DbxRouterListModule {}\n","/**\n * Set of screen media width types. Their pixel sizes correspond with the DbxScreenMediaService's configuration.\n *\n * Values:\n * - micro: Screen is considered mobile.\n * - small: Screen is consider small, but larger than mobile.\n * - tablet: Screen is considered tablet size.\n * - large: Screen is considered large than a tablet, but not full size.\n * - full: Screen is greater than large.\n */\nexport type ScreenMediaWidthType = 'micro' | 'small' | 'tablet' | 'large' | 'full';\n\nexport const SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP = {\n micro: 0,\n small: 1,\n tablet: 2,\n large: 3,\n full: 4\n};\n\n/**\n * Describes the current screen's vertical space.\n *\n * Values:\n * - tiny: Screen height is tiny, potentially the size of the navigation alone.\n * - normal: Screen has a normal height.\n */\nexport type ScreenMediaHeightType = 'tiny' | 'normal';\n\n/**\n * Compares the breakpoint with the current width and determines if it is \"active\" or not.\n *\n * The current is considered active if it is bigger or equal to the breakpoint.\n *\n * @param current\n * @param breakpoint\n */\nexport function screenMediaWidthTypeIsActive(current: ScreenMediaWidthType, breakpoint: ScreenMediaWidthType) {\n return compareScreenMediaWidthTypes(current, breakpoint, (a, b) => a >= b);\n}\n\nexport function compareScreenMediaWidthTypes(a: ScreenMediaWidthType, b: ScreenMediaWidthType, compare: (a: number, b: number) => boolean) {\n return compare(SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[a], SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[b]);\n}\n","import { Destroyable } from '@dereekb/util';\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport { ObservableOrValue, asObservable, initialize } from '@dereekb/rxjs';\nimport { Subject, map, shareReplay, distinctUntilChanged, throttleTime, Observable, combineLatest } from 'rxjs';\nimport { ScreenMediaWidthType, ScreenMediaHeightType, screenMediaWidthTypeIsActive } from './screen';\nimport { Injectable } 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 _microQuery: MediaQueryList;\n private _smallQuery: MediaQueryList;\n private _tabletQuery: MediaQueryList;\n private _largeQuery: MediaQueryList;\n\n private _tinyHeightQuery: MediaQueryList;\n\n private _updateWidth = new Subject<void>();\n private _updateHeight = new Subject<void>();\n\n readonly widthType$: Observable<ScreenMediaWidthType> = this._updateWidth.pipe(\n initialize(() => this._updateWidth.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readWidthType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly heightType$: Observable<ScreenMediaHeightType> = this._updateWidth.pipe(\n initialize(() => this._updateHeight.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readHeightType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n constructor(private readonly _media: MediaMatcher, config: DbxScreenMediaServiceConfig) {\n const { microScreenWidthMax, smallScreenWidthMax, tabletScreenWidthMax, largeScreenWidthMax } = config;\n\n this._microQuery = this._media.matchMedia(`screen and (max-width:${microScreenWidthMax}px)`);\n this._smallQuery = this._media.matchMedia(`screen and (max-width:${smallScreenWidthMax}px)`);\n this._tabletQuery = this._media.matchMedia(`screen and (max-width:${tabletScreenWidthMax}px)`);\n this._largeQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n this._tinyHeightQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n const widthHandler: (ev: MediaQueryListEvent) => void = () => this._updateWidth.next();\n const heightHandler: (ev: MediaQueryListEvent) => void = () => this._updateHeight.next();\n\n this._microQuery.onchange = widthHandler;\n this._smallQuery.onchange = widthHandler;\n this._tabletQuery.onchange = widthHandler;\n this._largeQuery.onchange = widthHandler;\n this._tinyHeightQuery.onchange = heightHandler;\n }\n\n destroy(): void {\n this._microQuery.onchange = null;\n this._smallQuery.onchange = null;\n this._tabletQuery.onchange = null;\n this._largeQuery.onchange = null;\n this._updateWidth.complete();\n this._updateHeight.complete();\n }\n\n /**\n * Returns an observable that detects whether or no the current width is greater or equal to the given breakpoint.\n *\n * @param inputBreakpoint\n * @returns\n */\n isBreakpointActive(inputBreakpoint: ObservableOrValue<ScreenMediaWidthType>): Observable<boolean> {\n return combineLatest([this.widthType$, asObservable(inputBreakpoint)]).pipe(\n map(([current, breakpoint]) => screenMediaWidthTypeIsActive(current, breakpoint)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n private _readWidthType(): ScreenMediaWidthType {\n let width: ScreenMediaWidthType;\n\n if (this._microQuery.matches) {\n width = 'micro';\n } else if (this._smallQuery.matches) {\n width = 'small';\n } else if (this._tabletQuery.matches) {\n width = 'tablet';\n } else if (this._largeQuery.matches) {\n width = 'large';\n } else {\n width = 'full';\n }\n\n return width;\n }\n\n private _readHeightType(): ScreenMediaHeightType {\n if (this._tinyHeightQuery) {\n return 'tiny';\n } else {\n return 'normal';\n }\n }\n}\n","import { Observable, BehaviorSubject, combineLatest, map, shareReplay, distinctUntilChanged } from 'rxjs';\nimport { ScreenMediaWidthType } from './../../../screen/screen';\nimport { DbxScreenMediaService } from '../../../screen/screen.service';\nimport { applyBestFit, Maybe } from '@dereekb/util';\nimport { Input, Component, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { ClickableAnchorLinkSegueRef, DbxRouterService, DbxRouterTransitionService, AbstractTransitionDirective, tapDetectChanges, DbxButtonDisplayContent } from '@dereekb/dbx-core';\nimport { HorizontalConnectionPos } from '@angular/cdk/overlay';\n\ninterface NavAnchorLink {\n selected: boolean;\n anchor: ClickableAnchorLinkSegueRef;\n}\n\nexport type NavBarContentAlign = 'center' | 'left' | 'right';\nexport type NavbarMode = 'bar' | 'button' | 'icon';\n\n/**\n * Component that displays a navbar.\n */\n@Component({\n selector: 'dbx-navbar',\n templateUrl: './navbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-navbar'\n }\n})\nexport class DbxNavbarComponent extends AbstractTransitionDirective implements OnDestroy {\n @Input()\n navAlign: HorizontalConnectionPos = 'center';\n\n private _icon = new BehaviorSubject<Maybe<string>>(undefined);\n private _defaultIcon = new BehaviorSubject<Maybe<string>>('menu');\n private _defaultText = new BehaviorSubject<Maybe<string>>(undefined);\n\n private _inputMode = new BehaviorSubject<Maybe<NavbarMode>>(undefined);\n private _breakpoint = new BehaviorSubject<ScreenMediaWidthType>('large');\n private _anchors = new BehaviorSubject<ClickableAnchorLinkSegueRef[]>([]);\n\n readonly isBreakpointActive$ = this._dbxScreenMediaService.isBreakpointActive(this._breakpoint);\n\n readonly mode$ = combineLatest([this._inputMode, this.isBreakpointActive$]).pipe(\n map(([inputMode, breakpointActive]) => {\n return breakpointActive ? inputMode ?? 'bar' : 'button';\n }),\n distinctUntilChanged(),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n\n readonly anchors$: Observable<NavAnchorLink[]> = combineLatest([this._anchors, this.initAndUpdateOnTransitionSuccess$]).pipe(\n map(([anchors]) => {\n const results = anchors.map((anchor) => {\n const selected = this._dbxRouterService.isActive(anchor);\n\n return {\n selected,\n anchor\n };\n });\n\n return applyBestFit(\n results,\n (x) => x.selected,\n (a, b) => this._dbxRouterService.comparePrecision(a.anchor, b.anchor),\n (nonBestFit) => ({ ...nonBestFit, selected: false })\n );\n }),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n\n readonly selectedAnchor$: Observable<Maybe<NavAnchorLink>> = this.anchors$.pipe(map((x) => x.find((y) => y.selected)));\n\n readonly hasNoAnchors$ = this.anchors$.pipe(\n map((x) => x.length === 0),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonDisplay$: Observable<DbxButtonDisplayContent> = combineLatest([this._defaultIcon, this._icon, this._defaultText, this.selectedAnchor$, this.mode$]).pipe(\n map(([defaultIcon, icon, defaultText, selectedAnchor, mode]) => {\n let content: DbxButtonDisplayContent;\n\n if (icon) {\n content = { icon, text: defaultText };\n } else if (selectedAnchor) {\n content = { icon: selectedAnchor.anchor.icon ?? defaultIcon, text: selectedAnchor.anchor.title };\n } else {\n content = { icon: defaultIcon ?? 'menu', text: defaultText };\n }\n\n if (mode === 'icon') {\n return { icon: content.icon };\n } else {\n return content;\n }\n }),\n shareReplay(1)\n );\n\n constructor(dbxRouterTransitionService: DbxRouterTransitionService, private cdRef: ChangeDetectorRef, private readonly _dbxScreenMediaService: DbxScreenMediaService, private readonly _dbxRouterService: DbxRouterService) {\n super(dbxRouterTransitionService);\n }\n\n ngOnDestroy(): void {\n this._icon.complete();\n this._defaultIcon.complete();\n this._defaultText.complete();\n this._inputMode.complete();\n this._breakpoint.complete();\n this._anchors.complete();\n }\n\n // MARK: Accessors\n @Input()\n public set icon(icon: Maybe<string>) {\n this._icon.next(icon);\n }\n\n @Input()\n public set defaultIcon(defaultIcon: Maybe<string>) {\n this._defaultIcon.next(defaultIcon);\n }\n\n @Input()\n public set defaultText(defaultText: Maybe<string>) {\n this._defaultText.next(defaultText);\n }\n\n @Input()\n public set anchors(anchors: Maybe<ClickableAnchorLinkSegueRef[]>) {\n this._anchors.next(anchors ?? []);\n }\n\n @Input()\n public set mode(mode: Maybe<NavbarMode>) {\n this._inputMode.next(mode);\n }\n\n @Input()\n public set breakpoint(breakpoint: ScreenMediaWidthType) {\n this._breakpoint.next(breakpoint);\n }\n}\n","<ng-container [ngSwitch]=\"mode$ | async\">\n <!-- Button -->\n <ng-container *ngSwitchDefault>\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchors$ | async\"></dbx-icon-button>\n <mat-menu #menu>\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"x.anchor.icon\">{{ x.anchor.icon }}</mat-icon>\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n </mat-menu>\n </ng-container>\n <!-- Bar -->\n <nav *ngSwitchCase=\"'bar'\" mat-tab-nav-bar [attr.mat-align-tabs]=\"navAlign\">\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n </nav>\n</ng-container>\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxNavbarComponent } from './navbar.component';\nimport { DbxIconButtonModule } from '../../../button';\n\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxIconButtonModule,\n MatTabsModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n DbxRouterAnchorModule\n ],\n declarations: [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 { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxScreenMediaService, DbxScreenMediaServiceConfig, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG } from './screen.service';\n\n@NgModule()\nexport class DbxScreenModule {\n static forRoot(config: DbxScreenMediaServiceConfig = DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG): ModuleWithProviders<DbxScreenModule> {\n return {\n ngModule: DbxScreenModule,\n providers: [\n {\n provide: DbxScreenMediaServiceConfig,\n useValue: config\n },\n DbxScreenMediaService\n ]\n };\n }\n}\n","import { NgZone, OnDestroy, OnInit, Component, Input, ViewChild } from '@angular/core';\nimport { MatDrawerMode, MatSidenav } from '@angular/material/sidenav';\nimport { DbxScreenMediaService } from '../../../screen';\nimport { AbstractTransitionWatcherDirective, DbxRouterTransitionService, ClickableAnchorLinkTree } from '@dereekb/dbx-core';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { distinctUntilChanged, map, shareReplay, Observable, first } from 'rxjs';\nimport { SideNavDisplayMode } from './sidenav';\n\nexport interface DbxSidenavSidebarState {\n mode: SideNavDisplayMode;\n drawer: MatDrawerMode;\n open?: boolean;\n}\n\n/**\n * Navigation component that sits at the side of an app.\n */\n@Component({\n selector: 'dbx-sidenav',\n exportAs: 'sidenav',\n templateUrl: './sidenav.component.html'\n})\nexport class DbxSidenavComponent extends AbstractTransitionWatcherDirective implements OnInit, OnDestroy {\n @Input()\n anchors?: Maybe<ClickableAnchorLinkTree[]>;\n\n @ViewChild(MatSidenav, { static: true })\n readonly sidenav!: MatSidenav;\n\n readonly mode$: Observable<SideNavDisplayMode> = this._screenMediaService.widthType$.pipe(\n distinctUntilChanged(),\n map((width) => {\n let mode!: SideNavDisplayMode;\n\n switch (width) {\n case 'micro':\n case 'small':\n mode = SideNavDisplayMode.MOBILE;\n break;\n case 'tablet':\n mode = SideNavDisplayMode.ICON;\n break;\n case 'large':\n case 'full':\n mode = SideNavDisplayMode.FULL;\n break;\n }\n\n return mode;\n }),\n shareReplay(1)\n );\n\n readonly disableBackdrop$: Observable<boolean> = this.mode$.pipe(\n map((x) => x !== SideNavDisplayMode.MOBILE),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly sizeClass$: Observable<string> = this.mode$.pipe(\n map((mode) => `dbx-sidenav-${mode}`),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly state$: Observable<DbxSidenavSidebarState> = this.mode$.pipe(\n map((mode) => {\n let drawer!: MatDrawerMode;\n let open!: boolean;\n\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n drawer = 'over';\n open = false;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n drawer = 'side';\n open = true;\n break;\n }\n\n return {\n mode,\n drawer,\n open\n };\n }),\n shareReplay(1)\n );\n\n readonly drawer$: Observable<MatDrawerMode> = this.state$.pipe(\n map((x) => x.drawer),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n private _watcherSub = new SubscriptionObject();\n private _stateSub = new SubscriptionObject();\n\n constructor(dbxRouterTransitionService: DbxRouterTransitionService, ngZone: NgZone, private _screenMediaService: DbxScreenMediaService) {\n super(dbxRouterTransitionService, ngZone);\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n this._stateSub.subscription = this.state$.subscribe((state) => {\n if (state.open != null) {\n this._toggleNav(state.open, true);\n }\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._watcherSub.destroy();\n this._stateSub.destroy();\n }\n\n protected updateForSuccessfulTransition(): void {\n this.closeNav();\n }\n\n closeNav(): void {\n this.toggleNav(false);\n }\n\n toggleNav(open?: boolean): void {\n this._toggleNav(open);\n }\n\n private _toggleNav(toggleOpen = !this.sidenav.opened, forced = false): void {\n this.state$.pipe(first()).subscribe(({ mode }) => {\n this.ngZone.run(() => {\n let open: Maybe<boolean>;\n\n if (!forced) {\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n open = toggleOpen;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n // Do nothing. Should be always open.\n break;\n }\n } else {\n open = toggleOpen;\n }\n\n if (open != null) {\n if (open) {\n this.sidenav.open();\n } else {\n this.sidenav.close();\n }\n }\n });\n });\n }\n}\n","<mat-sidenav-container class=\"dbx-sidenav\" [ngClass]=\"(sizeClass$ | async) ?? ''\">\n <mat-sidenav class=\"dbx-sidenav-nav\" [disableClose]=\"disableBackdrop$ | async\" [mode]=\"(drawer$ | async)!\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-anchor-list class=\"dbx-sidenav-anchor-list\" [anchors]=\"anchors\"></dbx-anchor-list>\n <span class=\"spacer\"></span>\n <ng-content select=\"[bottom]\"></ng-content>\n <div class=\"dbx-sidenav-nav-end\"></div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n@Component({\n selector: 'dbx-pagebar',\n templateUrl: './pagebar.component.html'\n})\nexport class DbxPagebarComponent {\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","<mat-toolbar class=\"dbx-pagebar\" [ngClass]=\"color ? 'dbx-bar-' + color : ''\">\n <ng-content select=\"[left]\"></ng-content>\n <span class=\"spacer\"></span>\n <ng-content select=\"[right]\"></ng-content>\n</mat-toolbar>\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\n\nexport const DEFAULT_DBX_SIDENAV_MENU_ICON = 'view_sidebar';\n\n/**\n * Button used to interface with a parent sidenav.\n */\n@Component({\n selector: 'dbx-sidenav-button',\n template: `\n <button class=\"dbx-sidenav-button\" mat-icon-button *ngIf=\"showMenuButton$ | async\" (click)=\"toggleNav()\" aria-label=\"open sidenav button\">\n <mat-icon>{{ sidenavMenuIcon }}</mat-icon>\n </button>\n `\n})\nexport class DbxSidenavButtonComponent {\n readonly mode$ = this.parent.mode$;\n readonly showMenuButton$ = this.mode$.pipe(map((x) => x === SideNavDisplayMode.MOBILE));\n\n private _sidenavMenuIcon: string = DEFAULT_DBX_SIDENAV_MENU_ICON;\n\n constructor(readonly parent: DbxSidenavComponent) {}\n\n toggleNav() {\n this.parent.toggleNav();\n }\n\n @Input()\n get sidenavMenuIcon() {\n return this._sidenavMenuIcon;\n }\n\n set sidenavMenuIcon(sidenavMenuIcon: Maybe<string>) {\n this._sidenavMenuIcon = sidenavMenuIcon || DEFAULT_DBX_SIDENAV_MENU_ICON;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxPagebarComponent } from '../../../layout/bar/pagebar.component';\n\n/**\n * Pre-configured pagebar used with DbxSidenavComponent.\n */\n@Component({\n selector: 'dbx-sidenav-pagebar',\n template: `\n <dbx-pagebar class=\"dbx-sidenav-pagebar\" [color]=\"color\">\n <span left>\n <dbx-sidenav-button [sidenavMenuIcon]=\"sidenavMenuIcon\"></dbx-sidenav-button>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content left></ng-content>\n </span>\n <ng-content right></ng-content>\n </dbx-pagebar>\n `\n})\nexport class DbxSidenavPagebarComponent extends DbxPagebarComponent {\n @Input()\n sidenavMenuIcon: Maybe<string>;\n}\n","import { BehaviorSubject, switchMap, shareReplay, map, of } from 'rxjs';\nimport { Component, Input, OnDestroy } from '@angular/core';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from '../../../layout/bar/bar';\nimport { SideNavDisplayMode } from './sidenav';\n\n/**\n * Pre-configured page used with DbxSidenavComponent.\n *\n * Can optionally be configured to only show the pagebar while in mobile mode.\n */\n@Component({\n selector: 'dbx-sidenav-page',\n template: `\n <div [ngClass]=\"(hidePagebar$ | async) ? 'dbx-pagebar-hide' : ''\">\n <dbx-sidenav-pagebar [sidenavMenuIcon]=\"sidenavMenuIcon\" [color]=\"color\">\n <ng-content left select=\"[navLeft]\"></ng-content>\n <ng-content select=\"[navRight]\"></ng-content>\n </dbx-sidenav-pagebar>\n <div class=\"dbx-content-page dbx-sidenav-page-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxSidenavPageComponent implements OnDestroy {\n @Input()\n sidenavMenuIcon: Maybe<string>;\n\n @Input()\n color?: Maybe<DbxBarColor>;\n\n private _mobileOnly = new BehaviorSubject<boolean>(false);\n\n readonly hidePagebar$ = this._mobileOnly.pipe(\n switchMap((mobileOnly) => (mobileOnly ? this.parent.mode$.pipe(map((x) => x !== SideNavDisplayMode.MOBILE)) : of(false))),\n shareReplay(1)\n );\n\n constructor(readonly parent: DbxSidenavComponent) {}\n\n ngOnDestroy(): void {\n this._mobileOnly.complete();\n }\n\n @Input()\n get mobileOnly(): boolean {\n return this._mobileOnly.value;\n }\n\n set mobileOnly(mobileOnly: boolean) {\n this._mobileOnly.next(mobileOnly);\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n/**\n * Acts as a wrapper for content distributed along a bar.\n */\n@Directive({\n selector: 'dbx-bar,[dbxBar]',\n host: {\n class: 'dbx-bar',\n '[class.dbx-primary-bg]': 'color === \"primary\"',\n '[class.dbx-accent-bg]': 'color === \"accent\"',\n '[class.dbx-warn-bg]': 'color === \"warn\"'\n }\n})\nexport class DbxBarDirective {\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n/**\n * Acts as a divider between content and centers a label within a background.\n */\n@Component({\n selector: 'dbx-bar-header',\n template: `\n <dbx-bar [color]=\"color\">\n <mat-icon class=\"button-spacer\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"text\">{{ text }}</span>\n </dbx-bar>\n `,\n host: {\n class: 'dbx-bar-header dbx-hint'\n }\n})\nexport class DbxBarHeaderComponent {\n @Input()\n text?: Maybe<string>;\n\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","import { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxBarDirective } from './bar.directive';\nimport { DbxBarHeaderComponent } from './bar.header.component';\nimport { DbxPagebarComponent } from './pagebar.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, MatToolbarModule, MatIconModule],\n declarations: [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent],\n exports: [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent]\n})\nexport class DbxBarLayoutModule {}\n","import { Directive, Input } from '@angular/core';\n\n/**\n * Section used to elevate content in a pre-configured manner.\n */\n@Directive({\n selector: 'dbx-content-elevate,[dbxContentElevate]',\n host: {\n class: 'd-block',\n '[class.dbx-content-elevate]': 'elevate'\n }\n})\nexport class DbxContentElevateDirective {\n @Input()\n elevate = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content,[dbxContent]',\n host: {\n class: 'd-block dbx-content'\n }\n})\nexport class DbxContentDirective {}\n","import { Directive, Input } from '@angular/core';\nimport { DbxThemeColor } from '../style/style';\n\n/**\n * Section used to wrap content in a border with internal padding.\n */\n@Directive({\n selector: 'dbx-content-border,[dbxContentBorder]',\n host: {\n class: 'd-block dbx-content-border',\n '[class]': `\"dbx-content-border-\" + color`\n }\n})\nexport class DbxContentBorderDirective {\n @Input()\n color: DbxThemeColor = 'background';\n}\n","import { Input, Directive } from '@angular/core';\n\nexport type DbxContentContainerPadding = 'none' | 'min' | 'small' | 'normal';\n\nexport type DbxContentContainerWidth = 'small' | 'medium' | 'wide' | 'full';\n\n/**\n * Component that limits the max-width of the content.\n */\n@Directive({\n selector: 'dbx-content-container,[dbxContentContainer],.dbx-content-container',\n host: {\n class: 'd-block dbx-content-container',\n '[class]': `\"container-\" + grow + \" container-padding-\" + padding`\n }\n})\nexport class DbxContentContainerDirective {\n @Input()\n grow: DbxContentContainerWidth = 'wide';\n\n @Input()\n padding: DbxContentContainerPadding = 'normal';\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 && elevated',\n '[class.dbx-content-box-wide]': 'wide'\n }\n})\nexport class DbxContentBoxDirective {\n @Input()\n elevate = true;\n\n @Input()\n wide = true;\n\n // MARK: Compat\n /**\n * @Deprecated use elevate instead\n */\n @Input()\n elevated = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content-page,[dbxContentPage]',\n host: {\n class: 'd-block dbx-content-page'\n }\n})\nexport class DbxContentPageDirective {}\n","import { Directive } from '@angular/core';\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 }\n})\nexport class DbxContentPitDirective {}\n","import { DbxContentElevateDirective } from './content.elevate.directive';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxContentDirective } from './content.directive';\nimport { DbxContentBorderDirective } from './content.border.directive';\nimport { DbxContentContainerDirective } from './content.container.directive';\nimport { DbxContentBoxDirective } from './content.box.directive';\nimport { DbxContentPageDirective } from './content.page.directive';\nimport { DbxContentPitDirective } from './content.pit.directive';\n\nconst declarations = [\n //\n DbxContentDirective,\n DbxContentContainerDirective,\n DbxContentBorderDirective,\n DbxContentElevateDirective,\n DbxContentBoxDirective,\n DbxContentPageDirective,\n DbxContentPitDirective\n];\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [CommonModule],\n declarations,\n exports: declarations\n})\nexport class DbxContentLayoutModule {}\n","import { OnDestroy, Input, TemplateRef, ViewContainerRef, Directive } from '@angular/core';\nimport { AbstractIfDirective } from '@dereekb/dbx-core';\nimport { emitDelayObs } from '@dereekb/rxjs';\nimport { ArrayOrValue, Maybe, asArray, filterMaybeValues } from '@dereekb/util';\nimport { of, exhaustMap, shareReplay, BehaviorSubject, combineLatest, switchMap, distinctUntilChanged, map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\n\n/**\n * Structural directive that displays the content if the Sidenav has a specific sidenav size.\n */\n@Directive({\n selector: '[dbxIfSidenavDisplayMode]'\n})\nexport class DbxIfSidenavDisplayModeDirective extends AbstractIfDirective implements OnDestroy {\n private _sidenavModes = new BehaviorSubject<Set<SideNavDisplayMode>>(new Set([SideNavDisplayMode.NONE]));\n\n readonly show$ = this._sidenavModes.pipe(\n switchMap((modes) => {\n return this.dbxSidenavComponent.mode$.pipe(map((mode) => modes.has(mode)));\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n constructor(templateRef: TemplateRef<unknown>, viewContainer: ViewContainerRef, public readonly dbxSidenavComponent: DbxSidenavComponent) {\n super(templateRef, viewContainer);\n }\n\n @Input('dbxIfSidenavDisplayMode')\n get modes() {\n return Array.from(this._sidenavModes.value);\n }\n\n set modes(modes: Maybe<ArrayOrValue<SideNavDisplayMode | string>>) {\n this._sidenavModes.next(new Set(filterMaybeValues(asArray(modes as SideNavDisplayMode))));\n }\n\n override ngOnDestroy(): void {\n this._sidenavModes.complete();\n }\n}\n","import { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatListModule } from '@angular/material/list';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { DbxRouterAnchorListModule } from '../anchorlist/anchorlist.module';\nimport { DbxSidenavPagebarComponent } from './sidenav.pagebar.component';\nimport { DbxSidenavPageComponent } from './sidenav.page.component';\nimport { DbxBarLayoutModule } from '../../../layout/bar/bar.layout.module';\nimport { DbxButtonModule } from '../../../button/button.module';\nimport { DbxContentLayoutModule } from './../../../layout/content/content.layout.module';\nimport { DbxSidenavButtonComponent } from './sidenav.button.component';\nimport { DbxIfSidenavDisplayModeDirective } from './sidenav.ifdisplaymode.directive';\n\nconst declarations = [DbxIfSidenavDisplayModeDirective, DbxSidenavComponent, DbxSidenavButtonComponent, DbxSidenavPagebarComponent, DbxSidenavPageComponent];\n\n@NgModule({\n imports: [CommonModule, DbxBarLayoutModule, DbxRouterAnchorModule, DbxRouterAnchorListModule, DbxButtonModule, DbxContentLayoutModule, MatToolbarModule, MatButtonModule, MatIconModule, MatSidenavModule, MatListModule, MatDividerModule, UIRouterModule],\n declarations,\n exports: declarations\n})\nexport class DbxRouterSidenavModule {}\n","export * from './sidenav.component';\nexport * from './sidenav.module';\nexport * from './sidenav.button.component';\nexport * from './sidenav.pagebar.component';\nexport * from './sidenav.page.component';\nexport * from './sidenav.ifdisplaymode.directive';\nexport * from './sidenav';\n// export * from './side.item.component';\n// export * from './side.title.component';\n// export * from './side.title.content.component';\n","import { NgModule } from '@angular/core';\nimport { DbxRouterAnchorModule } from './anchor/anchor.module';\nimport { DbxRouterAnchorListModule } from './anchorlist/anchorlist.module';\nimport { DbxRouterListModule } from './list/list.module';\nimport { DbxRouterNavbarModule } from './navbar/navbar.module';\nimport { DbxRouterSidenavModule } from './sidenav/sidenav.module';\n\n@NgModule({\n exports: [DbxRouterAnchorModule, DbxRouterAnchorListModule, DbxRouterListModule, DbxRouterNavbarModule, DbxRouterSidenavModule]\n})\nexport class DbxRouterLayoutModule {}\n","import { Component } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\n\n/**\n * SegueAnchor implementation for Angular Router.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbxAngularRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {}\n","<a class=\"dbx-anchor-a\" [attr.target]=\"target$ | async\">\n <dbx-injection></dbx-injection>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxAngularRouterSegueAnchorComponent } from './anchor.component';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, UIRouterModule, DbxInjectionComponentModule],\n declarations: [DbxAngularRouterSegueAnchorComponent],\n exports: [DbxAngularRouterSegueAnchorComponent]\n})\nexport class DbxWebAngularRouterModule {\n static forRoot(): ModuleWithProviders<DbxWebAngularRouterModule> {\n return {\n ngModule: DbxWebAngularRouterModule,\n providers: [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbxAngularRouterSegueAnchorComponent\n }\n } as DbxRouterWebProviderConfig\n }\n ]\n };\n }\n}\n","import { Observable, filter } from 'rxjs';\nimport { Component } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\nimport { TransitionOptions } from '@uirouter/core';\n\n/**\n * SegueAnchor implementation for UIRouter.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbxUIRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {\n readonly uiRef$ = this.ref$.pipe(filter((x) => typeof x === 'string')) as Observable<string | null>;\n readonly uiOptions$ = this.refOptions$ as Observable<TransitionOptions | null>;\n}\n","<a class=\"dbx-anchor-a dbx-anchor-sref\" [attr.target]=\"target$ | async\" [uiSref]=\"(uiRef$ | async) ?? ''\" [uiParams]=\"refParams$ | async\" [uiOptions]=\"(uiOptions$ | async) ?? {}\" uiSrefActive=\"dbx-anchor-active\" uiSrefActiveEq=\"dbx-anchor-active-eq\">\n <dbx-injection [template]=\"template$ | async\"></dbx-injection>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxUIRouterSegueAnchorComponent } from './anchor.component';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, UIRouterModule, DbxInjectionComponentModule],\n declarations: [DbxUIRouterSegueAnchorComponent],\n exports: [DbxUIRouterSegueAnchorComponent]\n})\nexport class DbxWebUIRouterModule {\n static forRoot(): ModuleWithProviders<DbxWebUIRouterModule> {\n return {\n ngModule: DbxWebUIRouterModule,\n providers: [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbxUIRouterSegueAnchorComponent\n }\n } as DbxRouterWebProviderConfig\n }\n ]\n };\n }\n}\n","import { shareReplay, BehaviorSubject, map, Observable, combineLatest, distinctUntilChanged, startWith, first } from 'rxjs';\nimport { Directive, Input, OnDestroy } from '@angular/core';\nimport { ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset } from '@dereekb/dbx-core';\nimport { filterUndefinedValues, firstValue, getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\nimport { FilterWithPreset, timeoutStartWith } from '@dereekb/rxjs';\n\n/**\n * Displays a button and menu for filtering partialPresets.\n */\n@Directive()\nexport abstract class AbstractDbxPartialPresetFilterMenuDirective<F> implements OnDestroy {\n private _partialPresets = new BehaviorSubject<ClickablePartialFilterPreset<F>[]>([]);\n\n readonly filter$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n\n readonly selectedPartialPresets$: Observable<ClickablePartialFilterPreset<F>[]> = combineLatest([this._partialPresets, this.filter$]).pipe(\n map(([partialPresets, selectedFilter]) => {\n const selectedPresets: ClickablePartialFilterPreset<F>[] = partialPresets.filter((x) => x.isActive(selectedFilter));\n return selectedPresets;\n }),\n distinctUntilChanged()\n );\n\n readonly firstSelectedPartialPreset$: Observable<Maybe<ClickablePartialFilterPreset<F>>> = this.selectedPartialPresets$.pipe(\n map((selectedPartialPresets) => firstValue(selectedPartialPresets)),\n distinctUntilChanged()\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = combineLatest([this._partialPresets, this.firstSelectedPartialPreset$]).pipe(\n map(([partialPresets, firstSelectedPartialPreset]) => {\n return partialPresets.map((x) => {\n return {\n ...x,\n selected: x === firstSelectedPartialPreset,\n onClick: () => {\n this.selectPartialPreset(x);\n }\n };\n });\n }),\n shareReplay(1)\n );\n\n @Input()\n get partialPresets(): ClickablePartialFilterPreset<F>[] {\n return this._partialPresets.value;\n }\n\n set partialPresets(partialPresets: ClickablePartialFilterPreset<F>[]) {\n this._partialPresets.next(partialPresets);\n }\n\n constructor(readonly filterSourceDirective: FilterSourceDirective<F>) {}\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 let filter = getValueFromGetter(preset.partialPresetValue) as Partial<F>;\n\n this.filter$.pipe(first()).subscribe((currentFilter) => {\n const nextFilter = { ...currentFilter, ...filterUndefinedValues({ ...currentFilter, ...filter }, true) } as F;\n this.filterSourceDirective.setFilter(nextFilter);\n });\n }\n }\n\n ngOnDestroy(): void {\n this._partialPresets.complete();\n }\n}\n","import { shareReplay, BehaviorSubject, map, combineLatest, distinctUntilChanged, switchMap } from 'rxjs';\nimport { Component, Input } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\n\n/**\n * Displays a button and menu for filtering partial preset values.\n */\n@Component({\n selector: 'dbx-partial-preset-filter-menu',\n templateUrl: './filter.preset.menu.component.html' // share the same template as the preset menu\n})\nexport class DbxPartialPresetFilterMenuComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {\n private _config = new BehaviorSubject<DbxPresetFilterMenuConfig>({});\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this._config, this.firstSelectedPartialPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this._config, this.firstSelectedPartialPreset$);\n\n @Input()\n get config(): DbxPresetFilterMenuConfig {\n return this._config.value;\n }\n\n set config(config: DbxPresetFilterMenuConfig) {\n this._config.next(config);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._config.complete();\n }\n}\n","import { Component } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\n\n@Component({\n selector: 'dbx-preset-partial-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchors$ | async\"></dbx-anchor-list>\n `\n})\nexport class DbxPartialPresetFilterListComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxFilterPopoverButtonComponent } from './filter.popover.button.component';\nimport { DbxPopoverInteractionModule } from '../popover/popover.module';\nimport { DbxFilterPopoverComponent } from './filter.popover.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxFilterWrapperComponent } from './filter.wrapper.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { DbxCoreFilterModule, DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPresetFilterListComponent } from './filter.preset.list.component';\nimport { DbxRouterAnchorListModule } from '../../router/layout/anchorlist/anchorlist.module';\nimport { DbxPresetFilterMenuComponent } from './filter.preset.menu.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxRouterAnchorModule } from '../../router';\nimport { DbxPartialPresetFilterMenuComponent } from './filter.partial.menu.component';\nimport { DbxPartialPresetFilterListComponent } from './filter.partial.list.component';\n\nconst declarations = [DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxFilterPopoverComponent, DbxFilterPopoverButtonComponent, DbxFilterWrapperComponent, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n DbxPopoverInteractionModule,\n DbxCoreFilterModule,\n DbxButtonModule,\n DbxRouterAnchorModule,\n DbxRouterAnchorListModule,\n DbxInjectionComponentModule,\n FlexLayoutModule,\n // Material\n MatMenuModule,\n MatIconModule,\n MatButtonModule\n ],\n declarations,\n exports: [...declarations, DbxCoreFilterModule]\n})\nexport class DbxFilterInteractionModule {}\n","import { ElementRef, Component, ViewChild, Input } from '@angular/core';\nimport { ResizedEvent } from 'angular-resize-event';\n\n/**\n * Wrapper of a block that is broken into two parts, with the bottom content's height\n * being set to 100% of the height minus the top's height.\n *\n * The block is made up of two divs, a top and a bottom. The top is assigned a static height, and the bottom is given the remainder.\n * The height is calculated from 100%.\n */\n@Component({\n selector: 'dbx-two-block',\n template: `\n <div #two class=\"dbx-two-block-content\">\n <div #top class=\"dbx-two-block-top\" (resized)=\"onResized($event)\">\n <ng-content select=\"[top]\"></ng-content>\n </div>\n <div #bottom class=\"dbx-two-block-bottom\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-two-block d-block',\n '[class]': '{ \"dbx-two-block-fixed-top\": fixedTop }'\n }\n})\nexport class DbxTwoBlocksComponent {\n /**\n * Whether or not the top bar should be fixed in place instead of scrolling with the bottom when content is too tall.\n */\n @Input()\n fixedTop = true;\n\n @ViewChild('two', { read: ElementRef, static: true })\n twoElement!: ElementRef;\n\n /*\n @ViewChild('top', { read: ElementRef, static: true })\n topElement!: ElementRef;\n\n @ViewChild('bottom', { read: ElementRef, static: true })\n bottomElement!: ElementRef;\n */\n\n onResized(event: ResizedEvent): void {\n const height = event.newRect.height;\n const element: HTMLElement = this.twoElement.nativeElement;\n element.style.setProperty('--dbx-two-block-top-height', `${height}px`);\n }\n}\n","import { DbxRouterAnchorModule } from '../../router';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxTwoBlocksComponent } from './two.block.component';\nimport { AngularResizeEventModule } from 'angular-resize-event';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, DbxRouterAnchorModule, AngularResizeEventModule],\n declarations: [DbxTwoBlocksComponent],\n exports: [DbxTwoBlocksComponent]\n})\nexport class DbxBlockLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Component that formats a card-box of content.\n */\n@Component({\n selector: 'dbx-card-box',\n template: `\n <div class=\"dbx-card-box\">\n <div class=\"dbx-section-header\">\n <div class=\"dbx-section-header-content\">\n <h4 class=\"dbx-section-header-content-title\">\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"header\" class=\"title-text\">{{ header }}</span>\n </h4>\n <span class=\"spacer\"></span>\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n </div>\n <div class=\"dbx-card-box-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxCardBoxComponent {\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n}\n","import { Component } from '@angular/core';\n\n/**\n * Component that wraps a card box and adds content padding.\n */\n@Component({\n selector: 'dbx-card-box-container',\n template: `\n <div class=\"dbx-card-box-container\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DbxCardBoxContainerComponent {}\n","import { MatIconModule } from '@angular/material/icon';\nimport { DbxCardBoxContainerComponent } from './card.box.container.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCardBoxComponent } from './card.box.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxCardBoxComponent, DbxCardBoxContainerComponent],\n exports: [DbxCardBoxComponent, DbxCardBoxContainerComponent]\n})\nexport class DbxCardBoxLayoutModule {}\n","import { Injectable, OnDestroy, Provider } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Subject, distinct, map } from 'rxjs';\nimport { SegueRef } from '@dereekb/dbx-core';\nimport { isMaybeNot, Maybe } from '@dereekb/util';\n\nexport interface TwoColumnsState {\n /**\n * Whether or not to reverse the sizing.\n */\n reverseSizing: boolean;\n /**\n * Whether or not the right side should be shown.\n */\n showRight: boolean;\n /**\n * Whether or not there is any registered right content currently.\n */\n hasRight: boolean;\n /**\n * Whether or not to allow the left to fill up the screen when no right is shown.\n */\n fullLeft: boolean;\n /**\n * Optional ref to use with TwoColumns that use an sref for the back button.\n */\n backRef?: Maybe<SegueRef>;\n /**\n * Size of the view's total width in pixels.\n */\n totalWidth?: Maybe<number>;\n /**\n * Minimum right side size allowed before hiding the left content.\n */\n minRightWidth: number;\n}\n\nexport const DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH = 320;\n\nconst INITIAL_STATE: TwoColumnsState = {\n reverseSizing: false,\n showRight: false,\n hasRight: false,\n fullLeft: false,\n minRightWidth: DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH\n};\n\n@Injectable()\nexport class TwoColumnsContextStore extends ComponentStore<TwoColumnsState> implements OnDestroy {\n private readonly _back = new Subject<void>();\n\n constructor() {\n super({ ...INITIAL_STATE });\n }\n\n // MARK: Accessors\n readonly hideLeft$ = this.state$.pipe(\n map((x) => {\n /**\n * The right side is less-than or equal to half the total width when resizing, so we can use the total width to guess the best case current scenario.\n */\n const expectedRightWidth = (x.totalWidth ?? 0) / 2;\n const hideLeft = x.showRight && expectedRightWidth < x.minRightWidth;\n return hideLeft;\n })\n );\n\n /**\n * Pipes the current state of reverseSizing.\n */\n readonly reverseSizing$ = this.state$.pipe(map((x) => x.reverseSizing));\n\n /**\n * Pipes the current state of showRight.\n */\n readonly hasRight$ = this.state$.pipe(map((x) => x.showRight));\n\n /**\n * Pipes the current state of showRight.\n */\n readonly currentShowRight$ = this.state$.pipe(map((x) => x.showRight));\n\n /**\n * Pipes the current state of showRight and hasRight\n */\n readonly showRight$ = this.state$.pipe(map((x) => x.hasRight && x.showRight));\n\n /**\n * Convenience function for the showRight compliment.\n */\n readonly hideRight$ = this.showRight$.pipe(map((x) => !x));\n\n /**\n * Pipes the current state of fullLeft.\n */\n readonly fullLeft$ = this.state$.pipe(map((x) => x.fullLeft));\n\n /**\n * Whether or not to show the full left.\n */\n readonly showFullLeft$ = this.state$.pipe(map((x) => !(x.hasRight && x.showRight) && x.fullLeft));\n\n /**\n * Pipes the current backRef value.\n */\n readonly backRef$ = this.state$.pipe(\n map((x) => x.backRef),\n distinct()\n );\n\n /**\n * Emits back events.\n */\n readonly back$ = this._back.asObservable();\n\n // MARK: State Changes\n /**\n * Completely resets the store.\n */\n readonly reset = this.updater(() => ({ ...INITIAL_STATE }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setReverseSizing = this.updater((state, reverseSizing: Maybe<boolean>) => (isMaybeNot(reverseSizing) ? state : { ...state, reverseSizing }));\n\n /**\n * Changes the state to have right content or not.\n */\n readonly setHasRight = this.updater((state, hasRight: Maybe<boolean>) => (isMaybeNot(hasRight) ? state : { ...state, hasRight }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setShowRight = this.updater((state, showRight: Maybe<boolean>) => (isMaybeNot(showRight) ? state : { ...state, showRight }));\n\n /**\n * Sets the full left. If undefined is passed, no change occurs.\n */\n readonly setFullLeft = this.updater((state, fullLeft: Maybe<boolean>) => (isMaybeNot(fullLeft) ? state : { ...state, fullLeft }));\n\n /**\n * Sets the new back ref.\n */\n readonly setBackRef = this.updater((state, backRef: Maybe<SegueRef>) => ({ ...state, backRef }));\n\n /**\n * Sets the new total width.\n */\n readonly setTotalWidth = this.updater((state, totalWidth: Maybe<number>) => ({ ...state, totalWidth }));\n\n /**\n * Sets the new min right width.\n */\n readonly setMinRightWidth = this.updater((state, minRightWidth: Maybe<number>) => ({ ...state, minRightWidth: minRightWidth ?? DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH }));\n\n /**\n * Emits a back event.\n */\n back(): void {\n this._back.next();\n }\n\n // MARK: Internal\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._back.complete();\n }\n}\n\nexport function provideTwoColumnsContext(): Provider[] {\n return [\n {\n provide: TwoColumnsContextStore,\n useClass: TwoColumnsContextStore\n }\n ];\n}\n","import { Directive, EventEmitter, Output, OnInit } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with an DbxTwoColumnComponent to help respond to a \"back\" function.\n */\n@Directive({\n selector: '[dbxTwoColumnBack]'\n})\nexport class DbxTwoColumnBackDirective extends AbstractSubscriptionDirective implements OnInit {\n @Output('dbxTwoColumnBack')\n public back = new EventEmitter();\n\n constructor(public readonly twoColumnsContextStore: TwoColumnsContextStore) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.twoColumnsContextStore.back$.subscribe(() => this.back.emit());\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","import { ChangeDetectorRef, OnDestroy, ChangeDetectionStrategy, OnInit, Component, Inject, Input, ElementRef } from '@angular/core';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { Observable, BehaviorSubject, combineLatest } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\n\nexport interface DbxTwoColumnViewState {\n showRight: boolean;\n showFullLeft: boolean;\n hideLeftColumn: boolean;\n reverseSizing: boolean;\n inSectionPage: boolean;\n}\n\n/**\n * Responsive component meant to split a left and right column.\n *\n * The left column is smaller than the right column, which contains the primary content.\n *\n * Requires a TwoColumnsContextStore to be provided.\n */\n@Component({\n selector: 'dbx-two-column',\n templateUrl: './two.column.component.html',\n exportAs: 'columns',\n host: {\n class: 'dbx-two-column',\n '[class]': \"{ 'right-shown': v.showRight, 'full-left': v.showFullLeft,'hide-left-column': v.hideLeftColumn, 'two-column-reverse-sizing': v.reverseSizing, 'dbx-section-page-two': v.inSectionPage }\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxTwoColumnComponent extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private _view: DbxTwoColumnViewState = { showRight: false, showFullLeft: true, hideLeftColumn: false, reverseSizing: false, inSectionPage: false };\n\n private _inSectionPage = new BehaviorSubject<boolean>(false);\n\n readonly reverseSizing$ = this.twoColumnsContextStore.reverseSizing$;\n readonly hideLeftColumn$: Observable<boolean> = this.twoColumnsContextStore.hideLeft$;\n readonly showRight$: Observable<boolean> = this.twoColumnsContextStore.showRight$;\n readonly showFullLeft$: Observable<boolean> = this.twoColumnsContextStore.showFullLeft$;\n\n readonly hideRight$: Observable<boolean> = this.twoColumnsContextStore.hideRight$;\n\n constructor(@Inject(TwoColumnsContextStore) public readonly twoColumnsContextStore: TwoColumnsContextStore, private elementRef: ElementRef, readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = combineLatest([this.showRight$, this.showFullLeft$, this.hideLeftColumn$, this.reverseSizing$, this._inSectionPage]).subscribe(([showRight, showFullLeft, hideLeftColumn, reverseSizing, inSectionPage]: [boolean, boolean, boolean, boolean, boolean]) => {\n this._view = {\n showRight,\n showFullLeft,\n hideLeftColumn,\n reverseSizing,\n inSectionPage\n };\n\n safeMarkForCheck(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._inSectionPage.complete();\n }\n\n get v(): DbxTwoColumnViewState {\n return this._view;\n }\n\n @Input()\n set reverseSizing(reverseSizing: boolean) {\n this.twoColumnsContextStore.setReverseSizing(reverseSizing);\n }\n\n @Input()\n set inSectionPage(inSectionPage: boolean) {\n this._inSectionPage.next(inSectionPage);\n }\n\n onResized(event: ResizedEvent): void {\n const totalWidth = (this.elementRef.nativeElement as HTMLElement).clientWidth;\n this.twoColumnsContextStore.setTotalWidth(totalWidth);\n }\n}\n","<dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height left-column\">\n <div *ngIf=\"!v.hideLeftColumn && v.reverseSizing\" (resized)=\"onResized($event)\"></div>\n <ng-content select=\"[left]\"></ng-content>\n</dbx-content-container>\n<dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height right-column\" *ngIf=\"v.showRight\">\n <div *ngIf=\"v.hideLeftColumn || !v.reverseSizing\" (resized)=\"onResized($event)\"></div>\n <ng-content select=\"[right]\"></ng-content>\n</dbx-content-container>\n","import { Input, OnDestroy, Directive, OnInit } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\nimport { provideTwoColumnsContext, TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Provides a dbxTwoColumnContextStore\n */\n@Directive({\n selector: '[dbxTwoColumnContext]',\n providers: provideTwoColumnsContext()\n})\nexport class DbxTwoColumnContextDirective implements OnInit, OnDestroy {\n private _showRight = new BehaviorSubject<Maybe<boolean>>(undefined);\n\n constructor(readonly twoColumnsContextStore: TwoColumnsContextStore) {}\n\n ngOnInit(): void {\n this.twoColumnsContextStore.setShowRight(this._showRight);\n }\n\n ngOnDestroy(): void {\n this._showRight.complete();\n }\n\n @Input()\n set showRight(showRight: Maybe<boolean | ''>) {\n this._showRight.next(Boolean(showRight));\n }\n}\n","import { OnInit, Directive, Input, OnDestroy } from '@angular/core';\nimport { isNotNullOrEmptyString, Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the full left to true.\n */\n@Directive({\n selector: '[dbxTwoColumnFullLeft]'\n})\nexport class DbxTwoColumnFullLeftDirective implements OnInit, OnDestroy {\n private _fullLeft = new BehaviorSubject<boolean>(true);\n\n @Input('dbxTwoColumnFullLeft')\n get fullLeft(): boolean {\n return this._fullLeft.value;\n }\n\n set fullLeft(fullLeft: Maybe<boolean | ''>) {\n if (isNotNullOrEmptyString(fullLeft)) {\n // only respond to boolean values\n this._fullLeft.next(Boolean(fullLeft));\n }\n }\n\n constructor(private readonly _twoColumnsContextStore: TwoColumnsContextStore) {}\n\n ngOnInit(): void {\n this._twoColumnsContextStore.setFullLeft(this._fullLeft);\n }\n\n ngOnDestroy(): void {\n this._fullLeft.complete();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Two Columns related component that sits at the top of the content bodies and wraps content.\n */\n@Component({\n selector: 'dbx-two-column-head',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-two-column-head',\n '[class.d-block]': 'block',\n '[class.full]': 'full'\n }\n})\nexport class DbxTwoColumnColumnHeadComponent {\n @Input()\n block?: boolean;\n\n @Input()\n full?: boolean;\n}\n","import { Directive, Input } from '@angular/core';\nimport { asSegueRef, SegueRefOrSegueRefRouterLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the backRef of the TwoColumnsContextStore.\n */\n@Directive({\n selector: '[dbxTwoColumnSref]'\n})\nexport class DbxTwoColumnSrefDirective {\n constructor(private readonly _twoColumnsContextStore: TwoColumnsContextStore) {}\n\n @Input('dbxTwoColumnSref')\n public set ref(ref: Maybe<SegueRefOrSegueRefRouterLink | ''>) {\n const segueRef = ref ? asSegueRef(ref) : undefined;\n this._twoColumnsContextStore.setBackRef(segueRef);\n }\n}\n","import { AfterViewInit, OnDestroy, Component, Inject, Input } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, map } from 'rxjs';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Optional responsive component that wraps content on the right side and shows a navigation bar.\n *\n * When rendered it will trigger the context to show left.\n */\n@Component({\n selector: 'dbx-two-column-right',\n templateUrl: './two.column.right.component.html',\n host: {\n class: 'dbx-two-column-right d-block'\n }\n})\nexport class DbxTwoColumnRightComponent implements AfterViewInit, OnDestroy {\n @Input()\n header?: Maybe<string>;\n\n @Input()\n block?: boolean;\n\n private _showBack = new BehaviorSubject<boolean>(true);\n\n readonly ref$: Observable<Maybe<ClickableAnchor>> = this.twoColumnsContextStore.backRef$;\n\n readonly showBack$: Observable<boolean> = combineLatest([\n this._showBack,\n this.ref$.pipe(map((x) => !x)) // TODO: Is this correct? Show back if ref is not defined?\n ]).pipe(map(([a, b]: [boolean, boolean]) => a && b));\n\n constructor(@Inject(TwoColumnsContextStore) private readonly twoColumnsContextStore: TwoColumnsContextStore) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.twoColumnsContextStore.setHasRight(true);\n });\n }\n\n ngOnDestroy(): void {\n this._showBack.complete();\n this.twoColumnsContextStore.setHasRight(false);\n }\n\n @Input()\n get showBack(): boolean {\n return this._showBack.value;\n }\n\n set showBack(showBack: boolean) {\n this._showBack.next(showBack);\n }\n\n /**\n * Minimum right-side width allowed in pixels.\n */\n @Input()\n set minRightWidth(minRightWidth: Maybe<number | ''>) {\n this.twoColumnsContextStore.setMinRightWidth(typeof minRightWidth === 'number' ? minRightWidth : undefined);\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","<dbx-two-column-head [block]=\"block\" [full]=\"true\">\n <!-- Back Buttons -->\n <ng-container *ngIf=\"showBack$ | async\">\n <button mat-icon-button class=\"back-button\" (click)=\"backClicked()\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"ref$ | async\">\n <dbx-anchor [anchor]=\"ref$ | async\">\n <button mat-icon-button class=\"back-button\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </dbx-anchor>\n </ng-container>\n <span *ngIf=\"header\" class=\"right-nav-title\">{{ header }}</span>\n <span class=\"right-nav-spacer\"></span>\n <span class=\"spacer\"></span>\n <ng-content select=\"[nav]\"></ng-content>\n</dbx-two-column-head>\n<div class=\"dbx-two-column-right-content\">\n <ng-content></ng-content>\n</div>\n","import { Directive, OnInit, OnDestroy } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxRouterService, isSegueRefActive } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { shareReplay, distinctUntilChanged, Subscription } from 'rxjs';\nimport { isNot } from '@dereekb/rxjs';\n\n/**\n * Used with a DbxTwoColumnComponent to control showing right when the current route is a child of the backRef.\n */\n@Directive({\n selector: '[dbxTwoColumnSrefShowRight]'\n})\nexport class DbxTwoColumnSrefShowRightDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n 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(private readonly _twoColumnsContextStore: TwoColumnsContextStore, private readonly _dbxRouterService: DbxRouterService) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this._twoColumnsContextStore.setShowRight(this.showRight$) as Subscription;\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxRouterAnchorModule } from '../../../router';\nimport { DbxContentLayoutModule } from '../../content';\nimport { DbxTwoColumnSrefDirective } from './two.column.sref.directive';\nimport { DbxTwoColumnComponent } from './two.column.component';\nimport { DbxTwoColumnColumnHeadComponent } from './two.column.head.component';\nimport { DbxTwoColumnRightComponent } from './two.column.right.component';\nimport { DbxTwoColumnBackDirective } from './two.column.back.directive';\nimport { DbxTwoColumnFullLeftDirective } from './two.column.full.left.directive';\nimport { DbxTwoColumnContextDirective } from './two.column.context.directive';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { DbxTwoColumnSrefShowRightDirective } from './two.column.sref.showright.directive';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxRouterAnchorModule, DbxContentLayoutModule, AngularResizeEventModule],\n declarations: [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadComponent, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective],\n exports: [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadComponent, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective]\n})\nexport class DbxTwoColumnLayoutModule {}\n","import { Component, Inject, Input } from '@angular/core';\nimport { TwoColumnsContextStore } from '../two';\n\n/**\n * Pre-configured Two-columns view that only has a left view and shows full left.\n */\n@Component({\n selector: 'dbx-one-column',\n template: `\n <ng-container>\n <dbx-two-column [inSectionPage]=\"inSectionPage\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content left></ng-content>\n </dbx-two-column>\n </ng-container>\n `,\n exportAs: 'columns',\n providers: [TwoColumnsContextStore]\n})\nexport class DbxOneColumnComponent {\n constructor(@Inject(TwoColumnsContextStore) public readonly twoColumnsContextStore: TwoColumnsContextStore) {\n twoColumnsContextStore.setFullLeft(true);\n }\n\n @Input()\n inSectionPage = true;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from '../two';\nimport { DbxOneColumnComponent } from './one.column.component';\n\n@NgModule({\n imports: [CommonModule, DbxTwoColumnLayoutModule],\n declarations: [DbxOneColumnComponent],\n exports: [DbxOneColumnComponent]\n})\nexport class DbxOneColumnLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from './two';\nimport { DbxOneColumnLayoutModule } from './one';\n\n@NgModule({\n exports: [DbxOneColumnLayoutModule, DbxTwoColumnLayoutModule]\n})\nexport class DbxColumnLayoutModule {}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n/**\n * Toolbar-like component that wraps content. Generally sits at the top of a page.\n */\n@Component({\n selector: 'dbx-flag',\n template: `\n <div class=\"dbx-flag\">\n <mat-toolbar [color]=\"color\">\n <ng-content></ng-content>\n </mat-toolbar>\n </div>\n `\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbxFlagComponent {\n @Input()\n color: ThemePalette = 'accent';\n}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n/**\n * Pre-configured dbx-flag prompt to do something.\n */\n@Component({\n selector: 'dbx-flag-prompt',\n template: `\n <dbx-flag [color]=\"color\">\n <span class=\"dbx-flag-prompt\">{{ text }}</span>\n <span class=\"dbx-flag-spacer\"></span>\n <ng-content></ng-content>\n </dbx-flag>\n `\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbxFlagPromptComponent {\n @Input()\n color: ThemePalette = 'accent';\n\n @Input()\n text?: string;\n}\n","import { MatToolbarModule } from '@angular/material/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxFlagComponent } from './flag.component';\nimport { DbxFlagPromptComponent } from './flag.prompt.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, MatToolbarModule],\n declarations: [DbxFlagComponent, DbxFlagPromptComponent],\n exports: [DbxFlagComponent, DbxFlagPromptComponent]\n})\nexport class DbxFlagLayoutModule {}\n","import { ScreenMediaWidthType } from '../../screen/screen';\nimport { DbxScreenMediaService } from '../../screen/screen.service';\nimport { Directive, ChangeDetectorRef, Input, OnInit, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, map, shareReplay, distinctUntilChanged, delay } from 'rxjs';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Used to declare a dbxFlexGroup.\n */\n@Directive({\n selector: '[dbxFlexGroup]',\n host: {\n '[class.dbx-flex-group]': 'content',\n '[class.dbx-flex-group-small]': 'small',\n '[class.dbx-flex-group-relative]': 'relative'\n }\n})\nexport class DbxFlexGroupDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n @Input()\n content = true;\n\n @Input()\n relative = false;\n\n private _small = false;\n\n private _breakpoint = new BehaviorSubject<ScreenMediaWidthType>('tablet');\n readonly isSmallScreen$ = this._dbxScreenMediaService.isBreakpointActive(this._breakpoint).pipe(\n map((x) => !x),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n get small(): boolean {\n return this._small;\n }\n\n constructor(private readonly _dbxScreenMediaService: DbxScreenMediaService, readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.isSmallScreen$.pipe(delay(0)).subscribe((small) => {\n this._small = small;\n safeDetectChanges(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._breakpoint.complete();\n }\n\n @Input()\n set breakpoint(breakpoint: Maybe<ScreenMediaWidthType>) {\n this._breakpoint.next(breakpoint ?? 'tablet');\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { DbxFlexSize } from './flex';\n\n/**\n * Applies the proper dbx-flex size class based on the input.\n */\n@Directive({\n selector: '[dbxFlexSize]',\n host: {\n '[class]': '\"dbx-flex-\" + size'\n }\n})\nexport class DbxFlexSizeDirective {\n @Input('dbxFlexSize')\n size: DbxFlexSize = 1;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxFlexGroupDirective } from './flex.group.directive';\nimport { DbxFlexSizeDirective } from './flex.size.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxFlexGroupDirective, DbxFlexSizeDirective],\n exports: [DbxFlexGroupDirective, DbxFlexSizeDirective]\n})\nexport class DbxFlexLayoutModule {}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Section piece that puts an icon on the left, and arbitrary content on the right with a header.\n */\n@Component({\n selector: 'dbx-icon-item',\n template: `\n <div class=\"dbx-icon-item\">\n <div class=\"left\" *ngIf=\"icon\">\n <mat-icon>{{ icon }}</mat-icon>\n </div>\n <div class=\"right\">\n <h3 *ngIf=\"header\" class=\"dbx-icon-item-header\">{{ header }}</h3>\n <div class=\"right-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n `\n})\nexport class DbxIconItemComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxIconItemComponent } from './item.icon.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxIconItemComponent],\n exports: [DbxIconItemComponent]\n})\nexport class DbxItemLayoutModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Component that is centered for use within an empty list.\n */\n@Component({\n selector: 'dbx-list-empty-content',\n template: `\n <div class=\"dbx-list-empty-content\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DbxListEmptyContentComponent {}\n","import { Directive, Inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\nimport { ReadableError, ReadableErrorWithCode } from '@dereekb/util';\n\n@Directive()\nexport abstract class AbstractDbxErrorWidgetComponent<T extends ReadableError = ReadableError> {\n get code() {\n return this.data.code;\n }\n\n get message() {\n return this.data.message;\n }\n\n constructor(@Inject(DBX_INJECTION_COMPONENT_DATA) readonly data: ReadableErrorWithCode<T>) {}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-label',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-label'\n }\n})\nexport class DbxLabelComponent {}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Combines a dbx-label and arbitrary content.\n */\n@Component({\n selector: 'dbx-label-block',\n template: `\n <dbx-label class=\"d-block dbx-label-padded\">{{ header }}</dbx-label>\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-label-block'\n }\n})\nexport class DbxLabelBlockComponent {\n @Input()\n header?: Maybe<string>;\n}\n","import { Component } from '@angular/core';\nimport { ServerError, ServerErrorResponseData } from '@dereekb/util';\nimport { AbstractDbxErrorWidgetComponent } from './error.widget.directive';\n\n@Component({\n template: `\n <dbx-label-block header=\"Error Code\">{{ code }}</dbx-label-block>\n <dbx-label-block header=\"Error Data\" *ngIf=\"serverErrorData\">\n <p class=\"dbx-json\">{{ serverErrorData | json }}</p>\n </dbx-label-block>\n `,\n host: {\n class: 'd-block dbx-error-default-error-widget dbx-content-container'\n }\n})\nexport class DbxErrorDefaultErrorWidgetComponent extends AbstractDbxErrorWidgetComponent {\n get serverErrorData(): ServerErrorResponseData | undefined {\n return (this.data as ServerError).data;\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeValues, mapIterable, StringErrorCode } from '@dereekb/util';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\n\nexport const DEFAULT_ERROR_WIDGET_CODE = 'DEFAULT_ERROR_WIDGET';\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 readonly componentClass: Type<unknown>;\n}\n\n/**\n * Service used to register error widgets.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxErrorWidgetService {\n private _entries = new Map<StringErrorCode, DbxErrorWidgetEntry>();\n\n constructor() {\n this.registerDefaultEntry({ componentClass: DbxErrorDefaultErrorWidgetComponent });\n }\n\n registerDefaultEntry(entry: Omit<DbxErrorWidgetEntry, 'code'>) {\n return this.register({\n ...entry,\n code: DEFAULT_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, entry);\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 getErrorWidgetEntry(code: StringErrorCode): Maybe<DbxErrorWidgetEntry> {\n return this._entries.get(code);\n }\n\n getErrorWidgetEntries(codes: Iterable<StringErrorCode>): DbxErrorWidgetEntry[] {\n return filterMaybeValues(mapIterable(codes ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { Observable, BehaviorSubject, map } from 'rxjs';\nimport { Component, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ReadableError, ReadableErrorWithCode } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorWidgetService } from './error.widget.service';\n\n/**\n * Used to display a corresponding error widget based on the input data.\n */\n@Component({\n selector: 'dbx-error-widget-view',\n template: `\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n `,\n host: {\n class: 'error-dbx-widget-view'\n }\n})\nexport class DbxErrorWidgetViewComponent implements OnDestroy {\n private _errorWithCode = new BehaviorSubject<Maybe<ReadableErrorWithCode>>(undefined);\n\n readonly config$: Observable<Maybe<DbxInjectionComponentConfig>> = this._errorWithCode.pipe(\n map((error: Maybe<ReadableErrorWithCode>) => {\n let config: Maybe<DbxInjectionComponentConfig>;\n\n if (error != null) {\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code) ?? this.dbxErrorWidgetService.getDefaultErrorWidgetEntry();\n\n if (entry) {\n config = {\n componentClass: entry.componentClass,\n data: error\n };\n }\n }\n\n return config;\n })\n );\n\n constructor(readonly dbxErrorWidgetService: DbxErrorWidgetService) {}\n\n ngOnDestroy(): void {\n this._errorWithCode.complete();\n }\n\n @Input()\n set error(error: Maybe<ReadableError>) {\n const config = error && error.code ? (error as ReadableErrorWithCode) : undefined;\n this._errorWithCode.next(config);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe, ReadableError } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-error-details',\n template: `\n <dbx-error-widget-view [error]=\"error\"></dbx-error-widget-view>\n `,\n host: {\n class: 'dbx-block dbx-error-details'\n }\n})\nexport class DbxErrorDetailsComponent {\n @Input()\n error?: Maybe<ReadableError>;\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { ReadableError } from '@dereekb/util';\nimport { AbstractPopoverDirective } from '../interaction/popover/abstract.popover.directive';\nimport { DbxPopoverKey } from '../interaction/popover/popover';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\n\nexport const DEFAULT_ERROR_POPOVER_KEY = 'error';\n\nexport interface DbxErrorPopoverConfig {\n origin: ElementRef;\n error: ReadableError;\n}\n\n@Component({\n template: `\n <dbx-popover-content class=\"dbx-error-popover\">\n <dbx-popover-header [header]=\"code\" icon=\"error\"></dbx-popover-header>\n <dbx-popover-scroll-content>\n <dbx-error-details [error]=\"error\"></dbx-error-details>\n </dbx-popover-scroll-content>\n </dbx-popover-content>\n `\n})\nexport class DbxErrorPopoverComponent extends AbstractPopoverDirective<void, ReadableError> {\n get error() {\n return this.popover.data as ReadableError;\n }\n\n get code() {\n return this.error.code;\n }\n\n static openPopover(popoverService: DbxPopoverService, { origin, error }: DbxErrorPopoverConfig, popoverKey?: DbxPopoverKey) {\n return popoverService.open({\n key: popoverKey ?? DEFAULT_ERROR_POPOVER_KEY,\n origin,\n isResizable: true,\n componentClass: DbxErrorPopoverComponent,\n data: error\n });\n }\n}\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { Maybe, ErrorInput, toReadableError, ReadableError, ReadableErrorWithCode, isDefaultReadableError } from '@dereekb/util';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\n\n/**\n * Basic error component.\n */\n@Component({\n selector: 'dbx-error',\n templateUrl: './error.component.html'\n})\nexport class DbxReadableErrorComponent {\n @ViewChild('buttonPopoverOrigin', { read: ElementRef })\n buttonPopoverOrigin!: ElementRef;\n\n private _error?: Maybe<ReadableErrorWithCode>;\n\n constructor(readonly popoverService: DbxPopoverService) {}\n\n get error(): Maybe<ReadableError> {\n return this._error;\n }\n\n @Input()\n set error(error: Maybe<ErrorInput>) {\n this._error = toReadableError(error);\n }\n\n get isDefaultError() {\n return isDefaultReadableError(this._error);\n }\n\n get message(): Maybe<string> {\n return this._error?.message || 'An error occured.';\n }\n\n openErrorPopover() {\n if (this.error != null) {\n DbxErrorPopoverComponent.openPopover(this.popoverService, {\n origin: this.buttonPopoverOrigin,\n error: this.error\n });\n }\n }\n}\n","<div *ngIf=\"error\" class=\"dbx-error dbx-warn\">\n <button [disabled]=\"isDefaultError\" #buttonPopoverOrigin mat-icon-button class=\"dbx-error-button\" (click)=\"openErrorPopover()\"><mat-icon>error</mat-icon></button>\n <span class=\"dbx-error-message\" *ngIf=\"message\">{{ message }}</span>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { Maybe } from '@dereekb/util';\n\nexport const DEFAULT_LOADING_PROGRESS_DIAMETER = 96;\n\n/**\n * Basic loading progress component.\n */\n@Component({\n selector: 'dbx-loading-progress',\n template: `\n <div class=\"loading-progress-view\">\n <ng-container [ngSwitch]=\"linear\">\n <mat-progress-bar *ngSwitchCase=\"true\" [mode]=\"bmode\" [color]=\"color\" [bufferValue]=\"bufferValue\" [value]=\"value\" style=\"margin: auto;\"></mat-progress-bar>\n <mat-progress-spinner *ngSwitchDefault [diameter]=\"diameter || 96\" [mode]=\"smode\" [color]=\"color\" [value]=\"value\" style=\"margin: auto;\"></mat-progress-spinner>\n </ng-container>\n <div *ngIf=\"text\" class=\"hint\">{{ text }}</div>\n </div>\n `\n})\nexport class DbxLoadingProgressComponent {\n private _diameter: number = DEFAULT_LOADING_PROGRESS_DIAMETER;\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n @Input()\n mode: ProgressBarMode | ProgressSpinnerMode = 'indeterminate';\n\n @Input()\n color: ThemePalette = 'primary';\n\n @Input()\n value?: number;\n\n @Input()\n bufferValue: number = undefined as unknown as number; // mat-progress-bar typing prevents using undefined as a type\n\n @Input()\n get diameter(): number {\n return this._diameter;\n }\n\n set diameter(diameter: Maybe<number>) {\n this._diameter = diameter ?? DEFAULT_LOADING_PROGRESS_DIAMETER;\n }\n\n get bmode(): ProgressBarMode {\n return this.mode;\n }\n\n get smode(): ProgressSpinnerMode {\n return this.mode as ProgressSpinnerMode;\n }\n}\n","import { startWith, distinctUntilChanged, shareReplay, combineLatest, map, BehaviorSubject } from 'rxjs';\nimport { OnDestroy, Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ErrorInput, Maybe } from '@dereekb/util';\nimport { checkNgContentWrapperHasContent } from '@dereekb/dbx-core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\n\n/**\n * DbxBasicLoadingComponent loading state.\n */\nexport enum LoadingComponentState {\n NONE = -1,\n LOADING = 0,\n CONTENT = 1,\n ERROR = 2\n}\n\n/**\n * Basic loading component.\n */\n@Component({\n selector: 'dbx-basic-loading',\n templateUrl: './basic-loading.component.html'\n})\nexport class DbxBasicLoadingComponent implements OnDestroy {\n private _loading = new BehaviorSubject<Maybe<boolean>>(undefined);\n private _show = new BehaviorSubject<boolean>(true);\n private _error = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n private _customErrorContent = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n private _customLoadingContent = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n\n readonly state$ = combineLatest([this._loading, this._show, this._error]).pipe(\n map(([loading, show, error]) => {\n let state: LoadingComponentState;\n\n if (error) {\n state = LoadingComponentState.ERROR;\n } else if (loading == null) {\n // If loading has not yet been defined and no error has occured, we're waiting for some input on loading or error.\n state = LoadingComponentState.NONE;\n } else if (loading || !show) {\n state = LoadingComponentState.LOADING;\n } else {\n state = LoadingComponentState.CONTENT;\n }\n\n return state;\n }),\n distinctUntilChanged(),\n startWith(LoadingComponentState.NONE),\n shareReplay(1)\n );\n\n readonly error$ = this._error.asObservable();\n\n readonly hasNoCustomError$ = this._customErrorContent.pipe(map((x) => !checkNgContentWrapperHasContent(x)));\n readonly hasNoCustomLoading$ = this._customLoadingContent.pipe(map((x) => !checkNgContentWrapperHasContent(x)));\n\n @Input()\n diameter?: Maybe<number>;\n\n @Input()\n mode: ProgressBarMode | ProgressSpinnerMode = 'indeterminate';\n\n @Input()\n color: ThemePalette = 'primary';\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n linear: Maybe<boolean> = false;\n\n ngOnDestroy() {\n this._error.complete();\n this._loading.complete();\n this._show.complete();\n this._customErrorContent.complete();\n this._customLoadingContent.complete();\n }\n\n @Input()\n get show(): boolean {\n return this._show.value;\n }\n\n set show(show: Maybe<boolean>) {\n this._show.next(show ?? true);\n }\n\n @Input()\n get loading(): Maybe<boolean> {\n return this._loading.value;\n }\n\n set loading(loading: Maybe<boolean>) {\n this._loading.next(loading);\n }\n\n @Input()\n get error(): Maybe<ErrorInput> {\n return this._error.value;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._error.next(error);\n }\n\n @ViewChild('customError')\n set customErrorContent(customErrorContent: Maybe<ElementRef>) {\n setTimeout(() => {\n this._customErrorContent.next(customErrorContent);\n }, 0);\n }\n\n @ViewChild('customLoading')\n set customLoadingContent(customLoadingContent: Maybe<ElementRef>) {\n setTimeout(() => {\n this._customLoadingContent.next(customLoadingContent);\n }, 0);\n }\n}\n","<ng-container [ngSwitch]=\"state$ | async\">\n <ng-container *ngSwitchCase=\"0\">\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <!-- Content -->\n <ng-content></ng-content>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loadingTemplate>\n <dbx-loading-progress *ngIf=\"hasNoCustomLoading$ | async\" [mode]=\"mode\" [color]=\"color\" [text]=\"text\" [linear]=\"linear\" [diameter]=\"diameter\"></dbx-loading-progress>\n <div #customLoading>\n <ng-content select=\"[loading]\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #errorTemplate>\n <dbx-error *ngIf=\"hasNoCustomError$ | async\" [error]=\"error$ | async\"></dbx-error>\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-content select=\"[errorAction]\"></ng-content>\n</ng-template>\n","import { BehaviorSubject, shareReplay, Observable, distinctUntilChanged, map, switchMap, combineLatest, of } from 'rxjs';\nimport { OnDestroy, Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { ErrorInput, Maybe } from '@dereekb/util';\n\nexport interface DbxLoadingComponentState {\n loading: boolean;\n error: Maybe<ErrorInput>;\n}\n\n/**\n * Loading View component that provides content sections for loading, error, and an error action.\n */\n@Component({\n selector: 'dbx-loading',\n template: `\n <dbx-basic-loading [show]=\"show\" [color]=\"color\" [text]=\"text\" [mode]=\"mode\" [linear]=\"linear\" [diameter]=\"diameter\" [error]=\"error$ | async\" [loading]=\"loading$ | async\">\n <ng-content loading select=\"[loading]\"></ng-content>\n <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})\nexport class DbxLoadingComponent implements OnDestroy {\n private _context = new BehaviorSubject<Maybe<LoadingContext>>(undefined);\n\n private _inputLoading = new BehaviorSubject<Maybe<boolean>>(true);\n private _inputError = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n readonly state$: Observable<DbxLoadingComponentState> = combineLatest([this._inputLoading, this._inputError, this._context.pipe(switchMap((x) => (x != null ? x.stream$ : of(undefined))))]).pipe(\n map(([inputLoading, inputError, loadingState]) => {\n if (loadingState) {\n return loadingState as DbxLoadingComponentState;\n } else {\n return {\n loading: inputLoading ?? false,\n error: inputError\n };\n }\n }),\n distinctUntilChanged((a, b) => a.loading === b.loading && a.error === b.error),\n shareReplay(1)\n );\n\n readonly loading$ = this.state$.pipe(\n map((x) => x.loading),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly error$ = this.state$.pipe(\n map((x) => x.error),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Input()\n show?: Maybe<boolean>;\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n mode: ProgressBarMode = 'indeterminate';\n\n @Input()\n color: ThemePalette = 'primary';\n\n @Input()\n diameter?: Maybe<number>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n ngOnDestroy() {\n this._context.complete();\n this._inputError.complete();\n this._inputLoading.complete();\n }\n\n @Input()\n get context(): Maybe<LoadingContext> {\n return this._context.value;\n }\n\n set context(context: Maybe<LoadingContext>) {\n this._context.next(context);\n }\n\n @Input()\n get loading(): Maybe<boolean> {\n return this._inputLoading.value;\n }\n\n set loading(loading: Maybe<boolean>) {\n this._inputLoading.next(loading ?? false);\n }\n\n @Input()\n get error(): Maybe<ErrorInput> {\n return this._inputError.value;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._inputError.next(error);\n }\n}\n","import { catchError, filter, exhaustMap, merge, map, Subject, switchMap, shareReplay, distinctUntilChanged, of, Observable, BehaviorSubject, first } from 'rxjs';\nimport { Component, Input, EventEmitter, Output, OnDestroy, ElementRef, HostListener, ChangeDetectorRef, Directive } from '@angular/core';\nimport { DbxInjectionComponentConfig, tapDetectChanges } from '@dereekb/dbx-core';\nimport { SubscriptionObject, ListLoadingStateContextInstance, ListLoadingState, filterMaybe, loadingStateHasFinishedLoading, startWithBeginLoading } from '@dereekb/rxjs';\nimport { Maybe, Milliseconds } from '@dereekb/util';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\n\n/**\n * Direction the scroll was triggered moving.\n */\nexport type DbxListScrollDirectionTrigger = 'up' | 'down';\n\n/**\n * Used to trigger the loading of additional items.\n *\n * If an observable is returned it is used to throttle the loading of more items until it returns.\n */\nexport type DbxListLoadMoreHandler = () => Observable<void> | void;\n\n/**\n * DbxListComponent configuration.\n */\nexport interface DbxListConfig<T = unknown, V extends DbxListView<T> = DbxListView<T>> extends DbxInjectionComponentConfig<V> {\n /**\n * Whether or not to hide the list content when it is an empty list.\n */\n hideOnEmpty?: boolean;\n\n /**\n * Whether or not this list should scroll upward from the bottom, like a message list.\n */\n invertedList?: boolean;\n\n /**\n * Distance to scroll.\n */\n scrollDistance?: number;\n\n /**\n * Number of ms to throttle scrolling events.\n */\n throttle?: Milliseconds;\n\n /**\n * (Optional) onClick handler\n */\n onClick?: (value: T) => void;\n\n /**\n * (Optional) onSelection handler\n */\n onSelectionChange?: (selection: ListSelectionState<T>) => void;\n\n /**\n * (Optional) handler function to load more items.\n */\n loadMore?: DbxListLoadMoreHandler;\n\n /**\n * Default selection list value. If not defined, will default to 'view'.\n */\n defaultSelectionMode?: Maybe<DbxListSelectionMode>;\n}\n\n/**\n * Used to display a potentially infinitely scrollable list of content.\n *\n * This component is generally wrapped by another component that provides this one configuration.\n */\n@Component({\n selector: 'dbx-list',\n templateUrl: './list.component.html',\n host: {\n class: 'd-block dbx-list',\n '[class.dbx-list-padded]': 'padded'\n }\n})\nexport class DbxListComponent<T = unknown, V extends DbxListView<T> = DbxListView<T>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy {\n readonly DEFAULT_SCROLL_DISTANCE = 1.5;\n readonly DEFAULT_THROTTLE_SCROLL = 50;\n\n /**\n * Whether or not to add bottom padding to the list content.\n */\n @Input()\n padded = true;\n\n @Output()\n contentScrolled = new EventEmitter<number>();\n\n private _content: Maybe<DbxListInternalContentDirective>;\n private _disabled = new BehaviorSubject<boolean>(false);\n private _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n\n private _loadMoreTrigger = new Subject<void>();\n private _scrollTrigger = new Subject<DbxListScrollDirectionTrigger>();\n private _config = new BehaviorSubject<Maybe<DbxListConfig<T, V>>>(undefined);\n\n private _loadMoreSub = new SubscriptionObject();\n private _onClickSub = new SubscriptionObject();\n private _disabledSub = new SubscriptionObject();\n private _selectionModeSub = new SubscriptionObject();\n private _onSelectionChangeSub = new SubscriptionObject();\n\n readonly context = new ListLoadingStateContextInstance<T, S>({ showLoadingOnNoValue: false });\n readonly isEmpty$ = this.context.isEmpty$;\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n readonly hideOnEmpty$: Observable<boolean> = this._config.pipe(\n filterMaybe(),\n map((x) => Boolean(x.hideOnEmpty)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly invertedList$: Observable<boolean> = this._config.pipe(\n filterMaybe(),\n map((x) => Boolean(x?.throttle)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly throttleScroll$: Observable<number> = this._config.pipe(\n map((x) => x?.throttle ?? this.DEFAULT_THROTTLE_SCROLL),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly scrollDistance$: Observable<number> = this._config.pipe(\n map((x) => x?.scrollDistance ?? this.DEFAULT_SCROLL_DISTANCE),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly scrollLoadMoreTrigger$ = this._config.pipe(\n switchMap((config) => {\n const loadNextDirection = config?.invertedList ? 'up' : 'down';\n return this._scrollTrigger.pipe(filter((x) => x === loadNextDirection));\n })\n );\n\n readonly loadMore$ = merge(this.scrollLoadMoreTrigger$, this._loadMoreTrigger);\n\n readonly injectedComponentConfig$: Observable<Maybe<DbxInjectionComponentConfig<V>>> = this._config.pipe(\n distinctUntilChanged(),\n map((config) => {\n let injectedComponentConfig: Maybe<DbxInjectionComponentConfig<V>>;\n\n if (config) {\n const { componentClass, init, onClick, onSelectionChange, loadMore, defaultSelectionMode = 'view' } = config;\n\n injectedComponentConfig = {\n componentClass: config.componentClass,\n injector: config.injector,\n init: (instance: V) => {\n // Synchronize disabled\n this._disabledSub.subscription = this.disabled$.subscribe((disabled) => instance.setDisabled(disabled));\n this._selectionModeSub.subscription = this.selectionMode$.subscribe((selectionMode) => instance.setSelectionMode(selectionMode ?? defaultSelectionMode));\n\n if (init) {\n init(instance);\n }\n\n instance.setListContext(this.context);\n\n if (loadMore) {\n this._loadMoreSub.subscription = this.loadMore$\n .pipe(\n // Throttle additional loading calls using exhaustMap until observable returns, if one is returned.\n exhaustMap(() => {\n const result = loadMore();\n let obs: Observable<void>;\n\n if (result) {\n obs = result.pipe(catchError(() => of()));\n } else {\n obs = of();\n }\n\n return obs;\n })\n )\n .subscribe();\n }\n\n if (onClick) {\n if (instance.clickValue) {\n this._onClickSub.subscription = instance.clickValue.subscribe(onClick);\n } else {\n console.error(`onClick() was passed to listConfig, but target class ${componentClass} has no clicked event emitter.`);\n }\n }\n\n if (onSelectionChange) {\n if (instance.selectionChange) {\n this._onSelectionChangeSub.subscription = instance.selectionChange.subscribe(onSelectionChange);\n } else {\n console.error(`onSelectionChange() was passed to listConfig, but target class ${componentClass} has no selectionChange event emitter.`);\n }\n }\n }\n };\n }\n\n return injectedComponentConfig;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly hideContent$: Observable<boolean> = this.context.stateChange$.pipe(\n switchMap(() =>\n this.context.state$.pipe(\n filter((x) => loadingStateHasFinishedLoading(x)),\n first(),\n startWithBeginLoading()\n )\n ),\n switchMap((state) => {\n if (state?.loading) {\n return of(true);\n } else {\n return this.hideOnEmpty$.pipe(\n switchMap((hide) => (hide === false ? of(false) : this.isEmpty$)),\n distinctUntilChanged(),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n }\n })\n );\n\n constructor(readonly cdRef: ChangeDetectorRef) {}\n\n ngOnDestroy(): void {\n delete this._content; // remove parent-child relation.\n this._scrollTrigger.complete();\n this._loadMoreTrigger.complete();\n this._config.complete();\n this._disabled.complete();\n this._selectionMode.complete();\n\n this._onClickSub.destroy();\n this._loadMoreSub.destroy();\n this._onSelectionChangeSub.destroy();\n this._disabledSub.destroy();\n\n this.context.destroy();\n }\n\n @Input()\n get state$(): Observable<S> {\n return this.context.state$;\n }\n\n set state$(state$: Maybe<Observable<S>>) {\n this.context.setStateObs(state$);\n }\n\n @Input()\n set config(config: Maybe<DbxListConfig<T, V>>) {\n this._config.next(config);\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled.value;\n }\n\n set disabled(disabled: Maybe<boolean>) {\n this._disabled.next(disabled ?? false);\n }\n\n @Input()\n get selectionMode(): Maybe<DbxListSelectionMode> {\n return this._selectionMode.value;\n }\n\n set selectionMode(selectionMode: Maybe<DbxListSelectionMode>) {\n this._selectionMode.next(selectionMode);\n }\n\n getScrollPositionRelativeToBottom(): number {\n try {\n const element = this.nativeElement;\n\n // At max scroll, scrollHeight = scrollTop + clientHeight;\n const { scrollTop, scrollHeight, clientHeight } = element;\n return scrollHeight - (scrollTop + clientHeight);\n } catch (e) {\n return 0;\n }\n }\n\n jumpToBottom(): void {\n try {\n this.nativeElement.scrollTop = this.nativeElement.scrollHeight;\n } catch (err) {\n // do nothing.\n }\n }\n\n jumpToPositionRelativeToBottom(pos: number): void {\n try {\n const element = this.nativeElement;\n const { scrollHeight, clientHeight } = element;\n element.scrollTop = scrollHeight - (clientHeight + pos);\n } catch (err) {\n // do nothing.\n }\n }\n\n onScrollDown(): void {\n this._scrollTrigger.next('down');\n }\n\n onScrollUp(): void {\n this._scrollTrigger.next('up');\n }\n\n loadMore(): void {\n this._loadMoreTrigger.next();\n }\n\n // MARK: Internal\n get nativeElement() {\n return this.__content.elementRef.nativeElement;\n }\n\n get __content(): DbxListInternalContentDirective {\n return this._content as DbxListInternalContentDirective;\n }\n\n set __content(content: DbxListInternalContentDirective) {\n if (this._content == null) {\n this._content = content;\n } else {\n throw new Error('Attempted to set __content in list outside of initialization.');\n }\n }\n}\n\n/**\n * Used internally by DbxListComponent\n */\n@Directive({\n selector: '[dbxListInternalContent]',\n host: {\n class: 'd-block dbx-list-content',\n '[class.dbx-list-content-hidden]': 'hide'\n }\n})\nexport class DbxListInternalContentDirective {\n @Input()\n hide: Maybe<boolean> = false;\n\n constructor(private readonly parent: DbxListComponent, readonly elementRef: ElementRef) {\n this.parent.__content = this;\n }\n\n @HostListener('scroll', ['$event'])\n onScrollEvent($event: Event): void {\n const position = ($event.target as Element).scrollTop;\n this.parent.contentScrolled.emit(position);\n }\n}\n","<dbx-loading [context]=\"context\" [linear]=\"true\"></dbx-loading>\n<div dbxListInternalContent infinite-scroll [infiniteScrollDistance]=\"(scrollDistance$ | async) ?? DEFAULT_SCROLL_DISTANCE\" [infiniteScrollUpDistance]=\"(scrollDistance$ | async) ?? DEFAULT_SCROLL_DISTANCE\" [hide]=\"hideContent$ | async\" [infiniteScrollThrottle]=\"(throttleScroll$ | async) ?? DEFAULT_THROTTLE_SCROLL\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\" (scrolledUp)=\"onScrollUp()\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-injection [config]=\"injectedComponentConfig$ | async\"></dbx-injection>\n <ng-content select=\"[bottom]\"></ng-content>\n</div>\n<ng-content *ngIf=\"isEmpty$ | async\" select=\"[empty]\"></ng-content>\n","import { ListLoadingState, filterMaybe, ObservableOrValue, valueFromObservableOrValue } from '@dereekb/rxjs';\nimport { Observable, BehaviorSubject, map, shareReplay } from 'rxjs';\nimport { Output, EventEmitter, OnInit, OnDestroy, Directive, Input } from '@angular/core';\nimport { DbxListConfig } from './list.component';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\nimport { Maybe } from '@dereekb/util';\nimport { DbxListViewWrapper } from './list.wrapper';\n\nexport const DEFAULT_STATIC_LIST_DIRECTIVE_TEMPLATE = `\n<dbx-list [config]=\"config\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n</dbx-list>\n`;\n\n// MARK: Wrapper\nexport const DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE = `\n<dbx-list [state$]=\"state$\" [config]=\"config$ | async\" [disabled]=\"disabled\" [selectionMode]=\"selectionMode\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n</dbx-list>\n`;\n\nexport type DbxListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListConfig<T, V>, 'onClick' | 'loadMore'>;\n\n@Directive()\nexport abstract class AbstractDbxListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxListWrapperConfig<T, V> = DbxListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnInit, OnDestroy, DbxListViewWrapper<T, S> {\n private readonly _init = new BehaviorSubject<Maybe<ObservableOrValue<C>>>(undefined);\n readonly config$ = this._init.pipe(\n filterMaybe(),\n valueFromObservableOrValue(),\n map((x: C) => this._buildListConfig(x)),\n shareReplay(1)\n );\n\n @Input()\n disabled?: Maybe<boolean>;\n\n @Input()\n selectionMode?: Maybe<DbxListSelectionMode>;\n\n @Input()\n state$?: Maybe<Observable<S>>;\n\n @Output()\n clickItem = new EventEmitter<T>();\n\n @Output()\n loadMore = new EventEmitter<void>();\n\n constructor(readonly initConfig: ObservableOrValue<C>) {}\n\n ngOnInit(): void {\n this._init.next(this.initConfig);\n }\n\n ngOnDestroy(): void {\n this._init.complete();\n this.clickItem.complete();\n this.loadMore.complete();\n }\n\n protected _buildListConfig(config: C): DbxListConfig<T, V> {\n return {\n ...config,\n onClick: (x) => this.clickItem.emit(x),\n loadMore: () => this.loadMore.emit()\n };\n }\n}\n\n// MARK: Selection Wrapper\nexport type DbxSelectionListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListWrapperConfig<T, V>, 'onSelectionChange'>;\n\n@Directive()\nexport abstract class AbstractDbxSelectionListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxSelectionListWrapperConfig<T, V> = DbxSelectionListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> extends AbstractDbxListWrapperDirective<T, V, C, S> implements OnDestroy {\n @Output()\n selectionChange = new EventEmitter<ListSelectionState<T>>();\n\n override ngOnDestroy(): void {\n this.selectionChange.complete();\n }\n\n protected override _buildListConfig(config: C): DbxListConfig<T, V> {\n const result = super._buildListConfig(config);\n result.onSelectionChange = (x) => this.selectionChange.next(x);\n return result;\n }\n}\n","import { Directive, Host, OnInit } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxReadableErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to an ActionContext.\n */\n@Directive({\n selector: '[dbxActionError]'\n})\nexport class DbxActionErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n constructor(@Host() public readonly error: DbxReadableErrorComponent, public readonly source: DbxActionContextStoreSourceInstance) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.source.error$.subscribe((error) => {\n this.error.error = error;\n });\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ReadableError, ServerError, ServerErrorResponse, ServerErrorResponseData, 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: ServerErrorResponseData } = 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, Host, Input } from '@angular/core';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxReadableErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to a LoadingContext.\n *\n * The error from the context is given to the app error when available.\n */\n@Directive({\n selector: '[dbxLoadingError]'\n})\nexport class DbxLoadingErrorDirective extends AbstractSubscriptionDirective {\n constructor(@Host() public readonly error: DbxReadableErrorComponent) {\n super();\n }\n\n /**\n * Sets a LoadingContext that is watched for the loading state.\n */\n @Input('dbxLoadingError')\n set context(context: LoadingContext) {\n let subscription;\n\n if (context) {\n subscription = context.stream$.subscribe((x) => {\n this.error.error = x.error;\n });\n }\n\n this.sub = subscription;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe, UnitedStatesAddressWithContact } from '@dereekb/util';\n\n// prettier-ignore\n@Component({\n selector: 'dbx-us-address',\n template: `\n <ng-container *ngIf=\"address\">\n <div *ngIf=\"address.name\" class=\"addr-name\">{{ address.name }}</div>\n <div *ngIf=\"address.phone\" class=\"addr-phone\">{{ address.phone }}</div>\n <div *ngIf=\"address.line1\" class=\"addr-line1\">{{ address.line1 }}</div>\n <div *ngIf=\"address.line2\" class=\"addr-line2\">{{ address.line2 }}</div>\n <div class=\"city-state-zip\">\n <span class=\"addr-city\">{{ address.city }}</span>\n <span *ngIf=\"address.state || address.zip\">, </span>\n <span class=\"addr-state\">{{ address.state }} </span>\n <span class=\"addr-zip\">{{ address.zip }}</span>\n </div>\n </ng-container>\n `,\n host: {\n class: 'dbx-us-address'\n }\n})\nexport class DbxUnitedStatesAddressComponent {\n @Input()\n address: Maybe<Partial<UnitedStatesAddressWithContact>>;\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-detail-block-header',\n template: `\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"header\" class=\"dbx-detail-block-header-label\">{{ header }}</span>\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-detail-block-header',\n '[class]': '{ \"dbx-detail-block-header-no-icon\": !icon }'\n }\n})\nexport class DbxDetailBlockHeaderComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Header and details offset with an icon.\n */\n@Component({\n selector: 'dbx-detail-block',\n template: `\n <dbx-detail-block-header [icon]=\"icon\" [header]=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </dbx-detail-block-header>\n <div class=\"dbx-detail-block-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-detail-block d-block'\n }\n})\nexport class DbxDetailBlockComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-form-description',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-form-description'\n }\n})\nexport class DbxFormDescriptionComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-hint',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-hint'\n }\n})\nexport class DbxHintComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * Icon spacer directive.\n */\n@Directive({\n selector: 'dbx-icon-spacer,[dbxIconSpacer]',\n host: {\n class: 'dbx-icon-spacer d-inline'\n }\n})\nexport class DbxIconSpacerDirective {}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport linkifyStr from 'linkify-string';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * Used to \"linkify\" the input text.\n */\n@Component({\n selector: 'dbx-linkify',\n template: `\n <span class=\"dbx-linkify\" [innerHTML]=\"linkifiedBody$ | async\"></span>\n `\n})\nexport class DbxLinkifyComponent implements OnDestroy {\n private _text = new BehaviorSubject<string>('');\n\n readonly linkifiedText$ = this._text.pipe(\n distinctUntilChanged(),\n map((x) =>\n linkifyStr(x, {\n defaultProtocol: 'https',\n target: {\n url: '_blank'\n }\n })\n ),\n shareReplay(1)\n );\n\n readonly linkifiedBody$ = this.linkifiedText$.pipe(\n map((x) => {\n return this.sanitizer.bypassSecurityTrustHtml(x);\n }),\n shareReplay(1)\n );\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnDestroy(): void {\n this._text.complete();\n }\n\n @Input()\n get text(): string {\n return this._text.value;\n }\n\n set text(text: string) {\n this._text.next(text);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-note',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-note'\n }\n})\nexport class DbxNoteComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-notice',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-notice'\n }\n})\nexport class DbxNoticeComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-ok',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-ok'\n }\n})\nexport class DbxOkComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-success',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-success'\n }\n})\nexport class DbxSuccessComponent {}\n","import { Directive, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n@Directive({\n selector: 'dbx-chip',\n host: {\n class: 'dbx-chip mat-standard-chip',\n '[class]': 'style'\n }\n})\nexport class DbxChipDirective {\n @Input()\n small?: Maybe<boolean>;\n\n @Input()\n block?: Maybe<boolean>;\n\n get style() {\n let style = this.small ? 'dbx-chip-small' : '';\n\n if (this.block) {\n style = style + ' dbx-chip-block';\n }\n\n return style;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport interface TextChip<T = unknown> {\n text: string;\n tooltip?: string;\n color?: 'primary' | 'accent';\n data?: T;\n}\n\n@Component({\n selector: 'dbx-text-chips',\n template: `\n <mat-chip-list *ngIf=\"chips\" [multiple]=\"false\">\n <mat-chip *ngFor=\"let chip of chips; trackBy: trackChipByText\" selected [color]=\"chip.color\" [matTooltip]=\"chip.tooltip!\" matTooltipPosition=\"above\">\n {{ chip.text }}\n </mat-chip>\n </mat-chip-list>\n `\n})\nexport class DbxTextChipsComponent<T = unknown> {\n @Input()\n chips?: Maybe<TextChip<T>[]>;\n\n trackChipByText(index: number, chip: TextChip<T>) {\n return chip.text;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-warn',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-warn'\n }\n})\nexport class DbxWarnComponent {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DbxUnitedStatesAddressComponent } from './address.component';\nimport { DbxDetailBlockComponent } from './detail.block.component';\nimport { DbxDetailBlockHeaderComponent } from './detail.block.header.component';\nimport { DbxFormDescriptionComponent } from './form.description.component';\nimport { DbxHintComponent } from './hint.component';\nimport { DbxIconSpacerDirective } from './icon.spacer.component';\nimport { DbxLabelBlockComponent } from './label.block.component';\nimport { DbxLabelComponent } from './label.component';\nimport { DbxLinkifyComponent } from './linkify.component';\nimport { DbxNoteComponent } from './note.component';\nimport { DbxNoticeComponent } from './notice.component';\nimport { DbxOkComponent } from './ok.component';\nimport { DbxSuccessComponent } from './success.component';\nimport { DbxChipDirective } from './text.chip.directive';\nimport { DbxTextChipsComponent } from './text.chips.component';\nimport { DbxWarnComponent } from './warn.component';\n\nconst declarations = [DbxUnitedStatesAddressComponent, DbxChipDirective, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxNoteComponent, DbxNoticeComponent, DbxSuccessComponent, DbxWarnComponent, DbxHintComponent, DbxLabelBlockComponent, DbxLabelComponent, DbxLinkifyComponent, DbxOkComponent, DbxTextChipsComponent, DbxIconSpacerDirective, DbxFormDescriptionComponent];\n\n@NgModule({\n imports: [CommonModule, MatChipsModule, MatTooltipModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxTextModule {}\n","import { MatIconModule } from '@angular/material/icon';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DbxReadableErrorComponent } from './error.component';\nimport { DbxLoadingErrorDirective } from './error.loading.directive';\nimport { DbxActionErrorDirective } from './error.action.directive';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { DbxErrorDetailsComponent } from './error.details.component';\nimport { DbxPopoverInteractionContentModule } from '../interaction/popover/popover.content.module';\nimport { DbxErrorWidgetViewComponent } from './error.widget.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\nimport { DbxTextModule } from '../layout/text/text.module';\n\nconst declarations = [\n //\n DbxReadableErrorComponent,\n DbxLoadingErrorDirective,\n DbxActionErrorDirective,\n DbxErrorPopoverComponent,\n DbxErrorDetailsComponent,\n DbxErrorWidgetViewComponent,\n DbxErrorDefaultErrorWidgetComponent\n];\n\n@NgModule({\n imports: [CommonModule, DbxTextModule, DbxInjectionComponentModule, DbxPopoverInteractionContentModule, MatButtonModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxReadableErrorModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { convertToPOJOServerErrorResponse } from './error.api';\nimport { catchError, MonoTypeOperatorFunction, of } from 'rxjs';\nimport { ActionCreator, TypedAction } from '@ngrx/store/src/models';\nimport { ServerError } from '@dereekb/util';\n\nexport interface ServerErrorParams {\n error: ServerError;\n}\n\n/**\n * Converts the error response to ServerErrorParams.\n */\nexport function convertServerErrorParams(httpError: HttpErrorResponse | object): ServerErrorParams {\n const error: ServerError = convertToPOJOServerErrorResponse(httpError);\n return { error };\n}\n\n/**\n * Catches error server params and feeds them to an action that takes ServerErrorParams as a prop.\n */\nexport function catchErrorServerParams<E extends ServerErrorParams, T extends string>(action: ActionCreator<T, (props: E) => E & TypedAction<T>>, mapError: (error: ServerErrorParams) => E = (error) => error as E): MonoTypeOperatorFunction<E & TypedAction<T>> {\n return catchError((error: HttpErrorResponse | object) => {\n const serverErrorParams = convertServerErrorParams(error);\n const mappedError: E = mapError(serverErrorParams);\n const act = action(mappedError);\n return of(act);\n });\n}\n","import { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Directive, Host, OnInit, OnDestroy } from '@angular/core';\nimport { LoadingStateContextInstance } from '@dereekb/rxjs';\nimport { DbxLoadingComponent } from './loading.component';\n\n/**\n * Context used for linking a loadingComponent to an ActionContext by providing a LoadingContext.\n */\n@Directive({\n selector: '[dbxActionLoadingContext]'\n})\nexport class DbxActionLoadingContextDirective implements OnInit, OnDestroy {\n private _context = new LoadingStateContextInstance({ obs: this.source.loadingState$ });\n\n constructor(@Host() readonly loadingComponent: DbxLoadingComponent, readonly source: DbxActionContextStoreSourceInstance) {}\n\n get context() {\n return this._context;\n }\n\n ngOnInit(): void {\n this.loadingComponent.context = this._context;\n }\n\n ngOnDestroy(): void {\n this._context.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxBasicLoadingComponent } from './basic-loading.component';\nimport { DbxLoadingProgressComponent } from './loading-progress.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { DbxLoadingComponent } from './loading.component';\nimport { DbxReadableErrorModule } from '../error';\nimport { DbxActionLoadingContextDirective } from './loading.action.directive';\n\nconst declarations = [DbxLoadingComponent, DbxBasicLoadingComponent, DbxLoadingProgressComponent, DbxActionLoadingContextDirective];\n\n@NgModule({\n imports: [CommonModule, DbxReadableErrorModule, MatProgressSpinnerModule, MatProgressBarModule],\n declarations,\n exports: [...declarations, MatProgressSpinnerModule, MatProgressBarModule]\n})\nexport class DbxLoadingModule {}\n","import { forwardRef, InjectionToken, Provider, StaticProvider, Type } from '@angular/core';\nimport { ClickableAnchor, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { map, Observable, of } from 'rxjs';\nimport { DecisionFunction, Maybe } from '@dereekb/util';\n\nexport const DBX_VALUE_LIST_VIEW_ITEM = new InjectionToken<unknown>('DbxValueListViewItem');\n\nexport interface DbxValueListItem<T> {\n itemValue: T;\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\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};\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(\n {\n providers: [\n {\n provide: DBX_VALUE_LIST_VIEW_ITEM,\n useValue: listItem\n }\n ] as StaticProvider[]\n },\n listViewConfig\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 { Observable } from 'rxjs';\nimport { ListLoadingState, ListLoadingStateContext } from '@dereekb/rxjs';\nimport { EventEmitter, forwardRef, Provider, TrackByFunction, Type } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport type DbxListSelectionMode = 'select' | 'view';\n\nexport interface ListSelectionStateItem<T> {\n disabled?: boolean;\n selected?: boolean;\n itemValue: T;\n}\n\nexport interface ListSelectionState<T> {\n items: ListSelectionStateItem<T>[];\n}\n\n/**\n * Interface for a view that renders the items of a DbxList.\n */\nexport abstract class DbxListView<T, S extends ListLoadingState<T> = ListLoadingState<T>> {\n /**\n * Current disabled state.\n */\n abstract readonly disabled$: Observable<boolean>;\n /**\n * (Optional) current selection mode.\n */\n abstract readonly selectionMode$?: Observable<Maybe<DbxListSelectionMode>>;\n /**\n * Values of the list view.\n */\n abstract readonly values$: Observable<T[]>;\n /**\n * Track by configuration.\n */\n abstract trackBy?: TrackByFunction<T>;\n /**\n * (Optional) clicked event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract clickValue?: EventEmitter<T>;\n /**\n * (Optional) selection changed event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract selectionChange?: EventEmitter<ListSelectionState<T>>;\n /**\n * Sets the models input loading state context for the view to render from.\n */\n abstract setListContext(state: ListLoadingStateContext<T, S>): void;\n /**\n * Sets the disabled state of the list view.\n */\n abstract setDisabled(disabled: boolean): void;\n /**\n * Sets the selection mode of the list view.\n */\n abstract setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void;\n}\n\n// eslint-disable-next-line\nexport function provideDbxListView<V extends DbxListView<any>>(sourceType: Type<V>): Provider[] {\n // use of any here is allowed as typings are not relevant for providers\n return [\n {\n provide: DbxListView,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Maybe, maybeModifierMapToFunction, ModifierFunction } from '@dereekb/util';\nimport { OnDestroy, Input, Directive, Optional } from '@angular/core';\nimport { filterMaybe, mapForEach } from '@dereekb/rxjs';\nimport { BehaviorSubject, distinctUntilChanged, shareReplay, combineLatest, switchMap, map, Observable, of } from 'rxjs';\nimport { DbxListView } from './list.view';\nimport { AbstractDbxValueListViewConfig, DbxValueListItem, DbxValueListItemConfig, DbxValueListView, mapValuesToValuesListItemConfigObs } from './list.view.value';\nimport { DbxValueListItemModifier } from './list.view.value.modifier';\n\n/**\n * Abstract list directive that takes in items and a AbstractDbxValueItemListViewConfig configuration.\n */\n@Directive()\nexport abstract class AbstractDbxValueListViewDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends AbstractDbxValueListViewConfig<T, I, V> = AbstractDbxValueListViewConfig<T, I, V>> implements DbxValueListView<T, I>, OnDestroy {\n private _config = new BehaviorSubject<Maybe<C>>(undefined);\n readonly config$ = this._config.pipe(filterMaybe(), distinctUntilChanged());\n\n readonly modifyFn$: Observable<Maybe<ModifierFunction<I>>> = this.dbxValueListViewModifier ? this.dbxValueListViewModifier.modifiers$.pipe(map(maybeModifierMapToFunction)) : of(undefined);\n\n readonly items$: Observable<DbxValueListItemConfig<T, I>[]> = combineLatest([this.config$, this.dbxListView.values$, this.modifyFn$]).pipe(\n switchMap(([listViewConfig, values, modifyFn]) => mapValuesToValuesListItemConfigObs<T, I, V>(listViewConfig, values).pipe(mapForEach(modifyFn)) as Observable<DbxValueListItemConfig<T, I>[]>),\n shareReplay(1)\n );\n\n constructor(readonly dbxListView: DbxListView<T>, @Optional() readonly dbxValueListViewModifier: DbxValueListItemModifier<T, I>) {}\n\n ngOnDestroy(): void {\n this._config.complete();\n }\n\n @Input()\n set config(config: Maybe<C>) {\n this._config.next(config);\n }\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.next(value);\n }\n}\n","import { Component, Input, TrackByFunction } from '@angular/core';\nimport { shareReplay, map } from 'rxjs';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig, DbxValueListItemConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { AnchorType, anchorTypeForAnchor } from '@dereekb/dbx-core';\nimport { DbxListView } from './list.view';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n emitAllClicks?: boolean;\n}\n\n/**\n * Renders a list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-view',\n template: `\n <dbx-list-view-content [items]=\"items$ | async\" [emitAllClicks]=\"emitAllClicks$ | async\"></dbx-list-view-content>\n `\n})\nexport class DbxValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListViewConfig<T, I, V> = DbxValueListViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {\n readonly emitAllClicks$ = this.config$.pipe(\n map((x) => x.emitAllClicks),\n shareReplay(1)\n );\n}\n\n/**\n * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-view-content',\n template: `\n <mat-nav-list [disabled]=\"disabled$ | async\">\n <dbx-anchor *ngFor=\"let item of items; trackBy: trackByFunction\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\">\n <a mat-list-item class=\"dbx-list-view-item\" [disabled]=\"item.disabled\" [disableRipple]=\"rippleDisabledOnItem(item)\" (click)=\"onClickItem(item)\">\n <mat-icon matListIcon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n </a>\n </dbx-anchor>\n </mat-nav-list>\n `,\n host: {\n class: 'dbx-list-view'\n }\n})\nexport class DbxValueListItemViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n @Input()\n emitAllClicks?: Maybe<boolean>;\n\n @Input()\n items?: Maybe<DbxValueListItemConfig<T, I>[]>;\n\n readonly disabled$ = this.dbxListView.disabled$;\n\n readonly trackByFunction: TrackByFunction<DbxValueListItemConfig<T, I>>;\n\n constructor(readonly dbxListView: DbxListView<T>) {\n const trackBy = dbxListView.trackBy;\n this.trackByFunction = trackBy ? (index: number, item: DbxValueListItemConfig<T, I>) => trackBy(index, item.itemValue) : () => undefined;\n }\n\n onClickItem(item: I) {\n // do not emit clicks for disabled items.\n if (!item.disabled) {\n if (this.emitAllClicks || !item.anchor || anchorTypeForAnchor(item.anchor) === AnchorType.PLAIN) {\n // only emit clicks for items with no anchor, or plain anchors.\n this.onClickValue(item.itemValue);\n }\n }\n }\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.next(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return item.rippleDisabled || (!this.emitAllClicks && !item.anchor);\n }\n}\n","import { Observable, map, shareReplay, distinctUntilChanged, of } from 'rxjs';\nimport { Component, EventEmitter, Input } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { Maybe } from '@dereekb/util';\nimport { DbxValueListItemViewComponent } from './list.view.value.component';\n\nexport interface DbxSelectionValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n multiple?: boolean;\n}\n\n/**\n * Renders a selection list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-selection-list-view',\n template: `\n <dbx-selection-list-view-content [selectionMode]=\"selectionMode$ | async\" [multiple]=\"multiple$ | async\" [items]=\"items$ | async\"></dbx-selection-list-view-content>\n `\n})\nexport class DbxSelectionValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewDirective<T, I, V, DbxSelectionValueListViewConfig<T, I, V>> {\n readonly selectionMode$: Observable<DbxListSelectionMode> = (this.dbxListView.selectionMode$ ?? of('select' as DbxListSelectionMode)).pipe(\n map((x) => x ?? 'select'),\n distinctUntilChanged()\n );\n readonly multiple$ = this.config$.pipe(\n map((x) => x.multiple ?? true),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n\n/**\n * Content view for a DbxSelectionValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-selection-list-view-content',\n template: `\n <ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"'view'\">\n <dbx-list-view-content [items]=\"items\"></dbx-list-view-content>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <mat-selection-list [disabled]=\"disabled$ | async\" [multiple]=\"multiple\" (selectionChange)=\"matSelectionChanged($event)\">\n <mat-list-option class=\"dbx-list-view-item\" *ngFor=\"let item of items; trackBy: trackByFunction\" [selected]=\"item.selected\" [disabled]=\"item.disabled\" [value]=\"item.itemValue\" (click)=\"onClickValue(item.itemValue)\">\n <mat-icon matListIcon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n </mat-list-option>\n </mat-selection-list>\n </ng-container>\n </ng-container>\n `,\n host: {\n class: 'dbx-list-view dbx-selection-list-view'\n }\n})\nexport class DbxSelectionValueListItemViewComponent<T> extends DbxValueListItemViewComponent<T> {\n @Input()\n multiple?: Maybe<boolean>;\n\n @Input()\n selectionMode: Maybe<DbxListSelectionMode>;\n\n constructor(dbxListView: DbxListView<T>) {\n super(dbxListView);\n\n if (!dbxListView.selectionChange) {\n throw new Error('Parent dbxListView to DbxSelectionValueListViewComponent has no selectionChange emitter.');\n }\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n (this.dbxListView.selectionChange as EventEmitter<ListSelectionState<T>>).next({\n // asserted in constructor\n items\n });\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier, DecisionFunction } from '@dereekb/util';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from './list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\n\nexport const DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY = 'disable_ripple_anchor';\n\nexport const DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.rippleDisabled || !item.anchor || (!item.anchor.ref && !item.anchor.url && !item.anchor.onClick);\n};\n\n@Directive({\n selector: '[dbxListItemDisableRippleModifier]'\n})\nexport class DbxListItemDisableRippleModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _disableRippleForItem = new BehaviorSubject<DbxValueListItemDecisionFunction<T>>(DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._disableRippleForItem.pipe(\n map((disableRippleForItem) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n if (disableRippleForItem(x)) {\n x.rippleDisabled = true;\n }\n }\n };\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._disableRippleForItem.complete();\n }\n\n @Input('dbxListItemDisableRippleModifier')\n set disableRippleForItem(disableRippleForItem: Maybe<DbxValueListItemDecisionFunction<T>>) {\n this._disableRippleForItem.next(disableRippleForItem ?? DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION);\n }\n}\n\n// MARK: Compat\n/**\n * @Deprecated use DbxValueListItemDecisionFunction instead.\n */\nexport type DisableRippleForValueFunction<T> = DecisionFunction<DbxValueListItem<T>>;\n","import { Component, Directive, Input, OnDestroy, Optional } from '@angular/core';\nimport { shareReplay, map, BehaviorSubject, combineLatest, of, Observable } from 'rxjs';\nimport { DbxValueListItem } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { Maybe, mergeObjects } from '@dereekb/util';\nimport { DbxValueListItemViewComponent, DbxValueListViewConfig } from './list.view.value.component';\nimport { DbxListView } from './list.view';\n\nexport interface DbxValueListGridViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends DbxValueListViewConfig<T, I, V> {\n grid?: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>;\n}\n\n/**\n * Renders a grid view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-grid-view',\n template: `\n <dbx-list-grid-view-content [grid]=\"grid$ | async\" [items]=\"items$ | async\" [emitAllClicks]=\"emitAllClicks$ | async\"></dbx-list-grid-view-content>\n `\n})\nexport class DbxValueListGridViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListGridViewConfig<T, I, V> = DbxValueListGridViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {\n readonly grid$ = this.config$.pipe(map((x) => x.grid));\n readonly emitAllClicks$ = this.config$.pipe(\n map((x) => x.emitAllClicks),\n shareReplay(1)\n );\n}\n\nexport interface DbxValueListGridItemViewGridSizeConfig {\n /**\n * Gap size in %, px, vw, vh\n */\n gap: string;\n /**\n * Columns configuration.\n *\n * Example: repeat(auto-fill, minmax(200px, 1fr))\n */\n columns: string;\n}\n\nexport const DEFAULT_LIST_GRID_SIZE_CONFIG: DbxValueListGridItemViewGridSizeConfig = {\n columns: 'repeat(auto-fill, minmax(320px, 1fr))',\n gap: '8px'\n};\n\n/**\n * Optional parent directive used to control grid size.\n */\n@Directive({\n selector: '[dbxListGridSize]'\n})\nexport class DbxValueListGridSizeDirective implements OnDestroy {\n private _gridSize = new BehaviorSubject<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined);\n\n readonly gridSize$ = this._gridSize.asObservable();\n\n @Input('dbxListGridSize')\n get gridSize(): Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>> {\n return this._gridSize.value;\n }\n\n set gridSize(gridSize: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>) {\n if (gridSize) {\n this._gridSize.next(gridSize);\n }\n }\n\n ngOnDestroy(): void {\n this._gridSize.complete();\n }\n}\n\n/**\n * Content view for a DbxValueListGridView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-grid-view-content',\n template: `\n <div [gdGap]=\"gap$ | async\" [gdColumns]=\"columns$ | async\">\n <dbx-anchor *ngFor=\"let item of items; trackBy: trackByFunction\" matRipple [matRippleDisabled]=\"rippleDisabledOnItem(item)\" class=\"dbx-list-grid-view-item\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\" (click)=\"onClickItem(item)\">\n <div dbx-injection [config]=\"item.config\"></div>\n </dbx-anchor>\n </div>\n `,\n host: {\n class: 'dbx-list-grid-view'\n }\n})\nexport class DbxValueListGridItemViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListItemViewComponent<T, I> implements OnDestroy {\n private _defaultGrid = new BehaviorSubject<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined);\n\n readonly grid$: Observable<DbxValueListGridItemViewGridSizeConfig> = combineLatest([this._defaultGrid, this._gridSizeOverride?.gridSize$ ?? of(undefined)]).pipe(\n map(([defaultGrid, overrideGrid]) => {\n const grid = mergeObjects<DbxValueListGridItemViewGridSizeConfig>([DEFAULT_LIST_GRID_SIZE_CONFIG, defaultGrid, overrideGrid]);\n return grid as DbxValueListGridItemViewGridSizeConfig;\n }),\n shareReplay(1)\n );\n\n readonly gap$ = this.grid$.pipe(map((x) => x.gap));\n readonly columns$ = this.grid$.pipe(map((x) => x.columns));\n\n constructor(dbxListView: DbxListView<T>, @Optional() private _gridSizeOverride?: DbxValueListGridSizeDirective) {\n super(dbxListView);\n }\n\n @Input()\n set grid(grid: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>) {\n this._defaultGrid.next(grid);\n }\n\n ngOnDestroy(): void {\n this._defaultGrid.complete();\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from './list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\n\nexport const DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY = 'is_selected_item_modifier';\n\nexport const DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.selected ?? false;\n};\n\n@Directive({\n selector: '[dbxListItemIsSelectedModifier]'\n})\nexport class DbxListItemIsSelectedModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _listItemIsSelected = new BehaviorSubject<DbxValueListItemDecisionFunction<T>>(DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._listItemIsSelected.pipe(\n map((listItemIsSelected) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.selected = listItemIsSelected(x);\n }\n };\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._listItemIsSelected.complete();\n }\n\n @Input('dbxListItemIsSelectedModifier')\n set listItemIsSelected(listItemIsSelected: Maybe<DbxValueListItemDecisionFunction<T>>) {\n this._listItemIsSelected.next(listItemIsSelected ?? DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION);\n }\n}\n","import { MatRippleModule } from '@angular/material/core';\nimport { DbxRouterAnchorModule } from '../../router/layout/anchor/anchor.module';\nimport { DbxLoadingModule } from '../../loading/loading.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxListComponent, DbxListInternalContentDirective } from './list.component';\nimport { DbxListEmptyContentComponent } from './list.content.empty.component';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { DbxSelectionValueListItemViewComponent, DbxSelectionValueListViewComponent } from './list.view.value.selection.component';\nimport { DbxValueListItemViewComponent, DbxValueListViewComponent } from './list.view.value.component';\nimport { DbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { DbxListItemDisableRippleModifierDirective } from './list.view.value.modifier.ripple.directive';\nimport { DbxValueListGridItemViewComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent } from './list.grid.view.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { DbxListItemIsSelectedModifierDirective } from './list.view.value.modifier.selection.directive';\n\n@NgModule({\n imports: [CommonModule, MatRippleModule, FlexLayoutModule, DbxLoadingModule, DbxRouterAnchorModule, InfiniteScrollModule, DbxInjectionComponentModule, MatListModule, MatIconModule],\n declarations: [\n //\n DbxListComponent,\n DbxListInternalContentDirective,\n DbxListEmptyContentComponent,\n DbxValueListViewComponent,\n DbxValueListItemViewComponent,\n DbxValueListGridSizeDirective,\n DbxValueListGridViewComponent,\n DbxValueListGridItemViewComponent,\n DbxSelectionValueListViewComponent,\n DbxSelectionValueListItemViewComponent,\n DbxValueListItemModifierDirective,\n DbxListItemDisableRippleModifierDirective,\n DbxListItemIsSelectedModifierDirective\n ],\n exports: [\n //\n DbxListComponent,\n DbxListEmptyContentComponent,\n DbxValueListViewComponent,\n DbxValueListItemViewComponent,\n DbxValueListGridSizeDirective,\n DbxValueListGridViewComponent,\n DbxValueListGridItemViewComponent,\n DbxSelectionValueListViewComponent,\n DbxSelectionValueListItemViewComponent,\n DbxValueListItemModifierDirective,\n DbxListItemDisableRippleModifierDirective,\n DbxListItemIsSelectedModifierDirective\n ]\n})\nexport class DbxListLayoutModule {}\n","import { TrackByFunction } from '@angular/core';\nimport { ModelKeyRef, UniqueModel } from '@dereekb/util';\n\nexport const TRACK_BY_MODEL_ID: TrackByFunction<UniqueModel> = (index, model) => model.id;\n\nexport function trackByUniqueIdentifier<T extends UniqueModel>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_ID;\n}\n\nexport const TRACK_BY_MODEL_KEY: TrackByFunction<ModelKeyRef> = (index, model) => model.key;\n\nexport function trackByModelKeyRef<T extends ModelKeyRef>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_KEY;\n}\n","import { ListLoadingStateContext, switchMapMaybeObs } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, of, shareReplay } from 'rxjs';\nimport { Directive, EventEmitter, Input, OnDestroy, Output, TrackByFunction } from '@angular/core';\nimport { DbxListSelectionMode, DbxListView } from './list.view';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Abstract DbxListView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListViewDirective<T> implements DbxListView<T>, OnDestroy {\n private readonly _disabled = new BehaviorSubject<boolean>(false);\n private readonly _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n private readonly _values$ = new BehaviorSubject<Maybe<Observable<T[]>>>(undefined);\n\n readonly trackBy?: TrackByFunction<T> | undefined;\n\n readonly values$ = this._values$.pipe(switchMapMaybeObs(), shareReplay(1));\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n @Output()\n clickValue = new EventEmitter<T>();\n\n @Input()\n set valueArray(values: Maybe<T[]>) {\n this.setValues(values ? of(values) : undefined);\n }\n\n @Input()\n set values(values: Maybe<Observable<T[]>>) {\n this.setValues(values);\n }\n\n ngOnDestroy(): void {\n this._disabled.complete();\n this._selectionMode.complete();\n this._values$.complete();\n }\n\n onClickValue(value: T) {\n this.clickValue.emit(value);\n }\n\n setListContext(state: ListLoadingStateContext<T>): void {\n this.setValues(state.list$);\n }\n\n setValues(valuesObs: Maybe<Observable<T[]>>): void {\n this._values$.next(valuesObs);\n }\n\n setDisabled(disabled: boolean): void {\n this._disabled.next(disabled);\n }\n\n setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void {\n this._selectionMode.next(selectionMode);\n }\n}\n","import { Directive } from '@angular/core';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\n\nexport const DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE = '<dbx-list-grid-view [config]=\"config\"></dbx-list-grid-view>';\n\n/**\n * Abstract DbxListGridView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListGridViewDirective<T> extends AbstractDbxListViewDirective<T> {}\n","import { Directive, EventEmitter, Output } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\n\nexport const DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE = '<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>';\n\n// MARK: Selection List View\n/**\n * Abstract list view that has a pre-built-in selection change event for an Angular Material MatSelectionListChange.\n */\n@Directive()\nexport abstract class AbstractDbxSelectionListViewDirective<T> extends AbstractDbxListViewDirective<T> {\n @Output()\n selectionChange = new EventEmitter<ListSelectionState<T>>();\n\n selectionChanged(selection: ListSelectionState<T>): void {\n this.selectionChange.emit(selection);\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n this.selectionChanged({ items });\n }\n}\n","import { Directive, Inject } from '@angular/core';\nimport { DbxValueListItem, DBX_VALUE_LIST_VIEW_ITEM } from './list.view.value';\n\n@Directive()\nexport abstract class AbstractDbxValueListViewItemComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n get itemValue(): T {\n return this.item.itemValue;\n }\n\n constructor(@Inject(DBX_VALUE_LIST_VIEW_ITEM) readonly item: I) {}\n}\n","import { Observable } from 'rxjs';\nimport { ListLoadingState } from '@dereekb/rxjs';\nimport { EventEmitter, forwardRef, Provider, Type } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Common interface for views that may wrap a DbxListView, and pass values through to it.\n */\nexport abstract class DbxListViewWrapper<T = unknown, S extends ListLoadingState<T> = ListLoadingState<T>> {\n state$?: Maybe<Observable<S>>;\n readonly loadMore?: EventEmitter<void>;\n}\n\nexport function provideDbxListViewWrapper<V extends DbxListViewWrapper>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxListViewWrapper,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxSectionHeaderConfig, DbxSectionHeaderHType } from './section';\n\n/**\n * Component used to style a section's header.\n */\n@Component({\n selector: 'dbx-section-header,.dbx-section-header',\n template: `\n <div class=\"dbx-section-header-content\">\n <ng-container *ngIf=\"showTitle\">\n <ng-container [ngSwitch]=\"h ?? 1\">\n <h1 *ngSwitchCase=\"1\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h5>\n </ng-container>\n <span class=\"spacer\"></span>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <p *ngIf=\"hint && !hintInline\" class=\"dbx-section-hint dbx-hint\">{{ hint }}</p>\n <ng-template #headerContentTitleTemplate>\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span class=\"title-text\">\n {{ header }}\n <span *ngIf=\"hint && hintInline\" class=\"dbx-section-hint-inline dbx-hint\">{{ hint }}</span>\n </span>\n </ng-template>\n `,\n host: {\n '[class.dbx-section-header-full-title]': 'onlyHeader',\n '[class.dbx-section-header-padded]': 'paddedHeader'\n }\n})\nexport class DbxSectionHeaderComponent {\n @Input()\n paddedHeader?: Maybe<boolean>;\n\n @Input()\n h?: Maybe<DbxSectionHeaderHType>;\n\n @Input()\n header?: Maybe<string>;\n\n @Input()\n onlyHeader?: Maybe<boolean> = false;\n\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n hint?: Maybe<string>;\n\n @Input()\n hintInline?: Maybe<boolean>;\n\n constructor() {}\n\n @Input()\n set headerConfig(headerConfig: Maybe<DbxSectionHeaderConfig>) {\n if (headerConfig) {\n if (headerConfig.h !== undefined) {\n this.h = headerConfig.h;\n }\n\n if (headerConfig.header !== undefined) {\n this.header = headerConfig.header;\n }\n\n if (headerConfig.onlyHeader !== undefined) {\n this.onlyHeader = headerConfig.onlyHeader;\n }\n\n if (headerConfig.icon !== undefined) {\n this.icon = headerConfig.icon;\n }\n\n if (headerConfig.hint !== undefined) {\n this.hint = headerConfig.hint;\n }\n\n if (headerConfig.hintInline !== undefined) {\n this.hintInline = headerConfig.hintInline;\n }\n }\n }\n\n get showTitle() {\n return Boolean(this.header || this.icon);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Component used to format content on a page within a section.\n */\n@Component({\n selector: 'dbx-section',\n template: `\n <div class=\"dbx-section-header\" [h]=\"h ?? 3\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-section',\n '[class]': `(elevate) ? 'dbx-section-elevate dbx-content-elevate' : ''`\n }\n})\nexport class DbxSectionComponent extends DbxSectionHeaderComponent {\n @Input()\n elevate = false;\n}\n","import { OnDestroy, Component, Input, EventEmitter, Output } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\n\n/**\n * Component used to format content that displays an intro until a button is pressed.\n */\n@Component({\n selector: 'dbx-intro-action-section',\n template: `\n <div class=\"dbx-intro-action-section\" [ngSwitch]=\"showIntro\">\n <div *ngSwitchCase=\"true\" class=\"dbx-intro-action-section-intro\">\n <p>{{ hint }}</p>\n <div>\n <ng-content select=\"[info]\"></ng-content>\n </div>\n <div>\n <button mat-raised-button color=\"accent\" (click)=\"actionClicked()\">{{ action }}</button>\n </div>\n </div>\n <ng-container *ngSwitchCase=\"false\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n `\n})\nexport class DbxIntroActionSectionComponent extends DbxSectionComponent implements OnDestroy {\n @Output()\n showAction = new EventEmitter<void>();\n\n @Input()\n showIntro?: boolean;\n\n @Input()\n action?: string;\n\n ngOnDestroy() {\n this.showAction.complete();\n }\n\n actionClicked() {\n this.showAction.next();\n }\n}\n","import { Component } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\n\n/**\n * A subsection.\n */\n@Component({\n selector: 'dbx-subsection',\n template: `\n <div class=\"dbx-subsection\">\n <div class=\"dbx-section-header\" [h]=\"h ?? 4\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxSubSectionComponent extends DbxSectionComponent {}\n","import { Component, Input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Scroll locking modes.\n *\n * Types:\n * - all: The entire header + body is scrollable\n * - body: The header is locked while the body is scrollable\n * - locked: Overflow is locked and hidden\n */\nexport type DbxSectionPageScrollLockedMode = 'all' | 'body' | 'locked';\n\n/**\n * Component used to style a page that is made up of app sections.\n *\n * Should be used on pages that need a section page heading.\n *\n * Can be nested within eachother, retaining the proper fixed height.\n */\n@Component({\n selector: 'dbx-section-page',\n template: `\n <div class=\"dbx-section-header\" [h]=\"h ?? 2\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"true\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-page-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-content-page dbx-section-page',\n '[class]': '\"dbx-section-page-scroll-\" + scroll'\n }\n})\nexport class DbxSectionPageComponent extends DbxSectionHeaderComponent {\n @Input()\n scroll: DbxSectionPageScrollLockedMode = 'all';\n\n @Input()\n override hintInline = true;\n}\n","import { DbxRouterAnchorModule } from '../../router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxSectionComponent } from './section.component';\nimport { DbxSubSectionComponent } from './subsection.component';\nimport { DbxSectionPageComponent } from './section.page.component';\nimport { DbxIntroActionSectionComponent } from './section.intro.component';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\nconst declarations = [DbxSectionHeaderComponent, DbxSectionPageComponent, DbxSectionComponent, DbxSubSectionComponent, DbxIntroActionSectionComponent];\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [CommonModule, DbxRouterAnchorModule, MatButtonModule, MatRippleModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxSectionLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dbx-step',\n templateUrl: './step.component.html'\n // TODO: styleUrls: ['./step.scss']\n})\nexport class DbxStepComponent {\n @Input()\n done?: boolean;\n\n @Input()\n step?: number;\n\n @Input()\n text?: string;\n\n @Input()\n hint?: string;\n}\n","<div class=\"step-section\" [ngClass]=\"done ? 'done' : ''\">\n <div class=\"step-section-header\">\n <span class=\"step\">{{ step }}.</span>\n <mat-icon class=\"done-check\" *ngIf=\"done\">done</mat-icon>\n <span class=\"text\">{{ text }}</span>\n <p *ngIf=\"hint\" class=\"hint\">{{ hint }}</p>\n </div>\n <div class=\"step-section-content\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxStepComponent } from './step.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxStepComponent],\n exports: [DbxStepComponent]\n})\nexport class DbxStepLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxSectionLayoutModule } from './section/section.layout.module';\nimport { DbxListLayoutModule } from './list/list.layout.module';\nimport { DbxItemLayoutModule } from './item/item.layout.module';\nimport { DbxFlagLayoutModule } from './flag/flag.layout.module';\nimport { DbxContentLayoutModule } from './content/content.layout.module';\nimport { DbxColumnLayoutModule } from './column/column.layout.module';\nimport { DbxCardBoxLayoutModule } from './card/card.box.layout.module';\nimport { DbxBlockLayoutModule } from './block/block.layout.module';\nimport { DbxCompactLayoutModule } from './compact/compact.layout.module';\nimport { DbxStepLayoutModule } from './step/step.layout.module';\nimport { DbxBarLayoutModule } from './bar/bar.layout.module';\nimport { DbxTextModule } from './text/text.module';\nimport { DbxStyleLayoutModule } from './style/style.layout.module';\nimport { DbxFlexLayoutModule } from './flex/flex.layout.module';\nimport { DbxDetailBlockComponent } from './text/detail.block.component';\n\n@NgModule({\n exports: [DbxBarLayoutModule, DbxBlockLayoutModule, DbxCardBoxLayoutModule, DbxColumnLayoutModule, DbxCompactLayoutModule, DbxContentLayoutModule, DbxFlagLayoutModule, DbxFlexLayoutModule, DbxItemLayoutModule, DbxListLayoutModule, DbxSectionLayoutModule, DbxStepLayoutModule, DbxStyleLayoutModule, DbxTextModule]\n})\nexport class DbxLayoutModule {}\n","import { GlobalPositionStrategy } from '@angular/cdk/overlay';\n\nexport type PopupPosition = 'center' | 'bottom_left' | 'bottom_right';\n\nexport interface PopupPositionOffset {\n x?: string;\n y?: string;\n}\n\nexport class PopupGlobalPositionStrategy extends GlobalPositionStrategy {\n private _position!: PopupPosition;\n private _offset: PopupPositionOffset = {};\n\n constructor(position: PopupPosition = 'bottom_right', offset?: PopupPositionOffset) {\n super();\n this.setPopupPosition(position, offset);\n }\n\n setPopupOffset(offset?: PopupPositionOffset): void {\n this.setPopupPosition(this._position, offset ?? {});\n }\n\n setPopupPosition(position: PopupPosition, offset?: PopupPositionOffset): void {\n this._resetPositions();\n this._position = position;\n\n if (offset) {\n this._offset = offset;\n }\n\n const offsetX = this._offset.x ?? '0';\n const offsetY = this._offset.y ?? '0';\n\n switch (position) {\n case 'center':\n this.centerHorizontally();\n this.centerVertically();\n break;\n case 'bottom_left':\n this.bottom(offsetY);\n this.left(offsetX);\n break;\n case 'bottom_right':\n this.bottom(offsetY);\n this.right(offsetX);\n break;\n }\n }\n\n private _resetPositions(): void {\n this.top();\n this.bottom();\n this.left();\n this.right();\n }\n}\n","import { Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopupKey = string;\n\nexport enum DbxPopupWindowState {\n NORMAL = 'normal',\n MINIMIZED = 'minimized',\n FULLSCREEN = 'fullscreen'\n}\n\nexport abstract class DbxPopupController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopupKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly windowState$: Observable<DbxPopupWindowState>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popup to close.\n */\n abstract close(): void;\n /**\n * Closes the popup and returns the input value.\n */\n abstract return(value?: O): void;\n abstract minimize(): void;\n abstract normalscreen(): void;\n abstract fullscreen(): void;\n}\n","import { DbxPopupKey, DbxPopupController } from './popup';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopupCoordinatorService implements OnDestroy {\n private _popups = new BehaviorSubject<Map<DbxPopupKey, DbxPopupController>>(new Map());\n\n readonly popups$ = this._popups.asObservable();\n\n ngOnDestroy(): void {\n this._popups.complete();\n }\n\n get popups(): Map<DbxPopupKey, DbxPopupController> {\n return this._popups.value;\n }\n\n public addPopup(popup: DbxPopupController): void {\n const key = popup.key;\n\n if (key) {\n this.removePopup(key);\n this._popups.value.set(key, popup);\n this._popups.next(this.popups);\n }\n }\n\n public removePopup(key: DbxPopupKey, popup?: DbxPopupController): void {\n if (key) {\n const existing = this.popups.get(key);\n\n // Remove if there is one existing, and if popup is provided it is the same popup.\n if (existing && (!popup || popup === existing)) {\n existing.close();\n this._popups.value.delete(key);\n this._popups.next(this.popups);\n }\n }\n }\n}\n","import { DbxPopupController } from './popup';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { DbxPopupCoordinatorService } from './popup.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Component({\n selector: 'dbx-popup-coordinator',\n template: `\n <ng-container *ngIf=\"show$ | async\">\n <ng-content></ng-content>\n </ng-container>\n `\n})\nexport class DbxPopupCoordinatorComponent implements OnInit, OnDestroy {\n readonly isPopupForKey$ = this.service.popups$.pipe(\n map((x) => x.get(this.popup.key) === this.popup),\n shareReplay(1)\n );\n readonly show$ = this.isPopupForKey$.pipe(delay(0));\n\n constructor(private readonly service: DbxPopupCoordinatorService, private readonly popup: DbxPopupController) {}\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, NgZone, Type, OnDestroy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Maybe, PixelsString } from '@dereekb/util';\nimport { CompactMode, CompactContextStore } from '../../layout';\nimport { BehaviorSubject, Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopupGlobalPositionStrategy, PopupPosition, PopupPositionOffset } from './popup.position.strategy';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponentConfig, DbxRouterTransitionService } from '@dereekb/dbx-core';\nimport { DbxPopupController, DbxPopupKey, DbxPopupWindowState } from './popup';\n\nexport const APP_POPUP_NORMAL_WIDTH = '700px';\nexport const APP_POPUP_MINIMIZED_WIDTH = '300px';\nexport const APP_POPUP_NORMAL_HEIGHT = 'auto';\n\nexport abstract class DbxPopupComponentController<O, I> extends DbxPopupController<O, I> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopupComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popup should exist at a time given a certain key.\n */\n key: DbxPopupKey;\n position?: PopupPosition;\n offset?: PopupPositionOffset;\n closeOnTransition?: boolean;\n componentClass: Type<T>;\n data?: I;\n isDraggable?: boolean;\n init?: (component: T, controller: DbxPopupController<O, I>) => void;\n width?: PixelsString;\n height?: PixelsString;\n}\n\n/**\n * Popup component.\n */\n@Component({\n template: `\n <dbx-popup-coordinator>\n <div class=\"dbx-popup-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popup-coordinator>\n `,\n providers: [\n {\n provide: DbxPopupController,\n useExisting: DbxPopupComponent\n },\n {\n provide: CompactContextStore\n }\n ]\n})\nexport class DbxPopupComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopupController<O, I>, OnDestroy {\n private _position: PopupGlobalPositionStrategy;\n\n readonly contentConfig: DbxInjectionComponentConfig = {\n componentClass: this.config.componentClass,\n init: this.config.init ? (instance) => (this.config as Required<DbxPopupComponentConfig<O, I, T>>).init(instance as T, this) : undefined\n };\n\n private readonly closing = new Subject<void>();\n readonly isClosing$ = this.closing.pipe(\n first(),\n map(() => true),\n startWith(false),\n shareReplay(1)\n );\n readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n private readonly _windowState = new BehaviorSubject<DbxPopupWindowState>(DbxPopupWindowState.NORMAL);\n readonly windowState$ = this._windowState.asObservable();\n\n getClosingValueFn?: (value?: I) => Promise<O>;\n\n constructor(private popoverRef: NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O>, private compactContextState: CompactContextStore, dbxRouterTransitionService: DbxRouterTransitionService, ngZone: NgZone) {\n super(dbxRouterTransitionService, ngZone);\n\n this.compactContextState.setMode(CompactMode.COMPACT);\n this._position = new PopupGlobalPositionStrategy(this.config.position, this.config.offset);\n this.popoverRef.overlay.updatePositionStrategy(this._position);\n }\n\n get config(): DbxPopupComponentConfig<O, I, T> {\n return this.popoverRef.data;\n }\n\n get key(): DbxPopupKey {\n return this.config.key;\n }\n\n get data(): Maybe<I> {\n return this.config.data;\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.closing.complete();\n this._windowState.complete();\n }\n\n protected updateForSuccessfulTransition(): void {\n if (this.config.closeOnTransition !== false) {\n this.close();\n }\n }\n\n // Popup Controls\n public close(): void {\n this.closing.next();\n\n if (this.getClosingValueFn) {\n this.getClosingValueFn().then(\n (x) => {\n this.return(x);\n },\n () => {\n this.return();\n }\n );\n } else {\n this.return();\n }\n }\n\n public return(value?: O): void {\n this.closing.next();\n this.popoverRef.close(value);\n }\n\n public minimize(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize(APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.MINIMIZED);\n }\n\n public normalscreen(): void {\n this.popoverRef.isDraggable = this.config.isDraggable;\n this.popoverRef.resize(APP_POPUP_NORMAL_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.NORMAL);\n }\n\n public fullscreen(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize('100%', '100%');\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.FULLSCREEN);\n }\n}\n","import { Directive } 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 constructor(public readonly popup: DbxPopupComponent<O, I, T>) {}\n\n closePopup(): void {\n this.popup.close();\n }\n}\n","import { Component } from '@angular/core';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\n\n/**\n * Popup content wrapper component.\n */\n@Component({\n selector: 'dbx-popup-content',\n template: `\n <ng-content select=\"[controls]\"></ng-content>\n <div *ngIf=\"showContent$ | async\" class=\"dbx-popup-content-container\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-popup-content'\n }\n})\nexport class DbxPopupContentComponent {\n readonly showContent$ = this.appPopupController.windowState$.pipe(map((x) => x !== DbxPopupWindowState.MINIMIZED));\n\n constructor(private appPopupController: DbxPopupController) {}\n}\n","import { Component } from '@angular/core';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\n\n/**\n * Popup Control Buttons.\n */\n@Component({\n selector: 'dbx-popup-control-buttons',\n template: `\n <ng-container [ngSwitch]=\"isMinimized$ | async\">\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"false\" icon=\"minimize\" (buttonClick)=\"minimizeClicked()\"></dbx-button>\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"true\" icon=\"maximize\" (buttonClick)=\"maximizeClicked()\"></dbx-button>\n </ng-container>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-container [ngSwitch]=\"isFullscreen$ | async\">\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"false\" icon=\"open_in_full\" (buttonClick)=\"fullscreenClicked()\"></dbx-button>\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"true\" icon=\"close_fullscreen\" (buttonClick)=\"normalscreenClicked()\"></dbx-button>\n </ng-container>\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-button [flat]=\"true\" icon=\"close\" color=\"warn\" (buttonClick)=\"closeClicked()\"></dbx-button>\n `,\n host: {\n class: 'dbx-popup-control-buttons'\n }\n})\nexport class DbxPopupControlButtonsComponent {\n 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 constructor(private appPopupController: DbxPopupController) {}\n\n minimizeClicked(): void {\n this.appPopupController.minimize();\n }\n\n maximizeClicked(): void {\n this.appPopupController.normalscreen();\n }\n\n fullscreenClicked(): void {\n this.appPopupController.fullscreen();\n }\n\n normalscreenClicked(): void {\n this.appPopupController.normalscreen();\n }\n\n closeClicked(): void {\n this.appPopupController.close();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Popup Controls\n */\n@Component({\n selector: 'dbx-popup-controls',\n template: `\n <span class=\"dbx-popup-controls-header\">{{ header }}</span>\n <div class=\"spacer\"></div>\n <dbx-popup-control-buttons></dbx-popup-control-buttons>\n `,\n host: {\n class: 'dbx-popup-controls'\n }\n})\nexport class DbxPopupControlsComponent {\n @Input()\n header?: string;\n}\n","import { DbxPopupComponent, DbxPopupComponentConfig, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH } from './popup.component';\nimport { Injectable, Injector } from '@angular/core';\nimport { NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport interface DbxPopupConfig<O, I, T> extends DbxPopupComponentConfig<O, I, T> {\n injector?: Injector;\n}\n\n/**\n * Used for displaying a popup.\n */\n@Injectable()\nexport class DbxPopupService {\n private _overlayContainerService: NgOverlayContainerService;\n\n constructor(private _overlay: Overlay, private _injector: Injector) {\n this._overlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n }\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, Host, HostListener, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\n\nconst DEFAULT_ACTION_KEY_TRIGGER = 'enter';\n\n/**\n * Directive that triggers the action on a specific key up event.\n *\n * Events/Keys to respond to should be lowercase.\n */\n@Directive({\n selector: '[dbxActionKeyTrigger]'\n})\nexport class DbxActionKeyTriggerDirective<T = unknown, O = unknown> {\n @Input('dbxActionKeyTrigger')\n inputKey: Maybe<string>;\n\n constructor(@Host() public readonly source: DbxActionContextStoreSourceInstance<T, O>) {}\n\n get key(): string {\n return this.inputKey || DEFAULT_ACTION_KEY_TRIGGER;\n }\n\n @HostListener('document:keyup', ['$event'])\n onKeyupHandler(event: KeyboardEvent): void {\n if (event.key && event.key.toLowerCase() === this.key) {\n this.source.trigger();\n }\n }\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport abstract class DbxPromptConfirm {\n abstract showDialog(): Observable<Maybe<boolean>>;\n}\n\nexport function provideDbxPromptConfirm<S extends DbxPromptConfirm>(sourceType: Type<S>): Provider[] {\n return [\n {\n provide: DbxPromptConfirm,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Pre-configured prompt.\n */\n@Component({\n selector: 'dbx-prompt',\n template: `\n <div class=\"dbx-prompt\">\n <ng-content select=\"[hero]\"></ng-content>\n <dbx-subsection [header]=\"header\" [hint]=\"prompt\">\n <ng-content></ng-content>\n </dbx-subsection>\n </div>\n `\n})\nexport class DbxPromptComponent {\n @Input()\n header?: Maybe<string>;\n\n @Input()\n prompt?: Maybe<string>;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport enum DbxPromptConfirmTypes {\n /**\n * Dialog is for yes/no.\n */\n NORMAL = 'normal',\n /**\n * Dialog is for deleting something.\n */\n DELETE = 'delete'\n}\n\nexport interface DbxPromptConfirmConfig {\n type?: DbxPromptConfirmTypes;\n title?: string;\n prompt?: string;\n confirmText?: string;\n cancelText?: string;\n}\n\n/**\n * Displays a confirmation dialog.\n */\n@Component({\n selector: 'dbx-prompt-confirm',\n templateUrl: './prompt.confirm.component.html'\n})\nexport class DbxPromptConfirmComponent {\n private _config: DbxPromptConfirmConfig = {};\n\n @Output()\n confirm = new EventEmitter<void>();\n\n @Output()\n cancel = new EventEmitter<void>();\n\n @Input()\n get config(): DbxPromptConfirmConfig {\n return this._config;\n }\n\n set config(config: Maybe<DbxPromptConfirmConfig>) {\n this._config = config ?? {};\n }\n\n onConfirm(): void {\n this.confirm.emit();\n }\n\n onCancel(): void {\n this.cancel.emit();\n }\n}\n","<dbx-prompt [header]=\"config.title\" [prompt]=\"config.prompt\">\n <ng-content></ng-content>\n <button mat-stroked-button (click)=\"onConfirm()\">{{ config.confirmText || 'Confirm' }}</button>\n <dbx-button-spacer></dbx-button-spacer>\n <button mat-stroked-button color=\"warn\" (click)=\"onCancel()\">{{ config.cancelText || 'Cancel' }}</button>\n</dbx-prompt>\n","import { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, OnInit } from '@angular/core';\nimport { AbstractDialogDirective } from '../dialog/abstract.dialog.directive';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmTypes } from './prompt.confirm.component';\nimport { Maybe } from '@dereekb/util';\n\nexport const DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG = {\n title: 'Confirm?',\n type: DbxPromptConfirmTypes.NORMAL\n};\n\nexport interface DbxPromptConfirmDialogConfig extends DbxPromptConfirmConfig {\n component?: DbxInjectionComponentConfig;\n}\n\n@Component({\n template: `\n <dbx-dialog-content>\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <dbx-injection [config]=\"injectionConfig\"></dbx-injection>\n </dbx-prompt-confirm>\n </dbx-dialog-content>\n `\n})\nexport class DbxPromptConfirmDialogComponent extends AbstractDialogDirective<boolean, DbxPromptConfirmDialogConfig> implements OnInit {\n get config(): DbxPromptConfirmDialogConfig {\n return this.data;\n }\n\n get injectionConfig(): Maybe<DbxInjectionComponentConfig> {\n return this.data.component;\n }\n\n static openDialog(matDialog: MatDialog, config?: Maybe<DbxPromptConfirmDialogConfig>): MatDialogRef<DbxPromptConfirmDialogComponent, boolean> {\n const dialogRef = matDialog.open(DbxPromptConfirmDialogComponent, {\n data: config || DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG\n });\n return dialogRef;\n }\n\n confirm(): void {\n this.close(true);\n }\n\n cancel(): void {\n this.close(false);\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Maybe } from '@dereekb/util';\nimport { Observable, from } from 'rxjs';\nimport { DbxPromptConfirm, provideDbxPromptConfirm } from './prompt.confirm';\nimport { DbxPromptConfirmConfig } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\n\n// MARK: Abstract\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n */\n@Directive()\nexport abstract class AbstractPromptConfirmDirective implements DbxPromptConfirm {\n config?: Maybe<DbxPromptConfirmConfig>;\n\n private _dialogRef?: MatDialogRef<DbxPromptConfirmDialogComponent, boolean>;\n private _dialogPromise?: Promise<boolean>;\n\n constructor(protected readonly matDialog: MatDialog) {}\n\n showDialog(): Observable<boolean> {\n if (!this._dialogPromise) {\n this._dialogPromise = new Promise<boolean>((resolve) => {\n this._dialogRef = DbxPromptConfirmDialogComponent.openDialog(this.matDialog, this.config);\n this._dialogRef.afterClosed().subscribe((result: Maybe<boolean>) => {\n this._dialogRef = undefined;\n this._dialogPromise = undefined;\n resolve(this._handleDialogResult(Boolean(result)));\n });\n });\n }\n\n return from(this._dialogPromise);\n }\n\n protected _handleDialogResult(result: boolean): boolean {\n return result;\n }\n}\n\n// MARK: Directive\n/**\n * Directive that shows a confirmation screen.\n */\n@Directive({\n selector: '[dbxPromptConfirm]',\n providers: provideDbxPromptConfirm(DbxPromptConfirmDirective)\n})\nexport class DbxPromptConfirmDirective extends AbstractPromptConfirmDirective {\n @Input('dbxPromptConfirm')\n override config?: Maybe<DbxPromptConfirmConfig>;\n\n constructor(dialog: MatDialog) {\n super(dialog);\n }\n}\n","import { Directive, Host, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AbstractPromptConfirmDirective } from '../interaction/prompt/prompt.confirm.directive';\nimport { DbxPromptConfirmConfig } from '../interaction/prompt/prompt.confirm.component';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * DbxActionConfirmDirective configuration.\n */\nexport interface DbxActionConfirmConfig<T = unknown> extends DbxPromptConfirmConfig {\n /**\n * Optionally set the readyValue passed to the instance.\n */\n readyValue?: T;\n}\n\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n *\n * This only works to pass a ready value or reject through, not to work with a button.\n * For button usage, use an appPromptConfirmButton directive.\n */\n@Directive({\n selector: '[dbxActionConfirm]'\n})\nexport class DbxActionConfirmDirective<T = unknown, O = unknown> extends AbstractPromptConfirmDirective implements OnInit, OnDestroy {\n @Input('dbxActionConfirm')\n override config?: Maybe<DbxActionConfirmConfig<T>>;\n\n private _sourceSubscription = new SubscriptionObject();\n\n constructor(@Host() public readonly source: DbxActionContextStoreSourceInstance<T, O>, dialog: MatDialog) {\n super(dialog);\n }\n\n ngOnInit(): void {\n this._sourceSubscription.subscription = this.source.triggered$.subscribe(() => {\n this.showDialog();\n });\n }\n\n ngOnDestroy(): void {\n this._sourceSubscription.destroy();\n }\n\n protected override _handleDialogResult(result: boolean): boolean {\n if (result) {\n this.source.readyValue(this.config?.readyValue as unknown as T);\n } else {\n this.source.reject(undefined);\n }\n\n return result;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-box',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'd-block dbx-prompt-box',\n '[class.elevated]': 'elevated'\n }\n})\nexport class DbxPromptBoxComponent {\n @Input()\n elevated = true;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-page',\n template: `\n <dbx-content-container width=\"full\">\n <div class=\"dbx-prompt-page-content-wrap\">\n <ng-content></ng-content>\n </div>\n </dbx-content-container>\n `,\n host: {\n class: 'd-block dbx-prompt-page'\n }\n})\nexport class DbxPromptPageComponent {}\n","import { DbxButtonDirective, DbxButtonInterceptor } from '@dereekb/dbx-core';\nimport { Directive, Host, OnInit } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { DbxPromptConfirm } from './prompt.confirm';\n\n/**\n * Directive that binds together a confirm dialog with the button.\n */\n@Directive({\n selector: '[dbxPromptConfirmButton]'\n})\nexport class DbxPromptConfirmButtonDirective implements OnInit, DbxButtonInterceptor {\n readonly interceptButtonClick: () => Observable<boolean> = () => {\n return this.prompt.showDialog().pipe(map((x) => Boolean(x)));\n };\n\n constructor(@Host() readonly appButton: DbxButtonDirective, @Host() readonly prompt: DbxPromptConfirm) {}\n\n ngOnInit(): void {\n this.appButton.setButtonInterceptor(this);\n }\n}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from './../../button/button.module';\nimport { DbxPromptComponent } from './prompt.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxPromptBoxComponent } from './prompt.box.component';\nimport { DbxPromptPageComponent } from './prompt.page.component';\nimport { DbxTextModule } from '../../layout/text';\nimport { DbxSectionLayoutModule } from '../../layout/section/section.layout.module';\nimport { DbxContentLayoutModule } from '../../layout/content/content.layout.module';\nimport { DbxPromptConfirmComponent as DbxPromptConfirmComponent } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent as DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\nimport { DbxPromptConfirmDirective } from './prompt.confirm.directive';\nimport { DbxPromptConfirmButtonDirective } from './prompt.button.confirm.directive';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxDialogInteractionModule } from '../dialog/dialog.module';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, MatButtonModule, DbxTextModule, DbxButtonModule, DbxInjectionComponentModule, DbxDialogInteractionModule, DbxSectionLayoutModule, DbxContentLayoutModule],\n declarations: [DbxPromptComponent, DbxPromptBoxComponent, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective],\n exports: [DbxPromptComponent, DbxPromptBoxComponent, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDirective]\n})\nexport class DbxPromptModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { DbxButtonModule } from '../button/button.module';\n// import { DbxErrorModule } from '../error/error.module';\nimport { DbxActionKeyTriggerDirective } from './key.trigger.directive';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxActionConfirmDirective } from './action.confirm.directive';\nimport { DbxPromptModule } from '../interaction/prompt/prompt.module';\n\n@NgModule({\n imports: [CommonModule, DbxCoreActionModule, DbxButtonModule, MatSnackBarModule, MatDialogModule, MatButtonModule, DbxPromptModule],\n declarations: [DbxActionKeyTriggerDirective, DbxActionConfirmDirective],\n exports: [DbxCoreActionModule, DbxActionKeyTriggerDirective, DbxActionConfirmDirective]\n})\nexport class DbxActionModule {}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxPopupCoordinatorComponent } from './popup.coordinator.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopupService } from './popup.service';\nimport { DbxPopupContentComponent } from './popup.content.component';\nimport { DbxPopupComponent } from './popup.component';\nimport { DbxRouterAnchorModule } from '../../router';\nimport { DbxActionModule } from '../../action/action.module';\nimport { DbxPopupControlsComponent } from './popup.controls.component';\nimport { DbxPopupControlButtonsComponent } from './popup.controls.buttons.component';\nimport { DbxButtonModule } from '../../button/button.module';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxButtonModule, DbxRouterAnchorModule, DbxActionModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule],\n declarations: [DbxPopupComponent, DbxPopupCoordinatorComponent, DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent],\n exports: [DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent],\n providers: [DbxPopupService]\n})\nexport class DbxPopupInteractionModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxDialogInteractionModule } from './dialog/dialog.module';\nimport { DbxPromptModule } from './prompt/prompt.module';\nimport { DbxPopupInteractionModule } from './popup/popup.module';\nimport { DbxPopoverInteractionModule } from './popover/popover.module';\nimport { DbxFilterInteractionModule } from './filter/filter.module';\n\n@NgModule({\n exports: [DbxDialogInteractionModule, DbxFilterInteractionModule, DbxPromptModule, DbxPopoverInteractionModule, DbxPopupInteractionModule]\n})\nexport class DbxInteractionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPromptModule } from '../../interaction';\nimport { DbxActionSnackbarDirective } from './action.snackbar.directive';\nimport { DbxActionSnackbarComponent } from './action.snackbar.component';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\n@NgModule({\n imports: [CommonModule, DbxStyleLayoutModule, DbxCoreActionModule, DbxPromptModule, DbxButtonModule],\n declarations: [DbxActionSnackbarComponent, DbxActionSnackbarDirective],\n exports: [DbxActionSnackbarComponent, DbxActionSnackbarDirective]\n})\nexport class DbxActionSnackbarModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmTypes, AbstractDialogDirective } from '../../interaction';\n\nexport enum DbxActionTransitionSafetyDialogResult {\n SUCCESS,\n STAY,\n DISCARD,\n NONE\n}\n\n/**\n * Dialog that is shown/triggered as part of the DbxActionTransitionSafety\n */\n@Component({\n template: `\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <ng-container>\n <dbx-error dbxActionError></dbx-error>\n <dbx-button text=\"Save Changes\" dbxActionButton></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n </dbx-prompt-confirm>\n `\n})\nexport class DbxActionUIRouterTransitionSafetyDialogComponent extends AbstractDialogDirective implements OnInit {\n config: DbxPromptConfirmConfig = {\n type: DbxPromptConfirmTypes.NORMAL,\n title: 'Unsaved Changes',\n prompt: 'You have unsaved changes on this page.',\n confirmText: 'Stay',\n cancelText: 'Discard Changes'\n };\n\n confirm(): void {\n this.dialogRef.close(DbxActionTransitionSafetyDialogResult.STAY);\n }\n\n cancel(): void {\n this.dialogRef.close(DbxActionTransitionSafetyDialogResult.DISCARD);\n }\n}\n","import { Directive, OnInit, OnDestroy, Input, ViewContainerRef } 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 } from 'rxjs';\nimport { DbxActionContextStoreSourceInstance, canTriggerAction, isIdleActionState } from '@dereekb/dbx-core';\nimport { DbxActionTransitionSafetyDialogResult, DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\n\n/**\n * How to handle transitions.\n *\n * Values:\n * - none: Nothing occurs.\n * - dialog: Always show a dialog and act based on the result.\n * - auto: Try to auto-trigger if in a triggerable state. If it is modified but in a non-triggerable state, show a dialog. Should be used in conjuction with the auto-saver.\n */\nexport type DbxActionTransitionSafetyType = 'none' | 'dialog' | 'auto';\n\ntype DbxActionTransitionSafetyRaceResult = [boolean | undefined, HookResult | undefined];\n\n/**\n * Context used for preventing a transition from occuring if the action is not complete or is in a modified state.\n *\n * This can be configured to auto-trigger and wait, or show a dialog and wait for the user's feedback before doing anything.\n *\n * NOTE: This dialog only works for uirouter.\n */\n@Directive({\n selector: '[dbxActionTransitionSafety]'\n})\nexport class DbxActionTransitionSafetyDirective<T, O> implements OnInit, OnDestroy {\n @Input('dbxActionTransitionSafety')\n inputSafetyType?: DbxActionTransitionSafetyType;\n\n private _dialogRef?: MatDialogRef<DbxActionUIRouterTransitionSafetyDialogComponent, DbxActionTransitionSafetyDialogResult>;\n private stopWatchingTransition?: () => void;\n\n constructor(public readonly source: DbxActionContextStoreSourceInstance<T, O>, protected readonly transitionService: TransitionService, protected readonly viewContainerRef: ViewContainerRef, protected readonly dialog: MatDialog) {}\n\n get safetyType(): DbxActionTransitionSafetyType {\n return this.inputSafetyType ?? 'dialog';\n }\n\n private get _destroyed(): boolean {\n return !this.stopWatchingTransition;\n }\n\n ngOnInit(): void {\n this.stopWatchingTransition = this.transitionService.onStart({}, (transition: Transition) => {\n return this._handleOnBeforeTransition(transition);\n }) as () => void;\n }\n\n ngOnDestroy(): void {\n if (this.stopWatchingTransition) {\n this.stopWatchingTransition();\n delete this.stopWatchingTransition;\n }\n\n this._closeDialog();\n }\n\n protected _handleOnBeforeTransition(transition: Transition): HookResult {\n return this.source.isModified$\n .pipe(\n first(),\n mergeMap((isModified) => {\n if (isModified) {\n return race([\n // Watch for success to occur. At that point, close everything.\n this.source.success$.pipe(\n first(),\n map(() => [true, undefined] as DbxActionTransitionSafetyRaceResult)\n ),\n this._handleIsModifiedState(transition).pipe(\n first(),\n map((x) => [undefined, x] as DbxActionTransitionSafetyRaceResult)\n )\n ]).pipe(\n map(([saveSuccess, handleResult]: DbxActionTransitionSafetyRaceResult) => {\n if (saveSuccess) {\n return true;\n } else {\n return handleResult;\n }\n }),\n tap(() => this._closeDialog()), // Close dialog if it is still open.\n delay(10) // Delay to allow dialog to close before transition.\n );\n } else {\n return of(true);\n }\n })\n )\n .toPromise()\n .then((x) => x); // Resolve/Flatten potential promise result.\n }\n\n protected _handleIsModifiedState(transition: Transition): Observable<HookResult> {\n const safetyType = this.safetyType;\n let obs: Observable<HookResult>;\n\n // console.log('Safety type: ', safetyType);\n\n switch (safetyType) {\n case 'none':\n obs = of(true); // Do nothing.\n break;\n case 'auto':\n obs = this._autoTrigger(transition);\n break;\n default:\n case 'dialog':\n obs = this._showDialog(transition);\n break;\n }\n\n return obs;\n }\n\n private _autoTrigger(transition: Transition): Observable<HookResult> {\n return this.source.pipeStore((store) =>\n store.state$.pipe(\n delay(20), // Prevent racing with auto-trigger.\n first(),\n mergeMap((state) => {\n if (isIdleActionState(state.actionState)) {\n // If we're in an idle state, get ready to trigger it.\n if (canTriggerAction(state)) {\n store.trigger(); // Try and trigger it.\n }\n }\n\n // Watch for errors. If an error occurs, show the dialog.\n // Success will cause the race in _handleOnBeforeTransition() to trigger and close everything.\n return store.rejected$.pipe(\n first(),\n mergeMap(() => this._showDialog(transition))\n );\n })\n )\n );\n }\n\n private _showDialog(transition: Transition): Observable<HookResult> {\n if (this._destroyed) {\n return of(true);\n }\n\n if (!this._dialogRef) {\n this._dialogRef = this.dialog.open(DbxActionUIRouterTransitionSafetyDialogComponent, {\n viewContainerRef: this.viewContainerRef\n });\n }\n\n return this._dialogRef.afterClosed().pipe(\n first(),\n map((result: DbxActionTransitionSafetyDialogResult = DbxActionTransitionSafetyDialogResult.STAY) => {\n // Default to Stay if the user clicks outside.\n switch (result) {\n case DbxActionTransitionSafetyDialogResult.DISCARD:\n case DbxActionTransitionSafetyDialogResult.SUCCESS:\n case DbxActionTransitionSafetyDialogResult.NONE:\n return true;\n case DbxActionTransitionSafetyDialogResult.STAY:\n return false;\n }\n })\n );\n }\n\n private _closeDialog(): void {\n if (this._dialogRef) {\n this._dialogRef.close(DbxActionTransitionSafetyDialogResult.NONE);\n }\n\n this._dialogRef = undefined;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { DbxActionTransitionSafetyDirective as DbxActionUIRouterTransitionSafetyDirective } from './transition.safety.directive';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPromptModule } from './../../interaction';\nimport { DbxReadableErrorModule } from '../../error';\n\n/**\n * Provides the DbxActionUIRouterTransitionSafetyDirective.\n *\n * NOTE: Only works with UIRouter\n */\n@NgModule({\n imports: [CommonModule, DbxCoreActionModule, DbxPromptModule, DbxButtonModule, DbxReadableErrorModule],\n declarations: [DbxActionUIRouterTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent],\n exports: [DbxActionUIRouterTransitionSafetyDirective]\n})\nexport class DbxActionUIRouterTransitionModule {}\n","import { createAction } from '@ngrx/store';\n\nexport const dbxModelResetState = createAction('[App/Model] Reset State');\n","import { ModelKeyTypeNamePair, ModelKeyTypePair } from '@dereekb/util';\nimport { createAction, props } from '@ngrx/store';\n\nexport interface DbxModelObjectViewedParams {\n modelKeyTypeNamePair: ModelKeyTypeNamePair;\n context?: string;\n}\n\nexport interface DbxModelGoToObjectViewParams {\n modelKeyTypePair: ModelKeyTypePair;\n}\n\nexport const emitObjectViewEvent = createAction('[App/Model/Type] Object Viewed', props<DbxModelObjectViewedParams>());\n","import { createReducer, on } from '@ngrx/store';\n\nimport { DbxModelStateActions } from '../actions';\n\nexport interface DbxModelModuleStateConfiguration {}\n\nexport const stateFeatureKey = 'model.module.config';\n\nexport const initialState: DbxModelModuleStateConfiguration = {\n types: {}\n};\n\nexport const reducer = createReducer(\n initialState,\n on(DbxModelStateActions.dbxModelResetState, () => initialState)\n);\n","import { Action, combineReducers, createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromObjectModuleConfig from './model.module.config';\nimport { DbxModelModuleStateConfiguration } from './model.module.config';\n\nexport const featureKey = 'app.model';\n\nexport interface DbxModelState {\n [fromObjectModuleConfig.stateFeatureKey]: DbxModelModuleStateConfiguration;\n}\n\nexport interface State {\n [featureKey]: DbxModelState;\n}\n\nexport function reducers(state: DbxModelState | undefined, action: Action) {\n return combineReducers({\n [fromObjectModuleConfig.stateFeatureKey]: fromObjectModuleConfig.reducer\n })(state, action);\n}\n\n// MARK: Context\nexport const selectDbxModelFeature = createFeatureSelector<State, DbxModelState>(featureKey);\n\n// MARK: Module Config\nexport const selectDbxModelFeatureObjectModuleConfig = createSelector(selectDbxModelFeature, (state: DbxModelState) => state[fromObjectModuleConfig.stateFeatureKey]);\n","import { tapLog } from '@dereekb/rxjs';\nimport { Injectable } from '@angular/core';\nimport { unixTimeNumberForNow } from '@dereekb/date';\nimport { StorageAccessor } from '@dereekb/dbx-core';\nimport { encodeModelKeyTypePair, ModelRelationUtility, Maybe } from '@dereekb/util';\nimport { map, mergeMap, catchError, Observable, of, Subject, tap } from 'rxjs';\nimport { DbxModelViewTrackerEventSet, DbxModelViewTrackerEvent } from './model.tracker';\n\n/**\n * Used for managing DbxModelViewTrackerEvent storage.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelViewTrackerStorage {\n static readonly OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY = 'dbxModelViewTrackerEvents';\n static readonly DEFAULT_MAX_EVENTS = 100;\n\n private _newEvent = new Subject<DbxModelViewTrackerEvent>();\n\n readonly newEvent$ = this._newEvent.asObservable();\n\n constructor(readonly storageAccessor: StorageAccessor<DbxModelViewTrackerEventSet>) {}\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 // MARK: Compat\n /**\n * @deprecated use addTrackerEvent() instead.\n */\n addEvent(event: DbxModelViewTrackerEvent): Observable<void> {\n return this.addTrackerEvent(event);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Maybe, ModelKeyTypeNamePair } from '@dereekb/util';\nimport { first, Observable } from 'rxjs';\nimport { DbxModelViewTrackerEvent, DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelViewTrackerStorage } from './model.tracker.view.storage';\n\n/**\n * Service used for tracking/logging different kinds of events on objects.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelTrackerService {\n private _defaultFolder: Maybe<string>;\n\n readonly newEvent$ = this.viewTrackerStorage.newEvent$;\n\n constructor(private readonly viewTrackerStorage: DbxModelViewTrackerStorage) {}\n\n get defaultFolder(): Maybe<string> {\n return this._defaultFolder;\n }\n\n set defaultFolder(folder: Maybe<string>) {\n this._defaultFolder = folder ?? undefined;\n }\n\n // MARK: View\n trackViewedObject(modelKeyTypeNamePair: ModelKeyTypeNamePair, context?: string, folder: Maybe<string> = this._defaultFolder): void {\n this.viewTrackerStorage\n .addTrackerEvent({\n m: modelKeyTypeNamePair,\n c: context,\n folder\n })\n .pipe(first())\n .subscribe();\n }\n\n getAllViewEvents(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEvent[]> {\n return this.viewTrackerStorage.getAllEvents(folder);\n }\n\n getViewEventSet(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEventSet> {\n return this.viewTrackerStorage.getEventSet(folder);\n }\n}\n","import { Injectable } 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 constructor(private readonly actions$: Actions, private readonly dbxModelTrackerService: DbxModelTrackerService) {}\n\n readonly trackModelViewed$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent),\n distinctUntilChanged((a, b) => a?.modelKeyTypeNamePair.key === b?.modelKeyTypeNamePair.key && a?.type === b?.type && a?.context === b?.context),\n tap((x) => {\n this.dbxModelTrackerService.trackViewedObject(x.modelKeyTypeNamePair, x.context);\n })\n ),\n { dispatch: false }\n );\n\n readonly changeTrackerFolderToMatchAuth$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxAppAuth.DbxAppAuthUserActions.setUserIdentifier),\n map((x) => x.id),\n filter((x) => Boolean(x)),\n distinctUntilChanged(),\n tap((accountId) => {\n this.dbxModelTrackerService.defaultFolder = accountId;\n })\n ),\n { dispatch: false }\n );\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule, SimpleStorageAccessorFactory } from '@dereekb/dbx-core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { DbxListLayoutModule } from '../../layout/list/list.layout.module';\nimport { DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelTrackerService } from './model.tracker.service';\nimport { DbxModelViewTrackerStorage } from './model.tracker.view.storage';\nimport { fromDbxModel } from './state';\nimport { DbxModelTrackerEffects } from './state/effects/tracker.effects';\n\nexport function appObjectViewTrackerStorageFactory(storageAccessorFactory: SimpleStorageAccessorFactory): DbxModelViewTrackerStorage {\n const accessor = storageAccessorFactory.createStorageAccessor<DbxModelViewTrackerEventSet>({\n prefix: 'mtvs'\n });\n\n return new DbxModelViewTrackerStorage(accessor);\n}\n\n/**\n * Contains components related to displaying content related to models identified only by their model key.\n */\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxListLayoutModule,\n DbxInjectionComponentModule,\n EffectsModule.forFeature([DbxModelTrackerEffects]),\n StoreModule.forFeature(fromDbxModel.featureKey, fromDbxModel.reducers)\n ],\n declarations: [],\n exports: []\n})\nexport class DbxModelInfoModule {\n static forRoot(): ModuleWithProviders<DbxModelInfoModule> {\n return {\n ngModule: DbxModelInfoModule,\n providers: [\n DbxModelTrackerService,\n {\n provide: DbxModelViewTrackerStorage,\n useFactory: appObjectViewTrackerStorageFactory,\n deps: [SimpleStorageAccessorFactory]\n }\n ]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { onDbxModel } from './state';\nimport { DbxModelObjectViewedParams } from './state/actions/model.actions';\nimport { DbxModelFullState } from './state/state';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelObjectStateService {\n constructor(readonly store: Store<DbxModelFullState>) {}\n\n /**\n * Emit a model viewed event.\n */\n emitModelViewEvent({ modelKeyTypeNamePair, context }: DbxModelObjectViewedParams): void {\n this.store.dispatch(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent({ modelKeyTypeNamePair, context }));\n }\n}\n","import { UnixDateTimeNumber, Maybe, ModelKey, ModelKeyTypeNamePair } from '@dereekb/util';\n\n/**\n * Context in which a model was viewed.\n */\nexport type ModelViewContext = string;\n\nexport interface DbxModelViewTrackerEvent {\n /**\n * Event time\n */\n d?: UnixDateTimeNumber;\n /**\n * Context\n */\n c?: ModelViewContext;\n /**\n * Model info\n */\n m: ModelKeyTypeNamePair;\n folder?: Maybe<string>;\n}\n\nexport interface DbxModelViewTrackerEventSet {\n /**\n * The latest date/time number.\n */\n l: UnixDateTimeNumber;\n /**\n * List of events.\n */\n e: DbxModelViewTrackerEvent[];\n}\n\nexport function allDbxModelViewTrackerEventSetModelKeys(eventSet: DbxModelViewTrackerEventSet): ModelKey[] {\n return allDbxModelViewTrackerEventModelKeys(eventSet.e);\n}\n\nexport function allDbxModelViewTrackerEventModelKeys(events: DbxModelViewTrackerEvent[]): ModelKey[] {\n return events.map((y) => y.m.key);\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { capitalCase } from 'change-case';\nimport { map, shareReplay, Observable, BehaviorSubject } from 'rxjs';\nimport { ArrayOrValue, Building, ModelTypeString, useIterableOrValue } from '@dereekb/util';\nimport { DbxModelTypeConfiguration, DbxModelTypeConfigurationMap } from './model.types';\n\nexport interface DbxModelTypeInfo extends Omit<DbxModelTypeConfiguration, 'srefFactory'> {\n /**\n * Whether or not a response is expected for segues\n * to a view for objects of this type.\n */\n canSegueToView: boolean;\n}\n\nexport interface DbxModelTypesMap<I extends DbxModelTypeInfo> {\n readonly [type: string]: I;\n}\n\nexport interface DbxModelIconsMap {\n readonly [type: string]: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelTypesService<I extends DbxModelTypeInfo = DbxModelTypeInfo> {\n private _configs = new BehaviorSubject<DbxModelTypeConfigurationMap>({});\n\n static readonly DEFAULT_ICON = 'help_outline';\n\n constructor(readonly injector: Injector) {}\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 { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeValues, mapIterable } from '@dereekb/util';\nimport { DbxWidgetType } from './widget';\n\nexport interface DbxWidgetEntry {\n /**\n * Widget type to respond to.\n */\n readonly type: DbxWidgetType;\n /**\n * Widget component class to use.\n */\n readonly componentClass: Type<unknown>;\n}\n\n/**\n * Service used to register widgets.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxWidgetService {\n private _entries = new Map<DbxWidgetType, DbxWidgetEntry>();\n\n /**\n * Used to register an entry. If an entry with the same type is already registered, this will override it by default.\n *\n * @param entry\n * @param override\n */\n register(entry: DbxWidgetEntry, override: boolean = true): boolean {\n if (override || !this._entries.has(entry.type)) {\n this._entries.set(entry.type, entry);\n return true;\n } else {\n return false;\n }\n }\n\n // MARK: Get\n getWidgetIdentifiers(): DbxWidgetType[] {\n return Array.from(this._entries.keys());\n }\n\n getWidgetEntry(type: DbxWidgetType): Maybe<DbxWidgetEntry> {\n return this._entries.get(type);\n }\n\n getWidgetEntries(types: Iterable<DbxWidgetType>): DbxWidgetEntry[] {\n return filterMaybeValues(mapIterable(types ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { Observable, BehaviorSubject, map } from 'rxjs';\nimport { Component, Input, OnDestroy } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxWidgetDataPair } from './widget';\nimport { DbxWidgetService } from './widget.service';\n\n/**\n * Used to display a corresponding widget based on the input data.\n */\n@Component({\n selector: 'dbx-widget-view',\n template: `\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n `,\n host: {\n class: 'dbx-widget-view'\n }\n})\nexport class DbxWidgetViewComponent implements OnDestroy {\n private _config = new BehaviorSubject<Maybe<DbxWidgetDataPair>>(undefined);\n\n readonly config$: Observable<Maybe<DbxInjectionComponentConfig>> = this._config.pipe(\n map((pair: Maybe<DbxWidgetDataPair>) => {\n let config: Maybe<DbxInjectionComponentConfig>;\n\n if (pair != null) {\n const entry = this.dbxWidgetService.getWidgetEntry(pair.type);\n\n if (entry) {\n config = {\n componentClass: entry.componentClass,\n data: pair.data\n };\n }\n }\n\n return config;\n })\n );\n\n constructor(readonly dbxWidgetService: DbxWidgetService) {}\n\n ngOnDestroy(): void {\n this._config.complete();\n }\n\n @Input()\n set config(config: Maybe<DbxWidgetDataPair>) {\n this._config.next(config);\n }\n}\n","import { Directive, Inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\n\n@Directive()\nexport abstract class AbstractDbxWidgetComponent<T> {\n constructor(@Inject(DBX_INJECTION_COMPONENT_DATA) readonly data: T) {}\n}\n","import { Component } from '@angular/core';\nimport { of } from 'rxjs';\nimport { AbstractDbxListWrapperDirective, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, DbxValueListGridViewConfig, AbstractDbxValueListViewItemComponent, provideDbxListView, DbxValueAsListItem, AbstractDbxListGridViewDirective, DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE } from '../../layout/list';\nimport { DbxWidgetDataPair } from './widget';\n\nexport type DbxWidgetDataPairWithSelection = DbxValueAsListItem<DbxWidgetDataPair>;\n\n/**\n * Demo DbxSelectionListWrapperDirective\n */\n@Component({\n selector: 'dbx-widget-grid',\n template: DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE\n})\nexport class DbxWidgetListGridComponent extends AbstractDbxListWrapperDirective<DbxWidgetDataPair> {\n constructor() {\n super({\n componentClass: DbxWidgetListGridViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}\n\n@Component({\n template: DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE,\n providers: provideDbxListView(DbxWidgetListGridViewComponent)\n})\nexport class DbxWidgetListGridViewComponent extends AbstractDbxListGridViewDirective<DbxWidgetDataPair> {\n readonly config: DbxValueListGridViewConfig<DbxWidgetDataPairWithSelection> = {\n grid: {\n // TODO: Make configurable.\n columns: 'repeat(auto-fill, minmax(120px, 1fr))',\n gap: '8px'\n },\n componentClass: DbxWidgetListGridViewItemComponent,\n mapValuesToItemValues: (x) => of(x.map((y) => ({ ...y, itemValue: y })))\n };\n}\n\n@Component({\n template: `\n <dbx-widget-view [config]=\"itemValue\"></dbx-widget-view>\n `\n})\nexport class DbxWidgetListGridViewItemComponent extends AbstractDbxValueListViewItemComponent<DbxWidgetDataPair> {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxListLayoutModule } from '../../layout/list/list.layout.module';\nimport { DbxWidgetViewComponent } from './widget.component';\nimport { DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent } from './widget.list.component';\n\n/**\n * Contains components related to displaying \"widgets\" for pieces of data.\n */\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxListLayoutModule,\n DbxInjectionComponentModule\n ],\n declarations: [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent],\n exports: [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent]\n})\nexport class DbxWidgetModule {}\n","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/**\n * Should only be imported once in the root app.\n *\n * Pre-configures the following modules:\n */\n@NgModule({\n imports: []\n})\nexport class DbxWebRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4","i1.DbxSpinnerButtonComponent","i2","i3.DbxSpacerDirective","i5.DbxButtonComponent","i6.DbxButtonSpacerDirective","i1","i2.DbxActionSnackbarService","i3","i1.DbxStyleService","declarations","i1.CompactContextStore","i1.DbxPopoverCoordinatorService","i2.DbxPopoverController","i2.CompactContextStore","i4.DbxWindowKeyDownListenerDirective","i5.DbxStyleDirective","i6.DbxPopoverCoordinatorComponent","i1.DbxPopoverComponent","i1.DbxPopoverContentComponent","i3.DbxPopoverContentComponent","i4.DbxPopoverHeaderComponent","i5.DbxPopoverScrollContentComponent","i6","i7","i1.DbxPopoverService","i1.DbxIconButtonComponent","i2.DbxButtonComponent","i5","i1.DbxRouterWebProviderConfig","i7.DbxAnchorComponent","i1.DbxAnchorListComponent","i3.DbxAnchorComponent","i1.DbxAnchorComponent","i2.DbxAnchorComponent","i1.DbxValueListItemModifier","i2.DbxScreenMediaService","i4.DbxIconButtonComponent","i8.DbxAnchorComponent","i4.DbxAnchorListComponent","i1.DbxSidenavComponent","i1.DbxPagebarComponent","i2.DbxButtonSpacerDirective","i3.DbxSidenavButtonComponent","i3.DbxSidenavPagebarComponent","i3.DbxBarDirective","i1.TwoColumnsContextStore","i2.DbxContentContainerDirective","i4.DbxAnchorComponent","i5.DbxTwoColumnColumnHeadComponent","i1.DbxTwoColumnComponent","i1.DbxFlagComponent","i1.DbxScreenMediaService","i1.DbxLabelComponent","i2.DbxLabelBlockComponent","i1.DbxErrorWidgetService","i1.DbxErrorWidgetViewComponent","i2.DbxPopoverHeaderComponent","i3.DbxPopoverScrollContentComponent","i4.DbxErrorDetailsComponent","i2.DbxReadableErrorComponent","i3.DbxLoadingProgressComponent","i1.DbxBasicLoadingComponent","i2.DbxLoadingComponent","i1.DbxReadableErrorComponent","i1.DbxDetailBlockHeaderComponent","i1.DbxLoadingComponent","i1.DbxListView","i2.DbxValueListItemModifier","i2.DbxListView","i6.DbxValueListItemViewComponent","i5.DbxAnchorComponent","i1.DbxSectionHeaderComponent","i1.DbxPopupCoordinatorService","i2.DbxPopupController","i4.DbxPopupCoordinatorComponent","i1.DbxPopupComponent","i1.DbxPopupController","i3.DbxButtonComponent","i4.DbxButtonSpacerDirective","i1.DbxPopupControlButtonsComponent","i1.DbxSubSectionComponent","i3.DbxPromptComponent","i2.DbxDialogContentDirective","i3.DbxPromptConfirmComponent","i1.DbxContentContainerDirective","i2.DbxPromptConfirm","i1.DbxPromptConfirmComponent","i5.DbxReadableErrorComponent","i6.DbxActionErrorDirective","DbxActionUIRouterTransitionSafetyDirective","DbxModelStateActions.dbxModelResetState","fromObjectModuleConfig.stateFeatureKey","fromObjectModuleConfig.reducer","i1.DbxModelViewTrackerStorage","onDbxModel.DbxModelStateModelActions.emitObjectViewEvent","i2.DbxModelTrackerService","fromDbxModel.featureKey","fromDbxModel.reducers","i1.DbxWidgetService","i1.DbxListComponent","i3.DbxValueListGridViewComponent","i4.DbxWidgetViewComponent"],"mappings":"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"}
1
+ {"version":3,"file":"dereekb-dbx-web.mjs","sources":["../../../../packages/dbx-web/src/lib/layout/style/spacer.directive.ts","../../../../packages/dbx-web/src/lib/button/progress/button.progress.config.ts","../../../../packages/dbx-web/src/lib/button/progress/base.progress.button.directive.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/spinner.button.component.html","../../../../packages/dbx-web/src/lib/button/button.component.ts","../../../../packages/dbx-web/src/lib/button/button.spacer.component.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.component.html","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.default.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.generator.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.service.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.directive.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.component.ts","../../../../packages/dbx-web/src/lib/button/icon/icon.button.module.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.ts","../../../../packages/dbx-web/src/lib/button/progress/bar.button.component.html","../../../../packages/dbx-web/src/lib/button/progress/button.progress.module.ts","../../../../packages/dbx-web/src/lib/button/button.module.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/abstract.dialog.directive.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.close.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.footer.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.action.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.service.ts","../../../../packages/dbx-web/src/lib/layout/style/style.set.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.body.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.ts","../../../../packages/dbx-web/src/lib/layout/style/style.color.directive.ts","../../../../packages/dbx-web/src/lib/layout/style/style.layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/dialog/dialog.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.position.strategy.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.store.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.directive.ts","../../../../packages/dbx-web/src/lib/layout/compact/compact.layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.ts","../../../../packages/dbx-web/src/lib/keypress/keydown.listener.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.coordinator.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.header.component.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.scroll.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.component.html","../../../../packages/dbx-web/src/lib/interaction/popover/abstract.popover.ref.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.service.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.directive.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.popover.button.component.ts","../../../../packages/dbx-web/src/lib/keypress/keypress.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.controls.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.content.module.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.action.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popover/popover.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.wrapper.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.ts","../../../../packages/dbx-web/src/lib/router/provider/router.provider.config.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.component.html","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.component.html","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.list.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.icon.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.link.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.content.component.ts","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.module.ts","../../../../packages/dbx-web/src/lib/router/layout/anchorlist/anchorlist.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.menu.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.preset.menu.component.html","../../../../packages/dbx-web/src/lib/router/layout/anchor/anchor.segue.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/router.list.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/list/list.module.ts","../../../../packages/dbx-web/src/lib/screen/screen.ts","../../../../packages/dbx-web/src/lib/screen/screen.service.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.component.html","../../../../packages/dbx-web/src/lib/router/layout/navbar/navbar.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ts","../../../../packages/dbx-web/src/lib/screen/screen.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.component.html","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/pagebar.component.html","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.button.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.pagebar.component.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.page.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.directive.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.header.component.ts","../../../../packages/dbx-web/src/lib/layout/bar/bar.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/content/content.elevate.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.border.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.container.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.box.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.page.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.pit.directive.ts","../../../../packages/dbx-web/src/lib/layout/content/content.layout.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.ifdisplaymode.directive.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/sidenav.module.ts","../../../../packages/dbx-web/src/lib/router/layout/sidenav/index.ts","../../../../packages/dbx-web/src/lib/router/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/ngrouter/angular.router.module.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.ts","../../../../packages/dbx-web/src/lib/router/provider/uirouter/anchor.component.html","../../../../packages/dbx-web/src/lib/router/provider/uirouter/uirouter.router.module.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.menu.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.partial.list.component.ts","../../../../packages/dbx-web/src/lib/interaction/filter/filter.module.ts","../../../../packages/dbx-web/src/lib/layout/block/two.block.component.ts","../../../../packages/dbx-web/src/lib/layout/block/block.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.component.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.container.component.ts","../../../../packages/dbx-web/src/lib/layout/card/card.box.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.store.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.back.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.component.html","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.context.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.full.left.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.head.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.right.component.html","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.sref.showright.directive.ts","../../../../packages/dbx-web/src/lib/layout/column/two/two.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.component.ts","../../../../packages/dbx-web/src/lib/layout/column/one/one.column.module.ts","../../../../packages/dbx-web/src/lib/layout/column/column.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.prompt.component.ts","../../../../packages/dbx-web/src/lib/layout/flag/flag.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.group.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.size.directive.ts","../../../../packages/dbx-web/src/lib/layout/flex/flex.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/item/item.icon.component.ts","../../../../packages/dbx-web/src/lib/layout/item/item.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.content.empty.component.ts","../../../../packages/dbx-web/src/lib/error/error.widget.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/label.component.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.component.ts","../../../../packages/dbx-web/src/lib/error/error.component.html","../../../../packages/dbx-web/src/lib/loading/loading-progress.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.ts","../../../../packages/dbx-web/src/lib/loading/basic-loading.component.html","../../../../packages/dbx-web/src/lib/loading/loading.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.component.html","../../../../packages/dbx-web/src/lib/layout/list/list.directive.ts","../../../../packages/dbx-web/src/lib/error/error.action.directive.ts","../../../../packages/dbx-web/src/lib/error/error.api.ts","../../../../packages/dbx-web/src/lib/error/error.loading.directive.ts","../../../../packages/dbx-web/src/lib/layout/text/address.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.header.component.ts","../../../../packages/dbx-web/src/lib/layout/text/detail.block.component.ts","../../../../packages/dbx-web/src/lib/layout/text/form.description.component.ts","../../../../packages/dbx-web/src/lib/layout/text/hint.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/note.component.ts","../../../../packages/dbx-web/src/lib/layout/text/notice.component.ts","../../../../packages/dbx-web/src/lib/layout/text/ok.component.ts","../../../../packages/dbx-web/src/lib/layout/text/success.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/warn.component.ts","../../../../packages/dbx-web/src/lib/layout/text/text.module.ts","../../../../packages/dbx-web/src/lib/error/error.module.ts","../../../../packages/dbx-web/src/lib/error/state.ts","../../../../packages/dbx-web/src/lib/loading/loading.action.directive.ts","../../../../packages/dbx-web/src/lib/loading/loading.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.selection.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.ripple.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.grid.view.component.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.modifier.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/list/list.track.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.grid.view.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.selection.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.view.value.item.directive.ts","../../../../packages/dbx-web/src/lib/layout/list/list.wrapper.ts","../../../../packages/dbx-web/src/lib/layout/section/section.header.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.intro.component.ts","../../../../packages/dbx-web/src/lib/layout/section/subsection.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.page.component.ts","../../../../packages/dbx-web/src/lib/layout/section/section.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/step/step.component.ts","../../../../packages/dbx-web/src/lib/layout/step/step.component.html","../../../../packages/dbx-web/src/lib/layout/step/step.layout.module.ts","../../../../packages/dbx-web/src/lib/layout/layout.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.position.strategy.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.service.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.coordinator.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/abstract.popup.directive.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.content.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.buttons.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.controls.component.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.service.ts","../../../../packages/dbx-web/src/lib/action/key.trigger.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.component.html","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.dialog.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.confirm.directive.ts","../../../../packages/dbx-web/src/lib/action/action.confirm.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.box.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.page.component.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.button.confirm.directive.ts","../../../../packages/dbx-web/src/lib/interaction/prompt/prompt.module.ts","../../../../packages/dbx-web/src/lib/action/action.module.ts","../../../../packages/dbx-web/src/lib/interaction/popup/popup.module.ts","../../../../packages/dbx-web/src/lib/interaction/interaction.module.ts","../../../../packages/dbx-web/src/lib/action/snackbar/action.snackbar.module.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.dialog.component.ts","../../../../packages/dbx-web/src/lib/action/transition/transition.safety.directive.ts","../../../../packages/dbx-web/src/lib/action/transition/action.transition.module.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/actions/model.actions.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/model.module.config.ts","../../../../packages/dbx-web/src/lib/extension/model/state/reducers/index.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.view.storage.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.service.ts","../../../../packages/dbx-web/src/lib/extension/model/state/effects/tracker.effects.ts","../../../../packages/dbx-web/src/lib/extension/model/model.module.ts","../../../../packages/dbx-web/src/lib/extension/model/model.state.service.ts","../../../../packages/dbx-web/src/lib/extension/model/model.tracker.ts","../../../../packages/dbx-web/src/lib/extension/model/model.types.service.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.service.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.directive.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.list.component.ts","../../../../packages/dbx-web/src/lib/extension/widget/widget.module.ts","../../../../packages/dbx-web/src/lib/util/cdk.ts","../../../../packages/dbx-web/src/lib/dbx-web.module.ts","../../../../packages/dbx-web/src/dereekb-dbx-web.ts"],"sourcesContent":["import { Directive } from '@angular/core';\n\n@Directive({\n selector: 'dbx-spacer, [dbxSpacer]',\n host: {\n class: 'dbx-spacer'\n }\n})\nexport class DbxSpacerDirective {}\n","import { InjectionToken } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxProgressButtonOptions {\n working?: boolean;\n text?: string;\n spinnerText?: string;\n buttonColor?: ThemePalette;\n spinnerColor?: ThemePalette;\n barColor?: ThemePalette;\n raised?: boolean;\n stroked?: boolean;\n flat?: boolean;\n fab?: boolean;\n /**\n * Whether or not to render as an icon button.\n */\n iconOnly?: boolean;\n spinnerSize?: number;\n spinnerRatio?: number;\n mode?: ProgressSpinnerMode;\n value?: number;\n fullWidth?: boolean;\n disabled?: boolean;\n /**\n * @deprecated use buttonIcon instead.\n */\n icon?: DbxProgressButtonIcon;\n type?: string;\n customStyle?: { [key: string]: string };\n customClass?: string;\n /**\n * Custom spinner color. Overrides the normal spinner color if provided.\n */\n customSpinnerColor?: Maybe<string>;\n buttonIcon?: DbxProgressButtonIcon;\n id?: string;\n}\n\nexport interface DbxProgressButtonIcon {\n color?: ThemePalette;\n fontIcon?: string;\n fontSet?: string;\n inline?: boolean;\n svgIcon?: string;\n customClass?: string;\n}\n\nexport interface DbxProgressButtonTargetedConfig extends DbxProgressButtonOptions {\n id?: string;\n}\n\nexport type DbxProgressButtonGlobalConfig = DbxProgressButtonTargetedConfig[];\n\nexport const DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG = new InjectionToken<DbxProgressButtonGlobalConfig>('DbxMatProgressButtonGlobalConfig');\n","import { ChangeDetectorRef, OnDestroy, OnInit, Optional, Directive, Input, Output, HostListener, EventEmitter, Inject } from '@angular/core';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Observable, shareReplay, map, BehaviorSubject, combineLatest, first, distinctUntilChanged } from 'rxjs';\nimport { DbxProgressButtonGlobalConfig, DbxProgressButtonOptions, DbxProgressButtonTargetedConfig, DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG } from './button.progress.config';\n\n@Directive()\nexport abstract class AbstractProgressButtonDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private _computedOptions: Maybe<DbxProgressButtonOptions> = undefined;\n\n private _working = new BehaviorSubject<boolean>(false);\n private _disabled = new BehaviorSubject<boolean>(false);\n\n private _buttonId = new BehaviorSubject<Maybe<string>>(undefined);\n private _options = new BehaviorSubject<Maybe<DbxProgressButtonOptions>>(undefined);\n\n readonly globalOptions$: Observable<Maybe<DbxProgressButtonOptions>> = this._buttonId.pipe(map((buttonId: Maybe<string>) => (buttonId ? this.globalConfig.find((config: DbxProgressButtonTargetedConfig) => config.id === buttonId) : undefined)));\n\n readonly options$: Observable<DbxProgressButtonOptions> = combineLatest([this._options, this.globalOptions$, this._working, this._disabled]).pipe(\n map(([options, globalConfig, working, disabled]) => {\n let completeOptions: Maybe<DbxProgressButtonOptions>;\n\n if (options || globalConfig) {\n completeOptions = {\n ...globalConfig,\n ...options,\n working: options?.working || working,\n disabled: options?.disabled || disabled\n };\n\n completeOptions.buttonIcon = completeOptions.buttonIcon || completeOptions.icon;\n }\n\n return completeOptions;\n }),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Output()\n readonly btnClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();\n\n constructor(@Optional() @Inject(DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG) private globalConfig: DbxProgressButtonGlobalConfig = [], readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.options$.subscribe((options) => {\n this._computedOptions = options;\n safeMarkForCheck(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._working.complete();\n this._disabled.complete();\n this._buttonId.complete();\n this._options.complete();\n }\n\n @HostListener('click', ['$event'])\n public handleClick(event: MouseEvent): void {\n this.options$.pipe(first()).subscribe((options) => {\n if (!options.disabled && !options.working) {\n this.btnClick.emit(event);\n event.stopImmediatePropagation();\n }\n });\n }\n\n get customSpinnerStyle() {\n const customSpinnerColor = (this._computedOptions as DbxProgressButtonOptions).customSpinnerColor;\n return customSpinnerColor ? { stroke: customSpinnerColor } : undefined;\n }\n\n @Input()\n get options(): DbxProgressButtonOptions {\n return this._computedOptions as DbxProgressButtonOptions;\n }\n\n set options(options: DbxProgressButtonOptions) {\n this._options.next(options);\n }\n\n @Input()\n set buttonId(buttonId: string) {\n this._buttonId.next(buttonId);\n }\n\n @Input()\n set working(working: boolean) {\n this._working.next(working);\n }\n\n @Input()\n set disabled(disabled: boolean) {\n this._disabled.next(disabled);\n }\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, ViewChild } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './base.progress.button.directive';\n\n@Component({\n selector: 'dbx-spinner-button',\n templateUrl: './spinner.button.component.html',\n styleUrls: ['./spinner.button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxSpinnerButtonComponent extends AbstractProgressButtonDirective {\n @ViewChild('button', { static: true, read: ElementRef })\n readonly buttonRef!: ElementRef<HTMLElement>;\n\n get showText() {\n return !(this.options.fab || this.options.iconOnly);\n }\n\n calcSpinnerSize() {\n const options = this.options;\n const elem = this.buttonRef?.nativeElement;\n const height = elem.clientHeight;\n\n let size;\n\n if (options) {\n if (options.fab || options.iconOnly) {\n size = height;\n } else {\n size = options.spinnerSize;\n }\n }\n\n if (!size) {\n const minimumSpinnerSize = 18;\n const spinnerRatio = options.spinnerRatio ?? 0.33;\n const targetSpinnerSize = height * Math.min(1, spinnerRatio);\n size = Math.min(height, Math.max(minimumSpinnerSize, targetSpinnerSize));\n }\n\n return size;\n }\n}\n","<button class=\"dbx-spinner-button\" #button mat-button [type]=\"options.type\" [color]=\"options.buttonColor\" [class.working]=\"options.working\" [class.fullWidth]=\"options.fullWidth\" [class.mat-raised-button]=\"options.raised\" [class.mat-stroked-button]=\"options.stroked\" [class.mat-flat-button]=\"options.flat\" [class.mat-icon-button]=\"options.iconOnly\" [class.mat-fab]=\"options.fab\" [ngClass]=\"options.customClass!\" [ngStyle]=\"options.customStyle!\" [disabled]=\"options.working || options.disabled\">\n <ng-container *ngIf=\"showText\">\n <ng-container *ngIf=\"options.buttonIcon\">\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!options.buttonIcon.fontSet\" [class.working]=\"options.working && !options.disabled\" [ngClass]=\"options.buttonIcon.customClass!\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <span class=\"button-text\" [class.working]=\"options.working && !options.disabled\">\n {{ options.text }}\n <ng-content></ng-content>\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"!showText && options.buttonIcon\">\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\" [inline]=\"options.fab && options.buttonIcon.inline!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <mat-spinner class=\"spinner\" *ngIf=\"options.working && !options.disabled\" [diameter]=\"calcSpinnerSize()\" [color]=\"options.spinnerColor!\" [mode]=\"options.mode!\" [value]=\"options.value!\" [ngStyle]=\"customSpinnerStyle!\" [ngClass]=\"{ 'dbx-spinner-custom': customSpinnerStyle! }\" [class.working]=\"options.working && !options.disabled\"></mat-spinner>\n</button>\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { provideDbxButton, AbstractDbxButtonDirective } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxProgressButtonOptions } from './progress/button.progress.config';\n\nexport enum DbxButtonDisplayType {\n RAISED,\n STROKED,\n FLAT,\n ICON_ONLY\n}\n\n/**\n * Complex button that supports loading states.\n */\n@Component({\n selector: 'dbx-button',\n template: `\n <dbx-spinner-button class=\"page-button\" (btnClick)=\"clickButton()\" [options]=\"btnOptions\">\n <ng-content></ng-content>\n </dbx-spinner-button>\n `,\n providers: provideDbxButton(DbxButtonComponent)\n})\nexport class DbxButtonComponent extends AbstractDbxButtonDirective {\n @Input()\n type?: DbxButtonDisplayType;\n\n @Input()\n get raised(): boolean {\n return this.type === DbxButtonDisplayType.RAISED;\n }\n\n set raised(raised: boolean) {\n if (raised) {\n this.type = DbxButtonDisplayType.RAISED;\n }\n }\n\n @Input()\n get stroked(): boolean {\n return this.type === DbxButtonDisplayType.STROKED;\n }\n\n set stroked(stroked: boolean) {\n if (stroked) {\n this.type = DbxButtonDisplayType.STROKED;\n }\n }\n\n @Input()\n get flat(): boolean {\n return this.type === DbxButtonDisplayType.FLAT;\n }\n\n set flat(flat: boolean) {\n if (flat) {\n this.type = DbxButtonDisplayType.FLAT;\n }\n }\n\n @Input()\n get iconOnly(): boolean {\n return this.type === DbxButtonDisplayType.ICON_ONLY;\n }\n\n set iconOnly(iconOnly: boolean) {\n if (iconOnly) {\n this.type = DbxButtonDisplayType.ICON_ONLY;\n }\n }\n\n @Input()\n public color: ThemePalette = 'primary';\n\n @Input()\n public customButtonColor: Maybe<string>;\n\n @Input()\n public customTextColor: Maybe<string>;\n\n @Input()\n public customSpinnerColor: Maybe<string>;\n\n public get btnOptions(): DbxProgressButtonOptions {\n const buttonIcon = this.icon\n ? {\n fontIcon: this.icon\n }\n : undefined;\n\n const customStyle = {} as {\n [key: string]: string;\n };\n\n if (this.customButtonColor) {\n customStyle['background'] = this.customButtonColor;\n }\n\n if (this.customTextColor) {\n customStyle['color'] = this.customTextColor;\n }\n\n const customSpinnerColor: Maybe<string> = this.customSpinnerColor ?? this.customTextColor;\n const disabled = !this.working && this.disabled; // Only disabled if we're not working, in order to show the animation.\n\n const isIconOnlyButton = buttonIcon && !this.text;\n\n return {\n fab: false,\n working: this.working,\n buttonIcon,\n customStyle,\n customClass: 'dbx-button ' + (isIconOnlyButton ? 'dbx-button-no-text' : ''),\n text: this.text ?? '',\n buttonColor: this.color,\n barColor: 'accent',\n raised: this.raised,\n stroked: this.stroked,\n flat: this.flat,\n iconOnly: this.iconOnly,\n mode: 'indeterminate',\n spinnerColor: this.color === 'primary' ? 'accent' : 'primary',\n customSpinnerColor,\n disabled\n };\n }\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Button spacer directive.\n */\n@Directive({\n selector: 'dbx-button-spacer,[dbxButtonSpacer]',\n host: {\n class: 'dbx-button-spacer d-inline'\n }\n})\nexport class DbxButtonSpacerDirective {}\n","import { OnInit, Component, Inject, OnDestroy, AfterViewInit } from '@angular/core';\nimport { filterMaybe, LoadingStateType } from '@dereekb/rxjs';\nimport { distinctUntilChanged, Observable, shareReplay, BehaviorSubject, switchMap, startWith, Subject, of, filter, map } from 'rxjs';\nimport { MatSnackBarRef, MAT_SNACK_BAR_DATA } from '@angular/material/snack-bar';\nimport { Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarActionConfig } from './action.snackbar';\nimport { DbxActionContextSourceReference, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport ms from 'ms';\n\n/**\n * Component for a snackbar that contains an action.\n */\n@Component({\n templateUrl: './action.snackbar.component.html'\n})\nexport class DbxActionSnackbarComponent extends AbstractSubscriptionDirective implements OnInit, AfterViewInit, OnDestroy {\n private _durationTimeout = new Subject<void>();\n private _actionRef = new BehaviorSubject<Maybe<DbxActionContextSourceReference>>(undefined);\n\n readonly value$ = of(0); // value passed to the action.\n readonly sourceInstance$ = this._actionRef.pipe(\n filterMaybe(),\n map((x) => x?.sourceInstance)\n );\n readonly complete$ = this.sourceInstance$.pipe(\n switchMap((x) => x.isSuccess$),\n startWith(false),\n shareReplay(1)\n );\n readonly loadingStateType$ = this.sourceInstance$.pipe(\n switchMap((x) => x.loadingStateType$),\n startWith(LoadingStateType.IDLE),\n shareReplay(1)\n );\n readonly snackbarStatusClass$: Observable<string> = this.loadingStateType$.pipe(\n map((x) => {\n let classes = 'dbx-action-snackbar-';\n\n switch (x) {\n case LoadingStateType.ERROR:\n classes += 'error';\n break;\n case LoadingStateType.SUCCESS:\n classes += 'success';\n break;\n default:\n classes += 'idle';\n break;\n }\n\n return classes;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly button: Maybe<string>;\n\n get action() {\n return this.data.action;\n }\n\n get hasAction(): boolean {\n return Boolean(this._actionRef.value);\n }\n\n get message(): Maybe<string> {\n return this.data.message;\n }\n\n get actionConfig(): Maybe<DbxActionSnackbarActionConfig> {\n return this.data.action;\n }\n\n constructor(readonly snackbar: MatSnackBarRef<DbxActionSnackbarComponent>, @Inject(MAT_SNACK_BAR_DATA) readonly data: DbxActionSnackbarDisplayConfig) {\n super();\n this.button = this.data.action?.button ?? this.data.button;\n this._actionRef.next(this.data.action?.reference);\n }\n\n ngOnInit(): void {\n // Subscribe and close if the duration is up and the action state is idle.\n this.sub = this._durationTimeout\n .pipe(\n switchMap(() => this.loadingStateType$),\n filter((x) => x === LoadingStateType.IDLE)\n )\n .subscribe(() => {\n this.dismiss();\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._actionRef.value?.destroy();\n this._actionRef.complete();\n this._durationTimeout.complete();\n }\n\n ngAfterViewInit(): void {\n // Responsible for hiding itself if it has an action.\n if (this.hasAction) {\n setTimeout(() => {\n this._durationTimeout.next();\n }, this.action?.duration ?? ms('10s'));\n }\n }\n\n dismissAfterActionCompletes = (): void => {\n this.snackbar._dismissAfter(ms('3s'));\n };\n\n dismiss = (): void => {\n this.snackbar.dismiss();\n };\n}\n","<div class=\"dbx-action-snackbar\" [ngClass]=\"(snackbarStatusClass$ | async)!\">\n <ng-container [ngSwitch]=\"complete$ | async\">\n <ng-container *ngSwitchCase=\"true\">\n <dbx-spacer></dbx-spacer>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n </ng-container>\n <ng-container *ngSwitchCase=\"false\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n <ng-container *ngIf=\"hasAction\">\n <dbx-action [dbxActionValueStream]=\"value$\" [dbxActionSource]=\"sourceInstance$ | async\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n </ng-container>\n </ng-container>\n</div>\n","import { DbxActionSnackbarEventMakeConfig } from './action.snackbar.service';\n\nexport const DBX_ACTION_SNACKBAR_DEFAULTS: DbxActionSnackbarEventMakeConfig = {\n create: {\n loading: {\n message: 'Creating...'\n },\n success: {\n button: 'Ok',\n message: 'Created'\n },\n error: {\n button: 'X',\n message: 'Create Failed'\n }\n },\n save: {\n loading: {\n message: 'Saving...'\n },\n success: {\n button: 'Ok',\n message: 'Saved'\n },\n error: {\n button: 'X',\n message: 'Save Failed'\n }\n },\n merge: {\n loading: {\n message: 'Merging...'\n },\n success: {\n button: 'Ok',\n message: 'Merged'\n },\n error: {\n button: 'X',\n message: 'Merge Failed'\n }\n },\n delete: {\n loading: {\n message: 'Deleting...'\n },\n success: {\n button: 'Ok',\n message: 'Deleted'\n },\n error: {\n button: 'X',\n message: 'Delete Failed'\n }\n },\n cancel: {\n loading: {\n message: 'Cancelling...'\n },\n success: {\n button: 'Ok',\n message: 'Canceled'\n },\n error: {\n button: 'X',\n message: 'Cancel Failed'\n }\n },\n restore: {\n loading: {\n message: 'Restoring...'\n },\n success: {\n button: 'Ok',\n message: 'Restored'\n },\n error: {\n button: 'X',\n message: 'Restore Failed'\n }\n },\n refresh: {\n loading: {\n message: 'Refreshing...'\n },\n success: {\n button: 'Ok',\n message: 'Refreshed'\n },\n error: {\n button: 'X',\n message: 'Refresh Failed'\n }\n },\n do: {\n loading: {\n message: 'Doing...'\n },\n success: {\n button: 'Ok',\n message: 'Done'\n },\n error: {\n button: 'X',\n message: 'Failed'\n }\n }\n};\n","import { DbxActionContextSourceReference } from '@dereekb/dbx-core';\nimport { Milliseconds, Maybe, GetterOrValue, getValueFromGetter, Getter } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent } from './action.snackbar';\n\nexport interface DbxActionSnackbarGeneratorInput<T = unknown, O = unknown> {\n event: DbxActionSnackbarEvent<O>;\n undo?: Maybe<DbxActionSnackbarGeneratorUndoInput<T, O>>;\n}\n\nexport type DbxActionSnackbarGeneratorUndoInput<T = unknown, O = unknown> = Getter<DbxActionContextSourceReference<T, O>> | DbxActionSnackbarGeneratorUndoInputConfig<T, O>;\n\nexport interface DbxActionSnackbarGeneratorUndoInputConfig<T = unknown, O = unknown> {\n duration?: Milliseconds;\n getUndoAction: Getter<DbxActionContextSourceReference<T, O>>;\n}\n\nexport type DbxActionSnackbarDisplayConfigGeneratorFunction = <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\nexport interface DbxMakeActionSnackbarGeneratorConfiguration {\n idle?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n loading?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n success?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n error?: GetterOrValue<DbxMakeActionSnackbarGeneratorEventConfiguration>;\n}\n\nexport interface DbxMakeActionSnackbarGeneratorEventConfiguration extends Omit<DbxActionSnackbarDisplayConfig, 'action'> {\n /**\n * Sets the undo action text. If undefined, will default to 'undo'\n */\n undoButtonText?: string;\n}\n\n/**\n * Creates a DbxActionSnackbarDisplayConfigGeneratorFunction from the input config.\n *\n * @param config\n * @returns\n */\nexport function makeDbxActionSnackbarDisplayConfigGeneratorFunction(config: DbxMakeActionSnackbarGeneratorConfiguration): DbxActionSnackbarDisplayConfigGeneratorFunction {\n return <T = unknown, O = unknown>(input: DbxActionSnackbarGeneratorInput<T, O>) => {\n const { event, undo: undoInput } = input;\n const type = event.type;\n const eventConfigGetterOrValue = config[type];\n const eventConfig = eventConfigGetterOrValue && getValueFromGetter(eventConfigGetterOrValue);\n\n let result: Maybe<DbxActionSnackbarDisplayConfig<T, O>>;\n\n if (eventConfig) {\n const { undoButtonText } = eventConfig;\n result = {\n button: eventConfig.button,\n message: eventConfig.message,\n snackbar: eventConfig.snackbar\n };\n\n if (undoInput) {\n let reference: DbxActionContextSourceReference<T, O>;\n\n if (typeof undoInput === 'object') {\n reference = undoInput.getUndoAction();\n } else {\n reference = getValueFromGetter(undoInput);\n }\n\n if (!reference) {\n console.error('Expected action source reference was not provided to undo...');\n } else {\n result.action = {\n button: undoButtonText ?? 'Undo',\n reference\n };\n }\n }\n }\n\n return result;\n };\n}\n","import { DbxActionSnackbarComponent } from './action.snackbar.component';\nimport { DBX_ACTION_SNACKBAR_DEFAULTS } from './action.snackbar.default';\nimport { Inject, Injectable, InjectionToken, Optional, Type } from '@angular/core';\nimport { MatSnackBar, MatSnackBarConfig, MatSnackBarRef } from '@angular/material/snack-bar';\nimport { Milliseconds, Maybe, mergeObjects } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarGeneratorInput, DbxMakeActionSnackbarGeneratorConfiguration, makeDbxActionSnackbarDisplayConfigGeneratorFunction } from './action.snackbar.generator';\nimport ms from 'ms';\n\nexport const DBX_ACTION_SNACKBAR_SERVICE_CONFIG = new InjectionToken('DbxActionSnackbarServiceConfig');\n\nexport const DEFAULT_SNACKBAR_DIRECTIVE_DURATION = ms('4s');\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 config: DbxActionSnackbarServiceConfig<C>;\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 constructor(readonly matSnackBar: MatSnackBar, @Optional() @Inject(DBX_ACTION_SNACKBAR_SERVICE_CONFIG) inputConfig: Partial<DbxActionSnackbarServiceConfig<C>>) {\n inputConfig = inputConfig ?? {};\n\n this.config = {\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 }\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, Host, Input, OnInit } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxActionSnackbarDisplayConfig, DbxActionSnackbarEvent, DbxActionSnackbarType } from './action.snackbar';\nimport { DbxActionSnackbarService } from './action.snackbar.service';\nimport { DbxActionSnackbarDisplayConfigGeneratorFunction, DbxActionSnackbarGeneratorInput, DbxActionSnackbarGeneratorUndoInput } from './action.snackbar.generator';\nimport { LoadingState, LoadingStateType, loadingStateType } from '@dereekb/rxjs';\n\n/**\n * Action directive that displays a snackbar when the action context hits a certain state.\n */\n@Directive({\n selector: '[dbxActionSnackbar]'\n})\nexport class DbxActionSnackbarDirective<T = unknown, O = unknown> extends AbstractSubscriptionDirective implements OnInit {\n private _snackbarFunction?: Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction>;\n\n @Input('dbxActionSnackbar')\n get snackbarFunction(): Maybe<DbxActionSnackbarDisplayConfigGeneratorFunction> {\n return this._snackbarFunction;\n }\n\n set snackbarFunction(snackbarFunction: Maybe<'' | DbxActionSnackbarDisplayConfigGeneratorFunction>) {\n if (snackbarFunction) {\n this._snackbarFunction = snackbarFunction;\n }\n }\n\n @Input()\n dbxActionSnackbarDefault?: Maybe<DbxActionSnackbarType>;\n\n @Input()\n dbxActionSnackbarUndo?: DbxActionSnackbarGeneratorUndoInput<T, O>;\n\n constructor(@Host() public readonly source: DbxActionContextStoreSourceInstance<T, O>, readonly dbxActionSnackbarService: DbxActionSnackbarService) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.source\n .pipeStore((store) => store.loadingState$)\n .subscribe((loadingState: LoadingState<O>) => {\n const event: DbxActionSnackbarEvent<O> = { value: loadingState.value, error: loadingState.error, type: loadingStateType(loadingState) };\n\n const config = this.buildConfigurationForEvent(event);\n\n if (config) {\n this.showSnackbarForConfiguration(config, event);\n }\n });\n }\n\n protected buildConfigurationForEvent(event: DbxActionSnackbarEvent<O>): Maybe<DbxActionSnackbarDisplayConfig<T, O>> {\n const input: DbxActionSnackbarGeneratorInput<T, O> = {\n event,\n undo: event.type === LoadingStateType.SUCCESS ? this.dbxActionSnackbarUndo : undefined // only show undo on success.\n };\n\n return this.snackbarFunction ? this.snackbarFunction(input) : this.dbxActionSnackbarService.generateDisplayConfig(this.dbxActionSnackbarDefault, input);\n }\n\n protected showSnackbarForConfiguration(config: DbxActionSnackbarDisplayConfig<T, O>, event: DbxActionSnackbarEvent<O>) {\n this.dbxActionSnackbarService.openSnackbar(config);\n }\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractDbxButtonDirective, provideDbxButton } from '@dereekb/dbx-core';\n\n/**\n * Simple dbx-button that displays a button with an icon.\n */\n@Component({\n selector: 'dbx-icon-button',\n template: `\n <ng-container [ngSwitch]=\"buttonDisplayType\">\n <button *ngSwitchCase=\"'text_button'\" mat-button [disabled]=\"disabled\" (click)=\"clickButton()\">\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span>{{ text }}</span>\n </button>\n <button *ngSwitchCase=\"'icon_button'\" mat-icon-button [disabled]=\"disabled\" (click)=\"clickButton()\">\n <mat-icon>{{ icon }}</mat-icon>\n </button>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: provideDbxButton(DbxIconButtonComponent)\n})\nexport class DbxIconButtonComponent extends AbstractDbxButtonDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxIconButtonComponent } from './icon.button.component';\n\n@NgModule({\n imports: [\n //\n CommonModule,\n MatButtonModule,\n MatIconModule\n ],\n exports: [DbxIconButtonComponent],\n declarations: [DbxIconButtonComponent]\n})\nexport class DbxIconButtonModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { AbstractProgressButtonDirective } from './base.progress.button.directive';\n\n@Component({\n selector: 'dbx-bar-button',\n templateUrl: './bar.button.component.html',\n styleUrls: ['./bar.button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxBarButtonComponent extends AbstractProgressButtonDirective {}\n","<button class=\"dbx-bar-button\" mat-button [type]=\"options.type\" [color]=\"options.buttonColor\" [class.working]=\"options.working\" [class.mat-raised-button]=\"options.raised\" [class.mat-stroked-button]=\"options.stroked\" [class.mat-flat-button]=\"options.flat\" [class.fullWidth]=\"options.fullWidth\" [ngClass]=\"options.customClass!\" [ngStyle]=\"options.customStyle!\" [disabled]=\"options.working || options.disabled\">\n <ng-container *ngIf=\"options.buttonIcon\">\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!options.buttonIcon.fontSet\" [ngClass]=\"options.buttonIcon.customClass!\" [fontSet]=\"options.buttonIcon.fontSet!\" [fontIcon]=\"options.buttonIcon.fontIcon!\" [color]=\"options.buttonIcon.color!\" [svgIcon]=\"options.buttonIcon.svgIcon!\" [inline]=\"options.buttonIcon.inline!\">\n {{ options.buttonIcon.fontSet ? '' : options.buttonIcon.fontIcon }}\n </mat-icon>\n </ng-container>\n\n <span>\n {{ options.text }}\n <ng-content></ng-content>\n </span>\n\n <mat-progress-bar class=\"bar\" *ngIf=\"options.working && !options.disabled\" [color]=\"options.barColor!\" [mode]=\"options.mode!\" [value]=\"options.value!\"></mat-progress-bar>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule, ModuleWithProviders } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG, DbxProgressButtonGlobalConfig } from './button.progress.config';\nimport { DbxBarButtonComponent } from './bar.button.component';\nimport { DbxSpinnerButtonComponent } from './spinner.button.component';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatProgressBarModule, MatProgressSpinnerModule, MatRippleModule, MatIconModule],\n exports: [DbxSpinnerButtonComponent, DbxBarButtonComponent],\n declarations: [DbxSpinnerButtonComponent, DbxBarButtonComponent]\n})\nexport class DbxProgressButtonsModule {\n static forRoot(config?: DbxProgressButtonGlobalConfig): ModuleWithProviders<DbxProgressButtonsModule> {\n return {\n ngModule: DbxProgressButtonsModule,\n providers: [\n {\n provide: DBX_MAT_PROGRESS_BUTTON_GLOBAL_CONFIG,\n useValue: config\n }\n ]\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxButtonComponent } from './button.component';\nimport { DbxButtonSpacerDirective } from './button.spacer.component';\nimport { CommonModule } from '@angular/common';\nimport { DbxCoreButtonModule } from '@dereekb/dbx-core';\nimport { DbxProgressButtonsModule } from './progress/button.progress.module';\nimport { DbxIconButtonModule } from './icon/icon.button.module';\n\n@NgModule({\n imports: [CommonModule, DbxProgressButtonsModule],\n declarations: [DbxButtonComponent, DbxButtonSpacerDirective],\n exports: [DbxCoreButtonModule, DbxProgressButtonsModule, DbxIconButtonModule, DbxButtonComponent, DbxButtonSpacerDirective]\n})\nexport class DbxButtonModule {}\n","import { Directive, Inject, NgZone, Optional } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { AbstractTransitionWatcherDirective, DbxRouterTransitionService } 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 constructor(@Optional() @Inject(MAT_DIALOG_DATA) readonly data: D, @Inject(MatDialogRef) readonly dialogRef: MatDialogRef<T, R>, dbxRouterTransitionService: DbxRouterTransitionService, ngZone: NgZone) {\n super(dbxRouterTransitionService, ngZone);\n }\n\n protected updateForSuccessfulTransition(): void {\n this.close();\n }\n\n returnValue(value?: R) {\n this.close(value);\n }\n\n close(value?: R) {\n this.dialogRef.close(value);\n }\n}\n","import { Component, EventEmitter, OnDestroy, Output } from '@angular/core';\n\n/**\n * Component used to show a close button at the top of a dialog, floating in a corner.\n */\n@Component({\n selector: 'dbx-dialog-content-close',\n template: `\n <button mat-icon-button (click)=\"closeClicked()\"><mat-icon>close</mat-icon></button>\n `,\n host: {\n class: 'dbx-dialog-content-close'\n }\n})\nexport class DbxDialogContentCloseComponent implements OnDestroy {\n @Output()\n readonly close = new EventEmitter<void>();\n\n closeClicked() {\n this.close.emit(undefined);\n }\n\n ngOnDestroy(): void {\n this.close.complete();\n }\n}\n","import { Component, EventEmitter, Input, OnDestroy, Output } from '@angular/core';\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 (click)=\"closeClicked()\">{{ closeText }}</button>\n `,\n host: {\n class: 'dbx-dialog-content-footer'\n }\n})\nexport class DbxDialogContentFooterComponent implements OnDestroy {\n @Input()\n closeText = 'Close';\n\n @Output()\n readonly close = new EventEmitter<void>();\n\n closeClicked() {\n this.close.emit(undefined);\n }\n\n ngOnDestroy(): void {\n this.close.complete();\n }\n}\n","import { Directive, Input } from '@angular/core';\n\nexport type DbxDialogContentContainerWidth = 'normal' | 'wide';\n\n/**\n * Component used to style a dialog.\n */\n@Directive({\n selector: 'dbx-dialog-content,[dbxDialogContent].dbx-dialog-content',\n host: {\n class: 'dbx-dialog-content',\n '[class]': `width + '-dialog-content'`\n }\n})\nexport class DbxDialogContentDirective {\n @Input()\n width = 'normal';\n}\n","import { first, Observable } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, Input, ElementRef } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractDbxActionValueOnTriggerDirective } from '@dereekb/dbx-core';\nimport { IsModifiedFunction } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { MatDialogRef } from '@angular/material/dialog';\n\nexport type DbxActionDialogFunction<T = unknown> = () => MatDialogRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a dialog, then watches that dialog for a value.\n */\n@Directive({\n exportAs: 'dbxActionDialog',\n selector: '[dbxActionDialog]'\n})\nexport class DbxActionDialogDirective<T = unknown> extends AbstractDbxActionValueOnTriggerDirective<T> implements OnInit, OnDestroy {\n @Input('dbxActionDialog')\n fn?: DbxActionDialogFunction<T>;\n\n @Input()\n set dbxActionDialogModified(isModifiedFunction: Maybe<IsModifiedFunction>) {\n this.isModifiedFunction = isModifiedFunction;\n }\n\n constructor(readonly elementRef: ElementRef, source: DbxActionContextStoreSourceInstance<T, unknown>) {\n super(source, () => this._getDataFromDialog());\n }\n\n protected _getDataFromDialog(): Observable<Maybe<T>> {\n return this._makeDialogRef().afterClosed().pipe(first());\n }\n\n protected _makeDialogRef(): MatDialogRef<unknown, Maybe<T>> {\n if (!this.fn) {\n throw new Error('dbxActionDialog has no dialog function provided to it.');\n }\n\n return this.fn();\n }\n}\n","import { Destroyable, Maybe } from '@dereekb/util';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, combineLatest, distinctUntilChanged, map, switchMap, shareReplay } from 'rxjs';\nimport { Inject, Injectable, InjectionToken, Optional } from '@angular/core';\n\nexport const DBX_STYLE_DEFAULT_CONFIG_TOKEN = new InjectionToken('DbxStyleServiceDefaultConfig');\n\nexport interface DbxStyleConfig {\n /**\n * Root style name.\n */\n style: string;\n /**\n * Suffixes available to this configuration.\n */\n suffixes?: Set<string>;\n}\n\n/**\n * Used for managing styles within an app.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxStyleService implements Destroyable {\n private _defaultConfig = new BehaviorSubject<Maybe<DbxStyleConfig>>(undefined);\n private _config = new BehaviorSubject<Maybe<Observable<DbxStyleConfig>>>(undefined);\n private _suffix = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly config$ = this._config.pipe(\n switchMap((x) => {\n if (x == null) {\n return this._defaultConfig;\n } else {\n return x;\n }\n }),\n filterMaybe(),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly suffix$ = this._suffix.pipe(distinctUntilChanged());\n readonly style$ = this.getStyleWithConfig(this.config$);\n\n constructor(@Optional() @Inject(DBX_STYLE_DEFAULT_CONFIG_TOKEN) defaultConfig?: DbxStyleConfig) {\n this._defaultConfig.next(defaultConfig);\n }\n\n get suffix(): Maybe<string> {\n return this._suffix.value;\n }\n\n set suffix(suffix: Maybe<string>) {\n this._suffix.next(suffix);\n }\n\n getStyleWithConfig(configObs: Observable<DbxStyleConfig>): Observable<string> {\n return combineLatest([configObs, this.suffix$]).pipe(\n map(([config, suffix]) => {\n let style = config.style;\n\n if (suffix != null && config.suffixes) {\n const sanitizedSuffix = suffix[0] === '-' ? suffix?.slice(1) : suffix;\n\n if (config.suffixes.has(sanitizedSuffix)) {\n style = `${style}-${sanitizedSuffix}`;\n }\n }\n\n return style;\n }),\n distinctUntilChanged()\n );\n }\n\n toggleDarkSuffix(dark?: Maybe<boolean>) {\n const toggle: boolean = dark != null ? dark : this.suffix !== '-dark';\n\n if (toggle) {\n this.suffix = '-dark';\n } else {\n this.suffix = undefined;\n }\n }\n\n setDefaultConfig(defaultConfig: DbxStyleConfig) {\n this._defaultConfig.next(defaultConfig);\n }\n\n setConfig(config: Observable<DbxStyleConfig>) {\n this._config.next(config);\n }\n\n destroy(): void {\n this._defaultConfig.complete();\n this._config.complete();\n this._suffix.complete();\n }\n}\n","import { splitCommaSeparatedStringToSet, Maybe } from '@dereekb/util';\nimport { Observable, distinctUntilChanged, map, shareReplay, BehaviorSubject, delay, combineLatest } from 'rxjs';\nimport { filterMaybe } from '@dereekb/rxjs';\nimport { Directive, Input, OnDestroy, ChangeDetectorRef, OnInit } from '@angular/core';\nimport { DbxStyleConfig, DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\n\n/**\n * Used to denote which app style to use for all children below this.\n *\n * Will update the parent DbxStyleService.\n */\n@Directive({\n selector: '[dbxSetStyle]',\n host: {\n class: 'dbx-style-root',\n '[class]': 'outputStyle'\n }\n})\nexport class DbxSetStyleDirective extends AbstractSubscriptionDirective implements OnDestroy, OnInit {\n private _suffixes = new BehaviorSubject<Maybe<string>>(undefined);\n private _style = new BehaviorSubject<Maybe<string>>(undefined);\n\n readonly style$ = this._style.pipe(filterMaybe());\n readonly suffixes$ = this._suffixes.pipe(distinctUntilChanged(), map(splitCommaSeparatedStringToSet));\n\n readonly config$: Observable<DbxStyleConfig> = combineLatest([this.style$, this.suffixes$]).pipe(\n map(([style, suffixes]) => ({ style, suffixes })),\n shareReplay(1)\n );\n\n readonly outputStyle$ = this.styleService.getStyleWithConfig(this.config$);\n outputStyle = '';\n\n constructor(readonly styleService: DbxStyleService, readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.styleService.setConfig(this.config$);\n this.sub = this.outputStyle$.pipe(delay(0)).subscribe((style) => {\n this.outputStyle = style;\n safeDetectChanges(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._suffixes.complete();\n this._style.complete();\n }\n\n @Input('dbxSetStyle')\n get style(): string {\n return this._style.value ?? '';\n }\n\n set style(style: string) {\n this._style.next(style);\n }\n\n @Input()\n get suffixes(): Maybe<string> {\n return this._suffixes.value;\n }\n\n set suffixes(suffixes: Maybe<string>) {\n this._suffixes.next(suffixes);\n }\n}\n","import { Directive, ChangeDetectorRef } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\n\n/**\n * Used to retrieve the current app styling from the DbxStyleService.\n */\n@Directive({\n selector: 'dbx-style, [dbxStyle], .dbx-style',\n host: {\n '[class]': 'style'\n }\n})\nexport class DbxStyleDirective extends AbstractSubscriptionDirective {\n style = '';\n\n constructor(readonly styleService: DbxStyleService, private cdRef: ChangeDetectorRef) {\n super(\n styleService.style$.pipe(delay(0)).subscribe((style) => {\n this.style = style;\n safeDetectChanges(this.cdRef);\n })\n );\n }\n}\n","import { Directive, ChangeDetectorRef, Renderer2 } from '@angular/core';\nimport { DbxStyleService } from './style.service';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { delay } from 'rxjs';\n\n/**\n * Used to style the body document using the style provided by DbxStyleService.\n */\n@Directive({\n selector: '[dbxStyleBody]',\n host: {\n '[class]': 'style'\n }\n})\nexport class DbxStyleBodyDirective extends AbstractSubscriptionDirective {\n private _currentStyle = '';\n\n constructor(private renderer: Renderer2, readonly styleService: DbxStyleService, private cdRef: ChangeDetectorRef) {\n super(\n styleService.style$.pipe(delay(0)).subscribe((style) => {\n this._currentStyle && this.renderer.removeClass(document.body, this._currentStyle);\n style && this.renderer.addClass(document.body, style);\n this._currentStyle = style;\n safeDetectChanges(this.cdRef);\n })\n );\n }\n}\n","import { Maybe } from '@dereekb/util';\n\nexport type DbxThemeColor = 'primary' | 'accent' | 'warn' | 'background' | 'grey' | 'disabled';\n\nexport function dbxColorBackground(color: Maybe<DbxThemeColor | ''>): string {\n let cssClass = 'dbx-bg';\n\n switch (color) {\n case 'primary':\n cssClass = 'dbx-primary-bg';\n break;\n case 'accent':\n cssClass = 'dbx-accent-bg';\n break;\n case 'warn':\n cssClass = 'dbx-warn-bg';\n break;\n case 'grey':\n cssClass = 'dbx-grey-bg';\n break;\n case 'disabled':\n cssClass = 'dbx-disabled-bg';\n break;\n }\n\n return cssClass;\n}\n","import { Directive, Input } from '@angular/core';\nimport { DbxThemeColor, dbxColorBackground } from './style';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Used to apply a background style using a color.\n */\n@Directive({\n selector: '[dbxColor]',\n host: {\n '[class]': 'style'\n }\n})\nexport class DbxColorDirective {\n style = '';\n\n @Input()\n set dbxColor(dbxColor: Maybe<DbxThemeColor | ''>) {\n this.style = dbxColorBackground(dbxColor);\n }\n}\n","import { DbxSetStyleDirective } from './style.set.directive';\nimport { DbxStyleDirective } from './style.directive';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxSpacerDirective } from './spacer.directive';\nimport { DbxStyleBodyDirective } from './style.body.directive';\nimport { DbxColorDirective } from './style.color.directive';\n\nconst declarations = [DbxColorDirective, DbxSpacerDirective, DbxStyleDirective, DbxSetStyleDirective, DbxStyleBodyDirective];\n\n@NgModule({\n imports: [CommonModule],\n declarations,\n exports: declarations\n})\nexport class DbxStyleLayoutModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxDialogContentDirective } from './dialog.content.component';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxActionDialogDirective } from './dialog.action.directive';\nimport { DbxDialogContentFooterComponent } from './dialog.content.footer.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxDialogContentCloseComponent } from './dialog.content.close.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, DbxStyleLayoutModule, MatButtonModule, MatIconModule],\n declarations: [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent],\n exports: [DbxDialogContentDirective, DbxActionDialogDirective, DbxDialogContentFooterComponent, DbxDialogContentCloseComponent]\n})\nexport class DbxDialogInteractionModule {}\n","import { FlexibleConnectedPositionStrategy, HorizontalConnectionPos, Overlay, VerticalConnectionPos } from '@angular/cdk/overlay';\nimport { ElementRef } from '@angular/core';\nimport { NgOverlayContainerConfiguration } from 'ng-overlay-container';\n\nexport interface PopoverPositionStrategyConfig {\n overlay: Overlay;\n elementRef: ElementRef;\n config: NgOverlayContainerConfiguration;\n}\n\nexport class PopoverPositionStrategy {\n static make(overlay: Overlay, elementRef: ElementRef, config: NgOverlayContainerConfiguration): FlexibleConnectedPositionStrategy {\n const [originX, origin2ndX, origin3rdX]: HorizontalConnectionPos[] = config.originX === 'end' ? ['end', 'start', 'center'] : config.originX === 'start' ? ['start', 'end', 'center'] : ['center', 'start', 'end'];\n\n const overlayX = originX;\n const [overlayY, overlayFallbackY]: VerticalConnectionPos[] = config.overlayY === 'bottom' ? ['bottom', 'top'] : ['top', 'bottom'];\n\n const [originY, originFallbackY] = [overlayFallbackY, overlayY];\n const { offsetX = 0, offsetY = 0 } = config;\n\n return overlay\n .position()\n .flexibleConnectedTo(elementRef)\n .withLockedPosition(true)\n .withPositions([\n {\n originX,\n originY,\n overlayX,\n overlayY,\n offsetY\n },\n {\n originX: origin2ndX,\n originY,\n overlayX: origin2ndX,\n overlayY,\n offsetY\n },\n {\n originX,\n originY: originFallbackY,\n overlayX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin2ndX,\n originY: originFallbackY,\n overlayX: origin2ndX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n },\n {\n originX: origin3rdX,\n originY,\n overlayX: origin3rdX,\n overlayY,\n offsetY\n },\n {\n originX: origin3rdX,\n originY: originFallbackY,\n overlayX: origin3rdX,\n overlayY: overlayFallbackY,\n offsetY: -offsetY\n }\n ])\n .withDefaultOffsetX(offsetX)\n .withDefaultOffsetY(offsetY);\n }\n}\n","import { Maybe } from '@dereekb/util';\nimport { isBoolean } from 'class-validator';\nimport { Observable, of, map } from 'rxjs';\n\nexport enum CompactMode {\n FULL = 'full',\n COMPACT = 'compact'\n}\n\nexport interface CompactModeOptions<T> {\n full?: T;\n compact?: T;\n}\n\nexport interface CompactModeDefaultOptions<T> extends CompactModeOptions<T> {\n defaultMode?: Maybe<CompactMode>;\n}\n\nexport type CompactModeOption = CompactMode | boolean;\n\nexport function compactModeFromInput(input: CompactMode | boolean): CompactMode {\n if (isBoolean(input)) {\n input = input ? CompactMode.COMPACT : CompactMode.FULL;\n }\n\n return input === CompactMode.COMPACT ? CompactMode.COMPACT : CompactMode.FULL;\n}\n\nexport function mapCompactModeObs<T>(mode$: Maybe<Observable<CompactMode>>, config: CompactModeDefaultOptions<T>): Observable<Maybe<T>> {\n const modeObs = mode$ ?? of(config.defaultMode ?? CompactMode.FULL);\n return modeObs.pipe(\n map((inputMode) => {\n const isCompact = (inputMode ?? config.defaultMode) === CompactMode.COMPACT;\n\n if (isCompact) {\n return config.compact;\n } else {\n return config.full;\n }\n })\n );\n}\n","import { Injectable } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { map } from 'rxjs';\nimport { CompactMode, compactModeFromInput } from './compact';\n\nexport interface CompactContextState {\n mode: CompactMode;\n}\n\n@Injectable()\nexport class CompactContextStore extends ComponentStore<CompactContextState> {\n constructor() {\n super({ mode: CompactMode.FULL });\n }\n\n // MARK: Accessors\n readonly mode$ = this.state$.pipe(map((x) => x.mode));\n\n readonly setMode = this.updater((state, mode: CompactMode | boolean) => ({ mode: compactModeFromInput(mode) }));\n}\n","import { Directive, Input } from '@angular/core';\nimport { CompactMode } from './compact';\nimport { CompactContextStore } from './compact.store';\n\n/**\n * CompactContextStore provider.\n */\n@Directive({\n selector: '[dbxCompact]',\n providers: [CompactContextStore],\n exportAs: 'compact'\n})\nexport class DbxCompactDirective {\n mode$ = this.compactContextStore.mode$;\n\n constructor(readonly compactContextStore: CompactContextStore) {}\n\n @Input('dbxCompact')\n set mode(mode: CompactMode | boolean) {\n this.compactContextStore.setMode(mode);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCompactDirective } from './compact.directive';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxCompactDirective],\n exports: [DbxCompactDirective]\n})\nexport class DbxCompactLayoutModule {}\n","import { Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopoverKey = string;\n\nexport abstract class DbxPopoverController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopoverKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popover to close.\n */\n abstract close(): void;\n /**\n * Closes the popover and returns the input value.\n */\n abstract return(value?: O): void;\n}\n","import { Input, OnDestroy, Output, EventEmitter, HostListener, Directive } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n@Directive({\n selector: '[dbxWindowKeyDownListener]'\n})\nexport class DbxWindowKeyDownListenerDirective implements OnDestroy {\n private _keysFilter?: Maybe<Set<string>>;\n\n @Input()\n appWindowKeyDownEnabled = true;\n\n @Output('dbxWindowKeyDownListener')\n keyPressed = new EventEmitter<KeyboardEvent>();\n\n @Input()\n set appWindowKeyDownFilter(filterOnKeys: string[]) {\n let filter: Maybe<Set<string>>;\n\n if (filterOnKeys) {\n filter = new Set(filterOnKeys);\n }\n\n this._keysFilter = filter;\n }\n\n ngOnDestroy(): void {\n this.keyPressed.complete();\n }\n\n @HostListener('window:keydown', ['$event'])\n handleKeyboardEvent(event: KeyboardEvent) {\n if (this.appWindowKeyDownEnabled !== false) {\n if (!this._keysFilter || this._keysFilter.has(event.key)) {\n this.keyPressed.emit(event);\n }\n }\n }\n}\n","import { DbxPopoverKey, DbxPopoverController } from './popover';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverCoordinatorService implements OnDestroy {\n private _popovers = new BehaviorSubject<Map<DbxPopoverKey, DbxPopoverController>>(new Map());\n readonly popovers$ = this._popovers.asObservable();\n\n ngOnDestroy(): void {\n this._popovers.complete();\n }\n\n get popovers(): Map<DbxPopoverKey, DbxPopoverController> {\n return this._popovers.value;\n }\n\n public addPopover(popover: DbxPopoverController): void {\n const key = popover.key;\n\n if (key) {\n this.removePopover(key);\n this._popovers.value.set(key, popover);\n this._popovers.next(this.popovers);\n }\n }\n\n public removePopover(key: DbxPopoverKey, popover?: DbxPopoverController): void {\n if (key) {\n const existing = this.popovers.get(key);\n\n // Remove if there is one existing, and if popover is provided it is the same popover.\n if (existing && (!popover || popover === existing)) {\n existing.close();\n this._popovers.value.delete(key);\n this._popovers.next(this.popovers);\n }\n }\n }\n}\n","import { DbxPopoverController } from './popover';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { DbxPopoverCoordinatorService } from './popover.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\n\n/**\n * Used for coordinating popovers and closing/replacing existing ones when a new popover of the same name appears.\n */\n@Component({\n selector: 'dbx-popover-coordinator',\n template: `\n <ng-container *ngIf=\"show$ | async\">\n <ng-content></ng-content>\n </ng-container>\n `\n})\nexport class DbxPopoverCoordinatorComponent implements OnInit, OnDestroy {\n readonly isPopoverForKey$ = this.service.popovers$.pipe(\n map((x) => x.get(this.popover.key) === this.popover),\n shareReplay(1)\n );\n readonly show$ = this.isPopoverForKey$.pipe(delay(0));\n\n constructor(private readonly service: DbxPopoverCoordinatorService, private readonly popover: DbxPopoverController) {}\n\n ngOnInit(): void {\n this.service.addPopover(this.popover);\n }\n\n ngOnDestroy(): void {\n this.service.removePopover(this.popover.key, this.popover);\n }\n}\n","import { Component, NgZone, Type, OnInit, OnDestroy, ElementRef } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgPopoverCloseType, NgPopoverRef } from 'ng-overlay-container';\nimport { AbstractTransitionWatcherDirective, DbxRouterTransitionService, 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 } from '@dereekb/util';\nimport { DbxPopoverController, DbxPopoverKey } from './popover';\n\nexport abstract class DbxPopoverComponentController<O, I> extends DbxPopoverController<O, I> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopoverComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popover should exist at a time given a certain key.\n */\n key: DbxPopoverKey;\n /**\n * Origin element to position on.\n */\n origin: ElementRef;\n /**\n * Whether or not to close if a transition occurs.\n */\n closeOnTransition?: boolean;\n /**\n * Whether or not to dismiss when the escape button is pressed.\n *\n * False by default.\n */\n closeOnEscape?: boolean;\n /**\n * Component to inject into the popover.\n */\n componentClass: Type<T>;\n /**\n * Data available to the popover.\n */\n data?: Maybe<I>;\n init?: (component: T, controller: DbxPopoverController<O, I>) => void;\n}\n\nexport interface FullDbxPopoverComponentConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T> {\n configuration: NgOverlayContainerConfiguration;\n}\n\n/**\n * Popover component.\n */\n@Component({\n template: `\n <dbx-popover-coordinator (dbxWindowKeyDownListener)=\"handleKeydown()\" [appWindowKeyDownFilter]=\"triggerCloseKeys\">\n <div dbxStyle class=\"dbx-popover-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popover-coordinator>\n `,\n providers: [\n {\n provide: DbxPopoverController,\n useExisting: DbxPopoverComponent\n },\n {\n provide: CompactContextStore\n }\n ]\n})\nexport class DbxPopoverComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopoverController<O, I>, OnInit, OnDestroy {\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 readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n getClosingValueFn?: (value: Maybe<I>, closeType: NgPopoverCloseType) => PromiseOrValue<O | undefined>;\n\n constructor(private popoverRef: NgPopoverRef<FullDbxPopoverComponentConfig<O, I, T>, O>, private compactContextState: CompactContextStore, dbxRouterTransitionService: DbxRouterTransitionService, ngZone: NgZone) {\n super(dbxRouterTransitionService, ngZone);\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 = (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 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 } 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 constructor(public readonly popover: DbxPopoverComponent<O, I, T>) {}\n\n close(): void {\n this.popover.close();\n }\n\n returnAndClose(value: O): void {\n this.popover.return(value);\n }\n}\n","import { BehaviorSubject, throttleTime } from 'rxjs';\nimport { OnDestroy, Component } from '@angular/core';\nimport { ResizedEvent } from 'angular-resize-event';\n\n/**\n * Popover content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-content',\n template: `\n <div class=\"d-block dbx-popover-content\" (resized)=\"onResized($event)\" [style.--popoverh]=\"height$ | async\">\n <ng-content select=\"[controls]\"></ng-content>\n <div class=\"dbx-popover-content-container\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxPopoverContentComponent implements OnDestroy {\n private readonly _height = new BehaviorSubject<string>('');\n readonly height$ = this._height.asObservable().pipe(throttleTime(100, undefined, { leading: true, trailing: true }));\n\n hasControls = false;\n hasHeader = false;\n\n onResized(event: ResizedEvent): void {\n this._height.next(`${event.newRect.height}px`);\n }\n\n ngOnDestroy(): void {\n this._height.complete();\n }\n}\n","import { Component, Input, Optional } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Component used to format a header for a popover.\n */\n@Component({\n selector: 'dbx-popover-header',\n template: `\n <div class=\"dbx-popover-header\">\n <div class=\"dbx-popover-header-content\">\n <h3>\n <mat-icon *ngIf=\"icon\" class=\"dbx-icon-spacer\">{{ icon }}</mat-icon>\n {{ header }}\n </h3>\n <span class=\"spacer\"></span>\n <ng-content></ng-content>\n </div>\n </div>\n <mat-divider></mat-divider>\n `\n})\nexport class DbxPopoverHeaderComponent {\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n\n constructor(@Optional() appPopoverContentComponent: DbxPopoverContentComponent) {\n if (appPopoverContentComponent) {\n appPopoverContentComponent.hasHeader = true;\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover scrollable content wrapper component.\n */\n@Component({\n selector: 'dbx-popover-scroll-content',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'd-block dbx-popover-scroll-content',\n '[class]': 'sizingClasses'\n }\n})\nexport class DbxPopoverScrollContentComponent {\n get sizingClasses(): string {\n const hasHeader = this.hasHeader;\n const hasControls = this.hasControls;\n\n const classes: string[] = [];\n\n if (hasHeader && hasControls) {\n classes.push('popover-has-controls-and-header');\n } else if (hasHeader) {\n classes.push('popover-has-header');\n } else if (hasControls) {\n classes.push('popover-has-controls');\n }\n\n return classes.join(' ');\n }\n\n get hasHeader(): boolean {\n return this.appPopoverContentComponent.hasHeader;\n }\n\n get hasControls(): boolean {\n return this.appPopoverContentComponent.hasControls;\n }\n\n constructor(readonly appPopoverContentComponent: DbxPopoverContentComponent) {}\n}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, ElementRef, Type, OnInit, OnDestroy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Observable, BehaviorSubject, map, skip, first } from 'rxjs';\nimport { AbstractPopoverDirective } from '../popover/abstract.popover.directive';\nimport { DbxPopoverComponent } from '../popover/popover.component';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { FilterSource, FilterSourceConnector, PresetFilterSource, filterMaybe, SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxPopoverKey } from '../popover/popover';\n\nexport interface DbxFilterComponentParams<F extends object = object, P extends string = string> {\n /**\n * Custom icon\n *\n * Defaults to \"filter_list\"\n */\n icon?: string;\n /**\n * Custom header text\n *\n * Defaults to \"Filter\"\n */\n header?: string;\n /**\n * Custom filter component to initialize.\n */\n customFilterComponentClass?: Type<FilterSource<F>>;\n /**\n * Preset filter component to initialize.\n */\n presetFilterComponentClass?: Type<PresetFilterSource<F, P>>;\n /**\n * The connector to use.\n */\n connector: FilterSourceConnector<F>;\n /**\n * (Optional) Inital filter to pass to the filter source.\n */\n initialFilterObs?: Observable<F>;\n /**\n * (Optional) Whether or not to close the component if the filter changes.\n *\n * True by default.\n */\n closeOnFilterChange?: boolean;\n}\n\nexport interface DbxFilterPopoverComponentParams<F extends object = object> extends DbxFilterComponentParams<F> {\n /**\n * Origin to add the popover to.\n */\n origin: ElementRef;\n}\n\nexport const DEFAULT_FILTER_POPOVER_KEY = 'filter';\n\n@Component({\n templateUrl: './filter.popover.component.html'\n})\nexport class DbxFilterPopoverComponent<F extends object> extends AbstractPopoverDirective<unknown, DbxFilterComponentParams<F>> implements OnInit, OnDestroy {\n private _closeOnChangeSub = new SubscriptionObject();\n\n /**\n * Whether or not to display buttons to toggle between custom and preset filters.\n */\n readonly showSwitchButtons = Boolean(this.config.customFilterComponentClass && this.config.presetFilterComponentClass);\n\n private _showPreset = new BehaviorSubject<boolean>(false);\n readonly showPreset$ = this._showPreset.asObservable();\n\n readonly config$: Observable<DbxInjectionComponentConfig<FilterSource<F>>> = this._showPreset.pipe(\n map((showPreset) => {\n const { closeOnFilterChange = true, connector, initialFilterObs, customFilterComponentClass, presetFilterComponentClass } = this.config;\n let componentClass: Type<FilterSource<F>>;\n\n if (showPreset) {\n componentClass = presetFilterComponentClass as Type<FilterSource<F>>;\n } else {\n componentClass = customFilterComponentClass as Type<FilterSource<F>>;\n }\n\n const config: DbxInjectionComponentConfig<FilterSource<F>> = {\n componentClass,\n init: (filterSource) => {\n connector.connectWithSource(filterSource);\n\n if (initialFilterObs && filterSource.initWithFilter) {\n filterSource.initWithFilter(initialFilterObs);\n }\n\n if (closeOnFilterChange) {\n this._closeOnChangeSub.subscription = filterSource.filter$.pipe(skip(1), filterMaybe(), first()).subscribe(() => {\n this.close();\n });\n }\n }\n };\n\n return config;\n })\n );\n\n static openPopover<F extends object>(popupService: DbxPopoverService, { origin, header, icon, initialFilterObs: inputSource, connector, customFilterComponentClass, presetFilterComponentClass }: DbxFilterPopoverComponentParams<F>, popoverKey?: DbxPopoverKey): NgPopoverRef {\n return popupService.open({\n key: popoverKey ?? DEFAULT_FILTER_POPOVER_KEY,\n origin,\n componentClass: DbxFilterPopoverComponent,\n data: {\n header,\n icon,\n initialFilterObs: inputSource,\n connector,\n customFilterComponentClass,\n presetFilterComponentClass\n } as DbxFilterComponentParams<F>\n });\n }\n\n constructor(popover: DbxPopoverComponent<unknown, DbxFilterComponentParams<F>>) {\n super(popover);\n }\n\n get config(): DbxFilterComponentParams<F> {\n return this.popover.data as DbxFilterComponentParams<F>;\n }\n\n get icon() {\n return this.config.icon ?? 'filter_list';\n }\n\n get header() {\n return this.config.header ?? 'Filter';\n }\n\n ngOnInit(): void {\n let showPreset = false;\n const { customFilterComponentClass, presetFilterComponentClass } = this.config;\n\n if (customFilterComponentClass) {\n showPreset = false;\n }\n\n if (presetFilterComponentClass) {\n showPreset = true;\n }\n\n if (!customFilterComponentClass && !presetFilterComponentClass) {\n throw new Error('Requires a preset or custom class provided for DbxFilterPopover.');\n }\n\n this._showPreset.next(showPreset);\n }\n\n ngOnDestroy(): void {\n this._closeOnChangeSub.destroy();\n this._showPreset.complete();\n }\n\n showPresets() {\n this._showPreset.next(true);\n }\n\n showCustom() {\n this._showPreset.next(false);\n }\n}\n","<dbx-popover-content>\n <!-- Header -->\n <dbx-popover-header [icon]=\"icon\" [header]=\"header\">\n <ng-container *ngIf=\"showSwitchButtons\" [ngSwitch]=\"showPreset$ | async\">\n <button *ngSwitchCase=\"true\" mat-flat-button color=\"accent\" (click)=\"showCustom()\">Custom</button>\n <button *ngSwitchCase=\"false\" mat-flat-button color=\"accent\" (click)=\"showPresets()\">Presets</button>\n </ng-container>\n </dbx-popover-header>\n <!-- Content -->\n <dbx-popover-scroll-content>\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n </dbx-popover-scroll-content>\n</dbx-popover-content>\n","import { OnDestroy, Directive, EventEmitter, Output, ElementRef } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { NgPopoverCloseEvent, NgPopoverRef } from 'ng-overlay-container';\n\n/**\n * Abstract class for showing and handling a popover ref.\n */\n@Directive()\nexport abstract class AbstractPopoverRefDirective<T = unknown, R = unknown> extends AbstractSubscriptionDirective {\n private _popoverRef?: NgPopoverRef<T, R>;\n\n showPopover(origin?: ElementRef): void {\n if (!this._popoverRef) {\n this._showPopoverRef(origin);\n }\n }\n\n private _showPopoverRef(origin?: ElementRef): void {\n this._popoverRef = this._makePopoverRef(origin);\n this._afterOpened(this._popoverRef);\n this.sub = this._popoverRef.afterClosed$.subscribe((x) => {\n this._afterClosed(x);\n this._popoverRef = undefined;\n });\n }\n\n protected abstract _makePopoverRef(origin?: ElementRef): NgPopoverRef<T, R>;\n\n protected _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n // Do nothing. Override in parent type\n }\n\n protected _afterClosed(value: NgPopoverCloseEvent<R>): void {\n // Do nothing. Override in parent type\n }\n}\n\n/**\n * {@link AbstractPopoverRefDirective} extension that includes open/closed events.\n */\n@Directive()\nexport abstract class AbstractPopoverRefWithEventsDirective<T = unknown, R = unknown> extends AbstractPopoverRefDirective<T, R> implements OnDestroy {\n @Output()\n readonly popoverOpened = new EventEmitter<NgPopoverRef<T, R>>();\n\n @Output()\n readonly popoverClosed = new EventEmitter<NgPopoverCloseEvent<R>>();\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.popoverClosed.complete();\n this.popoverOpened.complete();\n }\n\n protected override _afterOpened(popoverRef: NgPopoverRef<T, R>): void {\n this.popoverOpened.next(popoverRef);\n }\n\n protected override _afterClosed(event: NgPopoverCloseEvent<R>): void {\n this.popoverClosed.next(event);\n }\n}\n","import { DbxPopoverComponent, DbxPopoverComponentConfig, FullDbxPopoverComponentConfig } from './popover.component';\nimport { Injectable, Injector } from '@angular/core';\nimport { NgOverlayContainerConfiguration, NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport interface DbxPopoverConfig<O, I, T> extends DbxPopoverComponentConfig<O, I, T> {\n injector?: Injector;\n height?: string;\n width?: string;\n isResizable?: boolean;\n}\n\n/**\n * Used for displaying a popover.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopoverService {\n private _overlayContainerService: NgOverlayContainerService;\n\n constructor(private _overlay: Overlay, private _injector: Injector) {\n this._overlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n }\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: 'start',\n originY: 'top',\n // TODO: Resize height/width.\n height: config.height ?? '500px',\n width: config.height ?? '400px',\n hasBackdrop: true,\n isDraggable: false,\n isResizable: config.isResizable ?? false,\n disableBackdropClose: false\n };\n\n return service.open<FullDbxPopoverComponentConfig<O, I, T>, O>({\n content: DbxPopoverComponent,\n data: {\n ...config,\n configuration\n },\n configuration\n });\n }\n}\n","import { Directive, ElementRef, Input } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxPopoverService } from '../popover/popover.service';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxFilterPopoverComponent, DbxFilterComponentParams } from './filter.popover.component';\nimport { AbstractPopoverRefDirective } from '../popover/abstract.popover.ref.directive';\n\nexport type DbxFilterButtonConfig<F extends object> = DbxFilterComponentParams<F>;\n\n@Directive()\nexport abstract class AbstractFilterPopoverButtonDirective<F extends object> extends AbstractPopoverRefDirective<unknown, unknown> {\n @Input()\n config?: DbxFilterButtonConfig<F>;\n\n constructor(private readonly popupService: DbxPopoverService) {\n super();\n }\n\n protected override _makePopoverRef(origin?: ElementRef): NgPopoverRef<unknown, unknown> {\n const config = this.config;\n\n if (!config) {\n throw new Error('Missing filterButtonConfig.');\n } else if (!origin) {\n throw new Error('Missing origin.');\n }\n\n return DbxFilterPopoverComponent.openPopover(this.popupService, {\n origin,\n ...config\n });\n }\n}\n","import { BehaviorSubject, combineLatest, distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs';\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { AbstractFilterPopoverButtonDirective } from './filter.popover.button.directive';\nimport { DbxButtonDisplayContent, dbxButtonDisplayContentType, DbxButtonDisplayContentType, DbxButtonDisplayDelegate } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\nconst DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT: DbxButtonDisplayContent = {\n icon: 'filter_list'\n};\n\n@Component({\n selector: 'dbx-filter-popover-button',\n template: `\n <dbx-icon-button #button (buttonClick)=\"showFilterPopover()\" [buttonDisplay]=\"buttonDisplay\"></dbx-icon-button>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxFilterPopoverButtonComponent<F extends object = object> extends AbstractFilterPopoverButtonDirective<F> {\n private _buttonDisplay: DbxButtonDisplayContent = DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT;\n\n @Input()\n get buttonDisplay(): DbxButtonDisplayContent {\n return this._buttonDisplay;\n }\n\n set buttonDisplay(buttonDisplay: Maybe<DbxButtonDisplayContent>) {\n if (!buttonDisplay) {\n buttonDisplay = DEFAULT_FILTER_POPOVER_BUTTON_DISPLAY_CONTENT;\n }\n\n this._buttonDisplay = buttonDisplay;\n }\n\n @ViewChild('button', { read: ElementRef, static: false })\n buttonElement!: ElementRef;\n\n showFilterPopover(): void {\n const origin = this.buttonElement.nativeElement;\n this.showPopover(origin);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxWindowKeyDownListenerDirective } from './keydown.listener.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxWindowKeyDownListenerDirective],\n exports: [DbxWindowKeyDownListenerDirective]\n})\nexport class DbxKeypressModule {}\n","import { Directive, Optional } from '@angular/core';\nimport { DbxPopoverContentComponent } from './popover.content.component';\n\n/**\n * Popover Controls\n */\n@Directive({\n selector: 'dbx-popover-controls,[dbxPopoverControls],.dbx-popover-controls',\n host: {\n class: 'd-block dbx-popover-controls'\n }\n})\nexport class DbxPopoverControlsDirective {\n constructor(@Optional() appPopoverContentComponent: DbxPopoverContentComponent) {\n if (appPopoverContentComponent) {\n appPopoverContentComponent.hasControls = true;\n }\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopoverContentComponent } from './popover.content.component';\nimport { DbxPopoverControlsDirective } from './popover.controls.directive';\nimport { DbxPopoverHeaderComponent } from './popover.header.component';\nimport { DbxPopoverScrollContentComponent } from './popover.scroll.content.component';\nimport { DbxKeypressModule } from '../../keypress';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\nconst declarations = [DbxPopoverContentComponent, DbxPopoverControlsDirective, DbxPopoverHeaderComponent, DbxPopoverScrollContentComponent];\n\n/**\n * Contains all popover content components, allowing other sibling dbx-web modules to use the directives without referencing the full popover module.\n */\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, MatDividerModule, DbxKeypressModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule, AngularResizeEventModule],\n declarations,\n exports: declarations\n})\nexport class DbxPopoverInteractionContentModule {}\n","import { first, Observable, map } from 'rxjs';\nimport { Directive, OnInit, OnDestroy, Input, ElementRef } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { DbxActionContextStoreSourceInstance, AbstractDbxActionValueOnTriggerDirective } from '@dereekb/dbx-core';\nimport { IsModifiedFunction } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxActionPopoverFunctionParams {\n origin: ElementRef;\n}\n\nexport type DbxActionPopoverFunction<T = unknown> = (params: DbxActionPopoverFunctionParams) => NgPopoverRef<unknown, Maybe<T>>;\n\n/**\n * Action directive that is used to trigger/display a popover, then watches that popover for a value.\n */\n@Directive({\n exportAs: 'dbxActionPopover',\n selector: '[dbxActionPopover]'\n})\nexport class DbxActionPopoverDirective<T = unknown> extends AbstractDbxActionValueOnTriggerDirective<T> implements OnInit, OnDestroy {\n @Input('dbxActionPopover')\n fn?: DbxActionPopoverFunction<T>;\n\n @Input()\n set dbxActionPopoverModified(isModifiedFunction: Maybe<IsModifiedFunction>) {\n this.isModifiedFunction = isModifiedFunction;\n }\n\n constructor(readonly elementRef: ElementRef, source: DbxActionContextStoreSourceInstance<T, unknown>) {\n super(source, () => this._getDataFromPopover());\n }\n\n protected _getDataFromPopover(): Observable<Maybe<T>> {\n return this._makePopoverRef().afterClosed$.pipe(\n first(),\n map((x) => x.data)\n );\n }\n\n protected _makePopoverRef(): NgPopoverRef<unknown, Maybe<T>> {\n const origin = this.elementRef;\n\n if (!this.fn) {\n throw new Error('popoverAction has no function provided to it yet.');\n }\n\n return this.fn({\n origin\n });\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { MatDividerModule } from '@angular/material/divider';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopoverCoordinatorComponent } from './popover.coordinator.component';\nimport { DbxPopoverComponent } from './popover.component';\nimport { DbxKeypressModule } from '../../keypress';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\nimport { DbxPopoverInteractionContentModule } from './popover.content.module';\nimport { DbxActionPopoverDirective } from './popover.action.directive';\n\nconst declarations = [DbxPopoverComponent, DbxPopoverCoordinatorComponent, DbxActionPopoverDirective];\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, MatDividerModule, DbxKeypressModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule, AngularResizeEventModule, DbxPopoverInteractionContentModule],\n declarations,\n exports: [...declarations, DbxPopoverInteractionContentModule]\n})\nexport class DbxPopoverInteractionModule {}\n","import { Component, Input } from '@angular/core';\nimport { AbstractDbxActionHandlerDirective, DbxActionContextStoreSourceInstance, FilterSourceDirective, provideActionStoreSource } from '@dereekb/dbx-core';\nimport { of } from 'rxjs';\n\n/**\n * Action component used to simplify creating a filter form.\n *\n * Provides a DbxAction and configures the action to set the filter on a FilterSourceDirective when triggered.\n */\n@Component({\n selector: 'dbx-filter-wrapper',\n templateUrl: './filter.wrapper.component.html',\n providers: [provideActionStoreSource(null)]\n})\nexport class DbxFilterWrapperComponent<F = unknown> extends AbstractDbxActionHandlerDirective<F> {\n @Input()\n applyRaised = true;\n\n @Input()\n applyIcon = 'filter_list';\n\n @Input()\n applyText = 'Filter';\n\n constructor(source: DbxActionContextStoreSourceInstance<F>, readonly filterSourceDirective: FilterSourceDirective<F>) {\n super(source);\n // configure handler function\n this._dbxActionHandlerInstance.handlerFunction = (filter: F) => {\n this.filterSourceDirective.setFilter(filter);\n return of(true);\n };\n }\n\n applyFilter(): void {\n this.source.setIsModified(true); // Force setting modified.\n this.source.trigger();\n }\n\n resetFilter(): void {\n this.filterSourceDirective.resetFilter();\n }\n}\n","<div class=\"dbx-filter-wrapper\">\n <div class=\"dbx-filter-wrapper-content\">\n <ng-content></ng-content>\n </div>\n <div fxLayout=\"row\">\n <dbx-button dbxActionButton [raised]=\"applyRaised\" [text]=\"applyText\" [icon]=\"applyIcon\"></dbx-button>\n <div class=\"spacer\"></div>\n <button mat-icon-button (click)=\"resetFilter()\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n</div>\n","import { shareReplay, BehaviorSubject, map, Observable, combineLatest, distinctUntilChanged, startWith } from 'rxjs';\nimport { Directive, Input, OnDestroy } from '@angular/core';\nimport { ClickableFilterPreset, ClickableAnchorLink, FilterSourceDirective } from '@dereekb/dbx-core';\nimport { getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\nimport { FilterWithPreset, tapLog } from '@dereekb/rxjs';\n\n/**\n * Displays a button and menu for filtering presets.\n */\n@Directive()\nexport abstract class AbstractDbxPresetFilterMenuComponent<F extends FilterWithPreset> implements OnDestroy {\n //TODO: Rename to AbstractDbxPresetFilterMenuDirective with next breaking changes\n\n private _presets = new BehaviorSubject<ClickableFilterPreset<F>[]>([]);\n\n readonly selected$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n\n readonly selectedPresetString$: Observable<Maybe<string>> = this.selected$.pipe(\n map((selectedFilter) => (selectedFilter ? selectedFilter.preset : undefined)),\n distinctUntilChanged()\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = combineLatest([this._presets, this.selectedPresetString$]).pipe(\n map(([presets, selectedPresetString]) => {\n return presets.map((x) => ({\n ...x,\n selected: x.preset === selectedPresetString,\n onClick: () => {\n this.selectPreset(x);\n }\n }));\n }),\n shareReplay(1)\n );\n\n readonly selectedPreset$: Observable<Maybe<ClickableFilterPreset<F>>> = combineLatest([this._presets, this.selectedPresetString$]).pipe(\n map(([presets, selectedPresetString]) => {\n return selectedPresetString != null ? presets.find((x) => x.preset === selectedPresetString) : undefined;\n }),\n shareReplay(1)\n );\n\n @Input()\n get presets(): ClickableFilterPreset<F>[] {\n return this._presets.value;\n }\n\n set presets(presets: ClickableFilterPreset<F>[]) {\n this._presets.next(presets);\n }\n\n constructor(readonly filterSourceDirective: FilterSourceDirective<F>) {}\n\n selectPreset(preset: ClickableFilterPreset<F>) {\n const presetValue = preset.presetValue;\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(preset.presetValue) as F;\n\n if (filter.preset !== preset.preset) {\n filter = {\n ...filter,\n preset: preset.preset\n };\n }\n\n this.filterSourceDirective.setFilter(filter);\n }\n }\n\n ngOnDestroy(): void {\n this._presets.complete();\n }\n}\n","import { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\n\nexport abstract class DbxRouterWebProviderConfig {\n /**\n * Component used by the Anchor component to render a SegueRef link.\n */\n abstract anchorSegueRefComponent: DbxInjectionComponentConfig;\n}\n","import { skipFirstMaybe } from '@dereekb/rxjs';\nimport { Input, Component, TemplateRef, ViewChild, OnDestroy, HostListener } from '@angular/core';\nimport { AbstractDbxAnchorDirective, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { map, distinctUntilChanged, shareReplay, BehaviorSubject } from 'rxjs';\nimport { DbxRouterWebProviderConfig } from '../../provider/router.provider.config';\n\n/**\n * Component that renders an anchor element depending on the input.\n */\n@Component({\n selector: 'dbx-anchor, [dbx-anchor]',\n templateUrl: './anchor.component.html',\n host: {\n class: 'd-inline dbx-anchor',\n 'dbx-anchor-block': 'block'\n }\n})\nexport class DbxAnchorComponent extends AbstractDbxAnchorDirective implements OnDestroy {\n private _templateRef = new BehaviorSubject<Maybe<TemplateRef<unknown>>>(undefined);\n readonly templateRef$ = this._templateRef.pipe(skipFirstMaybe(), shareReplay(1));\n\n @Input()\n public block?: boolean;\n\n @ViewChild('content', { read: TemplateRef })\n get templateRef(): Maybe<TemplateRef<unknown>> {\n return this._templateRef.value;\n }\n\n set templateRef(templateRef: Maybe<TemplateRef<unknown>>) {\n this._templateRef.next(templateRef);\n }\n\n readonly url$ = this.anchor$.pipe(\n map((x) => x?.url),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly target$ = this.anchor$.pipe(\n map((x) => x?.target),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly selectedClass$ = this.selected$.pipe(\n map((selected) => (selected ? 'dbx-anchor-selected' : '')),\n shareReplay(1)\n );\n\n constructor(private readonly dbNgxRouterWebProviderConfig: DbxRouterWebProviderConfig) {\n super();\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._templateRef.complete();\n }\n\n get srefAnchorConfig(): DbxInjectionComponentConfig {\n return this.dbNgxRouterWebProviderConfig.anchorSegueRefComponent;\n }\n\n clickAnchor(event?: Maybe<MouseEvent>): void {\n this.anchor?.onClick?.(event);\n }\n\n @HostListener('mouseenter')\n onMouseEnter(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('enter', event);\n }\n\n @HostListener('mouseleave')\n onMouseLeave(event?: Maybe<MouseEvent>) {\n this.anchor?.onMouse?.('leave', event);\n }\n}\n","<ng-container [ngSwitch]=\"type$ | async\">\n <!-- Plain -->\n <ng-container *ngSwitchCase=\"0\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-container>\n <!-- Click -->\n <a class=\"dbx-anchor-a dbx-anchor-click\" [ngClass]=\"(selectedClass$ | async) || ''\" (click)=\"clickAnchor()\" *ngSwitchCase=\"1\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Router -->\n <dbx-injection [config]=\"srefAnchorConfig\" *ngSwitchCase=\"2\">\n <!-- Injected in child. -->\n </dbx-injection>\n <!-- Href -->\n <a class=\"dbx-anchor-a dbx-anchor-href\" [href]=\"url$ | async\" [attr.target]=\"target$ | async\" *ngSwitchCase=\"3\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n <!-- Disabled or None -->\n <a class=\"dbx-anchor-a dbx-anchor-disabled\" *ngSwitchDefault>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </a>\n</ng-container>\n<!-- Template content -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { OnDestroy, Input, Component } from '@angular/core';\nimport { BehaviorSubject, map, shareReplay, distinctUntilChanged } from 'rxjs';\nimport { ClickableAnchorLinkTree, expandClickableAnchorLinkTrees } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Component that displays a list of ClickableAnchorLink values within a MatNavList.\n */\n@Component({\n selector: 'dbx-anchor-list',\n templateUrl: './anchorlist.component.html'\n})\nexport class DbxAnchorListComponent implements OnDestroy {\n private _anchors = new BehaviorSubject<ClickableAnchorLinkTree[]>([]);\n\n readonly expandedAnchors$ = this._anchors.pipe(\n distinctUntilChanged(),\n map((x) => expandClickableAnchorLinkTrees(x)),\n shareReplay(1)\n );\n\n @Input()\n set anchors(anchors: Maybe<ClickableAnchorLinkTree[]>) {\n this._anchors.next(anchors ?? []);\n }\n\n ngOnDestroy(): void {\n this._anchors.complete();\n }\n}\n","<mat-nav-list class=\"dbx-anchor-list\">\n <ng-container *ngFor=\"let expanded of expandedAnchors$ | async; let last = last\">\n <dbx-anchor [anchor]=\"expanded.value\">\n <a mat-list-item [disabled]=\"expanded.value.disabled\" [ngClass]=\"expanded.depth ? 'dbx-anchor-list-child' : 'dbx-anchor-list-root'\">\n <mat-icon mat-list-icon *ngIf=\"expanded.value.icon\">{{ expanded.value.icon }}</mat-icon>\n <!-- TODO: Add an icon from a letter if anchor.icon is unavailable. -->\n <div mat-line>{{ expanded.value.title }}</div>\n <div class=\"dbx-hint dbx-small\" *ngIf=\"expanded.value.hint\" mat-line>{{ expanded.value.hint }}</div>\n <dbx-injection *ngIf=\"expanded.value.content\" mat-line [config]=\"expanded.value.content\"></dbx-injection>\n <mat-divider *ngIf=\"!last\"></mat-divider>\n </a>\n </dbx-anchor>\n </ng-container>\n</mat-nav-list>\n","import { Component } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuComponent } from './filter.preset';\n\n@Component({\n selector: 'dbx-preset-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchors$ | async\"></dbx-anchor-list>\n `\n})\nexport class DbxPresetFilterListComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuComponent<F> {}\n","import { Component, Input } from '@angular/core';\nimport { ClickableIconAnchorLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Component that displays an anchor and a mat-button.\n */\n@Component({\n selector: 'dbx-anchor-icon',\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <button mat-icon-button>\n <mat-icon>{{ anchor?.icon }}</mat-icon>\n </button>\n </dbx-anchor>\n `\n})\nexport class DbxAnchorIconComponent {\n @Input()\n anchor: Maybe<ClickableIconAnchorLink>;\n}\n","import { Component, Input } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Pre-styled text that can link to either a website or a ref using a dbx-anchor.\n */\n@Component({\n selector: 'dbx-link',\n template: `\n <dbx-anchor [anchor]=\"anchor\">\n <ng-content></ng-content>\n </dbx-anchor>\n `,\n host: {\n class: 'd-inline dbx-link'\n }\n})\nexport class DbxAnchorLinkComponent {\n @Input()\n anchor?: Maybe<ClickableAnchor>;\n\n @Input()\n set ref(ref: Maybe<string>) {\n if (ref) {\n this.anchor = {\n ref\n };\n }\n }\n\n @Input()\n set href(href: Maybe<string>) {\n if (href) {\n this.anchor = {\n url: href\n };\n }\n }\n}\n","import { BehaviorSubject, combineLatest, map, Observable, of, shareReplay } from 'rxjs';\nimport { Component, Input, Optional, OnDestroy } from '@angular/core';\nimport { ClickableAnchor, ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Component that displays an anchor and a span with the title.\n */\n@Component({\n selector: 'dbx-anchor-content',\n template: `\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"icon$ | async\">{{ icon$ | async }}</mat-icon>\n <span *ngIf=\"title$ | async\">{{ title$ | async }}</span>\n `,\n host: {\n class: 'dbx-anchor-content'\n }\n})\nexport class DbxAnchorContentComponent implements OnDestroy {\n private readonly _parentAnchor: Observable<Maybe<ClickableAnchor | ClickableAnchorLink>> = this.parent ? this.parent.anchor$ : of(undefined);\n private _inputAnchor = new BehaviorSubject<Maybe<Partial<ClickableAnchorLink>>>(undefined);\n\n readonly anchor$: Observable<Maybe<Partial<ClickableAnchorLink>>> = combineLatest([this._inputAnchor, this._parentAnchor]).pipe(\n map(([input, parent]) => input ?? parent),\n shareReplay(1)\n );\n\n readonly icon$ = this.anchor$.pipe(map((x) => x?.icon));\n readonly title$ = this.anchor$.pipe(map((x) => x?.title));\n\n @Input()\n set anchor(anchor: Maybe<Partial<ClickableAnchorLink>>) {\n this._inputAnchor.next(anchor);\n }\n\n constructor(@Optional() readonly parent?: DbxAnchorComponent) {}\n\n ngOnDestroy(): void {\n this._inputAnchor.complete();\n }\n}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { NgModule } from '@angular/core';\nimport { DbxAnchorComponent } from './anchor.component';\nimport { CommonModule } from '@angular/common';\nimport { DbxAnchorIconComponent } from './anchor.icon.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxAnchorLinkComponent } from './anchor.link.component';\nimport { DbxAnchorContentComponent } from './anchor.content.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxInjectionComponentModule],\n declarations: [DbxAnchorComponent, DbxAnchorIconComponent, DbxAnchorLinkComponent, DbxAnchorContentComponent],\n exports: [DbxAnchorComponent, DbxAnchorIconComponent, DbxAnchorLinkComponent, DbxAnchorContentComponent]\n})\nexport class DbxRouterAnchorModule {}\n","import { MatListModule } from '@angular/material/list';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxAnchorListComponent } from './anchorlist.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, DbxInjectionComponentModule, MatTabsModule, MatButtonModule, MatIconModule, MatListModule, MatMenuModule, DbxRouterAnchorModule],\n declarations: [DbxAnchorListComponent],\n exports: [DbxAnchorListComponent]\n})\nexport class DbxRouterAnchorListModule {}\n","import { ClickableAnchorLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { combineLatest, distinctUntilChanged, map, Observable, shareReplay, switchMap } from 'rxjs';\n\n/**\n * Configuration for the preset filter menus\n */\nexport interface DbxPresetFilterMenuConfig {\n /**\n * The text to display for the unknown selection.\n */\n unknownSelectionText?: string;\n /**\n * The icon to use for the filter, or false if no icon should be shown.\n */\n filterIcon?: string | false;\n /**\n * Whether or not to use the preset's icon if one is defined. If filterIcon is false, the icon will only appear when an item is selected.\n */\n usePresetIcon?: boolean;\n}\n\nexport function dbxPresetFilterMenuButtonTextObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'title'>>>>, defaultText = 'Filter') {\n return combineLatest([config$, selection$]).pipe(\n map(([config, preset]) => preset?.title ?? config.unknownSelectionText ?? defaultText),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n\nexport function dbxPresetFilterMenuButtonIconObservable(config$: Observable<DbxPresetFilterMenuConfig>, selection$: Observable<Maybe<Partial<Pick<ClickableAnchorLink, 'icon'>>>>, defaultIcon = 'arrow_drop_down') {\n return config$.pipe(\n switchMap((config) => {\n const filterIcon = config.filterIcon === false ? '' : config.filterIcon || defaultIcon;\n\n return selection$.pipe(\n map((preset) => {\n let icon: string | undefined;\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 { shareReplay, BehaviorSubject, map, combineLatest, distinctUntilChanged, switchMap } from 'rxjs';\nimport { Component, Input } from '@angular/core';\nimport { FilterWithPreset } from '@dereekb/rxjs';\nimport { AbstractDbxPresetFilterMenuComponent } from './filter.preset';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\n\n/**\n * Displays a button and menu for filtering presets.\n */\n@Component({\n selector: 'dbx-preset-filter-menu',\n templateUrl: './filter.preset.menu.component.html'\n})\nexport class DbxPresetFilterMenuComponent<F extends FilterWithPreset> extends AbstractDbxPresetFilterMenuComponent<F> {\n private _config = new BehaviorSubject<DbxPresetFilterMenuConfig>({});\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this._config, this.selectedPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this._config, this.selectedPreset$);\n\n @Input()\n get config(): DbxPresetFilterMenuConfig {\n return this._config.value;\n }\n\n set config(config: DbxPresetFilterMenuConfig) {\n this._config.next(config);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._config.complete();\n }\n}\n","<button mat-button [matMenuTriggerFor]=\"menu\" class=\"dbx-preset-filter-menu-button\" aria-label=\"open filter\">\n <mat-icon class=\"dbx-icon-spacer\" *ngIf=\"buttonIcon$ | async\">{{ buttonIcon$ | async }}</mat-icon>\n <span>{{ buttonText$ | async }}</span>\n</button>\n<mat-menu #menu class=\"dbx-preset-filter-menu\">\n <dbx-anchor *ngFor=\"let anchor of presetAnchors$ | async\" [anchor]=\"anchor\">\n <button mat-menu-item [ngClass]=\"anchor.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"anchor.icon\">{{ anchor.icon }}</mat-icon>\n {{ anchor.title }}\n </button>\n </dbx-anchor>\n</mat-menu>\n","import { Directive } from '@angular/core';\nimport { DbxInjectionTemplateConfig } from '@dereekb/dbx-core';\nimport { Observable, distinctUntilChanged, shareReplay, map } from 'rxjs';\nimport { DbxAnchorComponent } from './anchor.component';\n\n/**\n * Abstract implementation\n */\n@Directive()\nexport abstract class AbstractDbxSegueAnchorDirective {\n readonly target$ = this.parent.target$;\n\n readonly ref$ = this.parent.anchor$.pipe(\n map((x) => x?.ref),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly refParams$ = this.parent.anchor$.pipe(\n map((x) => x?.refParams),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly refOptions$ = this.parent.anchor$.pipe(\n map((x) => x?.refOptions),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n constructor(readonly parent: DbxAnchorComponent) {}\n\n readonly template$: Observable<DbxInjectionTemplateConfig> = this.parent.templateRef$.pipe(\n distinctUntilChanged(),\n map((templateRef) => ({\n templateRef\n })),\n shareReplay(1)\n );\n\n get anchor() {\n return this.parent.anchor;\n }\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { ArrayOrValue, modifier, Modifier, ModifierFunction, ModifierMap } from '@dereekb/util';\nimport { Observable } from 'rxjs';\nimport { DbxValueListItem } from './list.view.value';\n\n// MARK: ValueListView\nexport abstract class DbxValueListItemModifier<T = unknown, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n abstract readonly modifiers$: Observable<ModifierMap<I>>;\n\n abstract addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n abstract removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void;\n}\n\nexport function provideDbxValueListViewModifier<V extends DbxValueListItemModifier>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxValueListItemModifier,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n\n// MARK: Utility\nexport type ListItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> = Modifier<I>;\n\nexport function listItemModifier<T, I extends DbxValueListItem<T> = DbxValueListItem<T>>(key: string, modify: ModifierFunction<I>): ListItemModifier<T, I> {\n return modifier(key, modify);\n}\n","import { BehaviorSubject, map, Observable, shareReplay, combineLatest } from 'rxjs';\nimport { Directive, Input, OnDestroy, OnInit } from '@angular/core';\nimport { DbxValueListItem } from './list.view.value';\nimport { addModifiers, ArrayOrValue, combineMaps, Maybe, Modifier, ModifierMap, removeModifiers } from '@dereekb/util';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxValueListItemModifier, provideDbxValueListViewModifier } from './list.view.value.modifier';\n\n/**\n * DbxValueListViewModifier implementation\n */\n@Directive({\n selector: '[dbxListItemModifier]',\n providers: provideDbxValueListViewModifier(DbxValueListItemModifierDirective)\n})\nexport class DbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements DbxValueListItemModifier<T, I>, OnDestroy {\n private _modifiers = new BehaviorSubject<Maybe<ModifierMap<I>>>(undefined);\n private _inputModifiers = new BehaviorSubject<Maybe<ArrayOrValue<Modifier<I>>>>(undefined);\n\n readonly modifiers$ = combineLatest([this._modifiers, this._inputModifiers]).pipe(\n map(([modifiers, inputModifiers]) => {\n return combineMaps(modifiers, inputModifiers ? addModifiers(inputModifiers) : undefined);\n }),\n shareReplay(1)\n );\n\n ngOnDestroy(): void {\n this._modifiers.complete();\n }\n\n // MARK: Modifiers\n addModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._modifiers.next(addModifiers(modifiers, this._modifiers.value));\n }\n\n removeModifiers(modifiers: ArrayOrValue<Modifier<I>>): void {\n this._modifiers.next(removeModifiers(modifiers, this._modifiers.value));\n }\n\n // MARK: Input Modifiers\n @Input('dbxListItemModifier')\n set inputModifiers(inputModifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._inputModifiers.next(inputModifiers);\n }\n}\n\n/**\n * Abstract directive used for managing modifyers for a DbxValueListView.\n */\n@Directive()\nexport abstract class AbstractDbxValueListItemModifierDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> implements OnInit, OnDestroy {\n abstract readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<I>>>>;\n\n private _linkedModifiers: Maybe<ArrayOrValue<Modifier<I>>>;\n private _modifiersSub = new SubscriptionObject();\n\n constructor(readonly dbxValueListItemModifier: DbxValueListItemModifier<T, I>) {}\n\n ngOnInit(): void {\n this._modifiersSub.subscription = this.modifiers$.subscribe((modifiers) => {\n this._linkModifiers(modifiers);\n });\n }\n\n ngOnDestroy(): void {\n this._unlinkModifiers();\n }\n\n private _linkModifiers(modifiers: Maybe<ArrayOrValue<Modifier<I>>>) {\n this._unlinkModifiers();\n\n if (modifiers) {\n this.dbxValueListItemModifier.addModifiers(modifiers);\n this._linkedModifiers = modifiers;\n }\n }\n\n private _unlinkModifiers() {\n if (this._linkedModifiers) {\n this.dbxValueListItemModifier.removeModifiers(this._linkedModifiers);\n this._linkedModifiers = undefined;\n }\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { ArrayOrValue, Maybe, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, map, Observable } from 'rxjs';\nimport { DbxValueListItem } from '../../../layout/list/list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from '../../../layout/list/list.view.value.modifier.directive';\n\nexport type AnchorForValueFunction<T> = (value: T, item: DbxValueListItem<T>) => Maybe<ClickableAnchor>;\n\nexport const DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY = 'router_anchor';\n\n@Directive({\n selector: '[dbxListItemAnchorModifier]'\n})\nexport class DbxListItemAnchorModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _anchorForItem = new BehaviorSubject<Maybe<AnchorForValueFunction<T>>>(undefined);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._anchorForItem.pipe(\n map((anchorForItem) => {\n let modifiers: Maybe<Modifier<DbxValueListItem<T>>>;\n\n if (anchorForItem) {\n modifiers = {\n key: DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.anchor = anchorForItem(x.itemValue, x);\n }\n };\n }\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._anchorForItem.complete();\n }\n\n @Input('dbxListItemAnchorModifier')\n set anchorForItem(anchorForItem: Maybe<AnchorForValueFunction<T>>) {\n this._anchorForItem.next(anchorForItem);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { DbxListItemAnchorModifierDirective } from './router.list.directive';\n\n@NgModule({\n imports: [],\n declarations: [DbxListItemAnchorModifierDirective],\n exports: [DbxListItemAnchorModifierDirective]\n})\nexport class DbxRouterListModule {}\n","/**\n * Set of screen media width types. Their pixel sizes correspond with the DbxScreenMediaService's configuration.\n *\n * Values:\n * - micro: Screen is considered mobile.\n * - small: Screen is consider small, but larger than mobile.\n * - tablet: Screen is considered tablet size.\n * - large: Screen is considered large than a tablet, but not full size.\n * - full: Screen is greater than large.\n */\nexport type ScreenMediaWidthType = 'micro' | 'small' | 'tablet' | 'large' | 'full';\n\nexport const SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP = {\n micro: 0,\n small: 1,\n tablet: 2,\n large: 3,\n full: 4\n};\n\n/**\n * Describes the current screen's vertical space.\n *\n * Values:\n * - tiny: Screen height is tiny, potentially the size of the navigation alone.\n * - normal: Screen has a normal height.\n */\nexport type ScreenMediaHeightType = 'tiny' | 'normal';\n\n/**\n * Compares the breakpoint with the current width and determines if it is \"active\" or not.\n *\n * The current is considered active if it is bigger or equal to the breakpoint.\n *\n * @param current\n * @param breakpoint\n */\nexport function screenMediaWidthTypeIsActive(current: ScreenMediaWidthType, breakpoint: ScreenMediaWidthType) {\n return compareScreenMediaWidthTypes(current, breakpoint, (a, b) => a >= b);\n}\n\nexport function compareScreenMediaWidthTypes(a: ScreenMediaWidthType, b: ScreenMediaWidthType, compare: (a: number, b: number) => boolean) {\n return compare(SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[a], SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP[b]);\n}\n","import { Destroyable } from '@dereekb/util';\nimport { MediaMatcher } from '@angular/cdk/layout';\nimport { ObservableOrValue, asObservable, initialize } from '@dereekb/rxjs';\nimport { Subject, map, shareReplay, distinctUntilChanged, throttleTime, Observable, combineLatest } from 'rxjs';\nimport { ScreenMediaWidthType, ScreenMediaHeightType, screenMediaWidthTypeIsActive } from './screen';\nimport { Injectable } 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 _microQuery: MediaQueryList;\n private _smallQuery: MediaQueryList;\n private _tabletQuery: MediaQueryList;\n private _largeQuery: MediaQueryList;\n\n private _tinyHeightQuery: MediaQueryList;\n\n private _updateWidth = new Subject<void>();\n private _updateHeight = new Subject<void>();\n\n readonly widthType$: Observable<ScreenMediaWidthType> = this._updateWidth.pipe(\n initialize(() => this._updateWidth.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readWidthType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly heightType$: Observable<ScreenMediaHeightType> = this._updateWidth.pipe(\n initialize(() => this._updateHeight.next()),\n throttleTime(100, undefined, { leading: true, trailing: true }),\n map(() => this._readHeightType()),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n constructor(private readonly _media: MediaMatcher, config: DbxScreenMediaServiceConfig) {\n const { microScreenWidthMax, smallScreenWidthMax, tabletScreenWidthMax, largeScreenWidthMax } = config;\n\n this._microQuery = this._media.matchMedia(`screen and (max-width:${microScreenWidthMax}px)`);\n this._smallQuery = this._media.matchMedia(`screen and (max-width:${smallScreenWidthMax}px)`);\n this._tabletQuery = this._media.matchMedia(`screen and (max-width:${tabletScreenWidthMax}px)`);\n this._largeQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n this._tinyHeightQuery = this._media.matchMedia(`screen and (max-width:${largeScreenWidthMax}px)`);\n\n const widthHandler: (ev: MediaQueryListEvent) => void = () => this._updateWidth.next();\n const heightHandler: (ev: MediaQueryListEvent) => void = () => this._updateHeight.next();\n\n this._microQuery.onchange = widthHandler;\n this._smallQuery.onchange = widthHandler;\n this._tabletQuery.onchange = widthHandler;\n this._largeQuery.onchange = widthHandler;\n this._tinyHeightQuery.onchange = heightHandler;\n }\n\n destroy(): void {\n this._microQuery.onchange = null;\n this._smallQuery.onchange = null;\n this._tabletQuery.onchange = null;\n this._largeQuery.onchange = null;\n this._updateWidth.complete();\n this._updateHeight.complete();\n }\n\n /**\n * Returns an observable that detects whether or no the current width is greater or equal to the given breakpoint.\n *\n * @param inputBreakpoint\n * @returns\n */\n isBreakpointActive(inputBreakpoint: ObservableOrValue<ScreenMediaWidthType>): Observable<boolean> {\n return combineLatest([this.widthType$, asObservable(inputBreakpoint)]).pipe(\n map(([current, breakpoint]) => screenMediaWidthTypeIsActive(current, breakpoint)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n }\n\n private _readWidthType(): ScreenMediaWidthType {\n let width: ScreenMediaWidthType;\n\n if (this._microQuery.matches) {\n width = 'micro';\n } else if (this._smallQuery.matches) {\n width = 'small';\n } else if (this._tabletQuery.matches) {\n width = 'tablet';\n } else if (this._largeQuery.matches) {\n width = 'large';\n } else {\n width = 'full';\n }\n\n return width;\n }\n\n private _readHeightType(): ScreenMediaHeightType {\n if (this._tinyHeightQuery) {\n return 'tiny';\n } else {\n return 'normal';\n }\n }\n}\n","import { Observable, BehaviorSubject, combineLatest, map, shareReplay, distinctUntilChanged, switchMap } from 'rxjs';\nimport { ScreenMediaWidthType } from './../../../screen/screen';\nimport { DbxScreenMediaService } from '../../../screen/screen.service';\nimport { applyBestFit, findNext, Maybe } from '@dereekb/util';\nimport { Input, Component, OnDestroy, ChangeDetectionStrategy, ChangeDetectorRef } from '@angular/core';\nimport { ClickableAnchorLinkSegueRef, DbxRouterService, DbxRouterTransitionService, AbstractTransitionDirective, tapDetectChanges, DbxButtonDisplayContent } from '@dereekb/dbx-core';\nimport { HorizontalConnectionPos } from '@angular/cdk/overlay';\n\ninterface NavAnchorLink {\n selected: boolean;\n anchor: ClickableAnchorLinkSegueRef;\n}\n\nexport type NavBarContentAlign = 'center' | 'left' | 'right';\nexport type NavbarMode = 'bar' | 'button' | 'icon';\nexport type NavbarButtonMode = 'menu' | 'rotate';\n\n/**\n * Component that displays a navbar.\n */\n@Component({\n selector: 'dbx-navbar',\n templateUrl: './navbar.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'dbx-navbar'\n }\n})\nexport class DbxNavbarComponent extends AbstractTransitionDirective implements OnDestroy {\n @Input()\n navAlign: HorizontalConnectionPos = 'center';\n\n private _icon = new BehaviorSubject<Maybe<string>>(undefined);\n private _defaultIcon = new BehaviorSubject<Maybe<string>>('menu');\n private _defaultText = new BehaviorSubject<Maybe<string>>(undefined);\n\n private _inputMode = new BehaviorSubject<Maybe<NavbarMode>>(undefined);\n private _buttonMode = new BehaviorSubject<NavbarButtonMode>('menu');\n private _breakpoint = new BehaviorSubject<ScreenMediaWidthType>('large');\n private _anchors = new BehaviorSubject<ClickableAnchorLinkSegueRef[]>([]);\n\n readonly isBreakpointActive$ = this._dbxScreenMediaService.isBreakpointActive(this._breakpoint);\n\n readonly mode$ = combineLatest([this._inputMode, this.isBreakpointActive$]).pipe(\n map(([inputMode, breakpointActive]) => {\n return breakpointActive ? inputMode ?? 'bar' : 'button';\n }),\n distinctUntilChanged(),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n\n readonly anchors$: Observable<NavAnchorLink[]> = combineLatest([this._anchors, this.initAndUpdateOnTransitionSuccess$]).pipe(\n map(([anchors]) => {\n const results = anchors.map((anchor) => {\n const selected = this._dbxRouterService.isActive(anchor);\n\n return {\n selected,\n anchor\n };\n });\n\n return applyBestFit(\n results,\n (x) => x.selected,\n (a, b) => this._dbxRouterService.comparePrecision(a.anchor, b.anchor),\n (nonBestFit) => ({ ...nonBestFit, selected: false })\n );\n }),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n\n readonly buttonMode$ = this._buttonMode.pipe(distinctUntilChanged(), shareReplay(1));\n\n readonly selectedAnchor$: Observable<Maybe<NavAnchorLink>> = this.anchors$.pipe(map((x) => x.find((y) => y.selected)));\n readonly nextRotateAnchor$: Observable<Maybe<NavAnchorLink>> = this.anchors$.pipe(map((x) => findNext(x, (y) => y.selected) || x[0]));\n\n readonly hasNoAnchors$ = this.anchors$.pipe(\n map((x) => x.length === 0),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonNavAnchor$ = this.buttonMode$.pipe(\n switchMap((x) => (x === 'menu' ? this.selectedAnchor$ : this.nextRotateAnchor$)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly buttonDisplay$: Observable<DbxButtonDisplayContent> = combineLatest([this._defaultIcon, this._icon, this._defaultText, this.buttonNavAnchor$, this.mode$]).pipe(\n map(([defaultIcon, icon, defaultText, selectedAnchor, mode]) => {\n let content: DbxButtonDisplayContent;\n\n if (icon) {\n content = { icon, text: defaultText };\n } else if (selectedAnchor) {\n content = { icon: selectedAnchor.anchor.icon ?? defaultIcon, text: selectedAnchor.anchor.title };\n } else {\n content = { icon: defaultIcon ?? 'menu', text: defaultText };\n }\n\n if (mode === 'icon') {\n return { icon: content.icon };\n } else {\n return content;\n }\n }),\n shareReplay(1)\n );\n\n constructor(dbxRouterTransitionService: DbxRouterTransitionService, private cdRef: ChangeDetectorRef, private readonly _dbxScreenMediaService: DbxScreenMediaService, private readonly _dbxRouterService: DbxRouterService) {\n super(dbxRouterTransitionService);\n }\n\n ngOnDestroy(): void {\n this._icon.complete();\n this._defaultIcon.complete();\n this._defaultText.complete();\n this._inputMode.complete();\n this._buttonMode.complete();\n this._breakpoint.complete();\n this._anchors.complete();\n }\n\n // MARK: Accessors\n @Input()\n public set icon(icon: Maybe<string>) {\n this._icon.next(icon);\n }\n\n @Input()\n public set defaultIcon(defaultIcon: Maybe<string>) {\n this._defaultIcon.next(defaultIcon);\n }\n\n @Input()\n public set defaultText(defaultText: Maybe<string>) {\n this._defaultText.next(defaultText);\n }\n\n @Input()\n public set anchors(anchors: Maybe<ClickableAnchorLinkSegueRef[]>) {\n this._anchors.next(anchors ?? []);\n }\n\n @Input()\n public set buttonMode(mode: Maybe<NavbarButtonMode>) {\n this._buttonMode.next(mode ?? 'menu');\n }\n\n @Input()\n public set mode(mode: Maybe<NavbarMode>) {\n this._inputMode.next(mode);\n }\n\n @Input()\n public set breakpoint(breakpoint: ScreenMediaWidthType) {\n this._breakpoint.next(breakpoint);\n }\n}\n","<ng-container [ngSwitch]=\"mode$ | async\">\n <!-- Button -->\n <ng-container *ngSwitchDefault>\n <ng-container [ngSwitch]=\"buttonMode$ | async\">\n <ng-container *ngSwitchCase=\"'menu'\">\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [matMenuTriggerFor]=\"menu\" [disabled]=\"hasNoAnchors$ | async\"></dbx-icon-button>\n <mat-menu #menu>\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <button mat-menu-item [ngClass]=\"x.selected ? 'active' : ''\">\n <mat-icon *ngIf=\"x.anchor.icon\">{{ x.anchor.icon }}</mat-icon>\n {{ x.anchor.title }}\n </button>\n </dbx-anchor>\n </mat-menu>\n </ng-container>\n <ng-container *ngSwitchCase=\"'rotate'\">\n <dbx-anchor [anchor]=\"(nextRotateAnchor$ | async)?.anchor\">\n <dbx-icon-button class=\"nav-menu-button\" aria-label=\"open navigation\" [buttonDisplay]=\"buttonDisplay$ | async\" [disabled]=\"hasNoAnchors$ | async\"></dbx-icon-button>\n </dbx-anchor>\n </ng-container>\n </ng-container>\n </ng-container>\n <!-- Bar -->\n <nav *ngSwitchCase=\"'bar'\" mat-tab-nav-bar [attr.mat-align-tabs]=\"navAlign\">\n <dbx-anchor *ngFor=\"let x of anchors$ | async\" [anchor]=\"x.anchor\">\n <a mat-tab-link [active]=\"x.selected\">{{ x.anchor.title }}</a>\n </dbx-anchor>\n </nav>\n</ng-container>\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTabsModule } from '@angular/material/tabs';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxNavbarComponent } from './navbar.component';\nimport { DbxIconButtonModule } from '../../../button';\n\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxIconButtonModule,\n MatTabsModule,\n MatButtonModule,\n MatIconModule,\n MatMenuModule,\n DbxRouterAnchorModule\n ],\n declarations: [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 { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxScreenMediaService, DbxScreenMediaServiceConfig, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG } from './screen.service';\n\n@NgModule()\nexport class DbxScreenModule {\n static forRoot(config: DbxScreenMediaServiceConfig = DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG): ModuleWithProviders<DbxScreenModule> {\n return {\n ngModule: DbxScreenModule,\n providers: [\n {\n provide: DbxScreenMediaServiceConfig,\n useValue: config\n },\n DbxScreenMediaService\n ]\n };\n }\n}\n","import { NgZone, OnDestroy, OnInit, Component, Input, ViewChild } from '@angular/core';\nimport { MatDrawerMode, MatSidenav } from '@angular/material/sidenav';\nimport { DbxScreenMediaService } from '../../../screen';\nimport { AbstractTransitionWatcherDirective, DbxRouterTransitionService, ClickableAnchorLinkTree } from '@dereekb/dbx-core';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { Maybe } from '@dereekb/util';\nimport { distinctUntilChanged, map, shareReplay, Observable, first } from 'rxjs';\nimport { SideNavDisplayMode } from './sidenav';\n\nexport interface DbxSidenavSidebarState {\n mode: SideNavDisplayMode;\n drawer: MatDrawerMode;\n open?: boolean;\n}\n\n/**\n * Navigation component that sits at the side of an app.\n */\n@Component({\n selector: 'dbx-sidenav',\n exportAs: 'sidenav',\n templateUrl: './sidenav.component.html'\n})\nexport class DbxSidenavComponent extends AbstractTransitionWatcherDirective implements OnInit, OnDestroy {\n @Input()\n anchors?: Maybe<ClickableAnchorLinkTree[]>;\n\n @ViewChild(MatSidenav, { static: true })\n readonly sidenav!: MatSidenav;\n\n readonly mode$: Observable<SideNavDisplayMode> = this._screenMediaService.widthType$.pipe(\n distinctUntilChanged(),\n map((width) => {\n let mode!: SideNavDisplayMode;\n\n switch (width) {\n case 'micro':\n case 'small':\n mode = SideNavDisplayMode.MOBILE;\n break;\n case 'tablet':\n mode = SideNavDisplayMode.ICON;\n break;\n case 'large':\n case 'full':\n mode = SideNavDisplayMode.FULL;\n break;\n }\n\n return mode;\n }),\n shareReplay(1)\n );\n\n readonly disableBackdrop$: Observable<boolean> = this.mode$.pipe(\n map((x) => x !== SideNavDisplayMode.MOBILE),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly sizeClass$: Observable<string> = this.mode$.pipe(\n map((mode) => `dbx-sidenav-${mode}`),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly state$: Observable<DbxSidenavSidebarState> = this.mode$.pipe(\n map((mode) => {\n let drawer!: MatDrawerMode;\n let open!: boolean;\n\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n drawer = 'over';\n open = false;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n drawer = 'side';\n open = true;\n break;\n }\n\n return {\n mode,\n drawer,\n open\n };\n }),\n shareReplay(1)\n );\n\n readonly drawer$: Observable<MatDrawerMode> = this.state$.pipe(\n map((x) => x.drawer),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n private _watcherSub = new SubscriptionObject();\n private _stateSub = new SubscriptionObject();\n\n constructor(dbxRouterTransitionService: DbxRouterTransitionService, ngZone: NgZone, private _screenMediaService: DbxScreenMediaService) {\n super(dbxRouterTransitionService, ngZone);\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n this._stateSub.subscription = this.state$.subscribe((state) => {\n if (state.open != null) {\n this._toggleNav(state.open, true);\n }\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._watcherSub.destroy();\n this._stateSub.destroy();\n }\n\n protected updateForSuccessfulTransition(): void {\n this.closeNav();\n }\n\n closeNav(): void {\n this.toggleNav(false);\n }\n\n toggleNav(open?: boolean): void {\n this._toggleNav(open);\n }\n\n private _toggleNav(toggleOpen = !this.sidenav.opened, forced = false): void {\n this.state$.pipe(first()).subscribe(({ mode }) => {\n this.ngZone.run(() => {\n let open: Maybe<boolean>;\n\n if (!forced) {\n switch (mode) {\n case SideNavDisplayMode.MOBILE:\n open = toggleOpen;\n break;\n case SideNavDisplayMode.ICON:\n case SideNavDisplayMode.FULL:\n // Do nothing. Should be always open.\n break;\n }\n } else {\n open = toggleOpen;\n }\n\n if (open != null) {\n if (open) {\n this.sidenav.open();\n } else {\n this.sidenav.close();\n }\n }\n });\n });\n }\n}\n","<mat-sidenav-container class=\"dbx-sidenav\" [ngClass]=\"(sizeClass$ | async) ?? ''\">\n <mat-sidenav class=\"dbx-sidenav-nav\" [disableClose]=\"disableBackdrop$ | async\" [mode]=\"(drawer$ | async)!\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-anchor-list class=\"dbx-sidenav-anchor-list\" [anchors]=\"anchors\"></dbx-anchor-list>\n <span class=\"spacer\"></span>\n <ng-content select=\"[bottom]\"></ng-content>\n <div class=\"dbx-sidenav-nav-end\"></div>\n </mat-sidenav>\n <mat-sidenav-content>\n <ng-content></ng-content>\n </mat-sidenav-content>\n</mat-sidenav-container>\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n@Component({\n selector: 'dbx-pagebar',\n templateUrl: './pagebar.component.html'\n})\nexport class DbxPagebarComponent {\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","<mat-toolbar class=\"dbx-pagebar\" [ngClass]=\"color ? 'dbx-bar-' + color : ''\">\n <ng-content select=\"[left]\"></ng-content>\n <span class=\"spacer\"></span>\n <ng-content select=\"[right]\"></ng-content>\n</mat-toolbar>\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\n\nexport const DEFAULT_DBX_SIDENAV_MENU_ICON = 'view_sidebar';\n\n/**\n * Button used to interface with a parent sidenav.\n */\n@Component({\n selector: 'dbx-sidenav-button',\n template: `\n <button class=\"dbx-sidenav-button\" mat-icon-button *ngIf=\"showMenuButton$ | async\" (click)=\"toggleNav()\" aria-label=\"open sidenav button\">\n <mat-icon>{{ sidenavMenuIcon }}</mat-icon>\n </button>\n `\n})\nexport class DbxSidenavButtonComponent {\n readonly mode$ = this.parent.mode$;\n readonly showMenuButton$ = this.mode$.pipe(map((x) => x === SideNavDisplayMode.MOBILE));\n\n private _sidenavMenuIcon: string = DEFAULT_DBX_SIDENAV_MENU_ICON;\n\n constructor(readonly parent: DbxSidenavComponent) {}\n\n toggleNav() {\n this.parent.toggleNav();\n }\n\n @Input()\n get sidenavMenuIcon() {\n return this._sidenavMenuIcon;\n }\n\n set sidenavMenuIcon(sidenavMenuIcon: Maybe<string>) {\n this._sidenavMenuIcon = sidenavMenuIcon || DEFAULT_DBX_SIDENAV_MENU_ICON;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxPagebarComponent } from '../../../layout/bar/pagebar.component';\n\n/**\n * Pre-configured pagebar used with DbxSidenavComponent.\n */\n@Component({\n selector: 'dbx-sidenav-pagebar',\n template: `\n <dbx-pagebar class=\"dbx-sidenav-pagebar\" [color]=\"color\">\n <span left>\n <dbx-sidenav-button [sidenavMenuIcon]=\"sidenavMenuIcon\"></dbx-sidenav-button>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-content left></ng-content>\n </span>\n <ng-content right></ng-content>\n </dbx-pagebar>\n `\n})\nexport class DbxSidenavPagebarComponent extends DbxPagebarComponent {\n @Input()\n sidenavMenuIcon: Maybe<string>;\n}\n","import { BehaviorSubject, switchMap, shareReplay, map, of } from 'rxjs';\nimport { Component, Input, OnDestroy } from '@angular/core';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from '../../../layout/bar/bar';\nimport { SideNavDisplayMode } from './sidenav';\n\n/**\n * Pre-configured page used with DbxSidenavComponent.\n *\n * Can optionally be configured to only show the pagebar while in mobile mode.\n */\n@Component({\n selector: 'dbx-sidenav-page',\n template: `\n <div [ngClass]=\"(hidePagebar$ | async) ? 'dbx-pagebar-hide' : ''\">\n <dbx-sidenav-pagebar [sidenavMenuIcon]=\"sidenavMenuIcon\" [color]=\"color\">\n <ng-content left select=\"[navLeft]\"></ng-content>\n <ng-content select=\"[navRight]\"></ng-content>\n </dbx-sidenav-pagebar>\n <div class=\"dbx-content-page dbx-sidenav-page-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxSidenavPageComponent implements OnDestroy {\n @Input()\n sidenavMenuIcon: Maybe<string>;\n\n @Input()\n color?: Maybe<DbxBarColor>;\n\n private _mobileOnly = new BehaviorSubject<boolean>(false);\n\n readonly hidePagebar$ = this._mobileOnly.pipe(\n switchMap((mobileOnly) => (mobileOnly ? this.parent.mode$.pipe(map((x) => x !== SideNavDisplayMode.MOBILE)) : of(false))),\n shareReplay(1)\n );\n\n constructor(readonly parent: DbxSidenavComponent) {}\n\n ngOnDestroy(): void {\n this._mobileOnly.complete();\n }\n\n @Input()\n get mobileOnly(): boolean {\n return this._mobileOnly.value;\n }\n\n set mobileOnly(mobileOnly: boolean) {\n this._mobileOnly.next(mobileOnly);\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n/**\n * Acts as a wrapper for content distributed along a bar.\n */\n@Directive({\n selector: 'dbx-bar,[dbxBar]',\n host: {\n class: 'dbx-bar',\n '[class.dbx-primary-bg]': 'color === \"primary\"',\n '[class.dbx-accent-bg]': 'color === \"accent\"',\n '[class.dbx-warn-bg]': 'color === \"warn\"'\n }\n})\nexport class DbxBarDirective {\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxBarColor } from './bar';\n\n/**\n * Acts as a divider between content and centers a label within a background.\n */\n@Component({\n selector: 'dbx-bar-header',\n template: `\n <dbx-bar [color]=\"color\">\n <mat-icon class=\"button-spacer\" *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"text\">{{ text }}</span>\n </dbx-bar>\n `,\n host: {\n class: 'dbx-bar-header dbx-hint'\n }\n})\nexport class DbxBarHeaderComponent {\n @Input()\n text?: Maybe<string>;\n\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n color?: Maybe<DbxBarColor>;\n}\n","import { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxBarDirective } from './bar.directive';\nimport { DbxBarHeaderComponent } from './bar.header.component';\nimport { DbxPagebarComponent } from './pagebar.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, MatToolbarModule, MatIconModule],\n declarations: [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent],\n exports: [DbxBarDirective, DbxBarHeaderComponent, DbxPagebarComponent]\n})\nexport class DbxBarLayoutModule {}\n","import { Directive, Input } from '@angular/core';\n\n/**\n * Section used to elevate content in a pre-configured manner.\n */\n@Directive({\n selector: 'dbx-content-elevate,[dbxContentElevate]',\n host: {\n class: 'd-block',\n '[class.dbx-content-elevate]': 'elevate'\n }\n})\nexport class DbxContentElevateDirective {\n @Input()\n elevate = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content,[dbxContent]',\n host: {\n class: 'd-block dbx-content'\n }\n})\nexport class DbxContentDirective {}\n","import { Directive, Input } from '@angular/core';\nimport { DbxThemeColor } from '../style/style';\n\n/**\n * Section used to wrap content in a border with internal padding.\n */\n@Directive({\n selector: 'dbx-content-border,[dbxContentBorder]',\n host: {\n class: 'd-block dbx-content-border',\n '[class]': `\"dbx-content-border-\" + color`\n }\n})\nexport class DbxContentBorderDirective {\n @Input()\n color: DbxThemeColor = 'background';\n}\n","import { Input, Directive } from '@angular/core';\n\nexport type DbxContentContainerPadding = 'none' | 'min' | 'small' | 'normal';\n\nexport type DbxContentContainerWidth = 'small' | 'medium' | 'wide' | 'full';\n\n/**\n * Component that limits the max-width of the content.\n */\n@Directive({\n selector: 'dbx-content-container,[dbxContentContainer],.dbx-content-container',\n host: {\n class: 'd-block dbx-content-container',\n '[class]': `\"container-\" + grow + \" container-padding-\" + padding`\n }\n})\nexport class DbxContentContainerDirective {\n @Input()\n grow: DbxContentContainerWidth = 'wide';\n\n @Input()\n padding: DbxContentContainerPadding = 'normal';\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 && elevated',\n '[class.dbx-content-box-wide]': 'wide'\n }\n})\nexport class DbxContentBoxDirective {\n @Input()\n elevate = true;\n\n @Input()\n wide = true;\n\n // MARK: Compat\n /**\n * @Deprecated use elevate instead\n */\n @Input()\n elevated = true;\n}\n","import { Directive } from '@angular/core';\n\n/**\n * Directive that sets the height of it's content to fill the page.\n */\n@Directive({\n selector: 'dbx-content-page,[dbxContentPage]',\n host: {\n class: 'd-block dbx-content-page'\n }\n})\nexport class DbxContentPageDirective {}\n","import { Directive } from '@angular/core';\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 }\n})\nexport class DbxContentPitDirective {}\n","import { DbxContentElevateDirective } from './content.elevate.directive';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxContentDirective } from './content.directive';\nimport { DbxContentBorderDirective } from './content.border.directive';\nimport { DbxContentContainerDirective } from './content.container.directive';\nimport { DbxContentBoxDirective } from './content.box.directive';\nimport { DbxContentPageDirective } from './content.page.directive';\nimport { DbxContentPitDirective } from './content.pit.directive';\n\nconst declarations = [\n //\n DbxContentDirective,\n DbxContentContainerDirective,\n DbxContentBorderDirective,\n DbxContentElevateDirective,\n DbxContentBoxDirective,\n DbxContentPageDirective,\n DbxContentPitDirective\n];\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [CommonModule],\n declarations,\n exports: declarations\n})\nexport class DbxContentLayoutModule {}\n","import { OnDestroy, Input, TemplateRef, ViewContainerRef, Directive } from '@angular/core';\nimport { AbstractIfDirective } from '@dereekb/dbx-core';\nimport { emitDelayObs } from '@dereekb/rxjs';\nimport { ArrayOrValue, Maybe, asArray, filterMaybeValues } from '@dereekb/util';\nimport { of, exhaustMap, shareReplay, BehaviorSubject, combineLatest, switchMap, distinctUntilChanged, map } from 'rxjs';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { SideNavDisplayMode } from './sidenav';\n\n/**\n * Structural directive that displays the content if the Sidenav has a specific sidenav size.\n */\n@Directive({\n selector: '[dbxIfSidenavDisplayMode]'\n})\nexport class DbxIfSidenavDisplayModeDirective extends AbstractIfDirective implements OnDestroy {\n private _sidenavModes = new BehaviorSubject<Set<SideNavDisplayMode>>(new Set([SideNavDisplayMode.NONE]));\n\n readonly show$ = this._sidenavModes.pipe(\n switchMap((modes) => {\n return this.dbxSidenavComponent.mode$.pipe(map((mode) => modes.has(mode)));\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n constructor(templateRef: TemplateRef<unknown>, viewContainer: ViewContainerRef, public readonly dbxSidenavComponent: DbxSidenavComponent) {\n super(templateRef, viewContainer);\n }\n\n @Input('dbxIfSidenavDisplayMode')\n get modes() {\n return Array.from(this._sidenavModes.value);\n }\n\n set modes(modes: Maybe<ArrayOrValue<SideNavDisplayMode | string>>) {\n this._sidenavModes.next(new Set(filterMaybeValues(asArray(modes as SideNavDisplayMode))));\n }\n\n override ngOnDestroy(): void {\n this._sidenavModes.complete();\n }\n}\n","import { MatDividerModule } from '@angular/material/divider';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatToolbarModule } from '@angular/material/toolbar';\nimport { MatButtonModule } from '@angular/material/button';\nimport { UIRouterModule } from '@uirouter/angular';\nimport { DbxSidenavComponent } from './sidenav.component';\nimport { MatSidenavModule } from '@angular/material/sidenav';\nimport { MatListModule } from '@angular/material/list';\nimport { DbxRouterAnchorModule } from '../anchor/anchor.module';\nimport { DbxRouterAnchorListModule } from '../anchorlist/anchorlist.module';\nimport { DbxSidenavPagebarComponent } from './sidenav.pagebar.component';\nimport { DbxSidenavPageComponent } from './sidenav.page.component';\nimport { DbxBarLayoutModule } from '../../../layout/bar/bar.layout.module';\nimport { DbxButtonModule } from '../../../button/button.module';\nimport { DbxContentLayoutModule } from './../../../layout/content/content.layout.module';\nimport { DbxSidenavButtonComponent } from './sidenav.button.component';\nimport { DbxIfSidenavDisplayModeDirective } from './sidenav.ifdisplaymode.directive';\n\nconst declarations = [DbxIfSidenavDisplayModeDirective, DbxSidenavComponent, DbxSidenavButtonComponent, DbxSidenavPagebarComponent, DbxSidenavPageComponent];\n\n@NgModule({\n imports: [CommonModule, DbxBarLayoutModule, DbxRouterAnchorModule, DbxRouterAnchorListModule, DbxButtonModule, DbxContentLayoutModule, MatToolbarModule, MatButtonModule, MatIconModule, MatSidenavModule, MatListModule, MatDividerModule, UIRouterModule],\n declarations,\n exports: declarations\n})\nexport class DbxRouterSidenavModule {}\n","export * from './sidenav.component';\nexport * from './sidenav.module';\nexport * from './sidenav.button.component';\nexport * from './sidenav.pagebar.component';\nexport * from './sidenav.page.component';\nexport * from './sidenav.ifdisplaymode.directive';\nexport * from './sidenav';\n// export * from './side.item.component';\n// export * from './side.title.component';\n// export * from './side.title.content.component';\n","import { NgModule } from '@angular/core';\nimport { DbxRouterAnchorModule } from './anchor/anchor.module';\nimport { DbxRouterAnchorListModule } from './anchorlist/anchorlist.module';\nimport { DbxRouterListModule } from './list/list.module';\nimport { DbxRouterNavbarModule } from './navbar/navbar.module';\nimport { DbxRouterSidenavModule } from './sidenav/sidenav.module';\n\n@NgModule({\n exports: [DbxRouterAnchorModule, DbxRouterAnchorListModule, DbxRouterListModule, DbxRouterNavbarModule, DbxRouterSidenavModule]\n})\nexport class DbxRouterLayoutModule {}\n","import { Component } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\n\n/**\n * SegueAnchor implementation for Angular Router.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbxAngularRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {}\n","<a class=\"dbx-anchor-a\" [attr.target]=\"target$ | async\">\n <dbx-injection></dbx-injection>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxAngularRouterSegueAnchorComponent } from './anchor.component';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, UIRouterModule, DbxInjectionComponentModule],\n declarations: [DbxAngularRouterSegueAnchorComponent],\n exports: [DbxAngularRouterSegueAnchorComponent]\n})\nexport class DbxWebAngularRouterModule {\n static forRoot(): ModuleWithProviders<DbxWebAngularRouterModule> {\n return {\n ngModule: DbxWebAngularRouterModule,\n providers: [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbxAngularRouterSegueAnchorComponent\n }\n } as DbxRouterWebProviderConfig\n }\n ]\n };\n }\n}\n","import { Observable, filter } from 'rxjs';\nimport { Component } from '@angular/core';\nimport { AbstractDbxSegueAnchorDirective } from '../../layout/anchor/anchor.segue.directive';\nimport { TransitionOptions } from '@uirouter/core';\n\n/**\n * SegueAnchor implementation for UIRouter.\n */\n@Component({\n templateUrl: './anchor.component.html'\n})\nexport class DbxUIRouterSegueAnchorComponent extends AbstractDbxSegueAnchorDirective {\n readonly uiRef$ = this.ref$.pipe(filter((x) => typeof x === 'string')) as Observable<string | null>;\n readonly uiOptions$ = this.refOptions$ as Observable<TransitionOptions | null>;\n}\n","<a class=\"dbx-anchor-a dbx-anchor-sref\" [attr.target]=\"target$ | async\" [uiSref]=\"(uiRef$ | async) ?? ''\" [uiParams]=\"refParams$ | async\" [uiOptions]=\"(uiOptions$ | async) ?? {}\" uiSrefActive=\"dbx-anchor-active\" uiSrefActiveEq=\"dbx-anchor-active-eq\">\n <dbx-injection [template]=\"template$ | async\"></dbx-injection>\n</a>\n","import { UIRouterModule } from '@uirouter/angular';\nimport { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxUIRouterSegueAnchorComponent } from './anchor.component';\nimport { DbxRouterWebProviderConfig } from '../router.provider.config';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\n\n@NgModule({\n imports: [CommonModule, UIRouterModule, DbxInjectionComponentModule],\n declarations: [DbxUIRouterSegueAnchorComponent],\n exports: [DbxUIRouterSegueAnchorComponent]\n})\nexport class DbxWebUIRouterModule {\n static forRoot(): ModuleWithProviders<DbxWebUIRouterModule> {\n return {\n ngModule: DbxWebUIRouterModule,\n providers: [\n {\n provide: DbxRouterWebProviderConfig,\n useValue: {\n anchorSegueRefComponent: {\n componentClass: DbxUIRouterSegueAnchorComponent\n }\n } as DbxRouterWebProviderConfig\n }\n ]\n };\n }\n}\n","import { shareReplay, BehaviorSubject, map, Observable, combineLatest, distinctUntilChanged, startWith, first } from 'rxjs';\nimport { Directive, Input, OnDestroy } from '@angular/core';\nimport { ClickableAnchorLink, FilterSourceDirective, ClickablePartialFilterPreset } from '@dereekb/dbx-core';\nimport { filterUndefinedValues, firstValue, getValueFromGetter, Maybe, objectHasNoKeys } from '@dereekb/util';\nimport { FilterWithPreset, timeoutStartWith } from '@dereekb/rxjs';\n\n/**\n * Displays a button and menu for filtering partialPresets.\n */\n@Directive()\nexport abstract class AbstractDbxPartialPresetFilterMenuDirective<F> implements OnDestroy {\n private _partialPresets = new BehaviorSubject<ClickablePartialFilterPreset<F>[]>([]);\n\n readonly filter$: Observable<Maybe<F>> = this.filterSourceDirective.filter$.pipe(startWith(undefined), distinctUntilChanged(), shareReplay(1));\n\n readonly selectedPartialPresets$: Observable<ClickablePartialFilterPreset<F>[]> = combineLatest([this._partialPresets, this.filter$]).pipe(\n map(([partialPresets, selectedFilter]) => {\n const selectedPresets: ClickablePartialFilterPreset<F>[] = partialPresets.filter((x) => x.isActive(selectedFilter));\n return selectedPresets;\n }),\n distinctUntilChanged()\n );\n\n readonly firstSelectedPartialPreset$: Observable<Maybe<ClickablePartialFilterPreset<F>>> = this.selectedPartialPresets$.pipe(\n map((selectedPartialPresets) => firstValue(selectedPartialPresets)),\n distinctUntilChanged()\n );\n\n readonly presetAnchors$: Observable<ClickableAnchorLink[]> = combineLatest([this._partialPresets, this.firstSelectedPartialPreset$]).pipe(\n map(([partialPresets, firstSelectedPartialPreset]) => {\n return partialPresets.map((x) => {\n return {\n ...x,\n selected: x === firstSelectedPartialPreset,\n onClick: () => {\n this.selectPartialPreset(x);\n }\n };\n });\n }),\n shareReplay(1)\n );\n\n @Input()\n get partialPresets(): ClickablePartialFilterPreset<F>[] {\n return this._partialPresets.value;\n }\n\n set partialPresets(partialPresets: ClickablePartialFilterPreset<F>[]) {\n this._partialPresets.next(partialPresets);\n }\n\n constructor(readonly filterSourceDirective: FilterSourceDirective<F>) {}\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 let filter = getValueFromGetter(preset.partialPresetValue) as Partial<F>;\n\n this.filter$.pipe(first()).subscribe((currentFilter) => {\n const nextFilter = { ...currentFilter, ...filterUndefinedValues({ ...currentFilter, ...filter }, true) } as F;\n this.filterSourceDirective.setFilter(nextFilter);\n });\n }\n }\n\n ngOnDestroy(): void {\n this._partialPresets.complete();\n }\n}\n","import { shareReplay, BehaviorSubject, map, combineLatest, distinctUntilChanged, switchMap } from 'rxjs';\nimport { Component, Input } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\nimport { dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, DbxPresetFilterMenuConfig } from './filter.menu';\n\n/**\n * Displays a button and menu for filtering partial preset values.\n */\n@Component({\n selector: 'dbx-partial-preset-filter-menu',\n templateUrl: './filter.preset.menu.component.html' // share the same template as the preset menu\n})\nexport class DbxPartialPresetFilterMenuComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {\n private _config = new BehaviorSubject<DbxPresetFilterMenuConfig>({});\n\n readonly buttonText$ = dbxPresetFilterMenuButtonTextObservable(this._config, this.firstSelectedPartialPreset$);\n readonly buttonIcon$ = dbxPresetFilterMenuButtonIconObservable(this._config, this.firstSelectedPartialPreset$);\n\n @Input()\n get config(): DbxPresetFilterMenuConfig {\n return this._config.value;\n }\n\n set config(config: DbxPresetFilterMenuConfig) {\n this._config.next(config);\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._config.complete();\n }\n}\n","import { Component } from '@angular/core';\nimport { AbstractDbxPartialPresetFilterMenuDirective } from './filter.partial';\n\n@Component({\n selector: 'dbx-preset-partial-filter-list',\n template: `\n <dbx-anchor-list [anchors]=\"presetAnchors$ | async\"></dbx-anchor-list>\n `\n})\nexport class DbxPartialPresetFilterListComponent<F> extends AbstractDbxPartialPresetFilterMenuDirective<F> {}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxFilterPopoverButtonComponent } from './filter.popover.button.component';\nimport { DbxPopoverInteractionModule } from '../popover/popover.module';\nimport { DbxFilterPopoverComponent } from './filter.popover.component';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxFilterWrapperComponent } from './filter.wrapper.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { DbxCoreFilterModule, DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPresetFilterListComponent } from './filter.preset.list.component';\nimport { DbxRouterAnchorListModule } from '../../router/layout/anchorlist/anchorlist.module';\nimport { DbxPresetFilterMenuComponent } from './filter.preset.menu.component';\nimport { MatMenuModule } from '@angular/material/menu';\nimport { DbxRouterAnchorModule } from '../../router';\nimport { DbxPartialPresetFilterMenuComponent } from './filter.partial.menu.component';\nimport { DbxPartialPresetFilterListComponent } from './filter.partial.list.component';\n\nconst declarations = [DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxFilterPopoverComponent, DbxFilterPopoverButtonComponent, DbxFilterWrapperComponent, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent];\n\n@NgModule({\n imports: [\n CommonModule,\n DbxPopoverInteractionModule,\n DbxCoreFilterModule,\n DbxButtonModule,\n DbxRouterAnchorModule,\n DbxRouterAnchorListModule,\n DbxInjectionComponentModule,\n FlexLayoutModule,\n // Material\n MatMenuModule,\n MatIconModule,\n MatButtonModule\n ],\n declarations,\n exports: [...declarations, DbxCoreFilterModule]\n})\nexport class DbxFilterInteractionModule {}\n","import { ElementRef, Component, ViewChild, Input } from '@angular/core';\nimport { ResizedEvent } from 'angular-resize-event';\n\n/**\n * Wrapper of a block that is broken into two parts, with the bottom content's height\n * being set to 100% of the height minus the top's height.\n *\n * The block is made up of two divs, a top and a bottom. The top is assigned a static height, and the bottom is given the remainder.\n * The height is calculated from 100%.\n */\n@Component({\n selector: 'dbx-two-block',\n template: `\n <div #two class=\"dbx-two-block-content\">\n <div #top class=\"dbx-two-block-top\" (resized)=\"onResized($event)\">\n <ng-content select=\"[top]\"></ng-content>\n </div>\n <div #bottom class=\"dbx-two-block-bottom\">\n <ng-content></ng-content>\n </div>\n </div>\n `,\n host: {\n class: 'dbx-two-block d-block',\n '[class]': '{ \"dbx-two-block-fixed-top\": fixedTop }'\n }\n})\nexport class DbxTwoBlocksComponent {\n /**\n * Whether or not the top bar should be fixed in place instead of scrolling with the bottom when content is too tall.\n */\n @Input()\n fixedTop = true;\n\n @ViewChild('two', { read: ElementRef, static: true })\n twoElement!: ElementRef;\n\n /*\n @ViewChild('top', { read: ElementRef, static: true })\n topElement!: ElementRef;\n\n @ViewChild('bottom', { read: ElementRef, static: true })\n bottomElement!: ElementRef;\n */\n\n onResized(event: ResizedEvent): void {\n const height = event.newRect.height;\n const element: HTMLElement = this.twoElement.nativeElement;\n element.style.setProperty('--dbx-two-block-top-height', `${height}px`);\n }\n}\n","import { DbxRouterAnchorModule } from '../../router';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxTwoBlocksComponent } from './two.block.component';\nimport { AngularResizeEventModule } from 'angular-resize-event';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, DbxRouterAnchorModule, AngularResizeEventModule],\n declarations: [DbxTwoBlocksComponent],\n exports: [DbxTwoBlocksComponent]\n})\nexport class DbxBlockLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Component that formats a card-box of content.\n */\n@Component({\n selector: 'dbx-card-box',\n template: `\n <div class=\"dbx-card-box\">\n <div class=\"dbx-section-header\">\n <div class=\"dbx-section-header-content\">\n <h4 class=\"dbx-section-header-content-title\">\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"header\" class=\"title-text\">{{ header }}</span>\n </h4>\n <span class=\"spacer\"></span>\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n </div>\n <div class=\"dbx-card-box-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxCardBoxComponent {\n @Input()\n header?: string;\n\n @Input()\n icon?: string;\n}\n","import { Component } from '@angular/core';\n\n/**\n * Component that wraps a card box and adds content padding.\n */\n@Component({\n selector: 'dbx-card-box-container',\n template: `\n <div class=\"dbx-card-box-container\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DbxCardBoxContainerComponent {}\n","import { MatIconModule } from '@angular/material/icon';\nimport { DbxCardBoxContainerComponent } from './card.box.container.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCardBoxComponent } from './card.box.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxCardBoxComponent, DbxCardBoxContainerComponent],\n exports: [DbxCardBoxComponent, DbxCardBoxContainerComponent]\n})\nexport class DbxCardBoxLayoutModule {}\n","import { Injectable, OnDestroy, Provider } from '@angular/core';\nimport { ComponentStore } from '@ngrx/component-store';\nimport { Subject, distinct, map } from 'rxjs';\nimport { SegueRef } from '@dereekb/dbx-core';\nimport { isMaybeNot, Maybe } from '@dereekb/util';\n\nexport interface TwoColumnsState {\n /**\n * Whether or not to reverse the sizing.\n */\n reverseSizing: boolean;\n /**\n * Whether or not the right side should be shown.\n */\n showRight: boolean;\n /**\n * Whether or not there is any registered right content currently.\n */\n hasRight: boolean;\n /**\n * Whether or not to allow the left to fill up the screen when no right is shown.\n */\n fullLeft: boolean;\n /**\n * Optional ref to use with TwoColumns that use an sref for the back button.\n */\n backRef?: Maybe<SegueRef>;\n /**\n * Size of the view's total width in pixels.\n */\n totalWidth?: Maybe<number>;\n /**\n * Minimum right side size allowed before hiding the left content.\n */\n minRightWidth: number;\n}\n\nexport const DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH = 320;\n\nconst INITIAL_STATE: TwoColumnsState = {\n reverseSizing: false,\n showRight: false,\n hasRight: false,\n fullLeft: false,\n minRightWidth: DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH\n};\n\n@Injectable()\nexport class TwoColumnsContextStore extends ComponentStore<TwoColumnsState> implements OnDestroy {\n private readonly _back = new Subject<void>();\n\n constructor() {\n super({ ...INITIAL_STATE });\n }\n\n // MARK: Accessors\n readonly hideLeft$ = this.state$.pipe(\n map((x) => {\n /**\n * The right side is less-than or equal to half the total width when resizing, so we can use the total width to guess the best case current scenario.\n */\n const expectedRightWidth = (x.totalWidth ?? 0) / 2;\n const hideLeft = x.showRight && expectedRightWidth < x.minRightWidth;\n return hideLeft;\n })\n );\n\n /**\n * Pipes the current state of reverseSizing.\n */\n readonly reverseSizing$ = this.state$.pipe(map((x) => x.reverseSizing));\n\n /**\n * Pipes the current state of showRight.\n */\n readonly hasRight$ = this.state$.pipe(map((x) => x.showRight));\n\n /**\n * Pipes the current state of showRight.\n */\n readonly currentShowRight$ = this.state$.pipe(map((x) => x.showRight));\n\n /**\n * Pipes the current state of showRight and hasRight\n */\n readonly showRight$ = this.state$.pipe(map((x) => x.hasRight && x.showRight));\n\n /**\n * Convenience function for the showRight compliment.\n */\n readonly hideRight$ = this.showRight$.pipe(map((x) => !x));\n\n /**\n * Pipes the current state of fullLeft.\n */\n readonly fullLeft$ = this.state$.pipe(map((x) => x.fullLeft));\n\n /**\n * Whether or not to show the full left.\n */\n readonly showFullLeft$ = this.state$.pipe(map((x) => !(x.hasRight && x.showRight) && x.fullLeft));\n\n /**\n * Pipes the current backRef value.\n */\n readonly backRef$ = this.state$.pipe(\n map((x) => x.backRef),\n distinct()\n );\n\n /**\n * Emits back events.\n */\n readonly back$ = this._back.asObservable();\n\n // MARK: State Changes\n /**\n * Completely resets the store.\n */\n readonly reset = this.updater(() => ({ ...INITIAL_STATE }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setReverseSizing = this.updater((state, reverseSizing: Maybe<boolean>) => (isMaybeNot(reverseSizing) ? state : { ...state, reverseSizing }));\n\n /**\n * Changes the state to have right content or not.\n */\n readonly setHasRight = this.updater((state, hasRight: Maybe<boolean>) => (isMaybeNot(hasRight) ? state : { ...state, hasRight }));\n\n /**\n * Changes the state to show right or not.\n */\n readonly setShowRight = this.updater((state, showRight: Maybe<boolean>) => (isMaybeNot(showRight) ? state : { ...state, showRight }));\n\n /**\n * Sets the full left. If undefined is passed, no change occurs.\n */\n readonly setFullLeft = this.updater((state, fullLeft: Maybe<boolean>) => (isMaybeNot(fullLeft) ? state : { ...state, fullLeft }));\n\n /**\n * Sets the new back ref.\n */\n readonly setBackRef = this.updater((state, backRef: Maybe<SegueRef>) => ({ ...state, backRef }));\n\n /**\n * Sets the new total width.\n */\n readonly setTotalWidth = this.updater((state, totalWidth: Maybe<number>) => ({ ...state, totalWidth }));\n\n /**\n * Sets the new min right width.\n */\n readonly setMinRightWidth = this.updater((state, minRightWidth: Maybe<number>) => ({ ...state, minRightWidth: minRightWidth ?? DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH }));\n\n /**\n * Emits a back event.\n */\n back(): void {\n this._back.next();\n }\n\n // MARK: Internal\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._back.complete();\n }\n}\n\nexport function provideTwoColumnsContext(): Provider[] {\n return [\n {\n provide: TwoColumnsContextStore,\n useClass: TwoColumnsContextStore\n }\n ];\n}\n","import { Directive, EventEmitter, Output, OnInit } from '@angular/core';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with an DbxTwoColumnComponent to help respond to a \"back\" function.\n */\n@Directive({\n selector: '[dbxTwoColumnBack]'\n})\nexport class DbxTwoColumnBackDirective extends AbstractSubscriptionDirective implements OnInit {\n @Output('dbxTwoColumnBack')\n public back = new EventEmitter();\n\n constructor(public readonly twoColumnsContextStore: TwoColumnsContextStore) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.twoColumnsContextStore.back$.subscribe(() => this.back.emit());\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","import { ChangeDetectorRef, OnDestroy, ChangeDetectionStrategy, OnInit, Component, Inject, Input, ElementRef } from '@angular/core';\nimport { AbstractSubscriptionDirective, safeMarkForCheck } from '@dereekb/dbx-core';\nimport { ResizedEvent } from 'angular-resize-event';\nimport { Observable, BehaviorSubject, combineLatest } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\n\nexport interface DbxTwoColumnViewState {\n showRight: boolean;\n showFullLeft: boolean;\n hideLeftColumn: boolean;\n reverseSizing: boolean;\n inSectionPage: boolean;\n}\n\n/**\n * Responsive component meant to split a left and right column.\n *\n * The left column is smaller than the right column, which contains the primary content.\n *\n * Requires a TwoColumnsContextStore to be provided.\n */\n@Component({\n selector: 'dbx-two-column',\n templateUrl: './two.column.component.html',\n exportAs: 'columns',\n host: {\n class: 'dbx-two-column',\n '[class]': \"{ 'right-shown': v.showRight, 'full-left': v.showFullLeft,'hide-left-column': v.hideLeftColumn, 'two-column-reverse-sizing': v.reverseSizing, 'dbx-section-page-two': v.inSectionPage }\"\n },\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class DbxTwoColumnComponent extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n private _view: DbxTwoColumnViewState = { showRight: false, showFullLeft: true, hideLeftColumn: false, reverseSizing: false, inSectionPage: false };\n\n private _inSectionPage = new BehaviorSubject<boolean>(false);\n\n readonly reverseSizing$ = this.twoColumnsContextStore.reverseSizing$;\n readonly hideLeftColumn$: Observable<boolean> = this.twoColumnsContextStore.hideLeft$;\n readonly showRight$: Observable<boolean> = this.twoColumnsContextStore.showRight$;\n readonly showFullLeft$: Observable<boolean> = this.twoColumnsContextStore.showFullLeft$;\n\n readonly hideRight$: Observable<boolean> = this.twoColumnsContextStore.hideRight$;\n\n constructor(@Inject(TwoColumnsContextStore) public readonly twoColumnsContextStore: TwoColumnsContextStore, private elementRef: ElementRef, readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = combineLatest([this.showRight$, this.showFullLeft$, this.hideLeftColumn$, this.reverseSizing$, this._inSectionPage]).subscribe(([showRight, showFullLeft, hideLeftColumn, reverseSizing, inSectionPage]: [boolean, boolean, boolean, boolean, boolean]) => {\n this._view = {\n showRight,\n showFullLeft,\n hideLeftColumn,\n reverseSizing,\n inSectionPage\n };\n\n safeMarkForCheck(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._inSectionPage.complete();\n }\n\n get v(): DbxTwoColumnViewState {\n return this._view;\n }\n\n @Input()\n set reverseSizing(reverseSizing: boolean) {\n this.twoColumnsContextStore.setReverseSizing(reverseSizing);\n }\n\n @Input()\n set inSectionPage(inSectionPage: boolean) {\n this._inSectionPage.next(inSectionPage);\n }\n\n onResized(event: ResizedEvent): void {\n const totalWidth = (this.elementRef.nativeElement as HTMLElement).clientWidth;\n this.twoColumnsContextStore.setTotalWidth(totalWidth);\n }\n}\n","<dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height left-column\">\n <div *ngIf=\"!v.hideLeftColumn && v.reverseSizing\" (resized)=\"onResized($event)\"></div>\n <ng-content select=\"[left]\"></ng-content>\n</dbx-content-container>\n<dbx-content-container grow=\"full\" padding=\"none\" class=\"dbx-content dbx-content-auto-height right-column\" *ngIf=\"v.showRight\">\n <div *ngIf=\"v.hideLeftColumn || !v.reverseSizing\" (resized)=\"onResized($event)\"></div>\n <ng-content select=\"[right]\"></ng-content>\n</dbx-content-container>\n","import { Input, OnDestroy, Directive, OnInit } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\nimport { provideTwoColumnsContext, TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Provides a dbxTwoColumnContextStore\n */\n@Directive({\n selector: '[dbxTwoColumnContext]',\n providers: provideTwoColumnsContext()\n})\nexport class DbxTwoColumnContextDirective implements OnInit, OnDestroy {\n private _showRight = new BehaviorSubject<Maybe<boolean>>(undefined);\n\n constructor(readonly twoColumnsContextStore: TwoColumnsContextStore) {}\n\n ngOnInit(): void {\n this.twoColumnsContextStore.setShowRight(this._showRight);\n }\n\n ngOnDestroy(): void {\n this._showRight.complete();\n }\n\n @Input()\n set showRight(showRight: Maybe<boolean | ''>) {\n this._showRight.next(Boolean(showRight));\n }\n}\n","import { OnInit, Directive, Input, OnDestroy } from '@angular/core';\nimport { isNotNullOrEmptyString, Maybe } from '@dereekb/util';\nimport { BehaviorSubject } from 'rxjs';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the full left to true.\n */\n@Directive({\n selector: '[dbxTwoColumnFullLeft]'\n})\nexport class DbxTwoColumnFullLeftDirective implements OnInit, OnDestroy {\n private _fullLeft = new BehaviorSubject<boolean>(true);\n\n @Input('dbxTwoColumnFullLeft')\n get fullLeft(): boolean {\n return this._fullLeft.value;\n }\n\n set fullLeft(fullLeft: Maybe<boolean | ''>) {\n if (isNotNullOrEmptyString(fullLeft)) {\n // only respond to boolean values\n this._fullLeft.next(Boolean(fullLeft));\n }\n }\n\n constructor(private readonly _twoColumnsContextStore: TwoColumnsContextStore) {}\n\n ngOnInit(): void {\n this._twoColumnsContextStore.setFullLeft(this._fullLeft);\n }\n\n ngOnDestroy(): void {\n this._fullLeft.complete();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Two Columns related component that sits at the top of the content bodies and wraps content.\n */\n@Component({\n selector: 'dbx-two-column-head',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-two-column-head',\n '[class.d-block]': 'block',\n '[class.full]': 'full'\n }\n})\nexport class DbxTwoColumnColumnHeadComponent {\n @Input()\n block?: boolean;\n\n @Input()\n full?: boolean;\n}\n","import { Directive, Input } from '@angular/core';\nimport { asSegueRef, SegueRefOrSegueRefRouterLink } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\nimport { TwoColumnsContextStore } from './two.column.store';\n\n/**\n * Used with a DbxTwoColumnComponent to set the backRef of the TwoColumnsContextStore.\n */\n@Directive({\n selector: '[dbxTwoColumnSref]'\n})\nexport class DbxTwoColumnSrefDirective {\n constructor(private readonly _twoColumnsContextStore: TwoColumnsContextStore) {}\n\n @Input('dbxTwoColumnSref')\n public set ref(ref: Maybe<SegueRefOrSegueRefRouterLink | ''>) {\n const segueRef = ref ? asSegueRef(ref) : undefined;\n this._twoColumnsContextStore.setBackRef(segueRef);\n }\n}\n","import { AfterViewInit, OnDestroy, Component, Inject, Input } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest, map } from 'rxjs';\nimport { ClickableAnchor } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Optional responsive component that wraps content on the right side and shows a navigation bar.\n *\n * When rendered it will trigger the context to show left.\n */\n@Component({\n selector: 'dbx-two-column-right',\n templateUrl: './two.column.right.component.html',\n host: {\n class: 'dbx-two-column-right d-block'\n }\n})\nexport class DbxTwoColumnRightComponent implements AfterViewInit, OnDestroy {\n @Input()\n header?: Maybe<string>;\n\n @Input()\n block?: boolean;\n\n private _showBack = new BehaviorSubject<boolean>(true);\n\n readonly ref$: Observable<Maybe<ClickableAnchor>> = this.twoColumnsContextStore.backRef$;\n\n readonly showBack$: Observable<boolean> = combineLatest([\n this._showBack,\n this.ref$.pipe(map((x) => !x)) // TODO: Is this correct? Show back if ref is not defined?\n ]).pipe(map(([a, b]: [boolean, boolean]) => a && b));\n\n constructor(@Inject(TwoColumnsContextStore) private readonly twoColumnsContextStore: TwoColumnsContextStore) {}\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n this.twoColumnsContextStore.setHasRight(true);\n });\n }\n\n ngOnDestroy(): void {\n this._showBack.complete();\n this.twoColumnsContextStore.setHasRight(false);\n }\n\n @Input()\n get showBack(): boolean {\n return this._showBack.value;\n }\n\n set showBack(showBack: boolean) {\n this._showBack.next(showBack);\n }\n\n /**\n * Minimum right-side width allowed in pixels.\n */\n @Input()\n set minRightWidth(minRightWidth: Maybe<number | ''>) {\n this.twoColumnsContextStore.setMinRightWidth(typeof minRightWidth === 'number' ? minRightWidth : undefined);\n }\n\n public backClicked(): void {\n this.twoColumnsContextStore.back();\n }\n}\n","<dbx-two-column-head [block]=\"block\" [full]=\"true\">\n <!-- Back Buttons -->\n <ng-container *ngIf=\"showBack$ | async\">\n <button mat-icon-button class=\"back-button\" (click)=\"backClicked()\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </ng-container>\n <ng-container *ngIf=\"ref$ | async\">\n <dbx-anchor [anchor]=\"ref$ | async\">\n <button mat-icon-button class=\"back-button\" aria-label=\"back button\">\n <mat-icon>navigate_before</mat-icon>\n </button>\n </dbx-anchor>\n </ng-container>\n <span *ngIf=\"header\" class=\"right-nav-title\">{{ header }}</span>\n <span class=\"right-nav-spacer\"></span>\n <span class=\"spacer\"></span>\n <ng-content select=\"[nav]\"></ng-content>\n</dbx-two-column-head>\n<div class=\"dbx-two-column-right-content\">\n <ng-content></ng-content>\n</div>\n","import { Directive, OnInit, OnDestroy } from '@angular/core';\nimport { AbstractSubscriptionDirective, DbxRouterService, isSegueRefActive } from '@dereekb/dbx-core';\nimport { TwoColumnsContextStore } from './two.column.store';\nimport { shareReplay, distinctUntilChanged, Subscription } from 'rxjs';\nimport { isNot } from '@dereekb/rxjs';\n\n/**\n * Used with a DbxTwoColumnComponent to control showing right when the current route is a child of the backRef.\n */\n@Directive({\n selector: '[dbxTwoColumnSrefShowRight]'\n})\nexport class DbxTwoColumnSrefShowRightDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n 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(private readonly _twoColumnsContextStore: TwoColumnsContextStore, private readonly _dbxRouterService: DbxRouterService) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this._twoColumnsContextStore.setShowRight(this.showRight$) as Subscription;\n }\n}\n","import { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxRouterAnchorModule } from '../../../router';\nimport { DbxContentLayoutModule } from '../../content';\nimport { DbxTwoColumnSrefDirective } from './two.column.sref.directive';\nimport { DbxTwoColumnComponent } from './two.column.component';\nimport { DbxTwoColumnColumnHeadComponent } from './two.column.head.component';\nimport { DbxTwoColumnRightComponent } from './two.column.right.component';\nimport { DbxTwoColumnBackDirective } from './two.column.back.directive';\nimport { DbxTwoColumnFullLeftDirective } from './two.column.full.left.directive';\nimport { DbxTwoColumnContextDirective } from './two.column.context.directive';\nimport { AngularResizeEventModule } from 'angular-resize-event';\nimport { DbxTwoColumnSrefShowRightDirective } from './two.column.sref.showright.directive';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxRouterAnchorModule, DbxContentLayoutModule, AngularResizeEventModule],\n declarations: [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadComponent, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective],\n exports: [DbxTwoColumnComponent, DbxTwoColumnRightComponent, DbxTwoColumnColumnHeadComponent, DbxTwoColumnSrefDirective, DbxTwoColumnBackDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnContextDirective, DbxTwoColumnSrefShowRightDirective]\n})\nexport class DbxTwoColumnLayoutModule {}\n","import { Component, Inject, Input } from '@angular/core';\nimport { TwoColumnsContextStore } from '../two';\n\n/**\n * Pre-configured Two-columns view that only has a left view and shows full left.\n */\n@Component({\n selector: 'dbx-one-column',\n template: `\n <ng-container>\n <dbx-two-column [inSectionPage]=\"inSectionPage\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content left></ng-content>\n </dbx-two-column>\n </ng-container>\n `,\n exportAs: 'columns',\n providers: [TwoColumnsContextStore]\n})\nexport class DbxOneColumnComponent {\n constructor(@Inject(TwoColumnsContextStore) public readonly twoColumnsContextStore: TwoColumnsContextStore) {\n twoColumnsContextStore.setFullLeft(true);\n }\n\n @Input()\n inSectionPage = true;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from '../two';\nimport { DbxOneColumnComponent } from './one.column.component';\n\n@NgModule({\n imports: [CommonModule, DbxTwoColumnLayoutModule],\n declarations: [DbxOneColumnComponent],\n exports: [DbxOneColumnComponent]\n})\nexport class DbxOneColumnLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxTwoColumnLayoutModule } from './two';\nimport { DbxOneColumnLayoutModule } from './one';\n\n@NgModule({\n exports: [DbxOneColumnLayoutModule, DbxTwoColumnLayoutModule]\n})\nexport class DbxColumnLayoutModule {}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n/**\n * Toolbar-like component that wraps content. Generally sits at the top of a page.\n */\n@Component({\n selector: 'dbx-flag',\n template: `\n <div class=\"dbx-flag\">\n <mat-toolbar [color]=\"color\">\n <ng-content></ng-content>\n </mat-toolbar>\n </div>\n `\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbxFlagComponent {\n @Input()\n color: ThemePalette = 'accent';\n}\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\n\n/**\n * Pre-configured dbx-flag prompt to do something.\n */\n@Component({\n selector: 'dbx-flag-prompt',\n template: `\n <dbx-flag [color]=\"color\">\n <span class=\"dbx-flag-prompt\">{{ text }}</span>\n <span class=\"dbx-flag-spacer\"></span>\n <ng-content></ng-content>\n </dbx-flag>\n `\n // TODO: styleUrls: ['./container.scss']\n})\nexport class DbxFlagPromptComponent {\n @Input()\n color: ThemePalette = 'accent';\n\n @Input()\n text?: string;\n}\n","import { MatToolbarModule } from '@angular/material/toolbar';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxFlagComponent } from './flag.component';\nimport { DbxFlagPromptComponent } from './flag.prompt.component';\n\n/**\n * Module for block components.\n */\n@NgModule({\n imports: [CommonModule, MatToolbarModule],\n declarations: [DbxFlagComponent, DbxFlagPromptComponent],\n exports: [DbxFlagComponent, DbxFlagPromptComponent]\n})\nexport class DbxFlagLayoutModule {}\n","import { ScreenMediaWidthType } from '../../screen/screen';\nimport { DbxScreenMediaService } from '../../screen/screen.service';\nimport { Directive, ChangeDetectorRef, Input, OnInit, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, map, shareReplay, distinctUntilChanged, delay } from 'rxjs';\nimport { AbstractSubscriptionDirective, safeDetectChanges } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Used to declare a dbxFlexGroup.\n */\n@Directive({\n selector: '[dbxFlexGroup]',\n host: {\n '[class.dbx-flex-group]': 'content',\n '[class.dbx-flex-group-small]': 'small',\n '[class.dbx-flex-group-relative]': 'relative'\n }\n})\nexport class DbxFlexGroupDirective extends AbstractSubscriptionDirective implements OnInit, OnDestroy {\n @Input()\n content = true;\n\n @Input()\n relative = false;\n\n private _small = false;\n\n private _breakpoint = new BehaviorSubject<ScreenMediaWidthType>('tablet');\n readonly isSmallScreen$ = this._dbxScreenMediaService.isBreakpointActive(this._breakpoint).pipe(\n map((x) => !x),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n get small(): boolean {\n return this._small;\n }\n\n constructor(private readonly _dbxScreenMediaService: DbxScreenMediaService, readonly cdRef: ChangeDetectorRef) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.isSmallScreen$.pipe(delay(0)).subscribe((small) => {\n this._small = small;\n safeDetectChanges(this.cdRef);\n });\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._breakpoint.complete();\n }\n\n @Input()\n set breakpoint(breakpoint: Maybe<ScreenMediaWidthType>) {\n this._breakpoint.next(breakpoint ?? 'tablet');\n }\n}\n","import { Input, Directive } from '@angular/core';\nimport { DbxFlexSize } from './flex';\n\n/**\n * Applies the proper dbx-flex size class based on the input.\n */\n@Directive({\n selector: '[dbxFlexSize]',\n host: {\n '[class]': '\"dbx-flex-\" + size'\n }\n})\nexport class DbxFlexSizeDirective {\n @Input('dbxFlexSize')\n size: DbxFlexSize = 1;\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxFlexGroupDirective } from './flex.group.directive';\nimport { DbxFlexSizeDirective } from './flex.size.directive';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [DbxFlexGroupDirective, DbxFlexSizeDirective],\n exports: [DbxFlexGroupDirective, DbxFlexSizeDirective]\n})\nexport class DbxFlexLayoutModule {}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Section piece that puts an icon on the left, and arbitrary content on the right with a header.\n */\n@Component({\n selector: 'dbx-icon-item',\n template: `\n <div class=\"dbx-icon-item\">\n <div class=\"left\" *ngIf=\"icon\">\n <mat-icon>{{ icon }}</mat-icon>\n </div>\n <div class=\"right\">\n <h3 *ngIf=\"header\" class=\"dbx-icon-item-header\">{{ header }}</h3>\n <div class=\"right-content\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n `\n})\nexport class DbxIconItemComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxIconItemComponent } from './item.icon.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxIconItemComponent],\n exports: [DbxIconItemComponent]\n})\nexport class DbxItemLayoutModule {}\n","import { Component } from '@angular/core';\n\n/**\n * Component that is centered for use within an empty list.\n */\n@Component({\n selector: 'dbx-list-empty-content',\n template: `\n <div class=\"dbx-list-empty-content\">\n <ng-content></ng-content>\n </div>\n `\n})\nexport class DbxListEmptyContentComponent {}\n","import { Directive, Inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\nimport { ReadableError, ReadableErrorWithCode } from '@dereekb/util';\n\n@Directive()\nexport abstract class AbstractDbxErrorWidgetComponent<T extends ReadableError = ReadableError> {\n get code() {\n return this.data.code;\n }\n\n get message() {\n return this.data.message;\n }\n\n constructor(@Inject(DBX_INJECTION_COMPONENT_DATA) readonly data: ReadableErrorWithCode<T>) {}\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-label',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-label'\n }\n})\nexport class DbxLabelComponent {}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Combines a dbx-label and arbitrary content.\n */\n@Component({\n selector: 'dbx-label-block',\n template: `\n <dbx-label class=\"d-block dbx-label-padded\">{{ header }}</dbx-label>\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-label-block'\n }\n})\nexport class DbxLabelBlockComponent {\n @Input()\n header?: Maybe<string>;\n}\n","import { Component } from '@angular/core';\nimport { ServerError, ServerErrorResponseData } from '@dereekb/util';\nimport { AbstractDbxErrorWidgetComponent } from './error.widget.directive';\n\n@Component({\n template: `\n <dbx-label-block header=\"Error Code\">{{ code }}</dbx-label-block>\n <dbx-label-block header=\"Error Data\" *ngIf=\"serverErrorData\">\n <p class=\"dbx-json\">{{ serverErrorData | json }}</p>\n </dbx-label-block>\n `,\n host: {\n class: 'd-block dbx-error-default-error-widget dbx-content-container'\n }\n})\nexport class DbxErrorDefaultErrorWidgetComponent extends AbstractDbxErrorWidgetComponent {\n get serverErrorData(): ServerErrorResponseData | undefined {\n return (this.data as ServerError).data;\n }\n}\n","import { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeValues, mapIterable, StringErrorCode } from '@dereekb/util';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\n\nexport const DEFAULT_ERROR_WIDGET_CODE = 'DEFAULT_ERROR_WIDGET';\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 readonly componentClass: Type<unknown>;\n}\n\n/**\n * Service used to register error widgets.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxErrorWidgetService {\n private _entries = new Map<StringErrorCode, DbxErrorWidgetEntry>();\n\n constructor() {\n this.registerDefaultEntry({ componentClass: DbxErrorDefaultErrorWidgetComponent });\n }\n\n registerDefaultEntry(entry: Omit<DbxErrorWidgetEntry, 'code'>) {\n return this.register({\n ...entry,\n code: DEFAULT_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, entry);\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 getErrorWidgetEntry(code: StringErrorCode): Maybe<DbxErrorWidgetEntry> {\n return this._entries.get(code);\n }\n\n getErrorWidgetEntries(codes: Iterable<StringErrorCode>): DbxErrorWidgetEntry[] {\n return filterMaybeValues(mapIterable(codes ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { Observable, BehaviorSubject, map } from 'rxjs';\nimport { Component, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ReadableError, ReadableErrorWithCode } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxErrorWidgetService } from './error.widget.service';\n\n/**\n * Used to display a corresponding error widget based on the input data.\n */\n@Component({\n selector: 'dbx-error-widget-view',\n template: `\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n `,\n host: {\n class: 'error-dbx-widget-view'\n }\n})\nexport class DbxErrorWidgetViewComponent implements OnDestroy {\n private _errorWithCode = new BehaviorSubject<Maybe<ReadableErrorWithCode>>(undefined);\n\n readonly config$: Observable<Maybe<DbxInjectionComponentConfig>> = this._errorWithCode.pipe(\n map((error: Maybe<ReadableErrorWithCode>) => {\n let config: Maybe<DbxInjectionComponentConfig>;\n\n if (error != null) {\n const entry = this.dbxErrorWidgetService.getErrorWidgetEntry(error.code) ?? this.dbxErrorWidgetService.getDefaultErrorWidgetEntry();\n\n if (entry) {\n config = {\n componentClass: entry.componentClass,\n data: error\n };\n }\n }\n\n return config;\n })\n );\n\n constructor(readonly dbxErrorWidgetService: DbxErrorWidgetService) {}\n\n ngOnDestroy(): void {\n this._errorWithCode.complete();\n }\n\n @Input()\n set error(error: Maybe<ReadableError>) {\n const config = error && error.code ? (error as ReadableErrorWithCode) : undefined;\n this._errorWithCode.next(config);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe, ReadableError } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-error-details',\n template: `\n <dbx-error-widget-view [error]=\"error\"></dbx-error-widget-view>\n `,\n host: {\n class: 'dbx-block dbx-error-details'\n }\n})\nexport class DbxErrorDetailsComponent {\n @Input()\n error?: Maybe<ReadableError>;\n}\n","import { Component, ElementRef } from '@angular/core';\nimport { ReadableError } from '@dereekb/util';\nimport { AbstractPopoverDirective } from '../interaction/popover/abstract.popover.directive';\nimport { DbxPopoverKey } from '../interaction/popover/popover';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\n\nexport const DEFAULT_ERROR_POPOVER_KEY = 'error';\n\nexport interface DbxErrorPopoverConfig {\n origin: ElementRef;\n error: ReadableError;\n}\n\n@Component({\n template: `\n <dbx-popover-content class=\"dbx-error-popover\">\n <dbx-popover-header [header]=\"code\" icon=\"error\"></dbx-popover-header>\n <dbx-popover-scroll-content>\n <dbx-error-details [error]=\"error\"></dbx-error-details>\n </dbx-popover-scroll-content>\n </dbx-popover-content>\n `\n})\nexport class DbxErrorPopoverComponent extends AbstractPopoverDirective<void, ReadableError> {\n get error() {\n return this.popover.data as ReadableError;\n }\n\n get code() {\n return this.error.code;\n }\n\n static openPopover(popoverService: DbxPopoverService, { origin, error }: DbxErrorPopoverConfig, popoverKey?: DbxPopoverKey) {\n return popoverService.open({\n key: popoverKey ?? DEFAULT_ERROR_POPOVER_KEY,\n origin,\n isResizable: true,\n componentClass: DbxErrorPopoverComponent,\n data: error\n });\n }\n}\n","import { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { Maybe, ErrorInput, toReadableError, ReadableError, ReadableErrorWithCode, isDefaultReadableError } from '@dereekb/util';\nimport { DbxPopoverService } from '../interaction/popover/popover.service';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\n\n/**\n * Basic error component.\n */\n@Component({\n selector: 'dbx-error',\n templateUrl: './error.component.html'\n})\nexport class DbxReadableErrorComponent {\n @ViewChild('buttonPopoverOrigin', { read: ElementRef })\n buttonPopoverOrigin!: ElementRef;\n\n private _error?: Maybe<ReadableErrorWithCode>;\n\n constructor(readonly popoverService: DbxPopoverService) {}\n\n get error(): Maybe<ReadableError> {\n return this._error;\n }\n\n @Input()\n set error(error: Maybe<ErrorInput>) {\n this._error = toReadableError(error);\n }\n\n get isDefaultError() {\n return isDefaultReadableError(this._error);\n }\n\n get message(): Maybe<string> {\n return this._error?.message || 'An error occured.';\n }\n\n openErrorPopover() {\n if (this.error != null) {\n DbxErrorPopoverComponent.openPopover(this.popoverService, {\n origin: this.buttonPopoverOrigin,\n error: this.error\n });\n }\n }\n}\n","<div *ngIf=\"error\" class=\"dbx-error dbx-warn\">\n <button [disabled]=\"isDefaultError\" #buttonPopoverOrigin mat-icon-button class=\"dbx-error-button\" (click)=\"openErrorPopover()\"><mat-icon>error</mat-icon></button>\n <span class=\"dbx-error-message\" *ngIf=\"message\">{{ message }}</span>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\nimport { Maybe } from '@dereekb/util';\n\nexport const DEFAULT_LOADING_PROGRESS_DIAMETER = 96;\n\n/**\n * Basic loading progress component.\n */\n@Component({\n selector: 'dbx-loading-progress',\n template: `\n <div class=\"loading-progress-view\">\n <ng-container [ngSwitch]=\"linear\">\n <mat-progress-bar *ngSwitchCase=\"true\" [mode]=\"bmode\" [color]=\"color\" [bufferValue]=\"bufferValue\" [value]=\"value\" style=\"margin: auto;\"></mat-progress-bar>\n <mat-progress-spinner *ngSwitchDefault [diameter]=\"diameter || 96\" [mode]=\"smode\" [color]=\"color\" [value]=\"value\" style=\"margin: auto;\"></mat-progress-spinner>\n </ng-container>\n <div *ngIf=\"text\" class=\"hint\">{{ text }}</div>\n </div>\n `\n})\nexport class DbxLoadingProgressComponent {\n private _diameter: number = DEFAULT_LOADING_PROGRESS_DIAMETER;\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n @Input()\n mode: ProgressBarMode | ProgressSpinnerMode = 'indeterminate';\n\n @Input()\n color: ThemePalette = 'primary';\n\n @Input()\n value?: number;\n\n @Input()\n bufferValue: number = undefined as unknown as number; // mat-progress-bar typing prevents using undefined as a type\n\n @Input()\n get diameter(): number {\n return this._diameter;\n }\n\n set diameter(diameter: Maybe<number>) {\n this._diameter = diameter ?? DEFAULT_LOADING_PROGRESS_DIAMETER;\n }\n\n get bmode(): ProgressBarMode {\n return this.mode;\n }\n\n get smode(): ProgressSpinnerMode {\n return this.mode as ProgressSpinnerMode;\n }\n}\n","import { startWith, distinctUntilChanged, shareReplay, combineLatest, map, BehaviorSubject } from 'rxjs';\nimport { OnDestroy, Component, Input, ViewChild, ElementRef } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { ErrorInput, Maybe } from '@dereekb/util';\nimport { checkNgContentWrapperHasContent } from '@dereekb/dbx-core';\nimport { ProgressSpinnerMode } from '@angular/material/progress-spinner';\n\n/**\n * DbxBasicLoadingComponent loading state.\n */\nexport enum LoadingComponentState {\n NONE = -1,\n LOADING = 0,\n CONTENT = 1,\n ERROR = 2\n}\n\n/**\n * Basic loading component.\n */\n@Component({\n selector: 'dbx-basic-loading',\n templateUrl: './basic-loading.component.html'\n})\nexport class DbxBasicLoadingComponent implements OnDestroy {\n private _loading = new BehaviorSubject<Maybe<boolean>>(undefined);\n private _show = new BehaviorSubject<boolean>(true);\n private _error = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n private _customErrorContent = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n private _customLoadingContent = new BehaviorSubject<Maybe<ElementRef>>(undefined);\n\n readonly state$ = combineLatest([this._loading, this._show, this._error]).pipe(\n map(([loading, show, error]) => {\n let state: LoadingComponentState;\n\n if (error) {\n state = LoadingComponentState.ERROR;\n } else if (loading == null) {\n // If loading has not yet been defined and no error has occured, we're waiting for some input on loading or error.\n state = LoadingComponentState.NONE;\n } else if (loading || !show) {\n state = LoadingComponentState.LOADING;\n } else {\n state = LoadingComponentState.CONTENT;\n }\n\n return state;\n }),\n distinctUntilChanged(),\n startWith(LoadingComponentState.NONE),\n shareReplay(1)\n );\n\n readonly error$ = this._error.asObservable();\n\n readonly hasNoCustomError$ = this._customErrorContent.pipe(map((x) => !checkNgContentWrapperHasContent(x)));\n readonly hasNoCustomLoading$ = this._customLoadingContent.pipe(map((x) => !checkNgContentWrapperHasContent(x)));\n\n @Input()\n diameter?: Maybe<number>;\n\n @Input()\n mode: ProgressBarMode | ProgressSpinnerMode = 'indeterminate';\n\n @Input()\n color: ThemePalette = 'primary';\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n linear: Maybe<boolean> = false;\n\n ngOnDestroy() {\n this._error.complete();\n this._loading.complete();\n this._show.complete();\n this._customErrorContent.complete();\n this._customLoadingContent.complete();\n }\n\n @Input()\n get show(): boolean {\n return this._show.value;\n }\n\n set show(show: Maybe<boolean>) {\n this._show.next(show ?? true);\n }\n\n @Input()\n get loading(): Maybe<boolean> {\n return this._loading.value;\n }\n\n set loading(loading: Maybe<boolean>) {\n this._loading.next(loading);\n }\n\n @Input()\n get error(): Maybe<ErrorInput> {\n return this._error.value;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._error.next(error);\n }\n\n @ViewChild('customError')\n set customErrorContent(customErrorContent: Maybe<ElementRef>) {\n setTimeout(() => {\n this._customErrorContent.next(customErrorContent);\n }, 0);\n }\n\n @ViewChild('customLoading')\n set customLoadingContent(customLoadingContent: Maybe<ElementRef>) {\n setTimeout(() => {\n this._customLoadingContent.next(customLoadingContent);\n }, 0);\n }\n}\n","<ng-container [ngSwitch]=\"state$ | async\">\n <ng-container *ngSwitchCase=\"0\">\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"1\">\n <!-- Content -->\n <ng-content></ng-content>\n </ng-container>\n <ng-container *ngSwitchCase=\"2\">\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n </ng-container>\n</ng-container>\n\n<ng-template #loadingTemplate>\n <dbx-loading-progress *ngIf=\"hasNoCustomLoading$ | async\" [mode]=\"mode\" [color]=\"color\" [text]=\"text\" [linear]=\"linear\" [diameter]=\"diameter\"></dbx-loading-progress>\n <div #customLoading>\n <ng-content select=\"[loading]\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #errorTemplate>\n <dbx-error *ngIf=\"hasNoCustomError$ | async\" [error]=\"error$ | async\"></dbx-error>\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-content select=\"[errorAction]\"></ng-content>\n</ng-template>\n","import { BehaviorSubject, shareReplay, Observable, distinctUntilChanged, map, switchMap, combineLatest, of } from 'rxjs';\nimport { OnDestroy, Component, Input } from '@angular/core';\nimport { ThemePalette } from '@angular/material/core';\nimport { ProgressBarMode } from '@angular/material/progress-bar';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { ErrorInput, Maybe } from '@dereekb/util';\n\nexport interface DbxLoadingComponentState {\n loading: boolean;\n error: Maybe<ErrorInput>;\n}\n\n/**\n * Loading View component that provides content sections for loading, error, and an error action.\n */\n@Component({\n selector: 'dbx-loading',\n template: `\n <dbx-basic-loading [show]=\"show\" [color]=\"color\" [text]=\"text\" [mode]=\"mode\" [linear]=\"linear\" [diameter]=\"diameter\" [error]=\"error$ | async\" [loading]=\"loading$ | async\">\n <ng-content loading select=\"[loading]\"></ng-content>\n <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})\nexport class DbxLoadingComponent implements OnDestroy {\n private _context = new BehaviorSubject<Maybe<LoadingContext>>(undefined);\n\n private _inputLoading = new BehaviorSubject<Maybe<boolean>>(true);\n private _inputError = new BehaviorSubject<Maybe<ErrorInput>>(undefined);\n\n readonly state$: Observable<DbxLoadingComponentState> = combineLatest([this._inputLoading, this._inputError, this._context.pipe(switchMap((x) => (x != null ? x.stream$ : of(undefined))))]).pipe(\n map(([inputLoading, inputError, loadingState]) => {\n if (loadingState) {\n return loadingState as DbxLoadingComponentState;\n } else {\n return {\n loading: inputLoading ?? false,\n error: inputError\n };\n }\n }),\n distinctUntilChanged((a, b) => a.loading === b.loading && a.error === b.error),\n shareReplay(1)\n );\n\n readonly loading$ = this.state$.pipe(\n map((x) => x.loading),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly error$ = this.state$.pipe(\n map((x) => x.error),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n @Input()\n show?: Maybe<boolean>;\n\n @Input()\n text?: Maybe<string>;\n\n @Input()\n mode: ProgressBarMode = 'indeterminate';\n\n @Input()\n color: ThemePalette = 'primary';\n\n @Input()\n diameter?: Maybe<number>;\n\n @Input()\n linear?: Maybe<boolean>;\n\n ngOnDestroy() {\n this._context.complete();\n this._inputError.complete();\n this._inputLoading.complete();\n }\n\n @Input()\n get context(): Maybe<LoadingContext> {\n return this._context.value;\n }\n\n set context(context: Maybe<LoadingContext>) {\n this._context.next(context);\n }\n\n @Input()\n get loading(): Maybe<boolean> {\n return this._inputLoading.value;\n }\n\n set loading(loading: Maybe<boolean>) {\n this._inputLoading.next(loading ?? false);\n }\n\n @Input()\n get error(): Maybe<ErrorInput> {\n return this._inputError.value;\n }\n\n set error(error: Maybe<ErrorInput>) {\n this._inputError.next(error);\n }\n}\n","import { catchError, filter, exhaustMap, merge, map, Subject, switchMap, shareReplay, distinctUntilChanged, of, Observable, BehaviorSubject, first } from 'rxjs';\nimport { Component, Input, EventEmitter, Output, OnDestroy, ElementRef, HostListener, ChangeDetectorRef, Directive } from '@angular/core';\nimport { DbxInjectionComponentConfig, tapDetectChanges } from '@dereekb/dbx-core';\nimport { SubscriptionObject, ListLoadingStateContextInstance, ListLoadingState, filterMaybe, loadingStateHasFinishedLoading, startWithBeginLoading } from '@dereekb/rxjs';\nimport { Maybe, Milliseconds } from '@dereekb/util';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\n\n/**\n * Direction the scroll was triggered moving.\n */\nexport type DbxListScrollDirectionTrigger = 'up' | 'down';\n\n/**\n * Used to trigger the loading of additional items.\n *\n * If an observable is returned it is used to throttle the loading of more items until it returns.\n */\nexport type DbxListLoadMoreHandler = () => Observable<void> | void;\n\n/**\n * DbxListComponent configuration.\n */\nexport interface DbxListConfig<T = unknown, V extends DbxListView<T> = DbxListView<T>> extends DbxInjectionComponentConfig<V> {\n /**\n * Whether or not to hide the list content when it is an empty list.\n */\n hideOnEmpty?: boolean;\n\n /**\n * Whether or not this list should scroll upward from the bottom, like a message list.\n */\n invertedList?: boolean;\n\n /**\n * Distance to scroll.\n */\n scrollDistance?: number;\n\n /**\n * Number of ms to throttle scrolling events.\n */\n throttle?: Milliseconds;\n\n /**\n * (Optional) onClick handler\n */\n onClick?: (value: T) => void;\n\n /**\n * (Optional) onSelection handler\n */\n onSelectionChange?: (selection: ListSelectionState<T>) => void;\n\n /**\n * (Optional) handler function to load more items.\n */\n loadMore?: DbxListLoadMoreHandler;\n\n /**\n * Default selection list value. If not defined, will default to 'view'.\n */\n defaultSelectionMode?: Maybe<DbxListSelectionMode>;\n}\n\n/**\n * Used to display a potentially infinitely scrollable list of content.\n *\n * This component is generally wrapped by another component that provides this one configuration.\n */\n@Component({\n selector: 'dbx-list',\n templateUrl: './list.component.html',\n host: {\n class: 'd-block dbx-list',\n '[class.dbx-list-padded]': 'padded'\n }\n})\nexport class DbxListComponent<T = unknown, V extends DbxListView<T> = DbxListView<T>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnDestroy {\n readonly DEFAULT_SCROLL_DISTANCE = 1.5;\n readonly DEFAULT_THROTTLE_SCROLL = 50;\n\n /**\n * Whether or not to add bottom padding to the list content.\n */\n @Input()\n padded = true;\n\n @Output()\n contentScrolled = new EventEmitter<number>();\n\n private _content: Maybe<DbxListInternalContentDirective>;\n private _disabled = new BehaviorSubject<boolean>(false);\n private _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n\n private _loadMoreTrigger = new Subject<void>();\n private _scrollTrigger = new Subject<DbxListScrollDirectionTrigger>();\n private _config = new BehaviorSubject<Maybe<DbxListConfig<T, V>>>(undefined);\n\n private _loadMoreSub = new SubscriptionObject();\n private _onClickSub = new SubscriptionObject();\n private _disabledSub = new SubscriptionObject();\n private _selectionModeSub = new SubscriptionObject();\n private _onSelectionChangeSub = new SubscriptionObject();\n\n readonly context = new ListLoadingStateContextInstance<T, S>({ showLoadingOnNoValue: false });\n readonly isEmpty$ = this.context.isEmpty$;\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n readonly hideOnEmpty$: Observable<boolean> = this._config.pipe(\n filterMaybe(),\n map((x) => Boolean(x.hideOnEmpty)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly invertedList$: Observable<boolean> = this._config.pipe(\n filterMaybe(),\n map((x) => Boolean(x?.throttle)),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly throttleScroll$: Observable<number> = this._config.pipe(\n map((x) => x?.throttle ?? this.DEFAULT_THROTTLE_SCROLL),\n distinctUntilChanged(),\n shareReplay(1)\n );\n readonly scrollDistance$: Observable<number> = this._config.pipe(\n map((x) => x?.scrollDistance ?? this.DEFAULT_SCROLL_DISTANCE),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly scrollLoadMoreTrigger$ = this._config.pipe(\n switchMap((config) => {\n const loadNextDirection = config?.invertedList ? 'up' : 'down';\n return this._scrollTrigger.pipe(filter((x) => x === loadNextDirection));\n })\n );\n\n readonly loadMore$ = merge(this.scrollLoadMoreTrigger$, this._loadMoreTrigger);\n\n readonly injectedComponentConfig$: Observable<Maybe<DbxInjectionComponentConfig<V>>> = this._config.pipe(\n distinctUntilChanged(),\n map((config) => {\n let injectedComponentConfig: Maybe<DbxInjectionComponentConfig<V>>;\n\n if (config) {\n const { componentClass, init, onClick, onSelectionChange, loadMore, defaultSelectionMode = 'view' } = config;\n\n injectedComponentConfig = {\n componentClass: config.componentClass,\n injector: config.injector,\n init: (instance: V) => {\n // Synchronize disabled\n this._disabledSub.subscription = this.disabled$.subscribe((disabled) => instance.setDisabled(disabled));\n this._selectionModeSub.subscription = this.selectionMode$.subscribe((selectionMode) => instance.setSelectionMode(selectionMode ?? defaultSelectionMode));\n\n if (init) {\n init(instance);\n }\n\n instance.setListContext(this.context);\n\n if (loadMore) {\n this._loadMoreSub.subscription = this.loadMore$\n .pipe(\n // Throttle additional loading calls using exhaustMap until observable returns, if one is returned.\n exhaustMap(() => {\n const result = loadMore();\n let obs: Observable<void>;\n\n if (result) {\n obs = result.pipe(catchError(() => of()));\n } else {\n obs = of();\n }\n\n return obs;\n })\n )\n .subscribe();\n }\n\n if (onClick) {\n if (instance.clickValue) {\n this._onClickSub.subscription = instance.clickValue.subscribe(onClick);\n } else {\n console.error(`onClick() was passed to listConfig, but target class ${componentClass} has no clicked event emitter.`);\n }\n }\n\n if (onSelectionChange) {\n if (instance.selectionChange) {\n this._onSelectionChangeSub.subscription = instance.selectionChange.subscribe(onSelectionChange);\n } else {\n console.error(`onSelectionChange() was passed to listConfig, but target class ${componentClass} has no selectionChange event emitter.`);\n }\n }\n }\n };\n }\n\n return injectedComponentConfig;\n }),\n distinctUntilChanged(),\n shareReplay(1)\n );\n\n readonly hideContent$: Observable<boolean> = this.context.stateChange$.pipe(\n switchMap(() =>\n this.context.state$.pipe(\n filter((x) => loadingStateHasFinishedLoading(x)),\n first(),\n startWithBeginLoading()\n )\n ),\n switchMap((state) => {\n if (state?.loading) {\n return of(true);\n } else {\n return this.hideOnEmpty$.pipe(\n switchMap((hide) => (hide === false ? of(false) : this.isEmpty$)),\n distinctUntilChanged(),\n tapDetectChanges(this.cdRef),\n shareReplay(1)\n );\n }\n })\n );\n\n constructor(readonly cdRef: ChangeDetectorRef) {}\n\n ngOnDestroy(): void {\n delete this._content; // remove parent-child relation.\n this._scrollTrigger.complete();\n this._loadMoreTrigger.complete();\n this._config.complete();\n this._disabled.complete();\n this._selectionMode.complete();\n\n this._onClickSub.destroy();\n this._loadMoreSub.destroy();\n this._onSelectionChangeSub.destroy();\n this._disabledSub.destroy();\n\n this.context.destroy();\n }\n\n @Input()\n get state$(): Observable<S> {\n return this.context.state$;\n }\n\n set state$(state$: Maybe<Observable<S>>) {\n this.context.setStateObs(state$);\n }\n\n @Input()\n set config(config: Maybe<DbxListConfig<T, V>>) {\n this._config.next(config);\n }\n\n @Input()\n get disabled(): boolean {\n return this._disabled.value;\n }\n\n set disabled(disabled: Maybe<boolean>) {\n this._disabled.next(disabled ?? false);\n }\n\n @Input()\n get selectionMode(): Maybe<DbxListSelectionMode> {\n return this._selectionMode.value;\n }\n\n set selectionMode(selectionMode: Maybe<DbxListSelectionMode>) {\n this._selectionMode.next(selectionMode);\n }\n\n getScrollPositionRelativeToBottom(): number {\n try {\n const element = this.nativeElement;\n\n // At max scroll, scrollHeight = scrollTop + clientHeight;\n const { scrollTop, scrollHeight, clientHeight } = element;\n return scrollHeight - (scrollTop + clientHeight);\n } catch (e) {\n return 0;\n }\n }\n\n jumpToBottom(): void {\n try {\n this.nativeElement.scrollTop = this.nativeElement.scrollHeight;\n } catch (err) {\n // do nothing.\n }\n }\n\n jumpToPositionRelativeToBottom(pos: number): void {\n try {\n const element = this.nativeElement;\n const { scrollHeight, clientHeight } = element;\n element.scrollTop = scrollHeight - (clientHeight + pos);\n } catch (err) {\n // do nothing.\n }\n }\n\n onScrollDown(): void {\n this._scrollTrigger.next('down');\n }\n\n onScrollUp(): void {\n this._scrollTrigger.next('up');\n }\n\n loadMore(): void {\n this._loadMoreTrigger.next();\n }\n\n // MARK: Internal\n get nativeElement() {\n return this.__content.elementRef.nativeElement;\n }\n\n get __content(): DbxListInternalContentDirective {\n return this._content as DbxListInternalContentDirective;\n }\n\n set __content(content: DbxListInternalContentDirective) {\n if (this._content == null) {\n this._content = content;\n } else {\n throw new Error('Attempted to set __content in list outside of initialization.');\n }\n }\n}\n\n/**\n * Used internally by DbxListComponent\n */\n@Directive({\n selector: '[dbxListInternalContent]',\n host: {\n class: 'd-block dbx-list-content',\n '[class.dbx-list-content-hidden]': 'hide'\n }\n})\nexport class DbxListInternalContentDirective {\n @Input()\n hide: Maybe<boolean> = false;\n\n constructor(private readonly parent: DbxListComponent, readonly elementRef: ElementRef) {\n this.parent.__content = this;\n }\n\n @HostListener('scroll', ['$event'])\n onScrollEvent($event: Event): void {\n const position = ($event.target as Element).scrollTop;\n this.parent.contentScrolled.emit(position);\n }\n}\n","<dbx-loading [context]=\"context\" [linear]=\"true\"></dbx-loading>\n<div dbxListInternalContent infinite-scroll [infiniteScrollDistance]=\"(scrollDistance$ | async) ?? DEFAULT_SCROLL_DISTANCE\" [infiniteScrollUpDistance]=\"(scrollDistance$ | async) ?? DEFAULT_SCROLL_DISTANCE\" [hide]=\"hideContent$ | async\" [infiniteScrollThrottle]=\"(throttleScroll$ | async) ?? DEFAULT_THROTTLE_SCROLL\" [scrollWindow]=\"false\" (scrolled)=\"onScrollDown()\" (scrolledUp)=\"onScrollUp()\">\n <ng-content select=\"[top]\"></ng-content>\n <dbx-injection [config]=\"injectedComponentConfig$ | async\"></dbx-injection>\n <ng-content select=\"[bottom]\"></ng-content>\n</div>\n<ng-content *ngIf=\"isEmpty$ | async\" select=\"[empty]\"></ng-content>\n","import { ListLoadingState, filterMaybe, ObservableOrValue, valueFromObservableOrValue } from '@dereekb/rxjs';\nimport { Observable, BehaviorSubject, map, shareReplay } from 'rxjs';\nimport { Output, EventEmitter, OnInit, OnDestroy, Directive, Input } from '@angular/core';\nimport { DbxListConfig } from './list.component';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState } from './list.view';\nimport { Maybe } from '@dereekb/util';\nimport { DbxListViewWrapper } from './list.wrapper';\n\nexport const DEFAULT_STATIC_LIST_DIRECTIVE_TEMPLATE = `\n<dbx-list [config]=\"config\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n</dbx-list>\n`;\n\n// MARK: Wrapper\nexport const DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE = `\n<dbx-list [state$]=\"state$\" [config]=\"config$ | async\" [disabled]=\"disabled\" [selectionMode]=\"selectionMode\">\n <ng-content top select=\"[top]\"></ng-content>\n <ng-content bottom select=\"[bottom]\"></ng-content>\n <ng-content empty select=\"[empty]\"></ng-content>\n</dbx-list>\n`;\n\nexport type DbxListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListConfig<T, V>, 'onClick' | 'loadMore'>;\n\n@Directive()\nexport abstract class AbstractDbxListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxListWrapperConfig<T, V> = DbxListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> implements OnInit, OnDestroy, DbxListViewWrapper<T, S> {\n private readonly _init = new BehaviorSubject<Maybe<ObservableOrValue<C>>>(undefined);\n readonly config$ = this._init.pipe(\n filterMaybe(),\n valueFromObservableOrValue(),\n map((x: C) => this._buildListConfig(x)),\n shareReplay(1)\n );\n\n @Input()\n disabled?: Maybe<boolean>;\n\n @Input()\n selectionMode?: Maybe<DbxListSelectionMode>;\n\n @Input()\n state$?: Maybe<Observable<S>>;\n\n @Output()\n clickItem = new EventEmitter<T>();\n\n @Output()\n loadMore = new EventEmitter<void>();\n\n constructor(readonly initConfig: ObservableOrValue<C>) {}\n\n ngOnInit(): void {\n this._init.next(this.initConfig);\n }\n\n ngOnDestroy(): void {\n this._init.complete();\n this.clickItem.complete();\n this.loadMore.complete();\n }\n\n protected _buildListConfig(config: C): DbxListConfig<T, V> {\n return {\n ...config,\n onClick: (x) => this.clickItem.emit(x),\n loadMore: () => this.loadMore.emit()\n };\n }\n}\n\n// MARK: Selection Wrapper\nexport type DbxSelectionListWrapperConfig<T, V extends DbxListView<T> = DbxListView<T>> = Omit<DbxListWrapperConfig<T, V>, 'onSelectionChange'>;\n\n@Directive()\nexport abstract class AbstractDbxSelectionListWrapperDirective<T, V extends DbxListView<T> = DbxListView<T>, C extends DbxSelectionListWrapperConfig<T, V> = DbxSelectionListWrapperConfig<T, V>, S extends ListLoadingState<T> = ListLoadingState<T>> extends AbstractDbxListWrapperDirective<T, V, C, S> implements OnDestroy {\n @Output()\n selectionChange = new EventEmitter<ListSelectionState<T>>();\n\n override ngOnDestroy(): void {\n this.selectionChange.complete();\n }\n\n protected override _buildListConfig(config: C): DbxListConfig<T, V> {\n const result = super._buildListConfig(config);\n result.onSelectionChange = (x) => this.selectionChange.next(x);\n return result;\n }\n}\n","import { Directive, Host, OnInit } from '@angular/core';\nimport { DbxActionContextStoreSourceInstance, AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxReadableErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to an ActionContext.\n */\n@Directive({\n selector: '[dbxActionError]'\n})\nexport class DbxActionErrorDirective extends AbstractSubscriptionDirective implements OnInit {\n constructor(@Host() public readonly error: DbxReadableErrorComponent, public readonly source: DbxActionContextStoreSourceInstance) {\n super();\n }\n\n ngOnInit(): void {\n this.sub = this.source.error$.subscribe((error) => {\n this.error.error = error;\n });\n }\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ReadableError, ServerError, ServerErrorResponse, ServerErrorResponseData, 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: ServerErrorResponseData } = 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, Host, Input } from '@angular/core';\nimport { LoadingContext } from '@dereekb/rxjs';\nimport { AbstractSubscriptionDirective } from '@dereekb/dbx-core';\nimport { DbxReadableErrorComponent } from './error.component';\n\n/**\n * Context used for linking an ReadableErrorComponent to a LoadingContext.\n *\n * The error from the context is given to the app error when available.\n */\n@Directive({\n selector: '[dbxLoadingError]'\n})\nexport class DbxLoadingErrorDirective extends AbstractSubscriptionDirective {\n constructor(@Host() public readonly error: DbxReadableErrorComponent) {\n super();\n }\n\n /**\n * Sets a LoadingContext that is watched for the loading state.\n */\n @Input('dbxLoadingError')\n set context(context: LoadingContext) {\n let subscription;\n\n if (context) {\n subscription = context.stream$.subscribe((x) => {\n this.error.error = x.error;\n });\n }\n\n this.sub = subscription;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe, UnitedStatesAddressWithContact } from '@dereekb/util';\n\n// prettier-ignore\n@Component({\n selector: 'dbx-us-address',\n template: `\n <ng-container *ngIf=\"address\">\n <div *ngIf=\"address.name\" class=\"addr-name\">{{ address.name }}</div>\n <div *ngIf=\"address.phone\" class=\"addr-phone\">{{ address.phone }}</div>\n <div *ngIf=\"address.line1\" class=\"addr-line1\">{{ address.line1 }}</div>\n <div *ngIf=\"address.line2\" class=\"addr-line2\">{{ address.line2 }}</div>\n <div class=\"city-state-zip\">\n <span class=\"addr-city\">{{ address.city }}</span>\n <span *ngIf=\"address.state || address.zip\">, </span>\n <span class=\"addr-state\">{{ address.state }} </span>\n <span class=\"addr-zip\">{{ address.zip }}</span>\n </div>\n </ng-container>\n `,\n host: {\n class: 'dbx-us-address'\n }\n})\nexport class DbxUnitedStatesAddressComponent {\n @Input()\n address: Maybe<Partial<UnitedStatesAddressWithContact>>;\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n@Component({\n selector: 'dbx-detail-block-header',\n template: `\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span *ngIf=\"header\" class=\"dbx-detail-block-header-label\">{{ header }}</span>\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-detail-block-header',\n '[class]': '{ \"dbx-detail-block-header-no-icon\": !icon }'\n }\n})\nexport class DbxDetailBlockHeaderComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Header and details offset with an icon.\n */\n@Component({\n selector: 'dbx-detail-block',\n template: `\n <dbx-detail-block-header [icon]=\"icon\" [header]=\"header\">\n <ng-content select=\"[header]\"></ng-content>\n </dbx-detail-block-header>\n <div class=\"dbx-detail-block-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-detail-block d-block'\n }\n})\nexport class DbxDetailBlockComponent {\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n header?: Maybe<string>;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-form-description',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-form-description'\n }\n})\nexport class DbxFormDescriptionComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-hint',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-hint'\n }\n})\nexport class DbxHintComponent {}\n","import { Directive } from '@angular/core';\n\n/**\n * Icon spacer directive.\n */\n@Directive({\n selector: 'dbx-icon-spacer,[dbxIconSpacer]',\n host: {\n class: 'dbx-icon-spacer d-inline'\n }\n})\nexport class DbxIconSpacerDirective {}\n","import { Component, Input, OnDestroy } from '@angular/core';\nimport { BehaviorSubject, distinctUntilChanged, map, shareReplay } from 'rxjs';\nimport linkifyStr from 'linkify-string';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n/**\n * Used to \"linkify\" the input text.\n */\n@Component({\n selector: 'dbx-linkify',\n template: `\n <span class=\"dbx-linkify\" [innerHTML]=\"linkifiedBody$ | async\"></span>\n `\n})\nexport class DbxLinkifyComponent implements OnDestroy {\n private _text = new BehaviorSubject<string>('');\n\n readonly linkifiedText$ = this._text.pipe(\n distinctUntilChanged(),\n map((x) =>\n linkifyStr(x, {\n defaultProtocol: 'https',\n target: {\n url: '_blank'\n }\n })\n ),\n shareReplay(1)\n );\n\n readonly linkifiedBody$ = this.linkifiedText$.pipe(\n map((x) => {\n return this.sanitizer.bypassSecurityTrustHtml(x);\n }),\n shareReplay(1)\n );\n\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n ngOnDestroy(): void {\n this._text.complete();\n }\n\n @Input()\n get text(): string {\n return this._text.value;\n }\n\n set text(text: string) {\n this._text.next(text);\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-note',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-note'\n }\n})\nexport class DbxNoteComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-notice',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-notice'\n }\n})\nexport class DbxNoticeComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-ok',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-ok'\n }\n})\nexport class DbxOkComponent {}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-success',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-success'\n }\n})\nexport class DbxSuccessComponent {}\n","import { Directive, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n@Directive({\n selector: 'dbx-chip',\n host: {\n class: 'dbx-chip mat-standard-chip',\n '[class]': 'style'\n }\n})\nexport class DbxChipDirective {\n @Input()\n small?: Maybe<boolean>;\n\n @Input()\n block?: Maybe<boolean>;\n\n get style() {\n let style = this.small ? 'dbx-chip-small' : '';\n\n if (this.block) {\n style = style + ' dbx-chip-block';\n }\n\n return style;\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport interface TextChip<T = unknown> {\n text: string;\n tooltip?: string;\n color?: 'primary' | 'accent';\n data?: T;\n}\n\n@Component({\n selector: 'dbx-text-chips',\n template: `\n <mat-chip-list *ngIf=\"chips\" [multiple]=\"false\">\n <mat-chip *ngFor=\"let chip of chips; trackBy: trackChipByText\" selected [color]=\"chip.color\" [matTooltip]=\"chip.tooltip!\" matTooltipPosition=\"above\">\n {{ chip.text }}\n </mat-chip>\n </mat-chip-list>\n `\n})\nexport class DbxTextChipsComponent<T = unknown> {\n @Input()\n chips?: Maybe<TextChip<T>[]>;\n\n trackChipByText(index: number, chip: TextChip<T>) {\n return chip.text;\n }\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-warn',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'dbx-warn'\n }\n})\nexport class DbxWarnComponent {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { DbxUnitedStatesAddressComponent } from './address.component';\nimport { DbxDetailBlockComponent } from './detail.block.component';\nimport { DbxDetailBlockHeaderComponent } from './detail.block.header.component';\nimport { DbxFormDescriptionComponent } from './form.description.component';\nimport { DbxHintComponent } from './hint.component';\nimport { DbxIconSpacerDirective } from './icon.spacer.component';\nimport { DbxLabelBlockComponent } from './label.block.component';\nimport { DbxLabelComponent } from './label.component';\nimport { DbxLinkifyComponent } from './linkify.component';\nimport { DbxNoteComponent } from './note.component';\nimport { DbxNoticeComponent } from './notice.component';\nimport { DbxOkComponent } from './ok.component';\nimport { DbxSuccessComponent } from './success.component';\nimport { DbxChipDirective } from './text.chip.directive';\nimport { DbxTextChipsComponent } from './text.chips.component';\nimport { DbxWarnComponent } from './warn.component';\n\nconst declarations = [DbxUnitedStatesAddressComponent, DbxChipDirective, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxNoteComponent, DbxNoticeComponent, DbxSuccessComponent, DbxWarnComponent, DbxHintComponent, DbxLabelBlockComponent, DbxLabelComponent, DbxLinkifyComponent, DbxOkComponent, DbxTextChipsComponent, DbxIconSpacerDirective, DbxFormDescriptionComponent];\n\n@NgModule({\n imports: [CommonModule, MatChipsModule, MatTooltipModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxTextModule {}\n","import { MatIconModule } from '@angular/material/icon';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DbxReadableErrorComponent } from './error.component';\nimport { DbxLoadingErrorDirective } from './error.loading.directive';\nimport { DbxActionErrorDirective } from './error.action.directive';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxErrorPopoverComponent } from './error.popover.component';\nimport { DbxErrorDetailsComponent } from './error.details.component';\nimport { DbxPopoverInteractionContentModule } from '../interaction/popover/popover.content.module';\nimport { DbxErrorWidgetViewComponent } from './error.widget.component';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxErrorDefaultErrorWidgetComponent } from './default.error.widget.component';\nimport { DbxTextModule } from '../layout/text/text.module';\n\nconst declarations = [\n //\n DbxReadableErrorComponent,\n DbxLoadingErrorDirective,\n DbxActionErrorDirective,\n DbxErrorPopoverComponent,\n DbxErrorDetailsComponent,\n DbxErrorWidgetViewComponent,\n DbxErrorDefaultErrorWidgetComponent\n];\n\n@NgModule({\n imports: [CommonModule, DbxTextModule, DbxInjectionComponentModule, DbxPopoverInteractionContentModule, MatButtonModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxReadableErrorModule {}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { convertToPOJOServerErrorResponse } from './error.api';\nimport { catchError, MonoTypeOperatorFunction, of } from 'rxjs';\nimport { ActionCreator, TypedAction } from '@ngrx/store/src/models';\nimport { ServerError } from '@dereekb/util';\n\nexport interface ServerErrorParams {\n error: ServerError;\n}\n\n/**\n * Converts the error response to ServerErrorParams.\n */\nexport function convertServerErrorParams(httpError: HttpErrorResponse | object): ServerErrorParams {\n const error: ServerError = convertToPOJOServerErrorResponse(httpError);\n return { error };\n}\n\n/**\n * Catches error server params and feeds them to an action that takes ServerErrorParams as a prop.\n */\nexport function catchErrorServerParams<E extends ServerErrorParams, T extends string>(action: ActionCreator<T, (props: E) => E & TypedAction<T>>, mapError: (error: ServerErrorParams) => E = (error) => error as E): MonoTypeOperatorFunction<E & TypedAction<T>> {\n return catchError((error: HttpErrorResponse | object) => {\n const serverErrorParams = convertServerErrorParams(error);\n const mappedError: E = mapError(serverErrorParams);\n const act = action(mappedError);\n return of(act);\n });\n}\n","import { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Directive, Host, OnInit, OnDestroy } from '@angular/core';\nimport { LoadingStateContextInstance } from '@dereekb/rxjs';\nimport { DbxLoadingComponent } from './loading.component';\n\n/**\n * Context used for linking a loadingComponent to an ActionContext by providing a LoadingContext.\n */\n@Directive({\n selector: '[dbxActionLoadingContext]'\n})\nexport class DbxActionLoadingContextDirective implements OnInit, OnDestroy {\n private _context = new LoadingStateContextInstance({ obs: this.source.loadingState$ });\n\n constructor(@Host() readonly loadingComponent: DbxLoadingComponent, readonly source: DbxActionContextStoreSourceInstance) {}\n\n get context() {\n return this._context;\n }\n\n ngOnInit(): void {\n this.loadingComponent.context = this._context;\n }\n\n ngOnDestroy(): void {\n this._context.destroy();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxBasicLoadingComponent } from './basic-loading.component';\nimport { DbxLoadingProgressComponent } from './loading-progress.component';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { DbxLoadingComponent } from './loading.component';\nimport { DbxReadableErrorModule } from '../error';\nimport { DbxActionLoadingContextDirective } from './loading.action.directive';\n\nconst declarations = [DbxLoadingComponent, DbxBasicLoadingComponent, DbxLoadingProgressComponent, DbxActionLoadingContextDirective];\n\n@NgModule({\n imports: [CommonModule, DbxReadableErrorModule, MatProgressSpinnerModule, MatProgressBarModule],\n declarations,\n exports: [...declarations, MatProgressSpinnerModule, MatProgressBarModule]\n})\nexport class DbxLoadingModule {}\n","import { forwardRef, InjectionToken, Provider, StaticProvider, Type } from '@angular/core';\nimport { ClickableAnchor, DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { map, Observable, of } from 'rxjs';\nimport { DecisionFunction, Maybe } from '@dereekb/util';\n\nexport const DBX_VALUE_LIST_VIEW_ITEM = new InjectionToken<unknown>('DbxValueListViewItem');\n\nexport interface DbxValueListItem<T> {\n itemValue: T;\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\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};\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(\n {\n providers: [\n {\n provide: DBX_VALUE_LIST_VIEW_ITEM,\n useValue: listItem\n }\n ] as StaticProvider[]\n },\n listViewConfig\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 { Observable } from 'rxjs';\nimport { ListLoadingState, ListLoadingStateContext } from '@dereekb/rxjs';\nimport { EventEmitter, forwardRef, Provider, TrackByFunction, Type } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport type DbxListSelectionMode = 'select' | 'view';\n\nexport interface ListSelectionStateItem<T> {\n disabled?: boolean;\n selected?: boolean;\n itemValue: T;\n}\n\nexport interface ListSelectionState<T> {\n items: ListSelectionStateItem<T>[];\n}\n\n/**\n * Interface for a view that renders the items of a DbxList.\n */\nexport abstract class DbxListView<T, S extends ListLoadingState<T> = ListLoadingState<T>> {\n /**\n * Current disabled state.\n */\n abstract readonly disabled$: Observable<boolean>;\n /**\n * (Optional) current selection mode.\n */\n abstract readonly selectionMode$?: Observable<Maybe<DbxListSelectionMode>>;\n /**\n * Values of the list view.\n */\n abstract readonly values$: Observable<T[]>;\n /**\n * Track by configuration.\n */\n abstract trackBy?: TrackByFunction<T>;\n /**\n * (Optional) clicked event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract clickValue?: EventEmitter<T>;\n /**\n * (Optional) selection changed event emitter.\n *\n * If available, the DbxList will subscribe to it automatically.\n */\n abstract selectionChange?: EventEmitter<ListSelectionState<T>>;\n /**\n * Sets the models input loading state context for the view to render from.\n */\n abstract setListContext(state: ListLoadingStateContext<T, S>): void;\n /**\n * Sets the disabled state of the list view.\n */\n abstract setDisabled(disabled: boolean): void;\n /**\n * Sets the selection mode of the list view.\n */\n abstract setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void;\n}\n\n// eslint-disable-next-line\nexport function provideDbxListView<V extends DbxListView<any>>(sourceType: Type<V>): Provider[] {\n // use of any here is allowed as typings are not relevant for providers\n return [\n {\n provide: DbxListView,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Maybe, maybeModifierMapToFunction, ModifierFunction } from '@dereekb/util';\nimport { OnDestroy, Input, Directive, Optional } from '@angular/core';\nimport { filterMaybe, mapForEach } from '@dereekb/rxjs';\nimport { BehaviorSubject, distinctUntilChanged, shareReplay, combineLatest, switchMap, map, Observable, of } from 'rxjs';\nimport { DbxListView } from './list.view';\nimport { AbstractDbxValueListViewConfig, DbxValueListItem, DbxValueListItemConfig, DbxValueListView, mapValuesToValuesListItemConfigObs } from './list.view.value';\nimport { DbxValueListItemModifier } from './list.view.value.modifier';\n\n/**\n * Abstract list directive that takes in items and a AbstractDbxValueItemListViewConfig configuration.\n */\n@Directive()\nexport abstract class AbstractDbxValueListViewDirective<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends AbstractDbxValueListViewConfig<T, I, V> = AbstractDbxValueListViewConfig<T, I, V>> implements DbxValueListView<T, I>, OnDestroy {\n private _config = new BehaviorSubject<Maybe<C>>(undefined);\n readonly config$ = this._config.pipe(filterMaybe(), distinctUntilChanged());\n\n readonly modifyFn$: Observable<Maybe<ModifierFunction<I>>> = this.dbxValueListViewModifier ? this.dbxValueListViewModifier.modifiers$.pipe(map(maybeModifierMapToFunction)) : of(undefined);\n\n readonly items$: Observable<DbxValueListItemConfig<T, I>[]> = combineLatest([this.config$, this.dbxListView.values$, this.modifyFn$]).pipe(\n switchMap(([listViewConfig, values, modifyFn]) => mapValuesToValuesListItemConfigObs<T, I, V>(listViewConfig, values).pipe(mapForEach(modifyFn)) as Observable<DbxValueListItemConfig<T, I>[]>),\n shareReplay(1)\n );\n\n constructor(readonly dbxListView: DbxListView<T>, @Optional() readonly dbxValueListViewModifier: DbxValueListItemModifier<T, I>) {}\n\n ngOnDestroy(): void {\n this._config.complete();\n }\n\n @Input()\n set config(config: Maybe<C>) {\n this._config.next(config);\n }\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.next(value);\n }\n}\n","import { Component, Input, TrackByFunction } from '@angular/core';\nimport { shareReplay, map } from 'rxjs';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig, DbxValueListItemConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { AnchorType, anchorTypeForAnchor } from '@dereekb/dbx-core';\nimport { DbxListView } from './list.view';\nimport { Maybe } from '@dereekb/util';\n\nexport interface DbxValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n emitAllClicks?: boolean;\n}\n\n/**\n * Renders a list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-view',\n template: `\n <dbx-list-view-content [items]=\"items$ | async\" [emitAllClicks]=\"emitAllClicks$ | async\"></dbx-list-view-content>\n `\n})\nexport class DbxValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListViewConfig<T, I, V> = DbxValueListViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {\n readonly emitAllClicks$ = this.config$.pipe(\n map((x) => x.emitAllClicks),\n shareReplay(1)\n );\n}\n\n/**\n * Content view for a DbxValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-view-content',\n template: `\n <mat-nav-list [disabled]=\"disabled$ | async\">\n <dbx-anchor *ngFor=\"let item of items; trackBy: trackByFunction\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\">\n <a mat-list-item class=\"dbx-list-view-item\" [disabled]=\"item.disabled\" [disableRipple]=\"rippleDisabledOnItem(item)\" (click)=\"onClickItem(item)\">\n <mat-icon matListIcon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n </a>\n </dbx-anchor>\n </mat-nav-list>\n `,\n host: {\n class: 'dbx-list-view'\n }\n})\nexport class DbxValueListItemViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n @Input()\n emitAllClicks?: Maybe<boolean>;\n\n @Input()\n items?: Maybe<DbxValueListItemConfig<T, I>[]>;\n\n readonly disabled$ = this.dbxListView.disabled$;\n\n readonly trackByFunction: TrackByFunction<DbxValueListItemConfig<T, I>>;\n\n constructor(readonly dbxListView: DbxListView<T>) {\n const trackBy = dbxListView.trackBy;\n this.trackByFunction = trackBy ? (index: number, item: DbxValueListItemConfig<T, I>) => trackBy(index, item.itemValue) : () => undefined;\n }\n\n onClickItem(item: I) {\n // do not emit clicks for disabled items.\n if (!item.disabled) {\n if (this.emitAllClicks || !item.anchor || anchorTypeForAnchor(item.anchor) === AnchorType.PLAIN) {\n // only emit clicks for items with no anchor, or plain anchors.\n this.onClickValue(item.itemValue);\n }\n }\n }\n\n onClickValue(value: T) {\n this.dbxListView.clickValue?.next(value);\n }\n\n rippleDisabledOnItem(item: I): boolean {\n return item.rippleDisabled || (!this.emitAllClicks && !item.anchor);\n }\n}\n","import { Observable, map, shareReplay, distinctUntilChanged, of } from 'rxjs';\nimport { Component, EventEmitter, Input } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { DbxListSelectionMode, DbxListView, ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { DbxValueListItem, AbstractDbxValueListViewConfig } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { Maybe } from '@dereekb/util';\nimport { DbxValueListItemViewComponent } from './list.view.value.component';\n\nexport interface DbxSelectionValueListViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewConfig<T, I, V> {\n multiple?: boolean;\n}\n\n/**\n * Renders a selection list view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-selection-list-view',\n template: `\n <dbx-selection-list-view-content [selectionMode]=\"selectionMode$ | async\" [multiple]=\"multiple$ | async\" [items]=\"items$ | async\"></dbx-selection-list-view-content>\n `\n})\nexport class DbxSelectionValueListViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends AbstractDbxValueListViewDirective<T, I, V, DbxSelectionValueListViewConfig<T, I, V>> {\n readonly selectionMode$: Observable<DbxListSelectionMode> = (this.dbxListView.selectionMode$ ?? of('select' as DbxListSelectionMode)).pipe(\n map((x) => x ?? 'select'),\n distinctUntilChanged()\n );\n readonly multiple$ = this.config$.pipe(\n map((x) => x.multiple ?? true),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n\n/**\n * Content view for a DbxSelectionValueListView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-selection-list-view-content',\n template: `\n <ng-container [ngSwitch]=\"selectionMode\">\n <ng-container *ngSwitchCase=\"'view'\">\n <dbx-list-view-content [items]=\"items\"></dbx-list-view-content>\n </ng-container>\n <ng-container *ngSwitchDefault>\n <mat-selection-list [disabled]=\"disabled$ | async\" [multiple]=\"multiple\" (selectionChange)=\"matSelectionChanged($event)\">\n <mat-list-option class=\"dbx-list-view-item\" *ngFor=\"let item of items; trackBy: trackByFunction\" [selected]=\"item.selected\" [disabled]=\"item.disabled\" [value]=\"item.itemValue\" (click)=\"onClickValue(item.itemValue)\">\n <mat-icon matListIcon *ngIf=\"item.icon\">{{ item.icon }}</mat-icon>\n <dbx-injection [config]=\"item.config\"></dbx-injection>\n </mat-list-option>\n </mat-selection-list>\n </ng-container>\n </ng-container>\n `,\n host: {\n class: 'dbx-list-view dbx-selection-list-view'\n }\n})\nexport class DbxSelectionValueListItemViewComponent<T> extends DbxValueListItemViewComponent<T> {\n @Input()\n multiple?: Maybe<boolean>;\n\n @Input()\n selectionMode: Maybe<DbxListSelectionMode>;\n\n constructor(dbxListView: DbxListView<T>) {\n super(dbxListView);\n\n if (!dbxListView.selectionChange) {\n throw new Error('Parent dbxListView to DbxSelectionValueListViewComponent has no selectionChange emitter.');\n }\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n (this.dbxListView.selectionChange as EventEmitter<ListSelectionState<T>>).next({\n // asserted in constructor\n items\n });\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier, DecisionFunction } from '@dereekb/util';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from './list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\n\nexport const DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY = 'disable_ripple_anchor';\n\nexport const DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.rippleDisabled || !item.anchor || (!item.anchor.ref && !item.anchor.url && !item.anchor.onClick);\n};\n\n@Directive({\n selector: '[dbxListItemDisableRippleModifier]'\n})\nexport class DbxListItemDisableRippleModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _disableRippleForItem = new BehaviorSubject<DbxValueListItemDecisionFunction<T>>(DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._disableRippleForItem.pipe(\n map((disableRippleForItem) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n if (disableRippleForItem(x)) {\n x.rippleDisabled = true;\n }\n }\n };\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._disableRippleForItem.complete();\n }\n\n @Input('dbxListItemDisableRippleModifier')\n set disableRippleForItem(disableRippleForItem: Maybe<DbxValueListItemDecisionFunction<T>>) {\n this._disableRippleForItem.next(disableRippleForItem ?? DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION);\n }\n}\n\n// MARK: Compat\n/**\n * @Deprecated use DbxValueListItemDecisionFunction instead.\n */\nexport type DisableRippleForValueFunction<T> = DecisionFunction<DbxValueListItem<T>>;\n","import { Component, Directive, Input, OnDestroy, Optional } from '@angular/core';\nimport { shareReplay, map, BehaviorSubject, combineLatest, of, Observable } from 'rxjs';\nimport { DbxValueListItem } from './list.view.value';\nimport { AbstractDbxValueListViewDirective } from './list.view.value.directive';\nimport { Maybe, mergeObjects } from '@dereekb/util';\nimport { DbxValueListItemViewComponent, DbxValueListViewConfig } from './list.view.value.component';\nimport { DbxListView } from './list.view';\n\nexport interface DbxValueListGridViewConfig<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown> extends DbxValueListViewConfig<T, I, V> {\n grid?: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>;\n}\n\n/**\n * Renders a grid view using input configuration. Requires a parent DbxListView.\n */\n@Component({\n selector: 'dbx-list-grid-view',\n template: `\n <dbx-list-grid-view-content [grid]=\"grid$ | async\" [items]=\"items$ | async\" [emitAllClicks]=\"emitAllClicks$ | async\"></dbx-list-grid-view-content>\n `\n})\nexport class DbxValueListGridViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>, V = unknown, C extends DbxValueListGridViewConfig<T, I, V> = DbxValueListGridViewConfig<T, I, V>> extends AbstractDbxValueListViewDirective<T, I, V, C> {\n readonly grid$ = this.config$.pipe(map((x) => x.grid));\n readonly emitAllClicks$ = this.config$.pipe(\n map((x) => x.emitAllClicks),\n shareReplay(1)\n );\n}\n\nexport interface DbxValueListGridItemViewGridSizeConfig {\n /**\n * Gap size in %, px, vw, vh\n */\n gap: string;\n /**\n * Columns configuration.\n *\n * Example: repeat(auto-fill, minmax(200px, 1fr))\n */\n columns: string;\n}\n\nexport const DEFAULT_LIST_GRID_SIZE_CONFIG: DbxValueListGridItemViewGridSizeConfig = {\n columns: 'repeat(auto-fill, minmax(320px, 1fr))',\n gap: '8px'\n};\n\n/**\n * Optional parent directive used to control grid size.\n */\n@Directive({\n selector: '[dbxListGridSize]'\n})\nexport class DbxValueListGridSizeDirective implements OnDestroy {\n private _gridSize = new BehaviorSubject<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined);\n\n readonly gridSize$ = this._gridSize.asObservable();\n\n @Input('dbxListGridSize')\n get gridSize(): Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>> {\n return this._gridSize.value;\n }\n\n set gridSize(gridSize: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>) {\n if (gridSize) {\n this._gridSize.next(gridSize);\n }\n }\n\n ngOnDestroy(): void {\n this._gridSize.complete();\n }\n}\n\n/**\n * Content view for a DbxValueListGridView. It can be used directly in cases where the items are already configured, or want to be configured in a non-standard fashion.\n */\n@Component({\n selector: 'dbx-list-grid-view-content',\n template: `\n <div [gdGap]=\"gap$ | async\" [gdColumns]=\"columns$ | async\">\n <dbx-anchor *ngFor=\"let item of items; trackBy: trackByFunction\" matRipple [matRippleDisabled]=\"rippleDisabledOnItem(item)\" class=\"dbx-list-grid-view-item\" [anchor]=\"item.anchor\" [disabled]=\"item.disabled\" (click)=\"onClickItem(item)\">\n <div dbx-injection [config]=\"item.config\"></div>\n </dbx-anchor>\n </div>\n `,\n host: {\n class: 'dbx-list-grid-view'\n }\n})\nexport class DbxValueListGridItemViewComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> extends DbxValueListItemViewComponent<T, I> implements OnDestroy {\n private _defaultGrid = new BehaviorSubject<Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>>(undefined);\n\n readonly grid$: Observable<DbxValueListGridItemViewGridSizeConfig> = combineLatest([this._defaultGrid, this._gridSizeOverride?.gridSize$ ?? of(undefined)]).pipe(\n map(([defaultGrid, overrideGrid]) => {\n const grid = mergeObjects<DbxValueListGridItemViewGridSizeConfig>([DEFAULT_LIST_GRID_SIZE_CONFIG, defaultGrid, overrideGrid]);\n return grid as DbxValueListGridItemViewGridSizeConfig;\n }),\n shareReplay(1)\n );\n\n readonly gap$ = this.grid$.pipe(map((x) => x.gap));\n readonly columns$ = this.grid$.pipe(map((x) => x.columns));\n\n constructor(dbxListView: DbxListView<T>, @Optional() private _gridSizeOverride?: DbxValueListGridSizeDirective) {\n super(dbxListView);\n }\n\n @Input()\n set grid(grid: Maybe<Partial<DbxValueListGridItemViewGridSizeConfig>>) {\n this._defaultGrid.next(grid);\n }\n\n ngOnDestroy(): void {\n this._defaultGrid.complete();\n }\n}\n","import { Directive, Input, OnDestroy } from '@angular/core';\nimport { Maybe, ArrayOrValue, Modifier } from '@dereekb/util';\nimport { BehaviorSubject, Observable, map } from 'rxjs';\nimport { DbxValueListItem, DbxValueListItemDecisionFunction } from './list.view.value';\nimport { AbstractDbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\n\nexport const DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY = 'is_selected_item_modifier';\n\nexport const DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION: DbxValueListItemDecisionFunction<unknown> = <T>(item: DbxValueListItem<T>) => {\n return item.selected ?? false;\n};\n\n@Directive({\n selector: '[dbxListItemIsSelectedModifier]'\n})\nexport class DbxListItemIsSelectedModifierDirective<T> extends AbstractDbxValueListItemModifierDirective<T> implements OnDestroy {\n private _listItemIsSelected = new BehaviorSubject<DbxValueListItemDecisionFunction<T>>(DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION);\n\n readonly modifiers$: Observable<Maybe<ArrayOrValue<Modifier<DbxValueListItem<T>>>>> = this._listItemIsSelected.pipe(\n map((listItemIsSelected) => {\n const modifiers: Modifier<DbxValueListItem<T>> = {\n key: DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY,\n modify: (x: DbxValueListItem<T>) => {\n x.selected = listItemIsSelected(x);\n }\n };\n\n return modifiers;\n })\n );\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this._listItemIsSelected.complete();\n }\n\n @Input('dbxListItemIsSelectedModifier')\n set listItemIsSelected(listItemIsSelected: Maybe<DbxValueListItemDecisionFunction<T>>) {\n this._listItemIsSelected.next(listItemIsSelected ?? DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION);\n }\n}\n","import { MatRippleModule } from '@angular/material/core';\nimport { DbxRouterAnchorModule } from '../../router/layout/anchor/anchor.module';\nimport { DbxLoadingModule } from '../../loading/loading.module';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatListModule } from '@angular/material/list';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxListComponent, DbxListInternalContentDirective } from './list.component';\nimport { DbxListEmptyContentComponent } from './list.content.empty.component';\nimport { InfiniteScrollModule } from 'ngx-infinite-scroll';\nimport { DbxSelectionValueListItemViewComponent, DbxSelectionValueListViewComponent } from './list.view.value.selection.component';\nimport { DbxValueListItemViewComponent, DbxValueListViewComponent } from './list.view.value.component';\nimport { DbxValueListItemModifierDirective } from './list.view.value.modifier.directive';\nimport { DbxListItemDisableRippleModifierDirective } from './list.view.value.modifier.ripple.directive';\nimport { DbxValueListGridItemViewComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent } from './list.grid.view.component';\nimport { FlexLayoutModule } from '@angular/flex-layout';\nimport { DbxListItemIsSelectedModifierDirective } from './list.view.value.modifier.selection.directive';\n\n@NgModule({\n imports: [CommonModule, MatRippleModule, FlexLayoutModule, DbxLoadingModule, DbxRouterAnchorModule, InfiniteScrollModule, DbxInjectionComponentModule, MatListModule, MatIconModule],\n declarations: [\n //\n DbxListComponent,\n DbxListInternalContentDirective,\n DbxListEmptyContentComponent,\n DbxValueListViewComponent,\n DbxValueListItemViewComponent,\n DbxValueListGridSizeDirective,\n DbxValueListGridViewComponent,\n DbxValueListGridItemViewComponent,\n DbxSelectionValueListViewComponent,\n DbxSelectionValueListItemViewComponent,\n DbxValueListItemModifierDirective,\n DbxListItemDisableRippleModifierDirective,\n DbxListItemIsSelectedModifierDirective\n ],\n exports: [\n //\n DbxListComponent,\n DbxListEmptyContentComponent,\n DbxValueListViewComponent,\n DbxValueListItemViewComponent,\n DbxValueListGridSizeDirective,\n DbxValueListGridViewComponent,\n DbxValueListGridItemViewComponent,\n DbxSelectionValueListViewComponent,\n DbxSelectionValueListItemViewComponent,\n DbxValueListItemModifierDirective,\n DbxListItemDisableRippleModifierDirective,\n DbxListItemIsSelectedModifierDirective\n ]\n})\nexport class DbxListLayoutModule {}\n","import { TrackByFunction } from '@angular/core';\nimport { ModelKeyRef, UniqueModel } from '@dereekb/util';\n\nexport const TRACK_BY_MODEL_ID: TrackByFunction<UniqueModel> = (index, model) => model.id;\n\nexport function trackByUniqueIdentifier<T extends UniqueModel>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_ID;\n}\n\nexport const TRACK_BY_MODEL_KEY: TrackByFunction<ModelKeyRef> = (index, model) => model.key;\n\nexport function trackByModelKeyRef<T extends ModelKeyRef>(): TrackByFunction<T> {\n return TRACK_BY_MODEL_KEY;\n}\n","import { ListLoadingStateContext, switchMapMaybeObs } from '@dereekb/rxjs';\nimport { BehaviorSubject, Observable, of, shareReplay } from 'rxjs';\nimport { Directive, EventEmitter, Input, OnDestroy, Output, TrackByFunction } from '@angular/core';\nimport { DbxListSelectionMode, DbxListView } from './list.view';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Abstract DbxListView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListViewDirective<T> implements DbxListView<T>, OnDestroy {\n private readonly _disabled = new BehaviorSubject<boolean>(false);\n private readonly _selectionMode = new BehaviorSubject<Maybe<DbxListSelectionMode>>(undefined);\n private readonly _values$ = new BehaviorSubject<Maybe<Observable<T[]>>>(undefined);\n\n readonly trackBy?: TrackByFunction<T> | undefined;\n\n readonly values$ = this._values$.pipe(switchMapMaybeObs(), shareReplay(1));\n readonly disabled$ = this._disabled.asObservable();\n readonly selectionMode$ = this._selectionMode.asObservable();\n\n @Output()\n clickValue = new EventEmitter<T>();\n\n @Input()\n set valueArray(values: Maybe<T[]>) {\n this.setValues(values ? of(values) : undefined);\n }\n\n @Input()\n set values(values: Maybe<Observable<T[]>>) {\n this.setValues(values);\n }\n\n ngOnDestroy(): void {\n this._disabled.complete();\n this._selectionMode.complete();\n this._values$.complete();\n }\n\n onClickValue(value: T) {\n this.clickValue.emit(value);\n }\n\n setListContext(state: ListLoadingStateContext<T>): void {\n this.setValues(state.list$);\n }\n\n setValues(valuesObs: Maybe<Observable<T[]>>): void {\n this._values$.next(valuesObs);\n }\n\n setDisabled(disabled: boolean): void {\n this._disabled.next(disabled);\n }\n\n setSelectionMode(selectionMode: Maybe<DbxListSelectionMode>): void {\n this._selectionMode.next(selectionMode);\n }\n}\n","import { Directive } from '@angular/core';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\n\nexport const DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE = '<dbx-list-grid-view [config]=\"config\"></dbx-list-grid-view>';\n\n/**\n * Abstract DbxListGridView implementation.\n */\n@Directive()\nexport abstract class AbstractDbxListGridViewDirective<T> extends AbstractDbxListViewDirective<T> {}\n","import { Directive, EventEmitter, Output } from '@angular/core';\nimport { MatSelectionListChange } from '@angular/material/list';\nimport { ListSelectionState, ListSelectionStateItem } from './list.view';\nimport { AbstractDbxListViewDirective } from './list.view.directive';\n\nexport const DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE = '<dbx-selection-list-view [config]=\"config\"></dbx-selection-list-view>';\n\n// MARK: Selection List View\n/**\n * Abstract list view that has a pre-built-in selection change event for an Angular Material MatSelectionListChange.\n */\n@Directive()\nexport abstract class AbstractDbxSelectionListViewDirective<T> extends AbstractDbxListViewDirective<T> {\n @Output()\n selectionChange = new EventEmitter<ListSelectionState<T>>();\n\n selectionChanged(selection: ListSelectionState<T>): void {\n this.selectionChange.emit(selection);\n }\n\n matSelectionChanged(selection: MatSelectionListChange): void {\n const options = selection.source.selectedOptions.selected;\n const items: ListSelectionStateItem<T>[] = options.map((x) => {\n const { value: itemValue, selected, disabled } = x;\n return { itemValue, selected, disabled };\n });\n\n this.selectionChanged({ items });\n }\n}\n","import { Directive, Inject } from '@angular/core';\nimport { DbxValueListItem, DBX_VALUE_LIST_VIEW_ITEM } from './list.view.value';\n\n@Directive()\nexport abstract class AbstractDbxValueListViewItemComponent<T, I extends DbxValueListItem<T> = DbxValueListItem<T>> {\n get itemValue(): T {\n return this.item.itemValue;\n }\n\n constructor(@Inject(DBX_VALUE_LIST_VIEW_ITEM) readonly item: I) {}\n}\n","import { Observable } from 'rxjs';\nimport { ListLoadingState } from '@dereekb/rxjs';\nimport { EventEmitter, forwardRef, Provider, Type } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Common interface for views that may wrap a DbxListView, and pass values through to it.\n */\nexport abstract class DbxListViewWrapper<T = unknown, S extends ListLoadingState<T> = ListLoadingState<T>> {\n state$?: Maybe<Observable<S>>;\n readonly loadMore?: EventEmitter<void>;\n}\n\nexport function provideDbxListViewWrapper<V extends DbxListViewWrapper>(sourceType: Type<V>): Provider[] {\n return [\n {\n provide: DbxListViewWrapper,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxSectionHeaderConfig, DbxSectionHeaderHType } from './section';\n\n/**\n * Component used to style a section's header.\n */\n@Component({\n selector: 'dbx-section-header,.dbx-section-header',\n template: `\n <div class=\"dbx-section-header-content\">\n <ng-container *ngIf=\"showTitle\">\n <ng-container [ngSwitch]=\"h ?? 1\">\n <h1 *ngSwitchCase=\"1\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h1>\n <h2 *ngSwitchCase=\"2\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h2>\n <h3 *ngSwitchCase=\"3\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h3>\n <h4 *ngSwitchCase=\"4\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h4>\n <h5 *ngSwitchCase=\"5\" class=\"dbx-section-header-content-title\">\n <ng-container *ngTemplateOutlet=\"headerContentTitleTemplate\"></ng-container>\n </h5>\n </ng-container>\n <span class=\"spacer\"></span>\n </ng-container>\n <ng-content></ng-content>\n </div>\n <p *ngIf=\"hint && !hintInline\" class=\"dbx-section-hint dbx-hint\">{{ hint }}</p>\n <ng-template #headerContentTitleTemplate>\n <mat-icon *ngIf=\"icon\">{{ icon }}</mat-icon>\n <span class=\"title-text\">\n {{ header }}\n <span *ngIf=\"hint && hintInline\" class=\"dbx-section-hint-inline dbx-hint\">{{ hint }}</span>\n </span>\n </ng-template>\n `,\n host: {\n '[class.dbx-section-header-full-title]': 'onlyHeader',\n '[class.dbx-section-header-padded]': 'paddedHeader'\n }\n})\nexport class DbxSectionHeaderComponent {\n @Input()\n paddedHeader?: Maybe<boolean>;\n\n @Input()\n h?: Maybe<DbxSectionHeaderHType>;\n\n @Input()\n header?: Maybe<string>;\n\n @Input()\n onlyHeader?: Maybe<boolean> = false;\n\n @Input()\n icon?: Maybe<string>;\n\n @Input()\n hint?: Maybe<string>;\n\n @Input()\n hintInline?: Maybe<boolean>;\n\n constructor() {}\n\n @Input()\n set headerConfig(headerConfig: Maybe<DbxSectionHeaderConfig>) {\n if (headerConfig) {\n if (headerConfig.h !== undefined) {\n this.h = headerConfig.h;\n }\n\n if (headerConfig.header !== undefined) {\n this.header = headerConfig.header;\n }\n\n if (headerConfig.onlyHeader !== undefined) {\n this.onlyHeader = headerConfig.onlyHeader;\n }\n\n if (headerConfig.icon !== undefined) {\n this.icon = headerConfig.icon;\n }\n\n if (headerConfig.hint !== undefined) {\n this.hint = headerConfig.hint;\n }\n\n if (headerConfig.hintInline !== undefined) {\n this.hintInline = headerConfig.hintInline;\n }\n }\n }\n\n get showTitle() {\n return Boolean(this.header || this.icon);\n }\n}\n","import { Component, Input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Component used to format content on a page within a section.\n */\n@Component({\n selector: 'dbx-section',\n template: `\n <div class=\"dbx-section-header\" [h]=\"h ?? 3\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-section',\n '[class]': `(elevate) ? 'dbx-section-elevate dbx-content-elevate' : ''`\n }\n})\nexport class DbxSectionComponent extends DbxSectionHeaderComponent {\n @Input()\n elevate = false;\n}\n","import { OnDestroy, Component, Input, EventEmitter, Output } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\n\n/**\n * Component used to format content that displays an intro until a button is pressed.\n */\n@Component({\n selector: 'dbx-intro-action-section',\n template: `\n <div class=\"dbx-intro-action-section\" [ngSwitch]=\"showIntro\">\n <div *ngSwitchCase=\"true\" class=\"dbx-intro-action-section-intro\">\n <p>{{ hint }}</p>\n <div>\n <ng-content select=\"[info]\"></ng-content>\n </div>\n <div>\n <button mat-raised-button color=\"accent\" (click)=\"actionClicked()\">{{ action }}</button>\n </div>\n </div>\n <ng-container *ngSwitchCase=\"false\">\n <ng-content></ng-content>\n </ng-container>\n </div>\n `\n})\nexport class DbxIntroActionSectionComponent extends DbxSectionComponent implements OnDestroy {\n @Output()\n showAction = new EventEmitter<void>();\n\n @Input()\n showIntro?: boolean;\n\n @Input()\n action?: string;\n\n ngOnDestroy() {\n this.showAction.complete();\n }\n\n actionClicked() {\n this.showAction.next();\n }\n}\n","import { Component } from '@angular/core';\nimport { DbxSectionComponent } from './section.component';\n\n/**\n * A subsection.\n */\n@Component({\n selector: 'dbx-subsection',\n template: `\n <div class=\"dbx-subsection\">\n <div class=\"dbx-section-header\" [h]=\"h ?? 4\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"hintInline\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-content\">\n <ng-content></ng-content>\n </div>\n </div>\n `\n})\nexport class DbxSubSectionComponent extends DbxSectionComponent {}\n","import { Component, Input } from '@angular/core';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\n/**\n * Scroll locking modes.\n *\n * Types:\n * - all: The entire header + body is scrollable\n * - body: The header is locked while the body is scrollable\n * - locked: Overflow is locked and hidden\n */\nexport type DbxSectionPageScrollLockedMode = 'all' | 'body' | 'locked';\n\n/**\n * Component used to style a page that is made up of app sections.\n *\n * Should be used on pages that need a section page heading.\n *\n * Can be nested within eachother, retaining the proper fixed height.\n */\n@Component({\n selector: 'dbx-section-page',\n template: `\n <div class=\"dbx-section-header\" [h]=\"h ?? 2\" [header]=\"header\" [onlyHeader]=\"onlyHeader\" [icon]=\"icon\" [hint]=\"hint\" [hintInline]=\"true\">\n <ng-content select=\"[sectionHeader]\"></ng-content>\n </div>\n <div class=\"dbx-section-page-content\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'd-block dbx-content-page dbx-section-page',\n '[class]': '\"dbx-section-page-scroll-\" + scroll'\n }\n})\nexport class DbxSectionPageComponent extends DbxSectionHeaderComponent {\n @Input()\n scroll: DbxSectionPageScrollLockedMode = 'all';\n\n @Input()\n override hintInline = true;\n}\n","import { DbxRouterAnchorModule } from '../../router';\nimport { MatButtonModule } from '@angular/material/button';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { DbxSectionComponent } from './section.component';\nimport { DbxSubSectionComponent } from './subsection.component';\nimport { DbxSectionPageComponent } from './section.page.component';\nimport { DbxIntroActionSectionComponent } from './section.intro.component';\nimport { DbxSectionHeaderComponent } from './section.header.component';\n\nconst declarations = [DbxSectionHeaderComponent, DbxSectionPageComponent, DbxSectionComponent, DbxSubSectionComponent, DbxIntroActionSectionComponent];\n\n/**\n * Module for container-type components.\n */\n@NgModule({\n imports: [CommonModule, DbxRouterAnchorModule, MatButtonModule, MatRippleModule, MatIconModule],\n declarations,\n exports: declarations\n})\nexport class DbxSectionLayoutModule {}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dbx-step',\n templateUrl: './step.component.html'\n // TODO: styleUrls: ['./step.scss']\n})\nexport class DbxStepComponent {\n @Input()\n done?: boolean;\n\n @Input()\n step?: number;\n\n @Input()\n text?: string;\n\n @Input()\n hint?: string;\n}\n","<div class=\"step-section\" [ngClass]=\"done ? 'done' : ''\">\n <div class=\"step-section-header\">\n <span class=\"step\">{{ step }}.</span>\n <mat-icon class=\"done-check\" *ngIf=\"done\">done</mat-icon>\n <span class=\"text\">{{ text }}</span>\n <p *ngIf=\"hint\" class=\"hint\">{{ hint }}</p>\n </div>\n <div class=\"step-section-content\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxStepComponent } from './step.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n declarations: [DbxStepComponent],\n exports: [DbxStepComponent]\n})\nexport class DbxStepLayoutModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxSectionLayoutModule } from './section/section.layout.module';\nimport { DbxListLayoutModule } from './list/list.layout.module';\nimport { DbxItemLayoutModule } from './item/item.layout.module';\nimport { DbxFlagLayoutModule } from './flag/flag.layout.module';\nimport { DbxContentLayoutModule } from './content/content.layout.module';\nimport { DbxColumnLayoutModule } from './column/column.layout.module';\nimport { DbxCardBoxLayoutModule } from './card/card.box.layout.module';\nimport { DbxBlockLayoutModule } from './block/block.layout.module';\nimport { DbxCompactLayoutModule } from './compact/compact.layout.module';\nimport { DbxStepLayoutModule } from './step/step.layout.module';\nimport { DbxBarLayoutModule } from './bar/bar.layout.module';\nimport { DbxTextModule } from './text/text.module';\nimport { DbxStyleLayoutModule } from './style/style.layout.module';\nimport { DbxFlexLayoutModule } from './flex/flex.layout.module';\nimport { DbxDetailBlockComponent } from './text/detail.block.component';\n\n@NgModule({\n exports: [DbxBarLayoutModule, DbxBlockLayoutModule, DbxCardBoxLayoutModule, DbxColumnLayoutModule, DbxCompactLayoutModule, DbxContentLayoutModule, DbxFlagLayoutModule, DbxFlexLayoutModule, DbxItemLayoutModule, DbxListLayoutModule, DbxSectionLayoutModule, DbxStepLayoutModule, DbxStyleLayoutModule, DbxTextModule]\n})\nexport class DbxLayoutModule {}\n","import { GlobalPositionStrategy } from '@angular/cdk/overlay';\n\nexport type PopupPosition = 'center' | 'bottom_left' | 'bottom_right';\n\nexport interface PopupPositionOffset {\n x?: string;\n y?: string;\n}\n\nexport class PopupGlobalPositionStrategy extends GlobalPositionStrategy {\n private _position!: PopupPosition;\n private _offset: PopupPositionOffset = {};\n\n constructor(position: PopupPosition = 'bottom_right', offset?: PopupPositionOffset) {\n super();\n this.setPopupPosition(position, offset);\n }\n\n setPopupOffset(offset?: PopupPositionOffset): void {\n this.setPopupPosition(this._position, offset ?? {});\n }\n\n setPopupPosition(position: PopupPosition, offset?: PopupPositionOffset): void {\n this._resetPositions();\n this._position = position;\n\n if (offset) {\n this._offset = offset;\n }\n\n const offsetX = this._offset.x ?? '0';\n const offsetY = this._offset.y ?? '0';\n\n switch (position) {\n case 'center':\n this.centerHorizontally();\n this.centerVertically();\n break;\n case 'bottom_left':\n this.bottom(offsetY);\n this.left(offsetX);\n break;\n case 'bottom_right':\n this.bottom(offsetY);\n this.right(offsetX);\n break;\n }\n }\n\n private _resetPositions(): void {\n this.top();\n this.bottom();\n this.left();\n this.right();\n }\n}\n","import { Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport type DbxPopupKey = string;\n\nexport enum DbxPopupWindowState {\n NORMAL = 'normal',\n MINIMIZED = 'minimized',\n FULLSCREEN = 'fullscreen'\n}\n\nexport abstract class DbxPopupController<O = unknown, I = unknown> {\n abstract readonly key: DbxPopupKey;\n abstract readonly data?: Maybe<I>;\n abstract readonly windowState$: Observable<DbxPopupWindowState>;\n abstract readonly closing$: Observable<boolean>;\n /**\n * Signals for the popup to close.\n */\n abstract close(): void;\n /**\n * Closes the popup and returns the input value.\n */\n abstract return(value?: O): void;\n abstract minimize(): void;\n abstract normalscreen(): void;\n abstract fullscreen(): void;\n}\n","import { DbxPopupKey, DbxPopupController } from './popup';\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxPopupCoordinatorService implements OnDestroy {\n private _popups = new BehaviorSubject<Map<DbxPopupKey, DbxPopupController>>(new Map());\n\n readonly popups$ = this._popups.asObservable();\n\n ngOnDestroy(): void {\n this._popups.complete();\n }\n\n get popups(): Map<DbxPopupKey, DbxPopupController> {\n return this._popups.value;\n }\n\n public addPopup(popup: DbxPopupController): void {\n const key = popup.key;\n\n if (key) {\n this.removePopup(key);\n this._popups.value.set(key, popup);\n this._popups.next(this.popups);\n }\n }\n\n public removePopup(key: DbxPopupKey, popup?: DbxPopupController): void {\n if (key) {\n const existing = this.popups.get(key);\n\n // Remove if there is one existing, and if popup is provided it is the same popup.\n if (existing && (!popup || popup === existing)) {\n existing.close();\n this._popups.value.delete(key);\n this._popups.next(this.popups);\n }\n }\n }\n}\n","import { DbxPopupController } from './popup';\nimport { Component, OnInit, OnDestroy } from '@angular/core';\nimport { DbxPopupCoordinatorService } from './popup.coordinator.service';\nimport { delay, map, shareReplay } from 'rxjs';\n\n/**\n * Used for coordinating popups and closing/replacing existing ones when a new popup of the same name appears.\n */\n@Component({\n selector: 'dbx-popup-coordinator',\n template: `\n <ng-container *ngIf=\"show$ | async\">\n <ng-content></ng-content>\n </ng-container>\n `\n})\nexport class DbxPopupCoordinatorComponent implements OnInit, OnDestroy {\n readonly isPopupForKey$ = this.service.popups$.pipe(\n map((x) => x.get(this.popup.key) === this.popup),\n shareReplay(1)\n );\n readonly show$ = this.isPopupForKey$.pipe(delay(0));\n\n constructor(private readonly service: DbxPopupCoordinatorService, private readonly popup: DbxPopupController) {}\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, NgZone, Type, OnDestroy } from '@angular/core';\nimport { NgPopoverRef } from 'ng-overlay-container';\nimport { Maybe, PixelsString } from '@dereekb/util';\nimport { CompactMode, CompactContextStore } from '../../layout';\nimport { BehaviorSubject, Subject, filter, first, map, shareReplay, startWith } from 'rxjs';\nimport { PopupGlobalPositionStrategy, PopupPosition, PopupPositionOffset } from './popup.position.strategy';\nimport { AbstractTransitionWatcherDirective, DbxInjectionComponentConfig, DbxRouterTransitionService } from '@dereekb/dbx-core';\nimport { DbxPopupController, DbxPopupKey, DbxPopupWindowState } from './popup';\n\nexport const APP_POPUP_NORMAL_WIDTH = '700px';\nexport const APP_POPUP_MINIMIZED_WIDTH = '300px';\nexport const APP_POPUP_NORMAL_HEIGHT = 'auto';\n\nexport abstract class DbxPopupComponentController<O, I> extends DbxPopupController<O, I> {\n getClosingValueFn?: (value?: I) => Promise<O>;\n}\n\nexport interface DbxPopupComponentConfig<O, I, T> {\n /**\n * Key used for uniquely identifying a limited instance.\n *\n * Only one popup should exist at a time given a certain key.\n */\n key: DbxPopupKey;\n position?: PopupPosition;\n offset?: PopupPositionOffset;\n closeOnTransition?: boolean;\n componentClass: Type<T>;\n data?: I;\n isDraggable?: boolean;\n init?: (component: T, controller: DbxPopupController<O, I>) => void;\n width?: PixelsString;\n height?: PixelsString;\n}\n\n/**\n * Popup component.\n */\n@Component({\n template: `\n <dbx-popup-coordinator>\n <div class=\"dbx-popup-component\" dbx-injection [config]=\"contentConfig\"></div>\n </dbx-popup-coordinator>\n `,\n providers: [\n {\n provide: DbxPopupController,\n useExisting: DbxPopupComponent\n },\n {\n provide: CompactContextStore\n }\n ]\n})\nexport class DbxPopupComponent<O = unknown, I = unknown, T = unknown> extends AbstractTransitionWatcherDirective implements DbxPopupController<O, I>, OnDestroy {\n private _position: PopupGlobalPositionStrategy;\n\n readonly contentConfig: DbxInjectionComponentConfig = {\n componentClass: this.config.componentClass,\n init: this.config.init ? (instance) => (this.config as Required<DbxPopupComponentConfig<O, I, T>>).init(instance as T, this) : undefined\n };\n\n private readonly closing = new Subject<void>();\n readonly isClosing$ = this.closing.pipe(\n first(),\n map(() => true),\n startWith(false),\n shareReplay(1)\n );\n readonly closing$ = this.isClosing$.pipe(filter((x) => x));\n\n private readonly _windowState = new BehaviorSubject<DbxPopupWindowState>(DbxPopupWindowState.NORMAL);\n readonly windowState$ = this._windowState.asObservable();\n\n getClosingValueFn?: (value?: I) => Promise<O>;\n\n constructor(private popoverRef: NgPopoverRef<DbxPopupComponentConfig<O, I, T>, O>, private compactContextState: CompactContextStore, dbxRouterTransitionService: DbxRouterTransitionService, ngZone: NgZone) {\n super(dbxRouterTransitionService, ngZone);\n\n this.compactContextState.setMode(CompactMode.COMPACT);\n this._position = new PopupGlobalPositionStrategy(this.config.position, this.config.offset);\n this.popoverRef.overlay.updatePositionStrategy(this._position);\n }\n\n get config(): DbxPopupComponentConfig<O, I, T> {\n return this.popoverRef.data;\n }\n\n get key(): DbxPopupKey {\n return this.config.key;\n }\n\n get data(): Maybe<I> {\n return this.config.data;\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.closing.complete();\n this._windowState.complete();\n }\n\n protected updateForSuccessfulTransition(): void {\n if (this.config.closeOnTransition !== false) {\n this.close();\n }\n }\n\n // Popup Controls\n public close(): void {\n this.closing.next();\n\n if (this.getClosingValueFn) {\n this.getClosingValueFn().then(\n (x) => {\n this.return(x);\n },\n () => {\n this.return();\n }\n );\n } else {\n this.return();\n }\n }\n\n public return(value?: O): void {\n this.closing.next();\n this.popoverRef.close(value);\n }\n\n public minimize(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize(APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.MINIMIZED);\n }\n\n public normalscreen(): void {\n this.popoverRef.isDraggable = this.config.isDraggable;\n this.popoverRef.resize(APP_POPUP_NORMAL_WIDTH, APP_POPUP_NORMAL_HEIGHT);\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.NORMAL);\n }\n\n public fullscreen(): void {\n this.popoverRef.isDraggable = false;\n this.popoverRef.resize('100%', '100%');\n this.popoverRef.overlay.updatePosition();\n this._windowState.next(DbxPopupWindowState.FULLSCREEN);\n }\n}\n","import { Directive } 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 constructor(public readonly popup: DbxPopupComponent<O, I, T>) {}\n\n closePopup(): void {\n this.popup.close();\n }\n}\n","import { Component } from '@angular/core';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\n\n/**\n * Popup content wrapper component.\n */\n@Component({\n selector: 'dbx-popup-content',\n template: `\n <ng-content select=\"[controls]\"></ng-content>\n <div *ngIf=\"showContent$ | async\" class=\"dbx-popup-content-container\">\n <ng-content></ng-content>\n </div>\n `,\n host: {\n class: 'dbx-popup-content'\n }\n})\nexport class DbxPopupContentComponent {\n readonly showContent$ = this.appPopupController.windowState$.pipe(map((x) => x !== DbxPopupWindowState.MINIMIZED));\n\n constructor(private appPopupController: DbxPopupController) {}\n}\n","import { Component } from '@angular/core';\nimport { map } from 'rxjs';\nimport { DbxPopupController, DbxPopupWindowState } from './popup';\n\n/**\n * Popup Control Buttons.\n */\n@Component({\n selector: 'dbx-popup-control-buttons',\n template: `\n <ng-container [ngSwitch]=\"isMinimized$ | async\">\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"false\" icon=\"minimize\" (buttonClick)=\"minimizeClicked()\"></dbx-button>\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"true\" icon=\"maximize\" (buttonClick)=\"maximizeClicked()\"></dbx-button>\n </ng-container>\n <dbx-button-spacer></dbx-button-spacer>\n <ng-container [ngSwitch]=\"isFullscreen$ | async\">\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"false\" icon=\"open_in_full\" (buttonClick)=\"fullscreenClicked()\"></dbx-button>\n <dbx-button [flat]=\"true\" *ngSwitchCase=\"true\" icon=\"close_fullscreen\" (buttonClick)=\"normalscreenClicked()\"></dbx-button>\n </ng-container>\n <dbx-button-spacer></dbx-button-spacer>\n <dbx-button [flat]=\"true\" icon=\"close\" color=\"warn\" (buttonClick)=\"closeClicked()\"></dbx-button>\n `,\n host: {\n class: 'dbx-popup-control-buttons'\n }\n})\nexport class DbxPopupControlButtonsComponent {\n 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 constructor(private appPopupController: DbxPopupController) {}\n\n minimizeClicked(): void {\n this.appPopupController.minimize();\n }\n\n maximizeClicked(): void {\n this.appPopupController.normalscreen();\n }\n\n fullscreenClicked(): void {\n this.appPopupController.fullscreen();\n }\n\n normalscreenClicked(): void {\n this.appPopupController.normalscreen();\n }\n\n closeClicked(): void {\n this.appPopupController.close();\n }\n}\n","import { Component, Input } from '@angular/core';\n\n/**\n * Popup Controls\n */\n@Component({\n selector: 'dbx-popup-controls',\n template: `\n <span class=\"dbx-popup-controls-header\">{{ header }}</span>\n <div class=\"spacer\"></div>\n <dbx-popup-control-buttons></dbx-popup-control-buttons>\n `,\n host: {\n class: 'dbx-popup-controls'\n }\n})\nexport class DbxPopupControlsComponent {\n @Input()\n header?: string;\n}\n","import { DbxPopupComponent, DbxPopupComponentConfig, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH } from './popup.component';\nimport { Injectable, Injector } from '@angular/core';\nimport { NgOverlayContainerService, NgPopoverRef } from 'ng-overlay-container';\nimport { Overlay } from '@angular/cdk/overlay';\n\nexport interface DbxPopupConfig<O, I, T> extends DbxPopupComponentConfig<O, I, T> {\n injector?: Injector;\n}\n\n/**\n * Used for displaying a popup.\n */\n@Injectable()\nexport class DbxPopupService {\n private _overlayContainerService: NgOverlayContainerService;\n\n constructor(private _overlay: Overlay, private _injector: Injector) {\n this._overlayContainerService = new NgOverlayContainerService(this._overlay, this._injector);\n }\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, Host, HostListener, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\n\nconst DEFAULT_ACTION_KEY_TRIGGER = 'enter';\n\n/**\n * Directive that triggers the action on a specific key up event.\n *\n * Events/Keys to respond to should be lowercase.\n */\n@Directive({\n selector: '[dbxActionKeyTrigger]'\n})\nexport class DbxActionKeyTriggerDirective<T = unknown, O = unknown> {\n @Input('dbxActionKeyTrigger')\n inputKey: Maybe<string>;\n\n constructor(@Host() public readonly source: DbxActionContextStoreSourceInstance<T, O>) {}\n\n get key(): string {\n return this.inputKey || DEFAULT_ACTION_KEY_TRIGGER;\n }\n\n @HostListener('document:keyup', ['$event'])\n onKeyupHandler(event: KeyboardEvent): void {\n if (event.key && event.key.toLowerCase() === this.key) {\n this.source.trigger();\n }\n }\n}\n","import { forwardRef, Provider, Type } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { Observable } from 'rxjs';\n\nexport abstract class DbxPromptConfirm {\n abstract showDialog(): Observable<Maybe<boolean>>;\n}\n\nexport function provideDbxPromptConfirm<S extends DbxPromptConfirm>(sourceType: Type<S>): Provider[] {\n return [\n {\n provide: DbxPromptConfirm,\n useExisting: forwardRef(() => sourceType)\n }\n ];\n}\n","import { Component, Input } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * Pre-configured prompt.\n */\n@Component({\n selector: 'dbx-prompt',\n template: `\n <div class=\"dbx-prompt\">\n <ng-content select=\"[hero]\"></ng-content>\n <dbx-subsection [header]=\"header\" [hint]=\"prompt\">\n <ng-content></ng-content>\n </dbx-subsection>\n </div>\n `\n})\nexport class DbxPromptComponent {\n @Input()\n header?: Maybe<string>;\n\n @Input()\n prompt?: Maybe<string>;\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\n\nexport enum DbxPromptConfirmTypes {\n /**\n * Dialog is for yes/no.\n */\n NORMAL = 'normal',\n /**\n * Dialog is for deleting something.\n */\n DELETE = 'delete'\n}\n\nexport interface DbxPromptConfirmConfig {\n type?: DbxPromptConfirmTypes;\n title?: string;\n prompt?: string;\n confirmText?: string;\n cancelText?: string;\n}\n\n/**\n * Displays a confirmation dialog.\n */\n@Component({\n selector: 'dbx-prompt-confirm',\n templateUrl: './prompt.confirm.component.html'\n})\nexport class DbxPromptConfirmComponent {\n private _config: DbxPromptConfirmConfig = {};\n\n @Output()\n confirm = new EventEmitter<void>();\n\n @Output()\n cancel = new EventEmitter<void>();\n\n @Input()\n get config(): DbxPromptConfirmConfig {\n return this._config;\n }\n\n set config(config: Maybe<DbxPromptConfirmConfig>) {\n this._config = config ?? {};\n }\n\n onConfirm(): void {\n this.confirm.emit();\n }\n\n onCancel(): void {\n this.cancel.emit();\n }\n}\n","<dbx-prompt [header]=\"config.title\" [prompt]=\"config.prompt\">\n <ng-content></ng-content>\n <button mat-stroked-button (click)=\"onConfirm()\">{{ config.confirmText || 'Confirm' }}</button>\n <dbx-button-spacer></dbx-button-spacer>\n <button mat-stroked-button color=\"warn\" (click)=\"onCancel()\">{{ config.cancelText || 'Cancel' }}</button>\n</dbx-prompt>\n","import { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { Component, OnInit } from '@angular/core';\nimport { AbstractDialogDirective } from '../dialog/abstract.dialog.directive';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmTypes } from './prompt.confirm.component';\nimport { Maybe } from '@dereekb/util';\n\nexport const DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG = {\n title: 'Confirm?',\n type: DbxPromptConfirmTypes.NORMAL\n};\n\nexport interface DbxPromptConfirmDialogConfig extends DbxPromptConfirmConfig {\n component?: DbxInjectionComponentConfig;\n}\n\n@Component({\n template: `\n <dbx-dialog-content>\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <dbx-injection [config]=\"injectionConfig\"></dbx-injection>\n </dbx-prompt-confirm>\n </dbx-dialog-content>\n `\n})\nexport class DbxPromptConfirmDialogComponent extends AbstractDialogDirective<boolean, DbxPromptConfirmDialogConfig> implements OnInit {\n get config(): DbxPromptConfirmDialogConfig {\n return this.data;\n }\n\n get injectionConfig(): Maybe<DbxInjectionComponentConfig> {\n return this.data.component;\n }\n\n static openDialog(matDialog: MatDialog, config?: Maybe<DbxPromptConfirmDialogConfig>): MatDialogRef<DbxPromptConfirmDialogComponent, boolean> {\n const dialogRef = matDialog.open(DbxPromptConfirmDialogComponent, {\n data: config || DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG\n });\n return dialogRef;\n }\n\n confirm(): void {\n this.close(true);\n }\n\n cancel(): void {\n this.close(false);\n }\n}\n","import { Directive, Input } from '@angular/core';\nimport { MatDialog, MatDialogRef } from '@angular/material/dialog';\nimport { Maybe } from '@dereekb/util';\nimport { Observable, from } from 'rxjs';\nimport { DbxPromptConfirm, provideDbxPromptConfirm } from './prompt.confirm';\nimport { DbxPromptConfirmConfig } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\n\n// MARK: Abstract\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n */\n@Directive()\nexport abstract class AbstractPromptConfirmDirective implements DbxPromptConfirm {\n config?: Maybe<DbxPromptConfirmConfig>;\n\n private _dialogRef?: MatDialogRef<DbxPromptConfirmDialogComponent, boolean>;\n private _dialogPromise?: Promise<boolean>;\n\n constructor(protected readonly matDialog: MatDialog) {}\n\n showDialog(): Observable<boolean> {\n if (!this._dialogPromise) {\n this._dialogPromise = new Promise<boolean>((resolve) => {\n this._dialogRef = DbxPromptConfirmDialogComponent.openDialog(this.matDialog, this.config);\n this._dialogRef.afterClosed().subscribe((result: Maybe<boolean>) => {\n this._dialogRef = undefined;\n this._dialogPromise = undefined;\n resolve(this._handleDialogResult(Boolean(result)));\n });\n });\n }\n\n return from(this._dialogPromise);\n }\n\n protected _handleDialogResult(result: boolean): boolean {\n return result;\n }\n}\n\n// MARK: Directive\n/**\n * Directive that shows a confirmation screen.\n */\n@Directive({\n selector: '[dbxPromptConfirm]',\n providers: provideDbxPromptConfirm(DbxPromptConfirmDirective)\n})\nexport class DbxPromptConfirmDirective extends AbstractPromptConfirmDirective {\n @Input('dbxPromptConfirm')\n override config?: Maybe<DbxPromptConfirmConfig>;\n\n constructor(dialog: MatDialog) {\n super(dialog);\n }\n}\n","import { Directive, Host, Input, OnDestroy, OnInit } from '@angular/core';\nimport { MatDialog } from '@angular/material/dialog';\nimport { AbstractPromptConfirmDirective } from '../interaction/prompt/prompt.confirm.directive';\nimport { DbxPromptConfirmConfig } from '../interaction/prompt/prompt.confirm.component';\nimport { SubscriptionObject } from '@dereekb/rxjs';\nimport { DbxActionContextStoreSourceInstance } from '@dereekb/dbx-core';\nimport { Maybe } from '@dereekb/util';\n\n/**\n * DbxActionConfirmDirective configuration.\n */\nexport interface DbxActionConfirmConfig<T = unknown> extends DbxPromptConfirmConfig {\n /**\n * Optionally set the readyValue passed to the instance.\n */\n readyValue?: T;\n}\n\n/**\n * Directive that when triggered shows a dialog to accept or reject.\n *\n * This only works to pass a ready value or reject through, not to work with a button.\n * For button usage, use an appPromptConfirmButton directive.\n */\n@Directive({\n selector: '[dbxActionConfirm]'\n})\nexport class DbxActionConfirmDirective<T = unknown, O = unknown> extends AbstractPromptConfirmDirective implements OnInit, OnDestroy {\n @Input('dbxActionConfirm')\n override config?: Maybe<DbxActionConfirmConfig<T>>;\n\n private _sourceSubscription = new SubscriptionObject();\n\n constructor(@Host() public readonly source: DbxActionContextStoreSourceInstance<T, O>, dialog: MatDialog) {\n super(dialog);\n }\n\n ngOnInit(): void {\n this._sourceSubscription.subscription = this.source.triggered$.subscribe(() => {\n this.showDialog();\n });\n }\n\n ngOnDestroy(): void {\n this._sourceSubscription.destroy();\n }\n\n protected override _handleDialogResult(result: boolean): boolean {\n if (result) {\n this.source.readyValue(this.config?.readyValue as unknown as T);\n } else {\n this.source.reject(undefined);\n }\n\n return result;\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-box',\n template: `\n <ng-content></ng-content>\n `,\n host: {\n class: 'd-block dbx-prompt-box',\n '[class.elevated]': 'elevated'\n }\n})\nexport class DbxPromptBoxComponent {\n @Input()\n elevated = true;\n}\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'dbx-prompt-page',\n template: `\n <dbx-content-container width=\"full\">\n <div class=\"dbx-prompt-page-content-wrap\">\n <ng-content></ng-content>\n </div>\n </dbx-content-container>\n `,\n host: {\n class: 'd-block dbx-prompt-page'\n }\n})\nexport class DbxPromptPageComponent {}\n","import { DbxButtonDirective, DbxButtonInterceptor } from '@dereekb/dbx-core';\nimport { Directive, Host, OnInit } from '@angular/core';\nimport { Observable, map } from 'rxjs';\nimport { DbxPromptConfirm } from './prompt.confirm';\n\n/**\n * Directive that binds together a confirm dialog with the button.\n */\n@Directive({\n selector: '[dbxPromptConfirmButton]'\n})\nexport class DbxPromptConfirmButtonDirective implements OnInit, DbxButtonInterceptor {\n readonly interceptButtonClick: () => Observable<boolean> = () => {\n return this.prompt.showDialog().pipe(map((x) => Boolean(x)));\n };\n\n constructor(@Host() readonly appButton: DbxButtonDirective, @Host() readonly prompt: DbxPromptConfirm) {}\n\n ngOnInit(): void {\n this.appButton.setButtonInterceptor(this);\n }\n}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from './../../button/button.module';\nimport { DbxPromptComponent } from './prompt.component';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxPromptBoxComponent } from './prompt.box.component';\nimport { DbxPromptPageComponent } from './prompt.page.component';\nimport { DbxTextModule } from '../../layout/text';\nimport { DbxSectionLayoutModule } from '../../layout/section/section.layout.module';\nimport { DbxContentLayoutModule } from '../../layout/content/content.layout.module';\nimport { DbxPromptConfirmComponent as DbxPromptConfirmComponent } from './prompt.confirm.component';\nimport { DbxPromptConfirmDialogComponent as DbxPromptConfirmDialogComponent } from './prompt.confirm.dialog.component';\nimport { DbxPromptConfirmDirective } from './prompt.confirm.directive';\nimport { DbxPromptConfirmButtonDirective } from './prompt.button.confirm.directive';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\nimport { DbxDialogInteractionModule } from '../dialog/dialog.module';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, MatButtonModule, DbxTextModule, DbxButtonModule, DbxInjectionComponentModule, DbxDialogInteractionModule, DbxSectionLayoutModule, DbxContentLayoutModule],\n declarations: [DbxPromptComponent, DbxPromptBoxComponent, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective],\n exports: [DbxPromptComponent, DbxPromptBoxComponent, DbxPromptPageComponent, DbxPromptConfirmComponent, DbxPromptConfirmButtonDirective, DbxPromptConfirmDirective]\n})\nexport class DbxPromptModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\nimport { DbxButtonModule } from '../button/button.module';\n// import { DbxErrorModule } from '../error/error.module';\nimport { DbxActionKeyTriggerDirective } from './key.trigger.directive';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxActionConfirmDirective } from './action.confirm.directive';\nimport { DbxPromptModule } from '../interaction/prompt/prompt.module';\n\n@NgModule({\n imports: [CommonModule, DbxCoreActionModule, DbxButtonModule, MatSnackBarModule, MatDialogModule, MatButtonModule, DbxPromptModule],\n declarations: [DbxActionKeyTriggerDirective, DbxActionConfirmDirective],\n exports: [DbxCoreActionModule, DbxActionKeyTriggerDirective, DbxActionConfirmDirective]\n})\nexport class DbxActionModule {}\n","import { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxPopupCoordinatorComponent } from './popup.coordinator.component';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { NgOverlayContainerModule } from 'ng-overlay-container';\nimport { DbxPopupService } from './popup.service';\nimport { DbxPopupContentComponent } from './popup.content.component';\nimport { DbxPopupComponent } from './popup.component';\nimport { DbxRouterAnchorModule } from '../../router';\nimport { DbxActionModule } from '../../action/action.module';\nimport { DbxPopupControlsComponent } from './popup.controls.component';\nimport { DbxPopupControlButtonsComponent } from './popup.controls.buttons.component';\nimport { DbxButtonModule } from '../../button/button.module';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, DbxButtonModule, DbxRouterAnchorModule, DbxActionModule, DbxStyleLayoutModule, DbxInjectionComponentModule, NgOverlayContainerModule],\n declarations: [DbxPopupComponent, DbxPopupCoordinatorComponent, DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent],\n exports: [DbxPopupContentComponent, DbxPopupControlsComponent, DbxPopupControlButtonsComponent],\n providers: [DbxPopupService]\n})\nexport class DbxPopupInteractionModule {}\n","import { NgModule } from '@angular/core';\nimport { DbxDialogInteractionModule } from './dialog/dialog.module';\nimport { DbxPromptModule } from './prompt/prompt.module';\nimport { DbxPopupInteractionModule } from './popup/popup.module';\nimport { DbxPopoverInteractionModule } from './popover/popover.module';\nimport { DbxFilterInteractionModule } from './filter/filter.module';\n\n@NgModule({\n exports: [DbxDialogInteractionModule, DbxFilterInteractionModule, DbxPromptModule, DbxPopoverInteractionModule, DbxPopupInteractionModule]\n})\nexport class DbxInteractionModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPromptModule } from '../../interaction';\nimport { DbxActionSnackbarDirective } from './action.snackbar.directive';\nimport { DbxActionSnackbarComponent } from './action.snackbar.component';\nimport { DbxStyleLayoutModule } from '../../layout/style/style.layout.module';\n\n@NgModule({\n imports: [CommonModule, DbxStyleLayoutModule, DbxCoreActionModule, DbxPromptModule, DbxButtonModule],\n declarations: [DbxActionSnackbarComponent, DbxActionSnackbarDirective],\n exports: [DbxActionSnackbarComponent, DbxActionSnackbarDirective]\n})\nexport class DbxActionSnackbarModule {}\n","import { Component, OnInit } from '@angular/core';\nimport { DbxPromptConfirmConfig, DbxPromptConfirmTypes, AbstractDialogDirective } from '../../interaction';\n\nexport enum DbxActionTransitionSafetyDialogResult {\n SUCCESS,\n STAY,\n DISCARD,\n NONE\n}\n\n/**\n * Dialog that is shown/triggered as part of the DbxActionTransitionSafety\n */\n@Component({\n template: `\n <dbx-prompt-confirm [config]=\"config\" (confirm)=\"confirm()\" (cancel)=\"cancel()\">\n <ng-container>\n <dbx-error dbxActionError></dbx-error>\n <dbx-button text=\"Save Changes\" dbxActionButton></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n </ng-container>\n </dbx-prompt-confirm>\n `\n})\nexport class DbxActionUIRouterTransitionSafetyDialogComponent extends AbstractDialogDirective implements OnInit {\n config: DbxPromptConfirmConfig = {\n type: DbxPromptConfirmTypes.NORMAL,\n title: 'Unsaved Changes',\n prompt: 'You have unsaved changes on this page.',\n confirmText: 'Stay',\n cancelText: 'Discard Changes'\n };\n\n confirm(): void {\n this.dialogRef.close(DbxActionTransitionSafetyDialogResult.STAY);\n }\n\n cancel(): void {\n this.dialogRef.close(DbxActionTransitionSafetyDialogResult.DISCARD);\n }\n}\n","import { Directive, OnInit, OnDestroy, Input, ViewContainerRef } 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 } from 'rxjs';\nimport { DbxActionContextStoreSourceInstance, canTriggerAction, isIdleActionState } from '@dereekb/dbx-core';\nimport { DbxActionTransitionSafetyDialogResult, DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\n\n/**\n * How to handle transitions.\n *\n * Values:\n * - none: Nothing occurs.\n * - dialog: Always show a dialog and act based on the result.\n * - auto: Try to auto-trigger if in a triggerable state. If it is modified but in a non-triggerable state, show a dialog. Should be used in conjuction with the auto-saver.\n */\nexport type DbxActionTransitionSafetyType = 'none' | 'dialog' | 'auto';\n\ntype DbxActionTransitionSafetyRaceResult = [boolean | undefined, HookResult | undefined];\n\n/**\n * Context used for preventing a transition from occuring if the action is not complete or is in a modified state.\n *\n * This can be configured to auto-trigger and wait, or show a dialog and wait for the user's feedback before doing anything.\n *\n * NOTE: This dialog only works for uirouter.\n */\n@Directive({\n selector: '[dbxActionTransitionSafety]'\n})\nexport class DbxActionTransitionSafetyDirective<T, O> implements OnInit, OnDestroy {\n @Input('dbxActionTransitionSafety')\n inputSafetyType?: DbxActionTransitionSafetyType;\n\n private _dialogRef?: MatDialogRef<DbxActionUIRouterTransitionSafetyDialogComponent, DbxActionTransitionSafetyDialogResult>;\n private stopWatchingTransition?: () => void;\n\n constructor(public readonly source: DbxActionContextStoreSourceInstance<T, O>, protected readonly transitionService: TransitionService, protected readonly viewContainerRef: ViewContainerRef, protected readonly dialog: MatDialog) {}\n\n get safetyType(): DbxActionTransitionSafetyType {\n return this.inputSafetyType ?? 'dialog';\n }\n\n private get _destroyed(): boolean {\n return !this.stopWatchingTransition;\n }\n\n ngOnInit(): void {\n this.stopWatchingTransition = this.transitionService.onStart({}, (transition: Transition) => {\n return this._handleOnBeforeTransition(transition);\n }) as () => void;\n }\n\n ngOnDestroy(): void {\n if (this.stopWatchingTransition) {\n this.stopWatchingTransition();\n delete this.stopWatchingTransition;\n }\n\n this._closeDialog();\n }\n\n protected _handleOnBeforeTransition(transition: Transition): HookResult {\n return this.source.isModified$\n .pipe(\n first(),\n mergeMap((isModified) => {\n if (isModified) {\n return race([\n // Watch for success to occur. At that point, close everything.\n this.source.success$.pipe(\n first(),\n map(() => [true, undefined] as DbxActionTransitionSafetyRaceResult)\n ),\n this._handleIsModifiedState(transition).pipe(\n first(),\n map((x) => [undefined, x] as DbxActionTransitionSafetyRaceResult)\n )\n ]).pipe(\n map(([saveSuccess, handleResult]: DbxActionTransitionSafetyRaceResult) => {\n if (saveSuccess) {\n return true;\n } else {\n return handleResult;\n }\n }),\n tap(() => this._closeDialog()), // Close dialog if it is still open.\n delay(10) // Delay to allow dialog to close before transition.\n );\n } else {\n return of(true);\n }\n })\n )\n .toPromise()\n .then((x) => x); // Resolve/Flatten potential promise result.\n }\n\n protected _handleIsModifiedState(transition: Transition): Observable<HookResult> {\n const safetyType = this.safetyType;\n let obs: Observable<HookResult>;\n\n // console.log('Safety type: ', safetyType);\n\n switch (safetyType) {\n case 'none':\n obs = of(true); // Do nothing.\n break;\n case 'auto':\n obs = this._autoTrigger(transition);\n break;\n default:\n case 'dialog':\n obs = this._showDialog(transition);\n break;\n }\n\n return obs;\n }\n\n private _autoTrigger(transition: Transition): Observable<HookResult> {\n return this.source.pipeStore((store) =>\n store.state$.pipe(\n delay(20), // Prevent racing with auto-trigger.\n first(),\n mergeMap((state) => {\n if (isIdleActionState(state.actionState)) {\n // If we're in an idle state, get ready to trigger it.\n if (canTriggerAction(state)) {\n store.trigger(); // Try and trigger it.\n }\n }\n\n // Watch for errors. If an error occurs, show the dialog.\n // Success will cause the race in _handleOnBeforeTransition() to trigger and close everything.\n return store.rejected$.pipe(\n first(),\n mergeMap(() => this._showDialog(transition))\n );\n })\n )\n );\n }\n\n private _showDialog(transition: Transition): Observable<HookResult> {\n if (this._destroyed) {\n return of(true);\n }\n\n if (!this._dialogRef) {\n this._dialogRef = this.dialog.open(DbxActionUIRouterTransitionSafetyDialogComponent, {\n viewContainerRef: this.viewContainerRef\n });\n }\n\n return this._dialogRef.afterClosed().pipe(\n first(),\n map((result: DbxActionTransitionSafetyDialogResult = DbxActionTransitionSafetyDialogResult.STAY) => {\n // Default to Stay if the user clicks outside.\n switch (result) {\n case DbxActionTransitionSafetyDialogResult.DISCARD:\n case DbxActionTransitionSafetyDialogResult.SUCCESS:\n case DbxActionTransitionSafetyDialogResult.NONE:\n return true;\n case DbxActionTransitionSafetyDialogResult.STAY:\n return false;\n }\n })\n );\n }\n\n private _closeDialog(): void {\n if (this._dialogRef) {\n this._dialogRef.close(DbxActionTransitionSafetyDialogResult.NONE);\n }\n\n this._dialogRef = undefined;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxActionUIRouterTransitionSafetyDialogComponent } from './transition.safety.dialog.component';\nimport { DbxActionTransitionSafetyDirective as DbxActionUIRouterTransitionSafetyDirective } from './transition.safety.directive';\nimport { DbxCoreActionModule } from '@dereekb/dbx-core';\nimport { DbxButtonModule } from '../../button';\nimport { DbxPromptModule } from './../../interaction';\nimport { DbxReadableErrorModule } from '../../error';\n\n/**\n * Provides the DbxActionUIRouterTransitionSafetyDirective.\n *\n * NOTE: Only works with UIRouter\n */\n@NgModule({\n imports: [CommonModule, DbxCoreActionModule, DbxPromptModule, DbxButtonModule, DbxReadableErrorModule],\n declarations: [DbxActionUIRouterTransitionSafetyDirective, DbxActionUIRouterTransitionSafetyDialogComponent],\n exports: [DbxActionUIRouterTransitionSafetyDirective]\n})\nexport class DbxActionUIRouterTransitionModule {}\n","import { createAction } from '@ngrx/store';\n\nexport const dbxModelResetState = createAction('[App/Model] Reset State');\n","import { ModelKeyTypeNamePair, ModelKeyTypePair } from '@dereekb/util';\nimport { createAction, props } from '@ngrx/store';\n\nexport interface DbxModelObjectViewedParams {\n modelKeyTypeNamePair: ModelKeyTypeNamePair;\n context?: string;\n}\n\nexport interface DbxModelGoToObjectViewParams {\n modelKeyTypePair: ModelKeyTypePair;\n}\n\nexport const emitObjectViewEvent = createAction('[App/Model/Type] Object Viewed', props<DbxModelObjectViewedParams>());\n","import { createReducer, on } from '@ngrx/store';\n\nimport { DbxModelStateActions } from '../actions';\n\nexport interface DbxModelModuleStateConfiguration {}\n\nexport const stateFeatureKey = 'model.module.config';\n\nexport const initialState: DbxModelModuleStateConfiguration = {\n types: {}\n};\n\nexport const reducer = createReducer(\n initialState,\n on(DbxModelStateActions.dbxModelResetState, () => initialState)\n);\n","import { Action, combineReducers, createFeatureSelector, createSelector } from '@ngrx/store';\n\nimport * as fromObjectModuleConfig from './model.module.config';\nimport { DbxModelModuleStateConfiguration } from './model.module.config';\n\nexport const featureKey = 'app.model';\n\nexport interface DbxModelState {\n [fromObjectModuleConfig.stateFeatureKey]: DbxModelModuleStateConfiguration;\n}\n\nexport interface State {\n [featureKey]: DbxModelState;\n}\n\nexport function reducers(state: DbxModelState | undefined, action: Action) {\n return combineReducers({\n [fromObjectModuleConfig.stateFeatureKey]: fromObjectModuleConfig.reducer\n })(state, action);\n}\n\n// MARK: Context\nexport const selectDbxModelFeature = createFeatureSelector<State, DbxModelState>(featureKey);\n\n// MARK: Module Config\nexport const selectDbxModelFeatureObjectModuleConfig = createSelector(selectDbxModelFeature, (state: DbxModelState) => state[fromObjectModuleConfig.stateFeatureKey]);\n","import { tapLog } from '@dereekb/rxjs';\nimport { Injectable } from '@angular/core';\nimport { unixTimeNumberForNow } from '@dereekb/date';\nimport { StorageAccessor } from '@dereekb/dbx-core';\nimport { encodeModelKeyTypePair, ModelRelationUtility, Maybe } from '@dereekb/util';\nimport { map, mergeMap, catchError, Observable, of, Subject, tap } from 'rxjs';\nimport { DbxModelViewTrackerEventSet, DbxModelViewTrackerEvent } from './model.tracker';\n\n/**\n * Used for managing DbxModelViewTrackerEvent storage.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelViewTrackerStorage {\n static readonly OBJECT_VIEW_TRACKER_STORAGE_LIST_KEY = 'dbxModelViewTrackerEvents';\n static readonly DEFAULT_MAX_EVENTS = 100;\n\n private _newEvent = new Subject<DbxModelViewTrackerEvent>();\n\n readonly newEvent$ = this._newEvent.asObservable();\n\n constructor(readonly storageAccessor: StorageAccessor<DbxModelViewTrackerEventSet>) {}\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 // MARK: Compat\n /**\n * @deprecated use addTrackerEvent() instead.\n */\n addEvent(event: DbxModelViewTrackerEvent): Observable<void> {\n return this.addTrackerEvent(event);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Maybe, ModelKeyTypeNamePair } from '@dereekb/util';\nimport { first, Observable } from 'rxjs';\nimport { DbxModelViewTrackerEvent, DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelViewTrackerStorage } from './model.tracker.view.storage';\n\n/**\n * Service used for tracking/logging different kinds of events on objects.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelTrackerService {\n private _defaultFolder: Maybe<string>;\n\n readonly newEvent$ = this.viewTrackerStorage.newEvent$;\n\n constructor(private readonly viewTrackerStorage: DbxModelViewTrackerStorage) {}\n\n get defaultFolder(): Maybe<string> {\n return this._defaultFolder;\n }\n\n set defaultFolder(folder: Maybe<string>) {\n this._defaultFolder = folder ?? undefined;\n }\n\n // MARK: View\n trackViewedObject(modelKeyTypeNamePair: ModelKeyTypeNamePair, context?: string, folder: Maybe<string> = this._defaultFolder): void {\n this.viewTrackerStorage\n .addTrackerEvent({\n m: modelKeyTypeNamePair,\n c: context,\n folder\n })\n .pipe(first())\n .subscribe();\n }\n\n getAllViewEvents(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEvent[]> {\n return this.viewTrackerStorage.getAllEvents(folder);\n }\n\n getViewEventSet(folder: Maybe<string> = this._defaultFolder): Observable<DbxModelViewTrackerEventSet> {\n return this.viewTrackerStorage.getEventSet(folder);\n }\n}\n","import { Injectable } 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 constructor(private readonly actions$: Actions, private readonly dbxModelTrackerService: DbxModelTrackerService) {}\n\n readonly trackModelViewed$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent),\n distinctUntilChanged((a, b) => a?.modelKeyTypeNamePair.key === b?.modelKeyTypeNamePair.key && a?.type === b?.type && a?.context === b?.context),\n tap((x) => {\n this.dbxModelTrackerService.trackViewedObject(x.modelKeyTypeNamePair, x.context);\n })\n ),\n { dispatch: false }\n );\n\n readonly changeTrackerFolderToMatchAuth$ = createEffect(\n () =>\n this.actions$.pipe(\n ofType(onDbxAppAuth.DbxAppAuthUserActions.setUserIdentifier),\n map((x) => x.id),\n filter((x) => Boolean(x)),\n distinctUntilChanged(),\n tap((accountId) => {\n this.dbxModelTrackerService.defaultFolder = accountId;\n })\n ),\n { dispatch: false }\n );\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule, SimpleStorageAccessorFactory } from '@dereekb/dbx-core';\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\nimport { DbxListLayoutModule } from '../../layout/list/list.layout.module';\nimport { DbxModelViewTrackerEventSet } from './model.tracker';\nimport { DbxModelTrackerService } from './model.tracker.service';\nimport { DbxModelViewTrackerStorage } from './model.tracker.view.storage';\nimport { fromDbxModel } from './state';\nimport { DbxModelTrackerEffects } from './state/effects/tracker.effects';\n\nexport function appObjectViewTrackerStorageFactory(storageAccessorFactory: SimpleStorageAccessorFactory): DbxModelViewTrackerStorage {\n const accessor = storageAccessorFactory.createStorageAccessor<DbxModelViewTrackerEventSet>({\n prefix: 'mtvs'\n });\n\n return new DbxModelViewTrackerStorage(accessor);\n}\n\n/**\n * Contains components related to displaying content related to models identified only by their model key.\n */\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxListLayoutModule,\n DbxInjectionComponentModule,\n EffectsModule.forFeature([DbxModelTrackerEffects]),\n StoreModule.forFeature(fromDbxModel.featureKey, fromDbxModel.reducers)\n ],\n declarations: [],\n exports: []\n})\nexport class DbxModelInfoModule {\n static forRoot(): ModuleWithProviders<DbxModelInfoModule> {\n return {\n ngModule: DbxModelInfoModule,\n providers: [\n DbxModelTrackerService,\n {\n provide: DbxModelViewTrackerStorage,\n useFactory: appObjectViewTrackerStorageFactory,\n deps: [SimpleStorageAccessorFactory]\n }\n ]\n };\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Store } from '@ngrx/store';\nimport { onDbxModel } from './state';\nimport { DbxModelObjectViewedParams } from './state/actions/model.actions';\nimport { DbxModelFullState } from './state/state';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelObjectStateService {\n constructor(readonly store: Store<DbxModelFullState>) {}\n\n /**\n * Emit a model viewed event.\n */\n emitModelViewEvent({ modelKeyTypeNamePair, context }: DbxModelObjectViewedParams): void {\n this.store.dispatch(onDbxModel.DbxModelStateModelActions.emitObjectViewEvent({ modelKeyTypeNamePair, context }));\n }\n}\n","import { UnixDateTimeNumber, Maybe, ModelKey, ModelKeyTypeNamePair } from '@dereekb/util';\n\n/**\n * Context in which a model was viewed.\n */\nexport type ModelViewContext = string;\n\nexport interface DbxModelViewTrackerEvent {\n /**\n * Event time\n */\n d?: UnixDateTimeNumber;\n /**\n * Context\n */\n c?: ModelViewContext;\n /**\n * Model info\n */\n m: ModelKeyTypeNamePair;\n folder?: Maybe<string>;\n}\n\nexport interface DbxModelViewTrackerEventSet {\n /**\n * The latest date/time number.\n */\n l: UnixDateTimeNumber;\n /**\n * List of events.\n */\n e: DbxModelViewTrackerEvent[];\n}\n\nexport function allDbxModelViewTrackerEventSetModelKeys(eventSet: DbxModelViewTrackerEventSet): ModelKey[] {\n return allDbxModelViewTrackerEventModelKeys(eventSet.e);\n}\n\nexport function allDbxModelViewTrackerEventModelKeys(events: DbxModelViewTrackerEvent[]): ModelKey[] {\n return events.map((y) => y.m.key);\n}\n","import { Injectable, Injector } from '@angular/core';\nimport { capitalCase } from 'change-case';\nimport { map, shareReplay, Observable, BehaviorSubject } from 'rxjs';\nimport { ArrayOrValue, Building, ModelTypeString, useIterableOrValue } from '@dereekb/util';\nimport { DbxModelTypeConfiguration, DbxModelTypeConfigurationMap } from './model.types';\n\nexport interface DbxModelTypeInfo extends Omit<DbxModelTypeConfiguration, 'srefFactory'> {\n /**\n * Whether or not a response is expected for segues\n * to a view for objects of this type.\n */\n canSegueToView: boolean;\n}\n\nexport interface DbxModelTypesMap<I extends DbxModelTypeInfo> {\n readonly [type: string]: I;\n}\n\nexport interface DbxModelIconsMap {\n readonly [type: string]: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxModelTypesService<I extends DbxModelTypeInfo = DbxModelTypeInfo> {\n private _configs = new BehaviorSubject<DbxModelTypeConfigurationMap>({});\n\n static readonly DEFAULT_ICON = 'help_outline';\n\n constructor(readonly injector: Injector) {}\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 { Injectable, Type } from '@angular/core';\nimport { Maybe, filterMaybeValues, mapIterable } from '@dereekb/util';\nimport { DbxWidgetType } from './widget';\n\nexport interface DbxWidgetEntry {\n /**\n * Widget type to respond to.\n */\n readonly type: DbxWidgetType;\n /**\n * Widget component class to use.\n */\n readonly componentClass: Type<unknown>;\n}\n\n/**\n * Service used to register widgets.\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class DbxWidgetService {\n private _entries = new Map<DbxWidgetType, DbxWidgetEntry>();\n\n /**\n * Used to register an entry. If an entry with the same type is already registered, this will override it by default.\n *\n * @param entry\n * @param override\n */\n register(entry: DbxWidgetEntry, override: boolean = true): boolean {\n if (override || !this._entries.has(entry.type)) {\n this._entries.set(entry.type, entry);\n return true;\n } else {\n return false;\n }\n }\n\n // MARK: Get\n getWidgetIdentifiers(): DbxWidgetType[] {\n return Array.from(this._entries.keys());\n }\n\n getWidgetEntry(type: DbxWidgetType): Maybe<DbxWidgetEntry> {\n return this._entries.get(type);\n }\n\n getWidgetEntries(types: Iterable<DbxWidgetType>): DbxWidgetEntry[] {\n return filterMaybeValues(mapIterable(types ?? [], (x) => this._entries.get(x)));\n }\n}\n","import { Observable, BehaviorSubject, map } from 'rxjs';\nimport { Component, Input, OnDestroy } from '@angular/core';\nimport { Maybe } from '@dereekb/util';\nimport { DbxInjectionComponentConfig } from '@dereekb/dbx-core';\nimport { DbxWidgetDataPair } from './widget';\nimport { DbxWidgetService } from './widget.service';\n\n/**\n * Used to display a corresponding widget based on the input data.\n */\n@Component({\n selector: 'dbx-widget-view',\n template: `\n <dbx-injection [config]=\"config$ | async\"></dbx-injection>\n `,\n host: {\n class: 'dbx-widget-view'\n }\n})\nexport class DbxWidgetViewComponent implements OnDestroy {\n private _config = new BehaviorSubject<Maybe<DbxWidgetDataPair>>(undefined);\n\n readonly config$: Observable<Maybe<DbxInjectionComponentConfig>> = this._config.pipe(\n map((pair: Maybe<DbxWidgetDataPair>) => {\n let config: Maybe<DbxInjectionComponentConfig>;\n\n if (pair != null) {\n const entry = this.dbxWidgetService.getWidgetEntry(pair.type);\n\n if (entry) {\n config = {\n componentClass: entry.componentClass,\n data: pair.data\n };\n }\n }\n\n return config;\n })\n );\n\n constructor(readonly dbxWidgetService: DbxWidgetService) {}\n\n ngOnDestroy(): void {\n this._config.complete();\n }\n\n @Input()\n set config(config: Maybe<DbxWidgetDataPair>) {\n this._config.next(config);\n }\n}\n","import { Directive, Inject } from '@angular/core';\nimport { DBX_INJECTION_COMPONENT_DATA } from '@dereekb/dbx-core';\n\n@Directive()\nexport abstract class AbstractDbxWidgetComponent<T> {\n constructor(@Inject(DBX_INJECTION_COMPONENT_DATA) readonly data: T) {}\n}\n","import { Component } from '@angular/core';\nimport { of } from 'rxjs';\nimport { AbstractDbxListWrapperDirective, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, DbxValueListGridViewConfig, AbstractDbxValueListViewItemComponent, provideDbxListView, DbxValueAsListItem, AbstractDbxListGridViewDirective, DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE } from '../../layout/list';\nimport { DbxWidgetDataPair } from './widget';\n\nexport type DbxWidgetDataPairWithSelection = DbxValueAsListItem<DbxWidgetDataPair>;\n\n/**\n * Demo DbxSelectionListWrapperDirective\n */\n@Component({\n selector: 'dbx-widget-grid',\n template: DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE\n})\nexport class DbxWidgetListGridComponent extends AbstractDbxListWrapperDirective<DbxWidgetDataPair> {\n constructor() {\n super({\n componentClass: DbxWidgetListGridViewComponent,\n defaultSelectionMode: 'view'\n });\n }\n}\n\n@Component({\n template: DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE,\n providers: provideDbxListView(DbxWidgetListGridViewComponent)\n})\nexport class DbxWidgetListGridViewComponent extends AbstractDbxListGridViewDirective<DbxWidgetDataPair> {\n readonly config: DbxValueListGridViewConfig<DbxWidgetDataPairWithSelection> = {\n grid: {\n // TODO: Make configurable.\n columns: 'repeat(auto-fill, minmax(120px, 1fr))',\n gap: '8px'\n },\n componentClass: DbxWidgetListGridViewItemComponent,\n mapValuesToItemValues: (x) => of(x.map((y) => ({ ...y, itemValue: y })))\n };\n}\n\n@Component({\n template: `\n <dbx-widget-view [config]=\"itemValue\"></dbx-widget-view>\n `\n})\nexport class DbxWidgetListGridViewItemComponent extends AbstractDbxValueListViewItemComponent<DbxWidgetDataPair> {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { DbxInjectionComponentModule } from '@dereekb/dbx-core';\nimport { DbxListLayoutModule } from '../../layout/list/list.layout.module';\nimport { DbxWidgetViewComponent } from './widget.component';\nimport { DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent } from './widget.list.component';\n\n/**\n * Contains components related to displaying \"widgets\" for pieces of data.\n */\n@NgModule({\n imports: [\n //\n CommonModule,\n DbxListLayoutModule,\n DbxInjectionComponentModule\n ],\n declarations: [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent],\n exports: [DbxWidgetViewComponent, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent]\n})\nexport class DbxWidgetModule {}\n","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/**\n * Should only be imported once in the root app.\n *\n * Pre-configures the following modules:\n */\n@NgModule({\n imports: []\n})\nexport class DbxWebRootModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i4","i1.DbxSpinnerButtonComponent","i2","i3.DbxSpacerDirective","i5.DbxButtonComponent","i6.DbxButtonSpacerDirective","i1","i2.DbxActionSnackbarService","i3","i1.DbxStyleService","declarations","i1.CompactContextStore","i1.DbxPopoverCoordinatorService","i2.DbxPopoverController","i2.CompactContextStore","i4.DbxWindowKeyDownListenerDirective","i5.DbxStyleDirective","i6.DbxPopoverCoordinatorComponent","i1.DbxPopoverComponent","i1.DbxPopoverContentComponent","i3.DbxPopoverContentComponent","i4.DbxPopoverHeaderComponent","i5.DbxPopoverScrollContentComponent","i6","i7","i1.DbxPopoverService","i1.DbxIconButtonComponent","i2.DbxButtonComponent","i5","i1.DbxRouterWebProviderConfig","i7.DbxAnchorComponent","i1.DbxAnchorListComponent","i3.DbxAnchorComponent","i1.DbxAnchorComponent","i2.DbxAnchorComponent","i1.DbxValueListItemModifier","i2.DbxScreenMediaService","i4.DbxIconButtonComponent","i8.DbxAnchorComponent","i4.DbxAnchorListComponent","i1.DbxSidenavComponent","i1.DbxPagebarComponent","i2.DbxButtonSpacerDirective","i3.DbxSidenavButtonComponent","i3.DbxSidenavPagebarComponent","i3.DbxBarDirective","i1.TwoColumnsContextStore","i2.DbxContentContainerDirective","i4.DbxAnchorComponent","i5.DbxTwoColumnColumnHeadComponent","i1.DbxTwoColumnComponent","i1.DbxFlagComponent","i1.DbxScreenMediaService","i1.DbxLabelComponent","i2.DbxLabelBlockComponent","i1.DbxErrorWidgetService","i1.DbxErrorWidgetViewComponent","i2.DbxPopoverHeaderComponent","i3.DbxPopoverScrollContentComponent","i4.DbxErrorDetailsComponent","i2.DbxReadableErrorComponent","i3.DbxLoadingProgressComponent","i1.DbxBasicLoadingComponent","i2.DbxLoadingComponent","i1.DbxReadableErrorComponent","i1.DbxDetailBlockHeaderComponent","i1.DbxLoadingComponent","i1.DbxListView","i2.DbxValueListItemModifier","i2.DbxListView","i6.DbxValueListItemViewComponent","i5.DbxAnchorComponent","i1.DbxSectionHeaderComponent","i1.DbxPopupCoordinatorService","i2.DbxPopupController","i4.DbxPopupCoordinatorComponent","i1.DbxPopupComponent","i1.DbxPopupController","i3.DbxButtonComponent","i4.DbxButtonSpacerDirective","i1.DbxPopupControlButtonsComponent","i1.DbxSubSectionComponent","i3.DbxPromptComponent","i2.DbxDialogContentDirective","i3.DbxPromptConfirmComponent","i1.DbxContentContainerDirective","i2.DbxPromptConfirm","i1.DbxPromptConfirmComponent","i5.DbxReadableErrorComponent","i6.DbxActionErrorDirective","DbxActionUIRouterTransitionSafetyDirective","DbxModelStateActions.dbxModelResetState","fromObjectModuleConfig.stateFeatureKey","fromObjectModuleConfig.reducer","i1.DbxModelViewTrackerStorage","onDbxModel.DbxModelStateModelActions.emitObjectViewEvent","i2.DbxModelTrackerService","fromDbxModel.featureKey","fromDbxModel.reducers","i1.DbxWidgetService","i1.DbxListComponent","i3.DbxValueListGridViewComponent","i4.DbxWidgetViewComponent"],"mappings":"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"}