@dereekb/dbx-web 12.4.5 → 12.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/action/action.confirm.directive.mjs +4 -4
- package/esm2022/lib/action/snackbar/action.snackbar.component.mjs +2 -2
- package/esm2022/lib/action/transition/transition.safety.dialog.component.mjs +2 -2
- package/esm2022/lib/button/button.component.mjs +46 -20
- package/esm2022/lib/button/progress/abstract.progress.button.directive.mjs +53 -7
- package/esm2022/lib/button/progress/bar.button.component.mjs +3 -3
- package/esm2022/lib/button/progress/button.progress.config.mjs +1 -1
- package/esm2022/lib/button/progress/spinner.button.component.mjs +3 -3
- package/esm2022/lib/extension/download/text/download.text.component.mjs +2 -2
- package/esm2022/lib/interaction/filter/filter.wrapper.component.mjs +2 -2
- package/esm2022/lib/interaction/index.mjs +2 -1
- package/esm2022/lib/interaction/popup/popup.controls.buttons.component.mjs +1 -1
- package/esm2022/lib/interaction/upload/abstract.upload.component.mjs +85 -0
- package/esm2022/lib/interaction/upload/index.mjs +8 -0
- package/esm2022/lib/interaction/upload/upload.accept.mjs +72 -0
- package/esm2022/lib/interaction/upload/upload.action.directive.mjs +36 -0
- package/esm2022/lib/interaction/upload/upload.action.mjs +18 -0
- package/esm2022/lib/interaction/upload/upload.area.component.mjs +138 -0
- package/esm2022/lib/interaction/upload/upload.button.component.mjs +81 -0
- package/esm2022/lib/interaction/upload/upload.component.mjs +116 -0
- package/esm2022/lib/layout/avatar/avatar.component.mjs +76 -0
- package/esm2022/lib/layout/avatar/avatar.mjs +7 -0
- package/esm2022/lib/layout/avatar/avatar.service.mjs +78 -0
- package/esm2022/lib/layout/avatar/avatar.view.component.mjs +89 -0
- package/esm2022/lib/layout/avatar/index.mjs +4 -0
- package/esm2022/lib/layout/content/content.pit.directive.mjs +34 -4
- package/esm2022/lib/layout/index.mjs +2 -1
- package/esm2022/lib/loading/basic-loading.component.mjs +32 -5
- package/esm2022/lib/loading/index.mjs +2 -1
- package/esm2022/lib/loading/loading.component.mjs +11 -4
- package/esm2022/lib/loading/loading.mjs +2 -0
- package/fesm2022/dereekb-dbx-web.mjs +930 -47
- package/fesm2022/dereekb-dbx-web.mjs.map +1 -1
- package/lib/action/action.confirm.directive.d.ts +1 -1
- package/lib/button/_button.scss +2 -1
- package/lib/button/button.component.d.ts +5 -1
- package/lib/button/progress/abstract.progress.button.directive.d.ts +9 -5
- package/lib/button/progress/button.progress.config.d.ts +6 -2
- package/lib/interaction/_interaction.scss +4 -0
- package/lib/interaction/index.d.ts +1 -0
- package/lib/interaction/upload/_upload.scss +100 -0
- package/lib/interaction/upload/abstract.upload.component.d.ts +54 -0
- package/lib/interaction/upload/index.d.ts +7 -0
- package/lib/interaction/upload/upload.accept.d.ts +87 -0
- package/lib/interaction/upload/upload.action.d.ts +17 -0
- package/lib/interaction/upload/upload.action.directive.d.ts +17 -0
- package/lib/interaction/upload/upload.area.component.d.ts +22 -0
- package/lib/interaction/upload/upload.button.component.d.ts +24 -0
- package/lib/interaction/upload/upload.component.d.ts +58 -0
- package/lib/layout/_layout.scss +4 -0
- package/lib/layout/avatar/_avatar.scss +102 -0
- package/lib/layout/avatar/avatar.component.d.ts +32 -0
- package/lib/layout/avatar/avatar.d.ts +54 -0
- package/lib/layout/avatar/avatar.service.d.ts +66 -0
- package/lib/layout/avatar/avatar.view.component.d.ts +24 -0
- package/lib/layout/avatar/index.d.ts +3 -0
- package/lib/layout/content/content.pit.directive.d.ts +6 -2
- package/lib/layout/index.d.ts +1 -0
- package/lib/loading/basic-loading.component.d.ts +13 -8
- package/lib/loading/index.d.ts +1 -0
- package/lib/loading/loading.component.d.ts +4 -3
- package/lib/loading/loading.d.ts +10 -0
- package/lib/style/_config.scss +17 -1
- package/lib/style/_root-variables.scss +4 -0
- package/lib/style/_variables.scss +8 -0
- package/package.json +1 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Injectable, input, inject, effect, Directive, NgModule, Component, output, computed, HostListener, InjectionToken, signal, ChangeDetectionStrategy, ElementRef, Injector, DestroyRef, viewChild, makeEnvironmentProviders, TemplateRef, SecurityContext, forwardRef, ViewContainerRef, ChangeDetectorRef, Inject, Renderer2 } from '@angular/core';
|
|
3
|
+
import { DASH_CHARACTER_PREFIX_INSTANCE, asPromise, cssClassesSet, isDefinedAndNotFalse, spaceSeparatedCssClasses, objectHasNoKeys, getValueFromGetter, firstValue, filterUndefinedValues, separateValues, splitFront, asDecisionFunction, SLASH_PATH_FILE_TYPE_SEPARATOR, filterMaybeArrayValues, mapIterable, toReadableError, isDefaultReadableError, MS_IN_SECOND, mergeObjects, build, ServerErrorResponse, UnauthorizedServerErrorResponse, makeTimer, MS_IN_MINUTE, toggleTimerRunning, unixTimeNumberForNow, ModelRelationUtility, encodeModelKeyTypePair, useIterableOrValue, modifier, maybeModifierMapToFunction, invertMaybeBoolean, isMaybeNot, isNotFalse, combineMaps, addModifiers, removeModifiers, applyBestFit, findNext, asArray, makeValuesGroupMap, compareWithMappedValuesFunction, splitCommaSeparatedStringToSet } from '@dereekb/util';
|
|
3
4
|
import * as i1$2 from '@dereekb/dbx-core';
|
|
4
|
-
import { AbstractSubscriptionDirective, AbstractTransitionWatcherDirective, DbxInjectionComponent, AbstractDbxActionValueGetterDirective, AbstractDbxButtonDirective, provideDbxButton, DbxCoreButtonModule, AbstractDbxActionHandlerDirective, FilterSourceDirective, provideActionStoreSource, isClickableFilterPreset, AbstractDbxAnchorDirective, expandClickableAnchorLinkTrees, DbxCoreFilterModule, DbxButton, DBX_INJECTION_COMPONENT_DATA, checkNgContentWrapperHasContent,
|
|
5
|
-
import { DASH_CHARACTER_PREFIX_INSTANCE, asPromise, cssClassesSet, spaceSeparatedCssClasses, isDefinedAndNotFalse, objectHasNoKeys, getValueFromGetter, firstValue, filterUndefinedValues, filterMaybeArrayValues, mapIterable, toReadableError, isDefaultReadableError, MS_IN_SECOND, mergeObjects, build, ServerErrorResponse, UnauthorizedServerErrorResponse, makeTimer, MS_IN_MINUTE, toggleTimerRunning, unixTimeNumberForNow, ModelRelationUtility, encodeModelKeyTypePair, useIterableOrValue, modifier, maybeModifierMapToFunction, invertMaybeBoolean, isMaybeNot, isNotFalse, combineMaps, addModifiers, removeModifiers, applyBestFit, findNext, asArray, makeValuesGroupMap, compareWithMappedValuesFunction, splitCommaSeparatedStringToSet } from '@dereekb/util';
|
|
5
|
+
import { AbstractSubscriptionDirective, AbstractTransitionWatcherDirective, DbxInjectionComponent, AbstractDbxActionValueGetterDirective, AbstractDbxButtonDirective, provideDbxButton, dbxActionWorkProgress, DbxCoreButtonModule, AbstractDbxActionHandlerDirective, FilterSourceDirective, provideActionStoreSource, isClickableFilterPreset, AbstractDbxAnchorDirective, expandClickableAnchorLinkTrees, DbxCoreFilterModule, DbxButton, DbxActionContextStoreSourceInstance, DBX_INJECTION_COMPONENT_DATA, checkNgContentWrapperHasContent, DbxActionSourceDirective, DbxActionSuccessHandlerDirective, DbxActionDirective, DbxActionValueStreamDirective, transformEmptyStringInputToUndefined, isIdleActionState, canTriggerAction, DbxCoreActionModule, DbxActionButtonDirective, onDbxAppAuth, SimpleStorageAccessorFactory, anchorTypeForAnchor, mergeStaticProviders, asSegueRef, AbstractTransitionDirective, DbxRouterService, AbstractIfDirective, isSegueRefActive } from '@dereekb/dbx-core';
|
|
6
6
|
import { NgPopoverRef, NgOverlayContainerService } from 'ng-overlay-container';
|
|
7
7
|
import { of, map, BehaviorSubject, distinctUntilChanged, shareReplay, delay, switchMap, combineLatest, Subject, first, startWith, filter, throttleTime, skip, defaultIfEmpty, delayWhen, timer, asyncScheduler, from, firstValueFrom, mergeMap, race, tap, catchError, merge, exhaustMap, distinct } from 'rxjs';
|
|
8
8
|
import { filterMaybe, asObservable, LockSet, SubscriptionObject, distinctUntilItemsHaveDifferentValues, skipAllInitialMaybe, maybeValueFromObservableOrValue, switchMapMaybeLoadingContextStream, loadingStateContext, LoadingStateType, loadingStateType, successResult, valueFromFinishedLoadingState, mapForEach, switchMapMaybe, listLoadingStateContext, isLoadingStateFinishedLoading, startWithBeginLoading, initialize, isNot } from '@dereekb/rxjs';
|
|
@@ -1530,16 +1530,61 @@ class AbstractProgressButtonDirective extends AbstractSubscriptionDirective {
|
|
|
1530
1530
|
return classes;
|
|
1531
1531
|
});
|
|
1532
1532
|
baseCssClasses$ = toObservable(this.baseCssClassSignal);
|
|
1533
|
-
|
|
1534
|
-
|
|
1533
|
+
workingProgressSignal = computed(() => {
|
|
1534
|
+
const working = this.working();
|
|
1535
|
+
const config = this.configSignal();
|
|
1536
|
+
const configWorking = config?.working;
|
|
1537
|
+
const workingProgress = dbxActionWorkProgress([working, configWorking], config?.value);
|
|
1538
|
+
return workingProgress;
|
|
1539
|
+
});
|
|
1540
|
+
isWorkingSignal = computed(() => isDefinedAndNotFalse(this.workingProgressSignal()));
|
|
1541
|
+
workingValueSignal = computed(() => {
|
|
1542
|
+
const working = this.workingProgressSignal();
|
|
1543
|
+
let result;
|
|
1544
|
+
if (typeof working === 'number') {
|
|
1545
|
+
result = working;
|
|
1546
|
+
}
|
|
1547
|
+
return result;
|
|
1548
|
+
});
|
|
1549
|
+
modeSignal = computed(() => {
|
|
1550
|
+
const config = this.configSignal();
|
|
1551
|
+
const workingValue = this.workingValueSignal();
|
|
1552
|
+
const mode = config?.mode;
|
|
1553
|
+
let result;
|
|
1554
|
+
if (!mode) {
|
|
1555
|
+
if (workingValue != null) {
|
|
1556
|
+
result = 'determinate';
|
|
1557
|
+
}
|
|
1558
|
+
else {
|
|
1559
|
+
result = 'indeterminate';
|
|
1560
|
+
}
|
|
1561
|
+
}
|
|
1562
|
+
else {
|
|
1563
|
+
result = mode;
|
|
1564
|
+
}
|
|
1565
|
+
return result;
|
|
1566
|
+
});
|
|
1567
|
+
disabledSignal = computed(() => {
|
|
1568
|
+
const disabled = this.disabled();
|
|
1569
|
+
const configDisabled = this.configSignal()?.disabled;
|
|
1570
|
+
return disabled || configDisabled;
|
|
1571
|
+
});
|
|
1535
1572
|
buttonTypeAttributeSignal = computed(() => {
|
|
1536
1573
|
const options = this.configSignal();
|
|
1537
1574
|
return options?.buttonTypeAttribute ?? options?.type;
|
|
1538
1575
|
});
|
|
1539
|
-
buttonDisabledSignal = computed(() =>
|
|
1540
|
-
|
|
1576
|
+
buttonDisabledSignal = computed(() => {
|
|
1577
|
+
const working = this.isWorkingSignal();
|
|
1578
|
+
const disabled = this.disabledSignal();
|
|
1579
|
+
return working || disabled;
|
|
1580
|
+
});
|
|
1581
|
+
showProgressSignal = computed(() => {
|
|
1582
|
+
const working = this.isWorkingSignal();
|
|
1583
|
+
const disabled = this.disabledSignal();
|
|
1584
|
+
return working && !disabled;
|
|
1585
|
+
});
|
|
1541
1586
|
handleClick(event) {
|
|
1542
|
-
const working = this.
|
|
1587
|
+
const working = this.isWorkingSignal();
|
|
1543
1588
|
const disabled = this.disabledSignal();
|
|
1544
1589
|
if (!working && !disabled) {
|
|
1545
1590
|
this.btnClick.emit(event);
|
|
@@ -1560,11 +1605,11 @@ class DbxProgressBarButtonComponent extends AbstractProgressButtonDirective {
|
|
|
1560
1605
|
buttonCss$ = this.baseCssClasses$.pipe(distinctUntilItemsHaveDifferentValues((x) => x[1]), map((x) => spaceSeparatedCssClasses(x[1])), shareReplay(1));
|
|
1561
1606
|
buttonCssSignal = toSignal(this.buttonCss$);
|
|
1562
1607
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxProgressBarButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1563
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxProgressBarButtonComponent, isStandalone: true, selector: "dbx-progress-bar-button,dbx-bar-button", usesInheritance: true, ngImport: i0, template: "<button class=\"dbx-base-button dbx-progress-bar-button\" mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (configSignal()?.buttonIcon) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet!\" [ngClass]=\"configSignal()?.buttonIcon?.customClass!\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n }\n <span>\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n @if (showProgressSignal()) {\n <mat-progress-bar class=\"bar\" [color]=\"configSignal()?.barColor!\" [mode]=\"
|
|
1608
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxProgressBarButtonComponent, isStandalone: true, selector: "dbx-progress-bar-button,dbx-bar-button", usesInheritance: true, ngImport: i0, template: "<button class=\"dbx-base-button dbx-progress-bar-button\" mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (configSignal()?.buttonIcon) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet!\" [ngClass]=\"configSignal()?.buttonIcon?.customClass!\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n }\n <span>\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n @if (showProgressSignal()) {\n <mat-progress-bar class=\"bar\" [color]=\"configSignal()?.barColor!\" [mode]=\"modeSignal()\" [value]=\"workingValueSignal()\"></mat-progress-bar>\n }\n</button>\n", styles: [":host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button.working{cursor:not-allowed}:host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button.fullWidth{width:100%}:host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button>::ng-deep .mdc-button__label{position:unset;display:flex;align-items:center}:host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button>::ng-deep .mdc-button__label .bar{position:absolute;top:0;left:0}:host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button>::ng-deep .mdc-button__label mat-icon{padding-right:5px}:host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button>::ng-deep .mdc-button__label mat-icon.is-mat-icon{font-size:18px;position:relative;top:3px}\n", ":host button.mat-mdc-button .button-text{display:flex;align-items:center}:host button.mat-mdc-button mat-icon.mat-button-icon.mat-icon.mat-ligature-font[fontIcon]:before,:host button.mat-mdc-button mat-icon.mat-fab-icon.mat-icon.mat-ligature-font[fontIcon]:before{content:unset}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1564
1609
|
}
|
|
1565
1610
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxProgressBarButtonComponent, decorators: [{
|
|
1566
1611
|
type: Component,
|
|
1567
|
-
args: [{ selector: 'dbx-progress-bar-button,dbx-bar-button', imports: [MatButtonModule, MatIconModule, MatProgressBar, NgClass, NgStyle], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<button class=\"dbx-base-button dbx-progress-bar-button\" mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (configSignal()?.buttonIcon) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet!\" [ngClass]=\"configSignal()?.buttonIcon?.customClass!\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n }\n <span>\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n @if (showProgressSignal()) {\n <mat-progress-bar class=\"bar\" [color]=\"configSignal()?.barColor!\" [mode]=\"
|
|
1612
|
+
args: [{ selector: 'dbx-progress-bar-button,dbx-bar-button', imports: [MatButtonModule, MatIconModule, MatProgressBar, NgClass, NgStyle], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<button class=\"dbx-base-button dbx-progress-bar-button\" mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (configSignal()?.buttonIcon) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet!\" [ngClass]=\"configSignal()?.buttonIcon?.customClass!\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n }\n <span>\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n @if (showProgressSignal()) {\n <mat-progress-bar class=\"bar\" [color]=\"configSignal()?.barColor!\" [mode]=\"modeSignal()\" [value]=\"workingValueSignal()\"></mat-progress-bar>\n }\n</button>\n", styles: [":host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button.working{cursor:not-allowed}:host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button.fullWidth{width:100%}:host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button>::ng-deep .mdc-button__label{position:unset;display:flex;align-items:center}:host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button>::ng-deep .mdc-button__label .bar{position:absolute;top:0;left:0}:host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button>::ng-deep .mdc-button__label mat-icon{padding-right:5px}:host>button.dbx-progress-bar-button.mdc-button.mat-mdc-button>::ng-deep .mdc-button__label mat-icon.is-mat-icon{font-size:18px;position:relative;top:3px}\n", ":host button.mat-mdc-button .button-text{display:flex;align-items:center}:host button.mat-mdc-button mat-icon.mat-button-icon.mat-icon.mat-ligature-font[fontIcon]:before,:host button.mat-mdc-button mat-icon.mat-fab-icon.mat-icon.mat-ligature-font[fontIcon]:before{content:unset}\n"] }]
|
|
1568
1613
|
}] });
|
|
1569
1614
|
|
|
1570
1615
|
class DbxProgressSpinnerButtonComponent extends AbstractProgressButtonDirective {
|
|
@@ -1633,11 +1678,11 @@ class DbxProgressSpinnerButtonComponent extends AbstractProgressButtonDirective
|
|
|
1633
1678
|
return hasCustomStyle ? { 'dbx-progress-spinner-custom': true } : undefined;
|
|
1634
1679
|
});
|
|
1635
1680
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxProgressSpinnerButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1636
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxProgressSpinnerButtonComponent, isStandalone: true, selector: "dbx-progress-spinner-button,dbx-spinner-button", viewQueries: [{ propertyName: "buttonRef", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button class=\"dbx-base-button dbx-progress-spinner-button\" #button mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (showTextSignal()) {\n @if (showTextButtonIconSignal()) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet\" [class.working]=\"showProgressSignal()\" [ngClass]=\"configSignal()?.buttonIcon?.customClass\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\">\n {{ configSignal()?.buttonIcon?.fontSet ? '' : configSignal()?.buttonIcon?.fontIcon }}\n </mat-icon>\n }\n <span class=\"button-text\" [class.working]=\"showProgressSignal()\">\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n }\n @if (showIconSignal()) {\n <!-- Use ng-container to prevent mat-icon from being a child of the button which changes the behavior -->\n <ng-container>\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.fab && configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n </ng-container>\n }\n @if (showProgressSignal()) {\n <mat-spinner class=\"spinner\" [diameter]=\"spinnerSizeSignal()\" [color]=\"configSignal()?.spinnerColor!\" [mode]=\"
|
|
1681
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxProgressSpinnerButtonComponent, isStandalone: true, selector: "dbx-progress-spinner-button,dbx-spinner-button", viewQueries: [{ propertyName: "buttonRef", first: true, predicate: ["button"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<button class=\"dbx-base-button dbx-progress-spinner-button\" #button mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (showTextSignal()) {\n @if (showTextButtonIconSignal()) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet\" [class.working]=\"showProgressSignal()\" [ngClass]=\"configSignal()?.buttonIcon?.customClass\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\">\n {{ configSignal()?.buttonIcon?.fontSet ? '' : configSignal()?.buttonIcon?.fontIcon }}\n </mat-icon>\n }\n <span class=\"button-text\" [class.working]=\"showProgressSignal()\">\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n }\n @if (showIconSignal()) {\n <!-- Use ng-container to prevent mat-icon from being a child of the button which changes the behavior -->\n <ng-container>\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.fab && configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n </ng-container>\n }\n @if (showProgressSignal()) {\n <mat-spinner class=\"spinner\" [diameter]=\"spinnerSizeSignal()\" [color]=\"configSignal()?.spinnerColor!\" [mode]=\"modeSignal()\" [value]=\"workingValueSignal()\" [ngStyle]=\"customSpinnerStyleSignal()\" [ngClass]=\"customSpinnerStyleClassSignal()\" [class.working]=\"showProgressSignal()\"></mat-spinner>\n }\n</button>\n", styles: [":host button{min-height:36px;height:unset;outline:none}:host button.working{cursor:not-allowed}:host button ::ng-deep .mdc-button__label{display:flex;align-items:center;justify-content:center}:host button.mat-mdc-button.mat-mdc-icon-button{min-width:unset;--mdc-icon-button-icon-size: unset;--mat-text-button-with-icon-horizontal-padding: 0px;--mdc-icon-button-state-layer-size: 36px;border-radius:50%}:host button.mat-mdc-button.mat-mdc-icon-button .mat-mdc-progress-spinner{--mdc-icon-button-icon-size: 36px}:host button.mat-mdc-button.mat-mdc-icon-button.dbx-progress-spinner-fab{height:48px;--mdc-icon-button-state-layer-size: 48px}:host button.mat-mdc-button.mat-mdc-icon-button.dbx-progress-spinner-fab .mat-mdc-progress-spinner{--mdc-icon-button-icon-size: 48px}:host button.fullWidth{width:100%}:host button .mat-mdc-progress-spinner{position:absolute;opacity:0;transition:opacity .3s ease-in-out}:host button .mat-mdc-progress-spinner.working{opacity:1}:host button .dbx-progress-spinner-custom.mat-progress-spinner.mat-accent circle,:host button .dbx-progress-spinner-custom.mat-mdc-progress-spinner.mat-accent circle{stroke:unset!important}:host button .button-text{opacity:1;transition:opacity .3s ease-in-out}:host button .button-text.working{opacity:0}:host button mat-icon.mat-button-icon{padding-right:5px;transition:opacity .3s ease-in-out;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-right:var(--mat-protected-button-icon-spacing, 8px)}:host button mat-icon.mat-button-icon.is-mat-icon{position:relative;left:3px}:host button mat-icon.mat-button-icon.working{opacity:0}\n", ":host button.mat-mdc-button .button-text{display:flex;align-items:center}:host button.mat-mdc-button mat-icon.mat-button-icon.mat-icon.mat-ligature-font[fontIcon]:before,:host button.mat-mdc-button mat-icon.mat-fab-icon.mat-icon.mat-ligature-font[fontIcon]:before{content:unset}\n"], dependencies: [{ kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1637
1682
|
}
|
|
1638
1683
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxProgressSpinnerButtonComponent, decorators: [{
|
|
1639
1684
|
type: Component,
|
|
1640
|
-
args: [{ selector: 'dbx-progress-spinner-button,dbx-spinner-button', imports: [MatButtonModule, MatIconModule, MatProgressSpinner, NgClass, NgStyle], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<button class=\"dbx-base-button dbx-progress-spinner-button\" #button mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (showTextSignal()) {\n @if (showTextButtonIconSignal()) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet\" [class.working]=\"showProgressSignal()\" [ngClass]=\"configSignal()?.buttonIcon?.customClass\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\">\n {{ configSignal()?.buttonIcon?.fontSet ? '' : configSignal()?.buttonIcon?.fontIcon }}\n </mat-icon>\n }\n <span class=\"button-text\" [class.working]=\"showProgressSignal()\">\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n }\n @if (showIconSignal()) {\n <!-- Use ng-container to prevent mat-icon from being a child of the button which changes the behavior -->\n <ng-container>\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.fab && configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n </ng-container>\n }\n @if (showProgressSignal()) {\n <mat-spinner class=\"spinner\" [diameter]=\"spinnerSizeSignal()\" [color]=\"configSignal()?.spinnerColor!\" [mode]=\"
|
|
1685
|
+
args: [{ selector: 'dbx-progress-spinner-button,dbx-spinner-button', imports: [MatButtonModule, MatIconModule, MatProgressSpinner, NgClass, NgStyle], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<button class=\"dbx-base-button dbx-progress-spinner-button\" #button mat-button [type]=\"buttonTypeAttributeSignal()\" [color]=\"configSignal()?.buttonColor\" [ngClass]=\"buttonCssSignal()\" [ngStyle]=\"configSignal()?.customStyle\" [disabled]=\"buttonDisabledSignal()\">\n @if (showTextSignal()) {\n @if (showTextButtonIconSignal()) {\n <mat-icon class=\"mat-button-icon\" [class.is-mat-icon]=\"!configSignal()?.buttonIcon?.fontSet\" [class.working]=\"showProgressSignal()\" [ngClass]=\"configSignal()?.buttonIcon?.customClass\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\">\n {{ configSignal()?.buttonIcon?.fontSet ? '' : configSignal()?.buttonIcon?.fontIcon }}\n </mat-icon>\n }\n <span class=\"button-text\" [class.working]=\"showProgressSignal()\">\n {{ configSignal()?.text }}\n <ng-content></ng-content>\n </span>\n }\n @if (showIconSignal()) {\n <!-- Use ng-container to prevent mat-icon from being a child of the button which changes the behavior -->\n <ng-container>\n <mat-icon class=\"mat-fab-icon\" [fontSet]=\"configSignal()?.buttonIcon?.fontSet!\" [fontIcon]=\"configSignal()?.buttonIcon?.fontIcon!\" [color]=\"configSignal()?.buttonIcon?.color!\" [svgIcon]=\"configSignal()?.buttonIcon?.svgIcon!\" [inline]=\"configSignal()?.fab && configSignal()?.buttonIcon?.inline!\">\n {{ configSignal()?.buttonIcon?.fontSet! ? '' : configSignal()?.buttonIcon?.fontIcon! }}\n </mat-icon>\n </ng-container>\n }\n @if (showProgressSignal()) {\n <mat-spinner class=\"spinner\" [diameter]=\"spinnerSizeSignal()\" [color]=\"configSignal()?.spinnerColor!\" [mode]=\"modeSignal()\" [value]=\"workingValueSignal()\" [ngStyle]=\"customSpinnerStyleSignal()\" [ngClass]=\"customSpinnerStyleClassSignal()\" [class.working]=\"showProgressSignal()\"></mat-spinner>\n }\n</button>\n", styles: [":host button{min-height:36px;height:unset;outline:none}:host button.working{cursor:not-allowed}:host button ::ng-deep .mdc-button__label{display:flex;align-items:center;justify-content:center}:host button.mat-mdc-button.mat-mdc-icon-button{min-width:unset;--mdc-icon-button-icon-size: unset;--mat-text-button-with-icon-horizontal-padding: 0px;--mdc-icon-button-state-layer-size: 36px;border-radius:50%}:host button.mat-mdc-button.mat-mdc-icon-button .mat-mdc-progress-spinner{--mdc-icon-button-icon-size: 36px}:host button.mat-mdc-button.mat-mdc-icon-button.dbx-progress-spinner-fab{height:48px;--mdc-icon-button-state-layer-size: 48px}:host button.mat-mdc-button.mat-mdc-icon-button.dbx-progress-spinner-fab .mat-mdc-progress-spinner{--mdc-icon-button-icon-size: 48px}:host button.fullWidth{width:100%}:host button .mat-mdc-progress-spinner{position:absolute;opacity:0;transition:opacity .3s ease-in-out}:host button .mat-mdc-progress-spinner.working{opacity:1}:host button .dbx-progress-spinner-custom.mat-progress-spinner.mat-accent circle,:host button .dbx-progress-spinner-custom.mat-mdc-progress-spinner.mat-accent circle{stroke:unset!important}:host button .button-text{opacity:1;transition:opacity .3s ease-in-out}:host button .button-text.working{opacity:0}:host button mat-icon.mat-button-icon{padding-right:5px;transition:opacity .3s ease-in-out;font-size:1.125rem;height:1.125rem;width:1.125rem;margin-right:var(--mat-protected-button-icon-spacing, 8px)}:host button mat-icon.mat-button-icon.is-mat-icon{position:relative;left:3px}:host button mat-icon.mat-button-icon.working{opacity:0}\n", ":host button.mat-mdc-button .button-text{display:flex;align-items:center}:host button.mat-mdc-button mat-icon.mat-button-icon.mat-icon.mat-ligature-font[fontIcon]:before,:host button.mat-mdc-button mat-icon.mat-fab-icon.mat-icon.mat-ligature-font[fontIcon]:before{content:unset}\n"] }]
|
|
1641
1686
|
}] });
|
|
1642
1687
|
|
|
1643
1688
|
const importsAndExports$s = [DbxProgressSpinnerButtonComponent, DbxProgressBarButtonComponent];
|
|
@@ -1687,6 +1732,7 @@ var DbxButtonDisplayType;
|
|
|
1687
1732
|
* Complex button that supports loading states.
|
|
1688
1733
|
*/
|
|
1689
1734
|
class DbxButtonComponent extends AbstractDbxButtonDirective {
|
|
1735
|
+
bar = input(false, { transform: isDefinedAndNotFalse });
|
|
1690
1736
|
type = input();
|
|
1691
1737
|
buttonStyle = input();
|
|
1692
1738
|
color = input(undefined);
|
|
@@ -1700,6 +1746,7 @@ class DbxButtonComponent extends AbstractDbxButtonDirective {
|
|
|
1700
1746
|
flat = input(false, { transform: isDefinedAndNotFalse });
|
|
1701
1747
|
iconOnly = input(false, { transform: isDefinedAndNotFalse });
|
|
1702
1748
|
fab = input(false, { transform: isDefinedAndNotFalse });
|
|
1749
|
+
mode = input();
|
|
1703
1750
|
typeSignal = computed(() => {
|
|
1704
1751
|
const style = this.buttonStyle();
|
|
1705
1752
|
let type = this.type() ?? style?.type;
|
|
@@ -1723,37 +1770,40 @@ class DbxButtonComponent extends AbstractDbxButtonDirective {
|
|
|
1723
1770
|
configSignal = computed(() => {
|
|
1724
1771
|
// configure custom style
|
|
1725
1772
|
const customStyle = {};
|
|
1726
|
-
const
|
|
1727
|
-
const customButtonColorValue = this.customButtonColor() ??
|
|
1773
|
+
const buttonStyle = this.buttonStyle();
|
|
1774
|
+
const customButtonColorValue = this.customButtonColor() ?? buttonStyle?.customButtonColor;
|
|
1728
1775
|
if (customButtonColorValue) {
|
|
1729
1776
|
customStyle['background'] = customButtonColorValue;
|
|
1730
1777
|
}
|
|
1731
|
-
const customTextColorValue = this.customTextColor() ??
|
|
1778
|
+
const customTextColorValue = this.customTextColor() ?? buttonStyle?.customTextColor;
|
|
1732
1779
|
if (customTextColorValue) {
|
|
1733
1780
|
customStyle['color'] = customTextColorValue;
|
|
1734
1781
|
}
|
|
1735
|
-
const customSpinnerColorValue = this.customSpinnerColor() ??
|
|
1782
|
+
const customSpinnerColorValue = this.customSpinnerColor() ?? buttonStyle?.customSpinnerColor;
|
|
1736
1783
|
const customSpinnerColor = customSpinnerColorValue ?? customTextColorValue;
|
|
1737
|
-
const buttonColor = this.color() ??
|
|
1738
|
-
const spinnerColor = this.spinnerColor() ??
|
|
1784
|
+
const buttonColor = this.color() ?? buttonStyle?.color;
|
|
1785
|
+
const spinnerColor = this.spinnerColor() ?? buttonStyle?.spinnerColor ?? buttonColor;
|
|
1739
1786
|
const disabledSignalValue = this.disabledSignal();
|
|
1740
|
-
const disabled = !this.
|
|
1787
|
+
const disabled = !this.isWorkingSignal() && disabledSignalValue; // Only disabled if we're not working, in order to show the animation.
|
|
1741
1788
|
const iconValue = this.iconSignal();
|
|
1742
1789
|
const buttonIcon = iconValue ? { fontIcon: iconValue } : undefined;
|
|
1743
1790
|
const textValue = this.textSignal();
|
|
1744
1791
|
const isIconOnlyButton = buttonIcon && !textValue;
|
|
1745
|
-
const fab = this.fab() ||
|
|
1792
|
+
const fab = this.fab() || buttonStyle?.fab;
|
|
1793
|
+
const mode = this.mode() ?? buttonStyle?.mode;
|
|
1794
|
+
const working = this.workingSignal();
|
|
1795
|
+
const buttonType = this.typeSignal();
|
|
1746
1796
|
const config = {
|
|
1747
1797
|
fab,
|
|
1748
|
-
working
|
|
1798
|
+
working,
|
|
1749
1799
|
buttonIcon,
|
|
1750
1800
|
customStyle,
|
|
1751
1801
|
customClass: 'dbx-button ' + (isIconOnlyButton ? 'dbx-button-no-text' : ''),
|
|
1752
1802
|
text: textValue ?? '',
|
|
1753
|
-
buttonType
|
|
1803
|
+
buttonType,
|
|
1754
1804
|
buttonColor,
|
|
1755
1805
|
barColor: 'accent',
|
|
1756
|
-
mode
|
|
1806
|
+
mode,
|
|
1757
1807
|
spinnerColor,
|
|
1758
1808
|
customSpinnerColor,
|
|
1759
1809
|
disabled
|
|
@@ -1761,23 +1811,43 @@ class DbxButtonComponent extends AbstractDbxButtonDirective {
|
|
|
1761
1811
|
return config;
|
|
1762
1812
|
});
|
|
1763
1813
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
1764
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
1765
|
-
|
|
1814
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxButtonComponent, isStandalone: true, selector: "dbx-button", inputs: { bar: { classPropertyName: "bar", publicName: "bar", isSignal: true, isRequired: false, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: false, transformFunction: null }, buttonStyle: { classPropertyName: "buttonStyle", publicName: "buttonStyle", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, spinnerColor: { classPropertyName: "spinnerColor", publicName: "spinnerColor", isSignal: true, isRequired: false, transformFunction: null }, customButtonColor: { classPropertyName: "customButtonColor", publicName: "customButtonColor", isSignal: true, isRequired: false, transformFunction: null }, customTextColor: { classPropertyName: "customTextColor", publicName: "customTextColor", isSignal: true, isRequired: false, transformFunction: null }, customSpinnerColor: { classPropertyName: "customSpinnerColor", publicName: "customSpinnerColor", isSignal: true, isRequired: false, transformFunction: null }, basic: { classPropertyName: "basic", publicName: "basic", isSignal: true, isRequired: false, transformFunction: null }, raised: { classPropertyName: "raised", publicName: "raised", isSignal: true, isRequired: false, transformFunction: null }, stroked: { classPropertyName: "stroked", publicName: "stroked", isSignal: true, isRequired: false, transformFunction: null }, flat: { classPropertyName: "flat", publicName: "flat", isSignal: true, isRequired: false, transformFunction: null }, iconOnly: { classPropertyName: "iconOnly", publicName: "iconOnly", isSignal: true, isRequired: false, transformFunction: null }, fab: { classPropertyName: "fab", publicName: "fab", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null } }, providers: provideDbxButton(DbxButtonComponent), usesInheritance: true, ngImport: i0, template: `
|
|
1815
|
+
@if (bar()) {
|
|
1816
|
+
<dbx-progress-bar-button (btnClick)="clickButton()" [config]="configSignal()">
|
|
1817
|
+
<ng-template [ngTemplateOutlet]="content"></ng-template>
|
|
1818
|
+
</dbx-progress-bar-button>
|
|
1819
|
+
} @else {
|
|
1820
|
+
<dbx-progress-spinner-button (btnClick)="clickButton()" [config]="configSignal()">
|
|
1821
|
+
<ng-template [ngTemplateOutlet]="content"></ng-template>
|
|
1822
|
+
</dbx-progress-spinner-button>
|
|
1823
|
+
}
|
|
1824
|
+
<!-- Content -->
|
|
1825
|
+
<ng-template #content>
|
|
1766
1826
|
<ng-content></ng-content>
|
|
1767
|
-
</
|
|
1768
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DbxProgressSpinnerButtonComponent, selector: "dbx-progress-spinner-button,dbx-spinner-button" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1827
|
+
</ng-template>
|
|
1828
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxProgressSpinnerButtonComponent, selector: "dbx-progress-spinner-button,dbx-spinner-button" }, { kind: "component", type: DbxProgressBarButtonComponent, selector: "dbx-progress-bar-button,dbx-bar-button" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1769
1829
|
}
|
|
1770
1830
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxButtonComponent, decorators: [{
|
|
1771
1831
|
type: Component,
|
|
1772
1832
|
args: [{
|
|
1773
1833
|
selector: 'dbx-button',
|
|
1774
1834
|
template: `
|
|
1775
|
-
|
|
1835
|
+
@if (bar()) {
|
|
1836
|
+
<dbx-progress-bar-button (btnClick)="clickButton()" [config]="configSignal()">
|
|
1837
|
+
<ng-template [ngTemplateOutlet]="content"></ng-template>
|
|
1838
|
+
</dbx-progress-bar-button>
|
|
1839
|
+
} @else {
|
|
1840
|
+
<dbx-progress-spinner-button (btnClick)="clickButton()" [config]="configSignal()">
|
|
1841
|
+
<ng-template [ngTemplateOutlet]="content"></ng-template>
|
|
1842
|
+
</dbx-progress-spinner-button>
|
|
1843
|
+
}
|
|
1844
|
+
<!-- Content -->
|
|
1845
|
+
<ng-template #content>
|
|
1776
1846
|
<ng-content></ng-content>
|
|
1777
|
-
</
|
|
1847
|
+
</ng-template>
|
|
1778
1848
|
`,
|
|
1779
1849
|
providers: provideDbxButton(DbxButtonComponent),
|
|
1780
|
-
imports: [DbxProgressSpinnerButtonComponent],
|
|
1850
|
+
imports: [DbxProgressSpinnerButtonComponent, DbxProgressBarButtonComponent, NgTemplateOutlet],
|
|
1781
1851
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1782
1852
|
standalone: true
|
|
1783
1853
|
}]
|
|
@@ -1873,7 +1943,7 @@ class DbxFilterWrapperComponent extends AbstractDbxActionHandlerDirective {
|
|
|
1873
1943
|
this.filterSourceDirective.resetFilter();
|
|
1874
1944
|
}
|
|
1875
1945
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFilterWrapperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1876
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFilterWrapperComponent, isStandalone: true, selector: "dbx-filter-wrapper", inputs: { showButtons: { classPropertyName: "showButtons", publicName: "showButtons", isSignal: true, isRequired: false, transformFunction: null }, applyRaised: { classPropertyName: "applyRaised", publicName: "applyRaised", isSignal: true, isRequired: false, transformFunction: null }, applyIcon: { classPropertyName: "applyIcon", publicName: "applyIcon", isSignal: true, isRequired: false, transformFunction: null }, applyText: { classPropertyName: "applyText", publicName: "applyText", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideActionStoreSource(null)], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-filter-wrapper\">\n <div class=\"dbx-filter-wrapper-content\">\n <ng-content></ng-content>\n </div>\n @if (showButtons()) {\n <div fxLayout=\"row\">\n <dbx-button dbxActionButton [raised]=\"applyRaised()\" [text]=\"applyText()\" [icon]=\"applyIcon()\"></dbx-button>\n <div class=\"spacer\"></div>\n <button mat-icon-button (click)=\"resetFilter()\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: DbxButtonModule }, { kind: "directive", type: i1$2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1946
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFilterWrapperComponent, isStandalone: true, selector: "dbx-filter-wrapper", inputs: { showButtons: { classPropertyName: "showButtons", publicName: "showButtons", isSignal: true, isRequired: false, transformFunction: null }, applyRaised: { classPropertyName: "applyRaised", publicName: "applyRaised", isSignal: true, isRequired: false, transformFunction: null }, applyIcon: { classPropertyName: "applyIcon", publicName: "applyIcon", isSignal: true, isRequired: false, transformFunction: null }, applyText: { classPropertyName: "applyText", publicName: "applyText", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideActionStoreSource(null)], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-filter-wrapper\">\n <div class=\"dbx-filter-wrapper-content\">\n <ng-content></ng-content>\n </div>\n @if (showButtons()) {\n <div fxLayout=\"row\">\n <dbx-button dbxActionButton [raised]=\"applyRaised()\" [text]=\"applyText()\" [icon]=\"applyIcon()\"></dbx-button>\n <div class=\"spacer\"></div>\n <button mat-icon-button (click)=\"resetFilter()\">\n <mat-icon>clear</mat-icon>\n </button>\n </div>\n }\n</div>\n", dependencies: [{ kind: "ngmodule", type: DbxButtonModule }, { kind: "directive", type: i1$2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i1$1.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: FlexLayoutModule }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
1877
1947
|
}
|
|
1878
1948
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFilterWrapperComponent, decorators: [{
|
|
1879
1949
|
type: Component,
|
|
@@ -2639,7 +2709,7 @@ class DbxPopupControlButtonsComponent {
|
|
|
2639
2709
|
}
|
|
2640
2710
|
<dbx-button-spacer></dbx-button-spacer>
|
|
2641
2711
|
<dbx-button [flat]="true" icon="close" color="warn" (buttonClick)="closeClicked()"></dbx-button>
|
|
2642
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: DbxButtonModule }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2712
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: DbxButtonModule }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
2643
2713
|
}
|
|
2644
2714
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxPopupControlButtonsComponent, decorators: [{
|
|
2645
2715
|
type: Component,
|
|
@@ -3303,6 +3373,521 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
3303
3373
|
}]
|
|
3304
3374
|
}] });
|
|
3305
3375
|
|
|
3376
|
+
class AbstractDbxFileUploadComponent {
|
|
3377
|
+
/**
|
|
3378
|
+
* Whether or not multiple files can be uploaded.
|
|
3379
|
+
*/
|
|
3380
|
+
multiple = input(undefined, { transform: (x) => x === '' || x });
|
|
3381
|
+
/**
|
|
3382
|
+
* Accepted file types filter.
|
|
3383
|
+
*/
|
|
3384
|
+
accept = input([]);
|
|
3385
|
+
/**
|
|
3386
|
+
* This disabled is input-only
|
|
3387
|
+
*/
|
|
3388
|
+
disabled = input();
|
|
3389
|
+
/**
|
|
3390
|
+
* This working is input-only
|
|
3391
|
+
*/
|
|
3392
|
+
working = input();
|
|
3393
|
+
/**
|
|
3394
|
+
* This signal is set by setMultiple
|
|
3395
|
+
*/
|
|
3396
|
+
_multipleSignal = signal(undefined);
|
|
3397
|
+
/**
|
|
3398
|
+
* This signal is set by setAccept
|
|
3399
|
+
*/
|
|
3400
|
+
_acceptSignal = signal(undefined);
|
|
3401
|
+
/**
|
|
3402
|
+
* This signal is set by setDisabled
|
|
3403
|
+
*/
|
|
3404
|
+
_disabledSignal = signal(undefined);
|
|
3405
|
+
/**
|
|
3406
|
+
* This signal is set by setWorking
|
|
3407
|
+
*/
|
|
3408
|
+
_workingSignal = signal(undefined);
|
|
3409
|
+
multipleSignal = computed(() => {
|
|
3410
|
+
const multipleInput = this.multiple();
|
|
3411
|
+
const multipleSignal = this._multipleSignal();
|
|
3412
|
+
return multipleSignal ?? multipleInput;
|
|
3413
|
+
});
|
|
3414
|
+
acceptSignal = computed(() => {
|
|
3415
|
+
const acceptInput = this.accept();
|
|
3416
|
+
const acceptSignal = this._acceptSignal();
|
|
3417
|
+
return acceptSignal ?? acceptInput;
|
|
3418
|
+
});
|
|
3419
|
+
disabledSignal = computed(() => {
|
|
3420
|
+
const disabledInput = this.disabled();
|
|
3421
|
+
const disabledSignal = this._disabledSignal();
|
|
3422
|
+
const workingSignal = this.isWorkingSignal();
|
|
3423
|
+
// disabled if any are true
|
|
3424
|
+
return disabledInput || disabledSignal || workingSignal;
|
|
3425
|
+
});
|
|
3426
|
+
workingSignal = computed(() => {
|
|
3427
|
+
const workingInput = this.working();
|
|
3428
|
+
const workingSignal = this._workingSignal();
|
|
3429
|
+
return workingSignal ?? workingInput;
|
|
3430
|
+
});
|
|
3431
|
+
isWorkingSignal = computed(() => {
|
|
3432
|
+
const working = this.workingSignal();
|
|
3433
|
+
return isDefinedAndNotFalse(working);
|
|
3434
|
+
});
|
|
3435
|
+
// MARK: DbxUploadActionCompatable
|
|
3436
|
+
setDisabled(disabled) {
|
|
3437
|
+
this._disabledSignal.set(disabled);
|
|
3438
|
+
}
|
|
3439
|
+
setWorking(working) {
|
|
3440
|
+
this._workingSignal.set(working);
|
|
3441
|
+
}
|
|
3442
|
+
setMultiple(multiple) {
|
|
3443
|
+
this._multipleSignal.set(multiple);
|
|
3444
|
+
}
|
|
3445
|
+
setAccept(accept) {
|
|
3446
|
+
this._acceptSignal.set(accept);
|
|
3447
|
+
}
|
|
3448
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxFileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3449
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: AbstractDbxFileUploadComponent, isStandalone: true, inputs: { multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, accept: { classPropertyName: "accept", publicName: "accept", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, working: { classPropertyName: "working", publicName: "working", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
|
|
3450
|
+
}
|
|
3451
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractDbxFileUploadComponent, decorators: [{
|
|
3452
|
+
type: Directive,
|
|
3453
|
+
args: [{
|
|
3454
|
+
standalone: true
|
|
3455
|
+
}]
|
|
3456
|
+
}] });
|
|
3457
|
+
|
|
3458
|
+
/**
|
|
3459
|
+
* Returns a string that can be used as the "accept" attribute of a file input element.
|
|
3460
|
+
*
|
|
3461
|
+
* @param accept
|
|
3462
|
+
* @returns
|
|
3463
|
+
*/
|
|
3464
|
+
function fileAcceptString(accept) {
|
|
3465
|
+
return typeof accept === 'string' ? accept : accept.join(',');
|
|
3466
|
+
}
|
|
3467
|
+
function fileAcceptFilterTypeStringArray(accept) {
|
|
3468
|
+
return typeof accept === 'string' ? accept.split(',').map((x) => x.trim()) : accept;
|
|
3469
|
+
}
|
|
3470
|
+
/**
|
|
3471
|
+
* Creates a FileArrayAcceptMatchFunction from the input.
|
|
3472
|
+
*/
|
|
3473
|
+
function fileArrayAcceptMatchFunction(config) {
|
|
3474
|
+
const multiple = config.multiple ?? true;
|
|
3475
|
+
const isAcceptedFunction = typeof config.accept === 'function' ? config.accept : fileAcceptFunction(config.accept);
|
|
3476
|
+
return (input) => {
|
|
3477
|
+
const { included: acceptedType, excluded: rejectedType } = separateValues(input, isAcceptedFunction);
|
|
3478
|
+
let accepted = acceptedType;
|
|
3479
|
+
let rejected = rejectedType;
|
|
3480
|
+
if (!multiple) {
|
|
3481
|
+
const front = splitFront(acceptedType, 1);
|
|
3482
|
+
accepted = front.front;
|
|
3483
|
+
rejected = [...rejectedType, ...front.remaining];
|
|
3484
|
+
}
|
|
3485
|
+
return { multiple, input, accepted, rejected, acceptedType, rejectedType };
|
|
3486
|
+
};
|
|
3487
|
+
}
|
|
3488
|
+
/**
|
|
3489
|
+
* Creates a FileAcceptFunction from the input.
|
|
3490
|
+
*
|
|
3491
|
+
* @param accept
|
|
3492
|
+
* @returns
|
|
3493
|
+
*/
|
|
3494
|
+
function fileAcceptFunction(accept) {
|
|
3495
|
+
const acceptList = fileAcceptFilterTypeStringArray(accept);
|
|
3496
|
+
let fileAcceptFunction;
|
|
3497
|
+
if (acceptList.length === 0) {
|
|
3498
|
+
fileAcceptFunction = asDecisionFunction(true);
|
|
3499
|
+
}
|
|
3500
|
+
else {
|
|
3501
|
+
const hasWildcard = acceptList.some((x) => x === '*');
|
|
3502
|
+
if (hasWildcard) {
|
|
3503
|
+
fileAcceptFunction = asDecisionFunction(true);
|
|
3504
|
+
}
|
|
3505
|
+
else {
|
|
3506
|
+
const isAcceptedFunctions = acceptList.map((x) => {
|
|
3507
|
+
if (x[0] === SLASH_PATH_FILE_TYPE_SEPARATOR) {
|
|
3508
|
+
// is a SlashPathTypedFileSuffix
|
|
3509
|
+
return (input) => input.name.endsWith(x);
|
|
3510
|
+
}
|
|
3511
|
+
else if (x.endsWith('/*')) {
|
|
3512
|
+
// is a MimeTypeWildcardWithoutParameters
|
|
3513
|
+
const mimeTypePrefix = x.slice(0, -2);
|
|
3514
|
+
return (input) => input.type.startsWith(mimeTypePrefix);
|
|
3515
|
+
}
|
|
3516
|
+
else {
|
|
3517
|
+
// treat as a MimeTypeWithoutParameters
|
|
3518
|
+
return (input) => input.type === x;
|
|
3519
|
+
}
|
|
3520
|
+
});
|
|
3521
|
+
fileAcceptFunction = (input) => {
|
|
3522
|
+
return isAcceptedFunctions.findIndex((x) => x(input)) !== -1;
|
|
3523
|
+
};
|
|
3524
|
+
}
|
|
3525
|
+
}
|
|
3526
|
+
return fileAcceptFunction;
|
|
3527
|
+
}
|
|
3528
|
+
|
|
3529
|
+
/**
|
|
3530
|
+
* Compatable interface for DbxUploadActionDirective.
|
|
3531
|
+
*/
|
|
3532
|
+
class DbxFileUploadActionCompatable {
|
|
3533
|
+
}
|
|
3534
|
+
/**
|
|
3535
|
+
* Provides a DbxUploadActionCompatable for a given type.
|
|
3536
|
+
*/
|
|
3537
|
+
function provideDbxFileUploadActionCompatable(sourceType) {
|
|
3538
|
+
return [
|
|
3539
|
+
{
|
|
3540
|
+
provide: DbxFileUploadActionCompatable,
|
|
3541
|
+
useExisting: forwardRef(() => sourceType)
|
|
3542
|
+
}
|
|
3543
|
+
];
|
|
3544
|
+
}
|
|
3545
|
+
|
|
3546
|
+
class DbxFileUploadAreaComponent extends AbstractDbxFileUploadComponent {
|
|
3547
|
+
icon = input();
|
|
3548
|
+
text = input();
|
|
3549
|
+
hint = input();
|
|
3550
|
+
show = input(true);
|
|
3551
|
+
hintSignal = computed(() => {
|
|
3552
|
+
const hint = this.hint();
|
|
3553
|
+
return typeof hint === 'string' ? hint : hint === true ? 'Drag to upload' : null;
|
|
3554
|
+
});
|
|
3555
|
+
filesChanged = output();
|
|
3556
|
+
areaClicked = output();
|
|
3557
|
+
areaDragActiveChanged = output();
|
|
3558
|
+
dragOverStateSignal = signal(false);
|
|
3559
|
+
filesAcceptedFunctionSignal = computed(() => fileArrayAcceptMatchFunction({ multiple: this.multipleSignal() ?? false, accept: this.acceptSignal() }));
|
|
3560
|
+
onClick(evt) {
|
|
3561
|
+
evt.stopPropagation();
|
|
3562
|
+
if (!this.disabled()) {
|
|
3563
|
+
this.areaClicked.emit();
|
|
3564
|
+
}
|
|
3565
|
+
}
|
|
3566
|
+
onDragOver(evt) {
|
|
3567
|
+
evt.preventDefault();
|
|
3568
|
+
evt.stopPropagation();
|
|
3569
|
+
this.dragOverStateSignal.set(true);
|
|
3570
|
+
this.areaDragActiveChanged.emit(true);
|
|
3571
|
+
}
|
|
3572
|
+
onDragLeave(evt) {
|
|
3573
|
+
evt.preventDefault();
|
|
3574
|
+
evt.stopPropagation();
|
|
3575
|
+
this.dragOverStateSignal.set(false);
|
|
3576
|
+
this.areaDragActiveChanged.emit(false);
|
|
3577
|
+
}
|
|
3578
|
+
onDrop(evt) {
|
|
3579
|
+
evt.preventDefault();
|
|
3580
|
+
evt.stopPropagation();
|
|
3581
|
+
this.dragOverStateSignal.set(false);
|
|
3582
|
+
if (!this.disabled()) {
|
|
3583
|
+
const allFiles = evt.dataTransfer?.files;
|
|
3584
|
+
if (allFiles) {
|
|
3585
|
+
const matchResult = this.filesAcceptedFunctionSignal()(Array.from(allFiles));
|
|
3586
|
+
this.filesChanged.emit({ allFiles: matchResult.input, matchResult });
|
|
3587
|
+
}
|
|
3588
|
+
}
|
|
3589
|
+
}
|
|
3590
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFileUploadAreaComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3591
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFileUploadAreaComponent, isStandalone: true, selector: "dbx-file-upload-area", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filesChanged: "filesChanged", areaClicked: "areaClicked", areaDragActiveChanged: "areaDragActiveChanged" }, host: { listeners: { "click": "onClick($event)", "dragover": "onDragOver($event)", "dragleave": "onDragLeave($event)", "drop": "onDrop($event)" }, properties: { "class.dbx-file-upload-area-with-hint": "hintSignal()", "class.dbx-file-upload-area-disabled": "disabledSignal()", "class.dbx-file-upload-area-working": "isWorkingSignal()", "class.dbx-file-upload-area-drag-over": "!disabledSignal() && dragOverStateSignal()" }, classAttribute: "dbx-file-upload-area dbx-block" }, providers: provideDbxFileUploadActionCompatable(DbxFileUploadAreaComponent), usesInheritance: true, ngImport: i0, template: `
|
|
3592
|
+
@if (show()) {
|
|
3593
|
+
<div class="dbx-file-upload-area-content">
|
|
3594
|
+
<div class="dbx-file-upload-area-content-text">
|
|
3595
|
+
@if (icon() != null) {
|
|
3596
|
+
<mat-icon>{{ icon() }}</mat-icon>
|
|
3597
|
+
}
|
|
3598
|
+
@if (text() != null) {
|
|
3599
|
+
<span>{{ text() }}</span>
|
|
3600
|
+
}
|
|
3601
|
+
</div>
|
|
3602
|
+
<div class="dbx-file-upload-area-content-wrapped">
|
|
3603
|
+
<ng-template [ngTemplateOutlet]="contentTemplate"></ng-template>
|
|
3604
|
+
</div>
|
|
3605
|
+
</div>
|
|
3606
|
+
@if (hintSignal()) {
|
|
3607
|
+
<div class="dbx-file-upload-area-content-hint dbx-hint dbx-small">{{ hintSignal() }}</div>
|
|
3608
|
+
}
|
|
3609
|
+
} @else {
|
|
3610
|
+
<ng-template [ngTemplateOutlet]="contentTemplate"></ng-template>
|
|
3611
|
+
}
|
|
3612
|
+
|
|
3613
|
+
<!-- Content Template -->
|
|
3614
|
+
<ng-template #contentTemplate>
|
|
3615
|
+
<ng-content></ng-content>
|
|
3616
|
+
</ng-template>
|
|
3617
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3618
|
+
}
|
|
3619
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFileUploadAreaComponent, decorators: [{
|
|
3620
|
+
type: Component,
|
|
3621
|
+
args: [{
|
|
3622
|
+
selector: 'dbx-file-upload-area',
|
|
3623
|
+
template: `
|
|
3624
|
+
@if (show()) {
|
|
3625
|
+
<div class="dbx-file-upload-area-content">
|
|
3626
|
+
<div class="dbx-file-upload-area-content-text">
|
|
3627
|
+
@if (icon() != null) {
|
|
3628
|
+
<mat-icon>{{ icon() }}</mat-icon>
|
|
3629
|
+
}
|
|
3630
|
+
@if (text() != null) {
|
|
3631
|
+
<span>{{ text() }}</span>
|
|
3632
|
+
}
|
|
3633
|
+
</div>
|
|
3634
|
+
<div class="dbx-file-upload-area-content-wrapped">
|
|
3635
|
+
<ng-template [ngTemplateOutlet]="contentTemplate"></ng-template>
|
|
3636
|
+
</div>
|
|
3637
|
+
</div>
|
|
3638
|
+
@if (hintSignal()) {
|
|
3639
|
+
<div class="dbx-file-upload-area-content-hint dbx-hint dbx-small">{{ hintSignal() }}</div>
|
|
3640
|
+
}
|
|
3641
|
+
} @else {
|
|
3642
|
+
<ng-template [ngTemplateOutlet]="contentTemplate"></ng-template>
|
|
3643
|
+
}
|
|
3644
|
+
|
|
3645
|
+
<!-- Content Template -->
|
|
3646
|
+
<ng-template #contentTemplate>
|
|
3647
|
+
<ng-content></ng-content>
|
|
3648
|
+
</ng-template>
|
|
3649
|
+
`,
|
|
3650
|
+
host: {
|
|
3651
|
+
class: 'dbx-file-upload-area dbx-block',
|
|
3652
|
+
'[class.dbx-file-upload-area-with-hint]': 'hintSignal()',
|
|
3653
|
+
'[class.dbx-file-upload-area-disabled]': 'disabledSignal()',
|
|
3654
|
+
'[class.dbx-file-upload-area-working]': 'isWorkingSignal()',
|
|
3655
|
+
'[class.dbx-file-upload-area-drag-over]': '!disabledSignal() && dragOverStateSignal()'
|
|
3656
|
+
},
|
|
3657
|
+
providers: provideDbxFileUploadActionCompatable(DbxFileUploadAreaComponent),
|
|
3658
|
+
imports: [MatIconModule, NgTemplateOutlet],
|
|
3659
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3660
|
+
standalone: true
|
|
3661
|
+
}]
|
|
3662
|
+
}], propDecorators: { onClick: [{
|
|
3663
|
+
type: HostListener,
|
|
3664
|
+
args: ['click', ['$event']]
|
|
3665
|
+
}], onDragOver: [{
|
|
3666
|
+
type: HostListener,
|
|
3667
|
+
args: ['dragover', ['$event']]
|
|
3668
|
+
}], onDragLeave: [{
|
|
3669
|
+
type: HostListener,
|
|
3670
|
+
args: ['dragleave', ['$event']]
|
|
3671
|
+
}], onDrop: [{
|
|
3672
|
+
type: HostListener,
|
|
3673
|
+
args: ['drop', ['$event']]
|
|
3674
|
+
}] } });
|
|
3675
|
+
|
|
3676
|
+
class DbxFileUploadButtonComponent extends AbstractDbxFileUploadComponent {
|
|
3677
|
+
fileInput = viewChild.required('fileInput', { read: ElementRef });
|
|
3678
|
+
text = input();
|
|
3679
|
+
icon = input();
|
|
3680
|
+
buttonStyle = input();
|
|
3681
|
+
filesChanged = output();
|
|
3682
|
+
buttonAcceptSignal = computed(() => {
|
|
3683
|
+
const accept = this.acceptSignal();
|
|
3684
|
+
return typeof accept === 'function' ? undefined : fileAcceptString(accept);
|
|
3685
|
+
});
|
|
3686
|
+
buttonMultipleSignal = computed(() => this.multipleSignal() ?? false);
|
|
3687
|
+
filesAcceptedFunctionSignal = computed(() => {
|
|
3688
|
+
const accept = this.acceptSignal();
|
|
3689
|
+
const multiple = this.buttonMultipleSignal();
|
|
3690
|
+
return typeof accept === 'function' ? fileArrayAcceptMatchFunction({ multiple, accept }) : undefined;
|
|
3691
|
+
});
|
|
3692
|
+
/**
|
|
3693
|
+
* The HTML attribute should not be added if it is false, so we return null.
|
|
3694
|
+
*/
|
|
3695
|
+
multipleAttributeSignal = computed(() => (this.buttonMultipleSignal() ? '' : null));
|
|
3696
|
+
openInput() {
|
|
3697
|
+
const inputRef = this.fileInput();
|
|
3698
|
+
const input = inputRef.nativeElement;
|
|
3699
|
+
const isDisabled = this.disabledSignal();
|
|
3700
|
+
if (!isDisabled) {
|
|
3701
|
+
input.click();
|
|
3702
|
+
}
|
|
3703
|
+
}
|
|
3704
|
+
fileInputChanged() {
|
|
3705
|
+
const inputRef = this.fileInput();
|
|
3706
|
+
const input = inputRef.nativeElement;
|
|
3707
|
+
const isDisabled = this.disabledSignal();
|
|
3708
|
+
if (!isDisabled) {
|
|
3709
|
+
const allFiles = input.files ? Array.from(input.files) : [];
|
|
3710
|
+
const fileAcceptFunction = this.filesAcceptedFunctionSignal();
|
|
3711
|
+
if (fileAcceptFunction) {
|
|
3712
|
+
const matchResult = fileAcceptFunction(allFiles);
|
|
3713
|
+
this.filesChanged.emit({ allFiles, matchResult });
|
|
3714
|
+
}
|
|
3715
|
+
else {
|
|
3716
|
+
// if not using a filesAcceptedFunction, then accept all files as the input should have filtered them
|
|
3717
|
+
const multiple = this.buttonMultipleSignal();
|
|
3718
|
+
this.filesChanged.emit({ allFiles, matchResult: { multiple, input: allFiles, accepted: allFiles, rejected: [], acceptedType: allFiles, rejectedType: [] } });
|
|
3719
|
+
}
|
|
3720
|
+
}
|
|
3721
|
+
// reset the input value
|
|
3722
|
+
if (input.value) {
|
|
3723
|
+
input.value = '';
|
|
3724
|
+
}
|
|
3725
|
+
}
|
|
3726
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFileUploadButtonComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3727
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: DbxFileUploadButtonComponent, isStandalone: true, selector: "dbx-file-upload-button", inputs: { text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, buttonStyle: { classPropertyName: "buttonStyle", publicName: "buttonStyle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filesChanged: "filesChanged" }, providers: provideDbxFileUploadActionCompatable(DbxFileUploadButtonComponent), viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
3728
|
+
<dbx-button [buttonStyle]="buttonStyle()" [text]="text()" [icon]="icon()" (buttonClick)="openInput()" [disabled]="disabledSignal()" [working]="workingSignal()">
|
|
3729
|
+
<ng-content></ng-content>
|
|
3730
|
+
</dbx-button>
|
|
3731
|
+
<input #fileInput hidden type="file" [attr.accept]="buttonAcceptSignal() ?? null" [attr.multiple]="multipleAttributeSignal() ? '' : null" (change)="fileInputChanged()" />
|
|
3732
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3733
|
+
}
|
|
3734
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFileUploadButtonComponent, decorators: [{
|
|
3735
|
+
type: Component,
|
|
3736
|
+
args: [{
|
|
3737
|
+
selector: 'dbx-file-upload-button',
|
|
3738
|
+
template: `
|
|
3739
|
+
<dbx-button [buttonStyle]="buttonStyle()" [text]="text()" [icon]="icon()" (buttonClick)="openInput()" [disabled]="disabledSignal()" [working]="workingSignal()">
|
|
3740
|
+
<ng-content></ng-content>
|
|
3741
|
+
</dbx-button>
|
|
3742
|
+
<input #fileInput hidden type="file" [attr.accept]="buttonAcceptSignal() ?? null" [attr.multiple]="multipleAttributeSignal() ? '' : null" (change)="fileInputChanged()" />
|
|
3743
|
+
`,
|
|
3744
|
+
providers: provideDbxFileUploadActionCompatable(DbxFileUploadButtonComponent),
|
|
3745
|
+
imports: [DbxButtonComponent],
|
|
3746
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3747
|
+
standalone: true
|
|
3748
|
+
}]
|
|
3749
|
+
}] });
|
|
3750
|
+
|
|
3751
|
+
/**
|
|
3752
|
+
* Combines both the file upload area and button into a single component.
|
|
3753
|
+
*/
|
|
3754
|
+
class DbxFileUploadComponent extends AbstractDbxFileUploadComponent {
|
|
3755
|
+
config = input();
|
|
3756
|
+
area = viewChild.required('area', { read: DbxFileUploadAreaComponent });
|
|
3757
|
+
button = viewChild.required('button', { read: DbxFileUploadButtonComponent });
|
|
3758
|
+
buttonStyle = input();
|
|
3759
|
+
mode = input();
|
|
3760
|
+
text = input(); // button text
|
|
3761
|
+
icon = input(); // button icon
|
|
3762
|
+
hint = input(); // area hint
|
|
3763
|
+
modeSignal = computed(() => {
|
|
3764
|
+
const config = this.config();
|
|
3765
|
+
const mode = this.mode();
|
|
3766
|
+
return config?.mode ?? mode ?? 'default';
|
|
3767
|
+
});
|
|
3768
|
+
showButtonSignal = computed(() => {
|
|
3769
|
+
const mode = this.modeSignal();
|
|
3770
|
+
return mode === 'button' || mode === 'default';
|
|
3771
|
+
});
|
|
3772
|
+
showAreaSignal = computed(() => {
|
|
3773
|
+
const mode = this.modeSignal();
|
|
3774
|
+
return mode === 'area' || mode === 'default';
|
|
3775
|
+
});
|
|
3776
|
+
clickAreaToUpload = input();
|
|
3777
|
+
clickAreaToUploadSignal = computed(() => {
|
|
3778
|
+
const config = this.config();
|
|
3779
|
+
const clickAreaToUpload = this.clickAreaToUpload();
|
|
3780
|
+
return config?.clickAreaToUpload ?? clickAreaToUpload;
|
|
3781
|
+
});
|
|
3782
|
+
buttonTextSignal = computed(() => {
|
|
3783
|
+
const config = this.config();
|
|
3784
|
+
const text = this.text();
|
|
3785
|
+
return config?.button?.text ?? text;
|
|
3786
|
+
});
|
|
3787
|
+
buttonIconSignal = computed(() => {
|
|
3788
|
+
const config = this.config();
|
|
3789
|
+
const icon = this.icon();
|
|
3790
|
+
return config?.button?.icon ?? icon;
|
|
3791
|
+
});
|
|
3792
|
+
areaTextSignal = computed(() => this.config()?.area?.text);
|
|
3793
|
+
areaIconSignal = computed(() => this.config()?.area?.icon);
|
|
3794
|
+
areaHintSignal = computed(() => {
|
|
3795
|
+
const config = this.config();
|
|
3796
|
+
const hint = this.hint();
|
|
3797
|
+
return config?.area?.hint ?? hint;
|
|
3798
|
+
});
|
|
3799
|
+
uploadMultipleSignal = computed(() => {
|
|
3800
|
+
const config = this.config();
|
|
3801
|
+
const multiple = this.multipleSignal();
|
|
3802
|
+
return multiple ?? config?.multiple;
|
|
3803
|
+
});
|
|
3804
|
+
uploadAcceptSignal = computed(() => {
|
|
3805
|
+
const config = this.config();
|
|
3806
|
+
const accept = this.acceptSignal();
|
|
3807
|
+
return accept ?? config?.accept;
|
|
3808
|
+
});
|
|
3809
|
+
filesChanged = output();
|
|
3810
|
+
areaClicked() {
|
|
3811
|
+
const clickAreaToUpload = this.clickAreaToUploadSignal();
|
|
3812
|
+
if (clickAreaToUpload) {
|
|
3813
|
+
const button = this.button();
|
|
3814
|
+
button.openInput();
|
|
3815
|
+
}
|
|
3816
|
+
}
|
|
3817
|
+
areaFilesChanged(event) {
|
|
3818
|
+
this.filesChanged.emit(event);
|
|
3819
|
+
}
|
|
3820
|
+
buttonFilesChanged(event) {
|
|
3821
|
+
this.filesChanged.emit(event);
|
|
3822
|
+
}
|
|
3823
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFileUploadComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
3824
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFileUploadComponent, isStandalone: true, selector: "dbx-file-upload", inputs: { config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: false, transformFunction: null }, buttonStyle: { classPropertyName: "buttonStyle", publicName: "buttonStyle", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, hint: { classPropertyName: "hint", publicName: "hint", isSignal: true, isRequired: false, transformFunction: null }, clickAreaToUpload: { classPropertyName: "clickAreaToUpload", publicName: "clickAreaToUpload", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filesChanged: "filesChanged" }, providers: provideDbxFileUploadActionCompatable(DbxFileUploadComponent), viewQueries: [{ propertyName: "area", first: true, predicate: ["area"], descendants: true, read: DbxFileUploadAreaComponent, isSignal: true }, { propertyName: "button", first: true, predicate: ["button"], descendants: true, read: DbxFileUploadButtonComponent, isSignal: true }], usesInheritance: true, ngImport: i0, template: `
|
|
3825
|
+
<dbx-file-upload-area #area [show]="showAreaSignal()" [hint]="areaHintSignal()" [text]="areaTextSignal()" [icon]="areaIconSignal()" [accept]="acceptSignal()" [multiple]="multipleSignal()" (filesChanged)="areaFilesChanged($event)" (areaClicked)="areaClicked()" [disabled]="disabledSignal()" [working]="workingSignal()">
|
|
3826
|
+
<ng-content></ng-content>
|
|
3827
|
+
@if (showButtonSignal()) {
|
|
3828
|
+
<ng-template [ngTemplateOutlet]="buttonTemplate"></ng-template>
|
|
3829
|
+
}
|
|
3830
|
+
</dbx-file-upload-area>
|
|
3831
|
+
<!-- Button Template -->
|
|
3832
|
+
<ng-template #buttonTemplate>
|
|
3833
|
+
<dbx-file-upload-button #button [text]="buttonTextSignal()" [icon]="buttonIconSignal()" [accept]="acceptSignal()" [multiple]="multipleSignal()" (filesChanged)="buttonFilesChanged($event)" [disabled]="disabledSignal()" [working]="workingSignal()" [buttonStyle]="buttonStyle()"></dbx-file-upload-button>
|
|
3834
|
+
</ng-template>
|
|
3835
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxFileUploadAreaComponent, selector: "dbx-file-upload-area", inputs: ["icon", "text", "hint", "show"], outputs: ["filesChanged", "areaClicked", "areaDragActiveChanged"] }, { kind: "component", type: DbxFileUploadButtonComponent, selector: "dbx-file-upload-button", inputs: ["text", "icon", "buttonStyle"], outputs: ["filesChanged"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3836
|
+
}
|
|
3837
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFileUploadComponent, decorators: [{
|
|
3838
|
+
type: Component,
|
|
3839
|
+
args: [{
|
|
3840
|
+
selector: 'dbx-file-upload',
|
|
3841
|
+
template: `
|
|
3842
|
+
<dbx-file-upload-area #area [show]="showAreaSignal()" [hint]="areaHintSignal()" [text]="areaTextSignal()" [icon]="areaIconSignal()" [accept]="acceptSignal()" [multiple]="multipleSignal()" (filesChanged)="areaFilesChanged($event)" (areaClicked)="areaClicked()" [disabled]="disabledSignal()" [working]="workingSignal()">
|
|
3843
|
+
<ng-content></ng-content>
|
|
3844
|
+
@if (showButtonSignal()) {
|
|
3845
|
+
<ng-template [ngTemplateOutlet]="buttonTemplate"></ng-template>
|
|
3846
|
+
}
|
|
3847
|
+
</dbx-file-upload-area>
|
|
3848
|
+
<!-- Button Template -->
|
|
3849
|
+
<ng-template #buttonTemplate>
|
|
3850
|
+
<dbx-file-upload-button #button [text]="buttonTextSignal()" [icon]="buttonIconSignal()" [accept]="acceptSignal()" [multiple]="multipleSignal()" (filesChanged)="buttonFilesChanged($event)" [disabled]="disabledSignal()" [working]="workingSignal()" [buttonStyle]="buttonStyle()"></dbx-file-upload-button>
|
|
3851
|
+
</ng-template>
|
|
3852
|
+
`,
|
|
3853
|
+
providers: provideDbxFileUploadActionCompatable(DbxFileUploadComponent),
|
|
3854
|
+
imports: [DbxFileUploadAreaComponent, DbxFileUploadButtonComponent, NgTemplateOutlet],
|
|
3855
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3856
|
+
standalone: true
|
|
3857
|
+
}]
|
|
3858
|
+
}] });
|
|
3859
|
+
|
|
3860
|
+
/**
|
|
3861
|
+
* Context used for linking a button to an ActionContext.
|
|
3862
|
+
*/
|
|
3863
|
+
class DbxFileUploadActionSyncDirective {
|
|
3864
|
+
source = inject(DbxActionContextStoreSourceInstance);
|
|
3865
|
+
uploadCompatable = inject(DbxFileUploadActionCompatable);
|
|
3866
|
+
_workingSub = new SubscriptionObject();
|
|
3867
|
+
_disabledSub = new SubscriptionObject();
|
|
3868
|
+
ngOnInit() {
|
|
3869
|
+
this._workingSub.subscription = this.source.isWorkingOrWorkProgress$.subscribe((working) => {
|
|
3870
|
+
this.uploadCompatable.setWorking(working);
|
|
3871
|
+
});
|
|
3872
|
+
this._disabledSub.subscription = this.source.isDisabled$.subscribe((disabled) => {
|
|
3873
|
+
this.uploadCompatable.setDisabled(disabled);
|
|
3874
|
+
});
|
|
3875
|
+
}
|
|
3876
|
+
ngOnDestroy() {
|
|
3877
|
+
this._workingSub.destroy();
|
|
3878
|
+
this._disabledSub.destroy();
|
|
3879
|
+
}
|
|
3880
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFileUploadActionSyncDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
3881
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxFileUploadActionSyncDirective, isStandalone: true, selector: "[dbxFileUploadActionSync]", ngImport: i0 });
|
|
3882
|
+
}
|
|
3883
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFileUploadActionSyncDirective, decorators: [{
|
|
3884
|
+
type: Directive,
|
|
3885
|
+
args: [{
|
|
3886
|
+
selector: '[dbxFileUploadActionSync]',
|
|
3887
|
+
standalone: true
|
|
3888
|
+
}]
|
|
3889
|
+
}] });
|
|
3890
|
+
|
|
3306
3891
|
class AbstractDbxErrorWidgetComponent {
|
|
3307
3892
|
data = inject(DBX_INJECTION_COMPONENT_DATA);
|
|
3308
3893
|
get code() {
|
|
@@ -3781,15 +4366,41 @@ class DbxBasicLoadingComponent {
|
|
|
3781
4366
|
customError = viewChild('customError', { read: ElementRef });
|
|
3782
4367
|
customLoading = viewChild('customLoading', { read: ElementRef });
|
|
3783
4368
|
diameter = input();
|
|
3784
|
-
mode = input(
|
|
4369
|
+
mode = input();
|
|
3785
4370
|
color = input('primary');
|
|
3786
4371
|
text = input();
|
|
3787
4372
|
linear = input(false);
|
|
3788
4373
|
show = input(true);
|
|
3789
4374
|
loading = input();
|
|
3790
4375
|
error = input();
|
|
3791
|
-
|
|
4376
|
+
loadingProgressSignal = computed(() => {
|
|
3792
4377
|
const loading = this.loading();
|
|
4378
|
+
let result;
|
|
4379
|
+
if (typeof loading === 'number') {
|
|
4380
|
+
result = loading;
|
|
4381
|
+
}
|
|
4382
|
+
return result;
|
|
4383
|
+
});
|
|
4384
|
+
modeSignal = computed(() => {
|
|
4385
|
+
const mode = this.mode();
|
|
4386
|
+
const loadingProgress = this.loadingProgressSignal();
|
|
4387
|
+
let result;
|
|
4388
|
+
if (!mode) {
|
|
4389
|
+
if (loadingProgress != null) {
|
|
4390
|
+
result = 'determinate';
|
|
4391
|
+
}
|
|
4392
|
+
else {
|
|
4393
|
+
result = 'indeterminate';
|
|
4394
|
+
}
|
|
4395
|
+
}
|
|
4396
|
+
else {
|
|
4397
|
+
result = mode;
|
|
4398
|
+
}
|
|
4399
|
+
return result;
|
|
4400
|
+
});
|
|
4401
|
+
isLoadingSignal = computed(() => isDefinedAndNotFalse(this.loading()));
|
|
4402
|
+
stateSignal = computed(() => {
|
|
4403
|
+
const loading = this.isLoadingSignal();
|
|
3793
4404
|
const error = this.error();
|
|
3794
4405
|
const show = this.show() ?? true; // default to true if not defined
|
|
3795
4406
|
let state;
|
|
@@ -3811,11 +4422,11 @@ class DbxBasicLoadingComponent {
|
|
|
3811
4422
|
hasNoCustomErrorSignal = computed(() => !checkNgContentWrapperHasContent(this.customError()));
|
|
3812
4423
|
hasNoCustomLoadingSignal = computed(() => !checkNgContentWrapperHasContent(this.customLoading()));
|
|
3813
4424
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxBasicLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3814
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxBasicLoadingComponent, isStandalone: true, selector: "dbx-basic-loading", inputs: { diameter: { classPropertyName: "diameter", publicName: "diameter", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "customError", first: true, predicate: ["customError"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "customLoading", first: true, predicate: ["customLoading"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@switch (stateSignal()) {\n @case ('none') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('loading') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('content') {\n <!-- Content -->\n <ng-content></ng-content>\n }\n @case ('error') {\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n }\n}\n\n<ng-template #loadingTemplate>\n @if (hasNoCustomLoadingSignal()) {\n <dbx-loading-progress [mode]=\"
|
|
4425
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxBasicLoadingComponent, isStandalone: true, selector: "dbx-basic-loading", inputs: { diameter: { classPropertyName: "diameter", publicName: "diameter", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, color: { classPropertyName: "color", publicName: "color", isSignal: true, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, show: { classPropertyName: "show", publicName: "show", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "customError", first: true, predicate: ["customError"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "customLoading", first: true, predicate: ["customLoading"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "@switch (stateSignal()) {\n @case ('none') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('loading') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('content') {\n <!-- Content -->\n <ng-content></ng-content>\n }\n @case ('error') {\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n }\n}\n\n<ng-template #loadingTemplate>\n @if (hasNoCustomLoadingSignal()) {\n <dbx-loading-progress [mode]=\"modeSignal()\" [value]=\"loadingProgressSignal()\" [color]=\"color()\" [text]=\"text()\" [linear]=\"linear()\" [diameter]=\"diameter()\"></dbx-loading-progress>\n }\n <div #customLoading>\n <ng-content select=\"[loading]\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #errorTemplate>\n @if (hasNoCustomErrorSignal()) {\n <dbx-error [error]=\"error()\"></dbx-error>\n }\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-content select=\"[errorAction]\"></ng-content>\n</ng-template>\n", dependencies: [{ kind: "component", type: DbxErrorComponent, selector: "dbx-error", inputs: ["error", "iconOnly"], outputs: ["popoverOpened"] }, { kind: "component", type: DbxLoadingProgressComponent, selector: "dbx-loading-progress", inputs: ["diameter", "text", "linear", "mode", "color", "value", "bufferValue"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3815
4426
|
}
|
|
3816
4427
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxBasicLoadingComponent, decorators: [{
|
|
3817
4428
|
type: Component,
|
|
3818
|
-
args: [{ selector: 'dbx-basic-loading', imports: [DbxErrorComponent, DbxLoadingProgressComponent, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "@switch (stateSignal()) {\n @case ('none') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('loading') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('content') {\n <!-- Content -->\n <ng-content></ng-content>\n }\n @case ('error') {\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n }\n}\n\n<ng-template #loadingTemplate>\n @if (hasNoCustomLoadingSignal()) {\n <dbx-loading-progress [mode]=\"
|
|
4429
|
+
args: [{ selector: 'dbx-basic-loading', imports: [DbxErrorComponent, DbxLoadingProgressComponent, NgTemplateOutlet], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "@switch (stateSignal()) {\n @case ('none') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('loading') {\n <!-- Loading -->\n <ng-container *ngTemplateOutlet=\"loadingTemplate\"></ng-container>\n }\n @case ('content') {\n <!-- Content -->\n <ng-content></ng-content>\n }\n @case ('error') {\n <!-- Error -->\n <ng-container *ngTemplateOutlet=\"errorTemplate\"></ng-container>\n }\n}\n\n<ng-template #loadingTemplate>\n @if (hasNoCustomLoadingSignal()) {\n <dbx-loading-progress [mode]=\"modeSignal()\" [value]=\"loadingProgressSignal()\" [color]=\"color()\" [text]=\"text()\" [linear]=\"linear()\" [diameter]=\"diameter()\"></dbx-loading-progress>\n }\n <div #customLoading>\n <ng-content select=\"[loading]\"></ng-content>\n </div>\n</ng-template>\n\n<ng-template #errorTemplate>\n @if (hasNoCustomErrorSignal()) {\n <dbx-error [error]=\"error()\"></dbx-error>\n }\n <div #customError>\n <ng-content select=\"[error]\"></ng-content>\n </div>\n <ng-content select=\"[errorAction]\"></ng-content>\n</ng-template>\n" }]
|
|
3819
4430
|
}] });
|
|
3820
4431
|
|
|
3821
4432
|
/**
|
|
@@ -3829,7 +4440,7 @@ class DbxLoadingComponent {
|
|
|
3829
4440
|
padding = input(false);
|
|
3830
4441
|
show = input();
|
|
3831
4442
|
text = input();
|
|
3832
|
-
mode = input(
|
|
4443
|
+
mode = input();
|
|
3833
4444
|
color = input('primary');
|
|
3834
4445
|
diameter = input();
|
|
3835
4446
|
linear = input();
|
|
@@ -3842,8 +4453,15 @@ class DbxLoadingComponent {
|
|
|
3842
4453
|
stateSignal = computed(() => {
|
|
3843
4454
|
const loading = this.loading();
|
|
3844
4455
|
const error = this.error();
|
|
3845
|
-
|
|
3846
|
-
|
|
4456
|
+
const contextStreamEvent = this.contextStreamSignal();
|
|
4457
|
+
let loadingState;
|
|
4458
|
+
if (contextStreamEvent) {
|
|
4459
|
+
loadingState = {
|
|
4460
|
+
loading: contextStreamEvent.loading === true ? (contextStreamEvent.loadingProgress ?? true) : false,
|
|
4461
|
+
error: contextStreamEvent.error
|
|
4462
|
+
};
|
|
4463
|
+
}
|
|
4464
|
+
else {
|
|
3847
4465
|
loadingState = {
|
|
3848
4466
|
loading: loading ?? false,
|
|
3849
4467
|
error: error
|
|
@@ -4014,7 +4632,7 @@ class DbxActionSnackbarComponent extends AbstractSubscriptionDirective {
|
|
|
4014
4632
|
this.snackbarRef.dismiss();
|
|
4015
4633
|
};
|
|
4016
4634
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionSnackbarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
4017
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxActionSnackbarComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-action-snackbar\" [ngClass]=\"snackbarStatusClassSignal()\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n @switch (completeSignal()) {\n @case (true) {\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n }\n @case (false) {\n @if (hasAction) {\n <dbx-action dbxActionValue [dbxActionSource]=\"sourceInstanceSignal()\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n }\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: DbxActionSourceDirective, selector: "[dbxActionSource]", inputs: ["dbxActionSource"] }, { kind: "directive", type: DbxActionSuccessHandlerDirective, selector: "[dbxActionSuccessHandler]", inputs: ["dbxActionSuccessHandler"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "directive", type: DbxSpacerDirective, selector: "dbx-spacer, [dbxSpacer]" }, { kind: "directive", type: DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4635
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxActionSnackbarComponent, isStandalone: true, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-action-snackbar\" [ngClass]=\"snackbarStatusClassSignal()\">\n <span>{{ message }}</span>\n <dbx-spacer></dbx-spacer>\n @switch (completeSignal()) {\n @case (true) {\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"done\" text=\"Success\"></dbx-button>\n }\n @case (false) {\n @if (hasAction) {\n <dbx-action dbxActionValue [dbxActionSource]=\"sourceInstanceSignal()\" [dbxActionSuccessHandler]=\"dismissAfterActionCompletes\">\n <dbx-button dbxActionButton color=\"warn\" [text]=\"button\"></dbx-button>\n </dbx-action>\n <dbx-button-spacer></dbx-button-spacer>\n }\n <dbx-button (buttonClick)=\"dismiss()\" color=\"accent\" icon=\"close\"></dbx-button>\n }\n }\n</div>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: DbxActionSourceDirective, selector: "[dbxActionSource]", inputs: ["dbxActionSource"] }, { kind: "directive", type: DbxActionSuccessHandlerDirective, selector: "[dbxActionSuccessHandler]", inputs: ["dbxActionSuccessHandler"] }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }, { kind: "directive", type: DbxSpacerDirective, selector: "dbx-spacer, [dbxSpacer]" }, { kind: "directive", type: DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4018
4636
|
}
|
|
4019
4637
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionSnackbarComponent, decorators: [{
|
|
4020
4638
|
type: Component,
|
|
@@ -4341,7 +4959,7 @@ class DbxActionUIRouterTransitionSafetyDialogComponent extends AbstractDialogDir
|
|
|
4341
4959
|
<dbx-button-spacer></dbx-button-spacer>
|
|
4342
4960
|
</ng-container>
|
|
4343
4961
|
</dbx-prompt-confirm>
|
|
4344
|
-
`, isInline: true, dependencies: [{ kind: "component", type: DbxPromptConfirmComponent, selector: "dbx-prompt-confirm", inputs: ["config"], outputs: ["confirm", "cancel"] }, { kind: "component", type: DbxErrorComponent, selector: "dbx-error", inputs: ["error", "iconOnly"], outputs: ["popoverOpened"] }, { kind: "directive", type: DbxActionErrorDirective, selector: "[dbxActionError]" }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4962
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxPromptConfirmComponent, selector: "dbx-prompt-confirm", inputs: ["config"], outputs: ["confirm", "cancel"] }, { kind: "component", type: DbxErrorComponent, selector: "dbx-error", inputs: ["error", "iconOnly"], outputs: ["popoverOpened"] }, { kind: "directive", type: DbxActionErrorDirective, selector: "[dbxActionError]" }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
4345
4963
|
}
|
|
4346
4964
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxActionUIRouterTransitionSafetyDialogComponent, decorators: [{
|
|
4347
4965
|
type: Component,
|
|
@@ -4520,14 +5138,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
4520
5138
|
class DbxActionConfirmDirective extends AbstractPromptConfirmDirective {
|
|
4521
5139
|
source = inject((DbxActionContextStoreSourceInstance), { host: true });
|
|
4522
5140
|
dbxActionConfirm = input(undefined, { transform: transformEmptyStringInputToUndefined });
|
|
4523
|
-
|
|
5141
|
+
_sourceSub = new SubscriptionObject();
|
|
4524
5142
|
ngOnInit() {
|
|
4525
|
-
this.
|
|
5143
|
+
this._sourceSub.subscription = this.source.triggered$.subscribe(() => {
|
|
4526
5144
|
this.showDialog();
|
|
4527
5145
|
});
|
|
4528
5146
|
}
|
|
4529
5147
|
ngOnDestroy() {
|
|
4530
|
-
this.
|
|
5148
|
+
this._sourceSub.destroy();
|
|
4531
5149
|
}
|
|
4532
5150
|
getDefaultDialogConfig() {
|
|
4533
5151
|
return this.dbxActionConfirm();
|
|
@@ -5269,7 +5887,7 @@ class DbxDownloadTextViewComponent extends AbstractSubscriptionDirective {
|
|
|
5269
5887
|
}));
|
|
5270
5888
|
};
|
|
5271
5889
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDownloadTextViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
5272
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxDownloadTextViewComponent, isStandalone: true, selector: "dbx-download-text-view", inputs: { loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null }, showPreview: { classPropertyName: "showPreview", publicName: "showPreview", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, contentState: { classPropertyName: "contentState", publicName: "contentState", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "downloadButton", first: true, predicate: ["downloadButton"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-download-text-view\">\n <dbx-loading [context]=\"context\" [linear]=\"linear()\" [text]=\"loadingText()\">\n <ng-container *ngTemplateOutlet=\"contentView\"></ng-container>\n </dbx-loading>\n</div>\n\n<!-- Template -->\n<ng-template #contentView>\n <div class=\"dbx-download-text-view-content\">\n @if (showTitle()) {\n <div class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileNameSignal() }}</div>\n }\n @if (showPreview()) {\n <div class=\"dbx-download-text-preview dbx-json dbx-content-pit dbx-content-pit-scrollable dbx-mb3\">{{ contentDataSignal() }}</div>\n }\n <div class=\"dbx-download-text-view-actions\">\n <dbx-button dbxAction dbxActionValue [raised]=\"true\" [dbxActionHandler]=\"handleCopyToClipboard\" icon=\"content_copy\" dbxActionButton text=\"Copy To Clipboard\"></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <a #downloadButton [href]=\"fileUrlSignal()\" [attr.download]=\"fileNameSignal()\"><dbx-button icon=\"download\" text=\"Download\" [raised]=\"true\" [working]=\"!downloadReadySignal()\" [disabled]=\"!downloadReadySignal()\"></dbx-button></a>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i1$2.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i1$2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i1$2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i1$2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5890
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxDownloadTextViewComponent, isStandalone: true, selector: "dbx-download-text-view", inputs: { loadingText: { classPropertyName: "loadingText", publicName: "loadingText", isSignal: true, isRequired: false, transformFunction: null }, linear: { classPropertyName: "linear", publicName: "linear", isSignal: true, isRequired: false, transformFunction: null }, showTitle: { classPropertyName: "showTitle", publicName: "showTitle", isSignal: true, isRequired: false, transformFunction: null }, showPreview: { classPropertyName: "showPreview", publicName: "showPreview", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, contentState: { classPropertyName: "contentState", publicName: "contentState", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "downloadButton", first: true, predicate: ["downloadButton"], descendants: true, read: ElementRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-download-text-view\">\n <dbx-loading [context]=\"context\" [linear]=\"linear()\" [text]=\"loadingText()\">\n <ng-container *ngTemplateOutlet=\"contentView\"></ng-container>\n </dbx-loading>\n</div>\n\n<!-- Template -->\n<ng-template #contentView>\n <div class=\"dbx-download-text-view-content\">\n @if (showTitle()) {\n <div class=\"dbx-download-text-view-content-title dbx-mb2 mat-subtitle-2\">{{ fileNameSignal() }}</div>\n }\n @if (showPreview()) {\n <div class=\"dbx-download-text-preview dbx-json dbx-content-pit dbx-content-pit-scrollable dbx-mb3\">{{ contentDataSignal() }}</div>\n }\n <div class=\"dbx-download-text-view-actions\">\n <dbx-button dbxAction dbxActionValue [raised]=\"true\" [dbxActionHandler]=\"handleCopyToClipboard\" icon=\"content_copy\" dbxActionButton text=\"Copy To Clipboard\"></dbx-button>\n <dbx-button-spacer></dbx-button-spacer>\n <a #downloadButton [href]=\"fileUrlSignal()\" [attr.download]=\"fileNameSignal()\"><dbx-button icon=\"download\" text=\"Download\" [raised]=\"true\" [working]=\"!downloadReadySignal()\" [disabled]=\"!downloadReadySignal()\"></dbx-button></a>\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "ngmodule", type: DbxActionModule }, { kind: "directive", type: i1$2.DbxActionDirective, selector: "dbx-action,[dbxAction],dbx-action-context,[dbxActionContext]", exportAs: ["action", "dbxAction"] }, { kind: "directive", type: i1$2.DbxActionHandlerDirective, selector: "[dbxActionHandler]", inputs: ["dbxActionHandler"] }, { kind: "directive", type: i1$2.DbxActionValueDirective, selector: "dbxActionValue,[dbxActionValue]", inputs: ["dbxActionValue"] }, { kind: "directive", type: i1$2.DbxActionButtonDirective, selector: "[dbxActionButton]" }, { kind: "component", type: DbxButtonComponent, selector: "dbx-button", inputs: ["bar", "type", "buttonStyle", "color", "spinnerColor", "customButtonColor", "customTextColor", "customSpinnerColor", "basic", "raised", "stroked", "flat", "iconOnly", "fab", "mode"] }, { kind: "directive", type: DbxButtonSpacerDirective, selector: "dbx-button-spacer,[dbxButtonSpacer]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
5273
5891
|
}
|
|
5274
5892
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxDownloadTextViewComponent, decorators: [{
|
|
5275
5893
|
type: Component,
|
|
@@ -6409,6 +7027,241 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
6409
7027
|
|
|
6410
7028
|
// export * from './calendar'; // nothing to export
|
|
6411
7029
|
|
|
7030
|
+
// MARK: Injection Token
|
|
7031
|
+
/**
|
|
7032
|
+
* Injection token for the avatar context data.
|
|
7033
|
+
*/
|
|
7034
|
+
const DBX_AVATAR_CONTEXT_DATA_TOKEN = new InjectionToken('DbxAvatarContextData');
|
|
7035
|
+
|
|
7036
|
+
/**
|
|
7037
|
+
* Component that displays an avatar image. It has a configurable default avatar.
|
|
7038
|
+
*/
|
|
7039
|
+
class DbxAvatarViewComponent {
|
|
7040
|
+
defaultContext = inject(DBX_AVATAR_CONTEXT_DATA_TOKEN, { optional: true });
|
|
7041
|
+
avatarService = inject(DbxAvatarViewService);
|
|
7042
|
+
defaultAvatarUrl = this.avatarService.defaultAvatarUrl;
|
|
7043
|
+
avatarUrl = input();
|
|
7044
|
+
avatarErrorUrlSignal = signal(null);
|
|
7045
|
+
avatarStyle = input();
|
|
7046
|
+
avatarIcon = input();
|
|
7047
|
+
avatarUrlSignal = computed(() => {
|
|
7048
|
+
const directUrl = this.avatarUrl();
|
|
7049
|
+
const contextUrl = this.defaultContext?.url;
|
|
7050
|
+
let url = directUrl ?? contextUrl ?? this.defaultAvatarUrl ?? null;
|
|
7051
|
+
// if the error url is true or matches the url, then the url is invalid.
|
|
7052
|
+
const errorUrl = this.avatarErrorUrlSignal();
|
|
7053
|
+
if (errorUrl === true || errorUrl === url) {
|
|
7054
|
+
url = null;
|
|
7055
|
+
}
|
|
7056
|
+
return url;
|
|
7057
|
+
});
|
|
7058
|
+
hasAvatarSignal = computed(() => !!this.avatarUrlSignal());
|
|
7059
|
+
missingAvatarSignal = computed(() => !this.hasAvatarSignal());
|
|
7060
|
+
avatarStyleClassSignal = computed(() => {
|
|
7061
|
+
return this.avatarStyle() ?? this.defaultContext?.style ?? 'circle';
|
|
7062
|
+
});
|
|
7063
|
+
avatarIconSignal = computed(() => {
|
|
7064
|
+
let icon = this.avatarIcon() ?? this.defaultContext?.icon;
|
|
7065
|
+
if (!icon && this.avatarErrorUrlSignal()) {
|
|
7066
|
+
icon = this.avatarService.defaultAvatarErrorIcon;
|
|
7067
|
+
}
|
|
7068
|
+
else {
|
|
7069
|
+
icon = icon ?? this.avatarService.defaultAvatarIcon;
|
|
7070
|
+
}
|
|
7071
|
+
return icon ?? 'person';
|
|
7072
|
+
});
|
|
7073
|
+
onAvatarImageError(event) {
|
|
7074
|
+
if (event.target) {
|
|
7075
|
+
const target = event.target;
|
|
7076
|
+
this.avatarErrorUrlSignal.set(target.src);
|
|
7077
|
+
}
|
|
7078
|
+
else {
|
|
7079
|
+
this.avatarErrorUrlSignal.set(true);
|
|
7080
|
+
}
|
|
7081
|
+
}
|
|
7082
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAvatarViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7083
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxAvatarViewComponent, isStandalone: true, selector: "dbx-avatar-view", inputs: { avatarUrl: { classPropertyName: "avatarUrl", publicName: "avatarUrl", isSignal: true, isRequired: false, transformFunction: null }, avatarStyle: { classPropertyName: "avatarStyle", publicName: "avatarStyle", isSignal: true, isRequired: false, transformFunction: null }, avatarIcon: { classPropertyName: "avatarIcon", publicName: "avatarIcon", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.dbx-avatar-view-circle": "avatarStyleClassSignal() === \"circle\"", "class.dbx-avatar-view-square": "avatarStyleClassSignal() === \"square\"", "class.dbx-avatar-view-with-avatar": "hasAvatarSignal()", "class.dbx-avatar-view-no-avatar": "missingAvatarSignal()" }, classAttribute: "dbx-avatar-view" }, ngImport: i0, template: `
|
|
7084
|
+
@if (avatarUrlSignal()) {
|
|
7085
|
+
<img (error)="onAvatarImageError($event)" class="dbx-avatar-view-img" [src]="avatarUrlSignal()!" alt="." loading="lazy" decoding="async" />
|
|
7086
|
+
} @else {
|
|
7087
|
+
<div class="dbx-avatar-view-fallback" aria-hidden="true">
|
|
7088
|
+
<mat-icon>{{ avatarIconSignal() }}</mat-icon>
|
|
7089
|
+
</div>
|
|
7090
|
+
}
|
|
7091
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7092
|
+
}
|
|
7093
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAvatarViewComponent, decorators: [{
|
|
7094
|
+
type: Component,
|
|
7095
|
+
args: [{
|
|
7096
|
+
selector: 'dbx-avatar-view',
|
|
7097
|
+
template: `
|
|
7098
|
+
@if (avatarUrlSignal()) {
|
|
7099
|
+
<img (error)="onAvatarImageError($event)" class="dbx-avatar-view-img" [src]="avatarUrlSignal()!" alt="." loading="lazy" decoding="async" />
|
|
7100
|
+
} @else {
|
|
7101
|
+
<div class="dbx-avatar-view-fallback" aria-hidden="true">
|
|
7102
|
+
<mat-icon>{{ avatarIconSignal() }}</mat-icon>
|
|
7103
|
+
</div>
|
|
7104
|
+
}
|
|
7105
|
+
`,
|
|
7106
|
+
host: {
|
|
7107
|
+
class: 'dbx-avatar-view',
|
|
7108
|
+
'[class.dbx-avatar-view-circle]': 'avatarStyleClassSignal() === "circle"',
|
|
7109
|
+
'[class.dbx-avatar-view-square]': 'avatarStyleClassSignal() === "square"',
|
|
7110
|
+
'[class.dbx-avatar-view-with-avatar]': 'hasAvatarSignal()',
|
|
7111
|
+
'[class.dbx-avatar-view-no-avatar]': 'missingAvatarSignal()'
|
|
7112
|
+
},
|
|
7113
|
+
imports: [MatIconModule],
|
|
7114
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7115
|
+
standalone: true
|
|
7116
|
+
}]
|
|
7117
|
+
}] });
|
|
7118
|
+
|
|
7119
|
+
/**
|
|
7120
|
+
* Configuration for a DbxAvatarViewService.
|
|
7121
|
+
*/
|
|
7122
|
+
class DbxAvatarViewServiceConfig {
|
|
7123
|
+
/**
|
|
7124
|
+
* The default avatar URL to use in DbxAvatarViewComponent if no other url is available
|
|
7125
|
+
*/
|
|
7126
|
+
defaultAvatarUrl;
|
|
7127
|
+
/**
|
|
7128
|
+
* The default fallback icon to use when no avatar image is provided.
|
|
7129
|
+
*/
|
|
7130
|
+
defaultAvatarIcon;
|
|
7131
|
+
/**
|
|
7132
|
+
* The default fallback icon to use when an avatar image is provided but fails to load.
|
|
7133
|
+
*/
|
|
7134
|
+
defaultAvatarErrorIcon;
|
|
7135
|
+
/**
|
|
7136
|
+
* Overrides the default avatar component.
|
|
7137
|
+
*/
|
|
7138
|
+
defaultAvatarComponentConfig;
|
|
7139
|
+
/**
|
|
7140
|
+
* Custom function that returns a DbxInjectionComponentConfig for the given context.
|
|
7141
|
+
*/
|
|
7142
|
+
avatarComponentForContext;
|
|
7143
|
+
}
|
|
7144
|
+
/**
|
|
7145
|
+
* Service for registering avatars.
|
|
7146
|
+
*/
|
|
7147
|
+
class DbxAvatarViewService {
|
|
7148
|
+
_serviceConfig = inject(DbxAvatarViewServiceConfig, { optional: true });
|
|
7149
|
+
_defaultAvatarUrl = this._serviceConfig?.defaultAvatarUrl;
|
|
7150
|
+
_defaultAvatarIcon = this._serviceConfig?.defaultAvatarIcon ?? 'person';
|
|
7151
|
+
_defaultAvatarErrorIcon;
|
|
7152
|
+
_defaultAvatarComponentConfig = this._serviceConfig?.defaultAvatarComponentConfig ?? {
|
|
7153
|
+
componentClass: DbxAvatarViewComponent
|
|
7154
|
+
};
|
|
7155
|
+
_avatarComponentForContext = this._serviceConfig?.avatarComponentForContext;
|
|
7156
|
+
avatarComponentForContext(context) {
|
|
7157
|
+
let config = this._defaultAvatarComponentConfig;
|
|
7158
|
+
if (this._avatarComponentForContext) {
|
|
7159
|
+
config = this._avatarComponentForContext(context) ?? config;
|
|
7160
|
+
}
|
|
7161
|
+
return config;
|
|
7162
|
+
}
|
|
7163
|
+
get defaultAvatarUrl() {
|
|
7164
|
+
return this._defaultAvatarUrl;
|
|
7165
|
+
}
|
|
7166
|
+
get defaultAvatarIcon() {
|
|
7167
|
+
return this._defaultAvatarIcon;
|
|
7168
|
+
}
|
|
7169
|
+
get defaultAvatarErrorIcon() {
|
|
7170
|
+
return this._defaultAvatarErrorIcon;
|
|
7171
|
+
}
|
|
7172
|
+
setDefaultAvatarUrl(url) {
|
|
7173
|
+
this._defaultAvatarUrl = url;
|
|
7174
|
+
}
|
|
7175
|
+
setDefaultAvatarIcon(icon) {
|
|
7176
|
+
this._defaultAvatarIcon = icon;
|
|
7177
|
+
}
|
|
7178
|
+
setDefaultAvatarErrorIcon(icon) {
|
|
7179
|
+
this._defaultAvatarErrorIcon = icon;
|
|
7180
|
+
}
|
|
7181
|
+
setDefaultAvatarComponentConfig(config) {
|
|
7182
|
+
this._defaultAvatarComponentConfig = config;
|
|
7183
|
+
}
|
|
7184
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAvatarViewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
7185
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAvatarViewService, providedIn: 'root' });
|
|
7186
|
+
}
|
|
7187
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAvatarViewService, decorators: [{
|
|
7188
|
+
type: Injectable,
|
|
7189
|
+
args: [{
|
|
7190
|
+
providedIn: 'root'
|
|
7191
|
+
}]
|
|
7192
|
+
}] });
|
|
7193
|
+
|
|
7194
|
+
/**
|
|
7195
|
+
* Component that displays an avatar based on the input context.
|
|
7196
|
+
*/
|
|
7197
|
+
class DbxAvatarComponent {
|
|
7198
|
+
injector = inject(Injector);
|
|
7199
|
+
avatarService = inject(DbxAvatarViewService);
|
|
7200
|
+
context = input();
|
|
7201
|
+
avatarSelector = input();
|
|
7202
|
+
avatarUid = input();
|
|
7203
|
+
avatarUrl = input();
|
|
7204
|
+
avatarKey = input();
|
|
7205
|
+
avatarIcon = input();
|
|
7206
|
+
avatarStyle = input();
|
|
7207
|
+
avatarSize = input(undefined);
|
|
7208
|
+
contextSignal = computed(() => {
|
|
7209
|
+
const inputContext = this.context();
|
|
7210
|
+
const selector = this.avatarSelector() ?? inputContext?.selector;
|
|
7211
|
+
const uid = this.avatarUid() ?? inputContext?.uid;
|
|
7212
|
+
const url = this.avatarUrl() ?? inputContext?.url;
|
|
7213
|
+
const key = this.avatarKey() ?? inputContext?.key;
|
|
7214
|
+
const icon = this.avatarIcon() ?? inputContext?.icon;
|
|
7215
|
+
const style = this.avatarStyle() ?? inputContext?.style;
|
|
7216
|
+
const context = {
|
|
7217
|
+
selector,
|
|
7218
|
+
uid,
|
|
7219
|
+
url,
|
|
7220
|
+
key,
|
|
7221
|
+
icon,
|
|
7222
|
+
style
|
|
7223
|
+
};
|
|
7224
|
+
return context;
|
|
7225
|
+
});
|
|
7226
|
+
configSignal = computed(() => {
|
|
7227
|
+
const context = this.contextSignal();
|
|
7228
|
+
const returnedConfig = this.avatarService.avatarComponentForContext(context);
|
|
7229
|
+
const dataProvider = {
|
|
7230
|
+
provide: DBX_AVATAR_CONTEXT_DATA_TOKEN,
|
|
7231
|
+
useValue: context
|
|
7232
|
+
};
|
|
7233
|
+
const injector = Injector.create({
|
|
7234
|
+
parent: this.injector,
|
|
7235
|
+
providers: mergeStaticProviders(dataProvider, returnedConfig.providers)
|
|
7236
|
+
});
|
|
7237
|
+
const config = {
|
|
7238
|
+
...returnedConfig,
|
|
7239
|
+
injector
|
|
7240
|
+
};
|
|
7241
|
+
return config;
|
|
7242
|
+
});
|
|
7243
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAvatarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
7244
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: DbxAvatarComponent, isStandalone: true, selector: "dbx-avatar", inputs: { context: { classPropertyName: "context", publicName: "context", isSignal: true, isRequired: false, transformFunction: null }, avatarSelector: { classPropertyName: "avatarSelector", publicName: "avatarSelector", isSignal: true, isRequired: false, transformFunction: null }, avatarUid: { classPropertyName: "avatarUid", publicName: "avatarUid", isSignal: true, isRequired: false, transformFunction: null }, avatarUrl: { classPropertyName: "avatarUrl", publicName: "avatarUrl", isSignal: true, isRequired: false, transformFunction: null }, avatarKey: { classPropertyName: "avatarKey", publicName: "avatarKey", isSignal: true, isRequired: false, transformFunction: null }, avatarIcon: { classPropertyName: "avatarIcon", publicName: "avatarIcon", isSignal: true, isRequired: false, transformFunction: null }, avatarStyle: { classPropertyName: "avatarStyle", publicName: "avatarStyle", isSignal: true, isRequired: false, transformFunction: null }, avatarSize: { classPropertyName: "avatarSize", publicName: "avatarSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.dbx-avatar-small": "avatarSize() === 'small'", "class.dbx-avatar-large": "avatarSize() === 'large'" } }, ngImport: i0, template: `
|
|
7245
|
+
<dbx-injection [config]="configSignal()"></dbx-injection>
|
|
7246
|
+
`, isInline: true, dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
7247
|
+
}
|
|
7248
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxAvatarComponent, decorators: [{
|
|
7249
|
+
type: Component,
|
|
7250
|
+
args: [{
|
|
7251
|
+
selector: 'dbx-avatar',
|
|
7252
|
+
template: `
|
|
7253
|
+
<dbx-injection [config]="configSignal()"></dbx-injection>
|
|
7254
|
+
`,
|
|
7255
|
+
imports: [DbxInjectionComponent],
|
|
7256
|
+
host: {
|
|
7257
|
+
'[class.dbx-avatar-small]': `avatarSize() === 'small'`,
|
|
7258
|
+
'[class.dbx-avatar-large]': `avatarSize() === 'large'`
|
|
7259
|
+
},
|
|
7260
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7261
|
+
standalone: true
|
|
7262
|
+
}]
|
|
7263
|
+
}] });
|
|
7264
|
+
|
|
6412
7265
|
/**
|
|
6413
7266
|
* Acts as a wrapper for content distributed along a bar.
|
|
6414
7267
|
*/
|
|
@@ -8202,8 +9055,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8202
9055
|
*/
|
|
8203
9056
|
class DbxContentPitDirective {
|
|
8204
9057
|
scrollable = input();
|
|
9058
|
+
scrollableHeightSignal = computed(() => {
|
|
9059
|
+
let scrollable = this.scrollable();
|
|
9060
|
+
let scrollableHeight;
|
|
9061
|
+
if (typeof scrollable === 'boolean') {
|
|
9062
|
+
scrollable = scrollable ? 'medium' : undefined; // defaults to medium
|
|
9063
|
+
}
|
|
9064
|
+
if (scrollable) {
|
|
9065
|
+
if (typeof scrollable === 'string') {
|
|
9066
|
+
switch (scrollable) {
|
|
9067
|
+
case 'small':
|
|
9068
|
+
scrollable = 120;
|
|
9069
|
+
break;
|
|
9070
|
+
case 'medium':
|
|
9071
|
+
scrollable = 320;
|
|
9072
|
+
break;
|
|
9073
|
+
case 'large':
|
|
9074
|
+
scrollable = 460;
|
|
9075
|
+
break;
|
|
9076
|
+
default:
|
|
9077
|
+
scrollableHeight = scrollable; // use as-is
|
|
9078
|
+
break;
|
|
9079
|
+
}
|
|
9080
|
+
}
|
|
9081
|
+
if (typeof scrollable === 'number') {
|
|
9082
|
+
scrollableHeight = `${scrollable}px`;
|
|
9083
|
+
}
|
|
9084
|
+
}
|
|
9085
|
+
return scrollableHeight ?? null;
|
|
9086
|
+
});
|
|
8205
9087
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxContentPitDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
8206
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxContentPitDirective, isStandalone: true, selector: "dbx-content-pit, [dbxContentPit]", inputs: { scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.dbx-content-pit-scrollable": "
|
|
9088
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxContentPitDirective, isStandalone: true, selector: "dbx-content-pit, [dbxContentPit]", inputs: { scrollable: { classPropertyName: "scrollable", publicName: "scrollable", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.dbx-content-pit-scrollable": "scrollableHeightSignal() != null", "style.max-height": "scrollableHeightSignal()" }, classAttribute: "d-block dbx-content-pit" }, ngImport: i0 });
|
|
8207
9089
|
}
|
|
8208
9090
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxContentPitDirective, decorators: [{
|
|
8209
9091
|
type: Directive,
|
|
@@ -8211,7 +9093,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
8211
9093
|
selector: 'dbx-content-pit, [dbxContentPit]',
|
|
8212
9094
|
host: {
|
|
8213
9095
|
class: 'd-block dbx-content-pit',
|
|
8214
|
-
'[class.dbx-content-pit-scrollable]': '
|
|
9096
|
+
'[class.dbx-content-pit-scrollable]': 'scrollableHeightSignal() != null',
|
|
9097
|
+
'[style.max-height]': 'scrollableHeightSignal()'
|
|
8215
9098
|
},
|
|
8216
9099
|
standalone: true
|
|
8217
9100
|
}]
|
|
@@ -9769,5 +10652,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
9769
10652
|
* Generated bundle index. Do not edit.
|
|
9770
10653
|
*/
|
|
9771
10654
|
|
|
9772
|
-
export { APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH, AbstractDbxErrorWidgetComponent, AbstractDbxListGridViewDirective, AbstractDbxListViewDirective, AbstractDbxListWrapperDirective, AbstractDbxPartialPresetFilterMenuDirective, AbstractDbxSegueAnchorDirective, AbstractDbxSelectionListViewDirective, AbstractDbxSelectionListWrapperDirective, AbstractDbxValueListItemModifierDirective, AbstractDbxValueListViewDirective, AbstractDbxValueListViewItemComponent, AbstractDbxWidgetComponent, AbstractDialogDirective, AbstractFilterPopoverButtonDirective, AbstractPopoverDirective, AbstractPopoverRefDirective, AbstractPopoverRefWithEventsDirective, AbstractPopupDirective, AbstractPromptConfirmDirective, CompactContextStore, CompactMode, DBX_ACTION_SNACKBAR_DEFAULTS, DBX_ACTION_SNACKBAR_SERVICE_CONFIG, DBX_DARK_STYLE_CLASS_SUFFIX, DBX_IFRAME_COMPONENT_TEMPLATE, DBX_LIST_DEFAULT_SCROLL_DISTANCE, DBX_LIST_DEFAULT_THROTTLE_SCROLL, DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION, DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY, DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY, DBX_LIST_VIEW_DEFAULT_META_ICON, DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG, DBX_ROUTER_ANCHOR_COMPONENTS, DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY, DBX_STYLE_DEFAULT_CONFIG_TOKEN, DBX_THEME_COLORS, DBX_THEME_COLORS_EXTRA, DBX_THEME_COLORS_EXTRA_SECONDARY, DBX_THEME_COLORS_MAIN, DBX_VALUE_LIST_VIEW_ITEM, DEFAULT_DBX_ERROR_SNACKBAR_CONFIG, DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE, DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION, DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG, DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE, DEFAULT_DBX_SIDENAV_MENU_ICON, DEFAULT_DBX_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_VALUE_LIST_CONFIG_MAP_VALUES, DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE, DEFAULT_ERROR_POPOVER_KEY, DEFAULT_ERROR_WIDGET_CODE, DEFAULT_FILTER_POPOVER_KEY, DEFAULT_LIST_GRID_SIZE_CONFIG, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, DEFAULT_LOADING_PROGRESS_DIAMETER, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG, DEFAULT_SNACKBAR_DIRECTIVE_DURATION, DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION, DbxActionConfirmDirective, DbxActionDialogDirective, DbxActionErrorDirective, DbxActionKeyTriggerDirective, DbxActionLoadingContextDirective, DbxActionModule, DbxActionPopoverDirective, DbxActionSnackbarComponent, DbxActionSnackbarDirective, DbxActionSnackbarErrorDirective, DbxActionSnackbarModule, DbxActionSnackbarService, DbxActionTransitionSafetyDirective, DbxActionUIRouterTransitionModule, DbxActionUIRouterTransitionSafetyDialogComponent, DbxAnchorComponent, DbxAnchorContentComponent, DbxAnchorIconComponent, DbxAnchorListComponent, DbxAngularRouterSegueAnchorComponent, DbxBarDirective, DbxBarHeaderComponent, DbxBarLayoutModule, DbxBasicLoadingComponent, DbxBlockLayoutModule, DbxBodyDirective, DbxButtonComponent, DbxButtonDisplayType, DbxButtonModule, DbxButtonSpacerDirective, DbxCardBoxComponent, DbxCardBoxContainerDirective, DbxCardBoxLayoutModule, DbxChipDirective, DbxColorDirective, DbxColumnLayoutModule, DbxCompactDirective, DbxCompactLayoutModule, DbxContentBorderDirective, DbxContentBoxDirective, DbxContentContainerDirective, DbxContentDirective, DbxContentElevateDirective, DbxContentLayoutModule, DbxContentPageDirective, DbxContentPitDirective, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxDialogContentCloseComponent, DbxDialogContentDirective, DbxDialogContentFooterComponent, DbxDialogInteractionModule, DbxDialogModule, DbxDownloadTextModule, DbxDownloadTextViewComponent, DbxErrorComponent, DbxErrorDefaultErrorWidgetComponent, DbxErrorDetailsComponent, DbxErrorPopoverComponent, DbxErrorSnackbarComponent, DbxErrorSnackbarService, DbxErrorViewComponent, DbxErrorWidgetService, DbxErrorWidgetViewComponent, DbxFilterInteractionModule, DbxFilterPopoverButtonComponent, DbxFilterPopoverComponent, DbxFilterWrapperComponent, DbxFlagComponent, DbxFlagLayoutModule, DbxFlagPromptComponent, DbxFlexGroupDirective, DbxFlexLayoutModule, DbxFlexSizeDirective, DbxIconButtonComponent, DbxIconButtonModule, DbxIconItemComponent, DbxIconSpacerDirective, DbxIfSidenavDisplayModeDirective, DbxIframeComponent, DbxInteractionModule, DbxIntroActionSectionComponent, DbxKeypressModule, DbxLabelBlockComponent, DbxLayoutModule, DbxLinkComponent, DbxLinkifyComponent, DbxListComponent, DbxListEmptyContentComponent, DbxListGridViewDirectiveImportsModule, DbxListInternalContentDirective, DbxListItemAnchorModifierDirective, DbxListItemDisableRippleModifierDirective, DbxListItemIsSelectedModifierDirective, DbxListLayoutModule, DbxListModifierModule, DbxListModule, DbxListTitleGroupDirective, DbxListView, DbxListViewMetaIconComponent, DbxListViewWrapper, DbxListWrapperComponentImportsModule, DbxLoadingComponent, DbxLoadingErrorDirective, DbxLoadingModule, DbxLoadingProgressComponent, DbxModelObjectStateService, actions as DbxModelStateActions, model_actions as DbxModelStateModelActions, DbxModelTrackerService, DbxModelTypesService, DbxModelViewTrackerStorage, DbxNavbarComponent, DbxNumberWithLimitComponent, DbxOneColumnComponent, DbxOneColumnLayoutModule, DbxPagebarComponent, DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxPopoverCloseButtonComponent, DbxPopoverComponent, DbxPopoverComponentController, DbxPopoverContentComponent, DbxPopoverController, DbxPopoverControlsDirective, DbxPopoverCoordinatorComponent, DbxPopoverCoordinatorService, DbxPopoverHeaderComponent, DbxPopoverInteractionContentModule, DbxPopoverInteractionModule, DbxPopoverScrollContentDirective, DbxPopoverService, DbxPopupComponent, DbxPopupComponentController, DbxPopupContentComponent, DbxPopupControlButtonsComponent, DbxPopupController, DbxPopupControlsComponent, DbxPopupCoordinatorComponent, DbxPopupCoordinatorService, DbxPopupInteractionModule, DbxPopupService, DbxPopupWindowState, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent, DbxProgressBarButtonComponent, DbxProgressButtonsModule, DbxProgressSpinnerButtonComponent, DbxPromptBoxDirective, DbxPromptComponent, DbxPromptConfirm, DbxPromptConfirmButtonDirective, DbxPromptConfirmComponent, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective, DbxPromptModule, DbxPromptPageComponent, DbxReadableErrorModule, DbxResizedDirective, DbxRouterAnchorListModule, DbxRouterAnchorModule, DbxRouterLayoutModule, DbxRouterListModule, DbxRouterNavbarModule, DbxRouterSidenavModule, DbxRouterWebProviderConfig, DbxScreenMediaService, DbxScreenMediaServiceConfig, DbxSectionComponent, DbxSectionHeaderComponent, DbxSectionLayoutModule, DbxSectionPageComponent, DbxSelectionValueListViewComponent, DbxSelectionValueListViewComponentImportsModule, DbxSelectionValueListViewContentComponent, DbxSetStyleDirective, DbxSidenavButtonComponent, DbxSidenavComponent, DbxSidenavPageComponent, DbxSidenavPagebarComponent, DbxSpacerDirective, DbxStepComponent, DbxStepLayoutModule, DbxStructureDirective, DbxStructureModule, DbxStyleBodyDirective, DbxStyleDirective, DbxStyleLayoutModule, DbxStyleService, DbxSubSectionComponent, DbxTextChipsComponent, DbxTextModule, DbxTwoBlockComponent, DbxTwoColumnBackDirective, DbxTwoColumnColumnHeadDirective, DbxTwoColumnComponent, DbxTwoColumnContextDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnLayoutModule, DbxTwoColumnRightComponent, DbxTwoColumnSrefDirective, DbxTwoColumnSrefShowRightDirective, DbxUIRouterSegueAnchorComponent, DbxUnitedStatesAddressComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent, DbxValueListGridViewContentComponent, DbxValueListItemModifier, DbxValueListItemModifierDirective, DbxValueListView, DbxValueListViewComponent, DbxValueListViewComponentImportsModule, DbxValueListViewContentComponent, DbxValueListViewContentGroupComponent, DbxValueListViewGroupDelegate, DbxWebModule, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent, DbxWidgetModule, DbxWidgetService, DbxWidgetViewComponent, DbxWindowKeyDownListenerDirective, PopoverPositionStrategy, PopupGlobalPositionStrategy, SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP, SideNavDisplayMode, TRACK_BY_MODEL_ID, TRACK_BY_MODEL_KEY, TwoColumnsContextStore, UNKNOWN_ERROR_WIDGET_CODE, addConfigToValueListItems, allDbxModelViewTrackerEventModelKeys, allDbxModelViewTrackerEventSetModelKeys, catchErrorServerParams, compactModeFromInput, compareScreenMediaWidthTypes, convertServerErrorParams, convertToPOJOServerErrorResponse, convertToServerErrorResponse, dbxColorBackground, dbxListGridViewDirectiveImportsAndExports, dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, dbxStyleClassCleanSuffix, dbxValueListItemDecisionFunction, defaultDbxModelViewTrackerStorageAccessorFactory, defaultDbxValueListViewGroupDelegate, defaultDbxValueListViewGroupValuesFunction, disableRightClickInCdkBackdrop, index as fromDbxModel, listItemModifier, makeDbxActionSnackbarDisplayConfigGeneratorFunction, mapCompactModeObs, mapValuesToValuesListItemConfigObs, index$1 as onDbxModel, provideDbxListView, provideDbxListViewWrapper, provideDbxModelService, provideDbxProgressButtonGlobalConfig, provideDbxPromptConfirm, provideDbxRouterWebAngularRouterProviderConfig, provideDbxRouterWebUiRouterProviderConfig, provideDbxScreenMediaService, provideDbxStyleService, provideDbxValueListView, provideDbxValueListViewGroupDelegate, provideDbxValueListViewModifier, provideTwoColumnsContext, resizeSignal, sanitizeDbxDialogContentConfig, screenMediaWidthTypeIsActive, trackByModelKeyRef, trackByUniqueIdentifier };
|
|
10655
|
+
export { APP_POPUP_MINIMIZED_WIDTH, APP_POPUP_NORMAL_HEIGHT, APP_POPUP_NORMAL_WIDTH, AbstractDbxErrorWidgetComponent, AbstractDbxFileUploadComponent, AbstractDbxListGridViewDirective, AbstractDbxListViewDirective, AbstractDbxListWrapperDirective, AbstractDbxPartialPresetFilterMenuDirective, AbstractDbxSegueAnchorDirective, AbstractDbxSelectionListViewDirective, AbstractDbxSelectionListWrapperDirective, AbstractDbxValueListItemModifierDirective, AbstractDbxValueListViewDirective, AbstractDbxValueListViewItemComponent, AbstractDbxWidgetComponent, AbstractDialogDirective, AbstractFilterPopoverButtonDirective, AbstractPopoverDirective, AbstractPopoverRefDirective, AbstractPopoverRefWithEventsDirective, AbstractPopupDirective, AbstractPromptConfirmDirective, CompactContextStore, CompactMode, DBX_ACTION_SNACKBAR_DEFAULTS, DBX_ACTION_SNACKBAR_SERVICE_CONFIG, DBX_AVATAR_CONTEXT_DATA_TOKEN, DBX_DARK_STYLE_CLASS_SUFFIX, DBX_IFRAME_COMPONENT_TEMPLATE, DBX_LIST_DEFAULT_SCROLL_DISTANCE, DBX_LIST_DEFAULT_THROTTLE_SCROLL, DBX_LIST_ITEM_DEFAULT_DISABLE_FUNCTION, DBX_LIST_ITEM_DISABLE_RIPPLE_LIST_ITEM_MODIFIER_KEY, DBX_LIST_ITEM_IS_SELECTED_ITEM_MODIFIER_KEY, DBX_LIST_VIEW_DEFAULT_META_ICON, DBX_MODEL_VIEW_TRACKER_STORAGE_ACCESSOR_TOKEN, DBX_PROGRESS_BUTTON_GLOBAL_CONFIG, DBX_ROUTER_ANCHOR_COMPONENTS, DBX_ROUTER_VALUE_LIST_ITEM_MODIFIER_KEY, DBX_STYLE_DEFAULT_CONFIG_TOKEN, DBX_THEME_COLORS, DBX_THEME_COLORS_EXTRA, DBX_THEME_COLORS_EXTRA_SECONDARY, DBX_THEME_COLORS_MAIN, DBX_VALUE_LIST_VIEW_ITEM, DEFAULT_DBX_ERROR_SNACKBAR_CONFIG, DEFAULT_DBX_LIST_GRID_VIEW_DIRECTIVE_TEMPLATE, DEFAULT_DBX_LIST_ITEM_IS_SELECTED_FUNCTION, DEFAULT_DBX_PROMPT_CONFIRM_DIALOG_CONFIG, DEFAULT_DBX_SELECTION_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_SELECTION_VALUE_LIST_DIRECTIVE_TEMPLATE, DEFAULT_DBX_SIDENAV_MENU_ICON, DEFAULT_DBX_VALUE_LIST_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_DBX_VALUE_LIST_CONFIG_MAP_VALUES, DEFAULT_DBX_VALUE_LIST_GRID_DIRECTIVE_TEMPLATE, DEFAULT_ERROR_POPOVER_KEY, DEFAULT_ERROR_WIDGET_CODE, DEFAULT_FILTER_POPOVER_KEY, DEFAULT_LIST_GRID_SIZE_CONFIG, DEFAULT_LIST_WRAPPER_COMPONENT_CONFIGURATION_TEMPLATE, DEFAULT_LIST_WRAPPER_DIRECTIVE_TEMPLATE, DEFAULT_LOADING_PROGRESS_DIAMETER, DEFAULT_SCREEN_MEDIA_SERVICE_CONFIG, DEFAULT_SNACKBAR_DIRECTIVE_DURATION, DEFAULT_TWO_COLUMNS_MIN_RIGHT_WIDTH, DEFAULT_VALUE_LIST_VIEW_CONTENT_COMPONENT_TRACK_BY_FUNCTION, DbxActionConfirmDirective, DbxActionDialogDirective, DbxActionErrorDirective, DbxActionKeyTriggerDirective, DbxActionLoadingContextDirective, DbxActionModule, DbxActionPopoverDirective, DbxActionSnackbarComponent, DbxActionSnackbarDirective, DbxActionSnackbarErrorDirective, DbxActionSnackbarModule, DbxActionSnackbarService, DbxActionTransitionSafetyDirective, DbxActionUIRouterTransitionModule, DbxActionUIRouterTransitionSafetyDialogComponent, DbxAnchorComponent, DbxAnchorContentComponent, DbxAnchorIconComponent, DbxAnchorListComponent, DbxAngularRouterSegueAnchorComponent, DbxAvatarComponent, DbxAvatarViewService, DbxAvatarViewServiceConfig, DbxBarDirective, DbxBarHeaderComponent, DbxBarLayoutModule, DbxBasicLoadingComponent, DbxBlockLayoutModule, DbxBodyDirective, DbxButtonComponent, DbxButtonDisplayType, DbxButtonModule, DbxButtonSpacerDirective, DbxCardBoxComponent, DbxCardBoxContainerDirective, DbxCardBoxLayoutModule, DbxChipDirective, DbxColorDirective, DbxColumnLayoutModule, DbxCompactDirective, DbxCompactLayoutModule, DbxContentBorderDirective, DbxContentBoxDirective, DbxContentContainerDirective, DbxContentDirective, DbxContentElevateDirective, DbxContentLayoutModule, DbxContentPageDirective, DbxContentPitDirective, DbxDetailBlockComponent, DbxDetailBlockHeaderComponent, DbxDialogContentCloseComponent, DbxDialogContentDirective, DbxDialogContentFooterComponent, DbxDialogInteractionModule, DbxDialogModule, DbxDownloadTextModule, DbxDownloadTextViewComponent, DbxErrorComponent, DbxErrorDefaultErrorWidgetComponent, DbxErrorDetailsComponent, DbxErrorPopoverComponent, DbxErrorSnackbarComponent, DbxErrorSnackbarService, DbxErrorViewComponent, DbxErrorWidgetService, DbxErrorWidgetViewComponent, DbxFileUploadActionCompatable, DbxFileUploadActionSyncDirective, DbxFileUploadAreaComponent, DbxFileUploadButtonComponent, DbxFileUploadComponent, DbxFilterInteractionModule, DbxFilterPopoverButtonComponent, DbxFilterPopoverComponent, DbxFilterWrapperComponent, DbxFlagComponent, DbxFlagLayoutModule, DbxFlagPromptComponent, DbxFlexGroupDirective, DbxFlexLayoutModule, DbxFlexSizeDirective, DbxIconButtonComponent, DbxIconButtonModule, DbxIconItemComponent, DbxIconSpacerDirective, DbxIfSidenavDisplayModeDirective, DbxIframeComponent, DbxInteractionModule, DbxIntroActionSectionComponent, DbxKeypressModule, DbxLabelBlockComponent, DbxLayoutModule, DbxLinkComponent, DbxLinkifyComponent, DbxListComponent, DbxListEmptyContentComponent, DbxListGridViewDirectiveImportsModule, DbxListInternalContentDirective, DbxListItemAnchorModifierDirective, DbxListItemDisableRippleModifierDirective, DbxListItemIsSelectedModifierDirective, DbxListLayoutModule, DbxListModifierModule, DbxListModule, DbxListTitleGroupDirective, DbxListView, DbxListViewMetaIconComponent, DbxListViewWrapper, DbxListWrapperComponentImportsModule, DbxLoadingComponent, DbxLoadingErrorDirective, DbxLoadingModule, DbxLoadingProgressComponent, DbxModelObjectStateService, actions as DbxModelStateActions, model_actions as DbxModelStateModelActions, DbxModelTrackerService, DbxModelTypesService, DbxModelViewTrackerStorage, DbxNavbarComponent, DbxNumberWithLimitComponent, DbxOneColumnComponent, DbxOneColumnLayoutModule, DbxPagebarComponent, DbxPartialPresetFilterListComponent, DbxPartialPresetFilterMenuComponent, DbxPopoverCloseButtonComponent, DbxPopoverComponent, DbxPopoverComponentController, DbxPopoverContentComponent, DbxPopoverController, DbxPopoverControlsDirective, DbxPopoverCoordinatorComponent, DbxPopoverCoordinatorService, DbxPopoverHeaderComponent, DbxPopoverInteractionContentModule, DbxPopoverInteractionModule, DbxPopoverScrollContentDirective, DbxPopoverService, DbxPopupComponent, DbxPopupComponentController, DbxPopupContentComponent, DbxPopupControlButtonsComponent, DbxPopupController, DbxPopupControlsComponent, DbxPopupCoordinatorComponent, DbxPopupCoordinatorService, DbxPopupInteractionModule, DbxPopupService, DbxPopupWindowState, DbxPresetFilterListComponent, DbxPresetFilterMenuComponent, DbxProgressBarButtonComponent, DbxProgressButtonsModule, DbxProgressSpinnerButtonComponent, DbxPromptBoxDirective, DbxPromptComponent, DbxPromptConfirm, DbxPromptConfirmButtonDirective, DbxPromptConfirmComponent, DbxPromptConfirmDialogComponent, DbxPromptConfirmDirective, DbxPromptModule, DbxPromptPageComponent, DbxReadableErrorModule, DbxResizedDirective, DbxRouterAnchorListModule, DbxRouterAnchorModule, DbxRouterLayoutModule, DbxRouterListModule, DbxRouterNavbarModule, DbxRouterSidenavModule, DbxRouterWebProviderConfig, DbxScreenMediaService, DbxScreenMediaServiceConfig, DbxSectionComponent, DbxSectionHeaderComponent, DbxSectionLayoutModule, DbxSectionPageComponent, DbxSelectionValueListViewComponent, DbxSelectionValueListViewComponentImportsModule, DbxSelectionValueListViewContentComponent, DbxSetStyleDirective, DbxSidenavButtonComponent, DbxSidenavComponent, DbxSidenavPageComponent, DbxSidenavPagebarComponent, DbxSpacerDirective, DbxStepComponent, DbxStepLayoutModule, DbxStructureDirective, DbxStructureModule, DbxStyleBodyDirective, DbxStyleDirective, DbxStyleLayoutModule, DbxStyleService, DbxSubSectionComponent, DbxTextChipsComponent, DbxTextModule, DbxTwoBlockComponent, DbxTwoColumnBackDirective, DbxTwoColumnColumnHeadDirective, DbxTwoColumnComponent, DbxTwoColumnContextDirective, DbxTwoColumnFullLeftDirective, DbxTwoColumnLayoutModule, DbxTwoColumnRightComponent, DbxTwoColumnSrefDirective, DbxTwoColumnSrefShowRightDirective, DbxUIRouterSegueAnchorComponent, DbxUnitedStatesAddressComponent, DbxValueListGridSizeDirective, DbxValueListGridViewComponent, DbxValueListGridViewContentComponent, DbxValueListItemModifier, DbxValueListItemModifierDirective, DbxValueListView, DbxValueListViewComponent, DbxValueListViewComponentImportsModule, DbxValueListViewContentComponent, DbxValueListViewContentGroupComponent, DbxValueListViewGroupDelegate, DbxWebModule, DbxWidgetListGridComponent, DbxWidgetListGridViewComponent, DbxWidgetListGridViewItemComponent, DbxWidgetModule, DbxWidgetService, DbxWidgetViewComponent, DbxWindowKeyDownListenerDirective, PopoverPositionStrategy, PopupGlobalPositionStrategy, SCREEN_MEDIA_WIDTH_TYPE_SIZE_MAP, SideNavDisplayMode, TRACK_BY_MODEL_ID, TRACK_BY_MODEL_KEY, TwoColumnsContextStore, UNKNOWN_ERROR_WIDGET_CODE, addConfigToValueListItems, allDbxModelViewTrackerEventModelKeys, allDbxModelViewTrackerEventSetModelKeys, catchErrorServerParams, compactModeFromInput, compareScreenMediaWidthTypes, convertServerErrorParams, convertToPOJOServerErrorResponse, convertToServerErrorResponse, dbxColorBackground, dbxListGridViewDirectiveImportsAndExports, dbxPresetFilterMenuButtonIconObservable, dbxPresetFilterMenuButtonTextObservable, dbxStyleClassCleanSuffix, dbxValueListItemDecisionFunction, defaultDbxModelViewTrackerStorageAccessorFactory, defaultDbxValueListViewGroupDelegate, defaultDbxValueListViewGroupValuesFunction, disableRightClickInCdkBackdrop, fileAcceptFilterTypeStringArray, fileAcceptFunction, fileAcceptString, fileArrayAcceptMatchFunction, index as fromDbxModel, listItemModifier, makeDbxActionSnackbarDisplayConfigGeneratorFunction, mapCompactModeObs, mapValuesToValuesListItemConfigObs, index$1 as onDbxModel, provideDbxFileUploadActionCompatable, provideDbxListView, provideDbxListViewWrapper, provideDbxModelService, provideDbxProgressButtonGlobalConfig, provideDbxPromptConfirm, provideDbxRouterWebAngularRouterProviderConfig, provideDbxRouterWebUiRouterProviderConfig, provideDbxScreenMediaService, provideDbxStyleService, provideDbxValueListView, provideDbxValueListViewGroupDelegate, provideDbxValueListViewModifier, provideTwoColumnsContext, resizeSignal, sanitizeDbxDialogContentConfig, screenMediaWidthTypeIsActive, trackByModelKeyRef, trackByUniqueIdentifier };
|
|
9773
10656
|
//# sourceMappingURL=dereekb-dbx-web.mjs.map
|